Arquitetura de Sistemas Envolve os seguintes aspectos

Slides:



Advertisements
Apresentações semelhantes
Engenharia de Software
Advertisements

Engenharia de Software
UML Visões – Parte 2.
(Unified Modeling Language)
Projeto conceitual Mostra ao cliente exatamente o que o sistema fará
Projeto 1.
Engenharia de Software
Centrado na arquitetura
Metodologias Equipe do Curso de ES para SMA
Um Processo Baseado em MDA para a Especialização de Mecanismos de Persistência Fabio Seixas Marques Seminário LES – 7 de abril de.
Component-Based Frameworks for E-Commerce Agnaldo Kiyoshi Noda.
Os Sistemas Multi-agente Viviane Torres da Silva
SISTEMA É UMA ENTIDADE QUE MANTEM SUA EXISTÊNCIA ATRAVÉS DA INTERAÇÃO DE SUAS PARTES ( Bertalanffy ) Interação Mútua Diferente duma simples.
Professora: Aline Vasconcelos
Introdução Visão Geral do Método.
Aspectos Avançados em Engenharia de Software Aula 3 Fernanda Campos
RUP: Fluxo de Análise e Projeto
Princípios e Conceitos de Software(v2)
Principios e Conceitos de Projeto
Classes e objetos Modelagem
DIAGRAMA DE COMPONENTES
Engenharia de Software e Sistemas de Informação e Gestão
Middleware e Sistemas Distribuídos
Arquitetura Orientado a Serviços
Fundamentos de Engenharia de SW
Gerenciamento de Configuração
Arquitetura de software
REQUIREMENTS DEVELOPMENT DESENVOLVIMENTO DE REQUISITOS
Projeto de Banco de Dados
ANÁLISE E DESENVOLVIMENTO
Programação Orientada à Objetos
O Processo de desenvolvimento de software
O Processo Unificado (UP)
Tecgraf PUC-Rio Setembro de 2013 Introdução ao Openbus.
Representação Arquitetural
Padrão- MVC Model, View, Controller
O que é? É o processo de investigação técnica com intuito de identificar a qualidade, a segurança e a exatidão do software desenvolvido. A validação do.
Campus de Caraguatatuba Aula 2: Introdução a Tecnologia de BD
RUP - Cap. 4 – Processo Centrado na Arquitetura
Laboratório de Programação
Padrões de Interação com o Usuário
Análise e Projeto de Sistemas
Desenvolvimento de Software Dirigido a Modelos
Linguagem de Modelagem Unificada
Tarciane Andrade Análise de Casos de Uso Tarciane Andrade
© 2007 by Pearson Education ©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 18 Slide 1 Reuso de Software.
Modelo de Análise e Projeto
Modelagem Orientada a Objetos Use-Case Modeling. Objetivos básicos de um modelo use-case n Descrever o que um novo sistema deve fazer n Descrever o que.
Sistemas Propriedades de Sistemas SITP – Módulo 3.
Padrões de projeto M.Sc. Sílvio Bacalá Jr..
Objetos Distribuídos Frameworks Orientados a Objetos.
Abstrações de um Sistema Utiliza um conjunto selecionado de conceitos e regras de forma a focar em aspectos específicos de interesse num sistema. Visão.
Desenvolvimento Global de Software
Arquitetura de Software Projetos de Interface
Profa. Reane Franco Goulart. É uma representação de engenharia de algo que vai ser construído. Para a engenharia de software o projeto foca em quatro.
Projeto Supervisionado no Desenvolvimento de Aplicações Profissionais na Web Servidores.
UML (Unified Modeling Language) Linguagem Unificada de Modelagem
UML (Unified Modeling Language) Linguagem Unificada de Modelagem
PADROES DE PROJETO PROF. OSIEL MARLON. PADRÕES DE PROJETO INTRODUÇÃO Padrões de projeto têm emergido como uma das mais promissoras abordagens para a melhoria.
APSI II Análise e Projeto de Sistemas de Banco de Dados II.
Versão 1 - julho/2013 Tecgraf PUC-Rio Novembro de 2013 Introdução ao OpenBus.
IF 718 Análise e Projeto de Sistemas Augusto Sampaio Vitor Braga (Estágio docência) Camila Sá (Monitora) Parte do material cedido pela Qualiti Software.
Interações entre objetos
Banco de Dados Distribuídos Sílvia Cristina de Matos Soares
Projeto de Arquitetura de Software
1 Especificação de Sistemas de Software e a UML. 2 Modelagem de sistema A modelagem de sistema auxilia o analista a entender a funcionalidade do sistema.
Delegação  É uma maneira de tornar a composição tão poderosa para fins de reutilização como a herança. Na delegação, dois objetos são envolvidos no tratamento.
Aplicativos para Web MVC Prof. Odair Indena Jr.
O Processo Unificado (PU). 2 O que é o Processo Unificado (PU)? É um modelo de processo de software baseado no modelo incremental, visando a construção.
Modelagem de Banco de Dados: Conceitos
Transcrição da apresentação:

