SlideShare uma empresa Scribd logo
ESBC - Engenharia de Software Baseada em Componentes Érika Ishy
Roteiro Motivação Conceitos Básicos Atividades da ESBC Componentes & Objetos Métodos de Desenvolvimento Tecnologias de Desenvolvimento Ferramentas CASE
Motivação Melhorar o processo de desenvolvimento de software Maior produtividade Menor custo Antes, abordagem de desenvolvimento em blocos monolíticos – complexidade alta, de difícil manutenção
Motivação Solução: Reuso/Componentização Quebrar os blocos monolíticos em componentes interoperáveis Reduzir a complexidade Facilitar a manutenção Reutilização de componentes na criação de novas aplicações - redução nos custos e no tempo de desenvolvimento
Motivação A reutilização tem duas abordagens distintas: 1-Reutilização de componentes na montagem de novas aplicações 2-Desenvolvimento de componentes reutilizáveis Necessidade de um modelo de processo para suportar o desenvolvimento e à reutilização de componentes
Conceitos Básicos Subdisciplina da eng. de software Principais objetivos: Desenvolver software a partir de componentes pré-construídos Criar componentes reutilizáveis Manter e customizar facilmente os componentes para que novas funções e características possam ser adicionadas
Conceitos Básicos O que é um componente? Unidade de composição que pode ser desenvolvida independentemente  Função específica Interfaces bem definidas Plug-In Flexível e extensível Blocos previamente testados REUTILIZÁVEL
Conceitos Básicos O que é um componente reutilizável? Qualquer parte de trabalho que possa ser utilizado em mais de um projeto: Código compilado, objetos executáveis Código fonte, classes e métodos Casos de testes Modelos e projetos: frameworks, padrões Interface de usuário Planos, estratégias e regras arquiteturais
Atividades da ESBC ESBC abrange duas atividades paralelas: Engenharia de Domínio (ED) Desenvolvimento Baseado em Componente (DBC)
Atividades da ESBC ED: identificar e organizar o conhecimento dentro de um  domínio particular  para facilitar ao máximo a sua reutilização – criação de componentes Três etapas: 1-Análise de Domínio: modelo de domínio 2-Projeto de Domínio: arquitetura de software 3-Implementação do Domínio: componentes reutilizáveis
Atividades da ESBC DBC: “preencher” a arquitetura definida na ED com componentes novos ou  disponíveis nas bibliotecas de reuso – reutilização de componentes Três Etapas: 1-Qualificação: escolher componentes candidatos 2-Adaptação: adaptar ou substituir 3-Composição: integrar os componentes
Componentes & Objetos ESBC é considerada o passo seguinte à OO Componentes    Objetos, mas conceitualmente são diferentes Componentes são similares às classes Definem um comportamento Criam objetos => instâncias de componentes
Componentes & Objetos
Componentes & Objetos
Componentes & Objetos Define um conjunto de regras que devem ser seguidas pelo componente para tornar as implementações de objeto acessíveis a outras implementações de objeto Coleção de objetos  (implementações+interfaces) dentro de um modelo de componente
Componentes & Objetos Principal diferença: Componentes estão em conformidade com um padrão definido através do modelo de componentes
Componentes & Objetos
Componentes & Objetos
Métodos de Desenvolvimento FODA; FORM; OODE; RESB Catalysis (Wills e D’Souza) Considerado um dos melhores métodos Define modelos para todas as fases de desenvolvimento: especificação, projeto e construção UML Components (Cheesman e Daniels) Baseado nos diagramas da UML Ênfase na especificação de componentes para reutilização
Ferramentas CASE Rational Rose (Rational) Odyssey (COS/UFRJ) – Eng. Domínio MVCase (DC/UFSCar): especificação, projeto e construção de componentes Ferramenta disponível gratuitamente Método Catalysis e Linguagem UML Geração automática de código JAVA Faz deploy da aplicação
Tecnologias de Desenvolvimento CORBA/OMG:  especifica uma arquitetura orientada a objetos para dar suporte a aplicações distribuídas  COM/Microsoft:  construção de softwares baseados em componentes Enterprise JavaBeans/Sun Microsystems: extensão do modelo de componentes JavaBeans para componentes de servidor – ambiente mais robusto
Tecnologias de Desenvolvimento COM e CORBA procuram integrar componentes desenvolvidos em diferentes linguagens de programação Enterprise JavaBeans contempla somente componentes desenvolvidos em Java, simplificando a sua arquitetura - permite maior interoperabilidade e portabilidade entre aplicações Web
Referências Almeida, E. S.; Bianchini, C. P.; Prado, A. F.; Trevekub, L. C. Engenharia de Software Baseada em Componentes.  Developer’s Magazine , jan. 2003. Cheesman, J.; Daniels, J.  UML components  – a simple process for specifying component-based. Addison-Wesley,   2001. p. 37-65. D’Souza, D.; Wills, A.  Objects, components and frameworks with UML  – the catalysis approach.  Addison-Wesley, 1998.  Disponível em: <http://www.trireme.com/catalysis/> Prado, A. F.  Tecnologias para DBC . Disponível em: <http://www.cos.ufrj.br/~wdbc/2002/download/tecnologias.pdf>  Acesso em: 04 jun. 2003.
Referências Prado, A. F.; Almeida, E. S.; Lucredio, D.; Bianchini, C. P.; Trevelin, L. C.  Ferramenta MVCase – uma ferramenta integradora de tecnologias para o desenvolvimento de componentes distribuídos. In: Simpósio Brasileiro de Engenharia de Software, 16, 2002, Gramado, RS.  Anais ...  Porto Alegre: Instituto de Informática da UFRGS, 2002. p. 432-437.  Pressman, R. S.  Software engineering : a practitioner’s approach. 5. ed., New York, USA: McGraw Hill, 2001. Thomas, A.  Enterprise JavaBeans technology : server component model for the Java TM  plataform. Patricia Seybold Group, dez. 1998.  Relatório técnico. Disponível em: <http://www.ejbean.com/documents/downloads/white_paper.pdf> Acesso em: 16 nov. 2002.
Referências WERNER, C. M. L.; MATTOSO, M.; BRAGA, R.; BARROS, M.; MURTA, L.; DANTAS, A.  Odyssey : infra-estrutura de reutilização baseada em modelos de domínio. In: Simpósio Brasileiro de Engenharia de Software, 13., 1999, Florianópolis. Disponível em: <http://www.cos.ufrj.br/~odyssey/> Acesso em: 09 dez. 2002. WERNER, C. M. L; BRAGA, R. M. M .  Desenvolvimento baseado em componente . In: Simpósio Brasileiro de Engenharia de Software, 14., 2000, João Pessoa, PB.  Disponível em:  <http://www.cos.ufrj.br/~odyssey/publicacoes/SBES2000_TutorialDBC_Apresentacao.pdf> Acesso em: 21 out. 2002.

