Proposal for thesis research in partial fulfillment of the requirements

IN PARTIAL FULFILLMENT OF THE REQUIREMENTS FOR THE DEGREE OF. MASTER . The thesis proposal is a fundamental first step in the research thesis .
Table of contents

JONES; Possible surprises that may alter the course of this research, its future prospects, and related work; And a schedule of research in an appendix. This task is made difficult because the source code is the result of design, but makes explicit little about the design itself.

Experienced programmers bring to bear an immense amount of knowledge to compensate, including the syntax and semantics of the language, design patterns and algorithms, the application domain, and the purpose of the program. Unfortunately, source code is a difficult representation to work with for this kind of reasoning.

Despite claims that good program code is almost self-documenting, experience shows that it has many drawbacks. In particular: Code maximizes modularity. A good software design maximizes the modularity of the resulting program. In fact, this is the one of the underlying design philosophies of object-oriented programming: break the problem down into the smallest pieces, and assemble a solution from them.

But this causes information about how the pieces are used to be distributed throughout the program. The programmer must then look in many places to reconstruct their interactions and get a picture of the overall behavior. References are nonlinear, source code is linear. A major part of a program s power is its highly nonlinear and nonlocal referential structure.

But this means it is usually not possible to browse an unfamiliar program s call graph without forward references to unseen classes.

Major Research Paper - Guidelines

And, a single method may refer to many other classes, introducing a high branching factor to resolve all the references. Yet, source code affords only linear browsing, requiring the programmer to frequently search through other files and directories to locate class definitions.

Hypertext links from class names to their definitions can automate this process Kramer, , but code navigation remains difficult and taxes the programmer s working memory Zayour and Lethbridge, Lack of context and overviews. A problem related to source code s linear nature is the small window onto the program offered by textual browsing. The programmer must retain the context of the visible program fragment in working memory, such as the enclosing method and class and the variables in scope.

And, it is usually hard to get a bird s eye view of the program showing a structural overview. Integrated development environments help by presenting a browsable hierarchy of classes and methods, and other work has presents source code maps highlighting programmers changes Eick, , but providing contexts and overviews suited particularly for comprehension remains a challenge. Finding where to start and where to go is half the challenge.

Finding the logical starting point s to begin reading source code is difficult, especially in high LoC programs. The main method is not always the best place. A programmer who delves into a large program must choose which parts are relevant to her task and prune her browsing accordingly. For me, a typical program comprehension session begins with a period of flailing about and false starts, until I develop a clear enough picture of the program to browse in a more directed manner.

The documentation would first state the purpose of the program and present a structural overview of its classes and their relationships before delving into their implementation. If it mentions a class that has yet to be defined, a short explanation of its function would be provided. Use cases would illustrate how the classes interact to provide basic functionality.

Italian Studies MA Thesis Work Plan

The documentation would present the program in a manner optimized for comprehension, not execution. Obviously, reading good documentation is preferred to reading source code. Unfortunately, good documentation is scarce. JONES is intended to capture some of the aspects of good documentation, like overviews and orderly exploration, in an interactive environment.

Generating human-quality documentation of an undocumented program remains a long-term goal for this line of research.


  • Dissertation report.
  • essay rubric for middle school;
  • masters_format | School of Graduate Studies!
  • steps to write a critical analysis essay;

Programmers adopt a variety of strategies for overcoming the limitations of source code browsing, to extract relevant and useful information about the program. The next section describes planned user studies to collect and analyze those strategies. JONES will provide program views to help the programmer build a good mental model of the program. But determining the content of those views that is, what kinds of program knowledge constitute the mental model is a difficult and uncertain task. It varies substantially across applications, organizations, and individuals.

We start with the assumption that mental models of programs are grounded in at least two kinds of knowledge. The first is the semantics of Java and the object-oriented paradigm, including concepts like objects, threads, and exceptions. The second is the semantics of the application domain, the part of the world the program is modeling. A good mental model allows a programmer to explain the functionality of the application in terms of the architecture of the program and the semantics of Java.

To understand these mental models more deeply, a place to start is anecdotes and introspection.

Sign Up Here for Our Brochure

When I recently needed to understand a large Java system for a Web site, given little useful documentation, I began by mapping its structure. I drew a diagram showing the inheritance and multiplicity relations among its classes, and included some of the classes key methods. This turned out to be difficult because every Web page in the site acted as an independent starting point for the program.

In this case, mapping the structure of is-a and has-a relationships in the program was a step essential to my comprehension, implying a program view containing those relationships would be useful. But other programmers will use a variety of other strategies, suggesting many other ways of viewing a program. The goal of the studies is to learn how different programmers go about software archeology, and the kinds of program knowledge they gather. The basic method will be to give a subject a small program and ask them to understand the program well enough to maintain it.

They will be given a task to direct their exploration, such as redesigning the program to generalize an aspect of its functionality. While they are browsing the program, we will encourage them to think out loud and explain the intent of their actions. The subject will be videotaped, and we will collect any marks made on paper or whiteboards.

The subject will browse the source code and documentation as a granular hypertext to facilitate the capture of her browsing behavior. After the browsing session, the subject may be asked to explain the program in her own words to the experimenters. Also, subject will be asked about the strategies they used to understand this particular program, and any general comprehension strategies they find especially helpful. The purpose of the studies is not to measure performance or to produce a cognitive model of program comprehension in these conditions. Instead, the results will be analyzed to collect examples of comprehension strategies and the concepts and patterns the programmer recognizes in the program Preliminary Results A pilot study with two subjects from the AI Lab has already been carried out.

The task for this study was to design a small program given a problem statement, as opposed to examining an existing program. However, the subjects were later asked to explain their designs to the experimenters, and two interesting observations fell o. Similar documents.

Unfolding Feminism and Femininity. Megan McGinnis. A thesis submitted in partial fulfillment of the. Requirements for the degree of. ADAM M. Kyle Crawford. A thesis.


  1. creative writing graduate programs usa;
  2. thesis design options not saving.
  3. Submitted thesis.
  4. essays on the perfect storm.
  5. Faculty & Staff!
  6. Social Media.
  7. Vida Abarghouei. A thesis submitted in partial fulfillment of the requirements for the degree of. Master of Counselling. Aditi Saini. Captain Brian M. Stout, U. A thesis submitted in partial fulfillment of the requirements for the degree in Master of Education. A Thesis. Presented in Partial Fulfillment of the Requirements for. After the dissertation or thesis has been approved, it must be bound in standard form Art vellum or cloth; overcast; edges uncut. Labelling of Final Copy.

    Related eJournals

    The front cover of the final copy should be lettered boldly in gold 0. The spine of the thesis should be lettered boldly up back in gold 0. Skip to main content. Table of Contents A well aligned presentation of preliminary information, chapters with subsections, bibliography and appendices of the thesis with relevant page numbers indicated. List of Tables A list of tables with their relevant designated numbering and relevant pages at which they are located.

    List of Abbreviations A list of relevant abbreviations and their full rendering occurring in the thesis. The order of arrangement of the bibliography and appendices should follow the format of the Graduate School Manual, unless the Departmental format requires an alternative order.