Dr. Jones : a software design explorer's crystal ball

Thesis (Ph. D.)--Massachusetts Institute of Technology, Dept. of Electrical Engineering and Computer Science, 2003. === Includes bibliographical references (p. 149-154). === Most of software design is redesign. Redesign in the normal course of design happens when the software becomes difficult to ma...

Full description

Bibliographic Details
Main Author: Foltz, Mark A. (Mark Alan), 1975-
Other Authors: Randall Davis.
Format: Others
Language:English
Published: Massachusetts Institute of Technology 2007
Subjects:
Online Access:http://hdl.handle.net/1721.1/38454
Description
Summary:Thesis (Ph. D.)--Massachusetts Institute of Technology, Dept. of Electrical Engineering and Computer Science, 2003. === Includes bibliographical references (p. 149-154). === Most of software design is redesign. Redesign in the normal course of design happens when the software becomes difficult to maintain and the problem it is intended to solve has changed. Although software redesign is necessary, frequent, and pervasive, there is a dearth of tools that help programmers do it. Instead, programmers primarily use pen and paper, away from the computer where tools could help the most. To address this shortcoming, I have developed DR. JONES, a redesign assistant for Java programs. DR. JONES diagrams the class structure of a Java program and allows the programmer to modify that design by applying refactorings. Refactorings are localized patterns of structural change intended to improve a program's design, without changing its observable behavior. With DR. JONES, the programmer can explore the design space of the program, inspect future designs as visual diagrams, and get design assistance to guide his refactoring choices. As the programmer explores designs, DR. JONES explicitly maps the design space he traverses. This map lets him revisit any prior design and branch to explore an alternative design path, without having to explicitly manage versions of the program. DR. JONES is distinguished from other refactoring tools by separating the tasks of developing an improved design through design exploration from transforming the source code to execute design changes. It does so by deriving and using an abstract representation of the program that captures the essential information needed for design exploration, while omitting its source-level details. === (cont.) DR. JONES also characterizes refactorings in a novel manner suitable for interactive design exploration. Twenty-two such refactorings are incorporated into the DR. JONES prototype. This research also contributes user interface techniques for software design exploration, including multiple-level-of detail rendering for software design diagrams, and a dialogue management interface for DR. JONES' design assistance. === by Mark A. Foltz. === Ph.D.