Mais conteúdo relacionado

PPT
Engenharia De Software Baseada Em Componentes
PPTX
Arquitetura de computadores Módulo 4
PPTX
Redes de computadores
PPTX
Arquitetura de um computador
PDF
1.Introdução Banco de Dados
PDF
Montagem manutenção de computadores
PDF
Aula - Introdução a Engenharia de Software
PPTX
Aula 08 - Placa Mãe
Engenharia De Software Baseada Em Componentes
Arquitetura de computadores Módulo 4
Redes de computadores
Arquitetura de um computador
1.Introdução Banco de Dados
Montagem manutenção de computadores
Aula - Introdução a Engenharia de Software
Aula 08 - Placa Mãe

Mais procurados (20)

PPTX
Componentes de uma Rede de computadores
PPTX
Segurança da informação
PPTX
Lógica de Programação - Algoritmos
PDF
Git e GitHub: Versionamento de Código Fácil
PDF
O Processo de Desenvolvimento de Software
PDF
Aula 2 - Processos de Software
PDF
Aula05 - cabeamento estruturado - parte 02
ODP
Aula 01 - Algoritmo e Programação
PPTX
Algoritmos - Formas de Representação de Algoritmos
PPTX
Redes de comunicação mod 1
PDF
Estrutura de Dados Aula 13 - Árvores (conceito, elementos, tipos e utilizações)
PPTX
222097384 aulas-de-rede-tipos-de-servidores
PPTX
Hardware e redes de computadores (Componente, tipos de redes e topologias)
PPTX
Introdução sobre desenvolvimento web
PDF
Introdução à Programação
PDF
Aula 1 requisitos
PPTX
Teste de Software - Introdução
PDF
Ciclo de vida de software
PPTX
Estrutura de Dados - Conceitos fundamentais
PPTX
Introdução básica ao JavaScript
Componentes de uma Rede de computadores
Segurança da informação
Lógica de Programação - Algoritmos
Git e GitHub: Versionamento de Código Fácil
O Processo de Desenvolvimento de Software
Aula 2 - Processos de Software
Aula05 - cabeamento estruturado - parte 02
Aula 01 - Algoritmo e Programação
Algoritmos - Formas de Representação de Algoritmos
Redes de comunicação mod 1
Estrutura de Dados Aula 13 - Árvores (conceito, elementos, tipos e utilizações)
222097384 aulas-de-rede-tipos-de-servidores
Hardware e redes de computadores (Componente, tipos de redes e topologias)
Introdução sobre desenvolvimento web
Introdução à Programação
Aula 1 requisitos
Teste de Software - Introdução
Ciclo de vida de software
Estrutura de Dados - Conceitos fundamentais
Introdução básica ao JavaScript
Anúncio

