Upload
lcbj
View
3.999
Download
2
Embed Size (px)
Citation preview
UML
Msc Luiz Barboza
Interface Um abstração Descreve:
Propriedades (atributos) Comportamento (operações) Relacionamentos Semântica
Nome da classe
Atributos
Operações
Professor
nameProfessorId : UniqueId
create()save()delete()change()
UMLRepresentação de Classe
Boundary
Entity
Control
<<boundary>>
<<control>>
<<entity>>
=
=
=
Revisão
Uso do Diagrama de Classe
Modelar uma visão estática do sistema, pode ser obtido com técnicas de analise com base no: Entidades do sistema. Arquitetura desejada. Modelo da base de dados.
Estudante
+ get tuition()+ add schedule()+ get schedule()+ delete schedule()+ has pre-requisites()
Professor- name- employeeID : UniqueId- hireDate- status- discipline- maxLoad
+ submitFinalGrade()+ acceptCourseOffering()+ setMaxLoad()+ takeSabbatical()
Mecanismo de organização para agrupamento de outros elementos.
Pacote
Camada de
Negócio
Relacionamento fraco entre dois elementos
Usado quando não existe uma relação de associação permanente entre os dois elementos.
Em termos técnicos se trata tipicamente passagem de parâmetros ou variáveis locais de métodos.
Aluno NotaParc
Dependências
Associações Relacionamentos estruturais permanentes
Dependência Relacionamento ‘fraco’ temporário.
Ambas são identificadas pelo diagrama de seqüência gerado na atividade de análise.
Association
EstudanteNotaFinal
NotaParcial
Dependency
Dependências vs. Associações
Processo de Análise
Identificar Associação vs Dependência Refinamento de Associação
Composição Agregação
Atributo Primitivo x Associação Navegabilidade Multiplicidade
Agregação Tempo de vida da classe ‘parte’ independente do tempo da
classe ‘todo’
Composição Tempo de vida restrito.
Todo Parte1..* 0..*
Multiplicidade > 1
Multiplicidade = 1
1Todo Parte0..*
Composição
Associação:Agregação vs Composição
Atributo Primitivo vs Associação
Associação quando: Elemento não restrito a um tipo primitivo Tipicamente um atributo correlacionado a outros
da mesma classe. Alem da propriedade o elemento possuir um
comportamento. Ex Cliente vs Endereço.
Navegabilidade Indica o sentido da navegação
Para cada destino de navegação é preciso um atributo na classe de origem Nome do atributo determina pelo nome da extremidade destino da associação
Estudante
Curso
curso
Associação nomeada: ‘Role’ (papel)
Multiplicidade
2..4
0..1
1..*
0..*
1
*
Não especificado Apenas 1
Zero ou mais
Um ou mais Zero ou um ‘Range’ específico Vários ‘Range’
2, 4..6
Multiplicidade = 1, ou Multiplicidade = 0..1 Atributo simples
Multiplicidade > 1 É preciso utilizar alguma estrutura de dados
Implementação da Multiplicidade
0..*0..1
instructor MateriaProfessor
0..*0..1
instructor
Needs a container
Professor Materia
Estrutura de Dados Explícito
Por nota
instructorProfessor Materia
0..*0..1
Materia<<entity>>
Professor<<entity>>
CadastroaMaterias
+ new()+ add()
1
0..*
0..10..1
+instructor
Materia
0..*0..1
instructor
ListaLigada
Professor
Item
ListClasse Parametrizada
Tipo
Classe Parametrizada (Template)Generics
Classe que necessita de um tipo adicional para sua instanciação
Tipicamente Coleções ex Lista, Dicionário, Fila e Pilha
Generalização (Herança)
Define Relacionamento de ‘é-um’ Herança de atributos e métodos
Conta
balancenamenumber
Withdraw()CreateStatement()
CCorrente Poupança
GetInterest()
Superclass
Subclasses
RelacionamentoGeneralização
Leao
talk ()
Tigre
talk ()
Animal
{abstract}
talk () {abstract}
Classes Concretas e Abstratas Abstrata
Basta um método sem comportamento, abstrato Não pode ser instanciado
Concreto Caso precise redefinir o método,
indicar como ‘virtual’ (C#) Pode ser instanciado
Window
WindowWithScrollbar
Scrollbar
Esta correto?
Generalização vs Agregação
Generalização = relação ‘é-um’ Agregação = relação ‘tem-um’
Scrollbar
Window
WindowWithScrollbar11
Window
WindowWithScrollbar
Scrollbar
WindowWithScrollbar “é-uma” WindowWindowWithScrollbar “tem-uma” Scrollbar
Generalização vs Agregação
1: cadastrarCliente()
Objeto Cliente Objeto Fornecedor
Mensagem
:Boundary :Control
Escopo de atividade
Chamada localLinha de vida
1.1:validarCredito()
Numeração de seqüência demensagens
UML: Diagrama de Seqüência
UML
Msc Luiz Barboza