Prévia do material em texto
Tema 4 Modelos de sistema e projeto de arquitetura Engenharia de Software I Prof. Adriano Sepe O que é modelagem de sistema? Podemos representar com: § UML; § Modelos formais. Compreendendo a modelagem de sistemas Por que devemos modelar? Funções distintas considerando: § Sistemas existentes; § Novos sistemas. Modelagem de sistemas Quais os pontos fortes do modelo de sistema? Como devemos compreender o conceito da abstração trazida pelos modelos? Modelagem de sistemas A produção de diferentes modelos, tem por fundamento a diferenciação na perspectiva. Alguns exemplos de diferentes perspectivas (SOMMERVILLE, 2011): § Externa; § Interação; § Estrutural; § Comportamental. Modelos propõe perspectivas O que é efetivamente a Linguagem de Modelagem Unificada? Utilizando UML na modelagem Conforme Sommerville (2011) observou, por mais que existam outros tipos de diagramas, para a UML, a maioria dos usuários acreditam haver cinco tipos essenciais: Priorizando a UML Diagrama de atividades Diagrama de casos de uso Diagramas de sequência Diagrama de classe Diagramas de estado Continuando... Modelos de sistema e projeto de arquitetura É possível utilizar a UML de forma mais flexível? Podemos utilizar a notação gráfica de três formas (SOMMERVILLE, 2011): § Discussão; § Documentar; § Descrição detalhada. Até onde essa flexibilidade é aceitável? Flexibilidade UML O que são os limites para a especificação de um sistema? Distinção entre os limites e o ambiente. Considerações para a definição dos limites do sistema. Considerações a respeito do modelo de contexto, baseado em suas limitações! Modelos de contexto O que é interação? Exemplos de interação: § Envio de SMS ao utilizar o cartão; § Envio de e-mail ao falhar nas tentativas de acesso à uma conta § Utilizando um jogo de computador em rede. Modelos de interação O que é modelagem de caso de uso? Diagramas de Casos de Uso § Definição; § Como utilizamos; § Importância. Modelos de caso de uso Modelos de caso de uso Fonte: o autor. Diagrama de Caso de Usos Utilizamos para modelar as interações entre os atores e os objetos em um sistema e as interações entre os próprios objetos § Sintaxe rica; § Quais as possibilidades quando o utilizamos. Modelando com diagrama de sequência Para proporcionar o entendimento de um sistema na perspectiva dos componentes e seus relacionamentos, os modelos estruturais de softwares trazem importantes elementos que corroboram para isso. Os modelos estruturais se dividem em dois grupos (SOMMERVILLE, 2011): § Modelos estáticos; § Modelos dinâmicos. Modelos estruturais Quais são as possibilidades no uso do Diagrama de Classe. Diferentes níveis de detalhamento. Relação com os sistemas orientados a objetos. Através deste diagrama representamos: § Classes; § Interfaces; § Atributos; § Operações; § Associações. Modelagem Diagrama de Classe Modelagem Diagrama de Classe Fonte: o autor. Diagrama de Classe Finalizando... Modelos de sistema e projeto de arquitetura Quais os objetivos? Refatoração é possível, para desenvolvimento incremental? Decomposição como meio para possibilitar a discussão de detalhes Projeto de arquitetura Segundo Sommerville (2011) podemos projetar as arquiteturas de software em dois níveis de abstração, o que foi referenciado como arquiteturas em pequena e grande escala: § Pequena escala; § Grande escala. Projeto de arquitetura Em muitos sistemas, é notável que os requisitos funcionais são também influenciados por componentes individuais, mas a arquitetura de sistema é a influência dominante. Projeto de arquitetura Baseado na observação relatada por Sommerville (2011), discute-se três vantagens de projetar e documentar, explicitamente, a arquitetura de software: § Comunicação de stakeholders; § Análise de sistema; § Reuso em larga escala. Projeto de arquitetura Como podemos utilizá-lo? Utilizando diagramas de blocos simples § Possibilidade; § Considerações. Projeto de arquitetura Esse conflito entre a teoria e a prática, justifica-se porque podemos utilizar o modelo de arquitetura de um programa de duas maneiras: § Discussão do projeto: facilita às discussões sobre o projeto, principalmente para a comunicação com os stakeholders do sistema, e planejamento do projeto, pois não é rica em detalhes; Projeto de arquitetura § Documentação: nessa perspectiva, é esperado que seja criado um modelo completo de sistema, mostrando seus diferentes componentes, suas interfaces e conexões. Projeto de arquitetura Entende-se como um processo criativo a atividade de projeto de arquitetura, onde qual deseja-se projetar uma organização de sistema com o objetivo de atender os requisitos funcionais e não funcionais. Existem fatores que influenciam esse processo: § Criatividade; § Pessoa experiência e formação; § Requisitos específicos; e § Tipo de sistema. Decisões necessárias para o projeto de arquitetura Os envolvidos durante o processo de projeto de arquitetura, precisam tomar uma série de decisões estruturais, pois afetarão distintamente o sistema e seu processo de desenvolvimento. Conhecimentos e experiências serão exigidos principalmente para responder algumas importantes questões, como: Decisões necessárias para o projeto de arquitetura Requisitos não funcionais são estreitamente relacionados à arquitetura do software, influenciando em: (SOMMERVILLE, 2011): Documento de requisitos de software Desempenho Proteção Segurança Disponibilidade Manutenção