Baixe o app para aproveitar ainda mais
Prévia do material em texto
Modelagem de Sistemas Marcelo Vasques de Oliveira Aula 1 Aula 1 – Paradigmas O.O e a UML Características e pilares do paradigma orientado a objeto Análise e projeto orientado a objeto A UML e seus diagramas 2 Modelagem de sistemas Processo intelectual e progressivo. Entendimento e mapeamento de uma realidade Modelos são usados para representar a realidade Maquete de um empreendimento imobiliário Diagramas no desenvolvimento de sistemas Ajudam aos profissionais a entender a realidade Modelagem de sistemas Conjunto de diagramas que representem a estrutura e comportamento do sistema 3 Paradigma Orientado a Objeto Paradigma = forma de abordar um problema. Orientado a objeto Identificar os objetos do mundo real envolvidos no contexto do sistema e a relação entre esses objetos. 4 Elementos básicos paradigma OO Objetos, mensagens, atributos, métodos e classes 5 Pilares da O.O Encapsulamento: esconder os atributos do acesso indevido de outros objetos. Os atributos devem ser acessados por métodos da própria classe 6 Pilares da O.O Herança: derivar novas classes a partir de outras já existentes - reuso. A classe descendente herda atributos e métodos da classe ancestral Economia: tempo/dinheiro; segurança 7 Pilares da O.O - Herança 8 Pilares da O.O Polimorfismo: Alterar o comportamento de uma classe herdada. Amplia o poder de reaproveitamento da herança Alteração (re escrita) de métodos 9 Pilares da O.O - Polimorfismo 10 Pilares da O.O Visibilidade: O que uma classe pode visualizar da outra. Garantir o encapsulamento Classes com métodos privados apenas ? 11 Conclusões Paradigma OO Conceito de encapsulamento Classes independentes, que facilita desenvolvimento e manutenção Herança e polimorfismo. Permite e facilitam a reutilização, útil para o desenvolvimento e manutenção As classes passam a ser componentes portáveis entre as aplicações Reusabilidade Extensibilidade Favorecem o desenvolvimento de sistemas grandes e complexos 12 UML Uma resposta ao mercado que precisa de diagramas compatíveis com desenvolvimento OO. Integração de 3 métodos OMT (Object Modeling Technique) de Jacobson OOSE (Object-Oriented Software Engineering) de Rumbaugh Booch Em 1997 é adotada pela OMG (Object Management Group ) como linguagem padrão de modelagem 13 A UML COMO LINGUAGEM PADRãO Linguagem padrão voltada para: Visualização: diagramas gráficos Especificação: Análise, projeto Construção : integrado a linguagens Documentação Independente do método de desenvolvimento usado. Não é um método, não é uma metodologia, não é um processo Não determina a ordem e nem quais diagramas devem ser usados no desenvolvimento 14 DIAGRAMAS DA UML – VERSãO 2.4.1 15 16 COMO USAR A UML ? Como esboço Foco: comunicação Expressar ideias Fomentar a discussão entre desenvolvedores Como projeto Foco : completeza Construção de um projeto completo, usando vários diagramas Compatível com os modelos iterativos incrementais PU (RUP) Metodologias ágeis 17 PROCESSOS ITERATIVOS E A UML Processo de desenvolvimento Abordagem para organizar as atividades de construção, implantação e manutenção PU (processo Unificado): RUP Metodologias ágeis: XP e SCRUM Processos iterativos Ciclo de vida em mini projetos curtos, preferencia com duração fixa (ex: 3 meses) – são as iterações Cada iteração contêm um sub conjunto das funcionalidades do sistema Baseados em incrementos sucessivos do sistema Entre as iterações temos ajustes e feedbacks 18 PROCESSOS ITERATIVOS E A UML 19 Processo com uso de 3 iterações. Em cada uma repete-se o conjunto de etapas. AS ETAPAS 20 Levantamento de Requisitos Levantamento e mapeamento das necessidades dos usuários Análise de Requisitos (“Faça a coisa certa”) Entendimento em detalhes dos requisitos e modelagem da solução lógica sem considerar aspecto físicos. – Domínio do problema Quais funções o sistema precisa para atender aos requisitos ? Projeto (“Faça certo a coisa”) Definição da arquitetura e componentes do sistema, com a visão da tecnologia a usar. AS ETAPAS 21 Implementação Codificação na linguagem de programação Testes Aferição se atende aos requisitos e qualidade do software Implantação. Treinamento, entrega e uso no ambiente dos usuários. UML E RESULTADOS DE CADA FASE Levantamento de Requisitos Diagrama de casos de uso + especificações informais Diagrama de classe conceitual Análise de Requisitos Diagrama de casos de uso + especificações completas Diagrama conceitual de classes Diagrama de Estados Diagrama de Atividades 22 UML E RESULTADOS DE CADA FASE Projeto Diagrama de classes de projeto Diagrama de sequencia Diagrama de estados Diagrama de componentes Diagrama de Implantação 23 Modelagem de Sistemas Marcelo Vasques de Oliveira Atividade 1 Exercícios 1) Como se chama o princípio que diz que: o acesso aos atributos de uma classe devem ser somente pelos métodos da classe e não diretamente por outra classe ? ( ) Herança ( ) Polimorfismo ( ) Entropia ( ) Encapsulamento ( ) Visibilidade 25 Exercícios 2) Analise as sentenças a seguir: I. A herança garante reuso e consequente economia de tempo e dinheiro II. O polimorfismo diz que os atributos devem ter visibilidade privada III. Sem herança não há como ter polimorfismo. IV. O encapsulamento visa garantir o desenvolvimento de classes independentes. Assinale a única alternativa CORRETA ( ) Estão corretos apenas I e III ( ) Estão corretos I, II, III e IV ( ) Estão corretos apenas I e IV ( ) Está correto apenas III ( ) Estão corretos apenas I, III e IV 26 Exercícios 3) No que se refere a UML (Linguagem Unificada de modelagem), assinale a única alternativa INCORRETA. ( ) É independente de processo de desenvolvimento de software ( ) Contém um conjunto de diagramas com diferentes visões ( ) A UML destina-se a visualização, especificação, construção e documentação de sistemas orientados a objeto. ( ) Nasceu da união de métodos usados, na época, pelos principais profissionais do mercado. ( ) Voltada especificamente para a modelagem de requisitos 27 Exercícios 4) Analise as assertivas sobre os processos iterativos I. São processos onde o ciclo de vida do sistema é dividido em uma série de mini projetos e de curta duração. II. Cada iteração contém um subconjunto das funcionalidades do sistema. III. Em cada iteração temos as atividades de Levantamento de Requisitos, Análise de Requisitos, projeto, implementação, testes e implantação IV. São modelos ultrapassados e não adequados a UML ( ) Estão corretas apenas I e II ( ) Estão corretas I, II, III e IV ( ) Estão corretas apenas II e IV ( ) Estão corretas apenas I, III e IV ( ) Estão corretas apenas I, II e III 28 Exercícios 5) Como se chama o diagrama que mostra as funcionalidades do sistema e os atores que com elas interagem? ( ) Diagrama de classes ( ) Diagrama de estados ( ) Diagrama de componentes ( ) Diagrama de sequencia ( ) Diagrama de casos de uso 29 Exercícios 6) Assinale a opção que apresenta o diagrama da UML que: mostra o comportamento do ciclo de vida de cada objeto ( ) Diagrama de classes ( ) Diagrama de colaboração ( ) Diagrama de objetos ( ) Diagrama de Implantação ( ) Diagrama de Estado 30 Modelagem de Sistemas Marcelo Vasques de Oliveira Aula 2 Aula 2 – Casos de Uso Conceito e classificação dos requisitos Objetivo do diagrama de casos de uso Elementos dos diagramas de casos de uso Aplicação do diagrama de casos de uso 32 Requisitos Necessidades dos usuários que o sistema precisa atender Levantar requisitos : O QUE o sistema deve fazer. A qualidade da identificação dos requisitos reflete em todo processo de desenvolvimento. Requisitos errados sistema que não atende a necessidade Requisitos Funcionais Requisitos Não Funcionais 33 Requisitos Funcionais Apresentam as funcionalidades necessárias para atender as necessidades dos usuários Sistema Financeiro Cadastrar Contas a pagar Cadastrar Contas a receber Cadastrar SaldosBancários Gerar Fluxo de Caixa 34 Requisitos Não Funcionais Atributos e propriedades do sistema Como um todo (sistema) De funcionalidades específicas Sistema como um todo O sistema deve operar com tela touch screen Impressão de boleto de venda não deve demorar mais que 5 min (performance) A entrada de funcionários deve ser controlada por leitor digital (interface). A entrada de funcionários não deve 35 Diagramas de Casos de Uso Um dos mais informais e simples diagramas Finalidades: Mostrar funcionalidades do sistema Validar funcionalidades juntos aos usuários Ter a certeza de que todos os requisitos foram considerados Instrumento de comunicação entre a equipe de desenvolvimento. A visão de casos de uso é do ponto de vista externo, do usuário Não mostra detalhes de COMO o sistema realizará essas funcionalidades 36 Diagrama de Casos de Uso 37 3 Elementos Ator Casos de Uso Relacionamento Atores – caso Entre atores Entre casos Atores O ator é algo com comportamento, que interage diretamente com o sistema. Um ator participa (realiza) de um ou mais casos de uso do sistema Um ator é o papel que o agente desempenha em relação ao sistema. 38 Atores com papeis interno e externo 39 Atores Um ator pode representar setores e departamentos da empresa (contabilidade e contas a pagar), bem como funções desempenhadas na empresa (almoxarifado) 40 Ator como setor e função desempenhada 41 Atores Um ator pode ser dispositivos eletrônicos, como por exemplo hardware, servidores ou dispositivos lógicos, como por exemplo sistemas, de acordo com a imagem abaixo 42 Ator como setor e função desempenhada 43 Identificando Atores O primeiro passo para a construção do modelo de casos de uso é a identificação de atores. Perguntas úteis : Quais órgãos, empresas ou pessoas farão uso deste sistema de informação? Que sistemas ou equipamentos irão se comunicar com o sistema que será desenvolvido? Quem deve ser informado de alguma ocorrência no sistema? A quem pode interessar os requisitos funcionais do sistema? 44 Casos de Uso Representam, as funcionalidades do sistema (ELIPSES) o nome do caso de uso deve ser composto de um Verbo no Infinitivo + Complemento verbal Um caso de uso é um conjunto de cenários. descreve uma sequência de ações do ator e do sistema. Sequência de ações = CENÁRIO. 45 Identificação dos casos de uso Podemos pensar nos casos de uso que representam os objetivos dos atores. Estes casos de uso representam os processos da empresa. Perguntas úteis: Quais as necessidades e objetivos de cada ator em relação ao sistema? Que informações serão produzidas pelo sistema? O sistema realizará alguma ação que ocorre de forma regular no tempo? Existe um caso de uso para atender cada requisito funcional? 46 Identificação de Casos de Uso Em seguida podemos pensar nos casos de uso que não representam um benefício direto para os atores mas são necessários para o funcionamento do sistema. Tais casos de uso englobam manutenção de cadastros, e manutenção de informações provenientes de outros sistemas. 47 Relacionamento entre Ator e Casos de Uso 48 Indicado por uma linha sólida, O Ator interage com o Caso de uso. A comunicação é bidirecional ou seja o ator informa dados ao caso de uso e recebe informações por ele processadas Relacionamento entre Atores Generalização/especialização, Linha sólida com uma seta na extremidade que aponta pata o ator geral, 49 O ator geral é o Funcionário O ator especialista, o Gerente. Relacionamento entre Atores O ator geral é Usuário. Os atores especializados são Aluno e atendente. Aluno e Atendente se relacionam com todos os casos de uso associados ao ator Usuário. 50 Apenas o ator Atendente se relaciona com Cancelar Matrícula em Relacionamento entre Atores Esta é uma associação útil para definir sobreposição de papéis entre atores, onde: O ator especializado interage com o caso de ao qual está associado diretamente e com todos os casos de uso com o qual o ator generalizado se associa. Já o inverso não ocorre, o ator generalizado não interage com os casos de uso associados ao ator generalizado. 51 Relacionamento entre Casos de Uso 52 INCLUSÃO (include ou uses): um caso de uso (principal) incorpora o comportamento de outro caso de uso (incluído). O caso de Uso incluído é parte integrante do caso de uso principal e A fatoração acontece pois outros casos de uso também poderão incorporar o Caso de Uso incluído e assim evitar repetições de fluxos. Relacionamento <Include> entre casos 53 O caso de uso Validar Disciplina agrega o que é comum aos casos de uso Incluir Disciplina e Eliminar Disciplina. Relacionamento entre Casos de Uso 54 EXTENSÃO (extends): para descrever cenários opcionais em caso de uso, Uma variação do comportamento normal. Através de uma condição, o caso estendido á acionado, executado e retorna ao principal O caso de uso estendido pode não ser executado. Relacionamento <extends> entre casos 55 Relacionamento <extends> entre casos 56 Relacionamento entre Casos de Uso 57 GENERALIZAÇÂO: quando um caso de uso é semelhante a outro, mas executa algumas funções a mais. É pouco usado, pois seu uso confunde-se com o extends - também pode resolver essa questão da variação de comportamento Nesse caso um comportamento com adição de funcionalidade.. Generalização entre casos de uso 58 Especialização do caso de uso Solicitar Produtos (internet ou telefone) Existem partes comuns, que estão especificadas em Solicitar Produtos (caso mais geral). Modelagem de Sistemas Marcelo Vasques de Oliveira Atividade 2 Estudo de Caso Em um hotel da cidade, um hóspede pode obter um quarto de 2 formas: através de uma reserva prévia ou obtendo um quarto se houver disponibilidade no ato. Ao reservar são registrados Nome, CPF, Período da estada, quantidade de quartos e de hospedes. Na chegada do hóspede (com ou sem reserva) são registrados, além dos dados acima, os dados (Nome e data de nascimento) dos demais hóspedes. Na saída do hóspede, registra-se a data de saída, bem como apresenta o valor a pagar ao hospede, que informa forma de pagamento (dinheiro, cartão ou cheque). Se pagamento em cheque (banco, agencia, conta e cheque) registra-se os dados do cheque. Se pagamento em cartão, registra-se dados do cartão (administradora, numero cartão e validade). Após saída do hóspede, o recepcionista deve liberar o quarto para limpeza , que ao ser encerrada deve liberar o quarto para uso novamente. 60 Estudo de Caso O gerente pode retirar um quarto de uso, seja para obra ou qualquer outra ação, podendo retornar o quarto para hospedagem, sempre que desejar. O gerente poderá incluir novos quartos, quando forem construídos. Sempre que solicitado o gerente deve receber um mapa de ocupação dos quartos (reservas e ocupados) em um período (por ele informado). Ao final do dia o caixa precisa saber o total recebido em dinheiro e o gerente as reservas canceladas. Uma reserva pode ser cancelada pelo recepcionista (obedecendo pedido do hóspede) ou automaticamente, se o hóspede não chegar ate as 17h. Todo atendimento (reservas, checkin e checkout) é feito pelos recepcionistas. 61 1. Identificando Atores Identificar no texto, os substantivos que indiquem interação com o sistema, seja recebendo dados ou informações Hóspede – não interage diretamente, mas informa dados e recebe informações de sua hospedagem Gerente – retira e recoloca quarto de uso; recebe mapa de ocupação; inclui novos quartos; recebe informação das reservas do período Caixa – recebe informação do total recebido R$ por dia Recepcionistas – procedimentos de reserva (inclusão e cancelamento), checkin e checkout (incluindo pagamento); 62 1. Identificando Casos de Uso Para cada ator, identificar funcionalidade associadas Ator: Gerente Incluir quarto Bloquear quarto por inatividade Desbloquear quarto da inatividade Consultar Mapa de Ocupação Consultar Reservas no Periodo Ator Caixa Consultar recebimentos em espécie 63 1. IdentificandoCasos de Uso Recepcionista Reservar Quarto Cancelar Reserva Registrar Entrada do Hospede Registrar Saída do Hóspede (pagamento e Bloqueio de quarto para limpeza) Liberar Quarto da Limpeza Cancelamento automático da reserva – qual ator ? Cancelar Reservar Automaticamente Evento temporal – Sistema ou Computador, já que será o relógio deste que vai disparar o evento. 64 1. Identificando Casos de Uso 65 Estudo de Caso Alteração de Requisito O hospede deve ser cadastrado, quando fizer primeira reserva ou primeira hospedagem. Solução - Criar um caso de uso Cadastrar Cliente, que deve estender os casos de uso Registrar Reserva e Registrar Entrada do Hóspede 66 1. Identificando Casos de Uso 67 Modelagem de Sistemas Marcelo Vasques de Oliveira Aula 3 Aula 3 – Especificações de Casos de Uso Importância da especificação de casos de Uso Formas de especificação de casos de uso Técnicas de Especificação de casos de uso 69 Especificações de casos de uso Fundamental para complementar o diagrama de casos de uso A UML nada define sobre o texto narrativo. Descreve o passo a passo do comportamento do caso de uso Interação entre ator e sistema Ações do sistema Vários cenários (principal e alternativos) 3 formatos possíveis: Resumido Informal Completo 70 Especificação – os 3 formatos Resumido Resumo de 1 parágrafo contendo o cenário principal (sucesso) Uso: Análise Inicial de Requisitos Informal Múltiplos parágrafos cobrindo vários cenários de uso. Uso: Análise Inicial de Requisitos Completo Todos os cenários (principal e alternativos) são descritos em detalhes, Uso: Análise de requisitos e de sistemas Adequado aos casos de uso relevantes 71 Especificação – os 3 formatos A especificação de um caso de uso, deve mostrar a interação entre o ator e o sistema (caso de uso em questão), ou seja a “conversa” entre ator e sistema na realização (acontecimento) do caso de uso. Para mostrar a diferença entre os 3 tipos de especificação, vamos usar como exemplo o caso de uso: Registrar venda 72 Formato Resumido Caso de Uso: Registrar Venda O cliente chega em um ponto de pagamento da loja com os itens que deseja adquirir. O caixa registra cada item desejado. Ao final, o sistema apresenta o total a pagar e a relação de itens comprados. O cliente informa e o caixa registra os dados do pagamento, que são validados e registrados pelo sistema. O sistema atualiza o estoque. O cliente recebe o recibo das compras e sai com os itens adquiridos 73 Formato Informal Caso de Uso: Registrar Venda Cenário Principal (de sucesso) cliente chega ao ponto de pagamento da loja com os itens a serem adquiridos. O caixa usa o sistema PDV para registrar todos os itens comprados. Ao final, o sistema apresenta o total a pagar e a relação de itens comprados. O cliente informa e o caixa registrar os dados do pagamento, que são validados e registrados pelo sistema. O sistema atualiza o estoque. O cliente recebe o recibo das compras e sai com os itens adquiridos. 74 Formato Informal Cenários Alternativos Se o identificador do item adquirido não for encontrado no sistema, esse notifica o caixa e sugere que esse entre manualmente com a identificação do item (que talvez esteja corrompido). Se o cliente informou pagamento em cartão e a operadora não aprova a transação, informe o cliente e solicite nova forma de pagamento; Se o sistema não consegue atualiza o estoque, sugere que o caixa registre no formulário de problemas do dia, para balanço ao final do dia. 75 Formato Completo Nome do caso de Uso: Registrar Venda Escopo: Sistema de Vendas – PDV Nível: Usuário Atores: Caixa Interessados e Interesses:Caixa: deseja que o sistema seja eficiente, sem erros e de fácil utilização Cliente: deseja adquirir os produtos desejados de forma rápida, sem muitom esforço e encontrar o que precisa e ao final um comprovante do que comprou 76 Formato Completo Interessados e interesses Orgãos fiscais: Deseja cobrar os impostos de cada venda realizada Operadoras de cartão: Deseja receber solicitações de autorização de crédito no formato e protocolo corretos. Pré condição: todos os produtos registrados no sistema e com respectivos preços; caixa autenticado e PDF registrado Pós condições: Venda salva, impostos calculados, estoques atualizados, autorizações de pagamento registradas, Recibo gerado. 77 Formato Completo Cenário Principal (ou fluxo básico) 1.Cliente chega ao PDV com os itens que deseja adquirir 2.Caixa inicia uma nova venda 3.Para cada item de venda do cliente, FACA a) Caixa insere o identificador do item b) Sistema Localiza o Item c) Sistema registra apresenta a linha do item de venda, com o identificador, nome e valor unitário do produto d) Sistema calcula os impostos do item 78 Formato Completo 4. Sistema apresenta o valor total da venda com impostos calculados 5. Caixa informa total ao cliente e solicita pagamento 6. Caixa informa o pagamento do cliente 7. Sistema registra e trata o pagamento do cliente 8. Sistema Finaliza venda e apresenta o recibo da mesma 9. Sistema contabiliza a baixa no estoque de cada item vendido. 79 Formato Completo Cenários Alternativos (extensões). 2.a. Sistema não inicializa 1. Caixa inicia a venda em planilha manual (contingência) , registrando cada item e o pagamento e encerra o caso 3.a........ Requisitos Especiais: 1. Interface de Usuário com tela sensivel a toque em um monitor de tela plana com pelo menos 23 “ 2. Resposta de autorização de crédito, dentro de 30 segundos, em 90% dos casos. 3. A recuperação de falhas de servidores devem ser consistente e robusta. 80 81 Seção da Especificação Significado Nome Verbo no infinitivo + Complemento Verbal Escopo O Nome do Sistema / Projeto Nível Objetivo do usuário ou sub-função (include, extends e especialização) Atores (*) Atores envolvidos : principal e secundários Interessados e Interesses Quem se importa com esse caso de uso e o que eles desejam? Pré condição (*) O que precisa ser verdade para esse caso de uso acontecer Pós condição ou Garantia de sucesso (*) O que precisa ser verdade quando da finalização bem sucedida desse caso de uso Cenário Principal (*) O cenário de sucesso, um caminho típico , incondicional Cenários Alternativos ou extensões (*) Cenários alternativos, quando o cenário principal tem uma variação do fluxo bem sucedido. RequisitosEspeciais Requisitos não funcionais relacionados Especificação com Include 82 Especificação com caso de Include Especificação do Caso Incluir Dependente Cenário Principal 1. Atendente informa identificação do cliente 2. Sistema localiza dados do cliente informado 3. Atendente informa dados do dependente 4. Sistema localiza dados do dependente informado – <<Include Pesquisar Dependente >> 5. Sistema registra dados do dependente do cliente informado 83 Especificação com caso de Include Especificação do Caso Incluir Dependente Cenários Alternativos 2.a. Cliente NÃO localizado Sistema informa “Cliente não registrado no sistema” e retorna ao passo 1 do cenário principal 4.a. Dependente JÁ registrado sistema informa “Dependente já registrado no sistema ”e retorna ao passo 3 do cenário principal 84 Especificação com caso de Extends 85 Especificação com Extends Cenário Principal 1. Atendente informa identificação da mídia 2. Sistema Localiza Locação com a Mídia informada 3. Sistema apresenta Registro da locação com Valor Pagar 4. Atendente informa forma de pagamento 5. Caso forma de pagamento seja DINH: <extends PAGAR EM DINHEIRO> CARTÃO: <extends PAGAR no CARTÃO> Fim-Caso 6. Sistema Registra devolução 7. Sistema emite Recibo de Quitação do Pagamento 86 Especificação com Extends Cenários Alternativos 1.a. MÍDIA NÃO localizada Sistema informa “Mídia não registrado no sistema ou NÃO alugada” e retorna ao passo 1 do cenário Principal 2.a. Locação NÃO localizada (inconsistência de dado Sistema informa “Locação NÃO registrada para a mídia no sistema” e encerra caso de uso. 3.b. SE Data Corrente > Data Previstade Devolução ENTÃO Calcular Multa <<Extends CALCULAR MULTA POR ATRASO>> 87 Considerações Finais Não use detalhes de implementação A tecnologia ficará obsoleta e o caso precisará ser revisto “Usuário insere o seu cartão” – não “Usuário informa dados: agencia, conta e senha” - OK Procure não associar Casos de Uso a telas de sistemas é cedo para pensarmos em interface, que será objeto da fase de projeto do sistema, embora usuários adorem telas 88 Considerações Finais Os casos de uso incluídos (chamados por <include>) ou estendidos (chamados por <extends>) também devem ter descrição textual, podendo ser no formato resumido ou informal. Perguntas que podem ajudar no detalhamento dos cenarios principal e alternativos. Quando tudo ocorre na normalidade (com sucesso), qual o comportamento do sistema ? – esse será o passo a passo do cenário principal. 89 Considerações Finais Algo pode acontecer de forma diferenciada, nesse passo ? – indicará um cenário alternativo (relacionado a esse passo). O que pode dar errado nesse passo ? – da mesma forma que a pergunta acima, essa conduz a identificação de um cenário alternativo. Quando um passo for muito complicado, ele pode vir a ser um novo caso de uso, que se relacionará com o caso original pelo esteriótipo <include>. Façam casos de uso enxutos, pois casos longas podem não ser lidos em sua totalidade. 90 Formato em 2 colunas 91 Ações do ATOR Ações do SISTEMA Cenário Principal 1. Atendente informa dados da reserva 2. Sistema verifica se cliente Cadastrado - <Include Pesquisa Cliente> 3. Sistema verifica disponibilidade de quarto 4. Atendente confirma a reserva 5. Sistema confirma a reserva Cenários Alternativos 2.a. Cliente não é cadastrado 2.a.1. Sistema Informa cliente não cadastrado 2.a.2 Executa caso de extensão: <Extends> Cadastrar Cliente 2.a.3. Retornar ao passo 3 do Caso de uso 3a. Não há disponibilidade 3.a.1. Sistema informa “Não há disponibilidade no período desejado”. 3.a.2. Encerar caso de uso Modelagem de Sistemas Marcelo Vasques de Oliveira Atividade 3 Estudo de Caso Em um hotel da cidade, um hóspede pode obter um quarto de 2 formas: através de uma reserva prévia ou obtendo um quarto se houver disponibilidade no ato. Ao reservar são registrados Nome, CPF, Período da estada, quantidade de quartos e de hospedes. Na chegada do hóspede (com ou sem reserva) são registrados, além dos dados acima, os dados (Nome e data de nascimento) dos demais hóspedes. Na saída do hóspede, registra-se a data de saída, bem como apresenta o valor a pagar ao hospede, que informa forma de pagamento (dinheiro, cartão ou cheque). Se pagamento em cheque (banco, agencia, conta e cheque) registra-se os dados do cheque. Se pagamento em cartão, registra-se dados do cartão (administradora, numero cartão e validade). Após saída do hóspede, o recepcionista deve liberar o quarto para limpeza , que ao ser encerrada deve liberar o quarto para uso novamente. 93 Estudo de Caso O gerente pode retirar um quarto de uso, seja para obra ou qualquer outra ação, podendo retornar o quarto para hospedagem, sempre que desejar. O gerente poderá incluir novos quartos, quando forem construídos. Sempre que solicitado o gerente deve receber um mapa de ocupação dos quartos (reservas e ocupados) em um período (por ele informado). Ao final do dia o caixa precisa saber o total recebido em dinheiro e o gerente as reservas canceladas. Uma reserva pode ser cancelada pelo recepcionista (obedecendo pedido do hóspede) ou automaticamente, se o hóspede não chegar ate as 17h. Todo atendimento (reservas, checkin e checkout) é feito pelos recepcionistas. 94 1. Identificando Casos de Uso 95 Caso de Uso: Reservar Quarto Cenário Principal 1. Recepcionista informa qtde de quartos, num pessoas por quarto 2. Recepcionista informa período da reserva 3. Sistema verifica disponibilidade de quartos no período 4. Recepcionista informa CPF do hóspede 5. Sistema localiza hóspede 6. Sistema mostra dados da reserva e do hóspede 7. Recepcionista confirma dados da reserva 8. Sistema registra Reserva com status de Reservada Cenários Alternativos 3.a. Não há disponibilidade de quartos 1. Sistema informa que não há disponibilidade de quartos 2. Sistema retorna ao passo 1 do cenário principal. 5.a. Hóspede não registrado 1. <<Extends Cadastrar Hóspede>> 96 Caso: Cancelar Reservas do Dia Cenário Principal Para cada reserva a iniciar no dia com status de “reservada” FACA Sistema cancela a reserva, atualizando o status da reserva para Cancelada. Cenários Alternativos a) Não existem reservas a serem canceladas - Sistema encerra caso de uso 97 Caso : Registrar Entrada do hóspede Cenário Principal 1. Recepcionista informa CPF do hóspede 2. Sistema localiza Hóspede 3. Recepcionista informa período da reserva 4. Sistema localiza Reserva 5. Sistema mostra dados da reserva registrada 6. Recepcionista confirma dados da reserva 7. Sistema atualiza status da reserva para “Hospedado” 8. Sistema registra Entrada do hóspede com data corrente Cenários Alternativos 2.a. Hóspede não cadastrado 1. <<Extends Cadastrar Hóspede>> 4.a. Reserva não localizada 1. <<Extends Reservar Quarto>> 2. Sistema retorna ao passo 5 do cenário principal 6.a. Recepcionista altera os dados da reserva 1. Recepcionista altera algum dado da reserva: Periodo da reserva, qtde quartos e pessoas por quarto 2. Sistema registra alteração de dados da reserva 98 1. Identificando Casos de Uso 99 Caso : Registrar Entrada do hóspede Cenário Principal 1. Recepcionista informa CPF do hóspede e período da reserva 2. Sistema localiza Reserva 3. Sistema mostra dados da reserva registrada 4. Recepcionista confirma dados da reserva 5. Sistema atualiza status da reserva para “Hospedado” 6. Sistema registra Entrada do hóspede com data corrente Cenários Alternativos 2.a. Reserva não localizada 1. <<Extends Reservar Quarto>> 4.a. Recepcionista altera os dados da reserva 1. Recepcionista altera algum dado da reserva: Periodo da reserva, qtde quartos e pessoas por quarto 2. Sistema registra alteração de dados da reserva VERSAO MELHORODA – OTIMIZANDO PASSOS 100 1. Identificando Casos de Uso 101 Extends : Cadastrar Hospede Cenário Principal 1. Sistema mostra CPF do Hóspede 2. Recepcionista informa dados (nome, endereço completo e telefone) do hóspede 3. Sistema Registra dados do hóspede 102 Modelagem de Sistemas Marcelo Vasques de Oliveira Aula 4 Aula 4 – Diagrama de Classes Conceitos e Elementos Relacionamento entre classes Aplicação do diagrama de classes 104 Conceitos do Diagrama de Classes Mais popular e conhecido da UML Refinamentos ao longo do PDS Observação do mundo real–domínio do problema–Diagrama Conceiual de classes Nível de projeto – Diagrama de classes de PROJETO, com visão do desenvolvimento. O diagrama de classes descreve os tipos de objetos que interagem para realizar as funcionalidades do sistema e os relacionamentos entre eles. Propriedades e operações de uma classe e restrições a forma como há o relacionamento 105 Evolução no diagrama de classes Modelo conceitual (análise) Classes do negócio funcionalidades dos casos de uso Atributos (sem tipos e visibilidade) característicos Relacionamentos (associação) Modelo de classes de Projeto (Projeto) Multiplicidade Relacionamentos – análise semântica Novos atributos Métodos Visibilidade e tipos dos atributos Classes de projeto (persistência,camadas..) 106 A Classe 3 compartimentos Nome da classe Atributos Operações (métodos) 107 Objeto Classe: Molde de objetos afins, com as mesmas características (atributos e métodos) Objeto: Instância de uma classe 108 Elementos do Diagrama de Classes 109 Atributos e Métodos - declaração Atributos: visibilidade Nome: tipo Métodos: visibilidade Nome (Lista de parâmetros) : tipo 110 Associações entre classes 111 Mais Simples 1, 2 ou mais classes não correlatas,independentes Ao final do relacionamento, as classes permanecem com suas vidas Associações entre classes 112 Associações Exclusivas 113 Multiplicidade 114 Quantos objetos de cada classe podem estar envolvidos nos relacionamentos. Multiplicidade 115 Multipl Significado 1 Exatamente 1 (um) 1..* Um ou vários (muitos) 0..* Nenhum (zero) ou vários (muitos) * Muitos. A leitura é Nenhum (zero) ou vários (muitos) 0..1 Nenhum (zero) ou 1 (um) m..n Faixa de valores. Exemplo : 1 a 3 , 4 a 7 ou 6 a 11 Visibilidade – Atributos e métodos 116 Visibilidade Comentários + Publico Qualquer classe pode usar o método ou atributo - Privado Apenas a própria classe pode usar o método ou o atributo ~ Pacote Apenas classes dentro do pacote podem usar o método ou atributo # Protegido Apenas as subclasses (herança), ou classe especializada pode usar o atributo ou método Encapsulamento – atributos privados SÓ métodos privados ? Generalização / especialização – visibilidade protegida na classe mãe = herdar Classes de Associação 117 Herança 118 Agregação e Composição. 119 Relacionamentos Todo-Parte Agregação tem semântica mais forte Apenas 1 todo participa – as partes pertencem a apenas 1 TODO Se o TODO foi excluído , as partes o são (vidas coincidentes). Dependência 120 A dependência entre 2 classes existe se: mudanças na definição de uma classe pode demandar mudanças na definição da outra No relacionamento abaixo Disciplina depende (é dependente de) de Estudante Observe o método Incluir da classe Disciplina, ela usa como parâmetro o objeto aluno, que é da classe Estudante Nome Relacionamento e Papeis 121 Navegabilidade 122 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 a classe Endereços, mas o contrário não. Esse e uma notação semântica que ajuda muito na implementação. Notas e comentários 123 Modelagem de Sistemas Marcelo Vasques de Oliveira Atividade 04 Estudo de Caso Em um hotel da cidade, um hóspede pode obter um quarto de 2 formas: através de uma reserva prévia ou obtendo um quarto se houver disponibilidade no ato. Ao reservar são registrados Nome, CPF, Período da estada, quantidade de quartos e de hospedes. Na chegada do hóspede (com ou sem reserva) são registrados, além dos dados acima, os dados (Nome e data de nascimento) dos demais hóspedes. Na saída do hóspede, registra-se a data de saída, bem como apresenta o valor a pagar ao hospede, que informa forma de pagamento (dinheiro, cartão ou cheque). Se pagamento em cheque (banco, agencia, conta e cheque) registra-se os dados do cheque. Se pagamento em cartão, registra-se dados do cartão (administradora, numero cartão e validade). Após saída do hóspede, o recepcionista deve liberar o quarto para limpeza , que ao ser encerrada deve liberar o quarto para uso novamente. 125 Estudo de Caso O gerente pode retirar um quarto de uso, seja para obra ou qualquer outra ação, podendo retornar o quarto para hospedagem, sempre que desejar. O gerente poderá incluir novos quartos, quando forem construídos. Sempre que solicitado o gerente deve receber um mapa de ocupação dos quartos (reservas e ocupados) em um período (por ele informado). Ao final do dia o caixa precisa saber o total recebido em dinheiro e o gerente as reservas canceladas. Uma reserva pode ser cancelada pelo recepcionista (obedecendo pedido do hóspede) ou automaticamente, se o hóspede não chegar ate as 17h. Todo atendimento (reservas, checkin e checkout) é feito pelos recepcionistas. 126 1. Identificando Casos de Uso 127 Identificando Classes Precisa reter, no sistema, dados de algum ator? Não. Nenhum ator é relevante para o domínio do problema enquanto retenção de seus dados Que casos de uso dão origem a classes ? Incluir quarto e outros – Quarto Cadastrar hóspede – Hóspede Reservar Quarto o outros – Reserva Registrar Entrada do Hóspede / Registrar Saída do Hóspede - Hospedagem Pagar Cheque, Pagar Dinheiro, Pagar Cartão – Pagamento, Pag Cartão, Pag Cheque e Pag Dinheiro. 128 Identificando Atributos 3. Que atributos identificam cada classe ? Quarto: Num Quarto, Max Pessoas Hóspede: CPF, Nome, Data Nasc Reserva: Data Reserva, Data Inicial, Data Final, Qtde Pessoas, Qtde Quartos Hospedagem: Data Cheg, Data Saida Pagamento: Forma Pagamento, Valor Pagamento Dinheiro : Valor Pago, Troco Cheque : Banco, Agencia, Conta, Chequ Cartão: Adm, Num Cartão, Val Cartão, Parcelas 129 Identificando Métodos evidentes 4. Algum caso de uso dá origem a métodos de uma classe? Quarto: Incluir quarto, Bloquear Quarto, desbloquear quarto, liberar quarto da limpeza. Reserva: Incluir Reserva, Cancelar reserva, cancelar reservas do dia, consultar reservas canceladas. Hóspede: Cadastrar Hospedagem: Registrar entrada, registrar saída Pagamento: ? – nada evidente Pag Dinheiro – Consultar recebimento especie Pag Cartão - ? Nada evidente Pag Cheque - ? Nada evidente 130 1ªversão:Diagrama Conceitual Classes 131 Refinamento 1: DCC 132 Refinamento 2: DCC 133 Refinamento 2: DCC 134 Refinamento 2: DCC 135 Refinamento 2: DCC 136 Modelagem de Sistemas Marcelo Vasques de Oliveira Aula 5 Aula 5 – Diagramas de Interação Os Diagramas de interação Conceitos e elementos do diagrama de sequencia Aplicação do diagrama de sequencia 138 Diagramas de Interação Os diagramas de interação mostram como as classes (na verdade os objetos) trocam mensagens, ou seja interagem para oferecer funcionalidades (realizar um casos de uso). Uma mensagem representa a solicitação que um objeto requisitante faz a um objeto receptor para que esse execute uma das operações definidas em sua classe. Os diagramas de interação, de uma forma geral, mostram como as classes colaboram em determinados comportamentos 139 Diagramas de Interação 140 Tipo Pontos Fortes Pontos Fracos Sequencia Mostra com clareza a sequencia temporal das mensagens Amplo conjunto de opções de notação A cada novo objeto, o diagrama cresce para direita, consumindo espaça na horizonta e se muitos objetos participam, dificulta o desenho e leitura Comunicação Economia de espaço ao modelar – flexibilidade ao adicionar novos objetos, em qualquer direção do desenho. Difícil em perceber a sequencia das mensagens, sendo necessária a numeração sequencial das mesmas Menos opções de notação O tripé da análise e projeto 141 Diagramas de Interação Ao elaborarmos o diagrama de interação (sequencia) , podemos realizar melhorias: nas especificações de casos de uso, no diagrama de casos de uso e principalmente no diagrama de classes, onde além de novos métodos para as classes já existentes, poderemos também modelar novas classes e até mesmo atributos. Essas alterações são normais, sadias pois a medida que vamos evoluindo e nos aprofundando no sistema, aumentamos nossa compreensão e capacidade de modelar o sistema mais adequadamente. 142 Sequencia x Classes O objeto Controlador envia uma mensagem de nome Procurar Cliente() ao objeto Cliente A mensagem em um diagrama de sequencia representa um método que pertence a classe do objeto que recebe a mensagem.. 143 Bases para Diagrama de Sequencia 144 Caso de Uso: Emitir Saldo Conta Cenário Principal 1. Correntista Informa Agencia e Conta corrente 2. Sistema valida Agencia e Conta 3. Correntista Informa senha de acesso 4. Sistema valida senha de acesso 5. Sistema calcula saldo do dia corrente, com base nas movimentações da conta e saldo anterior. 6. Sistemas apresenta saldo ao correntista Diagrama de Sequencia 145 Decisões em Diagrama de Sequencia 146 Decisões em Diagrama de Sequencia 147 Repetições em Diagrama de Sequencia 148 Criação e Destruição de Objetos 149 Tipos de Mensagens 150 Responsabilidade das classes 151 Uma mensagem no modelo de interações, é a atribuição de responsabilidade a uma classe. A modelagem de interações é um útil para decompor as responsabilidades do sistema e aloca-las a classes A identificaçãode classes e atribuição de responsabilidades é complexa. A melhor solução dependerá da expertise do modelador e da aplicação de princípios A coesão e o acoplamento são 2 desses princípios. Coesão e Acoplamento 152 A coesão indica o quão relacionadas (afins) são as responsabilidades de uma classe. Um bom projeto indica uma alta coesão, ou seja as responsabilidades de uma classe devem ser fortemente relacionadas entre si. Acoplamento diz respeito a quão dependentes são umas classes das outras. O acoplamento deve ser baixo, ou seja pouca dependência. Padrões de Projeto 153 Padrão é uma solução, já usada em projetos anteriores, que deve ser usada e ajuda a dar soluções eficientes em nossos projetos. Existe um padrão que diz que: o método deve ser colocado na classe que conhece a informação (tratada pelo método). Esse padrão chama-se “padrão especialista” Existem outros padrões, classificados em diferentes tipos a serem considerados, que podem ser objeto de uma pesquisa, para expansão dos conhecimentos nesse sentido. Desenvolvimento em camadas 154 Dividir responsabilidades e separar código. Inclusão de classes (de projeto), nos diagramas de classe e sequencia Interface (<boundary>) – serve de comunicação entre atores e sistema Controle (<control>) – serve de intermediação entre as classes de interface e as demais classes Entidade (<entity>) – classes do domínio do problema, que detém o conhecimento do negócio. Desenvolvimento em camadas 155 Procedimento padrão 1. ator solicita a ação desejada, pela interface do cenário de uso. 2. O classe de interface encaminha o pedido a classe de controle 3. A classe de controla traduz o pedido e solicita a respectiva entidade que execute determinada operação. 4. A sequencia de retornos acontece ate que pela interface om usuário tem a sua resposta. Diagrama com classes de Projeto 156 Diagrama com classes de Projeto 157 Modelagem de Sistemas Marcelo Vasques de Oliveira Atividade 05 Estudo de Caso Em um hotel da cidade, um hóspede pode obter um quarto de 2 formas: através de uma reserva prévia ou obtendo um quarto se houver disponibilidade no ato. Ao reservar são registrados Nome, CPF, Período da estada, quantidade de quartos e de hospedes. Na chegada do hóspede (com ou sem reserva) são registrados, além dos dados acima, os dados (Nome e data de nascimento) dos demais hóspedes. Na saída do hóspede, registra-se a data de saída, bem como apresenta o valor a pagar ao hospede, que informa forma de pagamento (dinheiro, cartão ou cheque). Se pagamento em cheque (banco, agencia, conta e cheque) registra-se os dados do cheque. Se pagamento em cartão, registra-se dados do cartão (administradora, numero cartão e validade). Após saída do hóspede, o recepcionista deve liberar o quarto para limpeza , que ao ser encerrada deve liberar o quarto para uso novamente. 159 Estudo de Caso O gerente pode retirar um quarto de uso, seja para obra ou qualquer outra ação, podendo retornar o quarto para hospedagem, sempre que desejar. O gerente poderá incluir novos quartos, quando forem construídos. Sempre que solicitado o gerente deve receber um mapa de ocupação dos quartos (reservas e ocupados) em um período (por ele informado). Ao final do dia o caixa precisa saber o total recebido em dinheiro e o gerente as reservas canceladas. Uma reserva pode ser cancelada pelo recepcionista (obedecendo pedido do hóspede) ou automaticamente, se o hóspede não chegar ate as 17h. Todo atendimento (reservas, checkin e checkout) é feito pelos recepcionistas. 160 1. Identificando Casos de Uso 161 Refinamento 2: DCC 162 Reservar Quarto 163 Reservar Quarto 164 Cancelar Reservas Dia 165 Cancelar Reservas Dia 166 Modelagem de Sistemas Marcelo Vasques de Oliveira Aula 6 Aula 6 – Diagramas de Interação Aplicação dos diagramas através de estudo de caso Casos de Uso (diagrama e especificações) Diagrama de classes Diagrama de sequencia 168 Estudo de Caso A empresa FAIXA AMARELA Ltda, confecciona faixas de anúncios e encomendou um sistema que controle suas atividades Controle e acompanhamento dos pedidos Cadastramento de seus clientes O cliente, faz seu pedido e os dados são registrados: Cliente: nome, cpf, endereço completo, tel_fixo, Tel_cel; Pedido: Data do Pedido, altura e largura da faixa, texto a ser escrito na faixa, cor da faixa (amarela, preta ou branca), cor do texto (Branco, Preto, Azul ou vermelho), Previsão de entrega, Valor do Serviço e Valor do sinal (50% do total) 169 Estudo de Caso O valor do serviço é calculado Valor da faixa = Custo_Material + Custo_desenho + % Lucro Custo_Material = área x 20,00 Custo_Desenho = número de letras * 0,70 % de Lucro = 20 % (Custo_Material + Custo_desenho) O Prazo de entrega é calculado com base no trabalho de 5 dias por semana e produção diária de 8 faixas no máximo. O prazo deve começar a ser contabilizado, após a confirmação do pagamento do sinal O sistema deve calcular o prazo de entrega e o valor do serviço; 170 Estudo de Caso Para cada encomenda deve ser emitido um recibo, em 2 vias, contendo os dados do pedido e pagamento (valor do sinal e a pagar na entrega). O sistema (acesso da diretoria) deve controlar o pagamento do sinal, quando o serviço é iniciado e a data de entrega calculada. O sistema deve controlar o pagamento na entrega. O sinal pode ser pago por depósito bancário e o pagamento do saldo deve ser pago contra entrega, em dinheiro, cheque ou cartão de débito. 171 Estudo de Caso O produto somente é entregue mediante o pagamento do saldo. A entrega deve ser controlada. O sistema deve prover uma consulta (disponível apenas a diretoria), de cada pedido feito no período, informando: data do pedido, data de entrega, Valor Serviço, Valor Sinal, Sinal Pago (S/N), Serviço Finalizado (S/N), Serviço Pago (S/N) e Status Pedido. (S/N) = Sim ou Não. O Pedido ao longo do seu ciclo de vida pode ter vários estados , que o sistema deve controlar. 172 Estudo de Caso Ao ser inserido, o status é EM ESPERA. Com o sinal pago, o status é PRONTO PARA PRODUÇÃO Ao iniciar a produção da faixa, o status é EM PRODUÇÃO. Ao ser finalizado o status passa a ser PRONTO. Ao ser entregue o status passa a ser ENTREGUE. Para ser considerado ENTREGUE o pedido tem que ter o saldo de pagamento confirmado. 173 Estudo de Caso O sistema deve emitir um informe a todo cliente que não faz pedido há mais de 6 meses (com base na data corrente). Num mesmo pedido podem ser encomendadas mais de 1 faixa, até 5 no máximo (mas essa regra pode alterar a qualquer momento). 174 Procedimento da solução 1) Diagramação da 1ª. Versão do diagrama de casos de uso Identificação das principais funcionalidades do sistema 2) Especificação textual de casos de uso relevantes 3) Refinamento do diagrama de casos de uso Identificação de includes ou extends que otimizem a solução 4) Identificação das classes do negócio 5) Diagrama Conceitual de Classes 6) Diagrama de sequencia dos casos de uso de relevância. 175 1ª. Versão diagrama de casos de uso 176 1ª. Versão diagrama de casos de uso 177 Caso de Uso Breve descrição Registrar Pedido Registrar os pedidos de faixas Registrar Fim produção do pedido Sinaliza que a produção da faixa chegou ao fim, devendo haver mudança do estado do pedido, nesse momento. Registrar Entrega do Pedido Sinaliza que o pedido foi entregue ao cliente, devendo haver mudança do estado do pedido, nesse momento. Caso de Uso: Registrar Pedido 178 Pré Condição: -- Pós condição: Pedido registrado e Cliente registrado Cenário Principal ... .... ... .. Cenários Alternativos ... ... ... Cenário Principal - Registrar Pedido 179 1.Usuário informa Id do Cliente 2.Sistema Localiza Cliente com Id do Cliente 3.Sistema exibe nome , email e telefones do cliente 4.Para cada faixa do pedido FACA a) Usuário informa dados da faixa b) Sistema Calcula valor da faixa c) Sistema acumula valor do pedido 5. Sistema apresenta valor total do pedido 6. Sistema aponta EM ESPERA para status do pedido. 7. Sistemaregistra pedido 8. Sistema emite boleto do pedido (*) Cenários Alternativos - Registrar Pedido 180 Cenários Alternativos 2.a. Cliente não localizado 1. Sistema Informa Cliente não localizado 2. Sistema retorna ao passo 1 do cenário principal. Caso de Uso: Cadastrar Cliente 181 Cenário Principal 1. Usuário informa Id do Cliente 2. Sistema Localiza Cliente com Id do Cliente 3. Usuário informa dados do cliente (1) 4. Sistema registra dados do cliente Cenários Alternativos 2.a. Cliente já cadastrado 1. Sistema emite mensagem “Cliente já está cadastrado” 2. Sistemas retorna ao passo 1 do cenário principal Caso de Uso: Confirmar Recebimento Sinal 182 Cenário Principal 1. Usuário informa Id do Pedido 2. Sistema Localiza Pedido com Id do Pedido 3. Sistema exibe dados do pedido 4. Usuário informa Data e valor do sinal 5. Sistema valida dados do sinal 6. Sistema aponta PRONTO PARA PRODUCAO para status do pedido. 7. Sistema calcula data de entrega do pedido 8. Sistema altera dados do pedido. Caso de Uso: Confirmar Recebimento Sinal 183 Cenários Alternativos 2.a. Pedido não localizado 1. Sistema emite mensagem “Inconsistência de dados, Pedido não localizado” 2. Sistema retorna ao passo 1 do cenário principal 4.a. Valor do sinal inferior a 50% do pedido 1. Sistema emite mensagem “O valor do sinal deve ser equivalente a 50% do valor do pedido” 2. Sistema retorna ao passo 4 do cenário principal. Caso de Uso: Registrar Início da produção 184 1. Usuário informa Id do Pedido 2. Sistema Localiza Pedido com Id do Pedido 3. Sistema exibe dados do pedido 4. Usuário informa Data de inicio da produção 5. Sistema calcula data de fim da produção e entrega 6. Sistema apresenta data de fim da produção e data de entrega 7. Sistema aponta EM PRODUCAO para status do pedido. 8. Sistema altera dados do pedido. Caso de Uso: Registrar Início da produção 185 1 Cenários Alternativos 2.a. Pedido não localizado 1. Sistema emite mensagem “Inconsistência de dados, Pedido não localizado” 2. Sistema retorna ao passo 1 do cenário principal Caso de Uso: Registrar Fim da produção 186 Cenário Principal 1. Usuário informa Id do Pedido 2. Sistema Localiza Pedido com Id do Pedido 3. Sistema exibe dados do pedido 4. Usuário informa Data de fim da produção 5. Sistema calcula data de entrega 6. Sistema apresenta data de entrega 7. Sistema aponta PRONTO para status do pedido. 8. Sistema altera dados do pedido. Caso de Uso: Registrar Fim da produção 187 Cenários Alternativos 2.a. Pedido não localizado 1. Sistema emite mensagem “Inconsistência de dados, Pedido não localizado” 2. Sistema retorna ao passo 1 do cenário principal Caso de Uso: Registrar entrega do pedido 188 Cenário Principal 1. Usuário informa Id do Pedido 2. Sistema Localiza Pedido com Id do Pedido 3. Sistema exibe dados do pedido 4. Usuário informa Data real de entrega 5. Sistema apresenta data real de entrega 6. Sistema aponta ENTREGUE para status do pedido. 7. Sistema altera dados do pedido. Caso de Uso: Registrar entrega do pedido 189 Cenários Alternativos 2.a. Pedido não localizado 1. Sistema emite mensagem “Inconsistência de dados, Pedido não localizado” 2. Sistema retorna ao passo 1 do cenário principal Caso de Uso: Consultar cliente sem pedido 190 Cenário Principal Para cada cliente cadastrado faça Sistema localiza Pedidos do Cliente Para cada pedido do cliente faça Se (Data Corrente – Data Pedido) > 180 então exibir dados Pedido (1) Fim_para Fim_para (1) Nome Cliente, email Cliente, Telefone Cliente, Data Ultimo Pedido Caso de Uso: Consultar Pedido no período 191 Cenário Principal Usuário informa data Inicial e final Para cada Pedido com data pedido>-Data Inicial e Data Pedido<=Data Final faça Buscar Dados Cliente Exibir dados Pedido (1) Fim_para (1)– Nome Cliente, email Cliente, Telefone Cliente, Data Pedido, Valor Pedido, Data Entrega Refinamento do diagrama de casos de uso 192 Observe que nos casos de uso Confirmar Recebimento do Sinal, Registrar Início da Produção. Registrar Fim da Produção e Registrar Entrega do Pedido, Temos os dois trecho repetidos: o primeiro no cenário principal e segundo no cenário alternativo Trechos repetidos nos casos de uso 193 Cenários Principal 1. Usuário informa Id do Pedido 2. Sistema Localiza Pedido com Id do Pedido 3. Sistema exibe dados do pedido Cenários Alternativos 2.a. Pedido não localizado 1. Sistema emite mensagem “Inconsistência de dados, Pedido não localizado” 2. Sistema retorna ao passo 1 do cenário principal Alterações nas especificações 194 As especificações dos casos de uso precisam ser modificadas para compatibilizar com diagramas. Observe que no local das 3 linhas que havia anteriormente na especificação do caso de uso Confirmar Recebimento do Sinal, passamos a ter uma única linha com a inclusão do novo caso de uso (<<Incluce>> Pesquisar Pedido), E o cenário alternativo de Confirmar Recebimento de sinal passa a ser o cenário alternativo do <<include>> Pesquisar Pedido Caso de uso: Confirmar Recebimento sinal 195 Cenário Principal 1. <<Include>> Pesquisar Pedido 2. Usuário informa Data e valor de pagamento do sinal. 3. Sistema aponta PRONTO PARA PRODUCAO para status do pedido. 4. Sistema calcula data de entrega do pedido 5. Sistema altera dados do pedido. FIM- caso de uso Caso de uso: Confirmar Recebimento sinal 196 Cenários Alternativos 4.a. Valor do sinal inferior a 50% do pedido 1. Sistema emite mensagem “O valor do sinal deve ser equivalente a 50% do valor do pedido” 2. Sistema retorna ao passo 4 do cenário principal Caso de uso: Pesquisar Pedido (include) 197 Cenário Principal Usuário informa Id do Pedido Sistema Localiza Pedido com Id do Pedido Sistema exibe dados do pedido Cenários Alternativos 2.a. Pedido não localizado 1. Sistema emite mensagem “Inconsistência de dados, Pedido não localizado” 2. Sistema retorna ao passo 1 do cenário principal . Diagrama de casos de uso - refinado 198 Diagrama Conceitual de Classes 199 O diagrama conceitual de classes pode ser extraído dos casos de uso. Casos de uso podem ser classes Casos de uso podem ser métodos Casos de uso: Cadastrar Cliente Classe Cliente Casos de uso: Demais Classe Pedido As 2 classes se relacionam por associação Diagrama Conceitual de Classes 200 O relacionamento entre as classes é associação Papel: Cliente FAZ Pedido A cardinalidade do relacionamento 1 Cliente faz * Pedidos 1 Pedido é de 1 Cliente Atributos 201 Um erro muito comum em diagrama de classes é a confusão que se faz com tabelas (de bancos de dados relacionais), usando os conceitos de chave primária e chave estrangeira em relacionamentos 1:* ou *..*. Esse conceito não existe em diagrama de classes. Classe e tabela são bem distintos nesse sentido. A classe deve conter apenas os atributos que pertençam a ela, que a identifiquem enquanto classe. Analisando os atributos do pedido 202 Dados do pedido: tamanho da faixa (altura e largura), texto a ser escrito na faixa, cor da faixa (amarela, preta ou branca), cor do texto (Branco, Preto, Azul ou vermelho) Cada pedido pode conter até 5 faixas, o que significa dizer que os dados do pedido, acima, terão que ser armazenados 5 vezes ou mais (caso cresça no futuro). Analisando os atributos do pedido 203 Isso acarreta uma anomalia de armazenamento de atributos, pois teríamos que ter 5 vezes cada dado de 1 faixa, que poderiam não ser usados sempre, causando desperdício de armazenamento e uma estrutura pouco ortodoxa. Percebe-se uma nova classe, chamada FAIXAS PEDIDO, que estaria relacionada com a classe PEDIDO. Tal solução resolve problema da quantidade de faixas por pedido, pode aumentar ou diminuir. Diagrama Conceitual de classes final 204 Agregação ou composição? 205 Adicionando os atributos Analisando especificações de casos de uso 206 A análise de especificações de casos de uso, nos indicam a necessidade de novos atributos Caso de Uso Atributos sugeridos Confirmar Recebimentode Sinal Data Pago Sinal Valor Pago Sinal Registrar Início de Produção Registrar Fim de Produção Data Inicio Produção Data Fim Produção Data Entrega Registrar Entrega do Pedido Data Real Entrega Responsabilidade das classes 207 A análise de especificações de casos de uso, nos indicam a necessidade de novos atributos Caso de Uso Atributos sugeridos Confirmar Recebimento de Sinal Data Pago Sinal Valor Pago Sinal Registrar Início de Produção Registrar Fim de Produção Data Inicio Produção Data Fim Produção Data Entrega Registrar Entrega do Pedido Data Real Entrega 208 Adição de atributos 209 Responsabilidade das classes Adição de métodos, analisando os casos de uso 210 Registrar Pedido-Cenário: Principal Novos Métodos Cliente Pedido Faixas Pedido 211 Consultar Pedidos Período-Cenário: Principal 212 Consultar Clientes Sem Pedido - Principal 213 Modelagem de Sistemas Marcelo Vasques de Oliveira Aula 7 Aula 7 – Diagrama de Transição de Estado Entender os conceitos e elementos do diagrama de transição de estados (DTE) Aplicar a construção do diagrama de estados. 215 O Estado de um Objeto O estado de um objeto é determinado pelos valores de seus atributos, em dado momento. Garantia do encapsulamento: apenas os métodos da classe podem alterar os seus seus próprios atributos. Dessa forma apenas os métodos da própria classe devem alterar o seu estado. Ciclo de vida do objeto: tempo que o objeto permanece vivo e ativo – vários estados 216 O Estado de um Objeto Pela análise das transições de estados é possível identificar as operações que precisam ser realizadas para responder aos eventos. E tais operações estarão mapeadas em métodos da classe a que o objeto pertence. O Diagrama da UML que ajuda na análise das transições entre os estados de um objeto é o DTE ou DE. 217 Diagrama de Transição de Estados DTE descreve: o ciclo de vida de objetos de uma classe, os eventos que causam as transições entre estados e as operações resultantes Mostra o comportamento de objetos de uma única classe. DTE – 1 para cada classe com 2 ou mais estados 218 Estado Segundo a definição de UML Guia de Usuário[Booch, Rumbauch e Jaconson, 2006], estado é uma condição ou situação na vida de um objeto durante o qual o objeto satisfaz alguma condição, realiza alguma atividade ou aguarda um evento. Um objeto permanece em um estado por um tempo finito. 219 Evento Um evento é a ocorrência (interna ou externa) de um estímulo gerado para o objeto, capaz de mudar o seu estado atual. Uma transição indica um movimento de um estado para o outro, pela ocorrência de um evento. 220 Pseudo estado: Inicial Denota o estado (pseudo estado) de um objeto no momento de sua criação, no momento em que ele é instanciado na memória. Só há um estado INICIAL em um DTE, mostrando o inicio de sua leitura 221 Pseudo estado: Final Denota o estado (pseudo estado) do fim do ciclo de vida de um objeto. É um estado opcional, no DTE, e também pode-se ter mais um. 222 223 224 Conclusões do DTE Os estados determinam e delimitam as operações passíveis com aquele objeto. Um hóspede não pode chegar ao hotel e hospedar-se sem que tenha feito uma reserva: sem transição entre Disponível e Ocupado. Somente existe transição para o estado de Ocupado, estando no estado Reservado. 225 Conclusões do DTE Como acabamos com a obrigação de reservar um quarto para pode ocupa-lo ? 226 Detalhando a transição Cada transição possui três partes: Assinatura do gatilho, é um único evento que demanda a mudança de estado. Usamos apenas assinatura do gatilho (Cliente Faz Reserva, Cliente Faz Checkin e etc), ou seja o evento que ocasiona a transição de estado. A ausência, denota que a transição é feita imediatamente. 227 Detalhando a transição Cada transição possui três partes: Sentinela: se estiver presente, é uma condição que deve ser verdadeira para que a transição ocorra. Se ausente, indica que a transição sempre acontece. Representada entre colchetes [..], com a condição dentro. Atividade é um comportamento executado durante a transição. A ausência diz que nada é feito durante a transição. 228 Detalhando a transição Assinatura do gatilho: Saque de R$ Sentinela: [Saldo < 0] Atividade: Aguardar depósito Leitura: ao realizar um “Saque de R$” e o saldo ficar < ZERO, a conta transita para estado de Bloqueada, onde “aguarda um depósito”, que torne o saldo zerado ou positivo (maior ou igual a zero). 229 Otimizando o DTE Ajudam a otimizar e reduzir a quantidade de estados e complexidade do DTE. Ações de Entrada e Saída (entry / exit) Atividades (do) Transição interna (evento) 230 Ações de Entrada e Saída Ações realizadas dentro do estado, assim que entra (entrada) e antes de sair (saída), independente da transição. A cláusula ENTRY (ação de entrada) A cláusula EXIT (ações de saída). A clausula ENTRY - ação no momento em que o objeto entra no respectivo estado A cláusula EXIT - ação sempre que o objeto sai de determinado estado. 231 Transição Interna Os estados pode reagir a eventos, que não ocasionam transição, usando atividades internas. São eventos que precisam ser tratados, mas que não ocasionam transição de estado. 232 Atividades Em geral, objeto fica ocioso em um estado até que um evento ocorra. Porém pode ser que você deseje que um objeto permaneça realizando uma tarefa até que determinado evento ocorra. executa uma atividade enquanto está nesse estado. A cláusula DO indica que há uma atividade naquele estado. 233 Otimizando o Caso Hotel 234 Eliminar o estado EM LIMPEZA, e criar uma Ação de Saída (Exit) do estado OCUPADO e assim reduziremos o número de estados. Superestados 235 Um superestado ajuda a simplificar a modelagem de comportamentos complexos, sendo composto de vários estados . Um superestado é composto de subestados e é chamado de estado composto. Um estado composto pode ser sequencial ou concorrente Superestados 236 Regra: Todos os estados dentro de um estado composto herdam suas transições. Passo a passo para construir o DTE 237 1. Identifique os estados relevantes da classe 2. Analise possíveis eventos (mudança estado) Para cada evento, identifique transição 3. Para cada estado: identifique as transições de um evento identifique os eventos internos e ações 4. Para cada transição verifique condições de guarda e ações. 5. Para cada condição de guarda e para cada ação, identifique os atributos e ligações 6. Defina o estado inicial e os eventuais estados finais. 7. Desenhe o diagrama Contribuições :DTE ao diagrama de classes 238 O DTE é feito com base nas especificações de casos de uso, nos diagramas de interação e nos diagramas de classes. Novos atributos e métodos podem ser descobertos ao elaboramos DTE e são adicionados ao diagrama de classes. Pode ser necessária a atualização de métodos de uma classe para refletir o comportamento nos respectivos estados Por exemplo, o comportamento do método sacar() da classe ContaBancária varia em função do estado no qual esta classe se encontra: saques não podem ser realizados em uma conta BLOQUEADA. Modelagem de Sistemas Marcelo Vasques de Oliveira Atividades Estudo de Caso O Pedido pode ter vários estados Ao ser inserido, o status é EM ESPERA. Com o sinal pago, o status é PRONTO PARA PRODUÇÃO Ao iniciar a produção da faixa, o status é EM PRODUÇÃO. Ao ser finalizado o status passa a ser PRONTO. Ao ser entregue o status passa a ser ENTREGUE. Para estar ENTREGUE o pedido tem que ter o saldo de pagamento confirmado. 240 Estudo de Caso 241 Estudo de Caso E se o pedido puder ser cancelado enquanto não entrar em produção 242 Estudo de Caso 243 Atividade Questão 3: (Eletrobrás) Observe o diagrama de transição de estados a seguir. Suponha que, num dado momento, o sistema se encontra no Estado0 e que ocorra a seguinte sequencia de eventos: e c b a a O estado do sistema após a ocorrência desses eventos, será ? ( ) Estado0 ( ) Estado3 ( ) Estado1( ) Estado4 ( ) Estado final 244 Estudo de Caso 245 Modelagem de Sistemas Marcelo Vasques de Oliveira Aula 8 Aula 8 – Diagrama de Atividades Entender os conceitos e elementos do diagrama de atividades Entender as situações em que o uso do diagrama de atividades é útil. Aplicar a construção de diagrama de atividades 247 Fluxograma o percursor O diagrama de atividades, inspirado nos fluxogramas, apresenta uma formatação diferenciada, com novos elementos (conforme definido na UML) e novas possibilidades. A principal diferença, que faz o diagrama de atividade mais versátil que os fluxogramas é a possibilidade de representar atividades que ocorrem em paralelo. 248 249 Elementos do Diagrama de Atividades Atividade: retângulo com bordas arredondadas 250 Transição: Setas contínuas que representam o fluxo de trabalho entre atividades Decisões e Condições de guarda Decisões: Losango, usado para controlar os desvios (caminhos) do fluxo de controle. Condição de guarda: condições associadas a transições. indicando que a atividade que sucede será executada se condição=V 251 Pontos de merge Desvios: a decisão, que divide em 2 ou mais caminhos (fluxos de atividades). Tem 1 fluxo de entrada e N fluxos de saída. Intercalações: Local onde 2 ou mais caminhos (fluxos de atividades) se juntam e continuam como apenas 1 fluxo. É usado o mesmo losango da decisão. Os caminhos foram separados pelo Desvio. Tem N fluxos de entrada e 1 fluxo de saída. 252 253 254 255 Processamento em Paralelo Processamento em paralelo: Bifurcação e União (ou Junção): barras horizontais que sincronizam atividades que vão ocorrer em paralelo. As atividades que ocorrem em paralelo são Processar Pedido e Faturar Pedido 256 257 Processamento em Paralelo A programação em paralelo em algoritmos concorrentes é pouco comum no mundo comercial, sendo mais usada em software básico (S.O) O poder do paralelismo do diagrama de atividade é mais usado para representar processos de negócio ou fluxos de trabalho. 258 259 Processamento em Paralelo A partir bifurcação, os fluxos de atividades que vão ocorrer em paralelo O fluxo que inicia com Atividade 1 O fluxo que inicia com Atividade 2 O fluxo que inicia com Atividade 3 Os 3 fluxos ocorrem em paralelo e cada um terá um tempo diferente e independente Sincronizar os 3 fluxos ao final, Junção (join), 260 Processamento em Paralelo Os fluxos de atividades que ocorrem em paralelo serão sincronizados 2 vezes: no inicio pela barra de sincronização chamada bifurcação e ao final pela barra de junção. A barra de bifurcação recebe 1 transição de entrada e gera N fluxos de saída, que iniciam juntos A barra de junção recebe N fluxos de controle e gera 1 transição de saída, que somente será executada quando todos os fluxos de entrada chegarem na junção. 261 262 Raias de Natação Forma de particionamento, exibindo os agentes que realizam cada atividade do diagrama Os agentes podem ser departamentos ou setores da empresa (financeiro, contabilidade, criação, propaganda e etc), funções ou cargos de pessoas nas empresas (gerente, operação, atendente e etc), papeis nas empresas (fornecedor, cliente, segurado, seguradora e etc). 263 Raias de Natação Para o caso do diagrama de atividades representar a lógica de casos de uso ou de métodos complexos de uma classe, as raias podem representar: objetos, componentes e atores. 264 265 Sub atividades As atividades, quando complexas, podem ser decompostas em sub atividades. A atividade decomposta terá um diagrama especificando as suas sub-atividades e no diagrama principal terá uma representação diferenciada – com símbolo do ancinho, 266 267 Sub atividades A seguir, Detalhamento de “Entregar Pedido”. há um desvio para executar o que está especificado no diagrama abaixo, desde o Inicio até o Fim. Ao final da execução do diagrama “Entregar Pedido” o fluxo volta ao diagrama acima para o ponto imediatamente seguinte a atividade “entregar Pedido”, que é a barra de junção. O nome do diagrama (canto superior esquerdo, após a palavra ACT) = nome da atividade do ancinho. 268 269 Para que usar Diagrama de Atividades O uso de diagrama de atividades não ocorre em larga escala. Pois: primeiro: documentar sistemas não é prática usual aqui no Brasil, segundo – em sistemas desenvolvidos sob o paradigma OO o particionamento do sistema é por classes e não por funcionalidades (como seria nos paradigmas estruturado e essencial); como o diagrama de atividades descreve comportamento está mais relacionado a funcionalidades. 270 Aplicações mais usuais do Diagrama Modelagem de processos de negócios e Fluxos de trabalho Essa utilização é que mais tira proveito do fato do diagrama de atividade permitir representar fluxos de controle paralelos, já que em muitos processos de negócio e em fluxos de trabalho costumam acontecer em paralelo. 271 Aplicações mais usuais do Diagrama Modelagem da lógica de um caso de uso complexo A especificação de casos de uso complexos demandam muito esforço e por vezes, por sua extensão, são difíceis de serem visualizados como um todo (ocupando mais de 1 folha) Restrição: o usuário final (especialista do domínio do problema), geralmente leitor das especificações de casos de uso, poderia não acompanhar o diagrama com facilidade. 272 Aplicações mais usuais do Diagrama Modelagem da lógica de um caso de uso complexo A vantagem é que os cenários principal e alternativos podem ser representados no mesmo diagrama, facilitando a visão do caso de uso como um todo. Limitação: os casos de uso são descritos na visão dos atores e o diagrama de atividades especificam as atividades do sistema- as interações do ator para informar dados serão atividades 273 Aplicações mais usuais do Diagrama Modelagem da lógica de uma operação complexa Embora não seja muito usual, métodos de classes podem ter uma lógica complexa, especialmente em classes de controle e nesse caso o diagrama de atividades podes ser útil para ajudar no entendimento dessa lógica. 274 Aplicações mais usuais do Diagrama Modelar a lógica de algoritmos paralelos para programas concorrentes Pode-se valer dos elementos (separações e junções) usados pelo diagrama de atividades para representar o processamento paralelo 275 Modelagem lógica de caso de uso complexo Caso de Uso: Registrar Pedido Cenário Principal 1, Usuário informa Id do Cliente 2. Sistema Localiza Cliente com Id do Cliente 3. Sistema exibe dados do cliente 4. Usuário informa dados do pedido 5. Sistema Calcula valor do serviço (2) 6. Sistema aponta EM ESPERA para status do pedido. 7. Sistema registra pedido 8. Sistema emite boleto do pedido 276 Modelagem lógica de caso de uso complexo Caso de Uso: Registrar Pedido Cenários Alternativos 2.a. Cliente não localizado 1. Extends Cadastrar Cliente 277 Modelagem lógica de caso de uso complexo Caso de Uso: Registrar Pedido Cenários Alternativos 2.a. Cliente não localizado 1. Extends Cadastrar Cliente 278 279 Modelagem de Sistemas Marcelo Vasques de Oliveira Atividades Diagrama de Atividade – sinistro de veiculo O segurado aciona seguro para conserto de automóvel colidido A seguradora cuida do recolhimento do automóvel levando-o para uma de suas oficinas autorizadas. Se perda total, o valor e pago ao cliente e o processo encerrado. Caso o automóvel tenha conserto é cobrada a franquia , paga pelo cliente, enquanto o carro é consertado 281 282 Modelagem de Sistemas Marcelo Vasques de Oliveira Aula 9 Aula 9 – Diagramas de Implementação Discriminar o diagrama de Componentes e seus elementos Discriminar o diagrama de implantação e seus elementos Relacionar os 2 diagramas Aplicar, através de exemplos, a construção dos 2 diagramas 284 Diagrama de Componentes Útil para modelagem da arquitetura física de um software, Apresenta os componentes físicos, suas interfaces e dependências. Permite o desenvolvimento baseado em componentes, onde um software é dividido em componentes e interfacesque são reutilizáveis e substituíveis. Especifica a arquitetura do software 285 Analogia Sistema de home theater componentes podem ser facilmente conectados e substituídos a qualquer momento: projetor, receiver, caixas de som (frontal, lateral, subwoofer). Se componente queimar, é substituído por um igual ou equivalente (mesma interface). Análogo ao conceito de componentes de software 286 Componente A UML define componente como: Um componente representa uma parte modular de um sistema que encapsula seu conteúdo e cuja manifestação é substituível dentro de um ambiente. Define seu comportamento em termos de interfaces fornecidas e requeridas (conexão com demais componentes). 287 Componente Caixa preta, onde são especificadas as interfaces para que outros componentes possam usar seus serviços sem conhecer detalhes de como os serviços implementados. O componente encapsula (protege) o seu conteúdo e seu comportamento é definido em função de prover e requerer serviços, através de suas interfaces. 288 Componente O desejo é que o componente possa ser independente e intercambiável. Em um sistema baseado em componentes, cada componente tem uma finalidade, ou seja, presta um serviço e para tal demanda o uso de outros componentes. 289 Sistema com um conjunto de componentes A ideia é construir sistemas, como um conjunto de componentes, que são partes substituíveis. E que esses componentes possam ser reutilizados em muitos sistemas. Os componentes devem ter interfaces que propiciem grande flexibilidade e adaptação a muitos sistemas. Componentes podem ser criados de outros componentes. 290 O Que pode ser um componente Página HTML Código fonte em linguagem Código executável DLL Servlet Máquina JAVA 291 Interface de um componente Elementos que definem um conjuntos de operações que outros elementos, como classes ou componentes, devem implementar. Existem dois tipos de interfaces Interfaces fornecidas: descrevem os serviços oferecidos a outros componentes. Um componente pode declarar quantas interfaces fornecidas forem necessárias. 292 Interface de um componente Interfaces requeridas: são as interfaces usadas pelo componente, quando solicita serviços de outros componentes. Um componente pode ter várias interfaces requeridas. 293 Interface de um componente Um mesmo componente pode tanto fornecer como requerer interfaces. O relacionamento entre os componentes e as interfaces é a essência dos sistemas 294 Componentes e Interface O usuário do serviço de um componente deve conhecer bem a sintaxe de suas interfaces Pelo nosso exemplo, as interface são as conexões possíveis entre o receiver do home Theather e dispositivos (projetor, DVD e etc_ Para usarmos um DVD precisamos saber as possíveis conexões: HDMI, DVI e etc. Para usar um componente precisamos saber as possíveis interfaces. 295 Componentes e Interface 2 maneiras de representar o relacionamento entre componentes e interface. Opção 1: o componente que usa a interface se conecta ao outro componente por meio do relacionamento de dependência 296 Componentes e Interface Opção 2: O componente que fornece a interface é conectado a ela pelo relacionamento de Realização (entre o componente Fornecedor e a Interface). 297 Conector de montagens Estabelece uma ligação entre componentes em que uma interface requerida por um é fornecida por outro 298 Conector de montagens ImageObserver é uma interface Componente.py Implementa (fornece essa interface) Imagem.py depende da interface 299 Exemplo de um componente com 2 interfaces providas : Validar Usuário e Validar Senha 1 interface requerida: Conexão 300 Dependência Um componente pode utilizar serviços ou depender de alguma outra forma de outros componentes do sistema Componente 1 depende de componente 2 301 Componentes x classes Pode ser utilizado para demonstrar as classes que estão sendo implementadas ou manipuladas por um componente. 302 303 Flexibilidade da solução. A solução permite flexibilidade em mudanças. Se for alterar a técnica de criptografia ou ampliar as possiblidades com novas técnicas, basta substituir ou adicionar novos componentes. Se quisermos trocar o firewall, basta substituir o respectivo componente. Se mudarmos o SGBD , basta substituir o respectivo componente 304 Diagrama de Implantação Mostra o layout físico de um sistema, revelando quais partes do software são executadas em quais partes do hardware (FOWLER). Enfoca a estrutura física sobre a qual o software vai executar. Define como as máquinas estarão conectadas e através de quais protocolos se comunicarão. Elementos: os nós e as conexões entre eles. 305 Elementos do Diagrama de Implantação Nó: recurso computacional de um sistema, como servidores, impressoras, terminais remotos, computadores pessoais, software, banco de dados dentre outros. Em geral o nó é identificado por um nome, 306 Elementos do Diagrama de Implantação Em diagramas de implantação, a existência de componentes dentro de um nó, pode ocorrer. Possibilita definir a configuração do nó: capacidade de processamento, memórias principal e (discos). 307 Nó – componentes e relações 308 Esteriótipos de um nó. 309 Caminhos de comunicação - conexões Os nós são conectados por conexões, que é um relacionamento de associação, Nesse caso a associação representa uma conexão física entre os nós. Multiplicidade (1..*), papel e nome do relacionamento (TCP/IP) 310 Exemplo de Diagrama de Implantação 311 312 313 314 Modelagem de Sistemas Marcelo Vasques de Oliveira Atividades Sobre o diagrama de componentes, analise: Ele apresenta os componentes que irão compor o software bem com a dependência entre eles A dependência entre os componentes denota que um componente precisa do outro para executar as suas funcionalidades A reutilização de componentes entre vários sistemas é um desejo da equipe de desenvolvimento Um componente pode ter apenas interfaces requeridas Assinale a única alternativa correta. 316 ( ) estão corretas apenas I, II e III ( ) estão corretas apenas I, II e IV ( ) Estão corretas I, II, III e IV ( ) Estão corretas apenas I e II ( ) está correta apenas I 317 Com base nos diagramas de componentes e implantação, analise. I. O diagrama de implantação modela os aspectos físicos, mostrando a organização do hardware. II. Um componente deve ser adaptável a um sistema através de sua interface. III. O diagrama de componentes mostra as dependências entre os elementos do hardware que sustentará o software. IV – O diagrama de implantação pode conter componentes em seus nós. Assinale a ÚNICA opção correta, 318 ( ) estão corretas apenas I, II e IV ( ) estão corretas apenas I, II e II ( ) Estão corretas I, II, III e IV ( ) Estão corretas apenas I e II ( ) está correta apenas I 319 Sobre o diagrama de implantação, é INCORRETO afirmar: ( ) É direcionado para a distribuição, entrega e instalação das partes que formam o sistema físico. ( ) É um conjunto de nós conectados, onde um nó é única e exclusivamente uma estação ou servidor. ( ) Os elementos são os nós e as conexões. ( ) Envolvem a topologia do sistema, descrevendo a estrutura do hardware. ( ) Pode ser integrado ao diagrama de componentes, mostrando que componentes executam em que nó. 320 Modelagem de Sistemas Marcelo Vasques de Oliveira Aula 10 Aula 10 – Estudo de caso aula 6 Diagrama de estados Diagrama de atividades Diagrama de classes de projeto Diagrama de componentes Diagrama de implantação 322 Diagrama de Estados Base: diagrama conceitual de classes 323 Diagrama de Estados Cliente – Os objetos da classe cliente tem apenas 1 estado em todo ciclo de vida não há necessidade de DTE. Pedido: possuem vários estados ao longo do ciclo de vida, em função da fase em que o pedido se encontra precisa de DTE. Itens Pedido – é classe que compõe a classe Pedido e depende do estado de pedido não há necessidade de DTE. 324 Diagrama de Estados Conclusão:
Compartilhar