Baixe o app para aproveitar ainda mais
Prévia do material em texto
AULA 1 DIAGRAMA DE CLASSES Apresentar o diagrama de classes de UML Seus elementos sintáticos Sua finalidade em um processo de modelagem Resultado do esforço mais primitivo de geração de modelos que descrevessem um programa orientado a objetos. Reflete a estrutura do código Classes: Cada classe com seus atributos e método Relacionamentos envolvendo classes FINALIDADE DO DIAGRAMA DE CLASSES Modelar os elementos de um programa orientado a objetos em tempo de desenvolvimento. Classes com seus atributos e métodos Modelar os relacionamentos entre classes, de forma mais explícita que aquela do código. Herança Agregação(e composição) Associação REPRESENTAÇÃO DE ATRIBUTOS Pode ser representado dentro da figura de classe ou por meio de uma seta(associação unidirecional) RECOMENDAÇÃO PARA ESTABELECIMENTO DE VISIBILIDADE Atributos protegidos Princípio da ocultação de informação do paradigma e orientação a objetos Possibilita que atributos herdados ou definidos na classe sejam tratados de maneira uniforme Necessidades específicas podem justificar atributos privados Atributos públicos JAMAIS RECOMENDAÇÃO PARA ESTABELECIMENTO DE VISIBILIDADE Métodos públicos O meio externo acessa uma classe através de seus métodos Necessidades específicas podem justificar o aumento de restrições de visibilidade MÉTODOS CONCRETOS E ABSTRATOS Método concreto Composto por assinatura e corpo Pode ser invocado em tempo de execução para cumprir a responsabilidade atribuída a ele. MÉTODO ABSTRATO Composto apenas por assinatura Uma declaração de responsabilidade, mas sem a capacidade de cumpri-la, em função da ausência e algoritmo. Grafado em itálico CLASSE CONCRETAS E ABSTRATAS Classe concreta possui exclusivamente métodos concretos Classe abstrata possui pelo menos um método abstrato Identificador da classe grafado em itálico, nem todas as responsabilidades da classe materializadas em capacidades Nem todos os métodos possuem algoritmos definidos, não pode originar instâncias em tempo de execução. RELACIONAMENTOS HERANÇA: Relação e especialização entre duas classes Uma delas corresponde a um conceito mais genérico A outra, a um conceito mais específico. FRASE CARACTERÍSTICA DA HERANÇA <subclasse> é uma espécie de <superclasse> No exemplo, estudante de graduação é uma espécie de estudante. Estudante de pós-graduação também é uma espécie de estudante Se a frase não faz sentido, o relacionando de herança é inadequado Por exemplo: Cachorro é uma espécie de gato. HERANÇA É UNIDIRECIONAL Estudante de graduação é uma espécie de estudante Mas estudante NÃO é uma espécie de estudante de graduação SEMÂNTICA DA HERANÇA Os atributos e métodos da superclasse são herdados pela subclasse Os atributos e métodos da superclasse também fazem parte da subclasse Como se tivessem sido definidos nela. HERANÇA DE ATRIBUTOS É inócuo definir em uma subclasse um atributo com o mesmo nome de um atributo de uma superclasse. Em qualquer nível da hierarquia de herança Equivaleria à presença de mais de um atributo com o mesmo nome em uma mesma classe Inconsistente HIERARQUIA DE MÉTODOS Métodos em subclasses tem a mesma assinatura de método definido na superclasse sobrescrita de método Método definido na superclasse substitui o método herdado HERANÇA E CLASSE ABSTRATA Classe abstrata Possui pelo menos um método abstrato, que pode ter sido definido na própria classe ou herdado e não escrito. O relacionamento de herança precisa ser considerado na definição de classe abstrata RELACIONAMENTOS AGREGAÇÃO E COMPOSIÇÃO Composição tem a seta pintada, agregação a seta do losango crua. Significado de posse, um objeto possui o outro. Agregação : Agregação Relacionamento entre DUAS classes que estabelece que uma instância de uma agrupa uma ou mais instâncias da outra Relacionamento todo/ Composição: Composição Um tipo de relação de agregação com restrições na ligação entre parte agregada Uma instância da parte é agregada por uma única instância do agregado/Não há compartilhamento da parte A existência da parte depende da existência do agregado Instância do agregado precede a instanciação da parte Destruição do agregado implica na destruição da parte. AGREGAÇÃO E COMPOSIÇÃO EXEMPLO: Composição - restrição, uma empresa possui uma ou mais equipes de projetos, uma equipe de projetos faz parte de apenas uma empresa, e na destruição da empresa é destruído a equipe de projetos pois a empresa é destruída. Um empregado está relacionado apenas a uma empresa, na destruição da empresa é destruído o empregado também. Agregação – Caso a equipe de projetos seja destruída o empregado continuará intacto. Sendo assim na agregação a equipe de projetos é destruída como agregado e o empregado como parte não sofre nenhum impacto. Composição Por exemplo: Um produto é um objeto único, um pacote de produtos pode existir sem um ou outro produto especifico. A composição, apesar de também ser uma agregação, ela impõe o sentido de que um objeto todo não existe sem suas partes. DEPENDENTE Agregação Por exemplo: Um empregado é um ser único, uma empresa pode existir sem ou com um empregado. A agregação impõe o sentido de que um objeto todo pode existir sem suas partes pois caso a empresa deixe de existir, o empregado continuará existindo. INDEPENDENTE. RELACIONAMENTO DE ASSOCIAÇÃO ASSOCIAÇÃO: Quando há o reconhecimento de um relacionamento entre classes, que não pode ser caracterizado como herança e nem como agregação ou composição Pode ser unidirecional ou bidirecional Pode envolver mais de duas classes Associação entre duas classes é chamado associação binária. ASSOCIAÇÃO COM INDICAÇÃO DE ORDEM DE LEITURA É executado para onde o triangulo preto aponta ASSOCIAÇÃO COM NAVEGABILIDADE EXPLÍCITA Uma classe invoca métodos de uma outra em tempo de execução Tabuleiro aponta para Jogador pela seta, o x do lado esquerdo diz que jogador não aponta Tabuleiro, apenas Tabuleiro aponta Jogador OUTROS RELCIONAMENTOS ASSOCIAÇÕES ESPECIALIZADAS REALIZAÇÃO Associação entre dois elementos em que um deles especifica uma responsabilidade a ser implementada e o outro incorpora a obrigação de implementa-la. Usado para associar uma classe a uma interface Dependência Associação entre dois elementos em que um deles é declarado como dependente daquilo, que deve estar implementado em outro. Um é cliente dos serviços oferecidos pelo outro Usado para relacionar outros elementos além da classes(Como interface e classe) Usado também em outros diagramas. INTERFACE EM JAVA – DECLARAÇÃO DE RESPOMSABILIDADE Publicador declara um conjunto de responsabilidade e a CLASSE 1 tem a responsabilidade de implementar os 3 métodos dessa interface. A INTERFACE POSSUI UMA LINHA PARECIDA COM UMA HERANÇA, POIS POSSUÍ U TRIÂNGULO EM SUA EXTREMIDADE, PORÉM A LINHA É PONTILHADA. A CLASSE 2 depende da interface Publicador, a classe 2 depende da invocação dos 3 métodos da interface Publicador. A DEPÊNDENCIA POSSUI UMA LINHA TRACEJADA COM UMA SETA EM SUA EXTREMIDADE. VINCULAÇÃO DE CLASSES A UMA TERFACE PREVIAMENTE DEFINIDA REALIZAÇÃO: Contem a esfera completa, onde todos os métodos são possuídas por ela e implementados. DEPENDÊNCIA: Contém uma semiesfera, onde os métodos dependem de uma interface para serem implementados. ESTEREÓTIPO Estender o significado do elemento de modelagem a que ele é associado Pode ser usado em classes para dividi-las em categorias em uma especificação Pode ser associado a classes ou a qualquer elemento de qualquer digrama de UML. A classe JFrame é uma das classes da categoria Java Swing. Estereótipo <<JavaSwing>> AtorJogador pertence a categoria dos atores. Estereóticpo <<actor>> CONCLUSÃO: Diagrama de classes modelagem gráfica mais primitiva de um programa orientado a objetos Reflete a estrutura do diagrama Classes RelacionamentosConhecer os elementos do diagrama é requisitado para usá-lo em modelagem MODELAGEM DE SOFTWARE DIAGRAMA DE CASO DE USO AULA APRESENTAÇÃO E FINALIDADE DE UM CASO DE USO Apresentar o diagrama de caso de uso UML Seus elementos sintáticos Sua finalidade em um processo de modelagem Relaciona o conjunto de situações de processamento de software. Suas funcionalidades, o que o software faz. No jardão de UML: OS CASOS DE USO Modelagem dinâmica de sistema em alto nível de abstração. PRINCIPAIS ELEMENTOS DE UM CASO DE USO Caso de uso Atores Relacionamento envolvendo esses elementos FINALIDADE DO DIAGRAMA DE CASO DE USO Modelagem das funcionalidades do software(Os casos de uso) O que o software faz(e não como faz) Modelagem de elementos externos que interagem com o software(atores) CASO DE USO Uma funcionalidade do software Atômica, completa(não uma fração) Externamente perceptível EX: cada uma das opções do menu de programa de home banking, ou de uma caixa eletrônica de banco CASO DE USO Apenas identificação de uma funcionalidade, em qualquer referencia a como ela é executada. REPRESETAÇÃO DO CASO DE USO ATOR Associado á noção de que um software interage com o meio externo Representa uma entidade externa que interage com o software sob modelagem Pessoa Equipamento(Hardware) Outro software REPRESENTAÇÃO DO ATOR FUNÇÃO DO ATOR Representa a interação com elemento externo Faz parte do sistema(elemento interno) Modela a interface com cada elemento externo INTERFACE COM ELEMENTO EXTERNO USUÁRIO/HARDWARE/SOFTWARE Ator = Modela a interface dos elementos externos ATOR E O CÓDIGO Ator corresponde a uma classe com um estereótipo específico(ator)/Classe que modela a interface de um software com o elemento externo. Classe que implementa a interação(Classe de interface)/Ator Fachada de um subsistema de comunicação(interface complexa) INTERPRETAÇÃO ALTERNATIVA QUANTOS ATORES? Todo software interage com o meio externo pelo menos um ator Mais de um ator Integração com o meio externo pode ocorrer de mais de uma forma Demanda a implementação de mais de uma interface Um ator representa uma forma de interagir com o software Formas distintas de interagir atores distintos Ex: Gerenciamento de supermercado Ator modelando interface para caixa Ator modelando interface para controle de estoque Ex: Jogo-da-velha Dois jogadores usando a mesma implementação e interface apenas um ator. CORRESPONDÊNCIA ENTRE ATORES E ENTIDADES EXTERNAS Um ator para uma entidade externa Ex: Editor de texto para usuário único Um ator para várias entidades externas Ex: Usuários de um jogo-da-velha Ex: Operadores de caixa de supermercado Vários atores para uma entidade externa Ex: Uma mesma pessoa que atua como operador de caixa e no controle de estoque. AULA 2 ASSOCIAÇÃO ENTRE ATOR E CASO DE USO Participação da entidade modelada pelo ator em um caso de uso Um diagrama de caso de uso não deve apresentar nem ator isolado e nem caso de uso isolado. Um ator sempre está associado a pelo menos um caso de uso Um caso de uso, mesmo que indiretamente sempre estará associado a pelo menos um ator. REPRESENTAÇÃO DA ASSOCIEAÇÃO ENTRE ATOR E CASO DE USO QUANTIDADE DE ATORES ASSOCIADOS A CASO DE USO Um ator associado a um caso de uso Atuação de um único elemento externo Mais de um ator associado a um caso de uso Atuação conjunta Atuação alternativa(um ou outro) FORMAS DA PARTICIPAÇÃO DO ATOR: Participação ativa Ex: Jogador que indica a posição desejada em um jogo-da-velha Participação passiva: Ex:Tela que informa horários de voo em aeroportos(para passageiros) ASSOCIAÇÃO ENTRE CASOS DE USO UML prevê três tipos de associação entre os casos de uso Extensão Inclusão Generalização ASSOCIAÇÃO DE EXTENSÃO Estabelece uma relação em que um dos casos de uso tem seu comportamento estendido através do comportamento definido em outro caso de uso. EXEMPLO: ASSOCIAÇÃO DE INCLUSÃO Estabelece que parte do documento inerente a um caso de uso está definida em outro caso de uso. Um caso de uso contém o comportamento definido em outro caso de uso Permite evitar repetições na modelagem EXEMPLO: DIFERENÇAS ENTRE INCLUSÃO E EXTENSÃO? Inclusão denota obrigatoriedade Quando o caso de uso principal ocorre, o caso de uso auxiliar também ocorrerá Extensão denota opções Quando o caso de uso principal ocorre, o caso de uso auxiliar poderá ocorrer ou não. ASSOCIAÇÃO DE GENERALIZAÇÃO Estabelece uma relação de especialização entre dois casos de uso, onde Um corresponde a um comportamento genérico O outro, a uma especialização deste para alguma situação específica. ASSOCIAÇÃO ENTRE ATORES Associação de generalização Dos dois atores envolvidos em uma generalização, um corresponde a um papel genérico e outro, a uma especialização deste papel. CONCLUSÃO: Diagrama de caso de uso modelagem dinâmica de sistema em alto nível de abstração. Relaciona as funcionalidades do software Relaciona os elementos externos que interagem com o software Elementos sintáticos do diagrama: Casos de uso Atores Relacionamentos entre esses elementos. Diagrama de Sequência é um diagrama comportamental que representa a sequência de ações que precisam ser executadas em sistema para atender determinado cenário. Cenário: funcionalidade de um sistema a ser executada por um determinado ator. O diagrama de sequência segue uma ordem lógica no tempo(sequência). O diagrama de sequência atua sobre estruturas instanciadas de um sistema - Classes – objetos - Comportamento de interfaces A interação entre componentes se da por meio de mensagens e repostas ao longo do tempo. Exemplo Prático OBJETIVO: Apresentar os diagramas de sequência e de comunicação UML. Seus elementos sintáticos Sua finalidade em um processo de modelagem Especificamente, para refinamento de casos de uso DETALHAR CASOS DE USO COM OBJETOS INTERAGINDO. FINALIDADE DOS DIAGRAAMAS DE SEQUÊNCIA E DE COMUNICAÇÃO. Modelar objetos interagindo por meio de trocas de mensagens Modelagem de comportamento de programa em tempo de execução Útil para detalhamento de casos de uso Caso de uso O que o software faz, alto nível de abstração Diagramas de sequência e de comunicação Detalhamento de como o caso de uso é executado. A INTERAÇÃO DE OBJETOS EM UML Há necessidade de modelar o comportamento de um programa orientado a objetos. Descrevê-lo em tempo de execução Objetos enviando invocações de métodos a outros objetos. PROBLEMAS COM OS “QUADRINHOS” Cada interação, um “quadrinho” descrições extensas para sistemas complexos. A notação de “bolas e setas” apenas um caminho de execução. Sem a possibilidade de caminhos alternativos. Possibilidade de modelar caminhos alternativos de processamento Possibilidade de modelar repetições Possibilidade de modelar não determinismo, o que ocorre quando não se tem certeza a priori se um ou outro caminho de execução será seguido. Gerar uma notação compacta. LIMITAÇÕES DA MODELAGEM DE INTERAÇÃO. Modelagem de interação não descreve completamente o processamento que ocorre em um programa. Apenas as comunicações entre as instâncias e avaliação de condições Considerando descrição de algoritmo de método, modela apenas invocações a outros métodos Sem menção a outras opções Atribuição, retorno etc. EQUIVALÊNCIA SEMÂNTICA ENTRE OS DIAGRAMAS DE SEQUÊNCIA E DE COMUICAÇÃO. Originalmente propostos como diagramas semanticamente equivalentes. “Os diagramas são semanticamente equivalentes você pode converter um em outro sem perda de informação”. Com a versão 2 de UML, a afirmação passou a ser verdadeira. Novos recursos sintáticos no diagrama de sequência. PRINCIAIS ELEMENTOS DOS DOIS TIPOS DE DIAGRAMA OBJETO 1° O sublinhado denota instância/ o nome do objeto é instanciado pela classe umTab. Sendo o objeto Tabuleiro a instância dessa classe MENSAGEM Sintaxe do identificador de mensagem[<recebedor>=’’]<nomeMetodo>[‘(‘[<argumento> [‘,’<argumento>]*’)’][‘:’<retorno>] TIPOS DE MENSAGENS MENSAGEM ACHADA Remetente indefinido: Destinatário indefinido: UM PRIMEIRO EXEMPLO DE MODELAGEM DE INTERAÇÃO Procedimento de lance Posição recebe click de mouse tabuleiro verifica se a partida está em andamento Senão, ação indevida. Partida em andamento tabuleiro verifica se a posição está ocupada. Se estiver, lance irregular Partida em andamento e posição desocupada tabuleiro invoca alocarPeao Na execução de alocrPeao, tabuleiro invoca de jogador informarDaVez; Identificado o jogador da veztabuleiro invoca alocarPeao da posição, passando o jogador da vez como argumento; Alocado o peão tabuleiro invoca avaliarVencedor para verificar se o jogador da vez ocupa três posições adjacentes, alinhados. Diagrama de sequência Ênfase á ordem das mensagens(de cima par abaixo) Ligação entre objetos em segundo plano. O diagrama de sequência possui um conjunto de elementos sintáticos próprios Elementos sintáticos associados a objeto e mensagem Fragmento combinado Referência a outro diagrama Sem equivalente no diagrama de comunicação Etc. Ocorrência de execução de método e sobreposição de execução, ocorre a partir da execução de algum método Restrição temporal Criação e destruição de objeto Fragmento combinado (Combined Fragment) Subdiagrama contido em um diagrama de sequência, Espécie de invólucro voltado a conter uma fração de mensagens do diagrama Característica semântica adicional ás mensagens contidas.
Compartilhar