Ontological foundations for software requirements with a focus on requirements at runtime

The use of Requirements at Runtime (RRT) is an emerging research area. Many methods and frameworks that make use of requirements models during software execution can be found in the literature. However, there is still a lack of a formal and explicit representation of what RRT are and what are the primary goals of their use. Still, most RRT proposals have their own modeling languages and ways to represent, specify and make use of requirements at runtime, thus resulting in a domain with overloaded concepts. In this paper, we intend to clarify the main notions involved in RRT, establishing an explicit common conceptualization regarding this domain. To do so, we need first to understand what software execution is, as well as what requirements are. Thus, we present three related domain ontologies: the Software Ontology (SwO), an ontology about software nature and execution, the Reference Software Requirements Ontology (RSRO), which addresses what requirements are and types of requirements, and the Runtime Requirements Ontology (RRO), which extends SwO and RSRO to represent the nature and context of RRT. For developing these ontologies, we follow SABiO, a well-established Ontology Engineering method. Moreover, all the three ontologies are grounded in the Unified Foundational Ontology (UFO) and are integrated into the Software Engineering Ontology Network (SEON). Finally, as prescribed by SABiO, the ontologies are evaluated using ontology verification and validation techniques.

[1]  Axel van Lamsweerde,et al.  The KAOS Project: Knowledge Acquisition in Automated Specification of Software , 1991 .

[2]  Michael Gruninger,et al.  Methodology for the Design and Evaluation of Ontologies , 1995, IJCAI 1995.

[3]  Michael Jackson,et al.  Four dark corners of requirements engineering , 1997, TSEM.

[4]  Ian Sommerville,et al.  Requirements Engineering: Processes and Techniques , 1998 .

[5]  A Straw,et al.  Guide to the Software Engineering Body of Knowledge , 1998 .

[6]  M.S. Feather,et al.  Reconciling system requirements and runtime behavior , 1998, Proceedings Ninth International Workshop on Software Specification and Design.

[7]  William N. Robinson A requirements monitoring framework for enterprise systems , 2005, Requirements Engineering.

[8]  Giancarlo Guizzardi,et al.  Ontological foundations for structural conceptual models , 2005 .

[9]  Claes Wohlin,et al.  Engineering and Managing Software Requirements , 2005 .

[10]  Marko Grobelnik,et al.  A SURVEY OF ONTOLOGY EVALUATION TECHNIQUES , 2005 .

[11]  Pearl Brereton,et al.  Performing systematic literature reviews in software engineering , 2006, ICSE.

[12]  Giancarlo Guizzardi,et al.  On Ontology, ontologies, Conceptualizations, Modeling Languages, and (Meta)Models , 2007, DB&IS.

