Padrões Arquiteturais

Documentos relacionados
ARQUITETURA DE SOFTWARE 1

Relembrando... Arquitetura de software. Projeto arquitetural

Arquitetura de Software

Agenda da Aula. Arquitetura de Software e Padrões Arquiteturais. Elementos de um Padrão. Arquitetura de Software. Arquitetura de Software

Arquitetura de Software

Estilos Arquiteturais. Prof. Fellipe Aleixo

ARCHITECTURAL DESIGN. Ian Sommerville, 8º edição Capítulo 11 Aula de Luiz Eduardo Guarino de Vasconcelos

Engenharia de Software. Projeto de Arquitetura

Análise e Projeto de Software

Padrões. Arquitetura de Software Thaís Batista

Padrões contexto problema solução

Universidade Federal de Goiás Estilos Arquiteturais

Arquitetura de Software: Introdução

Arquitetura de Software visão emergente

Estilos Arquiteturais. Prof. Fellipe Aleixo

Estilos Arquiteturais

Projeto de Arquitetura

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

Capítulo 6 Design da Arquitectura

UFG - Instituto de Informática

Princípios de Engenharia de Software. Aula 6 Projeto de Software

3 Arquitetura para a Coordenação e a Composição de Artefatos de Software

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

Prof. Fábio Lúcio Meira

Arquitetura de Software Parte 1/3 Introdução* Jorge H. C. Fernandes Junho de 1999

Aula 1: Apresentação. Revisão para Prova 1. Aula 2: Motivação. O que é software? Eng. de Software em Camadas. O que é Engenharia de Software?

Arquitetura de software

Engenharia de Domínio e Desenvolvimento Baseado em Componentes. Processo DBC-Arch-DE Apoio do Ambiente Odyssey no Processo Considerações Finais

Arquitectura de Sistemas de Software

PROTÓTIPO DE UM SISTEMA DE IMPORTAÇÃO PARA UMA AGÊNCIA DE TRANSPORTES INTERNACIONAIS

Arquitetura de Software: Introdução

15/09/2014. Aula 01: Apresentação. Review to 1 st Exam. Aula 02: Técnicas de Reuso. Panorama de Reuso. Aula 03: POO e Padrões. Bibliografia da Aula 02

Padrões de Projeto de Software

Arquitetura de Software Parte 2/3-Estilos Arquiteturais. Jorge H. C. Fernandes Junho de 1999

Capítulo 6. Projeto de arquitetura Pearson Pren0ce Hall. Todos os direitos reservados. 1. slide 1

Desenho e documentação de arquitectura de software e de aplicações empresariais

Padrões de Interação com o Usuário

Arquitetura de Sistemas

Análise e Projeto. Padrões de Análise, Arquitetura e Projeto

Modelos de design arquitetural

Renato Figueiró Maia. Um Framework para Sistemas Baseados em Componentes Distribuídos. Informática DEPARTAMENTO DE INFORMÁTICA

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

Projeto de Arquitetura

Estilo: BlackBoard. BlackBoard = repositório de dados compartilhados

CLÁUDIO ROSSE PANDOLFI SUPORTE DE INTERESSES TRANSVERSAIS PARA FRAMEWORK CODEIGNITER

Aula 01: Apresentação. Revisão para Prova 1. Aula 02: Técnicas de Reuso. Panorama de Reuso. Aula 03: POO e Padrões. Bibliografia da Aula 02

Desenvolva passo a passo um Sistema Web seguro com C# e Web Services!

Layer N. Object. Object. Layer N-1 Response flow. Object Request flow. Method call. Object. Layer 2. Object. Layer 1

Desenho de Software. Sumário

Objetivo do Curso. Modelagem/Arquitetura de Software. Enfoque do Curso. Conteúdo do Curso

2 Metodologias para Projetos de Aplicações Hipermidia

Formação ASP.NET MVC com C#

Arquitetura de Software: Introdução. Prof. Fellipe Aleixo

Tópicos Avançados em Linguagem de Programação. Padrões de Software. Prof. Alexandre Vidal DEINF-UFMA. Ciência da Computação

Exemplos de Estilos Arquiteturais. Estilos Arquiteturais. Estilos Arquiteturais. Estilo: Pipe e Filtros

Módulo II Arquitetura em Camadas

Engenharia de Software

Soluções reutilizáveis para situações ou problemas encontrados comumente em desenvolvimento de software orientado a objetos.

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

Arquitetura em Camadas

Scientific data repositories: the USP experience

