Diagrama de Classes-Simplificado
Diagrama de Classes-Simplificado
Diagrama de Classes-Simplificado
UML
por Antnio Maurcio Pitangueira
2011
Introduo
Na prtica o diagrama de classes bem mais utilizado que o diagrama de objetos. Tanto que o modelo de objetos tambm conhecido como modelo de classes. Esse modelo evolui durante o desenvolvimento do SSOO. medida que o SSOO desenvolvido, o modelo de objetos incrementado com novos detalhes. H trs nveis sucessivos de detalhamento: Anlise Especificao (Projeto) Implementao.
O objetivo da modelagem de classes de anlise prover respostas para as seguintes perguntas: Por definio um sistema OO composto de objetos...em um nvel alto de abstrao, que objetos constituem o sistema em questo? Quais so as classes candidatas? Como as classes do sistema esto relacionadas entre si? Quais so as responsabilidades de cada classe?
Objetivo: descrever o problema representado pelo sistema a ser desenvolvido, sem considerar caractersticas da soluo a ser utilizada. um dicionrio visual de conceitos e informaes relevantes ao sistema sendo desenvolvido. Duas etapas:
classes e atributos; associaes, composies e agregaes (com seus adornos); classes de associao; generalizaes (herana).
O modelo de anlise no representa detalhes da soluo do problema. Embora este sirva de ponto de partida para uma posterior definio das classes de software (especificao).
Anlise
Pago-por
data hora
-data:Date -hora:Time
+getTotal():Currency
6
Diagrama de classes
7
Diagrama de Classe
O mais importante diagrama de UML. Representao das abstraes importantes do sistema (classes) e de suas relaes.
(estrutura)
Classes
Uma classe descreve esses objetos atravs de atributos e operaes.
Atributos correspondem s informaes que um objeto armazena. Operaes correspondem s aes que um objeto sabe realizar.
10
Diagrama de Classe
Persistncia: preservar de maneira permanente os objetos de uma classe, ou seja, a classe precisa ser persistente Semelhana com entidades definidas com tabelas em banco de dados
11
Diagrama de Classe
Classes Relacionamentos
Exemplo de Classe
NotaFical -codigo -naturezaOperacao -condicaoPagamento
Nome da classe
Visibilidade
Atributos
Operaes/Mtodo s
13
so
Pblica (+): a operao visvel para elementos de modelo Protegida (#): a operao visvel somente para a prpria classe e suas subclasses ou para amigos da classe (dependente de linguagem) Privada (-): a operao visvel somente para a prpria classe e para os amigos da classe
14
A especificao do problema refere normalmente objetos concretos, mas deve-se abstrair a realidade e achar descries comuns a vrios objetos semelhantes Escolher cuidadosamente os nomes
15
Identificando classes
Identificao de operaes e
Identificao de relacionamento.
16
mundo
Procurar na especificao de casos de uso por conceitos que representem objetos do domnio de aplicao a ser desenvolvido
17
Identificao de atributos
Propriedades que caracterizam um objeto Atributos identificados devem estar alinhados com as necessidades do usurio para o problema Nomes significativos para os atributos Se necessrio identificar a visibilidade dos atributos
Identificao de operaes
Tambm chamadas de mtodos ou servios Operaes so aes que o objeto capaz de efetuar Identificar aes que o objeto de uma classe responsvel pode desempenhar dentro do escopo do sistema que ser desenvolvido Normalmente operaes so pblicas, permitindo sua utilizao por outros objetos
19
Relaes: Associaes
Associao: uma relao que permite especificar que objetos de uma dada classe se relacionam com objetos de outra classe. As associaes podem ter um nome. O nome pode ter uma seta associada, indicando a direo em que o nome deve ser lido. Uma associao representa relacionamentos (ligaes) que so formados entre objetos durante a execuo do sistema. Note que, embora as associaes sejam representadas entre classes do diagrama, tais associaes representam ligaes possveis entre os objetos das classes envolvidas.
20
Na UML associaes so representadas por uma linha que liga as classes cujos objetos se relacionam. Exemplos:
21
Multiplicidades
Representam a informao dos limites inferior e superior da quantidade de objetos aos quais outro objeto pode se associar. Cada associao em um diagrama de classes possui duas multiplicidades, uma em cada extremo da linha de associao.
Simbologia na UML
1..1 (ou 1) 0..* (ou *) 1..* 0..1 li..ls
22
Nome
Apenas Um Zero ou Muitos Um ou Muitos Zero ou Um Intervalo Especfico
Exemplos (multiplicidade)
Exemplo
Pode haver um cliente que esteja associado a vrios pedidos. Pode haver um cliente que no esteja associado a pedido algum. Um pedido est associado a um, e somente um, cliente.
Exemplo
Uma corrida est associada a, no mnimo, dois velocistas Uma corrida est associada a, no mximo, seis velocistas. Um velocista pode estar associado a vrias corridas.
23
Conectividade
A conectividade corresponde ao tipo de associao entre duas classes: muitos para muitos, um para muitos e um para um. A conectividade da associao entre duas classes depende dos smbolos de multiplicidade que so utilizados na associao.
Em um extremo No outro extremo
Conectividade
Um para um
Um para muitos
0..1 1
0..1 1
0..1 1
* 1..* 0..*
* 1..* 0..*
* 1..* 0..*
24
Para melhor esclarecer o significado de uma associao no diagrama de classes, a UML define trs recursos de notao:
Nome da associao: fornece algum significado semntico a mesma. Direo de leitura: indica como a associao deve ser lida Papel: para representar um papel especfico em uma associao.
25
Associao Unria/Reflexiva/Autoassociao
Funcionrio
-Codigo : long -Nome : char[30] -Codigo Chefe : long +ConsFucinario(Codigo : long, parameter) : int +ConsChefe(Codigo Chefe : long) : int 0..*
Chefia
26
Associao Binria
Representa uma relao estrutural entre duas classes indicando que estas se comunicam atravs de troca de mensagem.
0..* Cliente
Visual Paradigm for UML Standard Edition(Universidade Tecnologica Federal do Parana - Visual Paradigm for UML Standard Edition(Universidade Tecnologica Federal do Para Campus Cornelio Procopio)
Conta Bancria
Scio
Possui
Dependente
0..*
0..*
Multiplicidade
Navegabilidade da Associao
27
Conectam mais de duas classes. teis para associaes complexas, no entanto deve-se evitar utiliz-las, pois sua leitura , por vezes, difcil de se interpretar. Professor Turma
Visual Paradigm for UML Standard Edition(Universidade Tecnologica Federal do Parana - Campus Cornelio Procopio)
1..*
1..*
Leciona
Possui
Utiliza
28
Associao de Agregao
Tipo especial de associao. Demonstra que as informaes de um objeto (objeto-todo) precisam ser complementadas pelas informaes contidas em um ou mais objetos de outra classe (objeto-parte). Um objeto-parte no pode ser destrudo por um objeto diferente do objeto-todo
Visual Paradigm for UML Standard Edition(Universidade Tecnologica Federal do Parana - Campus Cornelio Procopio)
Agencia
ContaBancaria
0..*
29
Agregaes e Composies
so assimtricas, no sentido de que, se um objeto A parte de um objeto B, o objeto B no pode ser parte do objeto A. propagam comportamento, no sentido de que um comportamento que se aplica a um todo automaticamente se aplica s suas partes. as partes so normalmente criadas e destrudas pelo todo. Na classe do objeto todo, so definidas operaes para adicionar e remover as partes.
Se uma das perguntas a seguir for respondida com um sim, provavelmente h uma agregao onde X todo e Y parte.
30
Exemplos
31
Associao de Composio
Uma variao da agregao Representa um vnculo mais forte entre objetos-todo e os objetos-parte. O objeto-parte exclusivo do objetotodo. Um objeto-parte no pode associarse a mais de um objeto-todo Movimentacao Ex: ContaBancaria 1
0..*
Visual Paradigm for UML Standard Edition(Universidade Tecnologica Federal do Parana - Campus Cornelio Procopio)
32
Exemplos
33
Agregaes e Composies
As diferenas entre a agregao e composio no so bem definidas. A seguir, as diferenas mais marcantes entre elas. Destruio de objetos
Na agregao, a destruio de um objeto todo no implica necessariamente na destruio do objeto parte. Na composio, os objetos parte pertencem a um nico todo.
Pertinncia
Em uma agregao, pode ser que um mesmo objeto participe como componente de vrios outros objetos.
Generalizaes e Especializaes
Esses denotam relaes de generalidade ou especificidade entre as classes envolvidas. Exemplo: o conceito mamfero mais genrico que o conceito ser humano. Exemplo: o conceito carro mais especfico que o conceito veculo. relacionamento de generalizao/especializao relacionamento de gen/espec
35
Generalizaes e Especializaes
Terminologia
subclasse X superclasse. supertipo X subtipo. classe base X classe herdeira. classe de especializao X classe de generalizao. ancestral e descendente (herana em vrios nveis)
36
Generalizao
Seu objetivo identificar classe-me, chamadas gerais e classes filhas, chamadas especializadas. Identificar similaridades de estrutura/ comportamento entre vrias classes. ContaBancaria Reaproveitamento de cdigo (mtodos e atributos).
Visual Paradigm for UML Standard Edition(Universidade Tecnologica Federal do Parana - Campus Cornelio Procopio)
ContaCorrente
ContaPoupanca
37
Restrio
Informaes extras que definem condies a serem validadas durante a implementao dos relacionamentos entre classes. Representadas por textos limitados por chaves. Pose-se utilizar de notas para definir restries.
38
Indivduo
Atleta
39
Semntica da Herana
como se as caractersticas da superclasse estivessem definidas tambm nas suas subclasses Alm disso, essa herana transitiva e anti-simtrica
A primeira trata de um relacionamento entre classes, enquanto que a segunda representa relacionamentos entre instncias de classes. Na associao, objetos especficos de uma classe se associam entre si ou com objetos especficos de outras classes. Exemplo:
Herana de Associaes
No somente atributos e operaes, mas tambm associaes so herdadas pelas subclasses. No exemplo abaixo, cada subclasse est associada a Pedido, por herana.
41
Propriedades da Herana
Transitividade: uma classe em uma hierarquia herda propriedades e relacionamentos de todos os seus ancestrais.
Ou seja, a herana pode ser aplicada em vrios nveis, dando origem a hierarquia de generalizao. uma classe que herda propriedades de uma outra classe pode ela prpria servir como superclasse.
Assimetria: dadas duas classes A e B, se A for uma generalizao de B, ento B no pode ser uma generalizao de A.
42
Propriedades da Herana
43
Dependncia
No costuma ser encontrado nos diagramas de classes. Identifica um certo grau de dependncia de uma classe em relao a outra. A mudana em uma classe implica em outro.
44
Realizao
Caso especial que mistura caractersticas dos relacionamentos de generalizao e dependncia Utilizada para identificar classes responsveis por executar funes para as classes que representam interfaces. Herda o comportamento e no sua estrutura.
45
Classe Associativa
Representa situaes onde determinados atributos no podem ser colocados em nenhuma das classes participantes de uma associao, por conter informaes exclusivas ligao dos objetos das duas classes.
46
Generalizao: verifica-se se h alguma relao um tipo de entre as classes identificadas. Associao: verifica-se h a necessidade de um objeto de uma classe utilizar servios disponibilizados por um objeto de outra classe ou, simplesmente, conhecer o outro objeto. Auto-Associao: verifica-se se existe alguma classe que necessita ser relacionada47a ela mesma.
Agregao: verifica-se se h alguma relao parte de entre as classes. Composio: verifica-se se h alguma relao parte de forte entre as classes. Navegao: verifica-se se existem navegaes desnecessrias entre classes. Classe associativa: verifica-se se existem informaes que precisam estar vinculadas associao de dois objetos (mas 48 no a um deles em
Esteretipos
Esteretipos so maneiras de destacar ou diferenciar um componente ou relacionamento de outros componentes ou relacionamentos iguais, atribuindo-lhe caractersticas especiais ou modificando-as de alguma forma (GUEDES, 2005)
Esteritipo de Rtulo
Esteritipo de Grfico
49
Esteretipos <<entity>>
Tornar explcito que uma classe uma entidade, ou seja, a classe contm informaes recebidas ou geradas por meio do sistema Classes com esteretipo <<entity>> tambm fornecem a informao de normalmente tero muitos objetos e que tero um perodo de vida longo
Significa tambm que estes objetos das classe precisem ser preservados 50 (persistentes)
Esteretipos <<boundary>>
Conhecido com esteretipo de fronteira Importante quando preciso definir a existncia de uma interface para o sistema Identifica que uma classe serve de comunicao entre atores externos e o sistema Muitas vezes uma classe <<boundary>> associada a prpria interface do sistema Pode haver <<control>> a interao
51
com
uma
classe
Esteritipos <<control>>
Identifica classes que servem de intermdio entre as classes <<boundary>> e outras classes do sistema.
Interpretam os eventos ocorridos sobre os objetos <<boundary>>, como movimentos do mouse ou pressionamento de um boto e retransmiti-los para os objetos das classes de entidades que 52 compem o sistema
Exemplo
53