24
Proceso kintamybių modeliavimas Modelling process variabilities Donatas Čiukšys

Proceso kintamybių modeliavimas Modelling process variabilities Donatas Čiukšys

Embed Size (px)

Citation preview

Page 1: Proceso kintamybių modeliavimas Modelling process variabilities Donatas Čiukšys

Proceso kintamybių modeliavimas

Modelling process variabilities

Donatas Čiukšys

Page 2: Proceso kintamybių modeliavimas Modelling process variabilities Donatas Čiukšys

2005-02-23 Modelling process variabilities 2

Key concepts Variability represents a capability to

change or adapt a system, i.e. it abstracts from the varying qualities of the

considered systems to capture them in generalized artefacts,

controls the derivation of the family members from that artefacts

Variabilities and commonalities are captured with the help of feature diagrams

Page 3: Proceso kintamybių modeliavimas Modelling process variabilities Donatas Čiukšys

2005-02-23 Modelling process variabilities 3

Feature diagram

Page 4: Proceso kintamybių modeliavimas Modelling process variabilities Donatas Čiukšys

2005-02-23 Modelling process variabilities 4

Key concepts

Variation point is an identifier of one or more locations in a software asset at which the variation will occur [Jacobsen]

Realization mechanism: architectural design patterns, aggregation, inheritance, parameterization, overloading, macros, conditional compilation, and dynamically linked libraries...

Page 5: Proceso kintamybių modeliavimas Modelling process variabilities Donatas Čiukšys

2005-02-23 Modelling process variabilities 5

Capturing variability

Page 6: Proceso kintamybių modeliavimas Modelling process variabilities Donatas Čiukšys

2005-02-23 Modelling process variabilities 6

Early and delayed variability

Page 7: Proceso kintamybių modeliavimas Modelling process variabilities Donatas Čiukšys

2005-02-23 Modelling process variabilities 7

The Connection Between Variabilities, Variation Points and Assets

Page 8: Proceso kintamybių modeliavimas Modelling process variabilities Donatas Čiukšys

2005-02-23 Modelling process variabilities 8

Key concepts Dependencies

are restrictions on the variant selection of one or more variation points

are indicated as a primary concern in software product families [JaringBosh2004]

originate from the application domain (e.g. customer requirements), target platform, implementation details, or restrictions on quality attributes

Page 9: Proceso kintamybių modeliavimas Modelling process variabilities Donatas Čiukšys

2005-02-23 Modelling process variabilities 9

Simple dependencies

Page 10: Proceso kintamybių modeliavimas Modelling process variabilities Donatas Čiukšys

2005-02-23 Modelling process variabilities 10

Formalisation of simple dependencies [Michel Jaring and Jan Bosch, “Variability Dependencies in Product Family Engineering”, 2004]

The set of all variation points: VP = {vpa, vpb, vpc, …}

The set of variants for vpx: vpx = {vx1, vx2, vx3, …}

The power set (the set of subsets) of all variants:V = {{va1, va2, va3, …}, {vb1, vb2, vb3, …}, …}

A relationship between vpx and vxn, i.e., vpx binds vxn: (vpx, vxn)

Page 11: Proceso kintamybių modeliavimas Modelling process variabilities Donatas Čiukšys

2005-02-23 Modelling process variabilities 11

Formalisation of simple dependencies

if vpx is bound then vpy should be bound:

if vpx then vpy

if vpx is bound then vpy should bind vyn:

if vpx then (vpy, vyn) if vpx binds vxn then vpy should be bound:

if (vpx, vxn) then vpy

if vpx binds vxn then vpy should bind vym:

if (vpx, vxn) then (vpy, vym)

Page 12: Proceso kintamybių modeliavimas Modelling process variabilities Donatas Čiukšys

2005-02-23 Modelling process variabilities 12

Page 13: Proceso kintamybių modeliavimas Modelling process variabilities Donatas Čiukšys

2005-02-23 Modelling process variabilities 13

Page 14: Proceso kintamybių modeliavimas Modelling process variabilities Donatas Čiukšys

2005-02-23 Modelling process variabilities 14

More details – variation point

State (open & closed, may change from one development phase to the next):

An open variation point is a variation point to which new variants can be added.