Arquitetura de Sistemas Envolve os seguintes aspectos Composição / Decomposição do Sistema ( Subsistemas / Módulos ) Componentes e a Interação entre eles Níveis / Camadas e a Interação entre eles ( Ordem / Estrutura ) Organização das partes físicas do software a serem implementadas Restrições do software ( naturais ou auto-impostas ) Descrição geral do software Estrutura Estática / Dinâmica de um Sistema Estilo que orienta o desenvolvimento e a evolução do software Funcionalidade do software Outras considerações : reuso, desempenho, escalabilidade

Arquitetura de um Sistema Definição: Representa a estrutura estática e comportamental de um sistema, compreendendo os serviços do sistema, realizados pelos componentes de software, que rodam nos processadores disponíveis Está associada a detalhes internos do software na medida que esses detalhes manifestam-se externamente Não pode ser representada por um simples diagrama: é multifacetada

Arquitetura de um Sistema Está associada a: Uso Funcionalidade Desempenho Resiliência Reuso Compreendibilidade Economia Restrições e compromissos tecnológicos Estética

Todo sistema já criado tem sua Arquitetura Ela existe independente do seu conhecimento pelo projetista de sistemas

O Por Quê da Arquitetura Uma abordagem adhoc leva a sistemas difíceis de mudar ou adaptar Decomposição de sistemas em partes menores torna o software mais fácil de entender, administrar, desenvolver, manter Auxilia no desenvolvimento baseado em componentes Auxilia desde o início na administração do desempenho Leva a um reuso melhor Influencia a segurança, a testabilidade, a manutenbilidade e a administração do sistema

Conceitos Básicos da Arquitetura duma Aplicação Corporativa Decomposição Componentes Frameworks Patterns ( Padrões ) Nívelamento Camadas ( Tiers )

Decomposição Particionamento do sistema em partes menores, lógicas Que tornam fácil a administração de sua complexidade Auxilia a definição e descrição das interfaces entre as diferentes partes do sistema, de forma a facilitar a sua iteração Facilita a distribuição do software através de múltiplos processadores Provê uma partição natural das tarefas de desenvolvimento e facilita a distribuição das tarefas em equipes grandes

Decomposição com a UML Pacotes Subsistemas Módulos

Componentes Unidade coesa de software que provê um conjunto relacionado de serviços e funções Útil somente no contexto de um modelo padrão ( CORBA, EJB, DCOM ) Infraestrutura básica para composição e interação do componente Tem uma interface ( contrato entre o componente e a aplicação ) bem definida que permite a sua interação com outros componentes Debaixo de um mesmo modelo padrão e com a mesma interface podem ser substituídos Podem conter outros componentes

Por que usar componentes Em relação ao software tradicional são mais fáceis de manter e modificar Tem o potencial de melhorar a produtividade com o reuso e componentes pré-fabricados Desenvolvimento de aplicações mais flexíveis Podem ser comprados e vendidos na medida que existir um mercado consolidado nesta área Facilitam a partição mais natural do software em unidades coesas

