60
Desenvolvimento baseado em componentes: o Método KobrA MO 409 – nov/2004 Mirian Ellen de Freitas Sandro Danilo Gatto

Desenvolvimento baseado em componentes: o Método KobrA MO 409 – nov/2004 Mirian Ellen de Freitas Sandro Danilo Gatto

Embed Size (px)

Citation preview

Page 1: Desenvolvimento baseado em componentes: o Método KobrA MO 409 – nov/2004 Mirian Ellen de Freitas Sandro Danilo Gatto

Desenvolvimento baseado em componentes: o Método KobrA

MO 409 – nov/2004

Mirian Ellen de FreitasSandro Danilo Gatto

Page 2: Desenvolvimento baseado em componentes: o Método KobrA MO 409 – nov/2004 Mirian Ellen de Freitas Sandro Danilo Gatto

Copyright © KOBRA Group 2000

Roteiro

Desenvolvimento baseado em componentes

Linha de Produtos

Metodologia PuLSE

O Método KobrA

Conclusões

Referências

Copyright © KOBRA Group 2000

Roteiro

1 Dsv baseado em Componentes

2 Linha de Produtos.

3 Metodologia PuLSE

7 Referências

4 O Metodo KobrA

6 Conclusões

5 Exemplo

Page 3: Desenvolvimento baseado em componentes: o Método KobrA MO 409 – nov/2004 Mirian Ellen de Freitas Sandro Danilo Gatto

- 3 -Copyright © KOBRA Group 2000

Desenvolvimento baseado em componentes

Desenvolvimento de aplicações de software através da montagem de blocos de código auto-contidos e pré-fabricados.

Frustração com OO

Componentes são mais abstratos que classes Provedores de serviço

Vantagens Custos mais baixos (reuso e manutenção mais fáceis) Desenvolvimento mais rápido Menores riscos Aumento de confiabilidade (e qualidade)

Componentes “caixa-preta”

Problema: disponibilidade de metodologias e frameworks

Roteiro

1 Dsv baseado em Componentes

2 Linha de Produtos.

3 Metodologia PuLSE

7 Referências

4 O Metodo KobrA

6 Conclusões

5 Exemplo

Page 4: Desenvolvimento baseado em componentes: o Método KobrA MO 409 – nov/2004 Mirian Ellen de Freitas Sandro Danilo Gatto

- 4 -Copyright © KOBRA Group 2000

Técnicas já madura na indústria: automotiva, aeroespacial, eletrônica.

Linha de produto de software: -Conjunto de aplicações similares baseadas em

arquitetura comum (arquitetura de linha de produto), mais um conjunto de componentes.

Famílias de produtos.

Controvérsia: frameworks e engenharia de domínio têm os mesmos propósitos.

– Vê-los como técnicas complementares.

Linha de Produtos

Roteiro

1 Dsv baseado em Componentes

2 Linha de Produtos.

3 Metodologia PuLSE

7 Referências

4 O Metodo KobrA

6 Conclusões

5 Exemplo

Page 5: Desenvolvimento baseado em componentes: o Método KobrA MO 409 – nov/2004 Mirian Ellen de Freitas Sandro Danilo Gatto

- 5 -Copyright © KOBRA Group 2000

Linha de Produtos (cont.)

Product

Product

Product

Roteiro

1 Dsv baseado em Componentes

2 Linha de Produtos.

3 Metodologia PuLSE

7 Referências

4 O Metodo KobrA

6 Conclusões

5 Exemplo

Page 6: Desenvolvimento baseado em componentes: o Método KobrA MO 409 – nov/2004 Mirian Ellen de Freitas Sandro Danilo Gatto

- 6 -Copyright © KOBRA Group 2000

Metodologia PuLSE

•Product Line Software Engineering

Uma metodologia de construção e utilização de linhas de produto.

Fases de: Desenvolvimento Componentes técnicos Componentes de suporte

Base para vários projetos, em especial o KobrA

Roteiro

1 Dsv baseado em Componentes

2 Linha de Produtos.

3 Metodologia PuLSE

7 Referências

4 O Metodo KobrA

6 Conclusões

5 Exemplo

Page 7: Desenvolvimento baseado em componentes: o Método KobrA MO 409 – nov/2004 Mirian Ellen de Freitas Sandro Danilo Gatto

O Método KobrA

Desenvolvimento baseado em componentes

Arquiteturas orientadas a modelo

Engenharia de Linha de Produtos

Roteiro

1 Dsv baseado em Componentes

2 Linha de Produtos.

3 Metodologia PuLSE

7 Referências

4 O Metodo KobrA

6 Conclusões

5 Exemplo

Page 8: Desenvolvimento baseado em componentes: o Método KobrA MO 409 – nov/2004 Mirian Ellen de Freitas Sandro Danilo Gatto

- 8 -Copyright © KOBRA Group 2000

O Projeto KobrA

Patrocinado pelo Ministério Alemão para Pesquisa e Tecnologia - German Ministry for Research and Technology (BMBF)

KoKomponentenbbasierrte AAnwendungsentwicklung

Quatro parceiros Softlab GMBH, Munich (líderes) PSIPENTA Software Systems, Berlin GMD FIRST, Berlin Fraunhofer IESE, Kaiserslautern

