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

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

10/03/06 Edson Scalabrin & Alcides Calsavara 1 Fundamentos de Engenharia de Software Edson E. Scalabrin Telefone: 0xx-41-3271-1360.

Apresentações semelhantes


Apresentação em tema: "10/03/06 Edson Scalabrin & Alcides Calsavara 1 Fundamentos de Engenharia de Software Edson E. Scalabrin Telefone: 0xx-41-3271-1360."— Transcrição da apresentação:

1 10/03/06 Edson Scalabrin & Alcides Calsavara 1 Fundamentos de Engenharia de Software Edson E. Scalabrin Telefone: 0xx ORIENTAÇÃO A OBJEOTS

2 10/03/06 Edson Scalabrin & Alcides Calsavara2 Ementa Diagrama de Classes; Padrões de Projeto Fundamentais: delegation, interface, marker interface. Diagrama de Casos de Uso; Diagrama de Seqüência; Padrões de Projeto de Criação: factory method, abstract factory, prototype, singleton. Diagrama de Estados; Diagrama de Atividades; Padrões de Projeto Estruturais: façade, composite, adapter. Mapeamento de Objetos para Bases Relacionais; Padrões de Projeto Comportamentais: iterator, observer, comando. Exercícios de Modelagem; Padrões de Concorrência: guarded suspension, producer-consumer.

3 10/03/06 Edson Scalabrin & Alcides Calsavara3 Conceitos fundamentais Objeto Identidade Sistema Orientado a Objetos Encapsulamento Classificação/Instanciação Generalização/Especialização Herança Polimorfismo

4 10/03/06 Edson Scalabrin & Alcides Calsavara4 Identidade Característica peculiar de um objeto que denota a existência em separado do objeto, mesmo que ele tenha os mesmos valores de atributos de outro objeto Uma identificação única de cada objeto

5 10/03/06 Edson Scalabrin & Alcides Calsavara5 Sistema Orientado a Objetos Um sistema orientado a objetos é uma coleção de objetos que interagem entre si. Um objeto interage com outro através de uma mensagem que causa um estímulo.

6 10/03/06 Edson Scalabrin & Alcides Calsavara6 Interação entre Objetos

7 10/03/06 Edson Scalabrin & Alcides Calsavara7 Objeto Um conceito, uma abstração, algo com limites e significados definidos para o problema em questão Um objeto do mundo real Uma instância de uma classe Um objeto possui um comportamento e um estado: o comportamento é forma como reage a estímulos o estado modifica-se de acordo com o comportamento

8 10/03/06 Edson Scalabrin & Alcides Calsavara8 Encapsulamento Técnica de modelagem e implementação que separa os aspectos externos de um objeto dos detalhes internos de implementação do mesmo objeto O estado de um objeto somente é acessível a partir da implementação de seu comportamento

9 10/03/06 Edson Scalabrin & Alcides Calsavara9 Comportamento e Estado

10 10/03/06 Edson Scalabrin & Alcides Calsavara10 Guarantia de Encapsulamento

11 10/03/06 Edson Scalabrin & Alcides Calsavara11 Comportamento O comportamento de um objeto é definido por um conjunto de métodos Um estímulo causa a execução de um método Um estímulo pode ser uma invocação explícita de um método ou um evento relevante para o objeto

12 10/03/06 Edson Scalabrin & Alcides Calsavara12 Execução de Métodos invocaçãoevento m ( ) e

13 10/03/06 Edson Scalabrin & Alcides Calsavara13 Estado O estado de um objeto é composto por um conjunto de valores de atributos

14 10/03/06 Edson Scalabrin & Alcides Calsavara14 Classe Uma classe descreve um conjunto de objetos: as instâncias da classe Uma classe descreve o comportamento e a composição do estado de todos os seus objetos Cada classe deve ter um nome distinto

15 10/03/06 Edson Scalabrin & Alcides Calsavara15 Classes e Objetos

16 10/03/06 Edson Scalabrin & Alcides Calsavara16 Tipos Um tipo pode ser primitivo ou uma classe Uma classe é um tipo abstrato de dados (ADT)

