• Nenhum resultado encontrado

03-15EngSoft(EngenhariadeSoftwareBaseadaemComponentes)

N/A
N/A
Protected

Academic year: 2021

Share "03-15EngSoft(EngenhariadeSoftwareBaseadaemComponentes)"

Copied!
24
0
0

Texto

(1)

Engenharia de Software

Prof. Wilkerson de L. Andrade

Versão resumida e traduzida dos slides originais produzidos por Ian Sommerville, Software Engineering, 7th edition. Chapter 19.

Estes slides foram adaptados dos slides gentilmente cedidos pela professora Patrícia D. L. Machado (DSC/UFCG).

(2)

Desenvolvimento Baseado em

Componentes

Engenharia de Software Baseada em

Componentes (CBSE) é uma abordagem para

desenvolvimento de software que tem como

base o reuso de software.

Surgiu a partir das dificuldades do

desenvolvimento orientado a objetos dar

suporte ao reuso: classes tendem a ser muito

detalhadas e específicas.

Componentes são mais abstratos que objetos e

podem ser considerados como provedores de

serviços stand-alone.

(3)

Características Fundamentais de

CBSE

Componentes Independentes

especificados

através de suas interfaces.

Padronização de Componentes

para facilitar

a integração.

Middleware

que provê suporte a

interoperabilidade entre componentes.

Um Processo de Desenvolvimento

que é

(4)

CBSE e Princípios de Design

Além dos benefícios de reuso, CBSE é

baseado em bons princípios de design, tais

como:

Componentes são independentes de forma que

não interferem com outros;

Implementação de componentes é escondida;

Comunicação é feita através de interfaces

bem-definidas;

Plataformas de componentes são

compartilhadas, reduzindo custos de

desenvolvimento.

(5)

Problemas com CBSE

Confidência

– Como um componente sem

código fonte pode ser confiável?

Certificação do Componente

– Quem irá

certificar a qualidade dos componentes?

Predição de propriedades emergentes

– Como

propriedades emergentes de composições de

componentes podem ser previstas?

Negociação de Requisitos

– Como as

diferenças entre as funcionalidades do

componente e um conjunto de requisitos são

negociadas?

(6)

Componentes

Um componente provê um serviço

independente do local que executa ou de

sua linguagem de programação.

É uma entidade executável independente que

pode ser construída a partir de um ou mais

objetos executáveis;

A interface do componente é publicada e todas

as interações são feitas através desta interface.

Podem ser vistos como provedores de

(7)

Definições de Componente

Councill and Heinmann:

A software component is a software element that

conforms to a component model and can be

independently deployed and composed without

modification according to a composition standard.

Szyperski:

A software component is a unit of composition

with contractually specified interfaces and explicit

context dependencies only. A software

component can be deployed independently and is

subject to composition by third-parties.

(8)

Características de Componentes

A padronização de componentes significa que um componente usado em um processo de CBSE precisa estar de acordo com algum modelo padronizado de componente. Esse modelo pode definir interfaces de componente, meta-dados de componente, documentação e implantação.

Um componente deve ser independente – deve ser possível compô-lo e implantá-lo sem precisar usar outros componentes específicos. Em situações em que o componente necessita de serviços fornecidos externamente, estes devem ser explicita-mente definidos em uma especificação de interface ‘requires’. Para um componente poder ser composto, todas as interações externas devem ocorrer por meio de interfaces publicamente definidas. Além disso, deve fornecer acesso externo às infor-mações sobre si próprio, como seus métodos e atributos.

Padronizado

Independente

Passível de

composição

(9)

Características de Componentes

Para ser implantável, um componente precisa ser autocontido e deve ser capaz de operar como uma entidade independente sobre uma plataforma de componente que implementa o

modelo de componente. Isso geralmente significa que o componente é binário e não precisa ser compilado antes de ser implantado.

Componentes precisam ser completamente documentados de maneira que os usuários possam decidir se eles atendem ou não às suas necessidades. A sintaxe e, idealmente, a

semântica de todas as interfaces de componente precisam ser especificadas.

Implantável

(10)

Interface de Componentes

Interface de Provisão de Serviços

Define os serviços que são providos pelo

componente para outros componentes.

Interface de Requisição de Serviços

Define os serviços que devem estar disponíveis

para que o componente execute como

especificado.

(11)

Interface de Componentes

Provides int erface Requires int erface

Component Defines the services

from the component’s environment that it uses

Defines the services that are provided by the component to other components Define os serviços do ambiente dos componentes usados pela interface Define os serviços fornecidos pelo

componente para outros componentes

Interface requires Interface provides Componente

(12)

Um Componente Coletor de Dados

Provides int erface Requires int erface

Data collector addSensor rem oveSensor star tSensor stopSensor testSensor listAll repor t initialise sensorManagem ent sensorData

Interface requires Interface provides

(13)

Componentes e Objetos

Componentes são entidades que podem ser

instaladas.

Componentes não definem tipos – um

componente é uma instância.

Implementação de Componentes é opaca.

Componentes são independentes de

linguagem.

(14)

Modelos de Componentes

Um modelo de componente é uma definição

de padrões para implementação,

documentação e depósito.