Três anos de duração: Janeiro 1999 -> Dezembro 2001

Produtos Método, Workbench, Componentes

Copyright © KOBRA Group 2000

Fundamentos do Método

Roteiro

1 Dsv baseado em Componentes

2 Linha de Produtos.

3 Metodologia PuLSE

7 Referências

4 O Metodo KobrA

6 Conclusões

O Projeto KobrA

Influências

Modelos

Dimensões

Características

5 Exemplo

Page 9: Desenvolvimento baseado em componentes: o Método KobrA MO 409 – nov/2004 Mirian Ellen de Freitas Sandro Danilo Gatto

- 9 -Copyright © KOBRA Group 2000

Influência de Metodologias sobre o KobrA

Catalysis

Fusion

Cleanroom

Copyright © KOBRA Group 2000

Product LineEngineering

(PuLSE)

OPEN

SELECTPerspective

Unified Process

OMT Booch

Objectory

Fundamentos do Método

Roteiro

1 Dsv baseado em Componentes

2 Linha de Produtos.

3 Metodologia PuLSE

7 Referências

4 O Metodo KobrA

6 Conclusões

O Projeto KobrA

Influências

Modelos

Dimensões

Características

5 Exemplo

Page 10: Desenvolvimento baseado em componentes: o Método KobrA MO 409 – nov/2004 Mirian Ellen de Freitas Sandro Danilo Gatto

- 10 -Copyright © KOBRA Group 2000

Fundamentos do Método KobrA

Integração dos conceitos de linha de produto e desenvolvimento baseado em componentes Artefato central é o framework

Descrição genérica + variantes a partir de modelos de decisão Aplicações específicas são geradas resolvendo os modelos de decisão

Diagramas baseados em UML, com extensões Separação de conceitos: produto processo Método organizado em três dimensões ortogonais:

Abstração Generalidade Composição

Apóia todas as fases de desenvolvimento - (ii) fases de desenvolvimento que a metodologia abrange Desenvolvimento incremental

Fundamentos do Método

Roteiro

1 Dsv baseado em Componentes

2 Linha de Produtos.

3 Metodologia PuLSE

7 Referências

4 O Metodo KobrA

6 Conclusões

O Projeto KobrA

Influências

Modelos

Dimensões

Características

5 Exemplo

Page 11: Desenvolvimento baseado em componentes: o Método KobrA MO 409 – nov/2004 Mirian Ellen de Freitas Sandro Danilo Gatto

- 11 -Copyright © KOBRA Group 2000

Dimensões do Desenvolvimento KobrA

Fundamentos do Método

Roteiro

1 Dsv baseado em Componentes

2 Linha de Produtos.

3 Metodologia PuLSE

7 Referências

4 O Metodo KobrA

6 Conclusões

O Projeto KobrA

Influências

Modelos

Dimensões

Características

5 Exemplo

Page 12: Desenvolvimento baseado em componentes: o Método KobrA MO 409 – nov/2004 Mirian Ellen de Freitas Sandro Danilo Gatto

- 12 -Copyright © KOBRA Group 2000

Komponents (i) características

Frameworks e aplicações KobrA são organizadas em hierarquias de componentes

Komponents componentes.

Komponent = componente KobrA.

Software executável é composto por instâncias de komponents.

Um komponent pode considerado como uma mistura de classe pacote.

Fundamentos do Método

Roteiro

1 Dsv baseado em Componentes

2 Linha de Produtos.

3 Metodologia PuLSE

7 Referências

4 O Metodo KobrA

6 Conclusões

O Projeto KobrA

Influências

Modelos

Dimensões

Características

5 Exemplo

Page 13: Desenvolvimento baseado em componentes: o Método KobrA MO 409 – nov/2004 Mirian Ellen de Freitas Sandro Danilo Gatto

- 13 -Copyright © KOBRA Group 2000

Komponents (cont.) (i) características

Fundamentos do Método

Roteiro

1 Dsv baseado em Componentes

2 Linha de Produtos.

3 Metodologia PuLSE

7 Referências

4 O Metodo KobrA

6 Conclusões

O Projeto KobrA

Influências

Modelos

Dimensões

Características

5 Exemplo

Page 14: Desenvolvimento baseado em componentes: o Método KobrA MO 409 – nov/2004 Mirian Ellen de Freitas Sandro Danilo Gatto

- 14 -Copyright © KOBRA Group 2000

Princípios de Modelagem (i) características

Uniformidade

Encapsulamento

Localidade

Parcimônia

Fundamentos do Método

Roteiro

1 Dsv baseado em Componentes

2 Linha de Produtos.

3 Metodologia PuLSE

7 Referências

4 O Metodo KobrA

6 Conclusões

O Projeto KobrA

Influências

Modelos

Dimensões

Características

5 Exemplo

Page 15: Desenvolvimento baseado em componentes: o Método KobrA MO 409 – nov/2004 Mirian Ellen de Freitas Sandro Danilo Gatto

- 15 -Copyright © KOBRA Group 2000

Especificação Realização (cont.) (i) características

Fundamentos do Método

Roteiro

1 Dsv baseado em Componentes

