Baixe o app para aproveitar ainda mais
Prévia do material em texto
- -1 MODELAGEM DE SISTEMAS DIAGRAMA DE CLASSES - -2 Olá! Bom dia! Um dos diagramas de maior relevância dentro do contexto da orientação a objeto é o modelo de classes, que visa apresentar as classes do sistema, com suas estruturas (atributos e métodos) e os relacionamentos entre as classes. A técnica adotada nesta aula pressupõe a existência do diagrama de casos de uso e as descrições textuais de cada caso de uso, de onde serão derivadas as classes do negócio. O modelo de classes vai sendo refinado e acrescido de outras classes, até chegar ao nível em que conterá as classes a serem implementadas na linguagem de programação, dando forma ao sistema que fora elaborado, paulatinamente, usando e refinando diversos diagramas da UML. É desse assunto que trataremos nesta aula. Bons estudos! Objetivos •Distinguir os elementos do diagrama de classes; •Reconhecer os possíveis relacionamentos entre as classes; •Aplicar como se deriva o diagrama de classes a partir do diagrama e especificações de casos de uso. Conceitos de diagrama de classes O é considerado por muitos o , sendo também o diagrama de classes principal diagrama da UML mais por aqueles que usam a UML na modelagem de seus sistemas orientados a objetos.amplamente usado Existem vários níveis de diagramas de classes, que são usados no nível de domínio — conceitual — e de projeto. Nesta aula, vamos inicialmente a partir da paraabordar o diagrama de classes observação do mundo real um determinado . Vamos , ou ainda, o chamado contexto construir o diagrama em nível de domínio modelo conceitual de classes. Para começarmos , atente-se para a seguinte informação, referente ao diagrama conceitual de classes: Não se devem (interfaces, chaves, arquivos, campos etc.). O foco da análiserepresentar estruturas de projeto é o .negócio Modelo conceitual de classes Com base no que vimos, podemos conhecer o modelo conceitual de classes. - -3 Esse modelo , pois a finalidade é usa os elementos mais básicos do diagrama de classes representar os sem inserir aspectos de projeto ou de implementação no modelo.objetos tal qual existem no mundo real, Assim, o diagrama de classes descreve, de forma gráfica, os tipos de objetos que interagem para realizar as , bem como os funcionalidades previstas em um sistema vários tipos de relacionamentos estáticos entre . O mostra, ainda, aseles diagrama de classes propriedades e operações de uma classe e as restrições relacionadas à forma como os objetos se relacionam. A evolução do diagrama de classes O evolui à medida que o . Observe esse processo através do esquema adiagrama de classes projeto avança seguir: Fase de projeto Nessa fase, o mesmo diagrama de classes pode ser refinado com a inserção de: • Multiplicidades e papéis; • Relacionamento entre as classes; • Novos métodos (como, por exemplo, get, set e formatações); • Novos atributos; • Parâmetros nas chamadas dos métodos; • Visibilidade dos atributos e métodos; • Novas classes, chamadas de classes de projeto (como representação de persistência). Fase de implementação Durante a (codificação na linguagem), como implementação novas classes podem surgir, classes que determinada implementem característica da linguagem de programação ou determinada forma de programar. É o diagrama de classes de implementação. Fase de análise – 1º momento Inicialmente, em sua primeira versão, na fase de análise, o diagrama apresenta as classes do negócio (também e chama-se chamada de entidades) diagrama de classes conceitual. • • • • • • • - -4 Esse é um diagrama com as , ou seja, mostra a modelagem emcompatível funcionalidades dos casos de uso classes dos requisitos essenciais do sistema. Fase de análise – 2º momento Num segundo momento, ainda na fase de análise, novas classes podem ser inseridas no diagrama de classes, como as de controle e as de interface (ou fronteira). Classe de fronteira (boundary) ou interface: responsável pela . Exemplo: parainteração com os atores representar um formulário, para representar a interface com outro equipamento (um acionador de cancelas de entrada e saída de veículos, por exemplo); Classes de controle: responsável pela coordenação da interação entre os objetos, na realização de um caso . A princípio, cada caso de .de uso uso teria uma classe de controle Na verdade, embora com diferentes nomenclaturas, o diagrama de classes é um só, que vai crescendo e sendo alterado a cada fase do ciclo de desenvolvimento. Algumas equipes de projeto podem optar por guardar as versões finais de cada diagrama, mas a última versão guarda todas as alterações feitas. A classe Vamos conhecer o com mais detalhe:conceito de classe Uma , na qual . Se, por exemplo, emclasse é uma abstração da realidade representamos algo do mundo real um contexto de sistema, identificarmos que desejamos armazenar os dados de um determinado elemento, estamos diante de uma candidata à classe do .sistema Na conforme ilustra a figuraUML, uma classe é representada por um compartimento contendo três partes, a seguir: - -5 Exemplo A figura, abaixo, ilustra um exemplo de classe de nome “cliente”, contendo os atributos Nome e Matrícula e os métodos (operações) Criar(), Destruir() e Incluir Cliente(): - -6 Classe x Objeto Qual a relação existente entre e ?classe objeto Na imagem, a seguir, você pode visualizar o exemplo de um objeto específico pertencente à classe cliente. O objeto é como se fosse um elemento específico do conjunto (classe) cliente. Visão geral do diagrama de classes e seus elementos A figura abaixo ilustra um , contendo apenas (entidades)diagrama conceitual de classes classes de negócio que são modeladas, bem como apresenta comentários dos principais elementos do diagrama de classes. Fique ligado Ao modelarmos um sistema, estamos em busca de classes, e não de objetos. Poderíamos pensar que o nome da técnica deveria chamar-se “orientação a classes”, e não “orientação a objetos”. - -7 Fonte: Figura extraída do livro UML Essencial: um breve guia para a linguagem-padrão de modelagem de objetos, de Martin Fowler, 3a edição. Por meio do exemplo de diagrama, podemos observar que um possui os seguintes diagrama de classes elementos básicos: 1. Classes, com atributos e operações (métodos) de cada uma; 2. Relacionamentos entre as classes; 3. Multiplicidade dos relacionamentos; 4. Visibilidade de atributos e métodos; 5. Nome dos relacionamentos e papel nos relacionamentos; 6. Navegabilidade nos relacionamentos; 7. Notas e comentários. Classes com seus atributos e operações Cada possui os seus atributos e . Veja como esses elementos se relacionam:classe operações específicos Atributo O conceito de atributo remete ao (estado) dos .conjunto de características objetos da classe - -8 Ele descreve uma propriedade estrutural da classe, um dado relevante que desejamos armazenar daquela . Segundo a UML, forma mínima de representar um atributo é: classe visibilidade Nome: tipo. Operações O conceito de método remete ao (comportamento) que a . conjunto de operacões classe fornece A operacão de uma classe é , que é um procedimento ou função da classe.representada por um método Segundo a UML, a forma mínima de representar um método é: visibilidade Nome (Lista de parâmetros) : tipo. Associação entre classes O o é o mais simples e comum relacionamento entre classes. relacionamento de associaçã Ocorre entre uma, . duas ou mais classes distintas, não correlatas e independentes Ao final do relacionamento, as classes permanecem com suas vidas próprias. A associação entre classes pode acontecer das seguintes maneiras, veja: Associação binária: É a , também chamada de associação entre .associação mais comum duas classe Autoassociação: Também chamada de corresponde à associação que associação unária, ocorre com a mesma , .classe na qual uma classe se relaciona com ela própria Associação exclusiva: É uma s. Ela indica que objetos de umarestrição em duas ou mais associaçõe determinadaclasse podem participar de no , em determinado momento.máximo uma das associações Ela é representada por uma , entre as associações, com a especificação {ou}, linha tracejada denotando que o relacionamento é exclusivo a somente uma das duas classes. Multiplicidade nos relacionamentos A é um conceito extremamente relevante nos relacionamentos. De uma forma bem simples, elamultiplicidade indica quantos objetos de cada classe podem estar envolvidos no relacionamento. Visibilidade de atributos e métodos Diz respeito a (visualizar) o . A ideia é que cada classe tenha quais classes podem ver quê de outra classe elementos . Observe:privados e públicos O que for pode ser visualizado e usado por público qualquer outra classe. O que for só pode ser usado pela .privado classe proprietária No entanto, ao sairmos da e passarmos para a , temos que observar asmodelagem implementação particularidades de cada um no tocante à .visibilidade A aborda o tema sem entrar nessa confusão e deixa a cargo da equipe de desenvolvimento esses aspectosUML de . Basicamente, a UML permite que se todo atributo e método de uma classe com umcompatibilidade rotule indicador de .visibilidade Atenção - -9 Em todos os exemplos vistos até aqui, usamos as visibilidades públicas (sinal de mais +) para os métodos e visibilidade privada (sinal de menos -) para os atributos. A UML fornece quatro possibilidades de visibilidade, a saber: Preparamos algumas . Veja: diretrizes relevantes sobre visibilidade que você deve estar atento 1 O , um dos princípios básicos da orientação a objetos, diz que os encapsulamento atributos de uma classe não devem ser usados por outras classes, e sim apenas por . A conclusão é que osmétodos da própria classe atributos devem ser classificados com (-); visibilidade privada 2 . Assim sendo, Uma classe deve prestar serviço às demais, através de seus métodos pelo menos um dos da classe deve ter , para que as demais classes possam usá-lo;métodos visibilidade pública 3 Num relacionamento de generalização/ especialização, todos os atributos e métodos que desejar que sejam herdados pela classe especializada (subclasse) devem ter visibilidade protegida na classe geral (superclasse). Outros relacionamentos entre classes Os representam os mais relevantes . Por isso, agorarelacionamentos elementos de um diagrama de classes estudaremos os relacionamentos mais usados na .modelagem de classes Além das , são possíveis os seguintes relacionamentos:associações Classe se associação: É uma classe que surge do entre outras duas classes.relacionamento de associação Generalização/especialização(herança): É o relacionamento entre classes que implementa o conceito de com reaproveitamento de código, preconizado pela orientação a objetos.herança, Agregação ou composição: Esses dois relacionamentos são do tipo “ ”, ou seja, existe uma classe quetodo-parte denota um todo e outras que denotam as partes. Dependência: A e: mudanças na definição de uma classe puderdependência entre duas classes existe s demandar mudanças na definição da outra classe. Nome do relacionamento e papel nos relacionamentos - -10 Podemos definir, para um relacionamento, um e um . A imagem a seguir mostra um exemplo denome papel como definir esses elementos: Faz pedido: O é um nome dado ao papel que cada classe papel no relacionamento representa no . Semanticamente, é útil para o entendimento do diagrama. Exemplo: Faz Pedido.relacionamento Faz: Pode ser dado um , no caso faz, e com o sentido da leitura (seta indicando comonome ao relacionamento se lê), no caso a leitura é: cliente faz pedido. Fique ligado Cada classe pode ter o nome de seu papel descrito no relacionamento, conforme ilustra a figura anterior. Seu uso é opcional e, caso seja necessário, pode-se especificar o papel de apenas uma das classes no relacionamento. Veja: • Faz é o nome do relacionamento, com a seta apontado para pedido, indicando que a leitura é na direção cliente faz pedido; • Possui é o nome do relacionamento entre pedido e itens pedido, com a seta apontada para itens pedido, indicando que a leitura é na direção pedido possui itens pedidos; • Faz pedido é o papel que o cliente tem no relacionamento entre cliente e pedido; • Cada item do pedido é o papel que itens pedido tem no relacionamento entre • • • • - -11 Navegabilidade nos relacionamentos de associação A navegabilidade mostra a direção da navegação. Podemos citar como exemplo, uma que é dita da classe C1 para a classe C2 se, a partir deassociação navegável um objeto de C1, consegue-se obter diretamente os objetos relacionados da classe C2. Assim, denota-se, no diagrama de classes, a capacidade de um objeto mandar mensagens a objetos de outra classe. Veja mais um exemplo: No diagrama de classes representado pela figura a seguir, está sendo representada a navegabilidade da associação entre as classes cliente e endereços. O símbolo é a seta colada na classe endereços. A interpretação para o diagrama que vimos anteriormente é a seguinte: • O cliente sabe quais são seus endereços; • Mas o endereço não sabe a quais clientes pertence; • A classe cliente poderá enviar mensagens à classe endereços, mas o contrário não poderá ocorrer; • Esta é uma notação semântica que ajuda muito na implementação. Notas e comentários no diagrama de classes e UML Notas são . Elas podem ser por , a um doscomentários nos diagramas isoladas ou vinculadas, linha tracejada elementos do diagrama. Podem ainda ser usadas em qualquer diagrama. A figura a seguir, ilustra as : no caso à classe endereçosduas possibilidades notas associadas a um elemento, e , de uma forma geral.nota associada ao diagrama • Cada item do pedido é o papel que itens pedido tem no relacionamento entre pedido e itens pedido. • • • • • - -12 O que vem na próxima aula •Conceitos inerentes aos diagramas de interação; •Elementos e modelagem de interações com diagrama de sequência. CONCLUSÃO Nesta aula, você: • Reconheceu os elementos básicos e avançados da UML para a criação do diagrama de classes; • Avaliou, através de uma atividade, os diagramas de casos de uso e de classes. Saiba mais Para saber mais sobre os tópicos estudados nesta aula, pesquise na internet sites, vídeos e artigos relacionados ao conteúdo visto. Se ainda tiver alguma dúvida, fale com seu professor online, utilizando os recursos disponíveis no ambiente de aprendizagem. • • - -13 Referências BOOCH, G.; JACOBSON, I.; RUMBAUGH, J. — Guia do Usuário. 2. ed. Rio de Janeiro: Elsevier, 2005. cap. 1 e 2.UML FOWLER, Martin. — um breve guia para a linguagem padrão. 3. ed. Porto Alegre: Artmed, 2005. UML essencial cap. 1 LARMAN, Craig. uma introdução à análise e ao projeto orientados a objetos e aoUtilizando UML e padrões? processo unificado. 3. ed. Porto Alegre: Artmed, 2007. cap. 2.
Compartilhar