Escolar Documentos
Profissional Documentos
Cultura Documentos
Tpicos abordados
Diagramas e elementos UML relacionados a fase de Anlise & Projeto
de de de de
Objetivos
Mapear os conceitos de OO em UML
Ser capaz de modelar um sistema usando UML
de de de de
A UML a linguagem padro para visualizar, especificar, construir e documentar artefatos de um sistema de software
4
Histria da UML
Nov 97 UML aprovada pelo OMG
UML: A Linguagem de
Modelagem
Modelagem Visual
Modelagem Visual permite que voc construa da forma correta na primeira vez:
Entender os requisitos do usurio Validar que o design atende as necessidades Visualizar interface, lgica de negcio e dados separadamente Separar domnios de negcio conforme apropriado Vizualizar todas as dependncias Validar performance antes do cdigo comear
7
Analista de Negcios
Modelos de SW
Engenheiro de Software
Modelos de Dados
Conceitos da UML
A UML pode ser usada para modelar visualmente:
A interao de sua aplicao com o mundo externo O comportamento de sua aplicao A estrutura de seu sistema Os componentes de seu sistema A arquitetura de sua empresa
9
Diagramas UML
Digrama de classes Diagrama de casos de uso Diagrama de componentes Diagrama de distribuio Diagrama de estados Diagrama de atividades Diagrama de interao
Diagrama de classes
Um diagrama de classes mostra a estrutura de seu software
JanelaMatricula AlgoritmoCalendario
0..*
1 GerenciadorMatricula
adAluno(Curso, AlunoInfo)
1
UsuarioMatricula
nome
Curso
0..* numCreditos
Aluno
dataGraduacao aberto() adAluno(AlunoInfo)
nome
1 3..10
Professor
classificacao
4 1
1..*
CursoOferecido
localizacao
0..4 aberto()
adAluno(AlunoInfo)
11
Classe em UML
Classe representada usando-se um retngulo
Professor
12
Atributo em UML
Classe
Objeto
Valor do Atributo
: Professor
titulo = Mestre Nome = Gibeon
Professor
titulo nome
: Professor
titulo = PhD nome = Ivan
Nome do Atributo
13
Operao em UML
Professor
14
Resumo de classes
Uma classe composta por trs sees
Nome da Classe
Atributos Operaes DVD
Hora Status
Voltar() Pausar() Adiantar() Parar() Tocar()
estrutura comportamento
15
Cubo
Tubo
Piramide
Relacionamentos de realizao
16
Relacionamentos de realizao
17
Pacote em UML
Favorece a modularidade Pode ser aplicado para modularizar outros elementos de UML
nome do pacote
18
Relacionamentos
Associao
agregao composio
19
Associao
Modela a conexo semntica entre classes Nome da associao
Professor
Trabalha para
Universidade
Professor
Empregado Empregador
Universidade
20
Agregao
Uma forma especial de associao que modela um relacionamento todo-parte entre um agregado (todo) e suas partes
Todo Agregao Parte
Estudante
Disciplina
21
Composio
Uma forma de agregao com uma relao de posse forte
Estudante
Disciplina
22
Dependente e Funcionrio? Pedido e Item do pedido? Funcionrio e Carto de ponto? Carro, Roda, Direo e Carburador?
Na dvida, use agregao!
Exercicios
Identificar os relacionamentos do sistema de reserva
24
Multiplicidade
Multiplicidade define quantos objetos participam do relacionamento
O nmero de instncias de uma classe relacionada a uma instncia de outra classe Especificado em cada uma das pontas da associao
25
Tipos de Multiplicidade
No especificada
Exatamente um
Zero ou mais Muitos (mesmo que 0..*)
1 0..*
*
Um ou mais
Zero ou um Intervalo determinado Valores mltiplos
1..*
0..1 2..4 2, 4..6
26
Exemplo: Multiplicidade
Multiplicidade
Estudante
1..*
Disciplina
27
Navegao
Especifica a direo da associao
Associaes e agregaes so bidirecionais por default
28
Exemplo: Navegao
Estudante
1..*
Disciplina
Navegao
29
Exercicios
Identificar navegao e multiplicidade
30
Dependncia
Uma dependncia entre dois elementos indica que mudana em um elemento pode causar mudanas no outro Relacionamento no estrutural (uso)
Fornecedor
32
Dependncia em Java
class Log { ... void gravar(){ Arquivo a =...; a.escrever(...); } }
33
Dependncia
Pode existir relacionamento de dependncia entre vrios elementos de UML
Classe
Cliente Fornecedor
Componente
Pacote
Cliente
Fornecedor
PacoteCliente
PacoteFornecedor
Dependncia
34
Generalizao
Relacionamento entre classes onde uma classe compartilha a estrutura (atributos e relacionamentos) e comportamento (operaes) de outras classes Relacionamento um tipo de
35
Herana Simples
Uma classe herda de uma outra
Figura
Superclasse (pai)
cor largura da linha desenhar() selecionar()
Relacionamento de Generalizao
Crculo raio centro desenhar() Retngulo vertices desenhar() diagonal()
Subclasses
36
Herana Mltipla
Classes herdando de mais de uma classe
Mamfero
AnimalVoador
Herana mltipla
Cachorro
Gato
Morcego
Passarinho
Gaviao
37
Herana Mltipla
O que acontece quando as superclasses possuem o mesmo mtodo (mtodos com o mesmo nome? O que acontece quando se tenta executar um mtodo que no est definido na subclasse? Em que hierarquia de superclasses deve-se procurar o mtodo?
38
Realizao
Indica que um elemento serve como contrato que o outro deve seguir
Classe
Subsistema
Componente
Realizao
Caso de uso
Objeto em UML
: Professor Apenas o nome da classe
gibeon
Apenas o nome do objeto
40
Diagrama de estados
Um diagrama de estados mostra o ciclo de vida de um objeto
Adiciona Aluno[ contador < 10 ] Inicializado
do: Incializa Curso
Aberto
[ contador = 10 ]
Cancela
Fechado
do: Finaliza curso
41
Exerccio
42
Diagrama de componentes
Diagramas de Componentes ilustram a organizao e dependncias entre componentes de software
43
O que so componentes
Parte no trivial, quase independente, substituvel de um sistema, que prov a realizao de (uma/um conjunto de) interface(s) Exemplos
Componente em UML
Arquivo fonte
<<DLL>> Componente
45
Matricula.exe
Pessoa.dll Curso.dll
Curso
Usuario
46
Subsistemas
Uma combinao de pacotes (pode conter outro elementos) e classe (tem comportamento) Realiza uma ou mais interfaces, que definem o seu comportamento Facilita o encapsulamento e a modularidade
47
Subsistema em UML
Realizao Subsistema <<subsystem>> Interface Nome do subsistema
48
Subsistemas e Componentes
Ambos encapsulam um comportamento modelado por interfaces Subsistemas representam componentes no modelo de projeto Componentes so a realizao fsica dos subsistemas
Projeto
<<subsystem>> Nome do subsistema
Implementao
Nome do componente
49
Diagramas de Interao
Modelam interaes do sistema com seus atores A interao iniciada por um ator e envolve instncias (objetos) das classes Diagramas de interao capturam a semntica do fluxo de eventos do caso de uso
Diagramas de iterao
Existem dois tipos
So semanticamente equivalentes
Um pode ser gerado automaticamente a partir do outro
51
Mensagem reflexiva
1: Realize responsabilidade
1.1: Realize outra responsabilidade
Mensagem
52
: Aluno
controle de matrcula
mat 101
1: preenche info 2: submete 3: ad curso(Jose, mat 101) 4: ad(Jose) 5: curso aberto? 6: ad(Jose)
53
:Cliente
Mensagem
Objeto fornecedor
54
: Secretaria
3: adiciona curso
gerenciador : GerenciadorCurriculo
55
Colaborao X Sequncia
Colaborao
Melhores para visualizar os relacionamentos e responsabilidades de um dado objeto Mais fceis de desenhar - teis em sesses de brainstorm
Seqncia
Melhores para visualizar a seqncia do fluxo no tempo Melhores para visualizar o fluxo completo Mais adequados para cenrios complexos
56
Exerccio
57
58
Esteretipos
Mecanismo utilizado para estender os elementos de UML Define um novo modelo de elemento em termos de outro j existente Pode ser aplicado a todos os elementos Representado como
Esteretipos - Exemplo
Classes de fronteira:
<<boundary>> ClasseFronteira ClasseFronteira
60
Notas
Anotao utilizada para adicionar informao a diagramas
Pode ser afixionada a qualquer elemento de UML Pode ser ligada a um elemento com uma linha tracejada
LeitoraCartao
Esta classe uma abstrao do dispositivo de hardware que ser usado para ler efetivamente as informaes do carto magntico.
61
Restries
Usadas para criao de novas regras sobre elementos do modelo ou modificao de regras existentes
Funcionrio
Professor
1..*
Departamento
Coordenador
3
{subset}
1
63
FIM!!!
64