Arquitectura de Sistemas de Software

Documentos relacionados
Arquitectura de Sistemas de Software Mestrado em Engenharia Informática Licenciatura em Engenharia Informática e Computação

Arquitectura de Sistemas de Software

Arquitectura de Sistemas de Software

Arquitectura de Sistemas de Software

Arquitectura de Sistemas de Software Mestrado em Engenharia Informática Licenciatura em Engenharia Informática e Computação

Arquitectura de Sistemas de Software

Mas o que é mesmo Padrão de Projeto?

" ##$#$!% # & #$#$ !!!!"!

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

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

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

Universidade Federal de Uberlândia Faculdade de Computação Prof. Fabiano Dorça. Introdução. Padrões de projeto

Padrões contexto problema solução

Padrões de Projeto. Padrões de Projeto. Além dos 23 Padrões GoF. Os 23 Padrões de Projeto. Documentação de um Padrão. Classificação dos Padrões

Padrões de Projeto de Software

Prof.ª Esp. Talita Pagani

Padrões de Projeto de Software

INF011 Padrões de Projeto Introdução

Padrões de Projeto de Software Orientado a Objetos

Arquitectura de Sistemas de Software

Padrões de Design Orientado a Objetos Design Patterns. Jorge H. C. Fernandes DI-UFPE, Junho de 1999

Tópico 8: Arquitetura, Padrões, Frameworks e MDA

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

Padrões de Projeto. Parte 1. Prof. Fellipe Aleixo

Engenharia de Software

Padrões de Projeto. Prof. Jefersson Alex dos Santos

Tecnologias Atuais de. Desenvolvimento de Software

Laboratório de Desenvolvimento de Software

Arquitetura de Software visão emergente

Análise e Projeto Orientados por Objetos

Análise e Projeto Orientados por Objetos

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

Design Patterns. Viviane Torres da Silva

Curso - Padrões de Projeto Módulo 1: Introdução

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

Tópicos da Aula. POO e Padrões de Projetos. Considere três classes... Reuso de Classes. Locadora de DVD. Sistema Acadêmico

b) Adapter, Bridge e Composite. c) Builder, Prototype e Singleton. d) Façade, Command e Decorator. e) Factory Method, Interpreter e Template Method.

Programação Orientada a Objetos. Padrões de Criação

Padrões GoF. Leonardo Gresta Paulino Murta

Módulo III Padrões GOF

DIVISÃO DE ASSUNTOS ACADÊMICOS Secretaria Geral de Cursos PROGRAMA DE DISCIPLINA

Design Pattern Implementation in Java and AspectJ

Princípios de Engenharia de Software Resumo 8 Semana 8 Versão: 1.0 Data: 05/10/04

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

English version at the end of this document

Análise e Projeto Orientados por Objetos

Programação Avançada. Padrões de Projeto de Software. Fonte: Oswaldo B. Peres e K19 Treinamentos

Projeto de software Estrutura do software e arquitetura SWEBOK

Programação com Objectos. Programação Centrada em Objectos. Home Page. Ano Lectivo 2008/2009 1º Semestre. Objectivos Programa Bibliografia Avaliação

1Introdução Helder da Rocha

English version at the end of this document

Testes com Design Patterns

Padrões de Projeto de Software Orientado a Objetos

Rossana Andrade Departamento de Computação Universidade Federal do Ceará. O que é? Como?

Sumário. Prefácio 12. Capítulo 1 - Técnicas Simples Para um Código Limpo 23

J930. Padrões. Projeto. Introdução. argonavis.com.br. Helder da Rocha

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

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

Análise e Projeto Orientados por Objetos

Tópicos Especiais em Informática Fatec Indaiatuba

Programação Orientada a Objetos. Padrões Estruturais

Design Patterns. Viviane Torres da Silva

Padrões Comportamentais. Padrões de Projeto Comportamentais. Motivação. Chain of Responsibility (CoR) Padrão Chain of Responsibility

Prof. Dr. Dilermando Piva Jr. Fatec Indaiatuba

O USO DOS PADRÕES DE PROJETO GOF NA ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

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

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

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

Abstract Factory Builder Factory Method Prototype Singleton Adapter Bridge Composite Decorator Facade Flyweight Proxy

Arquitectura de Sistemas de Software

Padrões de Software (Software Patterns)

Exemplos em Go e Python ALÉM DOS PARADIGMAS. Entenda as características da linguagem e saiba escolher e adaptar padrões de projeto

Definindo um padrão para arquitetura Web

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

Modelagem/Arquitetura de Software

INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS

