120332730_diagrama de classes

31
UML – MODELAÇÃO DA ESTRUTURA Professor Sandro Carvalho

Upload: janseba59

Post on 26-Sep-2015

220 views

Category:

Documents


0 download

DESCRIPTION

Java

TRANSCRIPT

  • UML MODELAO DAESTRUTURAProfessor Sandro Carvalho

  • IntroduoA modelao da estrutura de um sistema de software consiste principalmente, segundo a abordagem orientada por objetos, na identificao de classes e suas respectivas relaes. Um objeto reflete em geral uma entidade do mundo real e apresenta um estado e comportamento prprio. Os objetos interatuam entre si por troca de mensagens. Uma classe consiste numa estrutura que permite criar objetos semelhantes; que apresentem estado e comportamento semelhante. Neste sentido diz-se que uma classe uma fbrica de objetos e que um objeto uma instncia de uma classe.

  • IntroduoA UML providencia os seguintes elementos, que permitem a especificao da estrutura esttica de um sistema de software: classes, relaes, interfaces, objetos.

  • ClassesUma classe a descrio de um conjunto de objetos que partilham os mesmos atributos, operaes, relaes e a mesma semntica. Uma classe corresponde a algo tangvel ou a uma abstrao conceitual existente no domnio do utilizador ou no domnio do engenheiro de software.

  • ClassesUma classe representada em UML por um rectngulo com uma, duas ou trs sees. Na primeira seo apresenta-se o nome da classe, na segunda a sua lista de atributos, e na terceira a sua lista de mtodos.

  • Classes

  • RelaesUma relao em UML estabelece a ligao entre elementos e representada graficamente por um determinado tipo de linha. Na modelao orientada por objetos os trs tipos de relaes mais importantes so (1) dependncias; (2) generalizaes; e (3) associaes.

  • Relao de DependnciaUma relao de dependncia, ou simplesmente dependncia, indica que a alterao na especificao de um elemento pode afetar outro elemento que a usa, mas no necessariamente o oposto. A dependncia representada em UML atravs de uma linha dirigida a tracejado.

  • Relao de Dependnciaexemplo da relao de dependncia entre as classes SensorTemperatura e Temperatura.

  • Relao de GeneralizaoUma relao de generalizao, ou simplesmente generalizao, uma relao entre um elemento geral (superclasse, super-caso utilizao, super-pacote) e um elemento mais especfico (subclasse, sub-caso-utilizao, sub-pacote). representada em UML por uma linha dirigida a cheio com um tringulo branco no seu extremo.No contexto de classes usam-se generalizaes para ilustrar as relaes de herana conhecidas das linguagens de programao orientadas por objetos.

  • Relao de GeneralizaoA herana providencia um mecanismo natural e potente de organizao dos programas de software ao permitir: (1) que cada subclasse herde o estado e comportamento de uma superclasse; (2) subclasses podem adicionar o seu prprio estado e comportamento; e (3) as subclasses podem ainda alterar os mtodos (comportamento) herdados, providenciando implementaes especializadas desses mtodos.

  • Relao de Generalizao

  • Relao de Associao Uma relao de associao, ou simplesmente associao, uma relao estrutural que especifica que objetos de uma classe esto ligados a objetos de outra.

  • Relao de Associao A Figura a seguir ilustra a associao de posse entre as classes Utilizador e Password, com uma multiplicidade de 1 para muitos (1-N). A associao indica que um utilizador tem vrias (0 ou mais) passwords e que uma password pertence necessariamente a um utilizador.

  • Relao de Associao

  • Relao de Associao

  • Multiplicidade A multiplicidade traduz o nmero de instncias de uma classe que se podem relacionar (atravs da associao) com uma nica instncia da(s) outra(s) classe(s) participante(s). Pode-se especificar em UML qualquer tipo de multiplicidade. Por exemplo, multiplicidade muitos (*), um ou mais (1..*), exatamente um (1), zero ou um (0..1).

  • Navegao A navegao traduz a forma como a partir de uma instncia de uma classe se pode aceder a uma ou mais instncias de outra classe relacionada pela associao. Por omisso a navegao numa associao bidirecional.

  • Agregao (Simples) A associao entre classes sem agregao reflete que ambas as classes se encontram no mesmo nvel conceitual. Por outro lado, uma relao de agregao corresponde ao fato de uma instncia de determinada classe possuir ou ser composta por vrias instncias de outra classe. O adorno de agregao representado por um losango colocado junto classe que representa o elemento agregador ou o todo. A associao de agregao traduz apenas o fato de uma classe ser composta por diferentes outras classes, suas componentes.

  • Agregao (Simples) A Figura abaixo ilustra a relao de agregao entre vrias classes. Na prtica a descrio das diferentes componentes que compem um computador pessoal (PC).

  • Composio (Agregao Composta) A composio, ou agregao composta, uma variante agregao simples, em que adicionada a seguinte semntica: (1) forte pertena do todo em relao parte, e (2) tempo de vida delimitado (as partes no podem existir sem o todo). Adicionalmente, o todo responsvel pela disposio das suas partes, ou seja, o todo responsvel pela criao e destruio das suas partes.

  • Composio (Agregao Composta) O adorno de agregao composta representado por um losango a cheio colocado junto classe que representa o elemento agregador ou o todo.

    A Figura acima ilustra um exemplo de uma associao com agregao composta, de forma a refletir o fato que um Departamento no existe fora do contexto de uma Empresa.

  • Classes-Associao Numa relao de associao entre classes, a associao pode tambm ter os seus prprios atributos (e eventualmente operaes), devendo ser, por conseguinte, modelada tambm como uma classe. Este tipo de classe designa-se por classe-associao.

  • Classes-Associao Considere-se o exemplo da Figura a seguir, em que a associao entre as classes Pessoa e Empresa traduz as tarefas que cada empregado realiza na empresa. Para cada tarefa mantido um conjunto de atributos. A classe-associao Tarefa representada visualmente como qualquer outra classe, mas apresenta uma linha a tracejado a lig-la linha da associao.

  • Classes-Associao

  • Classes-Associao Associaes N-rias, com aridade maior ou igual a 3, so pouco comuns na modelao de classes. Contudo, h situaes em que a aplicao deste tipo de associaes vantajosa em termos da clareza do modelo. Nestas circunstncias, a associao representada por um losango com linhas para todas as suas classes participantes. A Figura a seguir ilustra um exemplo de uma associao n-ria, a associao Tarefa e correspondente classe-associao, que relaciona as classes Pessoa, Empresa e TipoTarefa. Caso a associao tenha tambm atributos e/ou operaes prprias, cria-se uma classe-associao,a qual ligada ao losango por uma linha a tracejado.

  • Classes-Associao

  • Exemplo de Diagrama de Classes

  • Exemplo Considere o sistema de uma equipe de futebol constitudo pelos seguintes atores: jogador, treinador, atacante, goleiro, mdio, defesa, presidente. Desenhe o respectivo diagrama de casos de utilizao. Sugesto: considere por exemplo os seguintes casos: jogar, treinar, defender a baliza, pagar ao jogador, pagar ao treinador, vender jogador, contratar jogador, contratar treinador, despedir treinador.

  • Exemplo

  • Exemplo