A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Análise e Projeto de Sistemas II

Apresentações semelhantes


Apresentação em tema: "Análise e Projeto de Sistemas II"— Transcrição da apresentação:

1 Análise e Projeto de Sistemas II
Aula 3 – Diagrama de Classes Profa. Dra. Judith Pavón

2 Objetivo da aula O objetivo desta aula é apresentar os conceitos de diagrama de classes nível conceitual.

3 Conteúdo Diagrama de Classes (definição)
Elementos do Diagrama de Classes Exemplo Prático Ligação e Associação Papel Multiplicidade Agregação e Composição Generalização e Especialização

4 Diagrama de classes Notação que permite descrever:
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 Diagrama de classes Classe: descrição de uma coleção de objetos que possuem propriedades semelhantes (atributos, métodos, associações). Produto códigoProduto descrição CalcularPreço( ) CalcularImpostos( )

6 Diagrama de objetos Objeto: representação de um objeto do sistema sobre o qual se deseja manter informações ou realizar operações. Um diagrama de objetos mostra um conjunto de objetos e seus relacionamentos em um momento dado. A diferença entre um diagrama de objetos dos demais é seu conteúdo particular. UmProduto:Produto códigoProduto = P12 descrição = meia

7 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: Integer descrição: String CalcularPreço( ) CalcularImpostos( ) Atributos

8 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 comprensão. DIFERENÇAS ENTRE MÉTODO DO OBJETO E MÉTODO DAS CLASSES Método do objeto (instância): atúa sobre um objeto Método da classe: atúa sobre a classe (o conjunto de objetos) Ex.: métodos que procuram determinados objetos na classe.

9 Método da classe – Diagrama de classe
Método da classe (indicado pelo prefixo $) 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..* trabalha 0..1 gerencia

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

11 Papel do objeto Um objeto cumpre um papel dentro de uma associação.
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 de uma associação casamento. nome do associação papel

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

13 Associação 1:1 0.. 1 esposa casamento Pessoa código nome sexo 0.. 1
endereço 0.. 1 marido

14 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 financiação devem aparecer no relacionamento. Venda número data ItemdeVenda 0..1 0..* Financeira código nome dataAprovação autoriza( ) Financiamento

15 Exemplo de Classe Associativa n:n
0..* 0..* Venda número data Produto código nome CalcPreço( ) CalcImposto( ) quantidade CalcTotal( ) ItemVenda

16 Transformação de Classes Associativas
Venda número data Produto código nome CalcPreço( ) CalcImposto( ) 0..* 1 1 0..* ItemVenda quantidade CalcTotal( )

17 Associação ternária Cidade código nome Distribuidor número nome
Distribuição 1 1 0..* 0..* 0..* 1 TipoProduto codprod nome Distribuição é um relacionamento que associa estas três classes.

18 Cidade código nome Distribuidor número nome 0..* 0..* 0..* 0..*
TipoProduto codprod nome Não é equivalente ao modelo anterior !!! 0..* 0..*

19 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”. Imagem Diretorio PaginaWeb 0..* 1..* “todo” “parte” “todo”

20 Composição Produto códigoProduto descrição CalcPreço( ) CalcImp( )
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( ) ItemVenda quantidade CalcTotal( ) CalcImp( ) Venda número data 1 0..* 1..*

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

22 Herança, Reutilização e Sobrecarga
As classes especializadas herdam todas as propriedades (atributos/métodos/relacionamentos) da classe genérica. A herança está intimamente associada à noção de reutilização de software em OO. Através da especialização é possível particularizar código existente para novas aplicações. Sobrecarga (overloading) ou polimorfismo Redefinição de uma propriedade em uma classe especializada.

23 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

24 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

25 Especialização exclusiva
Normalmente, toda especialização deve ser exclusiva. Exclusiva significa que um objeto da clase genérica somente pode aparecer em uma de suas especializações. Herança múltipla permite contornar esta restrição. Ex.: Uma pessoa pode assumir vários papéis. Pessoa Aluno Funcionário Professor especialização não exclusiva Modelo incorreto!!

26 Solucionando Especialização Não Exclusiva
Pessoa Aluno Funcionário Professor especialização não exclusiva AlunoFuncionário - Através de várias especializações de herança múltipla é possível solucionar o problema.

27 Dúvidas


Carregar ppt "Análise e Projeto de Sistemas II"

Apresentações semelhantes


Anúncios Google