Padrões de Projeto de Software

Análise e Projeto Orientados por Objetos

Academia Programador de Aplicações JAVA

Fábio Amado João Maio 33306

Design Patterns na Geração de Código

Introdução aos Padrões de Projeto. Sylvio Barbon Jr

Programação com Objectos

PROJETO DE ARQUITETURA

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

Visões Arquiteturais. Arquitetura de Software Thaís Batista

Análise e Projeto Orientados por Objetos

Introdução ao Catalysis

Padrões de Software (Software Patterns)

UNIVERSIDADE DO SUL DE SANTA CATARINA RÔMULO VIEIRA DA SILVA EXEMPLO DE APLICAÇÃO DOS PADRÕES DE PROJETO GOF PARA A ESPECIFICAÇÃO DE SIGAD

UFG - Instituto de Informática

Análise e Projeto Orientados por Objetos

Arquitetura de Software

Transcrição:

Arquitectura de Sistemas de Software Ademar Aguiar www.fe.up.pt/~aaguiar ademar.aguiar@fe.up.pt Arquitectura de Sistemas de Software, LEIC/MEI, 2003/2004 1 Arquitectar... Arquitectar uma pequena cabana parece-nos fácil... Arquitectura de Sistemas de Software, LEIC/MEI, 2003/2004 2 1

Arquitectar... Menos fácil será arquitectar uma casa... Arquitectura de Sistemas de Software, LEIC/MEI, 2003/2004 3 Arquitectar... Ou um prédio de 6 andares... Arquitectura de Sistemas de Software, LEIC/MEI, 2003/2004 4 2

Arquitectar... Ou um arranha-céus de 452 metros de altura... Arquitectura de Sistemas de Software, LEIC/MEI, 2003/2004 5 Arquitectar... Quais as principais diferenças entre estas construções? Dimensões Custos Prazos Processo Competências e equipas Materiais e tecnologias Riscos associados Robustez Longevidade... Arquitectura de Sistemas de Software, LEIC/MEI, 2003/2004 6 3

Arquitectura & Engenharias tradicionais As engenharias tradicionais têm arquitecturas estáveis Edifícios, aviões, automóveis, barcos, pontes, etc. Estas arquitecturas evoluíram ao longo do tempo Por tentativa-e-erro Por reutilização e refinamento de soluções comprovadamente boas Nestes domínios foram conseguidos diversos avanços de engenharia Normalização de métodos de engenharia Produção de novos materiais Definição de novos processos de engenharia Alguns exemplos da Arquitectura Civil Casas, hospitais, lojas, hóteis, aeroportos, fábricas, estádios, cinemas Arquitectura de Sistemas de Software, LEIC/MEI, 2003/2004 7 Arquitectura de Software Arquitectar software é diferente (mais dificil?)... Invisibilidade Natureza temporal complexa de compreender e com possibilidade de evoluir ao longo do tempo Não obedece a leis físicas Tem que ser facilmente adaptável Evolução rápida das tecnologias subjacentes Mas o papel da arquitectura é o mesmo Controlar complexidade do sistema Garantir a integridade do sistema Assegurar as qualidades do sistema Melhorar a predictabilidade Equilibra forças influenciando o desenvolvimento do sistema e a sua evolução Arquitectura de Sistemas de Software, LEIC/MEI, 2003/2004 8 4

Níveis de Desenho de Software Que módulos? Como os interligar? Arquitectura módulos interligações Código-fonte algoritmos estruturas de dados Que estruturas de dados? Que algoritmos? Que gestão de memória? Que instruções utilizar? Executável pilhas de rotinas alocação de registos código-máquina Arquitectura de Sistemas de Software, LEIC/MEI, 2003/2004 9 Uma Definição A arquitectura de software compreende o conjunto de decisões significativas acerca da organização de um sistema de software Definição dos elementos estruturais e interfaces que compõem o sistema (blocos básicos de construção) Especificação de comportamentos envolvendo colaborações entre esses elementos Como é feita a composição dos elementos estruturais e comportamentais em subsistemas maiores Explicita o estilo arquitectónico que guia a organização do sistema. Arquitectura de Sistemas de Software, LEIC/MEI, 2003/2004 10 5

Tópicos principais Noções fundamentais Estilos clássicos de arquitectura Micro-arquitecturas: design patterns Macro-arquitecturas: frameworks Técnicas e ferramentas... Linguagens para descrição de arquitecturas (ADLs) -ACME (CMU/USC) - Rapide (Stanford) - Wright (CMU) - Unicon (CMU) -... - UML Arquitectura de Sistemas de Software, LEIC/MEI, 2003/2004 11 Estilos de Arquitectura Pipes & Filters Object-orientation Event-based Layered Systems Repositories Interpreters Process Control... Arquitectura de Sistemas de Software, LEIC/MEI, 2003/2004 12 6

