Por que é importante?

Documentos relacionados
DESENVOLVIMENTO BASEADO EM COMPONENTES

CBSE. Independência e Padronização. Características da CBSE. Fundamentos da CBSE. Middleware e Processo 22/05/2013

Reuso de Software Aula Maio 2012

ENGENHARIA DE SOFTWARE. Aula 17 Reuso de software

Desenvolvimento de Software Baseado em Componentes. Paulo C. Masiero

Agenda do Curso. Reuso de Software. Agenda da Aula. Tipos de Reuso. Vantagens de Reuso. Reuso de Software. Eduardo Figueiredo

Engenharia de Software. Projeto de Arquitetura

Visões Arquiteturais. Visões Arquiteturais

15/04/2013. Pensar Orientado a Objetos. Projeto Orientado a Objetos. Características de Objetos. Classe de Objetos. Comunicação entre Objetos

Prof. Esp. Fabiano Taguchi

Engenharia de Software

Engenharia de Software Orientada a Serviços

Análise e projeto de sistemas

ENGENHARIA DE SOFTWARE

Engenharia de Software Orientada a Serviços

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPUS JOÃO CÂMARA ENGENHARIA DE SOFTWARE

Frameworks. Viviane Torres da Silva

Processos de Software

Introdução à Engenharia de Software

Prof. Dr. Thiago Jabur Bittar

Técnicas para Reutilização de Software Prof. Eduardo Figueiredo Estagiário: Johnatan Oliveira

Agenda da Aula. Reuso de Software. Tipos de Reuso. Potenciais Problemas. Vantagens de Reuso. Introdução a Reuso de Software

Requisitos de Software

Visibilidade e Encapsulamento

O que é um sistema distribuído?

Princípios da Engenharia de Software aula 03

06/02/2014. Engenharia de requisitos. Requisitos de Software. Capítulo 6. O que é um requisito? Objetivos. Abstração de requisitos (Davis)

Requisitos de Software

Desenvolvimento de Software Baseado em Componentes. Paulo C. Masiero

Introdução a Engenharia de Software

3 Uma Abordagem Orientada a Aspectos para o Desenvolvimento de Frameworks

Engenharia de Software Aula 2.1 Introdução à Engenharia de Requisitos. Prof. Bruno Moreno

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

1. INTRODUÇÃO A MODELAGEM DE DADOS

SOFTWARE REUSE. Ian Sommerville, 8º edição Capítulo 18. Aula de Luiz Eduardo Guarino de Vasconcelos

Teste de Software. Estratégias de Teste. Rosemary Silveira Filgueiras Melo

Requisitos de Software

Apresentação do Capítulo 4 MDA (Model-Driven Archtecture) ALUNO: DOMENICO SCHETTINI FILHO NÚMERO USP:

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

Visões Arquiteturais. Visões Arquiteturais. Visões Arquiteturais. Visão Conceitual

Estimativa de Esforço. Estimativas de Software. Subjetividade da Estimativa. Incerteza de Estimativa. Técnicas de Estimativas

Agenda Atual do Curso. Desenvolvimento Dirigido por Modelos (MDD) Abordagem MDD. Agenda da Aula. Abordagem MDD. Manutenção e Geração

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Prof. Fabiano Papaiz IFRN

Perguntas da Aula 2. Respostas da Pergunta 2. Respostas da Pergunta 1. Respostas da Pergunta 4. Respostas da Pergunta 3. Processos de Software

Tópicos da Aula. Diretrizes Gerais. Trabalho Prático (TP) Pontuação do TP. Tema do Trabalho. Projeto de Software Diagrama de Classes

ENGENHARIA DE SOFTWARE. Aula 12 Testes de software

Técnicas para Reutilização de Software

Engenharia de Software II

Reúso de Software. Adaptado de. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 18 Slide by Pearson Education

Enterprise Application Integration (EAI)

Objetos e Componentes Distribuídos: EJB

LIVRO ENGENHARIA DE SOFTWARE FUNDAMENTOS, MÉTODOS E PADRÕES

CURSO DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

Introdução aos computadores, à Internet e à World Wide Web. Prof. Marcelo Roberto Zorzan

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

Aula 12 -QS -Engenharia de SW Orientada a Serviço

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

Análise e Projeto Orientado a Objetos

Padrões Arquitetônicos

Engenheiros de software (algumas vezes conhecidos no mundo da TI como engenheiros de sistemas ou analistas ) e outros interessados no projeto

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