A closed variation point is a variation point to which it is not possible to add new variants.

Realization relationship: Variation points that have no associated realization mechanism in the product family artefacts are realized by variation points on a lower level of abstraction

Page 15: Proceso kintamybių modeliavimas Modelling process variabilities Donatas Čiukšys

2005-02-23 Modelling process variabilities 15

More details - dependencies

Validity – statically and dynamically analyzable dependencies

Association to variation point: Predictable associations represent variation points whose

influence of the variant selection on the validity of the dependency is fully known. The impact of variant selection on the validity of the dependency can be determined before the actual binding of the selected variant(s).

Directional associations represent variation points whose influence of the variant selection on the validity of the dependency is not fully known. Instead, the dependency only specifies whether a (re)selection of variants will either positively or negatively affect the validity of the dependency.

Unknown associations represent variation points of which it is known that the variant selection influences the validity of the dependency. However, the dependency does not specify how a (re)selection of the variants influences the validity.

Page 16: Proceso kintamybių modeliavimas Modelling process variabilities Donatas Čiukšys

2005-02-23 Modelling process variabilities 16

More details - dependencies

Type (logical, numerical, nominal): Logical dependencies specify a function valid, which yields the

validity of the dependency for each selection of variants of the associated variation points.

Variation points are only predictably associated to logical dependencies. Therefore, logical dependencies can always be analyzed statically.

Numerical dependencies define a numerical value N. The value of N depends on the variants selection of the associated variation points. The validity of the dependency is expressed by the specification of a valid range on the numerical value N. These dependencies can have all three types of associated variation points.

The new value of N after a (re)selection of a predictable associated variation point can be calculated.

The dependency specifies whether the (re)selection of a directional associated variant will increase or decrease the value of N.

It does not specify the influence of unknown dependencies.

Page 17: Proceso kintamybių modeliavimas Modelling process variabilities Donatas Čiukšys

2005-02-23 Modelling process variabilities 17

More details - dependencies

Nominal dependencies specify a set of categories. The binding of all variation points associated to the dependency map to one of the categories. The validity of the dependency is expressed by the specification of the valid categories. There are only unknown associated variation points associated to nominal dependencies.

Dependency interaction – occurs if the process of resolving one dependency may affect the validity of other dependencies Example: dependencies “memory use” and

“performance”

Page 18: Proceso kintamybių modeliavimas Modelling process variabilities Donatas Čiukšys

2005-02-23 Modelling process variabilities 18

Variation management process

Make Feature Diagram

For each variation point:

•Abstraction level

•Assess binding time

•When it’s open

Select Realization Technique + variant management technique (e.g. manual or automatic)

Add variants

Bind

Page 19: Proceso kintamybių modeliavimas Modelling process variabilities Donatas Čiukšys

2005-02-23 Modelling process variabilities 19

Variability modelling notation

UML extensions using standard extension mechanisms:

lightweight: UML profile: Stereotypes, tags and tag values

heavyweight: MOF: Variation Point as instance of UML Classifier

Proprietary notation

Page 20: Proceso kintamybių modeliavimas Modelling process variabilities Donatas Čiukšys

2005-02-23 Modelling process variabilities 20

Example of UML Profile

Page 21: Proceso kintamybių modeliavimas Modelling process variabilities Donatas Čiukšys

2005-02-23 Modelling process variabilities 21

Example of proprietary notation

Page 22: Proceso kintamybių modeliavimas Modelling process variabilities Donatas Čiukšys

2005-02-23 Modelling process variabilities 22

Requirements for variability modelling notation

R1. Uniform and first-class representation of variation points in all abstraction levels.

R2. Hierarchical organization of variability representation

Page 23: Proceso kintamybių modeliavimas Modelling process variabilities Donatas Čiukšys

2005-02-23 Modelling process variabilities 23

Requirements for variability modelling notation

R3. Dependencies, including complex dependencies, should be treated as first class citizens in the modelling approach.

R4. The interactions between dependencies should be represented explicitly For efficient product derivation, software

engineers require an overview on the interactions between dependencies to decide which strategy to follow when solving the dependencies.

Page 24: Proceso kintamybių modeliavimas Modelling process variabilities Donatas Čiukšys

2005-02-23 Modelling process variabilities 24