 JCFJ4.1SEL3113–EngenhariadeSoftwarePrograma do Módulo 2Orientação a Objetos– Conceitos Básicos– Análise Orientada a O...
 JCFJ4.3SEL3113–EngenhariadeSoftwareObjetosÉ a representação de uma entidade que pode ser real ou conceitual Ele poder...
 JCFJ4.5SEL3113–EngenhariadeSoftwareClassesClasse: é a descrição de um grupo de objetos com propriedades comuns (Atrib...
 JCFJ4.7SEL3113–EngenhariadeSoftwareRelação entre Classes e ObjetosUma classe é uma definição abstrata de um objeto.– ...
 JCFJ4.9SEL3113–EngenhariadeSoftwareAtributos: Propriedades EstáticasAtributos estão ligados às estruturas de dadosSin...
 JCFJ4.11SEL3113–EngenhariadeSoftwareO que é uma Operação?Um serviço que pode ser requisitado a um objeto para que ele...
 JCFJ4.13SEL3113–EngenhariadeSoftwareExemplosAs operações de criação de objetos são implícitas pois são “padrão”.Forma...
 JCFJ4.15SEL3113–EngenhariadeSoftwareUtilização dos Diagramas de ClassesQuando modelando a visão estática do sistema, ...
 JCFJ4.17SEL3113–EngenhariadeSoftwareUm mecanismo de propósito geral para organizar elementos em grupos.Um elemento de...
 JCFJ4.19SEL3113–EngenhariadeSoftwareTipos Particulares de Classes - I- <<entity>> - Classe Entidade: modelam informaç...
 JCFJ4.21SEL3113–EngenhariadeSoftwareRelações entre ClassesLigação entre objetos ou classes que cria uma dependência f...
 JCFJ4.23SEL3113–EngenhariadeSoftwareNome das Associações: como regra geral, pode-se dizer que asassociações devem ser...
 JCFJ4.25SEL3113–EngenhariadeSoftwareRelações que têm como origem e destino uma única classe.Normalmente isto não indi...
 JCFJ4.27SEL3113–EngenhariadeSoftwareEstudantenome : Stringnúmero : Integer = 0idade : Integeranoadicionar(Nom : Strin...
 JCFJ4.29SEL3113–EngenhariadeSoftwareDefine uma associação entre classes onde uma classe compartilha a estrutura e/ouc...
 JCFJ4.31SEL3113–EngenhariadeSoftwareHerança MúltiplaMétodos Orientados a Objetos - UML - Diagramas de Classes - Heran...
 JCFJ4.33SEL3113–EngenhariadeSoftwareConsiderações sobre HerançaSentido: “é um”, “é um tipo de”, “é da família dos”.Pr...
 JCFJ4.35SEL3113–EngenhariadeSoftware Métodos Orientados a Objetos - UML - Diagramas de ClassesDiagrama de Classe - Ex...
 JCFJ4.37SEL3113–EngenhariadeSoftwareExercício 1Sabendo que:– Um Diagrama de Classes contém as seguintes classes: Perf...
 JCFJ4.39SEL3113–EngenhariadeSoftwareExercício 2: Sistema de Controle de PedidosUma empresa pretende desenvolver um Si...
 JCFJ4.41SEL3113–EngenhariadeSoftwareExercício 2: Sistema de Controle de Pedidos JCFJ4.42SEL3113–EngenhariadeSoftw...
Próximos SlideShares
Carregando em…5
×

Diagrama de Classe

1.263 visualizações

Publicada em

Publicada em: Tecnologia
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
1.263
No SlideShare
0
A partir de incorporações
0
Número de incorporações
5
Ações
Compartilhamentos
0
Downloads
24
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Diagrama de Classe

  1. 1.  JCFJ4.1SEL3113–EngenhariadeSoftwarePrograma do Módulo 2Orientação a Objetos– Conceitos Básicos– Análise Orientada a Objetos (UML)Diagrama de Classes– Processo Unificado (RUP) JCFJ4.2SEL3113–EngenhariadeSoftwareDiagrama de Classes – DadosObjetos, Classes, Atributos, Operações,Associações, Agregação, Composição,Herança Métodos Orientados a Objetos - UML
  2. 2.  JCFJ4.3SEL3113–EngenhariadeSoftwareObjetosÉ a representação de uma entidade que pode ser real ou conceitual Ele poderepresentar alguma coisa concreta (um computador) ou um conceito (transaçãobancária).Cada objeto tem definidas as seguintes características:– Estado: define uma das possíveis condições nas quais um objeto pode existir.O estado de um objeto, que é definido por um conjunto de propriedades (Atributos) maisas relações que o objeto tem com outros objetos Estado normalmente vai mudando como passar do tempo (execução do sistema do qual ele faz parte).– Comportamento: determina a maneira pela qual um objeto responde aos questionamentosdos outros objetos, determinando cada ação que um objeto pode realizarO comportamento de um objeto é implementado através de Operações.– Identidade: indica a unicidade de cada objeto em um sistema, mesmo se seu estado foridêntico ao de outro objeto.Métodos Orientados a Objetos – UML – Diagrama de Classes JCFJ4.4SEL3113–EngenhariadeSoftwareRepresentando Objetos em UMLUm objeto é representado como um retângulo com o nome sublinhado.J Clark :Professor: ProfessorObjeto com NomeObjeto AnônimoProfessor J ClarkMétodos Orientados a Objetos – UML – Diagrama de Classes
  3. 3.  JCFJ4.5SEL3113–EngenhariadeSoftwareClassesClasse: é a descrição de um grupo de objetos com propriedades comuns (Atributos),comportamento comum (Operações), relações comuns com outros objetos além deuma semântica comum.Uma Classe é um padrão para a criação de objetos, e cada objeto é uma instância deuma única classe.Uma Classe bem definida deve capturar uma e somente uma abstração, e seu nomedeve vir do domínio da aplicação sendo definido por um substantivosendo definido por um substantivo.eeee JP mPMétodos Orientados a Objetos – UML – Diagrama de Classes JCFJ4.6SEL3113–EngenhariadeSoftwareRepresentando Classes em UMLUma classe é representada utilizando um retângulo com trêscompartimentos:– O nome da classe– A estrutura (Atributos)– O comportamento (Operações)Professor- name- employeeID : UniqueId- hireDate- status- discipline- maxLoad+ submitFinalGrade()+ acceptCourseOffering()+ setMaxLoad()+ takeSabbatical()+ teachClass()Métodos Orientados a Objetos – UML – Diagrama de Classes
  4. 4.  JCFJ4.7SEL3113–EngenhariadeSoftwareRelação entre Classes e ObjetosUma classe é uma definição abstrata de um objeto.– Ela define a estrutura e o comportamento de cada objeto da classe.– Ela serve como um modelo para a criação dos objetos.Classes não são coleções de objetos.ProfessorProfessor MeijerProfessor TorpieProfessor AllenMétodos Orientados a Objetos – UML – Diagrama de Classes JCFJ4.8SEL3113–EngenhariadeSoftwareO que é um Atributo?Um atributo é uma propriedade de uma classe com um nome e quedescreve a faixa de valores que instâncias da classe podem manter paraesta propriedade.Uma classe pode ter qualquer número de atributos ou pode não ternenhum atributo.AtributosStudent- name- address- studentID- dateOfBirthMétodos Orientados a Objetos – UML – Diagrama de Classes
  5. 5.  JCFJ4.9SEL3113–EngenhariadeSoftwareAtributos: Propriedades EstáticasAtributos estão ligados às estruturas de dadosSintaxe– [visibilidade] nome [multiplicidade] [ : tipo ][= valor-inicial]Três valores para a visibilidade :– +, public (visível por todas as classes).– #, protected (visível na classe e nas sub-classes).– -, private (visível unicamente na classe).eeee JP mPMétodos Orientados a Objetos – UML – Diagrama de Classes JCFJ4.10SEL3113–EngenhariadeSoftwareAtributos em Classes e ObjetosClasseObjetosStudent- name- address- studentID- dateOfBirth:Student- name = “M. Modano”- address = “123 Main St.”- studentID = 9- dateOfBirth = “03/10/1967”:Student- name = “D. Hatcher”- address = “456 Oak Ln.”- studentID = 2- dateOfBirth = “12/11/1969”Métodos Orientados a Objetos – UML – Diagrama de Classes
  6. 6.  JCFJ4.11SEL3113–EngenhariadeSoftwareO que é uma Operação?Um serviço que pode ser requisitado a um objeto para que eleimplemente um comportamento.Uma operação tem uma assinatura, que define seus parâmetros e seutipo de retorno.Uma classe pode ter qualquer número de operações ou nenhuma.OperaçõesStudent+ get tuition()+ add schedule()+ get schedule()+ delete schedule()+ has prerequisites()Métodos Orientados a Objetos – UML – Diagrama de Classes JCFJ4.12SEL3113–EngenhariadeSoftwareOperações: Propriedades DinâmicasSintaxe– [visibilidade] nome [ (lista-parâmetros) ] [ : tipo-retorno ]Três valores para a visibilidade :– +, public (visível por todas as classes).– #, protected (visível na classe e nas sub-classes).– -, private (visível unicamente na classe).eeee JP mPMétodos Orientados a Objetos – UML – Diagrama de Classes
  7. 7.  JCFJ4.13SEL3113–EngenhariadeSoftwareExemplosAs operações de criação de objetos são implícitas pois são “padrão”.Formaçãonome : Stringadicionar(nom : String) : voidvalidar(nom : String) : voidInscriçãodata : DateEsportenomeadicionar()invalidar()Estudantenome : Stringnúmero : Integer = 0idade : Integeranoadicionar(nome : String) : voids-inscrever() : BooleanFormação: ciclo de estudos aoqual os estudantes podem seinscrever na instituição na qualestão matriculados.Criada ou invalidade pelaadministração após a habilitação.Arquivada para o histórico davida do estabelecimento.NotaNa criação da classeela deve serdocumentada com umaNota ou na própriaDocumentação daclasse.eeee JP mPMétodos Orientados a Objetos – UML – Diagrama de Classes JCFJ4.14SEL3113–EngenhariadeSoftwareO que é um Diagrama de Classes?Uma visão estática do sistema.CloseRegistrationForm+ open()+ close registration()Student+ get tuition()+ add schedule()+ get schedule()+ delete schedule()+ has pre-requisites()Schedule- semester+ commit()+ select alternate()+ remove offering()+ level()+ cancel()+ get cost()+ delete()+ submit()+ save()+ any conflicts?()+ create with offerings()+ update with new selections()Professor- name- employeeID : UniqueId- hireDate- status- discipline- maxLoad+ submitFinalGrade()+ acceptCourseOffering()+ setMaxLoad()+ takeSabbatical()+ teachClass()CloseRegistrationController+ is registration open?()+ close registration()Métodos Orientados a Objetos – UML – Diagrama de Classes
  8. 8.  JCFJ4.15SEL3113–EngenhariadeSoftwareUtilização dos Diagramas de ClassesQuando modelando a visão estática do sistema, diagramas de classessão tipicamente utilizados com três finalidades, na modelagem:– Do vocabulário do sistema: definição das abstrações que estarão dentro ou forados sistema Os diagramas de classes especificam estas abstrações e suasresponsabilidades.– De Colaborações: grupos de classes e outros elementos que trabalham juntos parafornecer uma solução que é maior que a soma dos elementos colaborandoClasses não trabalham sozinhas na implementação de uma solução e diagramas declasse são a maneira utilizada para apresentar a colaboração entre as classes.– De um esquema lógico de um banco de dados: diagramas de classe podem serutilizados para modelar os esquemas dos bancos de dados que serão utilizadospara tornar persistentes os objetos do sistema Diagramas de classe são um tipode Diagramas Entidade Relacionamento (ER) que apresentam além dos dados, ocomportamento dinâmico dos elementos através das operações Operações sãonormalmente transformadas em triggers ou stored procedures do banco de dados.Métodos Orientados a Objetos – UML – Diagrama de Classes JCFJ4.16SEL3113–EngenhariadeSoftwareDiagrama de Classes: ExemploExiste uma maneira de organizar melhor estas classes?Que problema se pode observar neste diagrama?CloseRegistrationFormLoginFormProfessorBillingSystemCloseRegistrationControllerRegisterForCoursesFormCourseCourseCatalogSystemStudentRegistrationControllerCourseOfferingScheduleMétodos Orientados a Objetos – UML – Diagrama de Classes
  9. 9.  JCFJ4.17SEL3113–EngenhariadeSoftwareUm mecanismo de propósito geral para organizar elementos em grupos.Um elemento de modelagem que contém outros elementos demodelagem.Um pacote pode ser usado para:– Organizar o modelo sendo desenvolvido.– Criar uma unidade de gerenciamento da configuração.Revisão: O que é um Pacote?UniversityArtifactsMétodos Orientados a Objetos – UML – Diagrama de Classes JCFJ4.18SEL3113–EngenhariadeSoftwareExemplo: Pacote RegistrationRegistrationCloseRegistrationForm CloseRegistrationControllerRegisterForCoursesForm RegistrationControlerMétodos Orientados a Objetos – UML – Diagrama de Classes&
  10. 10.  JCFJ4.19SEL3113–EngenhariadeSoftwareTipos Particulares de Classes - I- <<entity>> - Classe Entidade: modelam informação e comportamentoassociado com uma classe que tem um “longo tempo de vida” Estetipo de classe representa uma entidade do mundo real ou pode sernecessária para implementar tarefas internas do sistema.– <<boundary>> - Classe de Fronteira: tratam com a comunicação entreas entidades externas e o interior do sistema Elas podem implementara interface para um usuário ou para outro sistema Cada parator/cenário deve ser examinado na procura destas classes.– <<control>> - Classe de Controle: modelam o comportamentoseqüencial específico para um ou mais casos de uso Elas coordenamos eventos necessários para realizar o comportamento especificado nocaso de uso.Classe EntidadeClasse de FronteiraClasse de ControlePode-se diferenciar três tipos primários de classes através da utilização de «estereótipos»:Métodos Orientados a Objetos - UML - Diagramas de Classes JCFJ4.20SEL3113–EngenhariadeSoftwareTipos Particulares de Classes - II– «interface» : associada a uma classe, ele descreve um comportamento visível Contémsomente operações.POSterminalI-StoreStorestoreId : IntegerPOSlist : listcreate()login()find()getPOStotals()updateStoreTotals()get()<<uses>>POSterminalI-StoregetPOStotals()updateStoreTotals()get()StorestoreId : IntegerPOSlist : listcreate()login()find()getPOStotals()updateStoreTotals()get()<<uses>>Uma classe «interface» é umaClasse abstrata.Outra representaçãoMétodos Orientados a Objetos - UML - Diagramas de Classeseeee JP mP
  11. 11.  JCFJ4.21SEL3113–EngenhariadeSoftwareRelações entre ClassesLigação entre objetos ou classes que cria uma dependência forte entreas classes do diagrama Três tipos básicos de relações (estruturação):– Associação– Agregação, Composição– HerançaRelações de dependência, mais fracas voltadas ao projeto/realização domodelo de base (dependências) :– « realize » entre classe e uma interface– « realize » entre os componentes de software de uma classe– « trace » entre uma classe “usuário” proveniente da análise e uma classe“componente” que é o resultado do projeto do software.Métodos Orientados a Objetos - UML - Diagramas de Classeseeee JP mP JCFJ4.22SEL3113–EngenhariadeSoftwareUm relacionamento semântico entre duas ou mais classes queespecifica conexões entre suas instânciasentre suas instâncias Relação estrutural queespecifica que objetos de uma classe estão conectados a objetos deoutra classe.Associações são representadas em UML por linhas entre as classesDados “podem fluir” através das associações de uma classe para outra.Uma associação representa uma informação cujo tempo de vida não énegligenciável em relação à dinâmica geral dos objetos associados.Métodos Orientados a Objetos - UML - Diagramas de ClassesO que é uma AssociaçãoStudent Schedule
  12. 12.  JCFJ4.23SEL3113–EngenhariadeSoftwareNome das Associações: como regra geral, pode-se dizer que asassociações devem ser nomeadas com formas verbais ativas ou passivasElas devem ser representadas em itálico e pode-se colocar os sinaisde < > para indicar o sentido de leitura do nome das associações.Papel: é o nome dado as extremidades de uma associaçãorepresentando um pseudo-atributo da classe fonte Um papel deve terum nome único no conjunto de atributos da classe fonte O papeldescreve como uma classe vê a outra classe através da associação.Cada associação binária pode possuir dois papeis, um em cadaextremidade Os papeis são nomeados com uma forma nominal.Métodos Orientados a Objetos - UML - Diagramas de ClassesO que é uma Associação JCFJ4.24SEL3113–EngenhariadeSoftwareO que é Multiplicidade?Multiplicidade indica o número de instâncias de uma classe que se relaciona a UMAinstância de outra classe.Para cada associação, existem duas decisões que devem ser tomadas a respeito dasmultiplicidades para cada final de associação:– Para cada instância de Professor, diversos cursos podem ser oferecidos.– Para cada instância de CourseOffering, pode-se ter um ou nenhum Professorcomo instrutor.Indicadores de multiplicidade:Professor CourseOffering0..1 0..*0..1 0..*instructor1 exatamente um.0..*, ou * zero ou mais.1..* um ou mais.0..1 zero ou um (elemento opcional).5..8 faixa específica (5, 6, 7, ou 8 ).4..7, 9 combinação (4, 5, 6, 7, ou 9).&Métodos Orientados a Objetos - UML - Diagramas de Classes - Associações
  13. 13.  JCFJ4.25SEL3113–EngenhariadeSoftwareRelações que têm como origem e destino uma única classe.Normalmente isto não indica que um objeto da classe tem umaassociação com ele mesmo Geralmente indicam relações existentesentre diferentes objetos da mesma classe.Com associações reflexivas para se nomear a associação são utilizadospapeis e não nomes de associação.Métodos Orientados a Objetos - UML - Diagramas de Classes - AssociaçõesAssociação ReflexivaPessoa2+pais+crianças20, n JCFJ4.26SEL3113–EngenhariadeSoftwareMultiplicidade: ExemploRegisterForCoursesFormCourseOfferingSchedule0..40..*Student0..*1RegistrationController11110..10..11. Descreva os relacionamentos entre: RegisterForCoursesForm eRegistrationController; Schedule para Student; e CourseOffering paraSchedule. Quais são os limites superiores e inferiores destes relacionamentos?2. Qual relacionamento é obrigatório? O que isto significa?3. Quantos CourseOffering podem aparecer em um Schedule?4. Quantos Student estão ligados a cada Schedule?5. Pode um Schedule existir sem um Student?6. Quantos Schedule podem ser abertos em um RegisterForCoursesForm?Métodos Orientados a Objetos - UML - Diagramas de Classes - Associações
  14. 14.  JCFJ4.27SEL3113–EngenhariadeSoftwareEstudantenome : Stringnúmero : Integer = 0idade : Integeranoadicionar(Nom : String) : voids-inscrever() : BooleanCursonome : Stringadicionar()validar()1..41..n 1..41..nInscrito >+inscriçãoAssociações: ExemploO Curso no qual o estudante se inscreve não faz parte dos atributosde Estudante É a associaassociaassociaassociaççççãoãoãoão que traduz esta característica.Papel (não é necessário que esteja dos dois lados)Nome da associação (em itálico)> Como ler a associaçãoCardinalidades (invertidas)Métodos Orientados a Objetos - UML - Diagramas de Classes - Associaçõeseeee JP mP JCFJ4.28SEL3113–EngenhariadeSoftwareClasse AssociativaInscriçãodata : Date Inscrição de um estudanteem um curso doestabelecimento, criada edatada pela escolaridadeno ato da inscrição.Arquivada para o históricoda vida do estudante.Classe associativa: um objeto da classe é identificadopelo “casal” de objetos ligados à associação– Uma associação pode intrinsecamente ter uma estrutura e um comportamento quedeva ser representado Associação representada como uma classe.– Situação verdadeira quando existe uma informação a ser representada e estainformação é ligada simultaneamente aos dois objetos ligados pela associação e nãosomente a um deles.Métodos Orientados a Objetos - UML - Diagramas de Classes - AssociaçõesEstudantenome : Stringnúmero : Integer = 0idade : Integeranoadicionar(Nom : String) : voids-inscrever() : BooleanCursonome : Stringadicionar()validar()1..41..nInscrição >+inscritoseeee JP mP
  15. 15.  JCFJ4.29SEL3113–EngenhariadeSoftwareDefine uma associação entre classes onde uma classe compartilha a estrutura e/oucomportamento com uma ou mais classes.– Uma hierarquia de abstrações, na qual uma sub-classe herda de uma ou mais classes, écriada Uma sub-classe herdará todos os atributos, operações (públicas ou protegidas) eassociações definidos em qualquer uma de suas super-classes.– Uma sub-classe pode ser aumentada com atributos, operações e associações adicionais quese aplicam somente no nível hierárquico ao qual a sub-classe pertence.– Uma sub-classe pode fornecer sua própria implementação para uma operação definida emuma super-classe Polimorfismo.– Generalização: mecanismo utilizado para criar super-classes que encapsulam estrutura ecomportamento comuns a diversas classes Relacionamento que permite que objetos deum elemento especializado (filho) sejam substituídos por objetos de um elemento geral(o pai).– O conceito de generalização é utilizado em UML não só com classes mas também compacotes e casos de uso.– Especialização: mecanismo utilizado para criar sub-classes que representam refinamentosde super-classes Tipicamente estrutura e comportamento são adicionados às novas sub-classes.Métodos Orientados a Objetos - UML - Diagramas de ClassesHerança JCFJ4.30SEL3113–EngenhariadeSoftwareHerança: Generalização-EspecializaçãoInstância-VôoassociarAvião()Instância-Passres1res2reservar1()reservar2()associarAvião()Instância-Cargacargareservar-carga()associarAvião()HerançaPolimorfismoGeneralização: mais geral…– super-classe– sub-classe (herda de)Especialização: mais específicoGeneralizar :– Fatorar atributos, operações,restrições.Especializar :– Extensão Coerente no sentido dateoria de conjuntos...Métodos Orientados a Objetos - UML - Diagramas de Classes - Herançaeeee JP mP
  16. 16.  JCFJ4.31SEL3113–EngenhariadeSoftwareHerança MúltiplaMétodos Orientados a Objetos - UML - Diagramas de Classes - HerançaAnimalFelinoeeee JP mPMamíferoPeixe Carnívoro Herbívoro JCFJ4.32SEL3113–EngenhariadeSoftwareClasse AbstrataClasse reagrupando propriedades comuns de suas sub-classes;Não tem instâncias próprias Serve somente como “fatoração”, “abstração”.Pessoanome : Stringsobrenome : Stringcpf : Integerendereço : Stringidentificar()Empregadosalário : Doubleíndice : Doubleidentificar()Estudanten-inscrição : Integeridentificar()Nome em itálicoMétodos Orientados a Objetos - UML - Diagramas de Classes - Herançaeeee JP mP
  17. 17.  JCFJ4.33SEL3113–EngenhariadeSoftwareConsiderações sobre HerançaSentido: “é um”, “é um tipo de”, “é da família dos”.Propriedades:– Não reflexiva: A não herda dele mesmo; ele é ele próprio;– Não simétrica: B sub-classe de A, proíbe A sub-classe de B (não cíclico)– Transitiva: C sub-classe de B, B sub-classe de A C sub-classe de AABCMétodos Orientados a Objetos - UML - Diagramas de Classes - Herançaeeee JP mPABA JCFJ4.34SEL3113–EngenhariadeSoftwareCurso Módulo1..n1 1..n1Curso Módulo1..n1..n 1..n1..nForma especializada de associação, na qual um “todo” é relacionado com suas partes(Whole-Parts) Como determinar se uma associação é uma agregação:– A frase “uma parte de” pode ser utilizada para descrever a associação?– Algumas operações do “todo” são aplicadas automaticamente às partes?– Existe uma assimetria intrínseca ligada à associação, com uma classe subordinada a outra?ForteForteForteForte : ComposiçãoFracaFracaFracaFraca : AgregaçãoAgregaçãoUm módulo pertence a um só curso (e desaparece com ele).Os módulos são compartilhados por diferentes cursos.composição = agregação fortenão existe compartilhamento ea morte é simultâneaTodo ParteMétodos Orientados a Objetos - UML - Diagramas de Classeseeee JP mP
  18. 18.  JCFJ4.35SEL3113–EngenhariadeSoftware Métodos Orientados a Objetos - UML - Diagramas de ClassesDiagrama de Classe - ExemploDiagrama de Classe - Exemplo Modelagem de Objetos através da UMLJ. D. Furlani – Makron BooksRestrição JCFJ4.36SEL3113–EngenhariadeSoftwareO que representa um diagrama de classes?Que benefícios os pacotes oferecem aoprocesso de modelagem?Defina associação, generalização eagregação.Como se pode encontrar associações?O que é multiplicidade? Que informações amultiplicidade fornece a pessoa que constrói omodelo?RevisãoMétodos Orientados a Objetos - UML - Diagramas de Classes
  19. 19.  JCFJ4.37SEL3113–EngenhariadeSoftwareExercício 1Sabendo que:– Um Diagrama de Classes contém as seguintes classes: Perfil Pessoaldo Planejador (PPP), Perfil Pessoal do Controlador (PPC), Perfil doConsumidor (PC), e Registro do Comprador (RC).– As Associações apresentam as seguintes informações:1. Cada objeto Perfil Pessoal do Planejador (PPP) pode estar associadocom um objeto Perfil Pessoal do Controlador (PPC).2. Cada objeto Perfil Pessoal do Controlador (PPC) deve estar relacionadocom um Perfil Pessoal do Planejador (PPP).3. Um objeto Perfil Pessoal do Controlador (PPC) pode estar associadocom um objeto de Registro do Comprador (RC) e um Perfil doConsumidor (PC).4. Cada instância da classe Registro do Comprador (RC) pode estarrelacionada com zero ou uma instância de Perfil Pessoal do Controlador(PPC).5. Cada instância da classe Perfil do Consumidor (PC) está associado comzero ou um objeto de Perfil Pessoal do Planejador (PPP).Desenhe o Diagrama de Classes.Métodos Orientados a Objetos - UML - Diagramas de Classes JCFJ4.38SEL3113–EngenhariadeSoftwareSolução do ExercícioMétodos Orientados a Objetos - UML - Diagramas de ClassesPPPPCPPC1110..1RC10..1110..110..11
  20. 20.  JCFJ4.39SEL3113–EngenhariadeSoftwareExercício 2: Sistema de Controle de PedidosUma empresa pretende desenvolver um Sistema de Informação para a gerênciados pedidos recebidos pela empresa. Este sistema de informação deve ser capaz decontrolar o cadastro dos clientes, dos pedidos e dos produtos com todas asfuncionalidades características (inclusão, alteração, supressão). Para realizar qualquer operaçãocom o sistema o funcionário deve ter realizado o login no sistema. No sistema um login écaracterizado por um username e uma password. Os Clientes que serão gerenciados pelo SIpodem ser do tipo Cliente Corporativo ou Cliente Pessoal. Cada Cliente pode estar associado adiversos Pedidos, mas um Pedido está associado unicamente a um Cliente. Um Pedido écomposto por diversas Linhas de Pedido e cada Linha de Pedido logicamente só pode fazer partede um único Pedido. As linhas de Pedido nascem e morrem com os Pedidos. Cada Linha dePedido está associada a unicamente um Produto, mas um Produto pode estar associado a diversasLinhas de Pedido. Clientes Corporativos são definidos por um código, um nome, um endereço,um nome de contato, uma classe de crédito e um limite de crédito. Clientes Pessoais são definidospor um código, um nome, um endereço, e um número de cartão de crédito. Um Pedido é definidopor uma data, um preço e um número. Cada Linha do Pedido é definida por uma quantidade e umpreço e cada Produto é definido por um código, uma descrição e um preço.Métodos Orientados a Objetos - UML – Diagramas de Casos de Uso JCFJ4.40SEL3113–EngenhariadeSoftwareExercício 2: Sistema de Controle de PedidosClienteCorporativocontato : StringclasseCredito : StringlimiteCredito : StringsetCodido(codigo : String) : BooleanClientePessoalnCartao : StringClientecodigo : Stringnome : Stringendereco : StringPedidonumero : Stringdata : Datepreco : Float0..n1 0..n1Produtocodigo : Stringdescricao : Stringpreco : FloatLinhaPedidoquantidade : Integerpreco : Float1..n10..n10..n
  21. 21.  JCFJ4.41SEL3113–EngenhariadeSoftwareExercício 2: Sistema de Controle de Pedidos JCFJ4.42SEL3113–EngenhariadeSoftwareBibliografia[FOO04] Martin Fowler, UML Essencial – 3 ª Edição, Bookman, 2004.[IBM04] IBM Corporation, Essentials of Visual Modeling with UML 2.0, Materialdisponibilizado através do programa University da IBM.Métodos Orientados a Objetos – UML

×