Destaque (20)

PPTX
Desenvolvimento baseado em componentes
PPTX
TCC - Engenharia de Software Baseada em Componentes
PPT
Modelo Espiral
PDF
02 Introdução à engenharia de software - conceitos fundamentais
PDF
Componentes vs Servicos
PDF
Launchpad, tradução, bugs e muito mais - André Gondim
PDF
Dru - Desenvolvimento para Reuso
PDF
Web Components e o desenvolvimento de aplicações web modernas
PPTX
Scrum - Trabalho de Engenharia de Software
PDF
Modelo de Componentes de IHC
PDF
Principais componentes para o desenvolvimento de aplicação android
PDF
Arquitetura de Software Baseada em Componentes: Um Estudo de Caso para o Cont...
PPTX
Os 12 Princípios Ágeis
PPT
Prototipação de software
PDF
Engenharia de software 7° edição roger s.pressman capítulo 14
ODP
Modelos de processos de software
PPTX
03 Modelo de processo de software
PPT
Modelo cascata apresentação
PDF
Padrões de Projeto - Design Patterns
PPT
Modelos de ciclo de vida de software
Desenvolvimento baseado em componentes
TCC - Engenharia de Software Baseada em Componentes
Modelo Espiral
02 Introdução à engenharia de software - conceitos fundamentais
Componentes vs Servicos
Launchpad, tradução, bugs e muito mais - André Gondim
Dru - Desenvolvimento para Reuso
Web Components e o desenvolvimento de aplicações web modernas
Scrum - Trabalho de Engenharia de Software
Modelo de Componentes de IHC
Principais componentes para o desenvolvimento de aplicação android
Arquitetura de Software Baseada em Componentes: Um Estudo de Caso para o Cont...
Os 12 Princípios Ágeis
Prototipação de software
Engenharia de software 7° edição roger s.pressman capítulo 14
Modelos de processos de software
03 Modelo de processo de software
Modelo cascata apresentação
Padrões de Projeto - Design Patterns
Modelos de ciclo de vida de software
Anúncio

Semelhante a Engenharia de Software Baseada em Componentes (20)