2 Linha de Produtos.

3 Metodologia PuLSE

7 Referências

4 O Metodo KobrA

6 Conclusões

O Projeto KobrA

Influências

Modelos

Dimensões

Características

5 Exemplo

Page 16: Desenvolvimento baseado em componentes: o Método KobrA MO 409 – nov/2004 Mirian Ellen de Freitas Sandro Danilo Gatto

- 16 -Copyright © KOBRA Group 2000

Especificação Realização (i) características

DNA (Data aNd Activities)

Dados e atividades são analisados separadamente, depois são integrados

Fundamentos do Método

Roteiro

1 Dsv baseado em Componentes

2 Linha de Produtos.

3 Metodologia PuLSE

7 Referências

4 O Metodo KobrA

6 Conclusões

O Projeto KobrA

Influências

Modelos

Dimensões

Características

5 Exemplo

Page 17: Desenvolvimento baseado em componentes: o Método KobrA MO 409 – nov/2004 Mirian Ellen de Freitas Sandro Danilo Gatto

- 17 -Copyright © KOBRA Group 2000

“Personificação” de componentes (i) características

Personificação (“embodiment”): ato de dar forma concreta a algo

Reuso Implementação “construction”, “building” e “release”

Fundamentos do Método

Roteiro

1 Dsv baseado em Componentes

2 Linha de Produtos.

3 Metodologia PuLSE

7 Referências

4 O Metodo KobrA

6 Conclusões

O Projeto KobrA

Influências

Modelos

Dimensões

Características

5 Exemplo

Page 18: Desenvolvimento baseado em componentes: o Método KobrA MO 409 – nov/2004 Mirian Ellen de Freitas Sandro Danilo Gatto

- 18 -Copyright © KOBRA Group 2000

Monitoramento e Controle de Projeto (i) características

É considerada a quarta dimensão do método Medição e garantia de qualidade Manutenção

Fundamentos do Método

Roteiro

1 Dsv baseado em Componentes

2 Linha de Produtos.

3 Metodologia PuLSE

7 Referências

4 O Metodo KobrA

6 Conclusões

O Projeto KobrA

Influências

Modelos

Dimensões

Características

5 Exemplo

Page 19: Desenvolvimento baseado em componentes: o Método KobrA MO 409 – nov/2004 Mirian Ellen de Freitas Sandro Danilo Gatto

- 19 -Copyright © KOBRA Group 2000

Ferramentas de apoio (v) se há ferramentas que apoiem a construção e validação dos modelos

Ferramentas

MARMOT stands for Method for Component- Based Real-Time Object-Oriented Development and Testing.

Fundamentos do Método

Roteiro

1 Dsv baseado em Componentes

2 Linha de Produtos.

3 Metodologia PuLSE

7 Referências

4 O Metodo KobrA

6 Conclusões

O Projeto KobrA

Influências

Modelos

Dimensões

Características

5 Exemplo

Page 20: Desenvolvimento baseado em componentes: o Método KobrA MO 409 – nov/2004 Mirian Ellen de Freitas Sandro Danilo Gatto

- 20 -Copyright © KOBRA Group 2000

Modelos utilizados pelo método (iii) modelos usados pelo método

Especificação de Komponents:

modelo Estrutural;

modelo Comportamental;

modelo Funcional;

modelo de Decisão.

Realização de Komponentes:

modelo de Iteração;

modelo Estrutural;

modelo Atividade;

Modelo de Decisão.

Fundamentos do Método

Roteiro

1 Dsv baseado em Componentes

2 Linha de Produtos.

3 Metodologia PuLSE

7 Referências

4 O Metodo KobrA

6 Conclusões

O Projeto KobrA

Influências

Modelos

Dimensões

Características

5 Exemplo

Page 21: Desenvolvimento baseado em componentes: o Método KobrA MO 409 – nov/2004 Mirian Ellen de Freitas Sandro Danilo Gatto

- 21 -Copyright © KOBRA Group 2000

Modelos utilizados pelo método - Modelos Genéricos de Componetes (iii) modelos usados pelo método

Modelo Estructurall(UML class/object diagrams)

Modelo Funcional(operation schemata)

Modelo Estrutural(UML class/object diagrams)

Modelo de Iteração(UML collaboration diagrams)

Modelo de Atividades(UML activity diagrams)

Modelo de Comportamento(UML statechart diagram)

Modelo de Decisão(textual)

Komponent

Modelo de Decisão(textual)

Especificação

Realização

Fundamentos do Método

Roteiro

1 Dsv baseado em Componentes

2 Linha de Produtos.

3 Metodologia PuLSE

7 Referências

4 O Metodo KobrA

6 Conclusões

O Projeto KobrA

Influências

Modelos

Dimensões

Características

5 Exemplo

Page 22: Desenvolvimento baseado em componentes: o Método KobrA MO 409 – nov/2004 Mirian Ellen de Freitas Sandro Danilo Gatto

- 22 -Copyright © KOBRA Group 2000

Modelos de Componetes (iii) modelos usados pelo método

Bank’s context

Bank

TellerConverter

ComponentReuse

COTS Component

Dic.

Fundamentos do Método

Roteiro

