TY - JOUR
T1 - Representing Software Engineering Knowledge
AU - Mylopoulos, John
AU - Borgida, Alex
AU - Yu, Eric
N1 - Funding Information:
The research has been supported in part by the Natural Sciences and Engineering Research Council of Canada, the Canadian Institute of Advanced Research, the Information Technology Research Centre of Ontario and the Institute of Robotics and Intelligent Systems, funded in part by the government of Canada. A. Borgida was also supported in part by Grant IRI91-19310 from US NSF.
PY - 1997
Y1 - 1997
N2 - We argue that one important role that Artificial Intelligence can play in Software Engineering is to act as a source of ideas about representing knowledge that can improve the state-of-the-art in software information management, rather than just building intelligent computer assistants. Among others, such techniques can lead to new approaches for capturing, recording, organizing, and retrieving knowledge about a software system. Moreover, this knowledge can be stored in a software knowledge base, which serves as "corporate memory", facilitating the work of developers, maintainers and users alike. We pursue this central theme by focusing on requirements engineering knowledge, illustrating it with ideas originally reported in (Greenspan et al., 1982; Borgida et al., 1993; Yu, 1993) and (Chung, 1993b). The first example concerns the language RML, designed on a foundation of ideas from frame- and logic-based knowledge representation schemes, to offer a novel (at least for its time) formal requirements modeling language. The second contribution adapts solutions of the frame problem originally proposed in the context of AI planning in order to offer a better formulation of the notion of state change caused by an activity, which appears in most formal requirements modeling languages. The final contribution imports ideas from multi-agent planning systems to propose a novel ontology for capturing organizational intentions in requirements modeling. In each case we examine alterations that have been made to knowledge representation ideas in order to adapt them for Software Engineering use.
AB - We argue that one important role that Artificial Intelligence can play in Software Engineering is to act as a source of ideas about representing knowledge that can improve the state-of-the-art in software information management, rather than just building intelligent computer assistants. Among others, such techniques can lead to new approaches for capturing, recording, organizing, and retrieving knowledge about a software system. Moreover, this knowledge can be stored in a software knowledge base, which serves as "corporate memory", facilitating the work of developers, maintainers and users alike. We pursue this central theme by focusing on requirements engineering knowledge, illustrating it with ideas originally reported in (Greenspan et al., 1982; Borgida et al., 1993; Yu, 1993) and (Chung, 1993b). The first example concerns the language RML, designed on a foundation of ideas from frame- and logic-based knowledge representation schemes, to offer a novel (at least for its time) formal requirements modeling language. The second contribution adapts solutions of the frame problem originally proposed in the context of AI planning in order to offer a better formulation of the notion of state change caused by an activity, which appears in most formal requirements modeling languages. The final contribution imports ideas from multi-agent planning systems to propose a novel ontology for capturing organizational intentions in requirements modeling. In each case we examine alterations that have been made to knowledge representation ideas in order to adapt them for Software Engineering use.
KW - Knowledge representation
KW - Languages
KW - Software knowledge bases
UR - http://www.scopus.com/inward/record.url?scp=0031191941&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=0031191941&partnerID=8YFLogxK
U2 - 10.1023/A:1008627026003
DO - 10.1023/A:1008627026003
M3 - Article
AN - SCOPUS:0031191941
VL - 4
SP - 291
EP - 317
JO - Automated Software Engineering
JF - Automated Software Engineering
SN - 0928-8910
IS - 3
ER -