12
1º Congresso Português de Engenharia de Software Engenharia de Software Baseado em Componentes: uma Abordagem Quantitativa SEDES’2004 – Coimbra, Abril, 2004 Miguel Goulão Faculdade de Ciências e Tecnologia Universidade Nova de Lisboa [email protected] http://ctp.di.fct.unl.pt/QUASAR SEDES’2004 – ESBC – ©2004 QUASAR – http://ctp.di.fct.unl.pt/QUASAR/ 2 Objectivo fundamental n Estabelecimento de práticas de avaliação quantitativa de componentes e infra-estruturas de componentes como práticas correntes na ESBC

Engenharia de Software Baseado em Componentes: uma …ctp.di.fct.unl.pt/QUASAR/Resources/Papers/2004/SEDES2004_MiguelGoulao.pdf · 1 1º Congresso Português de Engenharia de Software

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Engenharia de Software Baseado em Componentes: uma …ctp.di.fct.unl.pt/QUASAR/Resources/Papers/2004/SEDES2004_MiguelGoulao.pdf · 1 1º Congresso Português de Engenharia de Software

1

1º Congresso Português de Engenharia de Software

Engenharia de Software Baseado emComponentes:

uma Abordagem Quantitativa

SEDES’2004 – Coimbra, Abril, 2004

Miguel GoulãoFaculdade de Ciências e Tecnologia

Universidade Nova de Lisboa

[email protected]://ctp.di.fct.unl.pt/QUASAR

SEDES’2004 – ESBC – ©2004 QUASAR – http://ctp.di.fct.unl.pt/QUASAR/ 2

Objectivo fundamental

n Estabelecimento de práticas de avaliação quantitativa de componentes e infra-estruturas de componentes como práticas correntes na ESBC

Page 2: Engenharia de Software Baseado em Componentes: uma …ctp.di.fct.unl.pt/QUASAR/Resources/Papers/2004/SEDES2004_MiguelGoulao.pdf · 1 1º Congresso Português de Engenharia de Software

2

SEDES’2004 – ESBC – ©2004 QUASAR – http://ctp.di.fct.unl.pt/QUASAR/ 4

Sumário

n Motivaçãon Problemas em aberton Arquitectura da abordagem propostan Contribuições da dissertação

n Representação de componentesn Modelo de qualidade de componentesn Métricas para a avaliação de componentesn Heurísticas para a avaliação de componentes

n Conclusões

SEDES’2004 – ESBC – ©2004 QUASAR – http://ctp.di.fct.unl.pt/QUASAR/ 5

Problemas em aberto

a) Variedade de modelos de componentes dificulta a avaliação uma forma padronizada

b) Modelos de qualidade de componentes propostos são bastante incipientes

c) Propostas preliminares de métricas carecem de validação

d) A combinação de heurísticas de base quantitativa com modelos de qualidade para o DBC está por explorar

Page 3: Engenharia de Software Baseado em Componentes: uma …ctp.di.fct.unl.pt/QUASAR/Resources/Papers/2004/SEDES2004_MiguelGoulao.pdf · 1 1º Congresso Português de Engenharia de Software

3

SEDES’2004 – ESBC – ©2004 QUASAR – http://ctp.di.fct.unl.pt/QUASAR/ 6

Modelos de Componentes

LDAs ImplementaçãoDesenho

Darwin

Rapide

Meta-H

...

...

UML COM

Acme

.Net

EJB

...

SEDES’2004 – ESBC – ©2004 QUASAR – http://ctp.di.fct.unl.pt/QUASAR/ 7

Modelos de Qualidade de Componentes

n Que atributos de qualidade medir? n Como representar as medidas?n Como recolher as medidas?n Quem deve recolher as medidas? n Quando devem ser as medidas recolhidas? n A que nível de abstracção deve o modelo de

qualidade ser definido? n Como garantir independência do modelo de

componentes?

§ Os modelos de qualidade têm de ser validados!

Page 4: Engenharia de Software Baseado em Componentes: uma …ctp.di.fct.unl.pt/QUASAR/Resources/Papers/2004/SEDES2004_MiguelGoulao.pdf · 1 1º Congresso Português de Engenharia de Software

4

SEDES’2004 – ESBC – ©2004 QUASAR – http://ctp.di.fct.unl.pt/QUASAR/ 8

Métricas para avaliação de componentes

n Métricas dedicadas a aspectos relevantes para o DBC

n Definição de métricas deve combinar formalismo com facilidade de compreensão

n Recolha de métricas deve ser repetível e bem integrada com o ambiente de desenvolvimento

n As métricas devem ser validadas

SEDES’2004 – ESBC – ©2004 QUASAR – http://ctp.di.fct.unl.pt/QUASAR/ 9

Heurísticas quantitativas para o DBC

