FATEC/SJC - Tecnologia
Disciplina: LPII
UML Representation of Object-Oriented Concepts
Recognize the UML representation of classes (including
attributes and operations, abstract classes, and interfaces), the
UML representation of inheritance (both implementation and
interface), and the UML representation of class member
visibility modifiers (- private and +public).
Recognize the UML representation of class associations,
compositions, association multiplicity indicators, and
association navigation indicators.
CERTICAÇÃO SCJA
Temática UML
DEFINIÇÃO DO EXAME SCJA PARA UML
Material: https://sites.google.com/site/wizard2javadevelopers/
12/04/2012
Fonte: http://www.scja.de/scja-mock-exam-section2.html
COMO UM TÉCNICO EM TI “VENDERÁ” SEU PROJETO PARA DIFERENTES PROFISSIONAIS? Apresentará códigos em Java, C++, C, PHP, etc.? O ideal é a utilização de Modelos.
10/04/2012 Certificação SCJA - UML Prof. Aníbal Fernandes 3
Diagramas da Unified Modeling Language (UML)
Modelo
: Descrição completa do sistema a partir de uma determinada perspectiva
Um Modelo é representado por um ou mais Diagramas. Desta forma, um diagrama pode ser visto como uma visão dentro de um modelo. Um diagrama pode ser representado de várias formas, dependendo da área de conhecimento do profissional que irá interpretá-lo.
Objetivo
O Diagrama de
Casos de Uso
tem por objetivo auxiliar a comunicação entre os
analistas e o cliente, pois esse diagrama descreve um cenário que mostra as
funcionalidades do sistema do ponto de vista do usuário. O cliente deve ver no
diagrama de Casos de Uso as principais funcionalidades de seu sistema.
Notação
O diagrama de Caso de Uso é representado por:
atores;
casos de uso;
relacionamentos entre estes elementos.
Estes relacionamentos podem ser:
associações entre atores e casos de uso;
generalizações entre os atores;
generalizações, extends e includes entre os casos de uso.
Revisão Diagrama de Casos de Uso
10/04/2012 Certificação SCJA - UML Prof. Aníbal Fernandes 7
10/04/2012 Certificação SCJA - UML Prof. Aníbal Fernandes 9
Relacionamentos
Include
Um relacionamento
include
de um caso de uso
A
para um caso de uso
B
indica que
B
é essencial
para o comportamento de
A
.
Pode ser dito também que
B
is_part_of
A
.
Extend
Um relacionamento
extend
de um caso de uso
B
para um caso de uso
A
indica que o caso de uso
B
pode ser acrescentado
para descrever o
comportamento de
A
(não é essencial).
Quando se especifica
B
extends
A
, a semântica é:
· Dois casos de uso são definidos: A e A extended by B;
· B é uma variação de A. Contém eventos adicionais, para certas
condições;
· Tem que ser especificado onde B é inserido em A.
Generalização ou Especialização (é_um
)
caso de uso B é_um caso de uso A (A é uma generalização de B, ou B é uma
especialização de A).
Um relacionamento entre um caso de uso genérico para um mais específico,
que herda todas as características de seu pai.
10/04/2012 Certificação SCJA - UML Prof. Aníbal Fernandes 11
Parte estática e parte dinâmica
Partes dinâmicas do sistema:
Diagrama de Casos de Uso
Diagrama de Sequencias
Diagrama de Colaboração
Diagrama de Gráfico de estados
Diagrama de Atividades
Partes estáticas do sistema:
Diagrama de Classes
Diagrama de Objetos
Diagrama de Componentes
Diagrama de Implantação
Diagramas comportamentais
Tipos de Diagramas
Responsabilidade
Diagramas Comportamentais Organiza os comportamentos do sistema
Diagrama de Sequencia Foco na ordem temporal das mensagens enviadas e recebidas pelos objetos
Diagrama de Colaboração Foco na organização estrutural dos objetos que enviam e recebem mensagens
Diagrama de Gráfico de
Estados Foco no estado de mudanças de um sistema orientado por Eventos Diagrama de Atividades Foco no fluxo de controle entre objetos
Relacionamento entre classes
Os objetos tem relações entre eles:
Exemplo1: Um professor ministra uma disciplina para alunos
numa sala de aula;
Exemplo2: Um cliente faz uma reserva de alguns lugares para
uma determinada data, etc.
Essas relações são representadas também no Diagrama de Classe.
A UML reconhece três tipos fundamentais de relações:
- Dependência,
- Associação (Agregação e Composição)
- Generalização (ou herança).
Devido à complexidade dos softwares modernos, as classes se relacionam entre
si para cumprir uma determinada responsabilidade. O relacionamento e a
comunicação entre as classes são fundamentais para a compreensão do sistema.
A UML utiliza as seguintes notações para a representação dos relacionamentos entre classes :
Associação : São relacionamentos estruturais entre instâncias e especificam
que objetos de uma classe estão ligados a objetos de outras classes. Pode-se
ter associação uniária , binária , etc.
A associação pode existir entre classes ou entre objetos. Uma associação
entre a classe
Professor
e a classe
Disciplina
(um professor ministra uma
disciplina) significa que uma instância de Professor (um professor específico)
vai ter uma associação com uma instância de Disciplina.
Esta relação significa que as instâncias das classes são conectadas, seja
fisicamente ou conceitualmente.
Dependência - São relacionamentos de utilização no qual uma mudança
na especificação de um elemento pode alterar a especificação do elemento
dependente. A dependência entre classes indica que os objetos de uma classe
usam serviços dos objetos de outra classe.
15 Certificação SCJA - UML Prof. Aníbal Fernandes
Conceitual
Apenas classes são utilizadas. Neste tipo de perspectiva, uma classe é interpretada como um conceito, apenas atributos são utilizados.
Especificação
Tanto classes como interfaces são utilizados neste tipo de perspectiva. O foco consiste em mostrar as principais interfaces e classes juntamente com seus métodos.
Não é necessário mostrar todos os métodos, pois o objetivo deste diagrama, nesta perspectiva, é prover melhor compreensão da arquitetura do software via interfaces.
Implementação
Nesta perspectiva, vários detalhes de implementação podem ser abordados, tais como: Visibilidade (Encapsulamento) de atributos e métodos
Parâmetros de cada método, inclusive o tipo de cada um; Tipos dos atributos e dos valores de retorno de cada método.
Diagrama de Classes - Um diagrama de três faces
Descreve os vários tipos de objetos no sistema e o relacionamento entre eles.
Perspectivas: Um diagrama de classes pode oferecer três perspectivas, cada uma para um tipo de observador diferente. São elas:
Conceitual
Representa os conceitos do domínio em estudo. Perspectiva destinada ao cliente.
Especificação
Tem foco nas principais interfaces da arquitetura, nos principais métodos, e não como eles irão ser implementados.
Perspectiva destinada as pessoas que não precisam saber detalhes de desenvolvimento, tais como gerentes de projeto.
Implementação - a mais utilizada de todas (Por que?)
Aborda vários detalhes de implementação, tais como navegabilidade, tipo dos atributos, etc. Perspectiva destinada ao time de desenvolvimento.
Identifique os profissionais para cada perspectiva
Diagrama de Classes - Um diagrama de três faces
Conceitual
Diagrama de Classes - Um diagrama de três faces
Especificação
10/04/2012 Certificação SCJA - UML Prof. Aníbal Fernandes 19
Perspectiva para a gerência (Regras de Negócio)
Diagrama de Classes - Um diagrama de três faces
Implementação
Perspectiva destinada para os desenvolvedores
O
Diagrama de Classes
é capaz de listar todos os conceitos do domínio
que serão implementados no sistema e as relações entre os conceitos.
Ele é muito importante, pois define a estrutura do sistema que será
desenvolvido.
O
Diagrama de Classes
é consequência do prévio levantamento de
requisitos
e
definição de
casos de usos e classes
. Como exemplo, vamos supor que
necessitamos desenvolver um sistema destinado à automatização de um
consultório dentário. As etapas básicas envolvidas poderiam seriam:
a)
Levantamento e análise de requisitos
do sistema a ser desenvolvido.
b)
Entrevista
com o dentista(s) e com as pessoas que trabalham no consultório
c)
Definição dos objetos do sistema
: Pacientes, agenda, dentistas, serviço,
contrato, consulta, pagamento, etc..
d)
Definição dos atores do sistema
: paciente, dentista, secretária.
e)
Definição e detalhamento dos casos de uso
:
marcar
consulta ,
confirmar
consulta ,
cadastrar
paciente ,
cadastrar
serviços , etc.
f)
Definição das classes
: Paciente, Dentista , Exame , Agenda , Serviço
g)
Definição dos atributos e métodos de cada uma das classes
Exemplo de questões do Exame SCJA - UML
Exemplo de representação UML para Herança
“Tem-Um” “Tem-Um”
Exemplo de questões do Exame SCJA - UML
Representação Gráfica UML para
classes Concretas e Abstratas
Exemplo de questões do Exame SCJA - UML
Associação: É uma conexão entre classes, e também significa que é uma conexão entre objetos daquelas classes. Uma associação representa que duas classes possuem uma ligação (link), por exemplo, elas "conhecem uma a outra", "estão conectadas com", "para cada X existe um Y" e assim por diante.
Classes e associações são muito poderosas quando modeladas em sistemas complexos.
Definição de Associação em UML
O tipo mais comum de associação é apenas uma conexão entre classes.
É representada por uma linha sólida entre duas classes. A associação possui um
nome (junto à linha que representa a associação), normalmente um verbo, mas
substantivos também são permitidos.
Pode-se também colocar uma seta no final da associação indicando que esta só
pode ser usada para o lado onde a seta aponta. Mas associações também podem
possuir dois nomes, significando um nome para cada sentido da associação.
Para expressar a multiplicidade entre os relacionamentos, um intervalo indica
quantos objetos estão relacionados no link. O intervalo pode ser de zero para um
(0..1), zero para vários (0..* ou apenas *), um para vários (1..*), dois (2), cinco para
11 (5..11) e assim por diante. É também possível expressar uma série de números
como (1, 4, 6..12). Se não for descrita nenhuma multiplicidade, então é
considerado o padrão de um para um (1..1 ou apenas 1).
10/04/2012 Certificação SCJA - UML Prof. Aníbal Fernandes 29
Descreva o tipo de Associação apresentada nas figuras
abaixo e justifique a sua utilização
Exemplo de questões do Exame SCJA - UML
Representação UML para Diagramas
1) Identifique os atores e casos de uso em cada um dos planos
de discurso a seguir.
DESAFIO EXTRA EM UML
a) “… o sistema possibilita ao cliente atualizar seus dados
cadastrais acessando o site na internet…”
b) “… o caixa eletrônico permitirá ao associado da cooperativa
emitir um extrato da sua conta, bem como retirar ou depositar
uma quantia financeira na sua conta…”
c) “… a secretária pode importar o Registro Acadêmico dados
dos alunos do sistema administrativo, desde que informe o seu
login e senha…”
2) De acordo com a imagem a seguir:
a) Descreva as funcionalidades que o sistema é capaz de realizar. b) Identifique se há erros no Diagrama e justifique o seu ajuste. c) Construa um novo diagrama de caso de uso corrigindo os erros.
3) Crie um diagrama de classes para o seguinte problema:
Sistema de gestão de vendas imobiliárias
“Uma empresa de imobiliário vende imóveis. Para tal detém uma
carteira de clientes e uma carteira de imóveis que tenta conciliar. Os
clientes são descritos pelo seu nome e código, endereço e
telefone.Os imóveis são descritos pelo seu código, tipologia, zona,
ano de construção e preço. Os clientes têm um conjunto de
interesses que descrevem as suas preferências por tipologia, zona e
preço. Os clientes podem firmar acordos de promessa de
compra/venda com a empresa para um determinado imóvel, sendo
este acordo firmado numa determinada data. Um cliente pode
comprar mais do que um imóvel, mas para cada compra terá de ter
um acordo distinto. Identifique algumas operações nas classe e
4) Considere o seguinte discurso relativo a um sistema de
partidas de tênis:
“Num torneio de tênis, cada partida é jogada entre 2
jogadores. Pretende-se manter informação sobre o nome e
idade dos jogadores; data da partida e atribuição dos
jogadores às partidas. O máximo de partidas que um jogador
poderá realizar é 6 e o mínimo 1″.
Elabore um diagrama de classes para o problema.Identifique
algumas operações nas classe e monte um diagrama de
sequencia como exemplo.
Vamos analisar a proposta de solução do autor do livro
Diagrama de Classes
Diagrama de Sequencia
PRATICAR PARA FIXAR CONCEITOS VISANDO O EXAME SCJA
Vamos supor que há uma demanda no mercado por aplicativos que sejam capazes
de simular um dicionário Inglês – Português. A ideia é que a usuário, devidamente
Cadastrado e “logado”, entre com a palavra em inglês e o aplicativo retorne o seu
significado em português. É fornecido um arquivo ASCII para simular nosso BD.
Utilize os conceitos de Coleção
.a - a[Article]
a - primeira letra do alfabeto.[Article] a - uma[Article]
a - um[Article]
aardvark - oricterope, porco-da-terra[Noun] aardvarks - porco-da-terra, oricterope
aback - a\s avessas[Adverb] aback - atra/s, detra/s[Adverb] aback - para tra/s[Adverb] aback - por tra/s[Adverb] aback - para trás abacus - a/baco[Noun] abacus - ábaco(Noun)[Noun] abacuses - a/bacos[Noun] En gl is h _ Po rt u gu e se .t xt
10/04/2012 Certificação SCJA - UML Prof. Aníbal Fernandes 41
Nosso objetivo é desenvolver um aplicativo dicionário Inglês - Português
1- Sobre a Documentação: Regras de Negócio
1.1 - Apresentar o Diagrama Use Case UML
1.2- Apresentar o Diagrama de Classe UML
2- Implementar em uma linguagem OO
3- Utilizar os recursos de Estrutura de Dados da linguagem, em Java temos as
famosas Coleções. Verificar qual a que mais se adaptada problema proposto
import java.util.*; import java.io.*;
public class ReadFile {
public static void main(String a[]) throws Exception { FileReader file = new
FileReader("c:\\Fatec2012\\LPII\\CertificacaoSCJA\\English_Portuguese.txt"); Scanner in = new Scanner(file);
while( in.hasNext()) { System.out.println(in.nextLine()); } } }