1 Dsv baseado em Componentes

2 Linha de Produtos.

3 Metodologia PuLSE

7 Referências

4 O Metodo KobrA

6 Conclusões

O Projeto KobrA

Influências

Modelos

Dimensões

Características

5 Exemplo

Page 23: Desenvolvimento baseado em componentes: o Método KobrA MO 409 – nov/2004 Mirian Ellen de Freitas Sandro Danilo Gatto

- 23 -Copyright © KOBRA Group 2000

Modelos de Componentes – Exemplo de Sistema Bancário International Simplificado

(SIB) Sistema que fornece serviços bancários simples aos clientes.

Criação e Gerenciamento de contas simples Cálculos simples de conversão de moeda

Cliente podem abrir contas simples com um saldo mínimo de 50 EUR. Uma vez aberta a conta ele pode depositar e sacar dinheiro. O estado corrente da conta também é visto pelos bancários.

O banco mantém um conjunto de taxas de conversão entre EUR e outras moedas. Clientes podem requisitar quantias em moeda estrangeira, para ser convertidas em EUR. Os bancários podem entrar com novas taxas a qualquer tempo.

Fundamentos do Método

Roteiro

1 Dsv baseado em Componentes

2 Linha de Produtos.

3 Metodologia PuLSE

7 Referências

4 O Metodo KobrA

6 Conclusões

O Projeto KobrA

Influências

Modelos

Dimensões

Características

5 Exemplo

Page 24: Desenvolvimento baseado em componentes: o Método KobrA MO 409 – nov/2004 Mirian Ellen de Freitas Sandro Danilo Gatto

- 24 -Copyright © KOBRA Group 2000

Atividades de Engenharia do Framework

- Atividades de Engenharia do Framework.

- Modelos de Realização

Modelo estrutural – descreve os dados e componentes necessários para atendimento do “contract”

– Um ou mais diagrama de classe– Zero ou mais diagramas de objetos

Modelo de atividade – descreve os algoritmos usados para realização do componente

– Zero ou mais diagramas de atividadeModelo de Interação – descreve como operações do componente são realizadas em termos de interações

– Zero ou mais diagramas de interação (por operação)

Fundamentos do Método

Roteiro

1 Dsv baseado em Componentes

2 Linha de Produtos.

3 Metodologia PuLSE

7 Referências

4 O Metodo KobrA

6 Conclusões

O Projeto KobrA

Influências

Modelos

Dimensões

Características

5 Exemplo

Page 25: Desenvolvimento baseado em componentes: o Método KobrA MO 409 – nov/2004 Mirian Ellen de Freitas Sandro Danilo Gatto

- 25 -Copyright © KOBRA Group 2000

Atividades de RealizaçãoModelagem de Negócio

– Quem faz o que e quando– atores, atividades, dados e regras– Descrições ao nível de abstração de negócios

Modelagem de dados Identificar dados organizacionais e tecnológicos Identificar dados de materiais e informações

Modelagem de Uso Modelagem de atividades

– Decompor atividades que envolvem o sistema Incorporar análise de casos de uso

Modelagem de Interação Integrar atores, atividades e regras

Controle de qualidade

Fundamentos do Método

Roteiro

1 Dsv baseado em Componentes

2 Linha de Produtos.

3 Metodologia PuLSE

7 Referências

4 O Metodo KobrA

6 Conclusões

O Projeto KobrA

Influências

Modelos

Dimensões

Características

5 Exemplo

Page 26: Desenvolvimento baseado em componentes: o Método KobrA MO 409 – nov/2004 Mirian Ellen de Freitas Sandro Danilo Gatto

- 26 -Copyright © KOBRA Group 2000

SIB – Modelo Estrutural de Contexto

Bank1

Account

ClerkCustomername

accountIDownerNamebalance

*

*1

**

*

1

Bank Conte

xt

Bank Context Class Diagram

<<Subject>>

Page 27: Desenvolvimento baseado em componentes: o Método KobrA MO 409 – nov/2004 Mirian Ellen de Freitas Sandro Danilo Gatto

- 27 -Copyright © KOBRA Group 2000

openNewAccount() – diagrama de atividades

SIB – Modelo de Atividades de Contexto

DecideStarting Balance

:Customer :Clerk :Bank

Balance 50 EURBalance < 50 EUR

CheckStarting Balance

CreateAccount

DepositBalance

Bank Conte

xt

Page 28: Desenvolvimento baseado em componentes: o Método KobrA MO 409 – nov/2004 Mirian Ellen de Freitas Sandro Danilo Gatto

- 28 -Copyright © KOBRA Group 2000

SIB - Modelo de Interação de Contexto

openNewAccount() - diagrama de seqüência

:Bank:Customer :Clerk

OpenNewAccount (bal, curr, name)

[bal < 50 EUR] InsufficentMessage()[bal 50 EUR]createAccount (name, curr) : ID

deposit (ID, bal, curr)

Bank Conte

xt

Page 29: Desenvolvimento baseado em componentes: o Método KobrA MO 409 – nov/2004 Mirian Ellen de Freitas Sandro Danilo Gatto

- 29 -Copyright © KOBRA Group 2000

SIB - Atividades de Especificação

