Componentes e Frameworks

Slides:



Advertisements
Apresentações semelhantes
Desenvolvimento de Sistemas Distribuídos Web Services
Advertisements

ARQUITETURA EM CAMADAS
UNIPAC – ARAGUARI CAMPUS – IX PROF. EVERTON HIPÓLITO DE FREITAS
UML Visões – Parte 2.
Engenharia de Software
PLATAFORMA J2EE Luís Filipe Almeida Santos
Sistemas Distribuídos Web Services
Projeto de Sistemas de Software
Objetos e Componentes Distribuídos na Web usando CORBA e EJB
Modeling Components and Frameworks with UML
Ambientes de Computação Empresarial e Avaliação de Custos
Component-Based Frameworks for E-Commerce Agnaldo Kiyoshi Noda.
Introdução a UML.
Objetos de Negócio CORBA
Introdução aos Serviços Web
Componentes: A Abordagem Catalysis
Alexandre Parra Site: Linguagem Java Alexandre Parra Site:
Objetos Distribuídos Padrão CORBA
DAS Sistemas Distribuídos para Automação Industrial
Estudo comparativo de arquitecturas para aplicações empresariais
Visão Geral do Desenvolvimento de Sistemas e Papéis no Desenvolvimento de Software Marcely Dias
Classes e objetos Modelagem
Introdução a Arquitetura Orientada a serviços
Engenharia de Software e Sistemas de Informação e Gestão
Aula 1 Minicurso: Astah Ministrantes: André Martins; Camila Brondani;
Introdução UML, Diagrama de Classes e Comunicação/Colabaração
Uma comparação de dois métodos de desenvolvimento de software baseado em componentes: Catalysis e UML Components Projeto Final por: Bernardo Faria de Miranda.
Arquitetura de software
Projeto de Sistemas de Software
Arquiteturas de Referência
Desenvolvimento de Sistemas Orientados a Aspectos
Sistemas Distribuídos Carlos A. G. Ferraz DI/UFPE Aula 07.
1.
Análise e Projeto Orientados a Objetos
Tecgraf PUC-Rio Setembro de 2013 Introdução ao Openbus.
Da Introdução à Prática
RPC and Web Service André Pereira.
RUP - Cap. 4 – Processo Centrado na Arquitetura
Introdução a JEE Marco A. S. Reis Arquiteto de Software Abril/2011.
Padrões de Interação com o Usuário
Unidade 1 – Introdução a J2EE Prof.: Henrique Santos
Web Services Equipe: Cláudia Brito Lyra Nunes da Silva
Desenvolvimento de Software Dirigido a Modelos
Linguagem de Programação IV Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
ABC reuso Reengenharia Primeiras conclusões. ABC reuso Análise do Código Fonte Arquitetura em Camadas Fachada (SIAlocacaoPlus) Negócio (Cadastros) Persistência.
Integrando sistemas através de HTTP + XML. * Muitos processos manuais começam a ser realizados online. * Ferramentas desenvolvidas precisavam ser interoperáveis.
UML e a Ferramenta Astah
Linguagem de Modelagem Unificada
Desenvolvimento de Aplicações para WEB Para inserir o logotipo da empresa neste slide No menu 'Inserir' Selecione 'Figura' Localize o arquivo com o logotipo.
© 2007 by Pearson Education ©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 18 Slide 1 Reuso de Software.
Desenvolvimento Global de Software Mestrado de Informática / UFPB Francilene Procópio Garcia, D.Sc. Configuração do Processo - Parte.
Infra-Estrutura para Computação Distribuída
Arquitetura de Sistemas Envolve os seguintes aspectos
Padrões de projeto M.Sc. Sílvio Bacalá Jr..
Multiparadigma das Comunicações em Java para Grid Computing Fernanda R. Ramos Luiz Felipe Marco Eiterer Profº Alcides Calsavara, Ph.D.
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
Frameworks e Componentes Daniel Fernando Pavelec.
Introdução a UML.
A linguagem unificada de modelagem
UML (Unified Modeling Language) Linguagem Unificada de Modelagem
Introdução ao SCS Tecgraf PUC-Rio Setembro de 2013.
CIn-UFPE1 UML Uma linguagem unificada de modelagem Visão Geral.
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.
SOA SOA – Arquitetura Orientada a Serviços Conceitos e Aplicações
Análise do Sistema Alexandre Mota
Uma Extensão do Fluxo de Análise e Projeto do RUP com suporte a Desenvolvimento Baseado em Componentes Eduardo Almeida
Web Services / SOA. O cenário de TI nas corporações Novas tendências batiam à porta das corporações Migraram o foco do “gerenciamento de dados” para o.
Síntese do Negócio ONTOWEB. Ontoweb – Nova Geração de Ferramenta de Busca Possui comportamento inteligente que auxilia o usuário a organizar e compartilhar.
Transcrição da apresentação:

Componentes e Frameworks Alcides Calsavara

Referências Bibliográficas Grant Larsen, Component-Based Enterprise Frameworks, Communications of the ACM, 43(10), pp. 25-26, October 2000. Jon Hopkins, Component Primer, Communications of the ACM, 43(10), pp. 27-30, October 2000. Cris Kobryn, Modeling Components and Frameworks with UML, Communications of the ACM, 43(10), pp. 31-38, October 2000.

Referências Bibliográficas Michael Sparling, Lessons Learned through Six Years of Component-based Development, Communications of the ACM, 43(10), pp. 47-53, October 2000. Clemens Szyperski, Component Software: Beyond Object-Oriented Programming, Addison-Wesley, 1998.