17 10/03/06 Edson Scalabrin & Alcides Calsavara17 Tipos Primitivos em Java Os tipos primitivos incluem: números inteiros: byte, short, int, long números reais: float, double valores lógicos: boolean caracteres: char

18 10/03/06 Edson Scalabrin & Alcides Calsavara18 Classes de Bibliotecas Exemplos: String Applet Button System

19 10/03/06 Edson Scalabrin & Alcides Calsavara19 Método Cada método possui uma assinatura, um tipo de retorno (primitivo ou classe) e uma implementação A assinatura de um método é composta por um nome e uma lista de parâmetros Cada parâmetro tem um nome e um tipo (primitivo ou classe)

20 10/03/06 Edson Scalabrin & Alcides Calsavara20 Atributo Cada atributo tem um nome e um tipo (primitivo ou classe) Um objeto que possui um atributo cujo tipo é uma classe é um objeto composto, pois contém outro objeto

21 10/03/06 Edson Scalabrin & Alcides Calsavara21 Atributos em Classes e Objetos b=true k=7 boolean b int k int x String s x =10 v=Paris s= char[] v A B String

22 10/03/06 Edson Scalabrin & Alcides Calsavara22 Visibilidade e Encapsulamento Um atributo deve preferencialmente ser qualificado como privado (private) Um método pode ser tanto qualificado como privado como público (public) O conjunto de métodos públicos de uma classe define a sua inteface

23 10/03/06 Edson Scalabrin & Alcides Calsavara23 Estrutura de uma Classe Uma classe contém um conjunto de atributos e um conjunto de métodos os atributos devem ter nomes distintos os métodos devem ter assinaturas distintas Cada objeto possui um conjunto próprio de valores dos atributos e o conjunto de métodos da classe

24 10/03/06 Edson Scalabrin & Alcides Calsavara24 Classe e Encapsulamento Os valores dos atributos de um objeto somente são acessíveis a partir dos seus métodos

25 10/03/06 Edson Scalabrin & Alcides Calsavara25 Exemplo Um veículo possui um código, um hodômetro, um cronômetro e um relógio. O hodômetro registra a kilometragem do veículo, e pode ser zerado a qualquer momento. O hodômetro exibe a kilometragem atual e a média de kilômetros por segundo, desde o último instante em que foi zerado A kilometragem registrada pelo hodômetro avança a medida que o veículo avança.

26 10/03/06 Edson Scalabrin & Alcides Calsavara26 Exemplo (cont.) O cronômetro já fica ativo no momento da sua criação. O cronômetro pode ser parado e reativado a qualquer instante. O cronômetro exibe o número de milisegundos decorridos desde o instante da sua última ativação. O relógio exibe a hora atual, com precisão de minutos.

27 10/03/06 Edson Scalabrin & Alcides Calsavara27 :Veículo codigo = 13 hodometro cronometro relogio avance(distancia : int) exiba() comeceCronometro() pareCronometro() zereCronometro() zereHodometro() Veiculo(c : int) :Instante T diferenca(i : Instante) : int digaHoras() : int digaMinutos() : int :Date :Instante T diferenca(i : Instante) : int digaHoras() : int digaMinutos() : int :Date :Instante T diferenca(i : Instante) : int digaHoras() : int digaMinutos() : int :Date :Hodometro kilometragem = 283 momentoZeragem relogio zere() kilometragemMedia() : double avance(distancia : int) exiba() Hodometro(r : Relogio) :Cronometro ativo = true momentoInicio momentoParada relogio comece() pare() exiba() Cronometro(r : Relogio) :Relogio exiba() digaInstante() : Instante Representação de Objetos (usando UML) main

28 10/03/06 Edson Scalabrin & Alcides Calsavara28 Exemplo de classe em UML MOTO Marca:String cor:String estado:boolean ligaMotor(), mostraAtributos() Nome da classe Atributos + tipos Métodos

