UFG - Instituto de Informática



Documentos relacionados
Desenvolvimento de Sistemas Orientados a Objetos com UML UP/RUP: Projeto

Histórico da Revisão. Versão Descrição Autor. 1.0 Versão Inicial

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio

ENGENHARIA DE SOFTWARE I

Análise e Projeto Orientados por Objetos

Projeto de Arquitetura

Tópicos em Engenharia de Software (Optativa III) AULA 2. Prof. Andrêza Leite (81 )

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO

Wilson Moraes Góes. Novatec

Projeto de Arquitetura

Faculdades Santa Cruz - Inove. Plano de Aula Base: Livro - Distributed Systems Professor: Jean Louis de Oliveira.

Introdução à Engenharia de Software

Sistemas Distribuídos

Modelos de Arquiteturas. Prof. Andrêza Leite

TI Aplicada. Aula 02 Áreas e Profissionais de TI. Prof. MSc. Edilberto Silva prof.edilberto.silva@gmail.com

Análise e Projeto de Sistemas de Informação. Andrêza Leite andreza.lba@gmail.com

Introdução a Computação

Engenharia de Software

MASTER IN PROJECT MANAGEMENT

Guia de recomendações para implementação de PLM em PME s

Resumo do BABok 2.0 O Guia de Referência de Análise de Negócio Curso de Analista de Negócio 3.0

Projeto de Sistemas I

Qualidade de Processo de Software Normas ISO e 15504

Engenharia de Software I: Análise e Projeto de Software Usando UML

Engenharia de Software I

Fábrica de Software 29/04/2015

Capítulo 2. Processos de Software Pearson Prentice Hall. Todos os direitos reservados. slide 1

Eduardo Bezerra. Editora Campus/Elsevier

Modelos de Sistema by Pearson Education. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 8 Slide 1.

Arquitetura de Sistemas Distribuídos

SISTEMAS DISTRIBUIDOS

Processos Técnicos - Aulas 4 e 5

Sistemas de Informação I

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

UFG - Instituto de Informática

ARCO - Associação Recreativa dos Correios. Sistema para Gerenciamento de Associações Recreativas Plano de Desenvolvimento de Software Versão <1.

Introdução ao Modelos de Duas Camadas Cliente Servidor

Sistemas Distribuídos

Definição de Padrões. Padrões Arquiteturais. Padrões Arquiteturais. Arquiteturas de Referência. Da arquitetura a implementação. Elementos de um Padrão

Um Processo para Desenvolvimento de Aplicações Web Baseado em Serviços. Autores: Fábio Zaupa, Itana Gimenes, Don Cowan, Paulo Alencar e Carlos Lucena

Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios

Agenda da Aula. Resumo dos Padrões (Aula 4) Padrões Arquiteturais. Arquitetura Cliente-Servidor. Arquitetura Cliente-Servidor

Sistemas Distribuídos

Desenvolvimento Cliente-Servidor 1

Engenharia de Software: conceitos e aplicações. Prof. Tiago Eugenio de Melo, MSc tiagodemelo@gmail.com

Semântica para Sharepoint. Busca semântica utilizando ontologias

Introdução ao OpenUP (Open Unified Process)

PRODUTO 1 (CONSTRUÇÃO DE PORTAL WEB)


UFG - Instituto de Informática

Categorias de Padrões

Reduza os riscos. Reduza os custos. Aumente o desempenho.

Tencologia em Análise e Desenvolvimento de Sistemas Disciplina: WEB I Conteúdo: Arquitetura de Software Aula 03

Padrões Arquiteturais e de Integração - Parte 1

Web Services. (Introdução)

Processos de Desenvolvimento de Software

Arquitetura de Redes: Camadas de Protocolos (Parte I) Prof. Eduardo

Arquitetura dos Sistemas de Informação Distribuídos

Resumo: Perguntas a fazer ao elaborar um projeto arquitetural

ENGENHARIA DE SOFTWARE

Aspectos da engenharia de software que influenciam em uma estratégia de GC

Engenharia de Requisitos

Paradigma Cliente/Servidor

Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V

Oficina de Gestão de Portifólio

Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA

Sistemas Operacionais. Conceitos de um Sistema Operacional

Ao introduzir o sistema ERP, o empresário reconhece imediatamente os benefícios e ferramentas que podem

Uma Introdução à Engenharia de Software

Introdução à Computação

Arquitetura de Software

Prototipação de Software

UNIVERSIDADE FEDERAL DE SANTA CATARINA UFSC DEPARTAMENTO DE INFORMÁTICA E ESTATÍSTICA INE BACHARELADO EM CIÊNCIAS DA COMPUTAÇÃO.

MBA Inteligência Competitiva Com ênfase em BI/CPM. Metadados