n Propostas por validar…

Page 5: Engenharia de Software Baseado em Componentes: uma …ctp.di.fct.unl.pt/QUASAR/Resources/Papers/2004/SEDES2004_MiguelGoulao.pdf · 1 1º Congresso Português de Engenharia de Software

5

SEDES’2004 – ESBC – ©2004 QUASAR – http://ctp.di.fct.unl.pt/QUASAR/ 10

Sintetizando...

Modelo multivariado, validação apenas do autor

Java BeansMatemática/InformalCaracterísticasWashizaki

Estatísticas descritivas, casos pontuais

Arquitecturas de Linha de Produção

Matemática/InformalCaracterísticasHoek

Estatísticas descritivas, amostra insuficiente

C/C++/Java/EiffelMatemática/InformalCaracterísticasBoxall

Estatísticas descritivas, amostra insuficiente

JavaInformalCaracterísticasDumke

---CaracterísticasGill

---CaracterísticasSedigh-Ali

--InformalModelo QualidadeBertoa

---Modelo QualidadeSimão

ValidaçãoNível abstracçãoDefinição MétricasModelo Qualidade

Quem

SEDES’2004 – ESBC – ©2004 QUASAR – http://ctp.di.fct.unl.pt/QUASAR/ 11

Avaliação de componentes e infraestruturas neles baseadas

Meta-Meta-Modelo deArquitectura deComponentes

Avaliação da QualidadeEstrutural de Componentes

Avaliação da Qualidade deArquitecturas Baseadas em

Componentes

Modelo de Qualidade parao Desenvolvimento

Baseado em Componentes

Heurísticas deDesenho

Baseado emComponentes

Resultados deAvaliação deQualidade no

DesenvolvimentoBaseado em

Componentes

Falhas de desenhoe

recomendações

Meta-Modelosde origemacadémica

Meta-Modelosprovenientes da

indústria

Atributos dequalidade paraArquitecturasbaseadas emcomponentes

Atributos dequalidade daestrutura de

componentes

Restrições denegócio, ou

organizacioais

Dados deCalibração

Avaliação daQualidade

Pesos

Page 6: Engenharia de Software Baseado em Componentes: uma …ctp.di.fct.unl.pt/QUASAR/Resources/Papers/2004/SEDES2004_MiguelGoulao.pdf · 1 1º Congresso Português de Engenharia de Software

6

SEDES’2004 – ESBC – ©2004 QUASAR – http://ctp.di.fct.unl.pt/QUASAR/ 16

Darwin

MetaH

Rapide Acme UML2.0

EJB

.Net

COM

... ...

Nível de abstracção para a avaliação de componentes

A nossa avaliação de componentes será feita sobre o UML 2.0

Mapeamento entre ACME e UML 2.0, para fazer a ponte entre dois “mundos”

SEDES’2004 – ESBC – ©2004 QUASAR – http://ctp.di.fct.unl.pt/QUASAR/ 24

O package de Componentes, em UML 2.0 (vista parcial)

A título ilustrativo, vamos medir 3 métricas sobre este extracto

Page 7: Engenharia de Software Baseado em Componentes: uma …ctp.di.fct.unl.pt/QUASAR/Resources/Papers/2004/SEDES2004_MiguelGoulao.pdf · 1 1º Congresso Português de Engenharia de Software

7

SEDES’2004 – ESBC – ©2004 QUASAR – http://ctp.di.fct.unl.pt/QUASAR/ 25

Metrics definition with OCL (example)

Component-- Number of interfaces required by

component

NReqInt (): Integer =self.required->size()

-- Number of interfaces provided by component

NProvInt (): Integer =self.provided->size()

-- Total interfaces of componentNTotalInt (): Integer =

self.NReqInt() + self.NProvInt()c1.NReqInt() = 3c1.NProvInt() = 2c1.NTotalInt() = 5

c1: Component

name = "Order"

i1: Interface

name = "OrderEntry "

i2: Interface

name = "Billing"

i5: Interface

name = "OrderableItem"

i4: Interface

name = "Inv oice"

i3: Interface

name = "Person"

prov ided

required

prov ided

required

required

<<component>>Order

Inv oiceBilling

OrderableItem

Person

OrderEntry

SEDES’2004 – ESBC – ©2004 QUASAR – http://ctp.di.fct.unl.pt/QUASAR/ 27

Exemplo de formalização de métricas (Washizaki)

SelectBeanInfo

SelectBeanInfo()class$()getBeanDescriptor()

SelectNO_WORK : intDO_SELECT : intwork : intspaces : Logical View::java::lang::Stringurl : Logical View::java::lang::Stringuser : Logical View::java::lang::Stringpassword : Logical View::java::lang::StringselectString : Logical View::java::lang::StringmaxRows : int

