aula7 diagrama classes
TRANSCRIPT
Engenharia de Software
Aula 7 – Diagrama de ClassesProfa. Dra. Judith Pavón
Universidade Salvador – UNIFACS2012
Objetivo da aula
2
O objetivo desta aula é apresentar os conceitos de diagrama de classes.
Conteúdo
3
• Introdução• Classe• Atributos• Métodos• Ligação e Associação• Papel do objeto• Multiplicidade• Agregação/Composição• Generalização/Especialização
4
Introdução Geralmente é utilizada a linguagem UML,
especificamente o diagrama de classes. Notação que permite descrever:
• classes• atributos e métodos• relacionamentos• detalhes de implementação (código)
Pode ser usada em vários níveis de abstração (conceitual, lógico e físico).
5
Classe Classe: descrição de uma coleção de objetos
que possuem propriedades semelhantes (atributos, métodos, associações).
Produto
códigoProdutodescrição
CalcularPreço( )CalcularImpostos( )
6
Atributo Informação associada a um objeto. Cada objeto
da classe possui um valor em cada atributo definido pela classe.
Na prática, somente aparecem no diagrama os atributos mais relevantes, pois a lista completa dos atributos e seus domínios estão no dicionário de dados (DD) separado. Produto
códigoProduto: Integerdescrição: String
CalcularPreço( )CalcularImpostos( )
Atributos
7
Métodos São as operações que podem ser executadas sobre
um objeto. Definida para cada objeto da classe. Representar no diagrama somente os métodos
importantes para a compreensão.
DIFERENÇAS ENTRE MÉTODO DO OBJETO E MÉTODO DAS CLASSESDIFERENÇAS ENTRE MÉTODO DO OBJETO E MÉTODO DAS CLASSES
Método do objeto (instância): atua sobre um objeto Método da classe: atua sobre a classe (o conjunto de
objetos)• Ex.: métodos que procuram determinados objetos na classe.
8
Método da classe – Diagrama de classe
Método da classe (indicado peloprefixo $)
Métodos
Funcionario
nome: Integer
cargo: String
Salario:real
obterCargo( )
$CalcularMediaSalario( )
FuncionarioContratado
carteiraProfissional:string
dataAdmissão:date
FuncionarioTerceirizado
inicioContrato:date
terminoContrato:date
taxaAdministração
Projeto
Descrição: Integer
inicio: String
fim:real
Custo: real
CalcularValorProjeto( )
1..* 1trabalha
1 0..1gerencia
9
Ligação e Associação
Uma ligação é um relacionamento entre objetos, que se deseja conhecer no sistema. • Ex.: a ligação entre o objeto Projeto e o objeto
FuncionarioTerceirizado. Uma associação é a descrição de uma
coleção de ligações que, para fins de projeto, possuem propriedades semelhantes (classes envolvidas, atributos, métodos). • Ex.: a associação entre a classe Funcionario e a
classe Projeto.
10
Papel do objeto
Pessoa
código nome sexo endereço
marido
Um objeto cumpre um papel dentro de uma associação.
casamento
esposa - Ser marido ou esposa éo papel exercido por um objeto Pessoa dentro deuma associação casamento.
nome do associação
papel
11
Multiplicidade
Existem situações em que é necessário restringir o número de objetos associados através de uma associação a um objeto determinado (restringir a cardinalidade).
• Ex.: um homem não deve possuir mais de uma esposa.
As multiplicidades são classificadas de acordo a sua cardinalidade máxima:
0..1 (valor opcional) 1.. 1 ou 1 (exatamente um) 0..* ou * (qualquer valor inteiro não-negativo) 1..* (qualquer valor inteiro positivo)
12
Associação 1:1
Pessoa
código nome sexo endereço
marido
casamentoesposa
0.. 1
0.. 1
13
Atributos de Associações Uma associação pode ser tratada como uma
classe, que possui atributos, relacionamentos e métodos. Neste caso é denominada classe associativa.• Ex.: como toda venda não é financiada, então os atributos
e métodos da financiamento devem aparecer no relacionamento.
Financeira
código
nome
Venda
número data ItemdeVenda Financiamento
dataAprovação
autoriza( )
0..1 0..*
14
Exemplo de Classe Associativa
Produto
código nome
CalcPreço( )CalcImposto( )
Venda
número data ItemVenda
quantidade
CalcTotal( )
0..* 0..*
15
Transformação de Classes Associativas
Produto
código nome
CalcPreço( )CalcImposto( )
Venda
número data
ItemVenda
quantidade
CalcTotal( )
0..* 1..* 11
Ainda falta refinar este diagrama!!
16
Associação ternária
Cidade
código nome
Distribuidor
número nome
TipoProduto
codprodnome
10..*
0..*
0..*
Distribuição
1
1
Distribuição é umrelacionamento queassocia estas trêsclasses.
17
Agregação A agregação corresponde a um caso particular de
associação, utilizada para expressar um relacionamento “todo-parte”.
A agregação representa uma propriedade fraca, pois uma classe “parte” pode estar contida em várias classes “todo”.
PaginaWeb Diretorio
Imagem0..* 1..*
“parte” “todo”“todo”
18
Composição A composição é uma variação da agregação simples.
A diferença com a agregação simples, consiste no fato de que a classe parte pertence somente à classe todo.
Exemplo: uma venda é composta de vários detalhes (itens), quando a venda é criada os itens de venda também o são, e quando a venda é eliminada também serão eliminados os itens. Produto
códigoProduto descrição
CalcPreço( )CalcImp( )
Venda
número data
ItemVenda
quantidade
CalcTotal( )CalcImp( )
1 0..* 1..*
19
Generalização/Especialização
Pessoa física/jurídica são especializações de cliente. Cliente é uma generalização de pessoa física/pessoa jurídica.
PessoaFísica
documentoId datanasc
Cliente
código nome
PessoaJurídica
CGC
nomeInstituição
Venda
1 0..*
20
Herança e Agregação Herança e agregação são conceitos diversos. Herança é um relacionamento chamado de “é-
um”• pessoa física é um cliente
Agregação é chamada de “é-parte-de”• item de venda é parte de uma venda
Herança não é seletiva• Todas as propriedades da classe genérica são
herdadas
21
Combinando generalização e agregação
Um documento pode ser composto de vários componentes. Um componente é uma figura, uma tabela ou texto.
Texto
Componente
Tabela
Documento
1..*
Figura
Dúvidas
22