Referências internas são os artefatos usados para ajudar na elaboração do PT tais como:

Requisitos. Sistemas de Informações

Concepção e Elaboração

Unisant Anna Gestão Empresarial com ERP 2014 Modelagem de Sistemas - UML e MER

Gerenciamento de Requisitos Gerenciamento de Requisitos

Aumente sua velocidade e flexibilidade com a implantação da nuvem gerenciada de software da SAP

Forneça a próxima onda de inovações empresariais com o Open Network Environment

Processos de gerenciamento de projetos em um projeto

BANCO DE DADOS DISTRIBUÍDOS e DATAWAREHOUSING

Projeto Demoiselle. Para perguntas e respostas, utilizem a lista de discussões de usuários da comunidade: demoiselle-users@lists.sourceforge.


5 Estudo de caso: utilizando o sistema para requisição de material

Serviços Web: Introdução

Ciclo de Vida Clássico ou Convencional CICLOS DE VIDA DE DESENVOLVIMENTO DE SISTEMAS. Ciclo de Vida Clássico ou Convencional. Enfoque Incremental

ANEXO X DIAGNÓSTICO GERAL

UFG - Instituto de Informática

Transcrição:

UFG - Instituto de Informática Curso: Sistemas de Informação Arquitetura de Software Prof.: Fabrízzio A A M N Soares professor.fabrizzio@gmail.com Aula 3 Introdução à Arquitetura de Software (continuação)

Visões de Arquitetura Uma arquitetura de software representa um artefato de design complexo. Para a maioria dos artefatos complexos, existem várias maneiras de olhar e compreender uma arquitetura.

Visões de Arquitetura O termo pontos de vista da arquitectura ganhou destaque no papel de Philippe Krutchen de 1995, relativo ao modelo de visão 4 +1. Este apresentou uma maneira de descrever e compreender uma arquitetura baseada em quatro seguintes pontos de vista: Visão Lógica Visão de Processo Visão Física Visão de Desenvolvimento

Visão Lógica Descreve os elementos significativos da arquitetura e as relações entre eles. O ponto de vista lógico, essencialmente, capta a estrutura da aplicação, utilizando diagramas de classe ou equivalentes.

Visão de Processo Isto foca na descrição dos elementos de concorrência e de comunicações de uma arquitetura. Em aplicações de TI, as principais preocupações estão descrevendo componentes multi-threaded ou replicados, e os mecanismos de comunicação síncrona e assíncrona utilizada.

Visão Física Isso mostra como os principais processos e componentes são mapeadas para o hardware aplicações. Ele poderá mostrar, por exemplo, como os servidores de banco de dados e web para um aplicativo são distribuídos por um número de máquinas servidoras.

Visão de Desenvolvimento Isto capta a organização interna dos componentes de software, normalmente como eles são mantidos em um ambiente de desenvolvimento ou uma ferramenta de gerenciamento de configuração. Por exemplo, a representação de um pacote aninhado e hierarquia de classes para uma aplicação Java

Visões e Além Isto recomenda capturar um modelo de arquitetura usando três diferentes visões: Módulo Componente e Conector Alocação

Módulo Esta é uma visão estrutural da arquitetura, incluindo o código de módulos, tais como classes, pacotes e subsistemas no projeto. Ele também capta módulo de decomposição, a herança, associações e agregações.

Componente e Conector Esta visão descreve os aspectos comportamentais da arquitetura. Os componentes são geralmente objetos, threads ou processos, e os conectores descrevem como os componentes interagem. Conectores comuns são tomadas, middleware como CORBA ou memória compartilhada.

Alocação Esta visão mostra como os processos na arquitetura são mapeadas para o hardware, e como eles se comunicam através de redes e ou bancos de dados. Ele também capta uma vista do código fonte dos sistemas de gestão de configuração, e que no grupo de desenvolvimento tem a responsabilidade de cada módulo.

Visões e Além A terminologia utilizada em Visões e Além" é fortemente influenciada pela descrição da comunidade de pesquisa de linguagem arquitetura (ADL).

O que um arquiteto de software faz? O ambiente que um arquiteto de software trabalha em tende a definir exatamente seus papéis e responsabilidades. Uma boa descrição geral do papel do arquiteto é mantido pela SEI em seu web site*. * http://www.sei.cmu.edu/ata/arch_duties.html

O que um arquiteto de software faz? Em vez de resumir isso, vamos descrever brevemente, em nenhuma ordem particular, quatro competências essenciais para um arquiteto de software, independentemente do seu ambiente profissional. Ligação Engenharia de Software Conhecimento de Tecnologia Gerenciamento de Risco

Ligação Estabelece a ligação entre o cliente/consumidor ou equipe de vendas e os times de desenvolvimento.