Granulação dos Componentes Componentes de alta granularidade / Subsistemas de alto nível Devem ter poucas dependências, bem definidas Disponibilizam capacidade de negócios discretas e complexas Ex.: Módulo de Controle de Estoques Componentes de baixa granularidade Comparável com objetos tradicionais Tem maior número de dependências Ex.: Java Beans

Componentes em UML Com suas interfaces Com seu comportamento Interno Diagrama de Atividades Diagrama de Estado Componente como um: subsistema módulo executável

Framework Qualquer porção pré-definida de software desenvolvido e testado para ser reusado em vários projetos de desenvolvimento de aplicações num domínio específico Tipo de micro arquitetura, abrangendo um conjunto de padrões que trabalham em conjunto para resolver um problema básico, num domínio comum Permite a especificação, agrupamento e reuso de elementos para se construir efetivamente algum sistema

Framework na UML Estereotipo de Pacote Contendo Colaborações Diagramas

Framework – Modo de Utilização Biblioteca Conjunto de componentes reusáveis Gabarito Base para novas aplicações Desenvolvimento de um Framework ser simples de se entender prover documentação adequada Identificar mecanismos concretos de sua própria extensão

Padrões ( Patterns ) Solução em um determinado contexto, que foi obtida através de experiência e se mostrou eficaz para resolver um problema básico nessa área. Utilidade Capta conhecimento comprovado obtido através de anos de experiência Ajuda na solução de problemas complexos encontrados em situações similares Favorece a comunicação na equipe, provendo contexto básico para discussões

Exemplo Padrão MVC ( Design ) Como separar os objetos de entidade da aplicação ( Model ) da maneira como estes são apresentados para o usuário ( View ) e de como o usuário faz o controle sobre os mesmos ( Controller )

Model Sabe tudo sobre: Os dados persistentes que deverão ser mostrados As operações que serão aplicadas para transformar os objetos Sabe nada sobre: As interfaces do usuário Como os dados serão mostrados As ações das interfaces usadas para manipular os dados Representa os dados da aplicação e as regras de negócio que governam o acesso e a atualização desses dados

View Refere-se ao objeto Model Dispara as operações de consulta do Model para obter os dados e visualizá-los Define como os dados serão visualizados pelo usuário Mantém consistência na apresentação dos dados quando o Model muda

Controller Sincroniza as ações do View com as ações realizadas pelo Model Trabalha somente com sinais e não com os dados da aplicação Sabe os meios físicos pelos quais os usuários manipulam os dados no Model

Vantagens da utilização do padrão MVC Múltiplos Views utilizando um mesmo Model Suporte fácil para novos tipos de usuário do sistema Projeto mais bem definido e modular Facilidade de ampliação do sistema Utilização em sistemas distribuídos

Dinâmica do sistema em UML

+ - Classes Gerais de Padrões Referência Análise ( Negócios ) Arquitetônicos Projeto ( Design ) De Código + Nível de Abstração -

Pattern Arquiteturas de Referência Uma arquitetura geral e abstrata que pode ser instanciada para situações específicas: Completada, detalhada Parametrizada, adaptada Extendida, selecionada Relacionada à um certo tipo de organização Telecomunicações Governo Bancos Técnica SOA MDA

Repositório - Fowler Padrões de Análise Exemplo: Hierarquia de uma Organização Modelos do domínio de sistemas ( contas ) em contextos específicos ( finanças )

Padrões Arquitetônicos Trata da estrutura dos sistemas , seus componentes, ambientes de processamento e como eles se relacionam entre si Exemplo: E-Business Patterns ( IBM )

Padrão de Aplicação Directly Integrated Single Chanel para o Padrão de Negócios Self-Service

Pattern Runtime para o Pattern de Aplicação Direct Integrated Single Chanel

