A mode-based pattern for feature requirements, and a generic feature interface

In this paper, we propose a pattern for decomposing and structuring the model of a feature's behavioural requirements, based on modes of operation (e.g., Active, Inactive, Failed) that are common to features in multiple domains. Interestingly, the highest-level modes of the pattern can serve as a generic behavioural interface for all features that adhere to the pattern. We have applied the pattern in modelling the behavioural requirements of 19 automotive features that were specified in 5 production-grade requirements documents. We found that the pattern was applicable to all 19 features, and that our proposed generic feature interface was applicable to 50 out of 57 inter-feature references.

[1]  D. L. Parnas,et al.  On the criteria to be used in decomposing systems into modules , 1972, Software Pioneers.

[2]  Nancy G. Leveson,et al.  Investigating the readability of state-based formal requirements specification languages , 2002, ICSE '02.

[3]  Bruce P. Douglass,et al.  Doing hard time: developing real-time systems with uml , 1999 .

[4]  Michael A. Jackson,et al.  Problem Frames - Analysing and Structuring Software Development Problems , 2000 .

[5]  Martin Käser,et al.  Requirements patterns for seismology software applications , 2012, 2012 Second IEEE International Workshop on Requirements Patterns (RePa).

[6]  Luca Cardelli,et al.  Program fragments, linking, and modularization , 1997, POPL '97.

[7]  Betty H. C. Cheng,et al.  A Requirements Patterns-Driven Approach to Specify Systems and Check Properties , 2003, SPIN.

[8]  Leonard J. Bass,et al.  Linking usability to software architecture patterns through general scenarios , 2003, J. Syst. Softw..

[9]  Constance L. Heitmeyer,et al.  Automated consistency checking of requirements specifications , 1996, TSEM.

[10]  Shige Wang,et al.  A feature-oriented requirements modelling language , 2012, 2012 20th IEEE International Requirements Engineering Conference (RE).

[11]  Sven Apel,et al.  Model Superimposition in Software Product Lines , 2009, ICMT@TOOLS.

[12]  Don S. Batory,et al.  Scaling step-wise refinement , 2004, IEEE Transactions on Software Engineering.

[13]  Rick Salay,et al.  Managing requirements uncertainty with partial models , 2012, 2012 20th IEEE International Requirements Engineering Conference (RE).

[14]  Bashar Nuseibeh,et al.  Composing Features by Managing Inconsistent Requirements , 2007, ICFI.

[15]  Xavier Franch,et al.  Software requirement patterns , 2013, 2013 35th International Conference on Software Engineering (ICSE).

[16]  Christian Prehofer,et al.  Feature-Oriented Programming: A Fresh Look at Objects , 1997, ECOOP.

[17]  Betty H. C. Cheng,et al.  Using Security Patterns to Model and Analyze Security Requirements , 2012 .

[18]  Michael Jackson,et al.  Distributed Feature Composition: A Virtual Architecture for Telecommunications Services , 1998, IEEE Trans. Software Eng..

[19]  Carme Quer,et al.  A Metamodel for Software Requirement Patterns , 2010, REFSQ.

[20]  Martin Fowler,et al.  Analysis patterns - reusable object models , 1996, Addison-Wesley series in object-oriented software engineering.

[21]  David A. Carr,et al.  A pattern-supported approach to the user interface design process , 2001 .

[22]  Kyo Chul Kang,et al.  Feature-Oriented Domain Analysis (FODA) Feasibility Study , 1990 .

[23]  Betty H. C. Cheng,et al.  Requirements patterns for embedded systems , 2002, Proceedings IEEE Joint International Conference on Requirements Engineering.

[24]  Jonathan Aldrich,et al.  Open Modules: Modular Reasoning About Advice , 2005, ECOOP.

[25]  Neil A. M. Maiden,et al.  The Domain Theory for Requirements Engineering , 1998, IEEE Trans. Software Eng..

[26]  Roberto Erick Lopez-Herrejon,et al.  Evaluating Support for Features in Advanced Modularization Technologies , 2005, ECOOP.

[27]  David Harel,et al.  Statecharts: A Visual Formalism for Complex Systems , 1987, Sci. Comput. Program..

[28]  Krzysztof Czarnecki,et al.  Generative programming - methods, tools and applications , 2000 .

[29]  Kathi Fisler,et al.  Interfaces for modular feature verification , 2002, Proceedings 17th IEEE International Conference on Automated Software Engineering,.

[30]  Prahladavaradan Sampath,et al.  Resolving uncertainty in automotive feature interactions , 2012, 2012 20th IEEE International Requirements Engineering Conference (RE).

[31]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[32]  Sven Apel,et al.  An Overview of Feature-Oriented Software Development , 2009, J. Object Technol..

[33]  Reinhard von Hanxleden,et al.  Statechart development beyond WYSIWYG , 2007, MODELS'07.

[34]  Alexander L. Wolf,et al.  A conceptual basis for feature engineering , 1999, J. Syst. Softw..

[35]  Helen M. Edwards,et al.  Problem frames: analyzing and structuring software development problems , 2002, Softw. Test. Verification Reliab..

[36]  G. Kiczales,et al.  Aspect-oriented programming and modular reasoning , 2005, Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005..

[37]  Sven Apel,et al.  The road to feature modularity? , 2011, SPLC '11.

[38]  Thomas A. Henzinger,et al.  Interface automata , 2001, ESEC/FSE-9.

[39]  Christian Kästner,et al.  Revisiting Information Hiding: Reflections on Classical and Nonclassical Modularity , 2011, ECOOP.

[40]  Richard C. Waters,et al.  The Requirements Apprentice: Automated Assistance for Requirements Acquisition , 1991, IEEE Trans. Software Eng..