desenvolvimento baseado em componentes: o método kobra mo 409 – nov/2004 mirian ellen de freitas...
TRANSCRIPT
Desenvolvimento baseado em componentes: o Método KobrA
MO 409 – nov/2004
Mirian Ellen de FreitasSandro 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
- 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
- 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
- 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
- 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
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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 26 -Copyright © KOBRA Group 2000
SIB – Modelo Estrutural de Contexto
Bank1
Account
ClerkCustomername
accountIDownerNamebalance
*
*1
**
*
1
Bank Conte
xt
Bank Context Class Diagram
<<Subject>>
- 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
- 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
- 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
- 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>>
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 38 -Copyright © KOBRA Group 2000
SIB – Atividades de Realização- Árvore de Contenção dos componentes
Bank
Teller Converter
Dictionary
- 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>>
- 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>>
- 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>>
- 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
- 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
*
- 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
- 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
- 46 -Copyright © KOBRA Group 2000
SIB – Realização de Contexto
- 47 -Copyright © KOBRA Group 2000
SIB – Especificação
- 48 -Copyright © KOBRA Group 2000
SIB – Realização
- 49 -Copyright © KOBRA Group 2000
Teller - Especificação
- 50 -Copyright © KOBRA Group 2000
SIB – Especificação de Banco específico
- 51 -Copyright © KOBRA Group 2000
SIB – Realização de Banco específico
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
- 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
- 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
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
- 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>>
- 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
- 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
- 59 -Copyright © KOBRA Group 2000
Teller Realization Structural Model
Teller Dictionary
PersistentAccount Object
11
**
Teller
Teller Realization Class Diagram
<<subject>> <<komponent>>
- 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