An ontological analysis of software system anomalies and their associated risks

https://doi.org/10.1016/j.datak.2021.101892Get rights and content

Abstract

Software systems have an increasing value in our lives, as our society relies on them for the numerous services they provide. However, as our need for larger and more complex software systems grows, the risks involved in their operation also grows, with possible consequences in terms of significant material and social losses. The rational management of software defects and possible failures is a fundamental requirement for a mature software industry. Standards, professional guides and capability models directly emphasize how important it is for an organization to know and to have a well-established history of failures, errors and defects as they occur in software activities. The problem is that each of these reference models employs its own vocabulary to deal with these phenomena, which can lead to a deficiency in the understanding of these notions by software engineers, causing potential interoperability problems between supporting tools, and, consequently, a poorer adoption of these standards and tools in practice. In this paper, we address this problem of the lack of a consensual conceptualization in this area by proposing two reference conceptual models: an Ontology of Software Defects, Errors and Failures (OSDEF), which takes into account an ecosystem of software artifacts, and a Reference Ontology of Software Systems (ROSS), which characterizes software systems and related artifacts at different levels of abstraction. Moreover, we use OSDEF and ROSS to perform an ontological analysis of the impact of defects, errors and failures of software systems from a risk analysis perspective. To do that, we employee an existing core ontology, namely, the Common Ontology of Value and Risk (COVR). The ontologies presented here are grounded on the Unified Foundational Ontology (UFO) and based on well-known and widely-accepted standards, professional and scientific guides and capability models. We demonstrate how this approach can suitably promote conceptual clarification and terminological harmonization in this area.

Introduction

Software plays an essential role in modern society and it has become indispensable in many contexts of our lives, such as social, business, and personal contexts. This essential role motivates a number of research initiatives aimed at understanding the nature of software, and its relation to us. A shared conception in those initiatives is that software is a complex (social) artifact [1], [2], [3]. This notion comes from the fact that a modern software system can be understood as the combination of a series of interacting elements, specifically organized to provide a set of functionalities to fulfill particular human purposes [4], [5]. Moreover, software is constantly growing, not only in simple measures such as the number of lines of code, but also according to other factors, like complexity, criticality and degree of heterogeneity [6]. This makes it harder and more costly to maintain and evolve software, and this may be the starting point for many problems in the software life-cycle.

Besides its importance in our society, software is special also because it is capable of existing through time, being replicated millions of times and having dozens of different versions while still maintaining its identity [2]. A classic example of these intrinsic properties can be observed in Microsoft Windows, an operating system that has been created over 30 years ago, received many updates and was released under many different versions, but still maintains its identity as Microsoft’s operating system.

Despite their special properties, software systems are still artifacts, susceptible to failures, defects and faults that can range from having a small impact to being critical, thus, potentially causing significant material and social losses. Concepts such as problem, anomaly, bug and glitch are usually treated indistinctly, while potentially having different ontological semantics. This informal use, as common and practical as it may be in our daily conversations, can be the source of ambiguity and false-agreement problems, since the concept anomaly is frequently overloaded, thus, referring to entities with distinct ontological natures. In a more formal environment, this construct overload may lead to communication problems and losses. Because of that, and as defended in scientific literature, international standards and maturity models, it is important to have a precise way of classifying different types of software anomalies.

For example, the Guide to Software Engineering Body of Knowledge (SWEBoK) [5] emphasizes the need of a consensus about anomaly characterization, and discusses how a well-founded classification could be used in audits and product reviews. Moreover, the CMMI [7] model advocates that organizations should create or reuse some form of classification method for defects and failures. It also suggests the use of a defect density index for many work products that are part of the software development process.

