Book contents
- Frontmatter
- Contents
- List of contributors
- Preface to the second edition
- Preface
- 1 An Introduction to Description Logics
- Part I Theory
- Part II Implementation
- Part III Applications
- 10 Conceptual Modeling with Description Logics
- 11 Software Engineering
- 12 Configuration
- 13 Medical Informatics
- 14 OWL: a Description-Logic-Based Ontology Language for the Semantic Web
- 15 Natural Language Processing
- 16 Description Logics for Databases
- Appendix: Description Logic Terminology
- Bibliography
- Index
11 - Software Engineering
Published online by Cambridge University Press: 06 July 2010
- Frontmatter
- Contents
- List of contributors
- Preface to the second edition
- Preface
- 1 An Introduction to Description Logics
- Part I Theory
- Part II Implementation
- Part III Applications
- 10 Conceptual Modeling with Description Logics
- 11 Software Engineering
- 12 Configuration
- 13 Medical Informatics
- 14 OWL: a Description-Logic-Based Ontology Language for the Semantic Web
- 15 Natural Language Processing
- 16 Description Logics for Databases
- Appendix: Description Logic Terminology
- Bibliography
- Index
Summary
Abstract
This chapter reviews the application of Description Logics to software engineering, following a steady evolution of DL-based systems used to support the program understanding process for programmers involved in software maintenance.
Introduction
One of the first large applications of Description Logics was in the area of software engineering. In software, programmers and maintainers of large systems are plagued with information overload. These systems are typically over a million lines of code, some approach fifty million. The size of the workforce dedicated to maintaining these enormous systems is often over a thousand. In addition, turnover is quite high, as is the training investment required to make someone a productive member of the team. This seems, on the surface, to be a problem crying out for a knowledge-based solution, but understanding precisely how Description Logics can play a role requires understanding the basic problems of software engineering “in the large”.
Background
The three principal software maintenance tasks are pro-active (testing), reactive (debugging), and enhancement. Central to effective performance of these tasks is understanding the software. In the 1980s, cognitive studies of programmers involved in program understanding [Soloway et al., 1987] revealed two things:
Programmers typically solve problems by realizing “plans” in their programs. This seems to tie the notion of program understanding to plan recognition [Soloway et al., 1986].
Delocalized plans (plans which are not implemented in localized regions of code) are a serious impediment to plan recognition, for both humans and automated methods [Soloway and Letovsky, 1986].
- Type
- Chapter
- Information
- The Description Logic HandbookTheory, Implementation and Applications, pp. 402 - 416Publisher: Cambridge University PressPrint publication year: 2007