Soluções de software: abordagens típicas turnkey solutions prontas para o uso requerem alguma configuração custom development solutions grande parte do sistema é integralmente construída component-based framework solutions abstrações para identificar, discutir, resolver e implementar sistemas implementações parciais extensíveis de forma segura

Exemplos de framework para objetos distribuídos SUN J2EE Microsoft .NET OMG CORBA Specification

Exemplos de Modelos de Componentes SUN Enterprise JavaBeans - EJB Microsoft DCOM (COM+) OMG CORBA Specification

Exemplos de Componentes Componentes GUI (Graphical User Interface) - “widgets” : ActiveX Java Beans Componentes de negócio: objetos CORBA Aplicações inteiras: Excel, PowerPoint

Definição de Grady Booch para Componente “uma parte física e substituível de um sistema que está de acordo com e provê a realização de um conjunto de interfaces”

Definição de Jon Hopkins para componente “Um componente de software é um empacotamento físico de software executável com uma interface pública bem definida.”

Definição de D’Souza e Wills para componente “Um pacote coerente de artefatos de software que podem ser independentemente desenvolvidos e entregues como uma unidade e que pode ser composto, sem modificação, com outros componentes para construir algo maior”

Definição de Szyperski para componente “Um componente de software é uma unidade de composição com interfaces especificadas de forma contratual e com dependências apenas de contexto e explícitas. Um componente de software pode ser distribuído independentemente e fica sujeito a composição por terceiros”

Definição de Michael Sparling para componente Pacote de serviços de software implementado independentemente e netro com relação a linguagem. Distribuído como um contâiner encapsulado e substituível, acessado via uma ou mais interfaces públicas. Pode modificar uma base de dados, mas não deve manter informação de estado. Não é restrito a uma plataforma e nem a uma aplicação.

Definição de Grady Booch para Framework “Um padrão arquitetural que provê um ‘template’ extensível para aplicações dentro de um certo domínio”

Definição de Desmond D’Souza para Framework baseado em Componentes “De maneira geral, um framework baseado em componentes é uma colaboração na qual todos os componentes são especificados através de modelos de tipos; alguns deles podem vir com suas próprias implementações. Para se usar o framework, conectam-se componentes que satisfazem as especificações”

Frameworks & Aplicações Elementos fundamentais Relacionamentos Integridade estrutural e dinâmica Pontos de extensão e modificação

Componentes & Frameworks Cada framework deve prover especificações de pontos de extensão. Em cada ponto de extensão deve ser conectado um componente que seja compatível com a correspondente especificação.

Construção de Frameworks baseados em Componentes Considerar modelos estáticos que ilustram a estrutura dos componentes; Considerar modelos dinâmicos que ilustram a colaboração entre componentes; Considerar a tecnologia que implementa o framework; Considerar o que já se conhece do domínio da aplicação: experiências e tecnologias.

Diretrizes para Sistemas baseados em Componentes Reuso : A habilidade de reusar componentes existentes para criar sistemas mais complexos. Evolução : Um sistema altamente componentizado é de mais fácil manutenção. Em um sistema bem projetado, as alterações serão localizadas, e essas poderão ser feitas no sistema com pouco ou nenhum efeito nos componentes restantes.

Necessidades de um Sistema baseado em Componentes Biblioteca de componentes Modelo de componentes: Montagem Interação “Backplane”: lugar de existência e comunicação entre componentes Processo de desenvolvimento Arquitetura de software

Componentes e Orientação a Objetos Bertrand Meyer: um componente é uma manifestação física de um objeto que tem uma interface bem definida e um conjunto de implementações para esta interface. Um componente não precisa ser desenvolvido através de ferramentas orientadas a objetos. É mais “natural” modelar sistemas usando orientação a objetos quando se tem a perspectiva de componentização do sistema.

Modelo de comunicação entre componentes Mecanismo para que dois componentes se achem e se comuniquem. Modelo de referência para: definição de interfaces passagem de mensagens transferência de dados Tendência: emprego de XML freqüência baixa de trocas de mensagens necessidade de muita semântica nas mensagens

Exemplos de Modelos de Componentes SUN Enterprise JavaBeans - EJB Microsoft DCOM (COM+) OMG CORBA Specification

Componentes e Sistemas Distribuídos Subsistemas fracamente acoplados que, quando agregados, provêem alto poder de comportamento (semântica). Internet tem um mecanismo de transporte "neutro": integra componentes heterogêneos. Troca de informação: XML (Web Services) Troca de mensagens: IP, HTTP, RMI, ...

Granularidade de Componentes Comunicação entre componentes é dispendiosa em termos de tempo e recursos da plataforma de execução. Componentes muito grandes possuem interfaces mais complexas e representam uma oportunidade maior de serem afetados por uma alteração. Quanto maiores os componentes, menor é a flexibilidade do sistema. Equilíbrio é necessário! minimização do acoplamento tende a prejudicar a boa coesão

Exemplos de Componentes Componentes GUI (Graphical User Interface) - “widgets” : ActiveX Java Beans Componentes de negócio: objetos CORBA Aplicações inteiras: Excel, PowerPoint

Lições aprendidas (Michael Sparling) Desenvolvimento baseado em um modelo de referência para componentes Desenvolvimento paralelo Prós e contras de reuso Imutabilidade e componentes Prototipagem cedo e freqüente Gerenciamento de exceções Estratégias de teste diferenciadas