Atividades de Projeto. Arquitetura de Software. Arquitetura. Projeto da Arquitetura de Software. O que é arquitetura de Software?

Arquitetura de Software

Roni Fabio Banaszewski UTFPR Universidade Tecnológica Federal do Paraná

Arquitectura de Sistemas de Software

Modelagem/Arquitetura de Software

ARQUITETURA DE SOFTWARE III

Felipe de Andrade Batista. Microservice Architecture: A Lightweight Solution for Large Systems in the Future

Academia Programador Web

UML (Unified Modelling Language)

Definindo um padrão para arquitetura Web

Arquitetura de Software

ach 2147 desenvolvimento de sistemas de informação distribuídos

UERJ Oscar Luiz Monteiro de Farias 1. Bancos de Dados. Mestrado em Engenharia de Computação área de concentração Geomática

UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA. Sistemas Distribuídos

SERVIÇO PÚBLICO FEDERAL UNIVERSIDADE FEDERAL DE SANTA CATARINA CENTRO DE CIÊNCIAS DA SAÚDE PROGRAMA DE MESTRADO PROFISSIONAL EM INFORMÁTICA EM SAÚDE

ORIENTAÇÕES PARA SEMINÁRIOS TEMÁTICOS E TRABALHO FINAL TEMAS PROPOSTOS

Academia Programador Web

Ferramentas CASE. CASE fornece ao engenheiro de software a habilidade de automatizar atividades manuais e de aperfeiçoar o conhecimento de engenharia.

Análise e modelação de sistemas. Classe T13: Passando da análise ao Desenho

Introdução aos Sistemas Distribuídos

Ambientes de Desenvolvimento Avançados

DERYK SEDLAK RIBEIRO UM ESTUDO DAS ARQUITETURAS DE MIDDLEWARE ABORDADAS EM SISTEMAS DE COMÉRCIO ELETRÔNICO

Frameworks. Viviane Torres da Silva

Arquitetura de Software. Fatec ES III - Prof. Dinis 1

Gustavo Robichez de Carvalho

Analista de Sistemas S. J. Rio Preto

Ambiente Educacional Interativo Móvel para atividade em sala de aula 1

ALM Aplicações em Linguagem de Montagem. Introdução. A produção de Software é uma atividade build and fix. build. fix

Módulo I Princípios e Padrões de Projeto de SW em Java

Programming in C# Conteúdo Programático. Área de formação Plataforma e Tecnologias de Informação

Análise de Requisitos

GT-FENDE. Carlos Raniery P. dos Santos Universidade Federal de Santa Maria

Introdução. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos

Desenvolvimento de Aplicações Distribuídas

5 Processo de Reificação e de Desenvolvimento com ACCA

Qualidade Contínua de Software

Introdução. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos

Frameworks. SSC-526 Análise e Projeto Orientados a Objeto Profa. Dra. Elisa Yumi Nakagawa 2º semestre de 2013

Transcrição:

Padrões Arquiteturais

Agenda Conceitos Padrões arquiteturais Formato de um padrão arquitetural Exemplos

Conceitos Arquitetura de software descrição de subsistemas e componentes de um sistema de software e dos relacionamentos entre eles. Projeto arquitetural processo de construção de uma arquitetura de software explícita ligação entre os processos de especificação e de projeto detalhado de software

Vantagens de uma arquitetura explícita Comunicação entre stakeholders A arquitetura pode ser utilizada como o foco de discussão entre os interessados Reutilização em larga escala A arquitetura pode ser reutilizada em uma variedade de sistemas Análise do sistema A arquitetura pode ser utilizada para análise preliminar sobre a possibilidade do sistema atender seus requisitos não-funcionais

Atributos de arquitetura Performance Localizar operações de modo a minimizar a comunicação entre subsistemas Segurança Utilizar uma arquitetura em camadas com recursos críticos localizados em camadas internas Disponibilidade Incluir componentes redundantes na arquitetura Manutenção Utilizar componentes especializados e auto-contidos

Projeto arquitetural Principais atividades Decomposição do sistema de software em subsistemas e componentes Identificação das interações e comunicação entre eles Modelagem arquitetural

Projeto arquitetural Problemas O projeto de arquiteturas de software específicas (ainda) é baseado em intuição e experiência Métodos pouco ajudam! Documentação (arquitetura e decisões) Modelagem arquitetural

Arquitetura de uma ferramenta CASE Editor de projeto Gerador de código Tradutor de projeto Repositório de projeto Editor de programa Analisador de projeto Gerador de relatório

