E 2 ESQuaReD Software Product Line Testing Part II : Variability Modeling Myra CohenMatthew Dwyer Laboratory for Empirically-based Software Quality Research.

Slides:



Advertisements
Similar presentations
Domain Engineering Silvio Romero de Lemos Meira
Advertisements

Database Systems: Design, Implementation, and Management Tenth Edition
UML Class Diagram and Packages Written by Zvika Gutterman Adam Carmi.
Unified Modeling (Part I) Overview of UML & Modeling
Requirements Analysis Concepts & Principles
UML CASE Tool. ABSTRACT Domain analysis enables identifying families of applications and capturing their terminology in order to assist and guide system.
Chapter 2: Entity-Relationship Model (Continued)
Object-oriented design CS 345 September 20,2002. Unavoidable Complexity Many software systems are very complex: –Many developers –Ongoing lifespan –Large.
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Software Product Line Engineering Andrew Burmester SE 4110 Section 2 4/14/11.
UML Class Diagrams: Basic Concepts. Objects –The purpose of class modeling is to describe objects. –An object is a concept, abstraction or thing that.
Domain-Specific Software Engineering Alex Adamec.
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
Architectural Design.
Proceso kintamybių modeliavimas Modelling process variabilities Donatas Čiukšys.
© Drexel University Software Engineering Research Group (SERG) 1 Based on the paper by Philippe Kruchten from Rational Software.
Software Product Line Testing Part I : Introduction
Chapter 6 System Engineering - Computer-based system - System engineering process - “Business process” engineering - Product engineering (Source: Pressman,
11 1 Object oriented DB (not in book) Database Systems: Design, Implementation, & Management, 6 th Edition, Rob & Coronel Learning objectives: What.
1 CS 456 Software Engineering. 2 Contents 3 Chapter 1: Introduction.
1 N Degrees of Separation: Multi-Dimensional Separation of Concern (MDSOC) HyperJ: language and concepts of general concern combination.
An Introduction to Software Architecture
Database Processing: Fundamentals, Design and Implementation, 9/e by David M. KroenkeChapter 2/1 Copyright © 2004 Please……. No Food Or Drink in the class.
A Z Approach in Validating ORA-SS Data Models Scott Uk-Jin Lee Jing Sun Gillian Dobbie Yuan Fang Li.
Assessing the Suitability of UML for Modeling Software Architectures Nenad Medvidovic Computer Science Department University of Southern California Los.
Architecting Web Services Unit – II – PART - III.
What is MOF? The Meta Object Facility (MOF) specification provides a set of CORBA interfaces that can be used to define and manipulate a set of interoperable.
UML Diagrams: Class Diagrams The Static Analysis Model Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
E 2 ESQuaReD Software Product Line Testing Part V : SPL-Driven Test Processes Myra CohenMatthew Dwyer Laboratory for Empirically-based Software Quality.
An Algebra for Composing Access Control Policies (2002) Author: PIERO BONATTI, SABRINA DE CAPITANI DI, PIERANGELA SAMARATI Presenter: Siqing Du Date:
SWE © Solomon Seifu ELABORATION. SWE © Solomon Seifu Lesson 10 Use Case Design.
L10 - April 12, 2006copyright Thomas Pole , all rights reserved 1 Lecture 10: Software Assets and Text: Ch. 8: Language Anatomy and Ch 9: Families.
Chapter 10 Analysis and Design Discipline. 2 Purpose The purpose is to translate the requirements into a specification that describes how to implement.
UML diagrams What is UML UML diagrams –Static modeoing –Dynamic modeling 1.
Modeling Component-based Software Systems with UML 2.0 George T. Edwards Jaiganesh Balasubramanian Arvind S. Krishna Vanderbilt University Nashville, TN.
Unified Modeling Language © 2002 by Dietrich and Urban1 ADVANCED DATABASE CONCEPTS Unified Modeling Language Susan D. Urban and Suzanne W. Dietrich Department.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
UML Class Diagram Trisha Cummings. What we will be covering What is a Class Diagram? Essential Elements of a UML Class Diagram UML Packages Logical Distribution.
Lecture 1: UML Class Diagram September 12, UML Class Diagrams2 What is a Class Diagram? A class diagram describes the types of objects in the system.
FDT Foil no 1 On Methodology from Domain to System Descriptions by Rolv Bræk NTNU Workshop on Philosophy and Applicablitiy of Formal Languages Geneve 15.
Efficient Synthesis of Feature Models Article Review By: Sigal Berkovitz & Yohai Vidergor.
Relationships Relationships between objects and between classes.
Algorithmic Detection of Semantic Similarity WWW 2005.
Introduction to c++ programming - object oriented programming concepts - Structured Vs OOP. Classes and objects - class definition - Objects - class scope.
Computing & Information Sciences Kansas State University Friday, 26 Sep 2008CIS 560: Database System Concepts Lecture 13 of 42 Friday, 26 September 2008.
Software Engineering Zhang Shuang
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Testing OO software. State Based Testing State machine: implementation-independent specification (model) of the dynamic behaviour of the system State:
CPSC 871 John D. McGregor Module 6 Session 2 Validation and Verification.
OO in Context Lecture 13: Dolores Zage. Confused about OO Not alone, there is much confusion about OO many programs are claimed to be OO but are not really.
Programming Languages and Design Lecture 2 Syntax Specifications of Programming Languages Instructor: Li Ma Department of Computer Science Texas Southern.
Chapter 18 Object Database Management Systems. Outline Motivation for object database management Object-oriented principles Architectures for object database.
Quality Assurance in the Presence of Variability Kim Lauenroth, Andreas Metzger, Klaus Pohl Institute for Computer Science and Business Information Systems.
Basic Concepts and Definitions
OOD OO Design. OOD-2 OO Development Requirements Use case analysis OO Analysis –Models from the domain and application OO Design –Mapping of model.
OOPS CONCEPT.  OOPS  Benefits of OOPs  OOPs Principles  Class  Object Objectives.
SE Seminar – IS Department Mazor Maya & Yuval Efrat December 2010 Griss, M.L.; Favaro, J.; d'Alessandro, M.;
UML (Unified Modeling Language)
COP Introduction to Database Structures
Design Patterns: MORE Examples
UML Diagrams: Class Diagrams The Static Analysis Model
UML Diagrams By Daniel Damaris Novarianto S..
SysML v2 Formalism: Requirements & Benefits
UML Diagrams Jung Woo.
Business Process Measures
UML Class Diagrams: Basic Concepts
Electrical and Computer Engineering Department
Analysis models and design models
An Introduction to Software Architecture
On the notion of Variability in Software Product Lines
Presentation transcript:

e 2 ESQuaReD Software Product Line Testing Part II : Variability Modeling Myra CohenMatthew Dwyer Laboratory for Empirically-based Software Quality Research Department of Computer Science University of Nebraska - Lincoln Work supported by NSF CCF through awards and , by the U.S. Army Research Office through award DAAD and by an NSF EPSCoR FIRST award.

2 Outline Software Product Lines : What and Why? Modeling Variability in Software Product Lines Validating Product Lines A Framework for Variability Coverage Toward Product Line Driven Test Processes

3 Outline Modeling Variability in Software Product Lines 1.What is variability? 2.Variability and other attributes 3.Feature models 4.Rich variability modeling notations 5.A formal variability modeling framework

4 What is Variability? Commonality The features shared by a set of systems Variability The features that differ between some pair of systems

5 Variability as an Abstraction Mechanisms for implementing variability –Compile flags –Properties files –Command-line arguments –Inheritance –Interface definition (and information hiding) –Design patterns (e.g., strategy) –Connectors (e.g., in architecture) We are interested in the abstraction

6 Honda Sedan Variability Model : Civic, Accord Package : Sedan, Coupe, Hybrid, GX, Si Transmission : manual, auto, cvt Power : gas, hybrid, natural gas Doors : 2, 4 Cylinders : 4, 6 Nav system : Y/N ABS

7 Types of Variability External Variability –Visible to the customer: Example: manual vs automatic transmission Example: your cell phone may or may not have a camera and you may have different resolution options Internal Variability –Hidden from customer: Example: battery technology in hybrid electric car Example: communication protocol

8 Product Line = Variability Variability is the key concept in product lines A product line with no variability is a single system To define a product line we must define the ways that instances of the product line may vary

9 Defining Variability Lots of terminology in the literature feature, variation, variability, … We will use Pohl et al.’s terminology variation point –A feature of PL instances that may vary variant –The realization of a feature dependence –Declares the potential binding of a realization to a feature

10 Honda Sedan Variation Points –model, package, transmission, power, doors, cylinders Variants –Civic, Accord, gas, hybrid, natural, gas, 2, 4 Dependences –Model either Accord or Civic –Nav system is optional –ABS is mandatory

11 Variability & Development Artifacts Variability must be expressed in … requirements architecture design implementation testing … in a coordinated manner.

12 Avionics Mission Computing Enormous range of aircraft and missions Enormous space of requirements and feature variability Consider autopilot navigation –Requirements : it is required or not –Architecture : include components and integrating connectors for auto-navigation facilities with rest of system

13 CADENA Component Architecture for Modal Steering

14 Optional Autopilot Navigation Subsystem (Feature)

15 Coordinating Variability Requirements: Auto-navigation is present in system Architecture:

16 Coordinating Variability Requirements: Auto-navigation is not present in system Architecture:

17 Modeling Product Lines An important aspect of successful product line development is defining an architecture that enables systematic reuse We need a way to model the architectural details in order to represent the variability and commonality

18 Feature Oriented Domain Analysis SEI FODA Project in Late 1980s Identified features (variability) as the key to software product lines Identified the need for artifact-independent modeling of the features in an SPL Introduced the feature diagram

19 Feature Diagrams Trees of features –Nodes represent variation points and variants Child relationship represents binding –Dependence and/or graphs provide flexibility in defining feature realizations/relationships

20 FODA Feature Diagram Example Car TransmissionHorsepowerAir conditioning Manual Automatic

21 FODA Feature Diagram Example Car TransmissionHorsepowerAir conditioning Manual Automatic mandatory features must be present in every product line instance

22 FODA Feature Diagram Example Car TransmissionHorsepowerAir conditioning Manual Automatic optional features may be present, or not, in a product line instance

23 FODA Feature Diagram Example Car TransmissionHorsepowerAir conditioning Manual Automatic alternative features define the scope for an exclusive- or choice of features

24 Coordinating Variability Requirements: Auto-navigation is not present in system Architecture: Aircraft Auto-nav …

25 Constraints Not all possible combinations of features correspond to feasible SPL instances FODA introduced simple composition rules –feature1 requires feature2 –feature3 excludes feature4 Constraints are essential for defining complex SPLs feature diagram + constraints = feature model

26 Honda Sedan Constraints Model:Civic excludes Cylinders:6 (Package:Coupe or Package:Si) requires Doors:2 Package:GX requires Power:natural gas Package:Hybrid requires Power:hybrid Package:Hybrid excludes Transmission:auto (Model:Accord and Cylinders:6) requires Nav system

27 Building on FODA In recent years, several efforts have extended feature model constraint languages We focus on two such extensions –Czarnecki et al.’s cardinality-based models –Pohl et al.’s orthogonal variability model (OVM)

28 Cardinality-based Feature Models Feature models cannot express the multiplicity of features present in a PL instance For example –A car has between 3 and 12 cylinders –An airplane can have between 1 and 6 engines Multiplicity of features is an essential point of variation in product lines

29 Cardinality-based Feature Models Cardinality constraints can be associated with all of the attributes of a feature model Variation Points –e.g., the number of seats in a car Variants –e.g., multiple sensors to guard against hardware failure Dependences –e.g., multiple music players radio, cd, mp3

30 Implicit FODA Cardinalities Car TransmissionHorsepowerAir conditioning Manual Automatic Attribute elements of model with upper and lower bounds on multiplicity

31 Implicit FODA Cardinalities Car TransmissionHorsepowerAir conditioning Manual Automatic Optional features have bounds of [0,1] on the dependence [0,1]

32 Implicit FODA Cardinalities Car TransmissionHorsepowerAir conditioning Manual Automatic Mandatory features have bounds of [1,1] on a dependence [0,1] [1,1]

33 Implicit FODA Cardinalities Car TransmissionHorsepowerAir conditioning Manual Automatic Alternative features have bounds of [1,1] on a set of dependences [0,1] [1,1]

34 Explicit Cardinalities Car TransmissionMotorAir conditioner Manual Automatic [0,2] [1,2] [1,1] Provide significant expressive power over the base FODA feature models

35 Orthogonal Variability Model (OVM) Bühen, Lauenroth, Pohl (2005) A flat model of variability in a product line Basic elements: –Variation points –Variants –Variability dependences (with cardinalities) –Constraints

36 Variation Points A set of VPs defines all of the ways a PL may vary Not organized as a tree (ala feature models) hierarchy can be modeled with constraints Modeled diagrammatically as VP 2 VP

37 Variants A set of variants defines the possible ways that a variation point may be realized in a PL Variants correspond to leaves of a feature diagram Modeled diagrammatically as V S4

38 Variability Dependences Relate variation points to the variants that may bind to them in some product line instance Three kinds of dependences –Optional –Alternative Choice –Mandatory : a commonality depicted as VP 2 VP V S4

39 Optional Dependences VP 1 VP VVV S1S2S3 Expresses that a variants may be bound to a given variation point in a PL instance Correspond to alternatives features in FODA Modeled diagramatically as

40 Alternative Choice Dependences VP 1 VP VVV S1S2S3 Expresses that at least n and at most m of a set of optional variants are bound to a given variation point in all product line instances Incorporates dependence cardinalities Modeled diagramatically as (n and m default to 1) [n,m]

41 Alternative Choice Dependences

42 Constraints Restrict the binding of dependent variants to variation points in a product line instance There are three classes of constraints –Variant (v_v) –Variation Point (vp_vp) –Variant to Variation Point (v_vp) Within each class there can be –requires : make allowable bindings explicit –excludes : make unallowable bindings explicit

43 Variant to Variant Constraints Restrict the binding of specific variants in an instance NB: dependent VPs are implicit V1 requires V2 –If V1 is in a PL instance, then V2 must be in that instance V1 excludes V2 –If V1 is in a PL instance, then V2 cannot be in that instance Allows for specification of feature sets –Sets of variants that are active together

44 More Variant Constraints Constraints are directed e.g., “V1 requires V2” demands nothing of V1 Multiple constraints originating from a variant union the targets of the constraint e.g., V1 requires {V2,V3} Modeled diagramatically as dashed hyper- edges

45 V VP Intrusion Detection VP Door Locks Camera Surveillance Motion Sensors Cullet Detection BasicAdvancedKeypad Fingerprint Scanner Security Package VP VVVVVV requires_v_v Example from Pohl 05 Part of a home security detection system

46 Variant to VP Constraints Controls the inclusion of a VP based on the inclusion of a variant in a PL instance By default, we consider all VPs in an OVM model to contribute to the description of the product line instance In certain product lines, we may have instances in which certain VPs play no role

47 V VP Intrusion Detection Camera Surveillance Motion Sensors Cullet Detection BasicAdvanced Security Package VP VVVV Door Locks Keypad Fingerprint Scanner VV requires_v_v VP Police Notification InternetPhone VV excludes_v_vp

48 VP to VP Constraints Controls the inclusion of a VP based on the inclusion of another VP in a PL instance Another level of generality that is useful in describing complex product lines Can be used to hierarchies of VPs –e.g., express hierarchical dependences between VP via requires_vp_vp

49 Formalizing Variability Models Subsequent to FODA there have been a number of misinterpretations of feature models Czarnecki observed the need for a formal definition of feature models to resolve such ambiguity Formalization also has value in enabling reasoning about properties of an SPL application of existing V&V techniques

50 Basic Approach Ignore mandatory dependences Define a relational model whose tuples encode combinations of variants Apply constraints to eliminate tuples that do not correspond to feasible instances of the PL Resulting relation defines the extent of the PL model

51 V VP Intrusion Detection VP Door Locks Camera Surveillance Motion Sensors Cullet Detection BasicAdvanced Keypad Fingerprint Scanner Security Package VP VVVVVV Optional semantics yields 8*4*4 = 128 tuples Must account for any subset of the optional variants including none

52 VP Door Locks BasicAdvanced Keypad Fingerprint Scanner Security Package VP VVVV V Intrusion Detection Camera Surveillance Motion Sensors Cullet Detection VV Associative choice semantics yields 2*2*2*2 = 16 tuples Select exactly one variant from each choice group Remaining options treated as before

53 V VP Intrusion Detection VP Door Locks Camera Surveillance Motion Sensors Cullet Detection BasicAdvanced Keypad Fingerprint Scanner Security Package VP VVVVVV requires_v_v Constraints reduce the set of tuples Basic requires Motion Sensors eliminates tuples with Basic and Camera Surveillance Basic requires Keypad eliminates tuples with Basic and Fingerprint Scanner

54 V VP Intrusion Detection VP Door Locks Camera Surveillance Motion Sensors Cullet Detection BasicAdvanced Keypad Fingerprint Scanner Security Package VP VVVVVV requires_v_v Values Factor Intrusion Detection A Intrusion Detection B Security Package Door Locks Camera Surv.Cullet Det.BasicKeypad Camera Surv.NoneBasicKeypad Motion Sen.Cullet Det.AdvancedFinger. Scanner Motion Sen.NoneAdvancedFinger. Scanner

55 Simple Relational Models Domain: finite set of values - D Relation: a subset of the Cartesian product of some number of domains. Relation over k domains - Elements of a relation are tuples

56 Simple Relational Models With k factors we have a k-tuple (v 1,v 2,…,v k ) where To extract a value for a factor, i, from a tuple, t=(v 1,…v k ), use a projection function where 1 ≤ i ≤ k.

57 Basic OVM Mapping Variation point: modeled by a set of factors denoted f(vp) for some variation point vp Variants: modeled as values Variability dependencies: relate a set of variants to a variation point (defines the domain)

58 Basic OVM Mapping Mandatory dependences ignore since these do not vary Optional dependences introduce multiple factors for a variation point to allow a variation point to be related to a set of variants Associative choice dependences more complex

59 Optional Dependences V VP Intrusion Detection Camera Surveillance Motion Sensors Cullet Detection VV Values Factor Intrusion Detection A Intrusion Detection B Security Package Door Locks Camera Surv.Cullet Det.BasicKeypad Camera Surv.NoneBasicKeypad Motion Sen.Cullet Det.AdvancedFinger. Scanner Motion Sen.NoneAdvancedFinger. Scanner

60 Optional Dependences V VP Intrusion Detection Camera Surveillance Motion Sensors Cullet Detection VV Values Factor Intrusion Detection A Intrusion Detection B Security Package Door Locks Camera Surv.Cullet Det.BasicKeypad Camera Surv.NoneBasicKeypad Motion Sen.Cullet Det.AdvancedFinger. Scanner Motion Sen.NoneAdvancedFinger. Scanner

61 Optional Dependences V VP Intrusion Detection Camera Surveillance Motion Sensors Cullet Detection VV Values Factor Intrusion Detection A Intrusion Detection B Security Package Door Locks Camera Surv.Cullet Det.BasicKeypad Camera Surv.NoneBasicKeypad Motion Sen.Cullet Det.AdvancedFinger. Scanner Motion Sen.NoneAdvancedFinger. Scanner

62 Alternative Choice Dependencies Given an alternative choice with bounds [i,j] Introduce i factors for the variation point with domain defined by the exact set of dependent variant values Introduce j-i factors for the variation point with a domain defined by the set of variant values and Ø (the empty value)

63 Alternative Choice Dependencies OneOrTwo 1 : {A, B, C} OneOrTwo 2 : {A,B,C,Ø} f(OneOrTwo) = {OneOrTwo 1,OneOrTwo 2 } AtMostOne : {A,B, Ø}

64 Alternative Choice Dependence OVM allows a variant to be bound at most once We could produce a tuple, t, for OneOrTwo such that π(t,OneOrTwo 1 ) = π(t,OneOrTwo 2 ) = A To avoid this add inequality constraints between all pairs of factors f(vp)

65 Basic OVM Mapping Size In the worst case where all dependences are optional an OVM model with k variants gives rise to a relational model with k factors However, alternative choices with default [1,1] bounds seem very common so we expect the number to be closer to the number of variation points since a single factor is needed for a VP

66 Mapping OVM Constraints An unconstrained OVM model is: tuples of the unconstrained model over approximate the set of feasible product line instances

67 Constraints Strategy: –Define sub-relations of U that are consistent with each constraint –Intersect resulting constraints Example (non-  Inequality Constraint):

68 Cumulative Inequality Constraints For a variation point, vp: For an OVM model:

69 Explicit OVM Constraints A requires_v_v constraint on factor i, with variant v, and factor j, with variant w

70 Explicit OVM Constraints A requires_v_v constraint on VP i, with variant v, and VP j, with variant w When VP i has value v, then we require something of the value of VP j

71 Explicit OVM Constraints A requires_v_v constraint on VP i, with variant v, and VP j, with variant w When VP i has a different value, then we make no requirement of the value of VP j

72 Combining Relational Models All of our constraints are sub-relations We can combine them through intersection with U A constrained OVM model is

73 Limitations Czarnecki’s approach allows for recursive feature diagrams multiple instances of a variant for a VP Batory has suggested propositional constraints

74 References Kang, K., Cohen, S., Hess, J., Nowak, W., and Peterson, S., Feature-oriented Domain Analysis (FODA) Feasibility Study, Technical Report CMU/SEI-90TR-21, Software Engineering Institute, Carnegie Mellon, Pittsburgh, PA (1990) Czarnecki, K., Helsen, S., and Eisenecker, U., Staged Configuration Using Feature Models, Software Product Line Conference, LNCS 3154 (2004) Czarnecki, K., Helsen, S., and Eisenecker, U., Formalizing Cardinality-based Feature Models and their Specialization, Software Process Improvement and Practice (2005) Czarnecki, K., and Kim, C.H.P., Cardinality-based Feature Modeling and Constraints : A Progress Report, OOPSLA’05 Workshop on Software Factories (2005) Buhne, S., Lauenroth, K., and Pohl, K., Modelling Requirements Variability across Product Lines, IEEE Symposium on Requirements Engineering (2005) Pohl, K., Bockle, G., and van der Linden, F., Software Product Line Engineering : Foundations, Principles, and Techniques, Springer (2005) Batory, D., Feature Models, Grammars, and Propositional Formulas, Software Product Line Conference, LNCS 3714 (2005)