assessment of metrics for the product lines context márcio ribeiro (cin-ufpe) camila nunes...

14
Assessment of metrics for the Product Lines context Márcio Ribeiro (CIn-UFPE) Camila Nunes (LES-PUC-Rio) Fernanda d’Amorim (CIn-UFPE) Rodrigo Bonifácio (CIn-UFPE) Paulo Borba (CIn-UFPE)

Upload: sincere-derrick

Post on 14-Dec-2015

218 views

Category:

Documents


1 download

TRANSCRIPT

Assessment of metrics for theProduct Lines context

Márcio Ribeiro (CIn-UFPE)Camila Nunes (LES-PUC-Rio)

Fernanda d’Amorim (CIn-UFPE)Rodrigo Bonifácio (CIn-UFPE)

Paulo Borba (CIn-UFPE)

2

Applying actual metrics…

120x160

Concern: Screen Size

176x208 128x128

CDC(Screen Size) = 3

3

CDC(Screen Size) = 3

Seems to be bad ifwe consider one product!

But for Product Linesseems to be good!

4

This way…

Do we need different metricsfor Product Lines?

5

Agenda

Applying metrics in subfeatures

New metrics

Case study representativity

Framework and future work

6

Applying metrics in subfeatures

CDC(Screen Size) = 3

CDC(120x160) = 1

CDC(176x208) = 1

CDC(128x128) = 1

Variants

CVDC(120x160) = 1

CVDC(176x208) = 1

CVDC(128x128) = 1

Concern Variant Diffusion over Components

7

So…

CVDC = CDC applied to subfeatures?

8

A second example

//#ifdef device_screen_176x205//# //# public static final int LOADING_MESSAGE_AREA = 154;//#//#elif device_screen_128x160//#//# public static final int LOADING_MESSAGE_AREA = 118;//#//#elif device_screen_132x176//#//# public static final int LOADING_MESSAGE_AREA = 118;

CDLOC(Screen size) = 2CVDLOC(176x205) = 2;CVDLOC(128x160) = 2;CVDLOC(132x176) = 2;

Tangling!

9

Again…

CVDLOC = CDLOC applied to subfeatures?

10

Calculating metrics for subfeatures

It is important! Not so scattered (CDC, CVDC example) Mora tangled (CDLOC, CVDLOC example) Complexity

CVLOC(UML) = 2000

CVLOC(Java) = 1000

CLOC(Notation) = 3000

11

New metrics?

CVDC

NCVC

CVLOC

CVDLOC

Or are they the same but applied under a

different perspective?

12

Case study representativity

Feature types (mandatory, optional, XOR, OR) Granularity (coarsed and fine) Crosscutting, not crosscutting Functional, non-functional Homogeneous, Heterogeneous Feature interaction Binding times (static and dynamic) Different sizes

13

Possible case studies

Mobile Media Mandatory, Optional, OR

Freemind Optional Fine-grained Crosscutting Heterogeneous Different binding times

ArgoUML Alternative Not crosscutting Coarsed-grained

14

Concluding Remarks

Future work Analyze more metrics If needed, define new ones Apply them in case studies Define a framework