1 / 24

Capturing Variabilities in Modelling Processes: Key Concepts & Formalizations

This comprehensive guide explores the key concepts of variability in modelling processes, including feature diagrams, variation points, dependencies, and their formalization. Learn how to capture, analyze, and manage variabilities effectively in software engineering. Discover the connection between variabilities, variation points, and assets, and delve into the intricacies of simple dependencies through formalized models. Understand the nuances of capturing variability, early vs. delayed variability, and the significance of variation points being open or closed. Gain insights into the types of dependencies, including logical, numerical, and nominal, and their impact on software product families.

corneliat
Download Presentation

Capturing Variabilities in Modelling Processes: Key Concepts & Formalizations

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  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 Modelling process variabilities

  3. Feature diagram 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... Modelling process variabilities

  5. Capturing variability Modelling process variabilities

  6. Early and delayed variability Modelling process variabilities

  7. The Connection Between Variabilities, Variation Points and Assets 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 Modelling process variabilities

  9. Simple dependencies 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) 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) Modelling process variabilities

  12. Modelling process variabilities

  13. 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 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. 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. 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” Modelling process variabilities

  18. Make Feature Diagram Select Realization Technique + variant management technique (e.g. manual or automatic) • For each variation point: • Abstraction level • Assess binding time • When it’s open Add variants Bind Variation management process 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 Modelling process variabilities

  20. Example of UML Profile Modelling process variabilities

  21. Example of proprietary notation 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 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. Modelling process variabilities

  24. Modelling process variabilities

More Related