PPT
Reutilização
PPTX
Reuso de software
PDF
TDC2016SP Trilha Arquitetura.NET - Revitalizando aplicações desktop usando C...
PDF
TDC2016POA | Trilha Arquetetura - Revitalizando aplicações desktop usando Ce...
PDF
Desenvolvimento de Aplicações com Visual Studio
PPT
Processo de Desenvolvimento MDA: metodologias e agilidade
PDF
Padroes De Projeto
PPTX
PHP 10 CodeIgniter
PPTX
Criando Aplicações .NET com o TheWebMind
PPT
Ferramenta de Apoio a UML e Modelo de Bases Relacionais
PPTX
Frameworks de desenvolvimento web
PPT
TEES - MDA Apresentação Final
PDF
TDC2016SP - Revitalizando aplicações desktop usando CefGlue, MessageBus e Rea...
PPT
Metodologias Ageis
PDF
Oficina cake php
PDF
01 - Introdução a programação para internet v1.1
ODP
Reuso desw
PPSX
Zachman framework
PDF
Reutilização
Reuso de software
TDC2016SP Trilha Arquitetura.NET - Revitalizando aplicações desktop usando C...
TDC2016POA | Trilha Arquetetura - Revitalizando aplicações desktop usando Ce...
Desenvolvimento de Aplicações com Visual Studio
Processo de Desenvolvimento MDA: metodologias e agilidade
Padroes De Projeto
PHP 10 CodeIgniter
Criando Aplicações .NET com o TheWebMind
Ferramenta de Apoio a UML e Modelo de Bases Relacionais
Frameworks de desenvolvimento web
TEES - MDA Apresentação Final
TDC2016SP - Revitalizando aplicações desktop usando CefGlue, MessageBus e Rea...
Metodologias Ageis
Oficina cake php
01 - Introdução a programação para internet v1.1
Reuso desw
Zachman framework

Mais de elliando dias (20)

PDF
Clojurescript slides
PDF
Why you should be excited about ClojureScript
PDF
Functional Programming with Immutable Data Structures
PPT
Nomenclatura e peças de container
PDF
Geometria Projetiva
PDF
Polyglot and Poly-paradigm Programming for Better Agility
PDF
Javascript Libraries
PDF
How to Make an Eight Bit Computer and Save the World!
PDF
Ragel talk
PDF
A Practical Guide to Connecting Hardware to the Web
PDF
Introdução ao Arduino
PDF
Minicurso arduino
PDF
Incanter Data Sorcery
PDF
PDF
Fab.in.a.box - Fab Academy: Machine Design
PDF
The Digital Revolution: Machines that makes
PDF
Hadoop + Clojure
PDF
Hadoop - Simple. Scalable.
PDF
Hadoop and Hive Development at Facebook
PDF
Multi-core Parallelization in Clojure - a Case Study
Clojurescript slides
Why you should be excited about ClojureScript
Functional Programming with Immutable Data Structures
Nomenclatura e peças de container
Geometria Projetiva
Polyglot and Poly-paradigm Programming for Better Agility
Javascript Libraries
How to Make an Eight Bit Computer and Save the World!
Ragel talk
A Practical Guide to Connecting Hardware to the Web
Introdução ao Arduino
Minicurso arduino
Incanter Data Sorcery
Fab.in.a.box - Fab Academy: Machine Design
The Digital Revolution: Machines that makes
Hadoop + Clojure
Hadoop - Simple. Scalable.
Hadoop and Hive Development at Facebook
Multi-core Parallelization in Clojure - a Case Study

Último (11)