Exemplos do Estilo Layered System 2 camadas 3 camadas mais camadas Graphical User Interface Relational Database Graphical User Interface Business Object Model Graphical User Interface Business Object Model Relational Database Relational Database Arquitectura de Sistemas de Software, LEIC/MEI, 2003/2004 13 Padrões de Software Existem problemas e soluções recorrentes também em Eng. Software: Arquitectura Análise Desenho Codificação GoF book : 1º livro sobre Padrões de Software Foi apresentado na OOPSLA 94, e é uma co-autoria de um grupo de quatro indivíduos conhecido pelo Gang of Four (GoF). Documenta 23 padrões que descrevem soluções reconhecidamente boas para problemas recorrentes de desenho orientado por objectos [Gamma95]. Os padrões são micro-arquitecturas Descrevem mecanismos abstractos de cooperação entre objectos por forma a resolver um problema recorrente. Arquitectura de Sistemas de Software, LEIC/MEI, 2003/2004 14 7

Padrões de Software Abstract Factory, Builder, Singleton, Factory Method, Prototype, Adapter, Bridge, Composite, Decorator, Proxy, Chain of Responsability, Command, Flyweight, Interpreter, Iterator, Mediator, Memento, Observer, State, Strategy, Template Method, Visitor, Master-Slave, Publisher-Subscriber, Blackboard, Reactor, Reflection,...... Arquitectura de Sistemas de Software, LEIC/MEI, 2003/2004 15 Frameworks Orientadas por Objectos As frameworks são uma poderosa ténica de reutilização de software que permitem reutilização de código e desenho. Frameworks + componentes + padrões tecnologia actualmente existente mais capaz de suportar reutilização de software em larga-escala. Application 1 Application 2 Application 3 abstraction Framework code Framework code Application Code 2 Callbacks Hooks Plugins... Application Code 1 Application Code 3 Arquitectura de Sistemas de Software, LEIC/MEI, 2003/2004 16 8

Aplicação Framework Aplicacional Diversos componentes Framework Aplicacional Aplicação Bibliotecas de Classes Bibliotecas de Classes Bibliotecas de Procedimentos Bibliotecas de Procedimentos Sistema Operativo Sistema Operativo Aplicação OO convencional Aplicação OO com frameworks Arquitectura de Sistemas de Software, LEIC/MEI, 2003/2004 17 Sobre ADLs Uma ADL deve suportar a definição e descrição de arquitecturas, ie, deve permitir definir: componentes conectores configurações restrições Arquitectura de Sistemas de Software, LEIC/MEI, 2003/2004 18 9

Arquitectura vs. Design Arquitectura onde as decisões sobre requisitos não-funcionais são tomadas, e os requisitos funcionais são particionados (divididos em módulos) Design onde os requisitos funcionais são satisfeitos Requisitos não-funcionais ( ilities ) Requisitos funcionais (domínios) arquitectura (ADL) design (UML) Arquitectura de Sistemas de Software, LEIC/MEI, 2003/2004 19 UML como uma ADL Aspectos positivos É bastante acessível Permitiu disseminar em larga escala as práticas de modelação Existem inúmeras ferramentas de modelação para UML Limitações do UML como uma ADL Os modelos estão fracamente interligados com semântica não perfeitamente apropriada à análise e definição de arquitecturas Os conectores não são reconhecidos como elementos de 1ª classe A notação visual ainda não tem um suporte bom para geração da arquitectura física e tecnológica, permite relações ambíguas e escondidas entre diferentes vistas Arquitectura de Sistemas de Software, LEIC/MEI, 2003/2004 20 10

Bibliografia Software Architecture: Perspectives on an Emerging Discipline de Mary Shaw e David Garlan, publicados por Prentice Hall em 1996. Software Architecture in Practice de Len Bass, Paul Clements e Rick Kazman, 2ª edição, publicados por Addison-Wesley em 2003. Design Patterns - Elements of Reusable Object-Oriented Software de Erich Gamma, Richard Helm, Ralph Johnson e John Vlissides, publicado por Addison Wesley em 1995. Diversos artigos. Arquitectura de Sistemas de Software, LEIC/MEI, 2003/2004 21 Questões? Arquitectura de Sistemas de Software, LEIC/MEI, 2003/2004 22 11