Análise e Projeto de Software Proj. Desenvolvimento de Software Prof. Cleverton Hentz cleverton.hentz@ifrn.edu.br 8 de junho de 2017 Material Apresentado
Sumário de Aula 1 Introdução 2 Estruturação do Sistema 3 Padrões de Arquitetura 1 / 17
Conceitos Básicos Um projeto de software é uma descrição da estrutura do software a ser implementada, dos dados, das interfaces entre os componentes e os algoritmos utilizados; O projeto é construído interativamente com uma série de especificações e melhorias; As atividades específicas de um processo de projeto: 1 Projeto de arquitetura; 2 Especificação abstrata; 3 Projeto de interface; 4 Projeto de componentes; 5 Projeto de estrutura de dados; 6 Projeto de algoritmos. 2 / 17
Projeto de arquitetura O processo de projeto de arquitetura se preocupa em estabelecer um arcabouço conceitual básico para o software; Identificação dos componentes principais do sistema e das comunicações entre eles; Algumas das vantagens de documentar a arquitetura do software: Comunicação com os stakeholders; Análise de sistema; Reutilização em larga escala. 3 / 17
Projetando o Sistema As principais atividades no projeto de arquitetura: Estruturação de sistema; Modelagem de controle; Decomposição modular. Distinção entre subsistema e módulos: Subsistema: sistema cuja a operação não depende dos serviços de outros sistemas; Módulo: componente do sistema que fornece um ou mais serviços para outros módulos. O resultado do projeto de arquitetura é o documento de projeto de arquitetura, esse apresenta um conjunto de modelos do sistema; Modelos gerais do documento: Modelo estrutural estático; Modelo de processo dinâmico; Modelo de interface; Modelo de relacionamento. 4 / 17
Estruturação do Sistema A primeira fase da atividade de projeto da arquitetura é a decomposição do sistema em um conjunto de subsistemas que interagem; Um projeto de arquitetura pode ser representado por um diagrama de blocos; Definição dos elementos do diagrama: Blocos representam subsistemas; Blocos dentro de blocos representam subsistemas dentro de outro subsistema; Setas representam dados e/ou controle passados entre os subsistemas. 5 / 17
Exemplo de Sistema de Controle Robotizado 6 / 17
Padrões de Arquitetura Os padrões são uma forma de apresentar, compartilhar e reusar o conhecimento sobre os sistemas de software; Um padrão de arquitetura é uma descrição abstrata, estilizada, de boas práticas experimentada e testada em diferentes sistemas e ambientes; A descrição do padrão deve incluir informações de quando o uso desse padrão é adequado, seus pontos fortes e fracos; Alguns exemplos de padrões de arquitetura: Arquitetura em camandas; Arquitetura de repositório; Arquitetura Cliente-Servidor; Arquitetura duto e filtro. 7 / 17
Arquitetura em Camadas Padrão que favorece a separação e independências entre os componentes do sistema; Padrão de arquitetura em camadas Nome Descrição Exemplo Quando é usado Vantagens Desvantagens Arquitetura em camadas Organiza o sistema em camadas com a funcionalidade relacionada associada a cada camada. Uma camada fornece serviços à camada acima. Próximo slide. É usado na construção de novos recursos em cima de sistemas existentes; quando o desenvolvimento está espalhado por várias equipes; quando há um requisito de proteção multinível. Desde que a interface seja mantida, permite a substituição de camadas inteiras. Costuma ser díficil a clara separação entre as camadas. O desempenho também pode ser um problema por conta dos múltiplos níveis. 8 / 17
Exemplo de Arquitetura em Camadas Arquitetura em camadas para um sistema de gerenciamento de versões: 9 / 17
Arquitetura de Repositório O Padrão Repositório Nome Descrição Exemplo Quando é usado Vantagens Desvantagens Repositório Todos os dados do sistema são gerenciados em um repositório central, acessível a todos os componentes do sistema. Próximo slide. Quando tem um sistema no qual grandes volumes de informações são gerados e precisam ser armazenados por um longo tempo. Os componentes podem ser independentes. As alterações feitas a um componente podem propagar-se para todos os outros. Todos os dados podem ser gerenciados de forma consistente. Cria um ponto único de falha. Pode haver ineficiências na organização de toda a comunicação através do repositório. Distribuir o repositório através de vários computadores pode ser difícil. 10 / 17
Exemplo do Padrão Repositório Arquitetura de um conjunto de ferramentas CASE integradas. 11 / 17
Arquitetura Cliente-Servidor Padrão Cliente-Servidor Nome Descrição Exemplo Quando é usado Vantagens Desvantagens Cliente-Servidor A funcionalidade do sistema está organizada em serviços, servidores. Os clientes são os usuários desses serviços. Próximo slide. Quando os dados em um banco de dados compartilhados precisam ser acessados a partir de uma série de locais. Pode ser usado quando a carga do sistema é variável. Os servidores podem ser distribuídos através de uma rede. A funcionalidade geral pode estar disponível para todos os clientes. Cada serviço é um ponto único de falha suscetível a ataques de negação de serviços ou falha do servidor. O desempenho pode ser imprevisível, pois depende da rede. Pode haver complicações no gerenciamento dos servidores. 12 / 17
Exemplo do Padrão Cliente-Servidor Arquitetura de um sistema de acervo e filmes e fotografias. 13 / 17
Arquitetura Duto e Filtro Padrão Duto e Filtro Nome Descrição Exemplo Quando é usado Vantagens Desvantagens Duto e Filtro O processamento dos dados do sistema está organizado de modo que cada componente de processamento(filtro) seja discreto e realize um tipo de transformação de dados. Os dados fluem (como em um duto) de um componentes para outro. Próximo slide. Em aplicações de processamento de dados em que os dados são processados em etapas separadas para gerarem saídas separadas. O reuso da transformação é de fácil compreensão e suporte. Estilo de workflow correspondente à estrutura de muitos processos de negócios. Evolução por adição é fácil e simples. Pode ser implementado sequencialmente ou concorrente. O formato para transferência de dados tem de ser acordado entre as transformações de comunicação. Cada transformação deve analisar suas entradas e gerar as saídas para um formato acordado. 14 / 17
Exemplo do Padrão Duto e Filtro Arquitetura de um sistema de processamento em lote. 15 / 17
Resumo da Aula 1 Introdução 2 Estruturação do Sistema 3 Padrões de Arquitetura 16 / 17
Referências 1 Sommerville, Ian. Engenharia de software, 9 edição. Capítulo 6. 17 / 17