Baixe o app para aproveitar ainda mais
Prévia do material em texto
Centro Universitário FMU Disciplina: Engenharia de Software II Aula 6 Bacharelado em Sistemas de Informação Tecnologia em Sistemas para Internet Prof.: Celso Eduardo Guimarães celso.guimaraes@fmu.br Diagrama de Classes • Em programação, um diagrama de classes é uma representação da estrutura e relações das classes que servem de modelo para objetos. • É uma modelagem muito útil para o desenvolvimento de sistemas, pois define todas as classes que o sistema necessita possuir e é a base para a construção dos diagramas de comunicação, sequência e estados. Modelo Conceitual de Classes Visão Geral ❑ É um artefato do domínio do problema e não do domínio da solução, portanto, não é utilizado para especificação da arquitetura do sistema. ❑ Ele é formado pelos conceitos (classes de abstração) obtidos a partir da análise textual da definição do problema (enunciado do problema e casos de uso), atributos (deve-se preocupar somente com os atributos obtidos a partir da abstração do problema ou em decorrência do conhecimento do domínio do problema) e associações (relacionamentos). ❑ Um modelo “completo” do diagrama de classes será obtido posteriormente. ❑ Nesse momento, a especificação do diagrama de classes estará voltado às definições da solução a nível de arquitetura do sistema, portanto, do domínio da solução e não mais do domínio do problema. Modelo Conceitual de Classes ❑ Na fase de Análise e Design o modelo conceitual do diagrama de classes evolui para uma especificação mais completa, com a inclusão de atributos, não identificados no momento da elaboração do modelo conceitual, e das operações das classes. ❑ Uma reestruturação das classes e relacionamentos também pode ocorrer nesta evolução do modelo conceitual para o modelo “completo”, provocando a inclusão de novas classes e relacionamentos com semântica mais apurada e, também, especificação de hierarquias de classes com a inclusão de relacionamentos de herança. Modelo Conceitual de Classes O modelo conceitual do diagrama de classes é um artefato que especifica um nível intermediário de abstração entre as fases de “Requisitos” e “Análise e Design”, cujo objetivo principal é prover um mecanismo capaz de auxiliar no processo de identificação das classes de objetos do domínio do problema. Modelo Conceitual de Classes A construção do modelo conceitual do diagrama de classes identifica o produto final da abstração das classes candidatas obtidas a partir de uma análise gramatical do domínio do problema. Identificação de Classes e Objetos ❑ Pode-se começar a identificar objetos (classes) examinando o enunciado do problema ou executando uma “análise gramatical” da narrativa de processamento do sistema a ser construído. ❑ As classes são identificadas sublinhando cada substantivo ou cláusula substantivada, logo após, as possíveis classes candidatas deverão ser relacionadas, para que uma análise mais aprofundada possa ser feita com o objetivo de verificar a existência ou não da classe relacionada. As candidatas à classe se manifestam da seguinte maneira: • Entidades externas (outros sistemas, dispositivos e pessoa) – que produzem ou consomem informação a ser usada por um sistema baseado em computador; • Coisas (relatórios, figuras, cartas, sinais) – que são parte do domínio de informação do problema; • Ocorrências de eventos (efetua pagamento, emite recibo) – que ocorrem dentro do contexto da operação do sistema; • Papéis (gerente, engenheiro, vendedor) – desempenhados por pessoas que interagem com o sistema; • Unidades organizacionais (divisão, grupo, equipe, setor) – que são relevantes para uma aplicação; • Lugares (recepção, estoque) – que estabelecem contexto do problema ou a função global do sistema; • Estruturas (sensores, impressora, computadores, leitora de código de barra) – que definem uma classe de objetos ou classes relacionadas de objetos. A lista continuaria até que todos os substantivos na narrativa de processamento tivessem sido considerados. Seis características de seleção podem ser usadas quando um analista considera cada classe em potencial para inclusão no modelo de análise: • Informação retida – A classe potencial vai ser útil durante a análise apenas se a informação sobre ela tiver que ser lembrada para que o sistema possa funcionar. • Serviços necessários – A classe potencial deve ter um conjunto de operações identificáveis que podem mudar o valor de seus atributos de algum modo. • Atributos múltiplos – Durante a análise de requisito, o foco deve ficar na informação “importante”; uma classe com um único atributo pode ser útil durante o projeto, mas é provavelmente melhor representada como atributo de outra classe durante a atividade de análise. • Atributos comuns – Um conjunto de atributos pode ser definido para o objeto potencial e esses atributos se aplicam a todas as ocorrências dos objetos. • Operações comuns – Um conjunto de operações pode ser definido para a classe potencial e essas operações se aplicam a todas as ocorrências dos objetos. • Requisitos essenciais – Entidades externas que aparecem no espaço do problema e produzem ou consomem informação essencial para a operação de qualquer solução do sistema vão quase sempre serem definidas como classes no modelo de requisitos de objetos. Primeiras diretrizes para Atividade 2 (A3). • A partir do documento produzido na Atividade 1 (Requisitos do sistema), o grupo deverá se reunir virtualmente para identificar as classes candidatas para ser a base de um modelo de classes de análise. Exemplo de Diagrama de Classes Conceitual ➢ Considerando a abstração de classes candidatas, um modelo conceitual do diagrama de classes pode ser especificado (em um alto nível de abstração). ➢ Um segundo modelo conceitual (em um nível menor de abstração) poderá ser obtido, incluindo informações obtidas a partir de um levantamento mais detalhado dos requisitos do sistema. Exemplo de Diagrama de Classes Conceitual NÍVEL ALTO DE ABSTRAÇÃO ❑Considerando um conhecimento prévio do domínio do problema e uma experiência em procedimentos de modelagem, o Analista de Requisitos ou o Analista de Projeto podem produzir um modelo um pouco mais detalhado: ❑encontrando novas classes ou atributos que em um primeiro momento não foram possíveis abstrair a partir dos artefatos existentes. ❑Neste momento, quando itens importantes são incluídos no modelo, deve-se avaliar se os artefatos utilizados para a abstração dos conhecimentos necessários para a construção do modelo conceitual do diagrama de classes estão incompletos e necessitando, de uma readequação ❑produzindo uma evolução dos modelos. Modelo conceitual do diagrama de classes obtido a partir de um nível de abstração mais detalhado do que o diagrama 1º. Considerando, desta maneira, um evolução do modelo. Esse apresenta um modelo mais apurado do diagrama de classes, mas ainda é um, modelo conceitual . Inclusão das operações e outros atributos ainda não foi considerada na totalidade. Quando a evolução do diagrama de classes obtiver um resultado satisfatório ele deixa de ser um modelo conceitual e passa a ser um representação completa da arquitetura de objetos de dados do sistema e, neste momento, ele é incluído como artefato (diagrama de classes) da disciplina de Análise e Design. Vamos aprender agora um outro diagrama: O Diagrama de Objetos Vamos desvendar de uma vez por todas a diferença conceitual entre OBJETOS E CLASSES Classe Nada mais é, do que a especificação do que um dia poderá vir a ser um objeto. Objeto Trata-se da instância de uma classe. Instância é a concretização de uma classe. Em termos intuitivos, uma classe é como um "molde" que gera instâncias de um certo tipo; um objeto é algo que existe fisicamente e que foi "moldado" na classe. Vamos desvendar de uma vez por todas a diferença conceitualentre OBJETOS E CLASSES Classe Nada mais é, do que a especificação do que um dia poderá vim a ser um objeto. Objeto Trata-se da instância de uma classe. • Imagine uma forma (molde) de bonecos de gessos. • Pois bem, essa é nossa classe ou tipo, ou seja, define o formato, tamanho e diversos outros aspectos dos objetos fabricados, no caso, os bonecos de gesso. Percebeu a diferença? • A classe é um molde para os objetos. • Quando se diz: “Instância de uma classe ou tipo”, nada mais é do que o objeto dessa classe ou tipo. Diagrama de objetos ❑São instâncias dos Diagramas de Classes. Instanciar Classes Criar Objetos Você também poderá encontrar a denominação especificação de instância. Diagrama de objetos São 2 compartimentos Identificação do objeto Valores para os atributos A identificação do objeto deve ser sublinhada. ❑Como o diagrama de classes, o diagrama de objetos também é estrutural. ➢ Ele exibe uma “fotografia” do sistema em certo momento, exibindo as ligações formadas entre objetos conforme estes interagem e de acordo com os valores dos seus atributos. Diagrama de objetos ❑Esse não é um diagrama muito utilizado na prática, pois as aplicações OO tendem a ter inúmeros objetos instanciados enquanto rodam. ❑Entretanto, em termos didáticos, esse diagrama pode ser útil para explicar um momento específico do software. Diagrama de objetos DIAGRAMA DE ATIVIDADES • Mostra a lógica de execução, em passo-a- passo, de uma ação do sistema. DIAGRAMA DE ATIVIDADES ❑É pertinente utilizá-lo quando o propósito é: ✓Documentar o aspecto funcional (não estrutural) do software, quando é necessário representar o fluxo da informação que o software trabalhará, e quando existam condições/decisões que precisam detalhadas/descritas. ✓Mostrar aspectos específicos de alguma rotina do negócio que será automatizada pelo software, como um “zoom” em parte de alguma funcionalidade, por exemplo. DIAGRAMA DE ATIVIDADES ❑Ele serve basicamente para representar fluxos de processos! ✓É essencialmente um gráfico de fluxo, mostrando o fluxo de controle de uma atividade para outra e serão empregados para fazer a modelagem de aspectos dinâmicos do sistema. ✓Mostra o comportamento do sistema, denotando os caminhos lógicos que um processo deve seguir. ✓Faz parte da dinâmica da UML e baseia-se em um modelo gráfico que permite analisar a estrutura e o comportamento dinâmico dos sistemas em que cada evento tem pré- condições para sua ocorrência e pós-condições dela decorrentes. ✓Especifica a coordenação de execuções de comportamentos, usando um modelo de fluxo de controle de dados. O fluxo de execução é modelado como nós de atividades conectados por extremidades. A ação cadastrar cliente, nesse exemplo, é condicional portanto escolha o elemento de “Decisão” (no ArgoUML é chamado de “Nova Junção”. Ponto inicial (“novo início”) Parâmetro de atividade Estado de ação Um parâmetro de atividade é usado para representar uma entrada ou saída de atividade. No exemplo, ele denota que a atividade produz um pedido de cliente, mas ainda sem itens associados. Atividade “Validar Cliente” Quatro ações compõem fazer pedido. Nesse exemplo, um cliente pode escolher um ou mais produtos. O parâmetro de saída anterior é entrada para esse. Poderia ser uma sub-atividade Há um problema aqui: Dá a entender que somente um item, ou um só produto poderia ser escolhido. Região de expansão Uma região de expansão permite representar processos paralelos, isto é, grupos de ações executadas simultaneamente sobre um ou mais elementos, processos iterativos, como é o caso do exemplo, e processos de streaming, em que uma coleção de dados é enviada por um canal de forma sequencial (os bytes são enviados em pequenos pacotes que são reorganizados quando chegam no destino). A região de expansão será executada várias vezes. Fluxos Simultâneos Compondo demais atividades que compõem a venda ❑ Cada uma das áreas organizacionais representa um papel dentro da execução do processo. ❑ As atividades ocorrem sob a responsabilidade de algum desses papéis. Outra forma de usar o particionamento. Atividades: Comportamento a ser realizado. Sub-atividade: Execução de uma sequência não atômica de atividades. Transição: Fluxo de uma atividade para outra. Ação: Transformação. Decisão: Dependendo de uma condição, mostra as diferentes transições. Raia: Diferenciação de unidades organizacionais. Bifurcação (Fork): Separa uma transição em várias transições executadas ao mesmo tempo. Sincronização (Join): Concatenação de transições vindas do Fork. Conceitos Diagrama de Sequência Também conhecido como Diagrama de Mensagens Ferramenta da UML usada para representar a interação de um sistema orientado a objetos. Enfatiza a ordem de chamada das operações em uma determinada situação do sistema em função do tempo. ➢ Projeto pode ter uma grande quantidade de métodos em classes diferentes > É difícil determinar a sequência global do comportamento. ➢ O diagrama de sequência representa essa informação. Diagrama de Sequência Exemplo ➢ Ele procura determinar a sequencia de eventos que ocorrem em um determinado caso de uso. ➢ Quais operações devem ser disparadas entre os objetos envolvidos e em qual ordem (sequência) para a realização completa do caso de uso. Diagrama de Sequência Exemplo Baseia-se nos diagramas de classes e casos de uso Esteriótipos Ator: representa um usuário ou outro sistema interagindo com o sistema. Esteriótipos Interface: Classe que fará a troca de mensagens com o ator. Caso esse ator seja uma pessoa, esse será a classe que representará a interface gráfica daquela sequência que está sendo desenhada. Esteriótipos Controle: Essa é a classe que possuirá a lógica de negócio do sistema para a sequência modelada. Esteriótipos Entidade: Essa classe é conhecida por armazenar o conteúdo das entidades que estão sendo tratadas por aquele sistema. Lifelaine ou Linha de Vida Um retângulo magro indica o período em que o objeto está participando ativamente do processo Exemplo de Login Diagrama de caso de uso Exemplo de Login Diagrama de Classe Exemplo de Login Diagrama de sequência
Compartilhar