Repository logo
Log in(current)
Repository logoMIT Open ScholarshipDSpace@MIT
  1. Home
  2. Computer Science and Artificial Intelligence Lab (CSAIL)
  3. Artificial Intelligence Lab Publications
  4. AI Memos (1959 - 2004)
  5. Abstraction, Inspection and Debugging in Programming

Abstraction, Inspection and Debugging in Programming

Thumbnail Image
Download
Name

AIM-634.pdf

Size

9.9 MB

Format

Adobe PDF

Checksum (MD5)

86a9720400dcdbbe9da94700248553fb

Thumbnail Image
Download
Name

AIM-634.ps

Size

13.62 MB

Format

PostScript

Checksum (MD5)

ed3708f5b0cf85d97f5d635c016c0f68

Author(s)
Rich, Charles
•
Waters, Richard C.
Date Issued
June 1, 1981
Series/Report no.
AIM-634
Abstract
We believe that software engineering has much to learn from other mature engineering disciplines, such as electrical engineering, and that the problem solving behaviors of engineers in different disciplines have many similarities. Three key ideas in current artificial intelligence theories of engineering problem solving are: Abstraction ??ing a simplified view of the problem to guide the problem solving process. Inspection ??roblem solving by recognizing the form ("plan") of a solution. Debugging ??ncremental modification of an almost satisfactory solution to a more satisfactory one. These three techniques are typically used together in a paradigm which we call AID (for Abstraction, Inspection, Debugging): First an abstract model of the problem is constructed in which some important details are not intentionally omitted. In this simplified view inspection methods are more likely to succeed, yielding the initial form of a solution. Further details of the problem are then added one at a time with corresponding incremental modifications to the solution. This paper states the goals and milestones of the remaining three years of a five year research project to study the fundamental principles underlying the design and construction of large software systems and to demonstrate the feasibility of a computer aided design tool for this purpose, called the programmer's apprentice.
Persistent DSpace Link
http://hdl.handle.net/1721.1/6357
Repository logo
PrivacyPermissionsAccessibilityContact us
Repository logo
Notify us about copyright concerns.