Exemplos de Modelos de Componentes:

EJB model (Enterprise Java Beans)

COM+ model (.NET model)

Corba Component Model

O modelo de componentes especifica como

interfaces devem ser definidas e os

elementos que devem ser incluídos nesta

definição.

(15)

Elementos de um Modelo de

Componentes

Com ponent m odel Interfaces Usage inform ation Deploy m ent and use Interface definition Specific inter faces Com position Nam ing convention Meta-data access Custom isation Packag ing Docum entation Evolution suppor t Interfaces Informações De uso Implantação e uso Definição de Interface Composição Interfaces específicas Convenção de nomes Acesso a metadados Personalização Empacota-mento Documentação Apoio à evolução

Especifica como interfaces devem ser definidas e os elementos que devem ser incluídos tais como operações, nomes, parâmetros, exceções. Além de interfaces específicas

Define como o acesso a meta-dados

(info sobre interfaces e atributos) é provido

(ex. reflexão em Java)

Modelo de componente

Especifica como componentes binários podem ser configurados para uma ambiente particular, como devem ser empacotados e

(16)

Middleware

Modelos de Componentes são a base para a

concepção do middleware que provê suporte a

execução dos componentes.

A implementação de modelos de componentes

provê:

Serviços de plataforma que dão suporte a

comunicação entre componentes;

Serviços Horizontais que são serviços independentes

de aplicação que podem ser usados por diferentes

componentes.

Para usar serviços providos por um modelo,

componentes são depositados em um

(17)

Serviços de um Modelo de

Componentes

Platform services

Addressing Inter face definition Com ponent com m unications Exception m anagem ent Horizontal services Security Transaction m anagem ent Concurrency Com ponent m anagem ent Persistence Resource m anagem ent Serviços horizontais Gerenciamento de Componentes Concorrência Gerenciamento de Transações Persistência Gerenciamento de recursos Proteção Serviços de plataforma Endereçamento Definição de Interfaces Gerenciamento De exceções Comunicação de componentes

(18)

Desenvolvimento de

Componentes para Reuso

Componentes desenvolvidos para uma

aplicação específica usualmente precisam ser

generalizados para poderem ser reusados.

Para facilitar o reuso, o componente deve:

Refletir abstrações estáveis de domínio;

Esconder representação interna;

Ser tão independente quanto possível;

Publicar Exceções.

Reuso X Uso

Quanto mais geral for a interface, maior a

reusabilidade, no entanto torna-se mais complexo e

difícil de usar.

(19)

O Processo CBSE

Requisitos gerais do sistema Identificar componentes candidatos Alterar requisitos de acordo com componentes encontrados Projeto de arquitetura Identificar componentes candidatos Integrar componentes para criar sistema

(20)

Processo de Identificação de

Componentes

Busca de componentes Seleção de componentes Validação de componentes

(21)

Trade-offs

Na composição, podem haver:

Conflitos entre requisitos funcionais e não funcionais,

e

Conflitos entre desenvolvimento rápido e evolução do

sistema.

Algumas considerações precisam ser feitas:

Que composição é mais efetiva para atender aos

requisitos funcionais?

Quais são as propriedades emergentes do sistema

composto?

Que composição irá permitir adaptações relativas a

mudanças de requisitos?

Como requisitos não funcionais podem ser

atendidos?

(22)

UML Components Process

(23)
(24)

Usando UML

Voltada para desenvolvimento orientado a

objetos.

Componentes – Utilização de conceitos em

UML de outras formas –

Técnica x Notação – um mesmo diagrama

pode ser usado de diferentes formas.

Potencialidade para extensão.

Referências

Documentos relacionados

Ent ret ant o, a discussão vai para além da capacit ação para o m ercado de t rabalho, de acordo com Telles ( 1999) não há lugar para os desem pregados e excluídos no m om ent o

Training ( CAPES) ... Medical m anagem ent of dent al and oral pain. Aust Pr escr. 7KHHI¿FDF\RIQRQRSLRLGDQDOJHVLFVIRUSRVWRSHUDWLYHGHQWDOSDLQD m et a- analy sis. Effect iv eness of

• A falta de m ecanism os reguladores estritos para a aprovação de procedim ent os cirúrgicos e disposit ivos novos, em m uit os países, leva ao ent endim ent o de que ensaios

• A falta de m ecanism os reguladores estritos para a aprovação de procedim ent os cirúrgicos e disposit ivos novos, em m uit os países, leva ao ent endim ent o de que ensaios

Foram ent revist adas 125 m ulheres t rabalhadoras da área de Zapallal, Lim a, com ent revist as aprofundadas de 16 m ulheres que haviam sofrido violência no seu am bient e de

Nur ses' m anagem ent in t he clinical pract ice: pr oblem s and.. challenges in sear ch of com

The subj ect cont ains four m odules: Nur sing Hist or y ; Healt h Policies in Brazil; Nur sing Wor k Pr ocess: car e deliver y and m anagem ent ; et hics and cit

De m aneir a consist ent e, m aior es níveis de apoio social aum ent ar am as chances de r ealização de pr át icas adequadas do exam e Papanicolaou e de aut oexam e das m am as,