Engenharia de Software Os arquitetos devem promover boas práticas de engenharia de software. Seus projetos devem ser devidamente documentadas e comunicadas, e seus planos devem ser explícitas e justifica

Conhecimento de Tecnologia Arquitetos devem ter um profundo conhecimento de tecnologias. Deve ter conhecimento para avaliar e escolher componentes e tecnologias de terceiros.

Gerenciamento de Riscos Bons arquitetos devem ser cautelosos. Eles constantemente enumeram e avaliam os riscos associados com o desenho e as tecnologias escolhidas.

Arquiteturas e Tecnologias Os arquitetos devem tomar decisões de projeto no início de um ciclo de vida do projeto. Muitos destas decisões são difíceis, se não impossíveis, para validar e testar até que partes do sistema são realmente construídas. Prototipagem judiciosa das principais componentes da arquitetura podem ajudar a aumentar a confiança em uma abordagem de design, mas às vezes ainda é difícil ter certeza do sucesso de uma opção de design especial em um contexto determinado aplicativo.

Arquiteturas e Tecnologias Devido à dificuldade de validar as decisões iniciais do projeto, arquitetos de forma sensata experimentam abordagens testadas para resolver certas classes de problemas. Este é uma das grandes vantagens de padrões arquitetônicos. Permite aos arquitetos reduzir os riscos através de projetos bem sucedidos com atributos de engenharia conhecidos.

Arquiteturas e Tecnologias Os padrões são uma representação abstrata de uma arquitetura, no sentido de que pode ser realizado em múltiplas formas concretas.

Exemplo O padrão de arquitetura Publish-Subscribe descreve um mecanismo abstrato para baixo acoplamento. A comunicação de muitos para muitos entre os Publicadores de mensagens e Assinantes que desejam receber as mensagens. No entanto, não especifica como publicações e assinaturas são geridos, quais os protocolos de comunicação são utilizados, quais os tipos de mensagens podem ser enviadas, e assim por diante. Estes são considerados todos os detalhes de implementação.

Padrões e tecnologias Infelizmente, descrições abstratas de arquiteturas não executam ainda em computadores, quer diretamente, quer através da transformação rigorosa. Até que eles fazem, arquiteturas abstratas devem ser reificadas pelos engenheiros de software como implementações concretas de software.

Padrões e Tecnologias Felizmente, os vendedores de produtos de software têm vindo para o resgate. Padrões de arquitetura amplamente utilizados são suportados em uma variedade de tecnologias comerciais de prateleira (COTS).

Padrões e Tecnologias Se um projeto exige publicação/assinatura de mensagens (Publisher-Subscriber), ou um corretor de mensagens (Message Broker), ou uma arquitetura de três camadas, em seguida, as escolhas das tecnologias disponíveis são muitas e variadas. Este é um exemplo de tecnologias de software que fornece o software reutilizável, independente da aplicação das infra-estruturas que implementam abordagens comprovadas de arquitetura.

Padrões e Tecnologias

Padrões e Tecnologias Dentro de cada classe há produtos concorrentes comerciais e open source. Embora esses produtos sejam superficialmente similares, terão diferentes conjuntos de recursos, seja implementada de forma diferente e têm diversas limitações à sua utilização.

Padrões e Tecnologias Arquitetos são um pouco simultaneamente abençoada e amaldiçoada com essa diversidade de escolha de produtos. A concorrência entre os fornecedores de produtos guia a inovação de drives, melhores funcionalidades e implementações, e preços mais baixos. Porém, coloca um fardo sobre o arquiteto para selecionar um produto que tem os atributos de qualidade que satisfaçam os requisitos da aplicação.

Padrões e Tecnologias Todas as aplicações são diferentes em alguns aspectos, e há raramente, ou nunca, há um produto que se encaixa em tudo. Diferentes implementações COTS tem diferentes conjuntos de pontos fortes e fracos e os custos e, consequentemente, ser mais adequada para alguns tipos de aplicações do que outras.

Padrões e Tecnologias A dificuldade para arquitetos está na compreensão destes pontos fortes e fracos no início do ciclo de desenvolvimento de um projeto, e escolher uma reificação adequada dos padrões arquitetônicos que precisam. Infelizmente, esta não é uma tarefa fácil, e os riscos e custos associados à seleção de uma tecnologia inadequada são elevados. A história da indústria de software está cheia de más escolhas e subseqüentes projetos fracassados.

Resumindo The life of a software architect is a long (and sometimes painful) succession of sub-optimal decisions made partly in the dark [Philippe Krutchen] A vida de um arquiteto de software é uma grande sucessão (e por vezes dolorosa) de decisões sub-ótimas feitas parcialmente no escuro