TR91-03

Knowledge-Intensive Software Engineering Tools


    •  Rich, C.; Waters, R.C., "Knowledge-Intensive Software Engineering Tools", IEEE Transactions on Knowledge and Data Engineering, Vol. 4, No. 5, pp. 424-430, October 1992.
      BibTeX Download PDF
      • @article{Rich1992oct,
      • author = {Rich, C. and Waters, R.C.},
      • title = {Knowledge-Intensive Software Engineering Tools},
      • journal = {IEEE Transactions on Knowledge and Data Engineering},
      • year = 1992,
      • volume = 4,
      • number = 5,
      • pages = {424--430},
      • month = oct,
      • url = {http://www.merl.com/publications/TR91-03}
      • }
  • MERL Contact:

Essentially all current software engineering tools share a common technological approach: They use a shallow representation of software objects and manipulate this representation using procedural methods. This approach has the benefit that it allows one to get off to a fast start and quickly provide a tool that delivers benefits. In addition, software engineering tools can undoubtedly be extended to a considerable extent within this approach. However, the approach will eventually reach a point of diminishing returns where more knowledge-intensive approaches will be needed to achieve significantly higher levels of capability. We believe that the software engineering tools of the future will have to rely on deep representation, inspection methods, and intelligent assistance. Deep representation will be necessary to capture a sufficiently large part of knowledge about programming in general and particular programs. Inspection methods (recognizing standard solutions rather than reinventing them) will be necessary to deal with complexity. Intelligent assistance will be necessary, because complete automation is not a realistic possibility in the foreseeable future, rather only parts of the programming process can be automated.