A proper classification scheme can enable the development of different types of anomaly profiles that can be produced as an indicator of product quality. Also, systematically classifying software anomalies that may occur at design-time or runtime is a rich source of data that can be used to improve processes and avoid the occurrence of anomalies in future projects [8]. Finally, defects, faults and failures have a negative impact on important aspects of software, such as reliability, efficiency, overall cost and, ultimately, lifespan. Hence, a better understanding of the ontological nature of these concepts and how they relate to other software artifacts (e.g. requirements, change requests, reports and tests cases) can improve the way an organization deals with these issues, ultimately reducing costs with activities such as configuration management and software maintenance.

Although there are some proposals for classifying different terms for software anomalies, there is no reference model or theory that elaborates on the nature of different software anomalies. In other words, to the best of our knowledge, there is no proper reference ontology [9] focused on representing software defects, errors and failures. In order to address this gap, we propose a reference Ontology of Software Defects, Errors and Failures (OSDEF). This ontology takes into account different types of anomalies that may exist in software-related artifacts and that are recurrently mentioned in the set of the most relevant standards in the area. Furthermore, we recognize the importance of analyzing such anomalies in terms of the risk their presence ensues to software systems and, in particular, to these systems as bearers of value to some agent. In order to do that, we needed to elaborate on the relation between software systems and other software artifacts at different levels of abstraction. For this, we developed a Reference Ontology on Software Systems (ROSS). OSDEF and ROSS are then analyzed from this risk analysis perspective by leveraging on the Common Ontology of Value and Risk (COVR) [10].

OSDEF and ROSS are developed following the process defined by the Systematic Approach for Building Ontologies (SABiO) [11] and grounded on the Unified Foundational Ontology (UFO) [12], [13], including UFO’s Ontology of Events (UFO-B) [14], [15]. In order to elicit consensual information about the domain, we analyze relevant standards, guides and capability models such as CMMI [7], SWEBoK [5], IEEE Standard Classification for Software Anomalies [8], IEEE Standard for System, Software, and Hardware Verification and Validation [16], as well as complementary current Software Engineering literature. Finally, the ontologies are evaluated by verification and validation techniques recommended by SABiO.

This paper is an extended version of [17]. In this version, we present as original contributions: an extension of the original OSDEF ontology to incorporate the notion of run-time vulnerabilities, which inhere in loaded program copies as opposed to programs; the Reference Ontology on Software Systems (ROSS); an ontological analysis of three famous cases of software failures. The latter is done by instantiating them with the concepts from OSDEF, ROSS and the risk analysis perspective provided by COVR.

The remainder of this paper is structured as follows. Section 2 briefly presents the foundations used for developing the ontologies proposed in this work. In that section, we briefly introduce the reader to: the SABiO method, the foundational ontology UFO, and three core ontologies, namely, COVR, but also the Software Process Ontology (SPO) [18] and the Software Ontology (SwO) [19]). The last two ontologies have been reused to create OSDEF and ROSS. OSDEF and ROSS are presented in Sections 3 An ontology of software defects, errors and failures, 4 A reference ontology of software systems , respectively. Section 5 evaluates the proposed ontologies That section also presents the instantiation of ROSS and OSDEF from a risk analysis perspective by reusing them in combination with COVR. Section 6 discusses related work. Finally, Section 7 concludes the paper by presenting some final considerations.

Section snippets

Ontological foundations

This section presents the ontological foundations used by the reference models proposed in this article. Section 2.1 presents a fragment of UFO that is germane to purposes of this work. Section 2.2 presents SPO and SwO, ontologies focused on the software domain that were reused. Section 2.3, presents COVR, the Common Ontology of Value and Risk, a domain ontology that allows us to analyze the impact of software defects, errors and failures under a value and risk perspective. Finally, Section 2.4

An ontology of software defects, errors and failures

As previously mentioned, the term anomaly is commonly used to refer to a variety of notions of distinct ontological nature. To target this problem, OSDEF provides an ontological conceptualization of the different types of software anomalies that exist throughout the software life-cycle. To elaborate on these different types of anomalies, we formulate a set of Competency Questions (CQ), i.e., questions that the ontology should be able to answer [30].

In a Requirements Engineering perspective, CQs

A reference ontology of software systems

