Representing Software Engineering Knowledge

  • Authors:
  • John Mylopoulos;Alex Borgida;Eric Yu

  • Affiliations:
  • Department of Computer Science, University of Toronto, Toronto, Canada M5S 3H5/ E-mail: jm&commat/cs.toronto.edu;Department of Computer Science, Rutgers University, New Brunswick, NJ 08903, USA/ E-mail: borgida&commat/aramis.rutgers.edu;Faculty of Information Studies, University of Toronto, Toronto, Canada M5S 3G6/ E-mail: yu&commat/fis.utoronto.ca

  • Venue:
  • Automated Software Engineering
  • Year:
  • 1997

Quantified Score

Hi-index 0.00

Visualization

Abstract

We argue that one important role that ArtificialIntelligence can play in Software Engineering is to act as a sourceof ideas about representing knowledge that can improve thestate-of-the-art in software information management, rather than justbuilding intelligent computer assistants. Among others, suchtechniques 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 ofdevelopers, maintainers and users alike. We pursue this centraltheme by focusing on requirements engineering knowledge, illustratingit 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-basedknowledge representation schemes, to offer a novel (at least for itstime) formal requirements modeling language. The second contributionadapts solutions of the frame problem originally proposed in thecontext of AI planning in order to offer a better formulation of thenotion of state change caused by an activity, which appears in mostformal requirements modeling languages. The final contributionimports ideas from multi-agent planning systems to propose a novelontology for capturing organizational intentions in requirementsmodeling. In each case we examine alterations that have been made toknowledge representation ideas in order to adapt them for SoftwareEngineering use.