RUP - Cap. 4 – Processo Centrado na Arquitetura Disciplina: ESOF2 Prof. Adriana M. Martins RUP – Cap. 4 – Processo Centrado na Arquitetura Introdução Conceitos Chave do RUP: - Dirigido por Casos de Uso - Centrado na Arquitetura - Iterativo e Incremental Lembrando que: A arquitetura representa a forma, enquanto que os casos de uso representam a funcionalidade. Aula 04 2 RUP – Cap. 4 – Processo Centrado na Arquitetura Introdução Casos de Uso podem conduzir o desenvolvimento de software, porém não são suficientes. A arquitetura de um sistema pode ser definida como sendo: “Uma visão comum na qual todos os participantes concordem ou pelo menos aceitem.” Aula 04 3 RUP – Cap. 4 – Processo Centrado na Arquitetura Introdução A arquitetura deverá descrever os elementos mais importantes do modelo. A arquitetura é construída durante a fase de elaboração. O objetivo é criar uma base arquitetural para que a fase de construção seja iniciada com um fundamento sólido para a construção completa do sistema. Aula 04 4 RUP – Cap. 4 – Processo Centrado na Arquitetura O que é a Arquitetura para um Sistema? “O arquiteto é especialista na integração de todos os aspectos de uma construção, mas não é especialista em todos os aspectos.” Exemplo: arquiteto civil. Sistemas de software são apresentados através de diferentes perspectivas (visões), que juntas compõem a arquitetura do sistema. Aula 04 5 RUP – Cap. 4 – Processo Centrado na Arquitetura O que é a Arquitetura para um Sistema? A arquitetura lida com algumas decisões importantes como: - a organização do sistema; os elementos estruturais e interfaces entre si, e também o seu comportamento e composição em subsistemas maiores; o estilo arquitetural que guiará a organização dos elementos, interfaces, colaborações e composições. - - Envolve também decisões sobre uso, funcionalidade, performance, reuso, compreensibilidade, estética, robustez, restrições econômicas e tecnológicas. Aula 04 6 RUP – Cap. 4 – Processo Centrado na Arquitetura O que é a Arquitetura para um Sistema? A arquitetura também pode ser representada como visões de modelos (modelo de visão 4 + 1): Usuário Final Funcionalidade -Pacotes -Subsistemas -Classes Visão Lógica Visão de Implementação Programadores Gerenciamento de Software -Módulos estáticos -Camadas -Gerenciamento de configurações Visão de Caso de Uso Analistas/Testadores Comportamento - Testes, processos, iterações Visão de Processo Integradores de Sistemas Desempenho Escalabilidade Processamento Cenários Chave Visão de Implantação Engenharia de Sistema Topologia, entrega, instalação, comunicação Aula 04 7 RUP – Cap. 4 – Processo Centrado na Arquitetura Porque é Necessária a Arquitetura? Para desenvolver sistemas complexos é necessário um arquiteto e desenvolvedores. São sistemas que não existem no mundo real, geralmente são únicos e inexistentes. “O design e a implementação vão além de algoritmos e estruturas de dados de computação: projetar e especificar toda uma estrutura dessas emerge como um novo tipo de problema.” Aula 04 8 RUP – Cap. 4 – Processo Centrado na Arquitetura Porque é Necessária a Arquitetura? - - A arquitetura é necessária para: Entendimento do sistema Organização do desenvolvimento Estímulo ao reuso Evolução do sistema Aula 04 9 RUP – Cap. 4 – Processo Centrado na Arquitetura Porque é Necessária a Arquitetura? Entendimento do Sistema: tornar sistemas complexos compreensíveis é um desafio por várias razões: - Comportamento complexo; Ambiente de operação complexo; Tecnologia complexa; Combinação de computação distribuída, produtos e plataformas comerciais, componentes e estruturas reusáveis; Satisfação de demanda de indivíduos e de organizações; Dificuldade de gerenciamento; Constantes mudanças. - - - Aula 04 10 RUP – Cap. 4 – Processo Centrado na Arquitetura Porque é Necessária a Arquitetura? Organização do Desenvolvimento: redução da intensa necessidade de comunicação entre membros de uma equipe maior e viabilização do trabalho em paralelo. Estímulo ao Reuso: a base do reuso são os componentes. Quando estes são bem projetados há redução de tempo e custo durante a construção do sistema. Evolução do Sistema: o sistema deve ser capaz de suportar bem as mudanças, sem causar impactos indesejáveis ao projeto e implementação existentes. Aula 04 11 RUP – Cap. 4 – Processo Centrado na Arquitetura Casos de Uso x Arquitetura Casos de Uso com Valor: alta performance, qualidade e usabilidade. Restrições e facilitadores: Casos de Uso Software do sistema dirigem Middleware guia Sistemas de legado Arquitetura Padrões e políticas Requisitos não funcionais Experiência Necessidade de distribuição - Arquiteturas prévias - Padrões arquiteturais Aula 04 12 RUP – Cap. 4 – Processo Centrado na Arquitetura Casos de Uso x Arquitetura a) b) c) d) e) f) Restrições e facilitadores para definição da Arquitetura: Software do sistema: quais produtos serão usados – BD e SO? Middleware: quais os produtos de interface serão usados entre camadas? Sistemas Legados: sistemas já existentes serão usados? Serão melhorados? Padrões e políticas da empresa: serão usadas, adaptadas? Requisitos não-funcionais: qual a disponibilidade, tempo de restauração, memória? Necessidade de distribuição: como o sistema estará organizado, distribuído fisicamente? Este é um entendimento geral de como o sistema funcionará! Aula 04 13 RUP – Cap. 4 – Processo Centrado na Arquitetura Casos de Uso x Arquitetura A arquitetura é desenvolvida em interações durante a fase de elaboração; Abordagem incremental com resultado sendo uma arquitetura estável; Durante a fase de construção, os casos de uso são implementados baseados nos requisitos dos usuários e dos clientes, sendo também influenciados pela arquitetura selecionada na fase de elaboração. Entradas do cliente Entradas dos usuários Casos de Uso Arquitetura Aula 04 14 RUP – Cap. 4 – Processo Centrado na Arquitetura Elaboração da Arquitetura Quais os casos de uso serão arquiteturalmente significantes? Os que ajudam a mitigar riscos mais sérios; b) Os que são considerados mais importantes para os usuários do sistema; c) Os que ajudam a cobrir as funcionalidades mais importantes do sistema. a) Geralmente são 80% dos Casos de Uso Aula 04 15 RUP – Cap. 4 – Processo Centrado na Arquitetura Elaboração da Arquitetura O resultado da fase de elaboração será uma base arquitetural – um esqueleto do sistema com poucos “músculos”. Depois desta etapa haverão poucas mudanças na arquitetura. Base Arquitetural: agregação dos modelos do sistema que representem os casos de uso mais importantes, com uma perspectiva arquitetural e uma descrição da arquitetura. O papel da descrição da arquitetura é guiar toda a equipe de desenvolvimento durante os ciclos de vida do sistema. Se a arquitetura for estável, o padrão desta também se tornará estável. Aula 04 16 RUP – Cap. 4 – Processo Centrado na Arquitetura Elaboração da Arquitetura Base Arquitetural Casos de Uso Análise Projeto Implantação Implementação Testes Descrição Arquitetural Casos de Uso Análise Projeto Implantação Implementação Aula 04 17 RUP – Cap. 4 – Processo Centrado na Arquitetura Elaboração da Arquitetura Fim da Construção Casos de Uso Análises Projeto Implantação Implementação Testes Descrição Arquitetural Casos de Uso Análises Projeto Implantação Implementação Aula 04 18 RUP – Cap. 4 – Processo Centrado na Arquitetura Elaboração da Arquitetura A descrição da Arquitetura: - É basicamente a uma extração sobre os modelos do sistema; - Apresenta apenas componentes arquiteturalmente significantes; - Contém as 5 visões: casos de uso, análise, projeto, implantação e implementação; Aula 04 19 RUP – Cap. 4 – Processo Centrado na Arquitetura Elaboração da Arquitetura A descrição da Arquitetura: deve sempre ser atualizada, mas não deve “crescer” durante o ciclo de vida do projeto. As atualizações podem incluir: a) descoberta de novas interfaces e classes; b) adição de funcionalidades aos subsistemas já existentes; c) atualização de versão dos componentes utilizados; d) reorganização da estrutura do processo. Pode ainda conter: requisitos não-funcionais, detalhes sobre plataforma, sistemas legados e comerciais utilizados, documentação de padrões utilizados. - É uma visão de alto nível: trata com detalhes apenas subsistemas que são significantes no ponto de vista da arquitetura. - Aula 04 20 RUP – Cap. 4 – Processo Centrado na Arquitetura Elaboração da Arquitetura Utilizando Padrões de Arquitetura: Padrões de projeto são as “soluções já consagradas para problemas recorrentes”. - Trata de uma perspectiva arquitetural do sistema, portanto mais abrangente. - No UP a solução é descrita na forma de interações e colaborações entre subsistemas e até mesmo entre sistemas. - Exemplos de padrões: Broker, Cliente-Servidor, Three-Tier, Ponto-a-Ponto, Camadas. - Obs: mais de um padrão poderá ser usado no sistema, porém um deles deverá ser o predominante. - Aula 04 21 RUP – Cap. 4 – Processo Centrado na Arquitetura Elaboração da Arquitetura – Modelo em Camadas Modelos, classes, bibliotecas específicas do negócio. Subsistemas não específicos para a aplicação, permitem reuso por outras aplicações do mesmo domínio do negócio. Não consideram detalhes específicos do negócio. Aula 04 22 RUP – Cap. 4 – Processo Centrado na Arquitetura O Arquiteto Cria a Arquitetura A arquitetura é criada pelo arquiteto, juntamente com outros desenvolvedores; Deve buscar um sistema com alta performance, qualidade, funcionalidade, amigável, robusto, … Objetivo: implementar as funcionalidades da aplicação em um custo adequado com eficiência desejada, agora e no futuro. Arquiteto: conhecimento do domínio no qual trabalha e de desenvolvimento de software. Uma boa arquitetura = diminuição do tempo total de desenvolvimento de projeto. Aula 04 23 RUP – Cap. 4 – Processo Centrado na Arquitetura A Descrição da Arquitetura – Exemplo Visão Arquitetural do Modelo de Caso de Uso – Caixa Eletrônico: - Apresenta atores e casos de uso mais importantes. Apresenta descrição completa do caso de uso. É totalmente implementado durante a fase de elaboração. Depósito Transferência Saque Saque Aula 04 24 RUP – Cap. 4 – Processo Centrado na Arquitetura A Descrição da Arquitetura – Exemplo Visão Arquitetural do Modelo de Projeto – Caixa Eletrônico: Apresenta os classificadores mais importantes do modelo de projeto (subsistemas, interfaces, classes, classes ativas) e as realizações dos casos de uso mais importantes. - 1. Diagrama de classes das classes ativas do Caso de Uso 2. Diagrama de classes mostrando os subsistemas e interfaces 3. Diagrama de colaboração 4. Descrição do fluxo de realização do Caso de Uso Gerenciador do Cliente Gerenciador da Transação Gerenciador da Conta Aula 04 25 RUP – Cap. 4 – Processo Centrado na Arquitetura A Descrição da Arquitetura – Exemplo Visão Arquitetural do Modelo de Implementação – Caixa Eletrônico: Define a arquitetura física do sistema em termos de nós conectados; - Os nós e conexões do modelo de implantação e a alocação de objetos ativos aos nós podem ser descritos em diagramas de implantação. - Gerenciador Cliente Internet Servidor da Aplicação Intranet Servidor de Dados Cliente nós Aula 04 26 RUP – Cap. 4 – Processo Centrado na Arquitetura A Descrição da Arquitetura – Exemplo Visão Arquitetural do Modelo de Implantação – Caixa Eletrônico: Será o mapeamento direto do modelo de projeto para o modelo de implantação. - Aula 04 27 RUP – Cap. 4 – Processo Centrado na Arquitetura Três Conceitos Importantes O que é Arquitetura? Especificação feita pelo arquiteto na descrição da arquitetura; Permite controle do desenvolvimento; Contém elementos estruturais do sistema, interfaces e suas colaborações; Dirigida pelos Casos de Uso; Compreensível, suportar reuso e modificações. Como é obtida? Desenvolvida interativamente durante a fase de elaboração. Construção de uma base da arquitetura. Como é descrita? Visão dos modelos do sistema que contém os componentes mais interessantes arquiteturalmente e mais importantes a serem entendidos pela equipe e interessados. Aula 04 28 RUP – Cap. 4 – Processo Centrado na Arquitetura Visão Geral Aula 04 29