As mentioned in Section 1, Software Systems are complex abstract artifacts that can be composed by elements with distinct natures. In this section we present the Reference Ontology of Software Systems (ROSS). ROSS characterizes such software systems and the artifacts related to them at different levels of abstraction.

In their seminal work, Pamela Zave and Michael Jackson [38] discuss what they term “the four dark corners of Requirements Engineering (RE)”. In doing so, they clarify certain

Evaluation

For ontology evaluation, SABiO prescribes that ontologies need to go through ontology verification and validation techniques. These should be conducted in a particular manner as described in the sequel.

Related work

Del Frate [31] provides an ontological analysis of the notion of failure in engineering artifacts. A theory that distinguishes between three types of failures is built: function-based failures, specification-based failure and material-based failure. The author also discusses the relation between a failure – an event that happens to an artifact – and a fault — a state of the artifact after the failure, for each of the three types of failures that are proposed. The ontological analysis provided

Conclusions

In this extended version of [17], we present OSDEF and complement it with ROSS in order to provide an ontological analysis of defects, errors and failures that are part of the Software Systems life-cycle. Moreover, we analyze these concepts from a risk analysis perspective, in light of the COVR ontology. In order to provide a more rigorous definition and a better representation of their real-world semantics, the ontologies presented are grounded in UFO and the definitions are based on

Declaration of Competing Interest

The authors declare that they have no known competing financial interests or personal relationships that could have appeared to influence the work reported in this paper.

Acknowledgments

This paper is dedicated to Ricardo Falbo (in memoriam) for all his uncountable contributions to our lives. B. Borlini and V. Souza are currently supported by CNPq (407235/2017-5, 433844/2018-3) and CAPES (23038.028816/2016-41).

Bruno Borlini Duarte is a 3rd year Ph.D. student at the Federal University of Espírito Santo, Graduated in Computer Science in 2014 and Master in Informatics in 2016, also from the Federal University of Espírito Santo. He has experience in Computer Science, with an emphasis on Information Systems, working mainly on the following topics: Software Engineering, Software Requirements Engineering and Ontologies.

