Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Engenharia de Software Projeto de Arquitetura Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho A arquitetura “Desde que o primeiro programa foi dividido em módulos, os sistemas passaram a ter arquiteturas.” Mary Shaw e David Garlan Software Architecture: Perspectives on an Emerging Discipline Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Aspectos de uma arquitetura Nos requisitos, a arquitetura aparece assim: “Nossa aplicação deve operar via Web nas plataformas Unix, Macintosh, OS/2 e Windows.” “O produto deve ser compatível com CORBA.” “O sistema deve garantir excelente tempo de resposta em todas as configurações cliente-servidor.” “Camelot é baseado no modelo cliente-servidor e usa chamada remota a procedimentos.” “Abstrações em camadas e a decomposição do sistema oferecem uniformidade aos clientes do sistema.” “Escolhemos uma abordagem distribuída, orientada a objetos.” “Um compilador paralelo faz um pipeline da execução das fases de compilação.” Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Aspectos de uma arquitetura Às vezes, a arquitetura aparece em um diagrama de caixas e linhas Sistema de Simulação Acústica Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Aspectos de uma arquitetura O que podemos extrair? O sistema consiste de quatro componentes Três dos componentes têm mais em comum que o Processo de Controle (por que?) Os componentes relacionam-se de alguma forma Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Aspectos de uma arquitetura Qual a natureza dos componentes? Por que existe a separação? São executados em momentos diferentes? Os componentes são módulos a serem desenvolvidos de forma quase independentes? Os componentes são hardware, objetos, módulos, processos ou programas distribuídos? Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Aspectos de uma arquitetura O significam as conexões? Controle? Envio de dados? Uso (Processo de Controle usa Modelo de Ruído)? Sincronização? Ou uma combinação das anteriores? E quais são os mecanismos de tal comunicação? Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Aspectos de uma arquitetura O significa a hierarquia? Por que Processo de Controle está em um nível acima? O Processo de Controle chama os demais? E estes podem chamar o Processo de Controle? Como a arquitetura opera em tempo de execução? Qual o fluxo dos dados e do controle através do sistema? Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Aspectos de uma arquitetura Diagramas como este não são suficientes para descrever a arquitetura do sistema Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho O que é arquitetura? “A arquitetura é composta de estruturas do sistema que incluem Componentes de software Suas propriedades visíveis externamente O relacionamento entre os componentes.” Len Bass, Paul Clements e Rick Kazman Software Architecture in Practice Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho O que é arquitetura? “A arquitetura define o sistema em termos de componentes computacionais e interações entre tais componentes.” Mary Shaw e David Garlan Software Architecture: Perspectives on an Emerging Discipline Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho O que é arquitetura? “A arquitetura está relacionada com Organização do sistema em termos de componentes Estruturas globais de controle Protocolos de comunicação Sincronização e acesso a dados Alocação de funcionalidades aos elementos de projeto Composição dos elementos de projeto Distribuição física Escalabilidade e desempenho Evolução do sistema Seleção entre alternativas sobre decisões de projeto.” Mary Shaw e David Garlan Software Architecture: Perspectives on an Emerging Discipline Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho O que é arquitetura? “Uma arquitetura é composta de Uma coleção de componentes, conexões e restrições. Uma coleção de declarações de stakeholders sobre suas necessidades As razões que justifiquem que os componentes, suas conexões e restrições satisfazem as necessidades dos stakeholders.” Barry Boehm Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho O que é arquitetura? “A arquitetura forma a espinha dorsal para se construir sistemas de software com sucesso.” Software Engineering Institute (SEI) Carnegie Mellon Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Como descrever uma arquitetura? Nas definições apresentadas, temos em comum Componentes Relacionamentos entre os componentes Propriedades destes componentes e relacionamentos Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Como descrever uma arquitetura? Além disso, tais elementos tratam de vários aspectos “Espinha dorsal do sistema” “Organização do sistema em termos de componentes” “Estruturas globais de controle” “Protocolos de comunicação” “Interações entre componentes” “Distribuição física” “Escalabilidade e desempenho” “Evolução do sistema” Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Como descrever uma arquitetura? Porém, tais componentes e relacionamentos podem representar diferentes conceitos Através de diferentes visões Como descrever aspectos tão diferentes? Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Diferentes visões de uma arquitetura Os stakeholders envolvidos na construção de um edifício têm diferentes visões Cada visão é descrita de forma diferente (plantas, maquetes, esboços, etc) Todas se referem ao mesmo edifício E nenhuma é completa Que visão interessa a cada um destes stakeholders? Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Diferentes visões de uma arquitetura A arquitetura de software também deve ser descrita por diferentes visões Módulos Lógica Processos Físico Utilização Chamada Fluxo de dados Fluxo de controle Classes Casos de uso Segurança Implementação Camadas, etc Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Diferentes visões de uma arquitetura Módulos Os componentes são módulos do sistema Os relacionamentos são do tipo “é-submódulo-de” Esta visão geralmente define produtos e auxilia na estruturação do planejamento do projeto (por módulos) e em alocação de recursos Que módulos desenvolver primeiro? Que equipes serão alocadas por módulo? Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Diferentes visões de uma arquitetura Lógico Os componentes são abstrações dos requisitos funcionais do sistema (tipicamente, funções) Os relacionamentos são do tipo “compartilha-dados-com” Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Diferentes visões de uma arquitetura Processos Os componentes são processos ou threads Os relacionamentos são do tipo “sincroniza-com” “não-executa-sem” “não-executa-com” “preempts” etc É uma visão ortogonal às visões de módulos e lógico É útil em análises de escalonamento e desempenho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Diferentes visões de uma arquitetura Físico Os componentes são dispositivos de hardware Os relacionamentos são do tipo “comunica-se com” Permite analisar desempenho, disponibilidade e segurança Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Diferentes visões de uma arquitetura Utilização Os componentes são procedimentos ou módulos Os relacionamentos são do tipo “usa” “assume-a-presença-de” Auxilia no projeto de sub-sistemas ou sistemas que podem ser facilmente estendidos Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Diferentes visões de uma arquitetura Chamadas Os componentes são procedimentos Os relacionamentos são do tipo “invoca” Permite rastrear o fluxo de execução do sistema e eventual detecção e eliminação de gargalos Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Diferentes visões de uma arquitetura Fluxo de dados Os componentes são programas ou módulos Os relacionamentos são do tipo “pode-enviar-dados-a” Os links podem ser rotulados com o nome dos dados transmitidos É útil para rastreamento de requisitos Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Diferentes visões de uma arquitetura Fluxo de controle Os componentes são programas, módulos ou estados do sistema Os relacionamentos são do tipo “ativa” Auxilia na verificação do comportamento temporal Esta visão é a mesma que a visão de chamadas, caso o único mecanismo de transferência de controle disponível seja a chamada a função ou procedimentos. Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Diferentes visões de uma arquitetura Classes Componentes são objetos ou classes Relacionamentos são do tipo “herda-de” “é-uma-instância-de” Eventualmente, uma notação mais complexa como UML é mais eficiente que um modelo (ou visão) simplificada como esta Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Diferentes visões de uma arquitetura Cada projeto vai possuir uma visão dominante Por exemplo, freqüentemente a visão de módulos é dominante As demais visões são moldadas ou adaptadas para se enquadrarem na visão dominante Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Propriedades Arquiteturas definem componentes Porém, omitem seus detalhes privados (informações não arquiteturais) Explicita informações de como um componente Usa É usado por Se relaciona com Interage com outro componente Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Propriedades Comportam várias visões Porém, nenhuma visão isoladamente pode ser considerada “A Arquitetura” Módulos Implementação Processos Segurança Físico Chamada Casos de Uso Camadas Fluxos Classes Lógica Utilização Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Propriedades Relembrando: o papel dos componentes, relacionamentos e até mesmo o contexto da arquitetura mudam em cada visão Exemplo Componentes podem ser Módulos Processos etc Relacionamentos É-submódulo Sincroniza-com etc Contexto Em tempo de desenvolvimento Em tempo de execução etc Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Propriedades Todo sistema tem arquitetura Não significa que esteja bem documentada Não significa que seja conhecida por todos Portanto, a arquitetura existe independente de sua documentação O comportamento dos componentes é parte da arquitetura Tal comportamento é o que permite que outros componentes saibam como interagir Também não significa que o comportamento preciso de todas as interfaces devem ser especificadas Apenas aspectos de como usar o componente Questões que tenham impacto na viabilidade do sistema como um todo (por exemplo, performance) Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho A importância da arquitetura “Se o projeto ainda não definiu a arquitetura do sistema, incluindo sua justificativa, ele não deve prosseguir com o desenvolvimento em larga escala.” Barry Boehm Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho A importância da arquitetura A arquitetura abstrai informações detalhadas do sistema, mas consegue prover informação suficiente para Análise do sistema como um todo Tomada de decisões (técnicas ou gerenciais) Redução de riscos Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho A importância da arquitetura Uma bom projeto de arquitetura é um fator determinante para o sucesso do projeto A arquitetura ajuda Comunicação com os stakeholders A arquitetura representa uma abstração de alto nível do sistema comum a todos os stakeholders Cria um entendimento mútuo e consensual entre os stakeholders Decisões iniciais de projeto As decisões iniciais de projeto são críticas (infra-estrutura, espinha dorsal do sistema) e com impacto em todo o ciclo de vida Reusabilidade de abstrações A arquitetura é um artefato relativamente pequeno, fácil de entender e que pode ser reusado em outros projetos Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho A importância da arquitetura A boa arquitetura Bem documentada e que utiliza uma notação que todos os stakeholders entendem Módulos são bem definidos e utilizam os princípios de Separation of concerns (separação de interesses) Encapsulamento Módulos produtores de dados devem ser diferentes de módulos consumidores de dados A arquitetura deve ser a mais independente possível de um produto ou tecnologia específica Caso tal dependência exista, a arquitetura deve permitir uma mudança fácil e de baixo custo A arquitetura deve permitir estender o sistema sem que a complexidade aumente Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho O Processo de Projeto de Arquitetura Estruturação do sistema O sistema é decomposto em vários subsistemas principais e as comunicações entre eles são identificadas Modelagem de controle Um modelo do relacionamento de controle entre as diferentes partes do sistema é estabelecido Decomposição modular Os subsistemas identificados são decompostos em módulos Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Subsistemas e Módulos Não há uma distinção clara. Em linhas gerais... Um subsistema é um sistema também cuja operação é independente dos serviços providos por outros subsistemas. Um módulo é um componente do sistema que provê serviços a outros componentes mas que normalmente não seria considerado um sistema separado Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Modelos de Arquitetura Estrutura, controle e decomposição modular podem ser baseados num modelo ou estilo de arquitetura particular. Contudo, a maioria dos sistemas são heterogêneos O modelo de arquitetura usado afeta Desempenho Robustez Manutenibilidade Alguns domínios de aplicação possuem modelos específicos Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Estruturação dos Sistemas O projeto de arquitetura pode ser expresso através de diagramas de bloco apresentando uma visão geral da estrutura do sistema Modelos mais específicos mostram Compartilhamento de dados Distribuição Interface entre os sistemas Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Sistema de Controle de um Robô para Empacotamento Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho O Modelo de Repositório Subsistemas compartilham dados de duas formas: O dado compartilhado é colocado num banco de dados ou repositório, podendo ser acessado por todos os subsistemas Cada subsistema mantém seu próprio banco de dados e passa dados para os outros subsistemas Quando a quantidade de dados compartilhados é grande, o modelo de repositório é mais apropriado. Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Arquitetura de um Conjunto de Ferramentas CASE Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Vantagens do Modelo de Repositório Forma eficiente de compartilhar grande quantidades de dados Subsistemas que produzem dados não precisam se preocupar com como os dados são usados Gerenciamento (backup, segurança, etc.) centralizado O modelo de compartilhamento é tornado público através do esquema do repositório Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Desvantagens do Modelo de Repositório Subsistemas devem concordar no modelo de dados do repositório. Inevitavelmente um compromisso. A evolução dos dados é difícil e cara Não há espaço para políticas específicas de gerenciamento Dificuldade de distribuição efetiva de dados em máquinas distintas Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Modelo Cliente-servidor Modelo de sistema distribuídos que mostra como dados e processamento é distribuído entre processadores Componentes: Conjunto de servidores separados que provêm serviços específicos Conjunto de clientes que usam estes serviços Rede que permite que clientes acessem os servidores Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Biblioteca de Filmes e Retratos Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Vantagens do Modelo Cliente-servidor Fácil distribuição de dados Faz uso efetivos de sistemas em rede Adicionar novos servidores ou atualizar os atuais é fácil Modelos de dados otimizados para cada servidor podem ser utilizados Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Desvantagens do Modelo Cliente-servidor Troca de dados pode ser ineficiente Gerenciamento redundante em cada servidor Utilização de novos servidores pode requerer mudanças no clientes Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Modelo de Máquina Abstrata (Camada) Modela a interface dos subsistemas Organiza o sistema numa série de camadas Cada camada provê um conjunto de serviços Os serviços de uma camada são implementados usando os serviços da camada logo abaixo Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Sistema de Gerenciamento de Versão Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Modelo de Máquina Abstrata (Camadas) Vantagens Portável Quando uma camada muda, somente a camada adjacente é afetada Conveniente para desenvolvimento incremental Desvantagens É difícil estruturar sistemas nesta forma Desempenho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Modelos de Controle Lidam com fluxo de controle entre subsistemas Complementam o modelo estrutural Abordagens Controle centralizado Um subsistema tem responsabilidade geral Controle baseado em eventos Cada subsistema pode responder a eventos gerados por outros subsistemas ou pelo ambiente Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Tipos de Controle Centralizado Modelo de retorno de chamada Aplicável a sistemas seqüenciais Modelo de subrotina top-down Modelo de gerente Aplicável a sistemas concorrentes Um componente do sistema controla a parada, início e coordenação de outros processo do sistema. Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Modelo de Retorno de Chamada (Centralizado) Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Sistema de Controle de Tempo Real (Modelo de Gerente - Centralizado) Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Tipos de Controle Baseado em Eventos Modelo broadcast Um evento é enviado, em princípio, para todos os subsistemas. Qualquer dos subsistemas que trate o evento poderá fazê-lo. Modelo baseado em interrupções Usado em sistemas de tempo real Interrupções são detectadas por um gerenciador de interrupções e repassadas para outro componente para processamento Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Modelo Broadcast (Baseado em Eventos) Efetivo na integração de subsistemas em diferentes computadores de uma rede Subsistemas registram interesse em eventos específicos A política de controle não está embutida no controlador de mensagens e eventos. Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Modelo Broadcast (Baseado em Eventos) Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Modelo Broadcast (Baseado em Eventos) Vantagens Evolução simples Facilidade de distribuição Desvantagens Subsistemas não sabem se e quando um evento será tratado Possibilidade de conflito Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Modelo Baseado em Interrupções (Baseado em Eventos) Usado em sistemas de tempo real onde a resposta rápida a um evento é essencial Existem tipos conhecidos de interrupção com um tratador (“handler”) definido para cada tipo Cada tipo está associado com uma localidade de memória e um dispositivo de hardware causa a transferência para seu tratador Permite resposta rápida, porém complexo para programar, difícil de validar e de difícil evolução Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho Modelo Baseado em Interrupções (Baseado em Eventos) Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho * * * O projeto e especificação das estruturas globais de um sistema tornaram-se mais importantes que a escolha dos algoritmos ou estruturas de dados. A arquitetura é usualmente descrita informalmente através de texto e diagramas simples (desenhos de caixas e linhas) e como projeto de alto nível do sistema. * O diagrama mostra um hipotético sistema de simulação acústica. Este diagrama trata de questões arquiteturais, porém de maneira informal, sem detalhes sobre o significado dos elementos ou justificativas sobre esta hierarquia. * * * * * * Não existe uma definição padrão de arquitetura. Porém, através da análise de várias definições podemos chegar a um entendimento de seu conceito. * * * * * * * * * * * * * * * * * * * * * * * * * * * * 5 * 6 * 7 * 8 * 9 * 10 * 11 * 12 * 13 * 14 * 15 * 16 * 17 * 18 * 19 * 20 * 21 * 22 * 23 * 24 * 25 * 26
Compartilhar