Software Product Line Engineering with the UML: Deriving Products
read more
Citations
FAMILIAR: A domain-specific language for large scale management of feature models
Model composition in product lines and feature interaction detection using critical pair analysis
Pairwise testing for software product lines: comparison of two approaches
Feature Identification from the Source Code of Product Variants
Formal Modeling for Product Families Engineering
References
Design Patterns: Elements of Reusable Object-Oriented Software
Statecharts: A visual formalism for complex systems
Feature-Oriented Domain Analysis (FODA) Feasibility Study
LSCs: Breathing Life into Message Sequence Charts
Software product-line engineering: a family-based software development process
Related Papers (5)
Frequently Asked Questions (17)
Q2. What are the future works in "Software product line engineering with the uml: deriving products" ?
The authors used their approach in several case studies ; however they hope in the future to use it in an industrial context.
Q3. What are the types of constraints that can be used to improve genericity?
The introduction of variability using the <<variant>>, <<variation>>, and <<optional>> stereotypes improves genericity but can generate some inconsistencies.
Q4. What is the algebraic composition of statecharts?
Using their algebraic framework for statecharts, translating product UML sequence diagrams to statecharts is defined in two steps: synthesis from basic sequence diagrams and synthesis from combined sequence diagrams.
Q5. What is the method for generating statecharts from basic sequence diagrams?
For each object O, a REST is constructed by replacing in the RESD seq, alt, and loop respectively by statecharts operators seqs, alts and loops, and each reference to a SD S by the statechart P(S,O).
Q6. What is the role of behavior modeling in the traditional engineering of software-based systems?
In addition to static aspect description, behavior modeling plays an important role in the traditional engineering of software-based systems; it is the basis for systematic approaches to requirements capture, specification, design and simulation, code generation, testing, and verification.
Q7. What is the definition of the presence constraint in the Mercure PL?
The presence constraint in the Mercure PL is formalized as an invariant for the Model meta-class as follows:context Model inv:self.presenceClass(’NetDriver1’) implies self.presenceClass(’Engine1’)presenceClass(C) is an auxiliary operation indicating if a specific class called C is present in the model.
Q8. What is the definition of a variation point in a Mercure class diagram?
It basically says that a Mercure system is an instance of the Mercure class, aggregating an Engine (that encapsulates the work that Mercure has to do on a particular processor of the target distributed system), a collection of NetDrivers, a collection of Managers (that represent the range of functionalities available), and the GUI that encapsulates the user preference variability factor.
Q9. What other approaches have been used to generate statecharts from mscs?
Several other approaches [31, 35, 36] study statechart synthesis from Message Sequence charts (MSC) [22], a scenario formalism similar to sequence diagrams.
Q10. What is the definition of a dependency in the PL class diagram?
As shown previously, the PL class diagram is defined by a set of variation points and to derive a specific-product class diagram, some decisions (or choices) associated with these variation points are needed.
Q11. What are the mechanisms to specify variability in a Mercure diagram?
This profile includes mechanisms to specify variability within two types of UML 2.0 diagrams: class diagrams and sequence diagrams.
Q12. What is the approach to statechart synthesis?
Their approach does not use variables, and structures the statecharts and transitions based on information provided by lifeline orderings and SD operators.
Q13. What is the purpose of statechart synthesis?
As discussed in [44], statechart synthesis should be considered more as a step towards implementation rather than as a definitive bridge from user requirements to code.
Q14. What is the factory method that is used to generate the product class diagram?
It takes as input the PL class diagram, and the concrete factory from the decision model and it generates as output the product class diagram.
Q15. What are the constraints of the derivation algorithm?
The generic constraints represent the pre-conditions of the derivation algorithm while specific constraints represent the post-conditions:DeriveProductModels(PL_classDiagram:Model, aConcreteFactory:Class)pre: check Generic Constraints on PL classDiagram post: check Specific Constraints on the Product classDiagram result.
Q16. What is the composition mechanism of the ML2.0 statechart?
This composition mechanism is very close to that of current SDs in UML2.0 and their approach can be used to generate statecharts from MSCs.
Q17. What is the factory method that corresponds to the GUI variation point?
The Factory Method that corresponds to the GUI variation point is new_gui(), so the authors add two stereotypes <<GUI1>> and <<GUI2>> to this factory method (see Fig. 4 ).