References (48)

  • WangX.

    How software changes the world: The role of assumptions

  • WangX. et al.

    Software as a social artifact: a management and evolution perspective

  • X. Wang, N. Guarino, G. Guizzardi, J. Mylopoulos, Towards an ontology of software: a requirements engineering...
  • IrmakN.

    Software is an abstract artifact

    Grazer Philos. Stud.

    (2013)
  • ISON. et al.

    ISO/IEC/IEEE International Standard - Systems and software engineering – VocabularyTech. rep.

    (2017)
  • BourqueP. et al.

    Guide To the Software Engineering Body of Knowledge (SWEBOK (R)): V.3.0

    (2014)
  • ChengB.H. et al.

    Research directions in requirements engineering

  • . SEI/CMU, CMMI® for Development, Version 1.3, Improving processes for developing better products and services, in: no....
  • IEEEB.H.

    IEEE 1044: Standard Classification for Software AnomaliesTech. rep.

    (2009)
  • GuizzardiG.

    On ontology, ontologies, conceptualizations, modeling languages, and (meta) models

    Frontiers Artificial Intelligence Appl.

    (2007)
  • SalesT.P. et al.

    The common ontology of value and risk

  • de Almeida FalboR.

    Sabio: Systematic approach for building ontologies

    ONTO. COM/ODISE@ FOIS

    (2014)
  • GuizzardiG.

    Ontological Foundations for Structural Conceptual Models

    (2005)
  • GuizzardiG. et al.

    Towards ontological foundations for conceptual modeling: The unified foundational ontology (UFO) story

    Appl. Ontol.

    (2015)
  • GuizzardiG.

    Towards ontological foundations for the conceptual modeling of events

  • Botti BenevidesA. et al.

    Representing a reference foundational ontology of events in SROIQ

    Appl. Ontol.

    (2019)
  • IEEEA.

    IEEE 1012: Standard for System, Software, and Hardware Verification and ValidationTech. rep., Technical report

    (2016)
  • DuarteB.B. et al.

    Towards an ontology of software defects, errors and failures

  • BringuenteA.C.d.O. et al.

    Using a foundational ontology for reengineering a software process ontology

    J. Inform. Data Manag.

    (2011)
  • DuarteB.B. et al.

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

    Appl. Ontol.

    (2018)
  • FalboR.D.A. et al.

    A software process ontology as a common vocabulary about software processes

    Int. J. Bus. Process Integr. Manag.

    (2009)
  • G. Guizzardi, et al. Grounding software domain ontologies in the unified foundational ontology (UFO): The case of the...
  • GuizzardiR.

    An ontological interpretation of non-functional requirements

  • M. Verdonck, F. Gailly, Insights on the use and application of ontology and conceptual modeling languages in...
  • Cited by (11)

    • Improving Conceptual Domain Characterization in Ontology Networks

      2023, Lecture Notes in Business Information Processing
    • An Ontological Analysis of Safety-Critical Software and Its Anomalies

      2022, IEEE International Conference on Software Quality, Reliability and Security, QRS
    View all citing articles on Scopus

    Bruno Borlini Duarte is a 3rd year Ph.D. student at the Federal University of Espírito Santo, Graduated in Computer Science in 2014 and Master in Informatics in 2016, also from the Federal University of Espírito Santo. He has experience in Computer Science, with an emphasis on Information Systems, working mainly on the following topics: Software Engineering, Software Requirements Engineering and Ontologies.

    Ricardo de Almeida Falbo earned his Ph.D. in Systems and Computer Engineering from COPPE/UFRJ (1998), in the area of Software Engineering, he was a professor at the Federal University of Espírito Santo - UFES. His research areas of interest included Ontologies, Ontology Engineering, Ontology Applications in general and, more specifically in Software Engineering, Semantic Systems Integration, Semantic Interoperability and Knowledge Management in Software Engineering. He passed away in July of 2020.

    Giancarlo Guizzardi is a Professor of Computer Science at the Free University of Bolzano-Bozen, Italy, where he leads the Conceptual and Cognitive Modeling Research Group (CORE). He is also a Professor of Software Science and Evolution at the University of Twente, The Netherlands. He has been active for more than two decades in the areas of Ontologies, Conceptual Modeling, and Information Systems Engineering. He is currently an associate editor for the Applied Ontology journal and for Data & Knowledge Engineering and a member of a number of international journal editorial boards. He is a member of the ER Steering Committee and of the Advisory Board of the International Association for Ontology and its Applications (IAOA).

    Renata Guizzardi is an Assistant Professor in the Computer Science Department at UFES (Federal University of Espirito Santo). She defended her Ph.D. in Computer Science from Twente University of Technology (2006), in Holland, and did a post-doc at the SRA division at IRST (Centro per la Ricerca Scientifica e Tecnologica), in Italy. She graduated in Computer Science (1998) and finished her master’s in Computer Science (2001) from UFES. She has experience in Computer Science, focusing on Information Systems, acting on the following subjects: knowledge management, ontologies, agent-oriented software engineering, requirements engineering, goal modeling and process modeling.

    Vítor E. Silva Souza is a professor at the Department of Computer Science of the Federal University of Espírito Santo (UFES). He has earned his Ph.D. degree in 2012 at the International Doctoral School on Information and Communication Technology of the University of Trento under the direction of professor John Mylopoulos. His Ph.D. thesis talks about Requirements Engineering for Adaptive Systems. Previously, Vítor obtained his masters degree from the same university he currently works on (UFES), researching in the field of Web Engineering, under the orientation of professors Ricardo de Almeida Falbo and Giancarlo Guizzardi. Currently, his research interests are concentrated in the area of Software Engineering, more specifically the fields of Requirements Engineering, Adaptive Systems, the use of Ontologies in Software Engineering, Conceptual Modeling, Web Engineering and the Semantic Web.

    View full text