<<constructor>> Select()doLayout() : voiddoWork() : voidgetMaxRows() : int<<getter>> getPassword() : Logical View::java::lang::String<<getter>> getSQL() : Logical View::java::lang::String<<getter>> getURL() : Logical View::java::lang::String<<getter>> getUser() : Logical View::java::lang::String<<getter>> getWork() : intinitialize() : voidlayout() : voidreadObject(arg0 : ObjectInputStream) : voidselect() : void<<setter>> setMaxRows(arg0 : int) : void<<setter>> setPassword(arg0 : Logical View::java::lang::String) : void<<setter>> setSQL(arg0 : Logical View::java::lang::String) : void<<settter>> setURL(arg0 : Logical View::java::lang::String) : void<<setter>> setUser(arg0 : Logical View::java::lang::String) : voidupdate() : voidupdate(arg0 : ActionEvent) : voidwriteObject(arg0 : ObjectOutputStream) : void

<<component>>

Values computed for RCO(), RCA(), SCCr() and SCCp(), as well as for the auxiliary functions formalized in the Select component

PR() = 5A() = 9RCO() = 5/9 = 0,555(5)PW() = 5RCA = 5/9 = 0,555(5)Bv() = 1B() = 10SCCr() = 1/10 = 0,1Bp() = 3SCCp() = 3/10 = 0, 3

Page 8: Engenharia de Software Baseado em Componentes: uma …ctp.di.fct.unl.pt/QUASAR/Resources/Papers/2004/SEDES2004_MiguelGoulao.pdf · 1 1º Congresso Português de Engenharia de Software

8

SEDES’2004 – ESBC – ©2004 QUASAR – http://ctp.di.fct.unl.pt/QUASAR/ 28

Metamodelo do UML 2.0(extracto)

Component(f rom BasicComponents)

Class(f rom Communications)

Operation(from Kernel)

Class(from Kernel)

0..1

*

+class

0..1

+ownedOperation*

Property(f rom Kernel)

0..1

*

+class0..1

+ownedAttribute*

Class(f rom StructuredClasses)

Property(f rom InternalStructures)

0..1

*

0..1

+ownedAttribute

*

Class(f rom Constructs)

Operation(from Constructs)0..1 *

class

0..1

ownedOperation

*

NamedElement

name : String(from Basic)

Parameter(f rom Basic)

Class(f rom Basic)

Operation(f rom Basic)

0..1

*

operation0..1

ownedParameter*

0..1 *

class

0..1

ownedOperation

*

TypedElement(from Basic)

Classifier(from Basic)

*

0..1

*type

0..1

SEDES’2004 – ESBC – ©2004 QUASAR – http://ctp.di.fct.unl.pt/QUASAR/ 29

Exemplo de formalização: Rate of Component Observability

(Washizaki)ComponentRCO(): Real = if self.A() = 0

0else

self.Pr()/self.A()

Pr(): Integer = self.ownedOperation->select(o: Operation|

o.stereotype.name = ’getter’)->size()

A(): Integer = self.ownedAttribute->size()

Page 9: Engenharia de Software Baseado em Componentes: uma …ctp.di.fct.unl.pt/QUASAR/Resources/Papers/2004/SEDES2004_MiguelGoulao.pdf · 1 1º Congresso Português de Engenharia de Software

9

SEDES’2004 – ESBC – ©2004 QUASAR – http://ctp.di.fct.unl.pt/QUASAR/ 30

Formalização da definição de heurísticas (Washizaki)

ComponentBelowThresholdSCCr(threshold: Real): Boolean =

self.SCCr() < threshold

BelowThresholdSCCp(threshold: Real): Boolean =self.SCCp() < threshold

OutOfThresholdRCO(lowerThreshold: Real, upperThreshold: Real): Boolean =(self.RCO() < lowerThreshold)

or (self.RCO() > upperThreshold)

OutOfThresholdRCC(lowerThreshold: Real, upperThreshold: Real): Boolean =

(self.RCC() < lowerThreshold)or (self.RCC() > upperThreshold)

SEDES’2004 – ESBC – ©2004 QUASAR – http://ctp.di.fct.unl.pt/QUASAR/ 31

Suporte para a recolha de métricas para CBD usando o UML 2.0

UML designtool

XMI f ront-end

Meta-ModelInstance

Generator

ModelTranslator

OCLExpressions

Ev aluator

UML 2.0Meta-model

UML 2.0Componentassembly

specif ication

UML 2.0Meta-model

in OCL ev aluatorf ormat

UML 2.0Componentassembly

instantiation

OCLmetrics

specif ication

OCLheuristics

specif ication

Metricsexpression

results

Heuristicsexpression

results

