A method for obtaining formal software specifications from knowledge representation languages

Software analysts use knowledge representation languages for characterizing the knowledge from stakeholders in the requirements engineering phase. Such languages encompass software models based on the unified modeling language and structured methods, including entity-relationship diagrams, class dia...

Full description

Autores:
Manjarrés Betancur, Roberto Antonio
Tipo de recurso:
Doctoral thesis
Fecha de publicación:
2023
Institución:
Universidad Nacional de Colombia
Repositorio:
Universidad Nacional de Colombia
Idioma:
eng
OAI Identifier:
oai:repositorio.unal.edu.co:unal/86094
Acceso en línea:
https://repositorio.unal.edu.co/handle/unal/86094
https://repositorio.unal.edu.co/
Palabra clave:
000 - Ciencias de la computación, información y obras generales
000 - Ciencias de la computación, información y obras generales::005 - Programación, programas, datos de computación
Lenguajes de programación (Computadores electrónicos)
Representación del conocimiento
Programación (Computadores electrónicos)
Knowledge representation
Requirements Engineering
Software model
Formal specification
Representación del conocimiento
Ingeniería de requisitos
Modelo de software
Especificación formal
Rights
openAccess
License
Atribución-NoComercial-SinDerivadas 4.0 Internacional
Description
Summary:Software analysts use knowledge representation languages for characterizing the knowledge from stakeholders in the requirements engineering phase. Such languages encompass software models based on the unified modeling language and structured methods, including entity-relationship diagrams, class diagrams, cause-and-effect diagrams, and conceptual graphs. While such models are used for effectively representing the basic features of a software system, they still fail on including the behavior and components coming from complex software systems. Formal specifications comprise texts, math, and logic-based notations for representing the knowledge of a given domain. Software analysts use formal specifications for mitigating the impact of the ambiguity coming from traditional knowledge representation languages, easing computational processes, inference, and unambiguous validation of knowledge. However, the generation and validation of formal specifications require expertise in mathematics and logic from both software analysts and stakeholders, thereby impeding effective communication and validation of the software domain. In this Ph.D. Thesis, we propose a novel approach for bridging the gap between formal languages and knowledge representation languages. Our approach contributes to the fields of knowledge representation and formal languages by allowing software analysts for generating precise and comprehensive formal specifications from any knowledge representation language, regardless of their mathematical and logical proficiency. This approach eases the validation of resulting specifications by stakeholders. The proposed method is validated by developing three case studies. Our approach is a new work product for unambiguous knowledge representation. Also, our method is designed for supporting the requirements engineering phase as a new tool for software analysts. (Tomado de la fuente)