29 10/03/06 Edson Scalabrin & Alcides Calsavara29 Exemplo de classe definida em Java class MOTO{ private String marca, cor; boolean estadoMotor; void ligaMotor() { if (estadoMotor == true) System.out.println(O motor já esta ligado); else { estadoMotor = true; System.out.println(Agora o motor já esta ligado); } } // fim do método ligaMotor void mostraAtributos() { System.out.println(Cor: + cor+ Marca: + marca + Estado: + estadoMotor); }

30 10/03/06 Edson Scalabrin & Alcides Calsavara30 Exemplo de classe definida em Java (continuação) class MOTO{... public static void main ( String args[] ){ MOTO m = new MOTO(); m.marca = Yamaha RZ350; m.cor = amarela; m.mostraAtributos(); m.ligaMotor(); m.mostraAtributos(); m.ligaMotor(); } // fim do método main } // fim da classe MOTO

31 10/03/06 Edson Scalabrin & Alcides Calsavara31 Generalização Relacionamento entre uma classe e uma ou mais versões refinadas ou especializadas da classe Especialização: relacionamento inverso Superclasse: versão mais abstrata de outra classe, a subclasse Subclasse: versão mais refinada de outra classe, a superclasse

32 10/03/06 Edson Scalabrin & Alcides Calsavara32 Herança Mecanismo baseado em objetos que permite que as classes compartilhem atributos e operações baseados em um relacionamento, geralmente generalização Uma subclasse herda atributos e métodos da superclasse

33 10/03/06 Edson Scalabrin & Alcides Calsavara33 Polimorfismo Assume muitas formas A propriedade segundo a qual uma operação (método) pode comportar-se diferentemente em classes diferentes A subclasse redefine a implementação de um método herdado da superclasse Onde se espera uma instância de um certa classe pode aparecer uma instância de qualquer subclasse daquela classe

34 10/03/06 Edson Scalabrin & Alcides Calsavara34 Exemplo de herança e polimorfismo BOTÃO Estado: boolean cor:Cores x:int y:int desenhe(), aperte(), desaperte(), pegaEstado(), mova(float x1, float x2) BOTÃO REDONDO raio : int desenhe() BOTÃO QUADRADO diagonal : int desenhe()

35 10/03/06 Edson Scalabrin & Alcides Calsavara35 Implantação da classe Botão class Botao { boolean estado; int cor; float x, y; public Botao(int cor) { estado = true; this.cor = cor; x = y = 0; } public void aperte() {estado = true; } public void desaperte() {estado = false; } public boolean pegaEstado() { return estado; } public void desenhe() {} public void mova(float x1, float y1) { x = x1; y = y1; } }

36 10/03/06 Edson Scalabrin & Alcides Calsavara36 Implantação da classe Botão Quadrado class BotaoQuadrado extends Botao { float diagonal; public BotaoQuadrado(int cor, float dia){ super( cor ); diagonal = dia; } public void desenhe(){ System.out.println ("Desenhe Botão Quadrado"); }

37 10/03/06 Edson Scalabrin & Alcides Calsavara37 Implantação da classe Botão Redondo class BotaoRedondo extends Botao { float raio; public BotaoRedondo(int cor, float r){ super( cor ); raio = r; } public void desenhe(){ System.out.println ("Desenhe Botão Redondo"); }

38 10/03/06 Edson Scalabrin & Alcides Calsavara38 Implantação da classe Janela class Janela { public static void main( String args[] ) { BotaoQuadrado bq = new BotaoQuadrado(1, (float)4.5); bq.desenhe(); BotaoRedondo br = new BotaoRedondo(1, (float)5.0); br.desenhe(); }

39 10/03/06 Edson Scalabrin & Alcides Calsavara39 Exercício Escreva um diagrama de classes para estas 3 (três) instâncias. Não é necessário incluir métodos. (Aparelho de troca de calor) nome = E302 fabricante = Brown peso = 5000 kg preço = $20000 área da superfície diâmetro do tubo = 2 cm comprimento do tubo = 6 m pressão do tubo = 15 atm pressão da concha = 1,7 atm (Tanque de teto flutuante) nome = T111 fabricante = Simplex peso = kg preço = $50000 volume = L pressão = 1,1 atm diâmetro = 8 m altura = 9m (Bomba de diafragma) nome = P101 fabricante = Simplex peso = 100 kg preço = $5000 pressão de sucção = 1,1 atm presssão de descarga = 3,3 atm taxa de fluxo = 300 I/h material do diafragma = Teflon

40 10/03/06 Edson Scalabrin & Alcides Calsavara40 Notação: Multiplicidade e Ordenação Classe A 0..* * 2-5,10 0..* {ordenado} ,10 {ordenado} OMT UML

41 10/03/06 Edson Scalabrin & Alcides Calsavara41 Ligação Uma conexão física ou conceitual entre objetos Exemplo: O país Brasil tem como capital a cidade de Brasília. Exemplo: O funcionário João trabalha na empresa Transamérica S.A. Exemplo: O artigo OO Solutions foi publicado na conferencia OOPSLA99.

42 10/03/06 Edson Scalabrin & Alcides Calsavara42 Associação Relacionamento entre instâncias de duas ou mais classes descrevendo um grupo de ligações com estrutura e semântica comuns. Exemplo: Um país tem como capital uma cidade. Exemplo: Um funcionário trabalha numa empresa.

43 10/03/06 Edson Scalabrin & Alcides Calsavara43 Agregação Forma especial de associação, entre o todo e suas partes, na qual o todo é composto pelas partes Também chamada de herança horizontal Exemplo: Um artigo é publicado em uma conferência, isto é, o artigo faz parte da conferência (ou dos anais da conferência).

44 10/03/06 Edson Scalabrin & Alcides Calsavara44 Multiplicidade e Papel Multiplicidade: Número de instâncias de uma classe que podem se relacionar a uma única instância de um classe associada (ou agregada). Papel: nome que identifica inequivocamente uma extremidade de uma associação.

45 10/03/06 Edson Scalabrin & Alcides Calsavara45 Classe Pessoa Diagrama de instâncias (Pessoa) uma avó (Pessoa) um avô (Pessoa) uma tia (Pessoa) um primo (Pessoa) você (Pessoa) sua mãe (Pessoa) seu pai Cônjuge Primo filho Irmão filho mãepai mãe

46 10/03/06 Edson Scalabrin & Alcides Calsavara46 Classe Pessoa (parcial)

47 10/03/06 Edson Scalabrin & Alcides Calsavara47 Atributo de Ligação Um valor de dados presente em cada ligação (nível de instâncias) de uma associação (nível de classes) Uma propriedade da ligação entre objetos, e não dos objetos ligados, propriamente ditos Exemplos: permissão de acesso que um usuário possui para a um arquivo; o salário de uma pessoa em um emprego em uma companhia

48 10/03/06 Edson Scalabrin & Alcides Calsavara48 Atributo de Ligação Exemplo: Muitos para Muitos Arquivo String : nome Usuário String : nome Integer : permissão Acessível por /etc/termcap( leitura )John Doe /etc/termcap( leitura-escrita )Mary Brown /usr/doe/.login( leitura-escrita )John Doe 0..*

49 10/03/06 Edson Scalabrin & Alcides Calsavara49 Atributo de Ligação Exemplo: Um para Muitos Pessoa String : nome String : telefone Empresa String : nome String : endereço Float : salário String : cargo Trabalha-para Float : desempenho chefe trabalhador Gerencia 0..*1 0..1

50 10/03/06 Edson Scalabrin & Alcides Calsavara50 Associação como uma Classe Cada ligação de uma associação é uma instância de uma classe Uma ligação é um objeto, com atributos e métodos Útil quando ligações podem participar em associações com outros objetos Útil quando ligações sofrem operações Exemplo: autorização para usuários em estações de trabalho

51 10/03/06 Edson Scalabrin & Alcides Calsavara51 Associação como uma Classe Exemplo Pessoa String : nome String : telefone Estação Trabalho String : IP Usuário Integer : prioridade Integer : privilégios IniciarSessao() : void Autorizado Diretório String : nome Diretório básico 0..*

52 10/03/06 Edson Scalabrin & Alcides Calsavara52 Associação Ternária Representa ligações entre 3 objetos Não pode ser dividida em associações binárias sem que haja perda de informações Associações de grau maior que 3 são raras e devem ser evitadas devido a complexidade de entendimento e implementação Exemplo: pessoas que são programadoras usam linguagens de programação em projetos

53 10/03/06 Edson Scalabrin & Alcides Calsavara53 Associação Ternária + Papel Pessoa String : nome String : telefone Veículo String : marca String : cor Concessionária String : nome String : endereço objeto vendedor comprador 1..* 1 1 Compra Data : data

54 10/03/06 Edson Scalabrin & Alcides Calsavara54 Associação Ternária + Papel Pessoa String : nome String : telefone Veículo String : marca String : cor Concessionária String : nome String : endereço objeto vendedor comprador 1..* 1 1 Venda Data : data

55 10/03/06 Edson Scalabrin & Alcides Calsavara55 Exercício Pessoa nome : String idade : Int ID empregador 1 : ? ID empregador 2 : ? ID empregador 3 : ? endereço : String ID Pessoa : ? Carro ID proprietário : ? ID carro : ? tipo proprietário : ? modelo : String ano : Int Empréstimo ID proprietário : ? ID cliente : ? número de conta : Int ID banco : ? juro : Real saldo atual : Real tipo proprietário : ? Empresa nome : String ID Empresa : ? Banco nome : String ID banco : ? Estas classes possuem atributos que são ponteiros para outras classes de objetos. Estes ponteiros podem ser substituídos por associações. Considerando que: cada pessoa pode ter até três empregos em empresas diferentes. cada pessoa, carro, empresa e banco possui o seu próprio identificador (ID). o proprietário de um carro pode ser: uma pessoa, uma empresa ou um banco. em um empréstimo, o carro é o objeto penhorado (ou comprado). Prepare um diagrama de classes, onde os ponteiros são substituídos por relações. Pode haver a necessidade de acrescentar uma ou mais classes. Elimine todos os ID. Certos atributos podem ser transformados em discriminantes *. * Um discriminante é um atributo do tipo enumeração que indica que uma propriedade de um objeto tornou-se abstrata através de uma relação de generalização.

56 10/03/06 Edson Scalabrin & Alcides Calsavara56 Exercício Pessoa nome : String idade : Int ID empregador 1 : ? ID empregador 2 : ? ID empregador 3 : ? endereço : String ID Pessoa : ? Carro ID proprietário : ? ID carro : ? tipo proprietário : ? modelo : String ano : Int Empréstimo ID proprietário : ? ID cliente : ? número de conta : Int ID banco : ? juro : Real saldo atual : Real tipo proprietário : ? Empresa nome : String ID Empresa : ? Banco nome : String ID banco : ? Resposta Veículo String : modelo Integer : ano Proprietário String : nome Possui Pessoa Integer : idade String : endereço EmpresaBanco Empréstimo Integer : conta Float : juros Float : saldo cedente penhor Emprega beneficiário 0..*

57 10/03/06 Edson Scalabrin & Alcides Calsavara57 Ordenação em Associações Em alguns casos o conjunto de objetos associados a um certo objeto apresenta uma ordem A palavra "ordenado" deve aparecer junto à multiplicade "muitos" de uma associação para indicar que existe uma ordem entre os objetos ligados Exemplos: as janelas visíveis em uma tela possuem uma ordem; os vértices de um polígono

58 10/03/06 Edson Scalabrin & Alcides Calsavara58 Exercício Prepare um diagrama de classes a partir do diagrama de instâncias em questão. Explique suas decisões de multiplicidade. Cada ponto tem uma coordenada x e uma coordenada y. Qual é o menor número de pontos necessários para a construção de um polígono? Faz alguma diferença se um ponta pode ou não ser compartilhado por diversos polígonos? Como você pode expressar o fato de que os pontos estão em seqüência? (Ponto) (Ponto) -10 (Ponto) (Ponto) 10 (Polígono) Tem

59 10/03/06 Edson Scalabrin & Alcides Calsavara59 Resposta Exercício (Ponto) (Ponto) -10 (Ponto) (Ponto) 10 (Polígono) Tem Ponto X : Real Y : Real Polígono 3..* {ordenado}

60 10/03/06 Edson Scalabrin & Alcides Calsavara60 Exercício Prepare um diagrama de classes e implemente-o (numa linguagem de programação de computadores orienta a objetos) a partir do diagrama de instâncias da figura acima. Explique suas decisões de multiplicidade. Como o seu diagrama expressa o fato de que os pontos estão em seqüência? (Ponto) (Ponto) -10 (Ponto) (Ponto) 10 (Polígono) próximo primeiroúltimo próximo

61 10/03/06 Edson Scalabrin & Alcides Calsavara61 Exercício (Ponto) (Ponto) -10 (Ponto) (Ponto) 10 (Polígono) próximo primeiroúltimo próximo Resposta Ponto X : real Y : real Polígono primeiro último próximo 0..1

62 10/03/06 Edson Scalabrin & Alcides Calsavara62 Uso de Agregação Na dúvida, use associação! Herança não representa o relacionamento parte-todo Agregados recursivos são freqüentes Agregação normalmente implica em propagação de operações

63 10/03/06 Edson Scalabrin & Alcides Calsavara63 Uso de Agregação Exemplo Documento Sentença Parágrafo Pessoa Possui cópia cópia() : void Efeito: Propagação de operação

64 10/03/06 Edson Scalabrin & Alcides Calsavara64 Uso de Agregação Exemplo Microcomputador MonitorMouseTeclado ChassisC. P. UR. A. MVentoinha Caixa do Sistema 0..* *

65 10/03/06 Edson Scalabrin & Alcides Calsavara65 Uso de Agregação Exercício Prepare um diagrama de classes a partir do diagrama de instâncias de um documento geométrico mostrado na seqüência. Esse documento tem 4 páginas. A primeira página tem um ponto vermelho e um quadrado amarelo desenhados nela. A segunda página contém uma linha e uma elipse. Um arco, um círculo e um retângulo aparecem nas duas últimas páginas. Ao preparar seu diagrama, utilize exatamente um relacionamento de agregação e um ou mais relacionamentos de generalização

66 10/03/06 Edson Scalabrin & Alcides Calsavara66 Uso de Agregação Exercício (Ponto) dimensões = 0 cor = vermelho posição = (5,4) (Linha) dimensões = 1 cor = azul posição = (12,9) orientação = 36 graus comprimento = 7 (Arco) dimensões = 1 cor = verde posição = (25,36) orientação = 45 graus diâmetro = 13 (Círculo) dimensões = 2 cor = laranja posição = (10,78) largura = 5 altura = 5 (Quadrado) dimensões = 2 cor = amarelo posição = (54,88) orientação = 22 graus largura = 10 altura = 10 (Elipse) dimensões = 2 cor = marrom posição = (-300,49) orientação = 0 graus largura = 100 altura = 50 (Retângulo) dimensões = 2 cor = azul posição = (102,158) orientação = 30 graus largura = 5 altura = 10 (Página) N. página = 1 (Página) N. página = 2 (Página) N. página = 3 (Página) N. página = 4

67 10/03/06 Edson Scalabrin & Alcides Calsavara67 Uso de Agregação Exercício Resposta Página Figura cor posição Contem Ponto Figura 0D Linha comprimento Figura 1D orientação Retângulo Figura 2D largura altura orientação Elipse QuadradoCirculo Arco diâmetro angulo 0..*

68 10/03/06 Edson Scalabrin & Alcides Calsavara68 Classes Abstratas e Concretas Classe abstrata: classe que não pode ter instâncias diretas, mas cujos descendentes sim; organizam características comuns a diversas classes; mecanismo para reutilizar código; pode definir operações abstratas (sem um correspondente método) Classe concreta: classe que pode ter instâncias diretas; não pode definir operações abstratas

69 10/03/06 Edson Scalabrin & Alcides Calsavara69 Cancelamento para extensão A nova operação é igual à operação herdada, exceto pelo fato de acrescentar alguns detalhes de comportamento, normalmente afetando novos atributos da subclasse.

70 10/03/06 Edson Scalabrin & Alcides Calsavara70 Cancelamento para restrição A nova operação restringe o protocolo (assinatura da operação), podendo reduzir os tipos de argumentos. A operação herdada fica fechada (restrita) dentro de cada subclasse específica.

71 10/03/06 Edson Scalabrin & Alcides Calsavara71 Cancelamento para otimização O novo método tem o mesmo protocolo externo e apresenta o mesmos resultados A implementação do novo método (algoritmo utilizado) pode ser completamente diferente

72 10/03/06 Edson Scalabrin & Alcides Calsavara72 Herança Múltipla Uma classe possui mais de uma subclasse e herda características de todos os seus ancestrais Maior capacidade de especificação de classes Maior oportunidade de reutilização Perda em simplicidade conceitual e de implementação Surgem classes de junção

73 10/03/06 Edson Scalabrin & Alcides Calsavara73 Exercício Automóvel Cor Número de passageiros Velocidade máxima Peso máximo Número de portas Entrar passageiro Sair passageiro Utilitário Cor Número de passageiros Velocidade máxima Peso máximo Volume Número de portas Entrar passageiro Sair passageiro Carregar Descarregar Caminhão Cor Velocidade máxima Peso máximo Volume Número de portas Número de eixos Carregar Descarregar Faça um diagrama de classes que represente estes veículos.

74 10/03/06 Edson Scalabrin & Alcides Calsavara74 Exercício (resposta multi-herança)

75 10/03/06 Edson Scalabrin & Alcides Calsavara75 Exercício (resposta sem multi-herança)

76 10/03/06 Edson Scalabrin & Alcides Calsavara76 Exemplo Sistema Comercial (Representação em blocos) Sistema Comercial Subsistema Compras Subsistema Vendas

77 10/03/06 Edson Scalabrin & Alcides Calsavara77 * 1..* fornece * 0..1 pertence a subcategoria supercategoria * 1 pertence a * 1 refere-se * 1 é atendida por * 1 corresponde 1..*é composta de 11..* 1 * 1 é realizada por 1 corresponde 1 1..* é composta de > Cliente SituacaoFinanceira > Vendedor PercentualDeComissao > Venda DataDaVenda > VendaAPrazo > Prestacao DataDeVencimento ValorDaPrestacao > Fornecedor > Duplicata DataDeVencimento ValorDevido > Compra DataDaCompra > ItemDeCompra QtdeSolicitada > Produto QtdeEmEstoque > CategoriaDeProdutos Nome > ItemDeVenda QtdeVendida é realizada para compreende * 1

78 10/03/06 Edson Scalabrin & Alcides Calsavara78 Produtos * 1..* fornece * 0..1 pertence a subcategoria supercategoria * 1 pertence a 1 é atendida por 1 corresponde > Fornecedor > Produto QtdeEmEstoque > CategoriaDeProdutos Nome

79 10/03/06 Edson Scalabrin & Alcides Calsavara79 Vendas 11..* 1 * 1 é realizada por 1 corresponde 1 1..* é composta de > Cliente SituacaoFinanceira > Vendedor PercentualDeComissao > Venda DataDaVenda > VendaAPrazo > Prestacao DataDeVencimento ValorDaPrestacao > Produto QtdeEmEstoque > ItemDeVenda QtdeVendida é realizada para compreende *

80 10/03/06 Edson Scalabrin & Alcides Calsavara80 Compras * 1..* fornece * * 1 refere-se * 1 é atendida por * 1 corresponde 1..*é composta de > Fornecedor > Duplicata DataDeVencimento ValorDevido > Compra DataDaCompra > ItemDeCompra QtdeSolicitada > Produto QtdeEmEstoque 1


Carregar ppt "10/03/06 Edson Scalabrin & Alcides Calsavara 1 Fundamentos de Engenharia de Software Edson E. Scalabrin Telefone: 0xx-41-3271-1360."

Apresentações semelhantes


Anúncios Google