Page 10: Engenharia de Software Baseado em Componentes: uma …ctp.di.fct.unl.pt/QUASAR/Resources/Papers/2004/SEDES2004_MiguelGoulao.pdf · 1 1º Congresso Português de Engenharia de Software

10

SEDES’2004 – ESBC – ©2004 QUASAR – http://ctp.di.fct.unl.pt/QUASAR/ 32

Contribuições

n Mapeamento entre ADLs e UML 2.0n Acme -> UMLn ...

n Utilização de OCL para navegar sobre o meta-modelo do UML 2.0, recolhendo métricas sobre componentes e infra-estruturas de componentesn Formalização de métricas (nossas e propostas por outros)n Integração da recolha de métricas com ferramentas de desenho

em UMLn Validação de métricas (nossas e propostas por outros)

n Definição de um modelo de qualidade para CBDn Validação de modelos de qualidade (nossos e propostos por

outros)n Definição de heurísticas com base quantitativa

n Integração da utilização de heurísticas com ferramentas de desenho

SEDES’2004 – ESBC – ©2004 QUASAR – http://ctp.di.fct.unl.pt/QUASAR/ 36

Avaliação

n Validação empírica de propostasn Disseminação de resultados entre os nossos

pares, a nível internacionaln Publicações, eventos, grupos de interesse

n Disponibilização de entregáveis do projecto à comunidade, possibilitando repliocação de experiências e validação cruzada de propostas

n Introdução de modelos, ferramentas e técnicas em ambientes de produção

Page 11: Engenharia de Software Baseado em Componentes: uma …ctp.di.fct.unl.pt/QUASAR/Resources/Papers/2004/SEDES2004_MiguelGoulao.pdf · 1 1º Congresso Português de Engenharia de Software

11

SEDES’2004 – ESBC – ©2004 QUASAR – http://ctp.di.fct.unl.pt/QUASAR/ 37

Conclusões

☺ UML 2.0 como um candidato interessante para o suporte à avaliação de componentes e infraestruturas de componentes

☺ Definição de métricas usando OCL:n Definições não ambíguasn Formalismo accessível a utilizadores do UML (diagramas de classes +

OCL)n Desenvolvimento de ferramentas de suporte

☺ Criação de condições para a formalização da definição de modelos de qualidade e introdução de heurísticas com base quantitativa

K A identificação de relações interessantes entre o produto e o processo ainda é um desafio para a comunidade científica

K Validação de modelos é um potencial ponto de estrangulamento

SEDES’2004 – ESBC – ©2004 QUASAR – http://ctp.di.fct.unl.pt/QUASAR/ 38

Bibliografia

n M. Goulão e F. B. Abreu, “Component Metrics Formalization with OCL”, submetido aoUML’2004, Outubro de 2004.

n M. Goulão e F. B. Abreu, “Formalizing Metrics for COTS”, MPEC’2004, ICSE, 2004.n M. Goulão, “Engenharia de Software: uma Abordagem Quantitativa”, SEDES’2004, Abril,

Coimbra, 2004.n M. Goulão e F. B. Abreu, “Bridging the gap between Acme and UML 2.0 for CBD”. Actas

de SAVCBS’2003, Helsinkia, Finlândia. Setembro, 2003.n M. Goulão, “CBSE: a Quantitative Approach”. ECOOP’2003 Doctoral Symposium,

Darmstadt, Alemanha. Julho, 2003.n M. Goulão e F. B. Abreu, “Towards a Component Quality Model”. Work in Progress

Session at the 28th EUROMICRO Conference, Dortmund, Alemanha. Setembro, 2002. n A. Baroni, M. Goulão e F. B. Abreu, “Avoiding the Ambiguity of Quantitative Data

Extraction: An Approach to Improve the Quality of Metrics Results”, Work in Progress Session at the 28th EUROMICRO Conference, Dortmund, Alemanha. Setembro, 2002.

n M. Goulão e F. B. Abreu, “The Quest for Software Components Quality”. COMPSAC'2002, Oxford, Inglaterra. Agosto, 2002.

n M. Goulão e F. B. Abreu, “From Objects to Components - A Quantitative Experiment”. QAOOSE'2002, ECOOP, Málaga, Espanha. Junho, 2002.

Page 12: Engenharia de Software Baseado em Componentes: uma …ctp.di.fct.unl.pt/QUASAR/Resources/Papers/2004/SEDES2004_MiguelGoulao.pdf · 1 1º Congresso Português de Engenharia de Software

12

SEDES’2004 – ESBC – ©2004 QUASAR – http://ctp.di.fct.unl.pt/QUASAR/ 39

Para saber mais...

n Artigos e relatórios técnicos disponíveis nas páginas do QUASAR:

http://ctp.di.fct.unl.pt/QUASAR

n Endereço de correio electrónico:[email protected]

n Perguntas? Comentários?