Para descrever o comportamento externo do componente através da definição de:

Serviços suportados/oferecidos (interface fornecida) Serviços requeridos (de outros componentes)

Envolve Modelagem de

Estrutura Dados manipulados pelo componente e por uma

estrutura externa visível – diagramas de classe e diagramas de objetos

Funcionalidades Computações realizadas pelo componente –

especificação de operação

Comportamento Estados exibidos pelo componente e eventos que os

modificam – diagramas de statechart

Fundamentos do Método

Roteiro

1 Dsv baseado em Componentes

2 Linha de Produtos.

3 Metodologia PuLSE

7 Referências

4 O Metodo KobrA

6 Conclusões

O Projeto KobrA

Influências

Modelos

Dimensões

Características

5 Exemplo

Page 30: Desenvolvimento baseado em componentes: o Método KobrA MO 409 – nov/2004 Mirian Ellen de Freitas Sandro Danilo Gatto

- 30 -Copyright © KOBRA Group 2000

SIB – Modelo Estrutural de Especificação

createAccount()deposit()viewAccount()withdraw()closeAccount()setRate()convertToEuro() convertFromEuro()

BanknoOfAccounts : Integer := 0 Account

accountID : StringownerName: Stringbalance : Floatdenom : String

manages1 *

Bank

Bank Specification – Diagrama de Classe

<<subject>>

Page 31: Desenvolvimento baseado em componentes: o Método KobrA MO 409 – nov/2004 Mirian Ellen de Freitas Sandro Danilo Gatto

- 31 -Copyright © KOBRA Group 2000

SIB – Modelo Funcional de Especificação

Name createAccount Informal Description

An account is opened in a particular currency for a customer with a particular name, and the Account ID is returned

Constraints --

Receives name : String currency:String

Returns A String with the ID of the account

Changes bank Assumes There is an exchange rate for the specified currency Result A new account with a unique accountID in the denomination,

currency, has been generated The name of the customer has been stored in account The account ID has been returned

Bank

createAccount – Especificação da Operação

Page 32: Desenvolvimento baseado em componentes: o Método KobrA MO 409 – nov/2004 Mirian Ellen de Freitas Sandro Danilo Gatto

- 32 -Copyright © KOBRA Group 2000

SIB – Modelo Funcional de Especificação (cont.)

Name withdraw Informal Description

An amount of money in a particular currency is withdrawn from an account.

Constraints --

Receives accountID : String currency:String amount:Float

Returns A boolean indicating whether the withdrawal was possible

Changes account with accountID = ID Assumes -- Result If ID or currency are not valid, the operation has been aborted

and an exception has been raised. Else if account.balance >= amount, account.balance := account.balance – amount and „true“ has been returned Otherwise „false“ has been returned.

Bank

withdraw – Especificação da Operação

Page 33: Desenvolvimento baseado em componentes: o Método KobrA MO 409 – nov/2004 Mirian Ellen de Freitas Sandro Danilo Gatto

- 33 -Copyright © KOBRA Group 2000

SIB – Modelo Comportamental de Especificação

Empty

AccountsButNoRates

RatesButNoAccounts

AccountAandRates

createAccount/deposit/viewAccount/withdraw /closeAccount [noOfAccounts > 2]/

noOfAccounts : Integer

createAccount/deposit/viewAccount/withdraw/closeAccount [noOfAccounts > 2]/setRate/convertToEuro/convertFromEuro/

noOfAccounts : Integer := 0

setRate/convertToEuro/convertFromEuro/

createAccount

setRate

setRate

closeAccount [noOFAccounts = 1 ]

createAccount

closeAccount [noOFAccounts = 1 ]

{crateAccount, deposit, withdraw, viewAccount mustall be in Euro}

Bank

Page 34: Desenvolvimento baseado em componentes: o Método KobrA MO 409 – nov/2004 Mirian Ellen de Freitas Sandro Danilo Gatto

- 34 -Copyright © KOBRA Group 2000

SIB – Atividades de Realização de um Componente – Modelo Estrutural

:Bank :Converter:Teller

PersistentAccount

Bank

Bank Realização – Diagrama de Objeto

Page 35: Desenvolvimento baseado em componentes: o Método KobrA MO 409 – nov/2004 Mirian Ellen de Freitas Sandro Danilo Gatto

- 35 -Copyright © KOBRA Group 2000

SIB – Atividades de Realização- Modelo de Interação

:Bank

:Teller

createAccount (name, curr) : ID

1: createAccount (name, curr) : ID

Bank

createAccount - Diagrama de Colaboração

Page 36: Desenvolvimento baseado em componentes: o Método KobrA MO 409 – nov/2004 Mirian Ellen de Freitas Sandro Danilo Gatto

- 36 -Copyright © KOBRA Group 2000

SIB – Atividades de Realização- Modelo de Interação

:Bank

:Converter

withdraw (ID, curr, am) : res

4 : [bal > euro] withdraw (euro) : res

a : PersistentAccount

1: getAccount(ID) : a

:Teller

2: convertToEuro (curr, am) : euro

3 :getBalance() :bal

Bank

withdraw - Diagrama de Colaboração

