Diagrama de Classes - msoo / FrontPagemsoo.pbworks.com/f/Diagrama+de+Classes.pdfModelo conceitual...

23
UML Diagrama de Classes

Transcript of Diagrama de Classes - msoo / FrontPagemsoo.pbworks.com/f/Diagrama+de+Classes.pdfModelo conceitual...

Page 1: Diagrama de Classes - msoo / FrontPagemsoo.pbworks.com/f/Diagrama+de+Classes.pdfModelo conceitual – Para que? Não existe um modelo conceitual totalmente correto ou incorreto. Existem

UML

Diagrama de Classes

Page 2: Diagrama de Classes - msoo / FrontPagemsoo.pbworks.com/f/Diagrama+de+Classes.pdfModelo conceitual – Para que? Não existe um modelo conceitual totalmente correto ou incorreto. Existem

Introdução

Descreve relações estáticas, basicamente: Classes e sub-classes Associações

Atemporal Diagrama mais importante Objeto = qualquer coisa que faz sentido no

contexto da aplicação Classe = conjunto de objetos com atributos,

comportamentos e semântica comnus

Page 3: Diagrama de Classes - msoo / FrontPagemsoo.pbworks.com/f/Diagrama+de+Classes.pdfModelo conceitual – Para que? Não existe um modelo conceitual totalmente correto ou incorreto. Existem

Perpectivas (Niveis de Abstracao)

Conceitual

Especificação Logica (Tipos e Interfaces)

Implementação (Fisica)

I

IMAGEM

DOMÍNIO

Page 4: Diagrama de Classes - msoo / FrontPagemsoo.pbworks.com/f/Diagrama+de+Classes.pdfModelo conceitual – Para que? Não existe um modelo conceitual totalmente correto ou incorreto. Existem

Modelo Conceitual

No Modelo Conceitual representamos conceitos relativos ao domínio de um problema. Devemos nos concentrar no negocio e não em detalhes da implementação.

Page 5: Diagrama de Classes - msoo / FrontPagemsoo.pbworks.com/f/Diagrama+de+Classes.pdfModelo conceitual – Para que? Não existe um modelo conceitual totalmente correto ou incorreto. Existem

Modelo Conceitual – O quê?

Representamos no modelo conceitual: Conceitos Atributos relacionados aos conceitos Associação entre conceitos

Page 6: Diagrama de Classes - msoo / FrontPagemsoo.pbworks.com/f/Diagrama+de+Classes.pdfModelo conceitual – Para que? Não existe um modelo conceitual totalmente correto ou incorreto. Existem

Modelo conceitual – Para que?

Não existe um modelo conceitual totalmente correto ou incorreto. Existem modelos úteis e inúteis. [Larman 97]

Se modelarmos um conceito de uma determinada maneira, devemos nos questionar quanto a sua utilidade e se a forma que modelamos é a que mais no facilitará.

Page 7: Diagrama de Classes - msoo / FrontPagemsoo.pbworks.com/f/Diagrama+de+Classes.pdfModelo conceitual – Para que? Não existe um modelo conceitual totalmente correto ou incorreto. Existem

Queremos:

Representar abstrações Independência de Implementações Facilidade de comunicação

Page 8: Diagrama de Classes - msoo / FrontPagemsoo.pbworks.com/f/Diagrama+de+Classes.pdfModelo conceitual – Para que? Não existe um modelo conceitual totalmente correto ou incorreto. Existem

Modelo Conceitual – Como?

Conceito é uma idéia ou um algo tangível, uma coisa

Construímos o modelo: Usando nomes comuns ao negócio Omitindo coisas ou detalhes irrelevantes Sem acrescentar coisas que não estejam o

negócio

Page 9: Diagrama de Classes - msoo / FrontPagemsoo.pbworks.com/f/Diagrama+de+Classes.pdfModelo conceitual – Para que? Não existe um modelo conceitual totalmente correto ou incorreto. Existem

Notação (Elementos)

N

Classes Atributos Operações Associações

Papéis Cardinalidade Navegabilidade (Uni-direcional x Bi-direcional)

N

Generalização Restrições Agregação e Composição

Page 10: Diagrama de Classes - msoo / FrontPagemsoo.pbworks.com/f/Diagrama+de+Classes.pdfModelo conceitual – Para que? Não existe um modelo conceitual totalmente correto ou incorreto. Existem

Classes

Page 11: Diagrama de Classes - msoo / FrontPagemsoo.pbworks.com/f/Diagrama+de+Classes.pdfModelo conceitual – Para que? Não existe um modelo conceitual totalmente correto ou incorreto. Existem

