ABSTRACT
This paper presents an approach that considers variation in systems and system architectures according to the kind of relation among the variants in the software family. The approach highlights why it is beneficial to consider such different variation relations separately and gives examples of what these relations may be.
Two main categories of variation relations are presented, based on whether the system architecture remains constant (architecture-based variation), or whether the architecture itself is variable, i.e. the variants do not share a common architecture. The paper introduces several different kinds of variation families that seem to belong to these two categories, as well as yet other families comprising variants that do not neatly fit in either category, with only a subset of the variants sharing a common architecture. Each kind of variation relation is illustrated with an example software family from different domains, including operating systems (OS).
- Apel, S., Janda, F., Trujillo, S., and Kästner, C. Model superimposition in software product lines, 2009.Google Scholar
- Apel, S., Kastner, C., and Lengauer, C. FEATUREHOUSE: language-independent, automated software composition. In ICSE '09: Proceedings of the 31st International Conference on Software Engineering (Washington, DC, USA, 2009), IEEE Computer Society, pp. 221--231. Google ScholarDigital Library
- Atkinson, C., Bayer, J., and Muthig, D. Component-based product line development: The KobrA approach. In Proceedings of the the First International Software Product Line Conference (SPLC) (Denver, CO, 2000), pp. 289--309. Google ScholarDigital Library
- Bachmann, F., and Bass, L. Managing variability in software architectures. In SSR '01: Proceedings of the 2001 Symposium on Software Reusability (New York, NY, USA, 2001), ACM, pp. 126--132. Google ScholarDigital Library
- Batory, D. Feature-oriented programming and the AHEAD tool suite. In ICSE '04: Proceedings of the 26th International Conference on Software Engineering (Washington, DC, USA, 2004), IEEE Computer Society, pp. 702--703. Google ScholarDigital Library
- Batory, D., and O'Malley, S. The design and implementation of hierarchical software systems with reusable components. ACM Transactions on Software Engineering and Methodology 1, 4 (1992), 355--398. Google ScholarDigital Library
- Clements, P., and Northrop, L. Software Product Lines--Practices and Patterns. Addison-Wesley Professional, 2001. Google ScholarDigital Library
- Czarnecki, K., and Eisenecker, U. Components and generative programming. In ESEC '99/FSE-7: Proceedings of the 7th European Software Engineering Conference held jointly with the 7th ACM SIGSOFT International Symposium on Foundations of Software Engineering (1999), pp. 2--19. Google ScholarDigital Library
- Gomaa, H. Designing Software Product Lines with UML: From Use Cases to Pattern-Based Software Architectures. Addison-Wesley, Redwood City, CA, 2004. Google ScholarDigital Library
- Kang, K. C., Kim, S., Lee, J., Kim, K., Shin, E., and Huh, M. FORM: A feature-oriented reuse method with domain specific reference architectures. Annals of Software Engineering 5, 1 (1998), 143--168. Google ScholarDigital Library
- Kästner, C., Apel, S., and Kuhlemann, M. Granularity in software product lines. In ICSE '08: Proceedings of the 30th international conference on Software engineering (New York, NY, USA, 2008), ACM, pp. 311--320. Google ScholarDigital Library
- Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C., Loingtier, J., and Irwin, J. Aspect-oriented programming. In ECOOP '97: Proceedings of the 11th European Conference on Object-Oriented Programming (1997), vol. 1241, Springer-Verlag, pp. 220--242.Google ScholarCross Ref
- Knauber, S. Synergy between component-based and generative approaches. In ESEC '99/FSE-7: Proceedings of the 7th European Software Engineering Conference held jointly with the 7th ACM SIGSOFT International Symposium on Foundations of Software Engineering (1999), pp. 2--19. Google ScholarDigital Library
- Person, S., Dwyer, M. B., Elbaum, S., and Pâsâreanu, C. S. Differential symbolic execution. In SIGSOFT '08/FSE-16: Proceedings of the 16th ACM SIGSOFT International Symposium on Foundations of Software Engineering (New York, NY, USA, 2008), ACM, pp. 226--237. Google ScholarDigital Library
- Pohl, K., and Metzger, A. Variability management in software product line engineering. In ICSE '06: Proceedings of the 28th International Conference on Software engineering (New York, NY, USA, 2006), ACM, pp. 1049--1050. Google ScholarDigital Library
- Prehofer, C. Feature-oriented programming: a fresh look at objects. In ECOOP '97: Proceedings of the 11th European Conference on Object-Oriented Programming (1997), vol. 1241, Springer-Verlag, pp. 419--443.Google ScholarCross Ref
- Schmid, K., and van der Linden, F. Introducing and optimizing software product lines using the FEF. In SPLC '09: Proceedings of the 13th International Software Product Line Conference (2009), Carnegie Mellon University, pp. 311--311. Google ScholarDigital Library
- Schobbens, P.-Y., Heymans, P., and Trigaux, J.-C. Feature diagrams: A survey and a formal semantics. In IEEE International Conference on Requirements Engineering (2006), IEEE Computer Society, pp. 139--148. Google ScholarDigital Library
- Simidchieva, B. I., Clarke, L. A., and Osterweil, L. J. Representing process variation with a process family. In Software Process Dynamics and Agility: Proceedings of the International Conference on Software Process (2007), Q. Wang, D. Pfahl, and D. M. Raffo, Eds., vol. 4470 of LNCS, Springer, pp. 109--120. Google ScholarDigital Library
- Sinnema, M., Deelstra, S., Nijhuis, J., and Bosch, J. COVAMOF: a framework for modeling variability in software product families, 2004.Google Scholar
- Smaragdakis, Y., and Batory, D. Mixin layers: an object-oriented implementation technique for refinements and collaboration-based designs. ACM Transactions on Software Engineering and Methodology 11, 2 (2002), 215--255. Google ScholarDigital Library
- Trujillo, S., Batory, D., and Diaz, O. Feature oriented model driven development: A case study for portlets. In ICSE '07: Proceedings of the 29th international conference on Software Engineering (Washington, DC, USA, 2007), IEEE Computer Society, pp. 44--53. Google ScholarDigital Library
- van Ommering, R. Building product populations with software components. In ICSE '02: Proceedings of the 24th International Conference on Software Engineering (Los Alamitos, CA, USA, 2002), IEEE Computer Society, pp. 255--265. Google ScholarDigital Library
- van Ommering, R., Kramer, J., and Magee, J. The koala component model for consumer electronics software. IEEE Computer 33, 3, 78--85. Google ScholarDigital Library
- Weiss, D. M., and Lai, C. T. R. Software product-line engineering: a family-based software development process. Addison-Wesley, 1999. Google ScholarDigital Library
Index Terms
- Categorizing and modeling variation in families of systems: a position paper
Recommendations
Integrated management of variability in space and time in software families
SPLC '14: Proceedings of the 18th International Software Product Line Conference - Volume 1Software product lines (SPLs) and software ecosystems (SECOs) encompass a family of closely related software systems in terms of common and variable assets that are configured to concrete products (variability in space). Over the course of time, ...
Evaluation of Quality Attribute Variability in Software Product Families
ECBS '08: Proceedings of the 15th Annual IEEE International Conference and Workshop on the Engineering of Computer Based SystemsSoftware product family or line is a software engineering paradigm that systematizes reuse. In Software Product Line Engineering, two phases are distinguished: Domain Engineering which is in charge of developing a common infrastructure and assets and ...
Recovering Architectural Variability from Source Code
SBES '20: Proceedings of the XXXIV Brazilian Symposium on Software EngineeringContext: Systematic variability management helps efficiently manage commonalities and differences in software systems (e.g., in software product lines and families). This enables the reuse of development artifacts in organizations and increases the ...
Comments