Page 37: Desenvolvimento baseado em componentes: o Método KobrA MO 409 – nov/2004 Mirian Ellen de Freitas Sandro Danilo Gatto

- 37 -Copyright © KOBRA Group 2000

SIB – Atividades de Realização-Modelo de Atividades

getAccount

GetBalance evaluateRequest

WidthrawCash returnFalse

returnTrue

:Teller :Account :Bank

Balance RequestBalance < Request

:Converter

ConvertRequest

Bank

Page 38: Desenvolvimento baseado em componentes: o Método KobrA MO 409 – nov/2004 Mirian Ellen de Freitas Sandro Danilo Gatto

- 38 -Copyright © KOBRA Group 2000

SIB – Atividades de Realização- Árvore de Contenção dos componentes

Bank

Teller Converter

Dictionary

Page 39: Desenvolvimento baseado em componentes: o Método KobrA MO 409 – nov/2004 Mirian Ellen de Freitas Sandro Danilo Gatto

- 39 -Copyright © KOBRA Group 2000

SIB – Atividades de Realização-Modelo Estrutual

Bank

Converter

1

1

PersistentAccount

1

11 *

*

setRate()convertToEuro()convertFromEuro()

createAccount()getAccount()closeAccount()

Teller

accesses

Account

deposit()withdraw()getbalance()

*

1

Bank

<<komponent>>

<<komponent>>

<<subject>>

Page 40: Desenvolvimento baseado em componentes: o Método KobrA MO 409 – nov/2004 Mirian Ellen de Freitas Sandro Danilo Gatto

- 40 -Copyright © KOBRA Group 2000

SIB – Atividades de realização - Especificação de Dicionário do Modelo Estrutural

Dictionary

PersistentObject*Store()

Retrieve()Remove()

DictionarynoOfEntries : Integer := 0

Especificação de Dicionário – Diagrama de Classe

<<subject>>

Page 41: Desenvolvimento baseado em componentes: o Método KobrA MO 409 – nov/2004 Mirian Ellen de Freitas Sandro Danilo Gatto

- 41 -Copyright © KOBRA Group 2000

SIB – Atividades de Especificação - Determinação de Variação – Modelo Estrutural

createAccount() Deposit()showAccount()withdraw()closeAccount()<<variant>> setRate()<<variant>> convertToEuro()<<variant>> convertFromEuro()

BanknoOfAccounts : Integer := 0 Account

accountID : Stringbalance : Float<<variant>> denom : String<<variant>> limit : Float

manages1 *

Bank

Variações Conta tem um limite permitido (overdraft) Banco não fornece bancos internacionais

<<subject>>

Page 42: Desenvolvimento baseado em componentes: o Método KobrA MO 409 – nov/2004 Mirian Ellen de Freitas Sandro Danilo Gatto

- 42 -Copyright © KOBRA Group 2000

SIB – Atividades de Especificação -Determinação de Variação – Modelo Funcional

Name withdraw Informal Description

An amount of money <variant> in a particular currency </variant> is withdrawn from an account.

Constraints --

Receives ID : String <variant> currency:String </variant> amount:Float

Returns A boolean indicating whether the withdrawal was possible

Changes account with ID = ID Assumes -- Result If ID <variant> or currency </variant> are not valid, the

operation has been aborted and an exception raised. else if account.balance <variant> -account.limit </variant> >= amount, account.balance := account.balance – amount and "true“ has been returned otherwise „false“ has been returned.

Bank

Page 43: Desenvolvimento baseado em componentes: o Método KobrA MO 409 – nov/2004 Mirian Ellen de Freitas Sandro Danilo Gatto

- 43 -Copyright © KOBRA Group 2000

Atividades de Realização de um Componente – Modelo Estrutural – Diagrama de Classe

Bank<<variant>>Converter

1

PersistentAccount

1

1

*

setRate()convertToEuro()convertFromEuro()

createAccount()getAccount()closeAccount()

Teller

accesses

creates

deposit()Withdraw()

*

1

Bank

createAccount()viewAccount()closeAccount()deposit()<<variant>> withdraw()<<variant>> setRate()<<variant>> convertToEuro()<<variant>> convertFromEuro()

AccountaccountID : Stringbalance : Float<<variant>> denom : String<<variant>> limit : Float

1

*

Page 44: Desenvolvimento baseado em componentes: o Método KobrA MO 409 – nov/2004 Mirian Ellen de Freitas Sandro Danilo Gatto

- 44 -Copyright © KOBRA Group 2000

Question Diagram Effect

Y

Class Diagram Remove attribute Account.limit 1

Is a customer allowed to overdraw his/her account up to a certain limit?

N Operation Schema withdraw

Remove limit from <Result>

Y

Class Diagram Remove operation Bank.setRate()

Remove operation Bank.convertToEuro()

Remove operation Bank.convertFromEuro() Remove currency from <Description> Remove currency from <Receives>

2 Is it an international bank that handles different currencies? N

Operation specification

withdraw Remove currency from <Result>

Atividades de Realização de um Componente Modelos de Decisão - Exemplo: Especificação de banco

Dictionary

Page 45: Desenvolvimento baseado em componentes: o Método KobrA MO 409 – nov/2004 Mirian Ellen de Freitas Sandro Danilo Gatto