Mapeamento de produtos Windows 2000 para o Pattern de Aplicação Direct Integrated Single Chanel

De Criação: soluções para configuração e inicialização do design Catálogo Java Patterns - Sun Padrões de Design Usados a nível de classes e objetos Tipos: De Criação: soluções para configuração e inicialização do design Estrutural: estrutura de modo específico as interfaces e as relações das respectivas classes Comportamental: identifica caminhos nos quais um grupo de classes interage com os demais, para alcançar um certo comportamento

Pattern de Criação Pattern Singleton Exemplo Pattern Singleton Garante que uma classe tenha somente uma instância e provê um ponto global de acesso a ela

Pattern Estrutural Pattern Proxy Exemplo Pattern Proxy O objeto Proxy provê um mecanismo indireto de acesso a outro objeto ( RealSubject ). Os dois objetos trabalham integrados através de uma mesma interface ( Subject ). Vantagem: acesso mais fácil ao sistema ( através de Proxy ) quando existem restrições ( por exemplo de segurança )

Pattern Comportamental Exemplo: Pattern Subject-Observer Uma pessoa ( Observer ) tem interesse em certo produto ( Subject ). Ela se registra esse interesse no sistema do fabricante, visando receber atualizações ( update ) sobre o produto. Quando o produto é atualizado os Observer recebem notificações da mudança. Os Observer individualmente podem consultar o Subject específico para saber detalhes. Especificação Comportamental

Patterns: Representação em UML Uso de Colaboração: conjunto de objetos e seus vínculos, que interagem num certo contexto, para implementar certa estrutura ( Diagrama de Classes ) ou comportamento ( Diagrama de Interação ou Estados )

Pattern Subject-Observer Especificação Estrutural

Nívelamento ( Camadas ) Pattern para decomposição Tratar complexidade Partição lógica de sistemas ( subsistemas, módulos ) Abstrai tipos específicos de funcionalidades ( camadas funcionais ) Provê limites conceituais ( entre conjuntos de serviço ) Agrupa, separa, restringe o uso de itens do sistema

Por Responsabilidades Camadas Tipos de Nivelamento Por Responsabilidades Camadas Distribuição do sistema em diversos processos colocados em múltiplos processadores ou num único Ex.: Arquitetura Cliente-Servidor Por Reuso Desenvolvimento do sistema de forma que os diversos níveis prestam serviços aos outros níveis Ex.: Nível de fornecimento de informações ao usuário ( Apresentação ) Nível de serviços gerais: log, tratamento de erros

Camadas ( tiers ) da Plataforma J2EE Componentes Serviços

Características Básicas Cada camada provê serviços para as outras camadas Existe baixo acoplamento entre as camadas O relacionamento entre as camadas é hierárquico por natureza Cada camada pode contar com a camada logo abaixo, não ao contrário Não deve existir dependência entre camadas que não sejam vizinhas Camadas podem ter suas sub-camadas Normalmente as camadas Mais baixas: são mais fortemente ligadas ao hardware e ao sistema operacional ( serviços básicos ) Intermediárias: são a base para se construir diversos sistemas com capacidade similar ( serviços gerais ) Superiores: voltadas para as peculariedades do usuário

Nivelamento em UML Arquitetura Nivelada

Arquitetura J2EE multi-camadas Cliente: interação do usuário Apresentação: resultados das consultas de negócios Negócios: principais regras de negócios Dados: interface com o armazenamento dos dados persistentes Arquitetura J2EE multi-camadas

Arquitetura do sistema Análise do sistema Colocando tudo Junto O que vem primeiro ? Arquitetura do sistema Análise do sistema Processo Interativo Ao requisitos são entradas importantes para se definir a arquitetura Na medida que se trabalha na arquitetura vê-se a necessidade de se ajustar ou clarear os requisitos Definir a Arquitetura é muito mais um processo evolutivo Ela toma forma na medida que as decisões são tomadas considerando-se os requisitos específicos e os compromissos do sistema