Modelagem Visual de Objetos Com UML Professora Lucélia Profª Lucélia Oliveira
Diagrama de Classes: Associação Para representar o fato de que objetos podem se relacionar uns com os outros, utiliza-se a associação. Representa que duas classes possuem uma ligação (link), significando por exemplo que elas "conhecem uma a outra”. Possui um nome (junto à linha que representa a associação), normalmente um verbo (não é obrigatório). Profª Lucélia Oliveira
Diagrama de Classes: Associação Representada através de um segmento de reta ligando as classes cujos objetos se relacionam. Exemplos: Profª Lucélia Oliveira
Nome de associação, direção de leitura e papéis Para melhor esclarecer o significado de uma associação no diagrama de classes, a UML define três recursos de notação: Nome da associação: fornece algum significado semântico a mesma. Direção de leitura: indica como a associação deve ser lida. Papel: para representar um papel específico em uma associação. Profª Lucélia Oliveira
Exemplo (Nome de associação, direção de leitura e papéis) Empresa Pessoa Trabalha-para Emprega empregador empregado Profª Lucélia Oliveira
Diagrama de Classes: Classe Associativa É uma classe que está ligada a uma associação, ao invés de estar ligada a outras classes. É normalmente necessária quando duas ou mais classes estão associadas, e é necessário manter informações sobre esta associação (histórico). Profª Lucélia Oliveira
Diagrama de Classes: Multiplicidade Cada associação em um diagrama de classes possui duas multiplicidades, uma em cada extremo da linha de associação. Nome Simbologia Apenas Um 1..1 (ou 1) Zero ou Muitos 0..* (ou *) Um ou Muitos 1..* Zero ou Um 0..1 Intervalo Específico li..ls efetua Cliente Pedido 1 0..* Profª Lucélia Oliveira
Profª Lucélia Oliveira Agregação É um caso especial da associação. conseqüentemente, multiplicidades, nome da associação e papéis, podem ser usados igualmente. Utilizada para representar conexões que guardam uma relação todo-parte entre si. Em uma agregação, um objeto está contido no outro, ao contrário de uma associação. Onde se puder utilizar uma agregação, uma associação também poderá ser utilizada. Profª Lucélia Oliveira
Profª Lucélia Oliveira Agregação Características particulares: Agregações são assimétricas: se um objeto A é parte de um objeto B, B não pode ser parte de A. Agregações propagam comportamento, no sentido de que um comportamento que se aplica a um todo automaticamente se aplica as suas partes. Profª Lucélia Oliveira
Notação para uma agregação Representada como uma linha conectando as classes relacionadas, com losango branco perto da classe que representa o todo. Exemplo: Profª Lucélia Oliveira
Especialização/Generalização É um tipo de relacionamento similar à associação de mesmo nome em um Diagrama de Casos de Uso. Seu objetivo é identificar classes-mãe, chamadas gerais e classes-filhas, chamadas especializadas. Profª Lucélia Oliveira
Profª Lucélia Oliveira Diagrama de Classes Demonstra a estrutura estática das classes de um sistema. Na fase de análise, tendo em mãos o diagrama de use-case, podemos definir o diagrama de classes do sistema. O modelo de classes evolui durante o desenvolvimento do sistema. À medida que o sistema é desenvolvido, o modelo de classes é incrementado com novos detalhes. Profª Lucélia Oliveira
Profª Lucélia Oliveira Diagrama de Classes Possui três níveis sucessivos de abstração: Conceitual; Especificação; Implementação. Profª Lucélia Oliveira
Profª Lucélia Oliveira Diagrama de Classes Modelagem Conceitual Modela classes do domínio do problema; É utilizada na análise; Não leva em consideração restrições inerentes à tecnologia a ser utilizada na solução de um problema. Descreve o problema a ser desenvolvido, sem considerar características da solução a ser utilizada. Profª Lucélia Oliveira
Profª Lucélia Oliveira Diagrama de Classes Modelagem Conceitual Métodos e atributos de acesso a banco de dados, estrutura de mensagens entre objetos, não aparecem no diagrama, apenas os tipos de objetos básicos do sistema. Profª Lucélia Oliveira
Profª Lucélia Oliveira Diagrama de Classes Modelo de especificação Obtido através da adição de detalhes ao modelo anterior conforme a solução de software escolhida. Procura-se tipos sem pensar em implementação. Pensa-se em interfaces e não na implementação. Concentra-se no comportamento das coisas e não o que elas são; Preferível durante a fase de projeto. Profª Lucélia Oliveira
Profª Lucélia Oliveira Diagrama de Classes O modelo de Implementação Corresponde à implementação das classes em alguma linguagem de programação. Classes representam estritamente conceitos de implementação. Profª Lucélia Oliveira
Exemplo de Diagrama de Classes Profª Lucélia Oliveira
Profª Lucélia Oliveira Visibilidade Visibilidade pública: é representada por um símbolo de mais (+), apresentado na frente da descrição do atributo ou método e significa que o tributo ou método pode ser utilizado por qualquer classe Profª Lucélia Oliveira
Profª Lucélia Oliveira Visibilidade Visibilidade protegida: é representada por um símbolo sustenido (#) e determina que somente a classe possuidora do atributo ou método ou as sus sub-classes podem ter acesso ao mesmo. Profª Lucélia Oliveira
Profª Lucélia Oliveira Visibilidade Atributo privado: é representado por um símbolo de menos (-) e significa que somente a classe possuidora ou método poderá utilizá-lo. Profª Lucélia Oliveira