- 45 -Copyright © KOBRA Group 2000

Question Diagram Effect

Y

Class Diagram Remove attributeAccount.limit1

Is a customer allowedto overdraw his/heraccount up to acertain limit?

N… …

YRemove componentConverterRemove operationBank.withdraw()Class Diagram

Remove operationBank.deposit()

2Is it an internationalbank that handlesdifferent currencies? N

… …

Atividades de Realização de um Componente Modelos de Decisão - Exemplo: Especificação de banco

Dictionary

Page 46: Desenvolvimento baseado em componentes: o Método KobrA MO 409 – nov/2004 Mirian Ellen de Freitas Sandro Danilo Gatto

- 46 -Copyright © KOBRA Group 2000

SIB – Realização de Contexto

Page 47: Desenvolvimento baseado em componentes: o Método KobrA MO 409 – nov/2004 Mirian Ellen de Freitas Sandro Danilo Gatto

- 47 -Copyright © KOBRA Group 2000

SIB – Especificação

Page 48: Desenvolvimento baseado em componentes: o Método KobrA MO 409 – nov/2004 Mirian Ellen de Freitas Sandro Danilo Gatto

- 48 -Copyright © KOBRA Group 2000

SIB – Realização

Page 49: Desenvolvimento baseado em componentes: o Método KobrA MO 409 – nov/2004 Mirian Ellen de Freitas Sandro Danilo Gatto

- 49 -Copyright © KOBRA Group 2000

Teller - Especificação

Page 50: Desenvolvimento baseado em componentes: o Método KobrA MO 409 – nov/2004 Mirian Ellen de Freitas Sandro Danilo Gatto

- 50 -Copyright © KOBRA Group 2000

SIB – Especificação de Banco específico

Page 51: Desenvolvimento baseado em componentes: o Método KobrA MO 409 – nov/2004 Mirian Ellen de Freitas Sandro Danilo Gatto

- 51 -Copyright © KOBRA Group 2000

SIB – Realização de Banco específico

Page 52: Desenvolvimento baseado em componentes: o Método KobrA MO 409 – nov/2004 Mirian Ellen de Freitas Sandro Danilo Gatto

Copyright © KOBRA Group 2000

Conclusões (vi) mostrar dificuldades, pontos fortes e pontos fracos da

metodologia usada Simples e Sistemático – separação estrita de conceitos

Abordagem incremental para componentes e linhas de produtos – independente de tecnologias específicas de implementação

Tratamento uniforme de sistemas e componentes Montagem do componente = criação do componente Produto “Fractal“- uso de processo recursivo

Garantia da Qualidade Integrada Inspeções, teste, modelagem de qualidade

A manutenção pode ser dispendiosa à medida que para realizar componentes o número de artefatos rapidamente se torna grande

Copyright © KOBRA Group 2000

Roteiro

1 Dsv baseado em Componentes

2 Linha de Produtos.

3 Metodologia PuLSE

6 Referências

4 O Metodo KobrA

5 Conclusões

O Projeto KobrA

Fundamentos do MétodoInfluências Metod.Modelos

Page 53: Desenvolvimento baseado em componentes: o Método KobrA MO 409 – nov/2004 Mirian Ellen de Freitas Sandro Danilo Gatto

- 53 -Copyright © KOBRA Group 2000

Referências[ATK 00] ATKINSON, C., Bayer, J., Muthig, D., “Component-Based Product Line Development: The KobrA Approach”, 1st International Software Product Line Conference, Pittsburgh, August 2000.Atkinson et. al., Component-Based Product Line Engineering with the UML, Addison-Wesley, September 2001

[BAY 99] BAYER, J., Flege, O., Knauber, P., Laqua, R., Schmid, K., Widen, T., DeBaud,J., PuLSE: A methodology to develop software product lines”, Symposium on SoftwareReusability (SSR99), May 1999.Colin Atkinson, Joachim Bayer, and Dirk Muthig. Component-based product line development: The KobrA approach. In Proceedings of the 1st Software Product Line Conference, 2000. (To appear.) - http://www.theoinf.tu-ilmenau.de/~riebisch/pld/publ/gcseyrw.html. Gimenes, Itana Maria de Souza e Travassos, Guilherme Horta - O Enfoque de Linha de Produto para Desenvolvimento de Software – acessado em 2/11/2004 - http://www.din.uem.br/~expsee/docs/artigos/Artigo-Itana_Travassos.pdf

Roteiro

1 Dsv baseado em Componentes

2 Linha de Produtos.

3 Metodologia PuLSE

6 Referências

4 O Metodo KobrA

5 Conclusões

Page 54: Desenvolvimento baseado em componentes: o Método KobrA MO 409 – nov/2004 Mirian Ellen de Freitas Sandro Danilo Gatto

- 54 -Copyright © KOBRA Group 2000

Referências (cont.)