Atributos

visibilidade nome : expressão-tipo = valor inicial {propriedades}

Visibilidade Privado – Público + Protegido #

Expressão – tipo Tipo do atributo. Depende da linguagem utilizada.

Propriedades Escopo

Page 12: Diagrama de Classes - msoo / FrontPagemsoo.pbworks.com/f/Diagrama+de+Classes.pdfModelo conceitual – Para que? Não existe um modelo conceitual totalmente correto ou incorreto. Existem

Associações

Generalização Agregação Composição Papéis (Necessário para ligação de uma

classe com ela mesma)

c

Multiplicidade Navegabilidade (Uni-direcional x Bi-direcional)

N

Restrições

Page 13: Diagrama de Classes - msoo / FrontPagemsoo.pbworks.com/f/Diagrama+de+Classes.pdfModelo conceitual – Para que? Não existe um modelo conceitual totalmente correto ou incorreto. Existem

Generalização

Page 14: Diagrama de Classes - msoo / FrontPagemsoo.pbworks.com/f/Diagrama+de+Classes.pdfModelo conceitual – Para que? Não existe um modelo conceitual totalmente correto ou incorreto. Existem

Agregação

É um tipo específico de associação Relacionamento PARTE/TODO Cria uma restrição de integridade na

associação Esconde as partes dentro do todo Aumenta o acoplamento

Page 15: Diagrama de Classes - msoo / FrontPagemsoo.pbworks.com/f/Diagrama+de+Classes.pdfModelo conceitual – Para que? Não existe um modelo conceitual totalmente correto ou incorreto. Existem

Agregação

Page 16: Diagrama de Classes - msoo / FrontPagemsoo.pbworks.com/f/Diagrama+de+Classes.pdfModelo conceitual – Para que? Não existe um modelo conceitual totalmente correto ou incorreto. Existem

Composição

Também é uma associação É uma agregação Impõe uma restrição de integridade ainda

mais severa a associação/agregação Introduz o conceito de vidas coincidentes!!!

Page 17: Diagrama de Classes - msoo / FrontPagemsoo.pbworks.com/f/Diagrama+de+Classes.pdfModelo conceitual – Para que? Não existe um modelo conceitual totalmente correto ou incorreto. Existem

Composição

Page 18: Diagrama de Classes - msoo / FrontPagemsoo.pbworks.com/f/Diagrama+de+Classes.pdfModelo conceitual – Para que? Não existe um modelo conceitual totalmente correto ou incorreto. Existem

Agregação, composição e associação

Composição: um trem é formado por locomotiva e vagões

Agregação: uma locomotiva tem um farol (mas não vai deixar de ser uma locomotiva se não o tiver)

Associação: um trem usa uma estrada de ferro (não faz parte do trem, mas ele depende dela)

Page 19: Diagrama de Classes - msoo / FrontPagemsoo.pbworks.com/f/Diagrama+de+Classes.pdfModelo conceitual – Para que? Não existe um modelo conceitual totalmente correto ou incorreto. Existem

Papel (Role)

Page 20: Diagrama de Classes - msoo / FrontPagemsoo.pbworks.com/f/Diagrama+de+Classes.pdfModelo conceitual – Para que? Não existe um modelo conceitual totalmente correto ou incorreto. Existem

Associações – Exemplos

Page 21: Diagrama de Classes - msoo / FrontPagemsoo.pbworks.com/f/Diagrama+de+Classes.pdfModelo conceitual – Para que? Não existe um modelo conceitual totalmente correto ou incorreto. Existem

Operações

visibilidade nome (lista-parametros) : expressão-tipo-retorno {propriedades}

lista-parâmetros gênero nome : expressão-tipo = valor-default

gênero -> in ,out , inout expressão-tipo -> dependente da linguagem valor-default -> opcional

propriedades características da operação

Ex.: seqüencial ou concorrente Especificação da operação

Descrita por uma nota (recurso genérico) ligada a operação

Page 22: Diagrama de Classes - msoo / FrontPagemsoo.pbworks.com/f/Diagrama+de+Classes.pdfModelo conceitual – Para que? Não existe um modelo conceitual totalmente correto ou incorreto. Existem

Conceitos Avançados

Classes de Associação Restrição

Esteriótipos Atributos Derivados Classes Abstratas e Interfaces

Refinamento Templates Visibilidade

Page 23: Diagrama de Classes - msoo / FrontPagemsoo.pbworks.com/f/Diagrama+de+Classes.pdfModelo conceitual – Para que? Não existe um modelo conceitual totalmente correto ou incorreto. Existem

Atributos Derivados