UML Diagrama de Classes elementos básicos. Contexto Os diagramas de classes fazem parte do da...

Post on 17-Apr-2015

119 views 1 download

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?

camposmf@gmail.com