Abstract
In current software systems with highly volatile requirements, traceability plays a key role to maintain the consistency between requirements and code. Traceability between artifacts involved in the development of software product line (SPL) is still more critical because it is necessary to guarantee that the selection of variants that realize the different SPL products meet the requirements. Current SPL traceability mechanisms trace from variability in features to variations in the configuration of product-line architecture (PLA) in terms of adding and removing components. However, it is not always possible to materialize the variable features of a SPL through adding or removing components, since sometimes they are materialized inside components, i.e., in part of their functionality: a class, a service, and/or an interface. Additionally, variations that happen inside components may crosscut several components of architecture. These kinds of variations are still challenging and their traceability is not currently well supported. Therefore, it is not possible to guarantee that those SPL products with these kinds of variations meet the requirements. This paper presents a solution for tracing variability from features to PLA by taking these kinds of variations into account. This solution is based on models and traceability between models in order to automate SPL configuration by selecting the variants and realizing the product application. The FPLA modeling framework supports this solution which has been deployed in a software factory. Validation has consisted in putting the solution into practice to develop a product line of power metering management applications for smart grids.
Similar content being viewed by others
Notes
It is available on: https://syst.eui.upm.es/FPLA/home.
Most services are omitted to gain readability.
The script of the interviews is available on https://www.surveymonkey.com/s/TSYCCN6.
Redmine is web-based project management and bug-tracking tool http://www.redmine.org/.
Intelligent Monitoring of Power NETworks http://www.itea2.org/project/index/view?project=10032.
NEtworked MOnitoring & COntrol, Diagnostic for Electrical Distribution http://www.itea2.org/project/index/view?project=1131.
Technologies for automated and intelligent management of power distribution networks of the future http://www.indracompany.com/sostenibilidad-e-innovacion/proyectos-innovacion/energos-technologies-for-automated-and-intelligent-.
Oracle Berkeley DB is a high-performance embeddable database providing Java Object and Key/Value storage (NoSQL). http://www.oracle.com/technetwork/products/berkeleydb/.
Apache Hadoop is a framework for running applications on large cluster built of commodity hardware. http://hadoop.apache.org/.
Object-relational database management system. http://www.oracle.com/technetwork/database/.
Software for clustering and high availability in Oracle db environments. http://www.oracle.com/technetwork/products/clustering/.
References
Adachi Barbosa E, Batista T, Garcia A, Silva E (2011) Pl-aspectualacme: an aspect-oriented architectural description language for software product lines. In: Crnkovic I, Gruhn V, Book M (eds) Software architecture, lecture notes in computer science, vol 6903, Springer, Berlin, pp 139–146
Aizenbud-Reshef N, Nolan BT, Rubin J, Shaham-Gafni Y (2006) Model traceability. IBM Syst J 45(3):515–526. doi:10.1147/sj.453.0515
Ajila S, Kaba A (2004) Using traceability mechanisms to support software product line evolution. In: Information reuse and integration, 2004. IRI 2004. Proceedings of the 2004 IEEE International Conference on, pp 157–162. doi:10.1109/IRI.2004.1431453
Anquetil N, Kulesza U, Mitschke R, Moreira A, Royer JC, Rummler A, Sousa A (2009) A model-driven traceability framework for software product lines. Software and systems modeling, p 25. doi:10.1007/s10270-009-0120-9. URL: http://www.springerlink.com/content/wvm4hv8r78117785
Antkiewicz M, Czarnecki K (2004) Featureplugin: feature modeling plug-in for eclipse. In: eclipse ’04: Proceedings of the 2004 OOPSLA workshop on eclipse technology eXchange. ACM, New York, NY, USA, pp 67–72. doi:10.1145/1066129.1066143
Bachmann F, Bass L (2001) Managing variability in software architectures. In: SSR ’01: Proceedings of the 2001 symposium on Software reusability. ACM, New York, NY, USA, pp 126–132. doi:10.1145/375212.375274
Bachmann F, Goedicke M, Leite J, Nord R, Pohl K, Ramesh B, Vilbig A (2004) A meta-model for representing variability in product family development. In: Linden F (eds) Software product-family engineering, lecture notes in computer science, vol 3014, Springer, Berlin, pp 66–80
Bass L, Clements P, Kazman R (2003) Software architecture in practice. Addison-Wesley Pearson Education, Boston, MA, USA
Benavides D, Segura S, Ruiz-Cortés A (2010) Automated analysis of feature models 20 years later: a literature review. Inf Syst 35(6):615–636
Berg K, Bishop J, Muthig D (2005) Tracing software product line variability: from problem to solution space. In: SAICSIT ’05: Proceedings of the 2005 annual research conference of the South African institute of computer scientists and information technologists on IT research in developing countries. South African Institute for Computer Scientists and Information Technologists, Republic of South Africa, pp 182–191
Beydeda S, Book M, Gruhn V (2005) Model-driven software development. Springer, Berlin
Bezivin J (2005) On the unification power of models. Softw Syst Model 4(2):171–188
Cleland-Huang J, Gotel O, Zisman A (2012) The grand challenge of traceability (v1.0). Springer, London
Clements P, Northrop L (2002) Software product lines: practices and patterns. Addison-Wesley, Boston, MA, USA
Czarnecki K (2005) Mapping features to models: a template approach based on superimposed variants. In: GPCE 2005—generative programming and component engineering. 4th international conference. Springer, pp 422–437
Dashofy EM, Hoek AVD (2002) Representing product family architectures in an extensible architecture description language. In: PFE ’01: revised papers from the 4th international workshop on software product-family engineering. Springer, pp 330–341
Díaz J, Pérez J, Garbajosa J, Yagüe A (2013) Change-impact driven agile architecting. In: Proceedings of the 46th Hawaii international conference on system sciences (HICSS ’13), Hawaii, USA, 7–10 Jan 2013, IEEE Computer Society Press, pp 4780–4789
Espinoza A, Garbajosa J (2008) A proposal for defining a set of basic items for project-specific traceability methodologies. In: Software engineering workshop, 2008. SEW ’08. 32nd Annual IEEE, pp 175–184
Gotel O et al (2012) The grand challenge of traceability (v10). In: Cleland-Huang J, Gotel O, Zisman A (eds) Software and systems traceability, Springer, London, pp 343–409
Gotel O, Finkelstein C (1994) An analysis of the requirements traceability problem. In: Proceedings of the first international conference on requirements engineering, pp 94–101. doi:10.1109/ICRE.1994.292398
Hauser JR, Clausing D (1988) The house of quality. Harv Bus Rev 66(3):63–73
Jacobson I, Griss M, Jonsson P (1997) Software reuse. architecture, process and organization for business success. Addison-Wesley, Boston
Kang KC, Cohen SG, Hess JA, Novak WE, Peterson AS (1990) Feature-oriented domain analysis (foda) feasibility study. Tech. rep., Carnegie-Mellon University, Pittsburgh, PA, USA, CMU/SEI-90-TR-21 ESD-90-TR-222
Khurum M, Gorschek T (2009) A systematic review of domain analysis solutions for product lines. J Syst Softw 82(12):1982–2003
Kizcales G, Lamping J, Mendhekar A, Maeda C (1997) Aspect-oriented programming. In: Proceedings of the 11th European conference on object-oriented programming (ECOOP), lecture notes in computer science, vol 1241. Springer
Kolovos DS, Paige RF, Polack FAC (2006) On-demand merging of traceability links with models. In: In Proceedings of 3 rd ECMDA traceability workshop
Letelier P (2002) A framework for requirements traceability in uml-based projects. In: In Proceedings of 1st International. Workshop on traceability in emerging forms of software engineering, pp 32–41
Loughran N, Sánchez P, Garcia A, Fuentes L (2008) Language support for managing variability in architectural models. In: SC’08: Proceedings of software composition, 7th international symposium, lecture notes in computer science, vol 4954, Springer, pp 36–51
Magee J, Kramer J (1996) Dynamic structure in software architectures. In: Proceedings of the 4th ACM SIGSOFT symposium on foundations of software engineering, SIGSOFT ’96, ACM, New York, NY, USA, pp 3–14
Mahdavi-Hezavehi S, Galster M, Avgeriou P (2013) Variability in quality attributes of service-based software systems: a systematic literature review. Inf Softw Technol 55(2):320–343
Martin JL, Yague A, Gonzalez E, Garbajosa J (2010) Making software factory truly global: the smart software factory project. In: Fagerholm F (ed) Software factory magazine. http://www.softwarefactory.cc/magazine, p 19
Massoud Amin S, Wollenberg B (2005) Toward a smart grid: power delivery for the 21st century. Power Energy Mag IEEE 3(5):34–41. doi:10.1109/MPAE.2005.1507024
Matinlassi M (2004) Comparison of software product line architecture design methods: COPA, FAST, FORM, KOBRA and QADA. In: ICSE ’04: Proceedings of the 26th international conference on software engineering. IEEE Computer Society, Washington, DC, USA, pp 127–136
Medvidovic N, Taylor RN (2000) A classification and comparison framework for software architecture description languages. IEEE Trans Softw Eng 26(1):70–93. doi:10.1109/32.825767
Mens T (2010) Future research challenges in software evolution and maintenance—report from EC expert meeting. ERCIM News 81
Moon M, Chae HS, Nam T, Yeom K (2007) A metamodeling approach to tracing variability between requirements and architecture in software product lines. In: CIT ’07: Proceedings of the 7th IEEE international conference on computer and information technology, IEEE Computer Society, Washington, DC, USA, pp 927–933
Object Management Group (2006) Data distribution service for real-time systems, v1.2
Object Management Group (2006) Meta-object facility (MOF) specification 2.0 TR formal-06-01-01. http://www.omg.org/spec/MOF/2.0/PDF/
Object Management Group (2011) OCL specification version 2.2. http://www.omg.org/spec/OCL/2.2/
Olsen G, Oldevik J (2007) Scenarios of traceability in model to text transformations. In: Akehurst D, Vogel R, Paige R (eds) Model driven architecture: foundations and applications, lecture notes in computer science, vol 4530, Springer, Berlin, pp 144–156
Pérez J, Díaz J, Soria CC, Garbajosa J (2009) Plastic partial components: a solution to support variability in architectural components. In: Proceedings of joint working IEEE/IFIP conference on software architecture 2009 and European conference on software architecture 2009, WICSA/ECSA 2009, Cambridge, UK, 14–17 Sept 2009. IEEE, pp 221–230
Pérez J, Díaz J, Garbajosa J, Alarcón PP (2010) Flexible working architectures: agile architecting using ppcs. In: Proceedings of the 4th European conference on software architecture (ECSA 2010), LNCS, Springer, Berlin, pp 102–117
Pohl K, Brandenburg M, Gülich A (2001) Integrating requirement and architecture information: a scenario and meta-model approach. In: REFSQ’01: Proceedings of The seventh international workshop on requirements engineering: foundation for software quality, pp 68–84
Pohl K, Böckle G, Linden F (2005) Software product line engineering: foundations, principles and techniques. Springer, Germany
Poshyvanyk D, Di Penta M, Kagdi H (2011) Sixth international workshop on traceability in emerging forms of software engineering: (tefse 2011). In: 33rd international conference on software engineering (ICSE 2011), pp 1214–1215. doi:10.1145/1985793.1986052
Ramesh B, Jarke M (2001) Toward reference models for requirements traceability. IEEE Trans Softw Eng 27(1):58–93. doi:10.1109/32.895989
Runeson P, Höst M (2009) Guidelines for conducting and reporting case study research in software engineering. Empir Softw Eng 14:131–164
Runeson P, Höst M, Rainer A, Regnell B (2012) Case study research in software engineering: guidelines and examples. Wiley, Hoboken
Satyananda TK, Lee D, Kang S, Hashmi SI (2007) Identifying traceability between feature model and software architecture in software product line using formal concept analysis. In: Proceedings of the international conference computational science and its applications. IEEE Computer Society, Washington, DC, USA, pp 380–388
Schwaber K, Beedle M (2002) Agile software development with scrum. Prentice-Hall, Englewood Cliffs
Scott J, Kazman R (2009) Realizing and refining architectural tactics: Availability. Tech. rep., CMU/SEI-2009-TR-006 ESC-TR-2009-006, Pittsburgh, USA
Selic B (2003) The pragmatics of model-driven development. IEEE Softw 20(5):19–25. doi:10.1109/MS.2003.1231146
Staab S, Walter T, Grner G, Parreiras F (2010) Model driven engineering with ontology technologies. In: Amann U, Bartho A, Wende C (eds) Reasoning web semantic technologies for software engineering, Lecture Notes in Computer Science, vol. 6325, Springer, Berlin, pp 62–98
Stake RE (1995) The art of case study research. Sage, London
Szyperski C (2002) Component software: beyond object-oriented programming. Addison-Wesley Longman Publishing Co., Inc., Boston, MA
Taha WM (2009) Domain-specific languages IFIP TC 2 working conference, DSL, lecture notes in computer science, vol 5658. Springer, Berlin
van Heesch U, Avgeriou P, Hilliard R (2012) A documentation framework for architecture decisions. J Syst Softw 85(4):795–820. doi:10.1016/j.jss.2011.10.017
van der Hoek A, Heimbigner D, Wolf AL (1999) Capturing architectural configurability: variants, options, and evolution. Tech. rep., Technical Report CU-CS-895-99, Department of Computer Science, University of Colorado, Boulder, Colorado
van Ommering R, van der Linden F, Kramer J, Magee J (2000) The koala component model for consumer electronics software. Computer 33(3):78–85. doi:10.1109/2.825699
Weiler T (2003) Modelling architectural variability for software product lines. In: SVM’03: Proceedings of the software variability management workshop, pp 53–61
Yin R (2008) Case study research. Design and methods. 4th edn. Sage, London
Acknowledgments
The work reported in here has been partially sponsored by the Spanish fund: INNOSEP (TIN2009-13849), IMPONET (ITEA 2 09030, TSI-02400-2010-103), i-SSF (IPT-430000-2010-038), NEMO&CODED (ITEA2 08022, IDI-20110864), and ENERGOS (CEN-20091048). Finally, it is also funded by the UPM (Technical University of Madrid) under their researcher training program.
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Díaz, J., Pérez, J. & Garbajosa, J. A model for tracing variability from features to product-line architectures: a case study in smart grids. Requirements Eng 20, 323–343 (2015). https://doi.org/10.1007/s00766-014-0203-1
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00766-014-0203-1