Introdução a diagrama de classes e UML Prof. Alexandre Parra Carneiro da Silva [email protected].
UML Diagrama de Classes elementos básicos. Contexto Os diagramas de classes fazem parte do da...
Transcript of UML Diagrama de Classes elementos básicos. Contexto Os diagramas de classes fazem parte do da...
UML
Diagrama de ClassesDiagrama de Classes
elementos básicoselementos básicos
Contexto
• Os diagramas de classes fazem parte do da visão estática da UML.
• Os elemento desta visão são conceitos significativos para a aplicação.
• A visão estática modela a estrutura do objeto, tanto seus dados quanto suas operações.
• Os elementos chaves nesta visão são os classificadores e suas associações.
• Os classificadores podem ser: atores, artefatos, classe, colaboração, componente, interface, nó, caso de uso.
Classe• Uma classe representa um conceito discreto.
• Uma classe é uma descrição de um conjunto de objetos que compartilham dos mesmos atributos, operações, relações e semântica.
• Uma classe implementa uma ou mais interfaces.
Diagrama de Classes• Diagrama de classe descreve os tipos de
objetos no sistema e os vários tipos de relacionamento que existem entre as diversas classes.
Diagrama de Classes
• Usa-se o diagrama de classes para modelar a visão estática do sistema.
• Um diagrama de classes possui normalmente:• classes.
• interfaces.
• colaborações.
• relação de dependência, generalização e associação.
Contexto
• É um diagrama central nas metodologias orientadas a objetos.
• É a representação de maior poder conceitual.
• É o diagrama que descreve as abstrações do domínio do problema.
Perspectivas de Representação das Classes
• Semelhante a de modelagem de dados.– Conceitual.
• Representa os conceitos genéricos do mundo.
– Especificação.• Representa os conceitos genéricos do software a ser
construído.
– Implementação.• Representa as característica operacionais do software
a ser construído.
Perspectivas ... (II)• As perspectivas apresentadas não fazem
parte de UML formal é apenas uma abordagem importante e normalmente negligenciada.
Nome e Representação de Classes
• Toda classe deve ter um nome que a distingue das outras classes.
• Representação
Aluno
Atributos da Classe
• Um atributo representa uma propriedade da classe que está sendo modelada.
• Os atributos representam os dados pertencentes nas instâncias de uma classe.
• Os atributos podem ser representados apenas pelo nome ou com o tipo associado.
Atributos da Classe (II)• Uma classe pode ter vários ou nenhum
atributo.
• Em um determinado momento um objeto de uma classe terá valores específicos para cada um de seus atributos.
Representação de classe com atributos
Alunos
nometelidpaimãe
OU
Alunos
Nome:stringtel:stringid:stringpai:stringmãe:string
Pode-se também representar osPode-se também representar os
valoresvalores defaultdefault
Operações
• São processos que a classe sabe realizar.
• É uma abstração de do que se pode fazer com um objeto.
• É compartilhada com todos os objetos da classe.
• Uma classe pode ter nenhuma ou várias operações.
Operações• Em geral, a chamada de uma operação pode
trazer mudanças nos dados do objeto ou em seu estado.
• A assinatura de uma operação especifica quais os parâmetros para a execução da operação e, quando for o caso, o tipo de retorno.
Representação de operações
• Pode-se representar as operações apenas com o seu nome.
• Pode-se representar as operações com sua assinatura (seus parâmetros e o tipo de retorno).
Alunos
incluir()alterar()
Responsabilidades• A responsabilidade é um contrato ou
obrigação da classe.
• Uma classe pode ter várias responsabilidade: uma e não mais que cinco.
Características básicas de um bom modelo de Classe
• Identifique claramente operações e associações.• Operação: confere, em geral, uma mudança de estado em um
determinado objeto.• Associação: relação estática entre dois conceitos.
• Operações: • normalmente encontradas nas descrições dos casos de uso.
• Associação: • normalmente encontradas a partir da completude do modelo, por
exemplo uma fita de videolocadora é alugada para um cliente; regras de negócio são um bom ponto de partida para a se encontrar associações.
Características básicas de um bom modelo de Classe
• Identificação de Chaves.• Não é recomendado colocar no modelo de classes
atributos que representam conceitos de chaves como em um banco relacional.
Características básicas de um bom modelo de Classe
• Relatórios:• Um relatório é apenas um forma de mostrar aquilo que
o sistema já possui.
• Os relatório não devem ser representados como classes no sistema.
• Cabe aos métodos das classes executar operações que geram o relatório especificado.
UML
Classes conceitos avançadosClasses conceitos avançados
Visibilidade
• Os atributos e operações de uma classe podem ter restrições de acesso especificadas.
– + público: todos os classificadores podem usar/ter acesso.
– - privado: somente o próprio classificador poderá usar.
– #protegido: qualquer descendente do classificador poderá usar.
Classes abstratas
• Uma classe que contém uma operação abstrata é chamada de classe abstrata.
• Esse tipo de classe não pode criar instâncias visto que alguns de suas operações não podem ser implementadas.
– As classes abstratas devem possuir sub-classes, que implementem as respectivas operações.
Classes Abstratas (II)
Peça Xadrez
...
Movimento()
peão torre rei
Operação abstrataSão representadas em itálico
Interfaces
• Mais abstrata que a classe abstrata.
• Uma interface é uma classe abstrata que possui unicamente operações abstratas (nenhum método implementado) e nenhum atributo.
• Uma interface especifica algumas operações para providenciar um serviço de forma a cumprir uma responsabilidade.
Interfaces (II)
• Com interfaces é possível apenas se concentrar nos serviços oferecidos pelas classes.
• O uso de interface é uma forma elegante de isolar a especificação da implementação.
• Um interface especifica uma contrato sem levar em conta como este será implementado.
Interfaces (III)• Representação
Inome da interface
ou<<interface>>
Pilha
pop()push()vazia()
Classes de Associação • Uma classe de associação modela modelas
as propriedades associadas com uma associação.
• As propriedades decorrentes devem ser representadas por uma classe.
Classes de associação (II)
Aluno Matéria
* *
Desempenhonotafalta
Atividade de análise dos Casos de Uso
Rup Workflow for Analysis and Design Artifacts for Analyze Behavior
Análise do Caso de Uso
• Para cada caso de uso:• Crie uma realização deste caso de uso.• Acrescente descrição textual ao caso de uso.• Encontre classes de análise a aprtir do comportamento
do caso de uso.
• Para cada classe encontrada:• Defina as responsabilidade da classe.• Descreva os atributos e associações.
• Agrupe e refine as classes encontradas.
Classes de Análise
• Enquadram-se em três categorias:• Fronteira.
– Utilizada para modelar a interação entre o sistema e seus atores. Representa abstrações tais como janelas, impressoras, terminais etc.
• Controle.– Representa a coordenação, a seqüência e transação de outros
objetos.
• Entidade.– Utilizada para representar informações e dados persistentes.
Geralmente derivadas das classes de negócio.
Classes de Análise
Fonte: http://sparxsystems.com/resources/uml2_tutorial/uml2_sequencediagram.html
UML
Diagrama de objetosDiagrama de objetos
Diagrama de objetos• Os diagramas de objetos mostram uma
fotografia dos objetos em ação.
• Os objetos são mostrados com os valores de seus atributos e suas respectivas ligações.
• São apropriados para a modelagem de estrutura de dados complexas.
Diagrama de objetos (II)• Em geral há vários objetos em execução em
um determinado momento.
• Um diagrama mostra apenas parte dessa complexidade.
• O diagrama não considera a evolução desses objetos com o tempo.
Representação de objetos
Márcio Márcio:Professor
:Professor
Álvaro:Aluno
:Curso
Exemplo (I)
c:Companhia
d1:Departamento d2:Departamento
Nome=“Vendas” Nome=“RH”
Exemplo (II)
Aluno Matéria**
Classes
a:Aluno m:Matéria**
matricula(aluno)
Objetos
Dúvidas?