Modelagem Orientada a Objetos

Desenvolvimento Dirigido por Modelos: Ferramentas

Fábricas de Software. Processos de Software. Fábricas de Software. Fábricas de Software 17/08/2010. Jorge Dias

Engenharia de Software

Projeto Integrador. <Projeto Integrador> Documento Visão. Versão <1.0>

Sistemas Distribuídos

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

Introdução aos computadores, à Internet e à World Wide Web. Prof. Marcelo Roberto Zorzan

POO Paradigma Orientado a Objetos. POO Paradigma Orientado a Objetos. POO Paradigma Orientado a Objetos. POO Paradigma Orientado a Objetos

Análise e Projeto de Sistemas

MANUAL PARA DESENVOLVIMENTO DE SOFTWARE TRABALHO DE CONCLUSAO DE CURSO EM SISTEMAS DE INFORMAÇÃO

RUP RATIONAL UNIFIED PROCESS CONCEITOS CHAVES. Prof. Fabiano Papaiz IFRN

Análise de Sistemas. Aula 5

Sistemas de Computação e de Informação

QUALIDADE DE SOFTWARE

Tópicos da Aula. Conceitos de programação orientada a objetos. Projeto orientado a objetos com UML

Aula 12. Aquisição de Hardware

Manutenção de Software

2

Modelos de Processo de Software

Modelagem de Sistemas Web. Modelagem de BD

AULA 1 INTRODUÇÃO AO JAVA

Invocação Remota. Prof. Leonardo Barreto Campos. 1/29

3 Trabalhos relacionados

Qualidade de Software: Visão Geral. SSC 121-Engenharia de Software 1 Profa. Dra. Elisa Yumi Nakagawa

ENGENHARIA DE SOFTWARE. Aula 03 Processos de Software

Desenvolvimento de Aplicações Desktop

Análise e Projeto Orientados a Objetos Aula I Introdução. Prof.: Bruno E. G. Gomes IFRN

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

Aula 5. Ciclo de Vida Espiral; Requisitos Funcionais e não Funcionais; Técnica de Requisitos.

Introdução a Programação

Análise. Orientada a Objetos Modelo Funcional, Modelo Estrutural e Modelo Comportamental. Linguagens: Java, C++, etc.

EA975 - Laboratório de Engenharia de Software

- Engenharia Reversa - Evolução de Sofware. Desenvolvimento como. Requisitos o que. Sistema porque. Profa. Dra. Sandra Fabbri. operacional.

Metodologias Ágeis. Equipe WEB Cercomp

AULA 03: FUNCIONAMENTO DE UM COMPUTADOR

Processos de software

Transcrição:

Disciplina: Engenharia de Software 3 Bimestre Aula 5: ENGENHARIA DE SOFTWARE BASEADA EM COMPONENTES Para o desenvolvimento de softwares customizados, a engenharia de software baseada em componentes é uma forma eficaz, orientada a reuso, de desenvolver novos sistemas corporativos. A engenharia de software baseada em componentes (CBSE, do inglês componente-based software engineering) surgiu na decana de 1990 como uma abordagem para softwares de desenvolvimento de sistemas com base no reuso de componentes de softwares. QUAL A MOTIVAÇÃO DA SUA CRIAÇÃO? O QUE É A CBSE? Por que é importante? Os fundamentos da engenharia de software baseada em componentes são: 1. Deve haver uma separação clara entre a interface de componente e sua implementação. 2. Os padrões de componentes facilitam a integração dos mesmos. Essas normas são incorporadas a um modelo de componentes. Eles definem, no mínimo, como interfaces de componentes devem ser especificadas e como os componentes se comunicam. 3. O middleware fornece suporte de software para integração de componentes. 4. Você precisa de um processo de desenvolvimento que permita que os requisitos evoluam, dependendo da funcionalidade dos componentes disponíveis.

