aula7 diagrama classes

22
Engenharia de Software Aula 7 – Diagrama de Classes Profa. Dra. Judith Pavón Universidade Salvador – UNIFACS 2012

Upload: computacao-depressao

Post on 26-Jun-2015

286 views

Category:

Documents


6 download

TRANSCRIPT

Page 1: Aula7 diagrama classes

Engenharia de Software

Aula 7 – Diagrama de ClassesProfa. Dra. Judith Pavón

Universidade Salvador – UNIFACS2012

Page 2: Aula7 diagrama classes

Objetivo da aula

2

O objetivo desta aula é apresentar os conceitos de diagrama de classes.

Page 3: Aula7 diagrama 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

Page 4: Aula7 diagrama classes

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).

Page 5: Aula7 diagrama classes

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( )

Page 6: Aula7 diagrama classes

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

Page 7: Aula7 diagrama classes

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.

Page 8: Aula7 diagrama classes

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

Page 9: Aula7 diagrama classes

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.

Page 10: Aula7 diagrama classes

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

Page 11: Aula7 diagrama classes

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)

Page 12: Aula7 diagrama classes

12

Associação 1:1

Pessoa

código nome sexo endereço

marido

casamentoesposa

0.. 1

0.. 1

Page 13: Aula7 diagrama classes

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..*

Page 14: Aula7 diagrama classes

14

Exemplo de Classe Associativa

Produto

código nome

CalcPreço( )CalcImposto( )

Venda

número data ItemVenda

quantidade

CalcTotal( )

0..* 0..*

Page 15: Aula7 diagrama classes

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!!

Page 16: Aula7 diagrama classes

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.

Page 17: Aula7 diagrama classes

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”

Page 18: Aula7 diagrama classes

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..*

Page 19: Aula7 diagrama classes

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..*

Page 20: Aula7 diagrama classes

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

Page 21: Aula7 diagrama classes

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

Page 22: Aula7 diagrama classes

Dúvidas

22