Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
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
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
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!
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…
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
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
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
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()
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
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
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.
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?