Componentes e Modelos de Componentes Característica de componente Padronizado Independente Passível de composição Implantável Documentado Descrição Significa que um componente usado em um processo CBSE precisa obedecer a um modelo de componente padrão. Esse modelo pode definir as interfaces de componentes, documentação, composição e implantação. Deve ser possível compor e implantá-lo sem precisar usar outros componentes específicos. Para um componente ser composto, todas as interações externas devem ter lugar por meio de interfaces publicamente definidas. Além disso, ele deve proporcionar acesso externo a informações sobre si próprio, como seus métodos e atributos. Para ser implantável um componente deve ser autocontido. Deve ser capaz de operar como uma entidade autônoma em uma plataforma de componentes que forneça uma implementação do modelo de componentes, o que geralmente significa que o componente é binário e não tem como ser compilado antes de ser implantado. Os componentes devem ser completamente documentados para que os potenciais usuários possam decidir se satisfazem a suas necessidades. A sintaxe e, idealmente, a semântica de todas as interfaces de componentes deve ser especificada. Uma maneira útil de se pensar sobre um componente é como um provedor de um ou mais serviços. Quando um sistema precisa de um serviço, ele chama um componente para fornecer esse serviço sem se preocupar sobre onde esse componente está em execução ou a linguagem de programação usada para desenvolvê-lo. Os componentes têm duas interfaces relacionadas, conforme mostra a Figura 1. Essas interfaces refletem os serviços que o componente fornece e os serviços que o componente necessita para funcionar corretamente. Figura 1 - Interfaces de componentes Interface provides define os serviços prestados pelo componente. Essa interface é a API do componente. Ela define os métodos que podem ser chamados por um usuário do componente. Interface requires especifica quais serviços devem ser fornecidos por outros componentes no sistema se um componente deve funcionar corretamente. Se não estiverem disponíveis, o componente não funcionará

Modelos de componentes Um modelo de componente é uma definição de normas para a implementação, documentação e implantação de componentes. Essas normas servem para os desenvolvedores de componentes garantirem que os componentes podem interoperar. Elementos básicos de um modelo de componentes 1. Interfaces 2. Uso

3. Implantação Processos CBSE Os processos CBSE são processos de software que oferecem suporte a engenharia de software baseada em componentes. Consideram as possibilidades de reuso e as diferentes atividades do processo envolvidas no desenvolvimento e uso de componentes reusáveis. Existem dois tipos de processos CBSE 1. Desenvolvimento para reuso: Esse processo está interessado no desenvolvimento de componentes ou serviços que serão reusados em outras aplicações. Esse processo geralmente envolve generalizar os componentes existentes. 2. Desenvolvimento com reuso: Esse é o processo de desenvolvimento de novas aplicações usando componentes e serviços existentes. Como esses processos tem objetivos diferentes, então eles incluem atividades diferentes. No desenvolvimento por processo de reuso, o objetivo é produzir um ou mais componentes reusáveis. Você conhece os componentes com os quais trabalhará, além de ter acesso a seu código-fonte para generalizá-lo. Em desenvolvimento com reuso, você não sabe quais componentes estão disponíveis, por isso você precisa descobrir esses componentes e projetar seu sistema para fazer uso mais eficiente deles. Você não pode ter acesso ao código-fonte do componente.

Composição de componentes A composição de componentes é o processo de integração de componentes. Existem várias maneiras pelas quais você pode compor componentes, conforme mostrado na Figura 2. Figura 2 - Tipos de composição de componentes a) Composição sequencial: Você cria um novo componente a partir de dois componentes existentes, por chamar os componentes existentes em sequência. Os serviços oferecidos pelo componente A são chamados e os resultados retornados por A são usados na chamada para os serviços oferecidos pelo componente B. b) Composição hierárquica: Esse tipo de composição ocorre quando um componente chama diretamente os serviços prestados por outro componente. O componente chamado fornece os serviços necessários. c) Composição aditiva: Ocorre quando dois ou mais componentes são colocados juntos para se criar um novo componente, que combina suas funcionalidades. A e B não são dependentes e não chamam uns aos outros. Quando você escreve novos componentes, especialmente para composição, você deve criar as interfaces desses componentes de maneira que sejam compatíveis com outros componentes do sistema. No entanto, quando os componentes são desenvolvidos para reuso de forma independente, você pode ser confrontado com as incompatibilidades de interfaces. Podem ocorrer três tipos de incompatibilidade: 1. Incompatibilidade de parâmetro: as operações de cada lado da interface têm o mesmo nome, mas com tipos de parâmetro ou número de parâmetros diferentes.

2. Incompatibilidade de operação: o nome das operações nas interfaces provides e requires são diferentes. 3. Incompletude de operação: o funcionamento da interface provides de um componente é um subconjunto da interface requires de outro componente e vice-versa. EXERCÍCIOS 1) O que são componentes? 2) Quais os elementos de um componente?

3) Quais são os benefícios que são proporcionados pela engenharia de software baseada em componentes? (Usando a visão técnica e de negócios) Técnico Negócio