PPTX
Viasol Energia Solar -Soluções para geração e economia de energia
PDF
Manejo integrado de pragas na cultura do algodão
PDF
eBook - GUIA DE CONSULTA RAPIDA EM ROTEADORES E SWITCHES CISCO - VOL I.pdf
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PPT
Conceitos básicos de Redes Neurais Artificiais
PPTX
Tipos de servidor em redes de computador.pptx
PDF
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
PDF
Jira Software projetos completos com scrum
PPTX
Proposta de Implementação de uma Rede de Computador Cabeada.pptx
PPTX
Utilizando code blockes por andre backes
PPTX
Eng. Software - pontos essenciais para o início
Viasol Energia Solar -Soluções para geração e economia de energia
Manejo integrado de pragas na cultura do algodão
eBook - GUIA DE CONSULTA RAPIDA EM ROTEADORES E SWITCHES CISCO - VOL I.pdf
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Conceitos básicos de Redes Neurais Artificiais
Tipos de servidor em redes de computador.pptx
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
Jira Software projetos completos com scrum
Proposta de Implementação de uma Rede de Computador Cabeada.pptx
Utilizando code blockes por andre backes
Eng. Software - pontos essenciais para o início

Engenharia de Software Baseada em Componentes

  • 1. ESBC - Engenharia de Software Baseada em Componentes Érika Ishy
  • 2. Roteiro Motivação Conceitos Básicos Atividades da ESBC Componentes & Objetos Métodos de Desenvolvimento Tecnologias de Desenvolvimento Ferramentas CASE
  • 3. Motivação Melhorar o processo de desenvolvimento de software Maior produtividade Menor custo Antes, abordagem de desenvolvimento em blocos monolíticos – complexidade alta, de difícil manutenção
  • 4. Motivação Solução: Reuso/Componentização Quebrar os blocos monolíticos em componentes interoperáveis Reduzir a complexidade Facilitar a manutenção Reutilização de componentes na criação de novas aplicações - redução nos custos e no tempo de desenvolvimento
  • 5. Motivação A reutilização tem duas abordagens distintas: 1-Reutilização de componentes na montagem de novas aplicações 2-Desenvolvimento de componentes reutilizáveis Necessidade de um modelo de processo para suportar o desenvolvimento e à reutilização de componentes
  • 6. Conceitos Básicos Subdisciplina da eng. de software Principais objetivos: Desenvolver software a partir de componentes pré-construídos Criar componentes reutilizáveis Manter e customizar facilmente os componentes para que novas funções e características possam ser adicionadas
  • 7. Conceitos Básicos O que é um componente? Unidade de composição que pode ser desenvolvida independentemente Função específica Interfaces bem definidas Plug-In Flexível e extensível Blocos previamente testados REUTILIZÁVEL
  • 8. Conceitos Básicos O que é um componente reutilizável? Qualquer parte de trabalho que possa ser utilizado em mais de um projeto: Código compilado, objetos executáveis Código fonte, classes e métodos Casos de testes Modelos e projetos: frameworks, padrões Interface de usuário Planos, estratégias e regras arquiteturais
  • 9. Atividades da ESBC ESBC abrange duas atividades paralelas: Engenharia de Domínio (ED) Desenvolvimento Baseado em Componente (DBC)
  • 10. Atividades da ESBC ED: identificar e organizar o conhecimento dentro de um domínio particular para facilitar ao máximo a sua reutilização – criação de componentes Três etapas: 1-Análise de Domínio: modelo de domínio 2-Projeto de Domínio: arquitetura de software 3-Implementação do Domínio: componentes reutilizáveis
  • 11. Atividades da ESBC DBC: “preencher” a arquitetura definida na ED com componentes novos ou disponíveis nas bibliotecas de reuso – reutilização de componentes Três Etapas: 1-Qualificação: escolher componentes candidatos 2-Adaptação: adaptar ou substituir 3-Composição: integrar os componentes
  • 12. Componentes & Objetos ESBC é considerada o passo seguinte à OO Componentes  Objetos, mas conceitualmente são diferentes Componentes são similares às classes Definem um comportamento Criam objetos => instâncias de componentes
  • 15. Componentes & Objetos Define um conjunto de regras que devem ser seguidas pelo componente para tornar as implementações de objeto acessíveis a outras implementações de objeto Coleção de objetos (implementações+interfaces) dentro de um modelo de componente
  • 16. Componentes & Objetos Principal diferença: Componentes estão em conformidade com um padrão definido através do modelo de componentes
  • 19. Métodos de Desenvolvimento FODA; FORM; OODE; RESB Catalysis (Wills e D’Souza) Considerado um dos melhores métodos Define modelos para todas as fases de desenvolvimento: especificação, projeto e construção UML Components (Cheesman e Daniels) Baseado nos diagramas da UML Ênfase na especificação de componentes para reutilização
  • 20. Ferramentas CASE Rational Rose (Rational) Odyssey (COS/UFRJ) – Eng. Domínio MVCase (DC/UFSCar): especificação, projeto e construção de componentes Ferramenta disponível gratuitamente Método Catalysis e Linguagem UML Geração automática de código JAVA Faz deploy da aplicação
  • 21. Tecnologias de Desenvolvimento CORBA/OMG: especifica uma arquitetura orientada a objetos para dar suporte a aplicações distribuídas COM/Microsoft: construção de softwares baseados em componentes Enterprise JavaBeans/Sun Microsystems: extensão do modelo de componentes JavaBeans para componentes de servidor – ambiente mais robusto
  • 22. Tecnologias de Desenvolvimento COM e CORBA procuram integrar componentes desenvolvidos em diferentes linguagens de programação Enterprise JavaBeans contempla somente componentes desenvolvidos em Java, simplificando a sua arquitetura - permite maior interoperabilidade e portabilidade entre aplicações Web
  • 23. Referências Almeida, E. S.; Bianchini, C. P.; Prado, A. F.; Trevekub, L. C. Engenharia de Software Baseada em Componentes. Developer’s Magazine , jan. 2003. Cheesman, J.; Daniels, J. UML components – a simple process for specifying component-based. Addison-Wesley, 2001. p. 37-65. D’Souza, D.; Wills, A. Objects, components and frameworks with UML – the catalysis approach. Addison-Wesley, 1998. Disponível em: <http://www.trireme.com/catalysis/> Prado, A. F. Tecnologias para DBC . Disponível em: <http://www.cos.ufrj.br/~wdbc/2002/download/tecnologias.pdf> Acesso em: 04 jun. 2003.
  • 24. Referências Prado, A. F.; Almeida, E. S.; Lucredio, D.; Bianchini, C. P.; Trevelin, L. C. Ferramenta MVCase – uma ferramenta integradora de tecnologias para o desenvolvimento de componentes distribuídos. In: Simpósio Brasileiro de Engenharia de Software, 16, 2002, Gramado, RS. Anais ... Porto Alegre: Instituto de Informática da UFRGS, 2002. p. 432-437. Pressman, R. S. Software engineering : a practitioner’s approach. 5. ed., New York, USA: McGraw Hill, 2001. Thomas, A. Enterprise JavaBeans technology : server component model for the Java TM plataform. Patricia Seybold Group, dez. 1998. Relatório técnico. Disponível em: <http://www.ejbean.com/documents/downloads/white_paper.pdf> Acesso em: 16 nov. 2002.
  • 25. Referências WERNER, C. M. L.; MATTOSO, M.; BRAGA, R.; BARROS, M.; MURTA, L.; DANTAS, A. Odyssey : infra-estrutura de reutilização baseada em modelos de domínio. In: Simpósio Brasileiro de Engenharia de Software, 13., 1999, Florianópolis. Disponível em: <http://www.cos.ufrj.br/~odyssey/> Acesso em: 09 dez. 2002. WERNER, C. M. L; BRAGA, R. M. M . Desenvolvimento baseado em componente . In: Simpósio Brasileiro de Engenharia de Software, 14., 2000, João Pessoa, PB. Disponível em: <http://www.cos.ufrj.br/~odyssey/publicacoes/SBES2000_TutorialDBC_Apresentacao.pdf> Acesso em: 21 out. 2002.