Although software plays an essential role in modern society, its ontolog- ical nature is still unclear. For many, software is just code, but this is not illuminat- ing. Several researchers have attempted to understand the core nature of software and programs in terms of concepts such as code, copy, medium and execution. More recently, a proposal was made to consider software as an abstract artifact, distinct from code, just because code may change while the software remains the same. We explore in this paper the implications of such a proposal in the light of software engineering and requirements engineering literature. We make a sharp distinction between different kinds of software artifacts (code, program, software system, and software product), and describe the ways they are inter-connected in the context of a software engineering process.
Towards an Ontology of Software: A Requirements Engineering Perspective
Contributo in atti di convegno
Formal Ontology in Information Systems, pp. 317–329, Rio de Janeiro, 22-26/9/2014