Sistema de controle robotizado de embalagem Sistema de Visão Sistema de identificação de objetos Controlador de braço Controlador de garra Sistema de seleção de embalagem Sistema de embalagem Controlador de transportadora

Cliente-servidor Cliente 1 Cliente 2 Cliente 3 Cliente 4 Rede de banda larga Servidor de catálogo Servidor de vídeo Servidor de fotografias Servidor de hipertexto catálogo Arquivos de clipes de filmes Fotografias digitalizadas Web de hipertexto

Arquitetura baseada em eventos Subsistema 1 Subsistema 2 Subsistema 3 Subsistema 4 Manipulador de eventos e mensagens

Questões Como escolher subsistemas e componentes? Quais as suas propriedades? E responsabilidades? Como componentes interagem? Como incorporar e explicitar propriedades nãofuncionais? Como descrever uma arquitetura?

Estilos arquiteturais Shaw and Garlan, 1996 Independent Components Communicating Processes Event-Driven Data Flow Batch Pipes & Filters Data-Centric Repository Blackboard Call & Return Layered systems Object Oriented Main Program & Subroutine Virtual Machine Interpreter Rule-Based

Layered systems [Shaw&Garlan94]

Estilos

Padrões arquiteturais Buschman, 1996 Padrões arquiteturais expressam esquemas fundamentais para a organização estrutural de sistemas de software Padrões arquiteturais oferecem um conjunto prédefinido de subsistemas, especificam suas responsabilidades e incluem regras e orientações (guidelines) para organizar os relacionamentos entre eles.

Padrões Projetistas e arquitetos experientes procuram aderir a princípios e promover boas práticas de design. usam padrões para documentar e reutilizar experiência comprovadamente boa em novos projetos (de software) Abordagem orientada a problemas

O que é um padrão? Um padrão é uma regra envolvendo 3 partes, que expressa uma relação entre um certo contexto, um problema e uma solução. Contexto uma situação que dá margem a um problema Problema o problema recorrente que surge em tal contexto Solução uma solução comprovada para o problema.

Contexto Exemplos "your environment is a distributed and possibly heterogeneous system with independent cooperating components". "interactive applications with a flexible humancomputer interface". "building systems that support their own modification a priori".

Problema Exemplos... From a developer"s viewpoint, there should essentially be no difference between developing software for centralized systems and developing for distributed ones... User interfaces are especially prone to change requests. When you extend the functionality of an application, you must modify menus to access these new functions... Software systems evolve over time. They must be open to modifications in response to changing technology and requirements...

Solução Exemplos Introduce a broker component to achieve better decoupling of clients and servers... Use the Model-View-Controller (MVC). MVC was first introduced in the Smalltalk-80 programming environment. MVC divides an interactive application into the three areas: processing, output, and input... Make the software self-aware, and make selected aspects of its structure and behavior accessible for adaptation and change. This leads to an architecture that is split into two major parts: a meta level and a base level...

Forças As an element in the world, each pattern is a relationship between a certain context, a certain system of forces which occurs repeatedly in that context, and a certain spatial configuration which allows these forces to resolve themselves. Forças? O termo força denota qualquer aspecto do problema que deve ser considerado ao propor a solução.

Forças Exemplos Requisitos que a solução deve atender peer-to-peer inter-process communication must be efficient Restrições a serem consideradas inter-process communication must follow protocol XPTO Propriedades desejáveis changing software should be easy

Forças MVC O padrão Model-View-Controller especifica duas forças: Deve ser fácil modificar a interface do usuário, mas... O núcleo funcional do software não deve ser afetada por essa modificação.

Forças Forças discutem o problema a partir de diversos pontos-de-vista e ajudam a compreensão de detalhes Forças podem complementar ou contradizer umas às outras. Extensibilidade de um sistema versus minimização de seu código

Padrões arquiteturais Buschman, 1996 From Mud to Structure Layers Pipes & Filters Blackborad Categorias Distributed Systems Broker Interactive Systems MVC PAC Adaptable Systems Microkernel Reflection

Categorias de Padrões do livro POSA Justificativa Organizar padrões em função da principal propriedade sistêmica global que incorporam Categorias From Mud to Structure padrões que ajudam a evitar um mar' de componentes. Distributed systems suporte à estruturação de sistemas com componentes distribuídos Interactive systems facilidade de adaptação de interface do usuário Adaptable systems suporte à extensão de aplicações e sua adaptação à tecnologia em evolução e à mudança em requisitos não funcionais