Representing Software Engineering Knowledge

John Mylopoulos, Alex Borgida, Eric Yu

Research output: Contribution to journalArticlepeer-review

21 Scopus citations


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.

Original languageEnglish (US)
Pages (from-to)291-317
Number of pages27
JournalAutomated Software Engineering
Issue number3
StatePublished - 1997

All Science Journal Classification (ASJC) codes

  • Software


  • Knowledge representation
  • Languages
  • Software knowledge bases


Dive into the research topics of 'Representing Software Engineering Knowledge'. Together they form a unique fingerprint.

Cite this