Joachim Bayer, Oliver Flege, Peter Knauber, Roland Laqua, Dirk Muthig, Klaus Schmid, Tanya Widen, and Jean-Marc DeBaud. PuLSE: A methodology to develop software product lines. In Proceedings of the 5th Symposium on Software Reusability, pages 122-131, 1999. - http://www.theoinf.tu-ilmenau.de/~riebisch/pld/publ/gcseyrw.htmlFraunhofer Institute for Experimental Software Engineering. Software product line assessments, deployments, and consulting services. KobrA methodology to software product line engineering. Supplier of BigLever Software GEARS software product line technology. http://www.iese.fhg.de/Core_Competencies/SPL/Comparison of Software Product Line Architecture Design Methods: COPA, FAST, FORM, KobrA and QADA

IEEE http://archive.devx.com/uml/articles/Smith03/Smith03-1.asp

http://www.idt.mdh.se/kurser/ct3660/html/PatrikPeter1.pdf

Component-Based Software Engineering: The KobrA Approach. - http://www.sei.cmu.edu/pacc/cbse2000/papers/21/21.pdfThe Summary of Component-Based Software Engineering:The KobrA Approach - http://sern.ucalgary.ca/~moussavm/693/kobraa.html

Page 55: Desenvolvimento baseado em componentes: o Método KobrA MO 409 – nov/2004 Mirian Ellen de Freitas Sandro Danilo Gatto

Copyright © KOBRA Group 2000

Referências (cont.) - sítios visitados

http://www.iese.fraunhofer.de/Kobra_Method/Publications/

http://www.iese.fhg.de/Publications/book/Guides/KobrA-Method/EPG/index.html

http://www.iese.fraunhofer.de/Kobra_Method/Faq/index.html

www.netobjectdays.org/other/ 01/slides/tutorial/atkinson.ppt http://www.netobjectdays.org/other/01/slides/tutorial/atkinson.ppthttp://app2web.fzi.de/ereignisse/statusseminar/Komponentenbasierte-SE.ppthttp://www.theoinf.tu-ilmenau.de/~riebisch/pld/publ/gcseyrw.html

http://www.softwareproductlines.com/resources/vendors.htmlFraunhofer Institute for Experimental Software Engineering. Software product line assessments, deployments, and consulting services. KobrA methodology to software product line engineering. Supplier of BigLever Software GEARS software product line technology. http://www.iese.fhg.de/Core_Competencies/SPL/http://www.iese.fhg.de/Core_Competencies/SPL/http://www-106.ibm.com/developerworks/rational/library/2068.htmlhttp://www.nbs.ntu.edu.sg/userguide/Reuters/Reuters%203000%20Xtra%204.5.1/kobra/kobra_administration.pdf www.iese.fhg.de/KobrAwww.informit.comwww.aw.com/ceng

Copyright © KOBRA Group 2000

Roteiro

1 Dsv baseado em Componentes

2 Linha de Produtos.

3 Metodologia PuLSE

6 Referências

4 O Metodo KobrA

5 Conclusões

Page 56: Desenvolvimento baseado em componentes: o Método KobrA MO 409 – nov/2004 Mirian Ellen de Freitas Sandro Danilo Gatto

- 56 -Copyright © KOBRA Group 2000

Teller Specification Structural Model

Teller

createAccount() getAccount()closeAccount()

Teller

noOfAccounts : Integer := 0*

PersistentAccountaccountID : Stringbalance : FloatDenom : String

1

Teller Specification Class Diagram

<<subject>>

Page 57: Desenvolvimento baseado em componentes: o Método KobrA MO 409 – nov/2004 Mirian Ellen de Freitas Sandro Danilo Gatto

- 57 -Copyright © KOBRA Group 2000

Teller Specification Functional Model

Teller

Name createAccount Informal Description

An account is opened in a particular currency for a customer with a particular name, and the Account ID is returned

Constraints --

Receives name : String currency:String

Returns A String with the ID of the account

Changes teller Assumes There is an exchange rate for the specified currency Result A new account with a unique ID in the denomination,

currency, has been generated The name of the customer has been stored in account The account ID has been returned

createAccount operation specification

Page 58: Desenvolvimento baseado em componentes: o Método KobrA MO 409 – nov/2004 Mirian Ellen de Freitas Sandro Danilo Gatto

- 58 -Copyright © KOBRA Group 2000

Teller Specification Behavioral Model

Teller

Empty

HasAccounts

createAccount/getAccount/closeAccount [noOfAccounts > 2]/

noOfAccounts : Integer := 0

createAccount

closeAccount [noOFAccounts = 1 ]

Teller Statechart diagram

Page 59: Desenvolvimento baseado em componentes: o Método KobrA MO 409 – nov/2004 Mirian Ellen de Freitas Sandro Danilo Gatto

- 59 -Copyright © KOBRA Group 2000

Teller Realization Structural Model

Teller Dictionary

PersistentAccount Object

11

**

Teller

Teller Realization Class Diagram

<<subject>> <<komponent>>

Page 60: Desenvolvimento baseado em componentes: o Método KobrA MO 409 – nov/2004 Mirian Ellen de Freitas Sandro Danilo Gatto

- 60 -Copyright © KOBRA Group 2000

Teller Realization Interaction Model

Teller

:Teller

:Dictionary

createAccount (name, curr) : ID 2: store (ID, a)

a : PersistentAccount

1: create (name, curr) : ID

createAccount Collaboration Diagram