[13]  Betty H. C. Cheng,et al.  Research Directions in Requirements Engineering , 2007, Future of Software Engineering (FOSE '07).

[14]  Friederike Moltmann Events, Tropes, and Truthmaking , 2007 .

[15]  Byungjeong Lee,et al.  Runtime Service Discovery and Reconfiguration Using OWL-S Based Semantic Web Service , 2007, 7th IEEE International Conference on Computer and Information Technology (CIT 2007).

[16]  Julie A. McCann,et al.  A survey of autonomic computing—degrees, models, and applications , 2008, CSUR.

[17]  Carl K. Chang,et al.  A Human-Machine Dimensional Inference Ontology that Weaves Human Intentions and Requirements of Context Awareness Systems , 2008, 2008 32nd Annual IEEE International Computer Software and Applications Conference.

[18]  Giancarlo Guizzardi,et al.  Grounding Software Domain Ontologies in the Unified Foundational Ontology (UFO): The case of the ODE Software Process Ontology , 2008, CIbSE.

[19]  Claudio Gutierrez,et al.  Survey of graph database models , 2008, CSUR.

[20]  John Mylopoulos,et al.  Revisiting the Core Ontology and Problem in Requirements Engineering , 2008, 2008 16th IEEE International Requirements Engineering Conference.

[21]  John Mylopoulos,et al.  A core ontology for requirements , 2009, Appl. Ontology.

[22]  Nelly Bencomo,et al.  Requirements reflection: requirements as runtime entities , 2010, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[23]  Giancarlo Guizzardi,et al.  Validating Modal Aspects of OntoUML Conceptual Models Using Automatically Generated Visual World Structures , 2010, J. Univers. Comput. Sci..

[24]  John Mylopoulos,et al.  Awareness Requirements , 2010, Software Engineering for Self-Adaptive Systems.

[25]  Anna Perini,et al.  Requirements Engineering for Adaptive Service Based Applications , 2010, 2010 18th IEEE International Requirements Engineering Conference.

[26]  Nelly Bencomo,et al.  RELAX: a language to address uncertainty in self-adaptive systems requirement , 2010, Requirements Engineering.

[27]  Monalessa Perini Barcellos,et al.  A Well-Founded Software Measurement Ontology , 2010, FOIS.

[28]  Bradley R. Schmerl,et al.  Software Engineering for Self-Adaptive Systems: A Second Research Roadmap , 2010, Software Engineering for Self-Adaptive Systems.

[29]  Luciano Baresi,et al.  Fuzzy Goals for Requirements-Driven Adaptation , 2010, 2010 18th IEEE International Requirements Engineering Conference.

[30]  L. Pasquale,et al.  Towards Adaptive Systems through Requirements @ Runtime ? , 2011 .

[31]  Giancarlo Guizzardi,et al.  Using a Foundational Ontology for Reengineering a Software Process Ontology , 2011, J. Inf. Data Manag..

[32]  Hans Weigand,et al.  Enterprise Monitoring Ontology , 2011, ER.

[33]  Anna Perini,et al.  Requirements Engineering for Self-Adaptive Systems: Core Ontology and Problem Statement , 2011, CAiSE.

[34]  Sandeep Purao,et al.  Monitoring Service Systems from a Language-Action Perspective , 2011, IEEE Transactions on Services Computing.

[35]  Wei Liu,et al.  Uncertainty Modeling of Self-adaptive Software Requirement , 2012 .

[36]  James Robertson,et al.  Mastering the Requirements Process: Getting Requirements Right , 2012 .

[37]  Vítor Estêvão Silva Souza,et al.  Requirements-based Software System Adaptation , 2012 .

[38]  Nurbay Irmak,et al.  Software is an abstract artifact , 2012 .

[39]  John Mylopoulos,et al.  Requirements-driven software evolution , 2012, Computer Science - Research and Development.

[40]  Asunción Gómez-Pérez,et al.  Ontology Engineering in a Networked World , 2012, Springer Berlin Heidelberg.

[41]  John Mylopoulos,et al.  Runtime Goal Models , 2013, RCIS 2013.

[42]  Takeo Kanade,et al.  Software Engineering for Self-Adaptive Systems II , 2013, Lecture Notes in Computer Science.

[43]  John Mylopoulos,et al.  Requirements models for design- and runtime: A position paper , 2013, 2013 5th International Workshop on Modeling in Software Engineering (MiSE).

[44]  Monique Snoeck,et al.  Using goals and customizable services to improve adaptability of process-based service compositions , 2013, IEEE 7th International Conference on Research Challenges in Information Science (RCIS).

[45]  Gerd Wagner,et al.  Towards Ontological Foundations for the Conceptual Modeling of Events , 2013, ER.

[46]  Ricardo de Almeida Falbo,et al.  SABiO: Systematic Approach for Building Ontologies , 2014, ONTO.COM/ODISE@FOIS.

[47]  Nicola Guarino,et al.  Towards an Ontology of Software: a Requirements Engineering Perspective , 2014, FOIS.

[48]  Giancarlo Guizzardi,et al.  An Ontological Interpretation of Non-Functional Requirements , 2014, FOIS.

[49]  Gerd Wagner,et al.  Towards ontological foundations for conceptual modeling: The unified foundational ontology (UFO) story , 2015, Appl. Ontology.

[50]  Giancarlo Guizzardi,et al.  Ontology Pattern Languages , 2016, Ontology Engineering with Ontology Design Patterns.

[51]  Giancarlo Guizzardi,et al.  Towards an Ontology of Requirements at Runtime , 2016, FOIS.

[52]  Nicola Guarino,et al.  Ontological Considerations About the Representation of Events and Endurants in Business Models , 2016, BPM.

[53]  Giancarlo Guizzardi,et al.  SEON: A Software Engineering Ontology Network , 2016, EKAW.

[54]  Ricardo de Almeida Falbo,et al.  ROoST: Reference Ontology on Software Testing , 2017, Appl. Ontology.

[55]  Giancarlo Guizzardi,et al.  Towards an Ontology of Goal-Oriented Requirements , 2017, WER.

[56]  Danny Weyns,et al.  Software Engineering of Self-adaptive Systems , 2019, Handbook of Software Engineering.