Buscar

MODELAGEM DE SOFTWARE

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 21 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 21 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 21 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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.

Outros materiais