Thesis Outline Rough Draft
This is derived from from the Generic MS Thesis Outline at http://users.csc.calpoly.edu/~gfisher/students/generic-ms-toc.html. The italicized notes at the beginning of each section describe generically what's in that section. The normal-font text describes more specifically what will go in your thesis.
One to three paragraph summary of what the thesis is about and what it contributes.
The focus is on the incremental validation of formal specifications.
1.1. Description of the Problem
One to three page summary of the problem to be solved, including motivation for why it is an interesting problem.
The fundamental problem is to provide the means to validate formal
specifications in a straightforward manner, as a natural part of the software
development process. The more general problem is to address the seemingly
perennial difficulty of convincing software engineering students and
practitioners to appreciate the utility of formal methods. More blah,
blah, blah goes here.
1.2. Overview of the Solution
One to five page executive summary of the solution; this is basically a capsule description of the remainder of the thesis.
Main points:
Optional subsections that discuss such topics as goals and objectives,
restrictions and limitations, or the like. In particular, if the system is not
fully implemented, then this introductory section should clarify precisely what
parts are implemented and what parts are not (call this the "truth in
advertising" part.)
1.4. Outline of the Thesis
One paragraph summary of what the remaining chapters contain.
2. Background
Optional chapter that describes necessary technical background if it cannot safely be assumed that the reader has such background. For example, this section can define technical terms used in the remainder of the thesis. The section is optional since the next section can provide necessary background discussion if it is not too detailed.
It may be worthwhile to present an overview of formal methods here, and
possibly move the "Related Work" chapter here, calling this chapter "Background
and Related Work".
3. Scenario(s) of System Use
An end-user view of how the system works. The scenario(s) is(are) based on an actual concrete session where the user performs some interesting and useful work. The goal is to illustrate the major and most interesting system features, not all system features. If the system does not involve a substantial amount of end user interaction, this chapter can be more appropriately named "Examples of System Use".
This chapter will present a walk-through of a few particularly interesting
examples.
4. Overall System Design
Description of system design, probably supported with appropriate design diagrams, including but not limited to: block diagram, UI-to-class relationship diagram, DFD, class message passing, class hierarchy, functional hierarchy.
This chapter presents an overview of the major system components. Since it's
implemented in regular C, a UML class diagram isn't particularly useful. A
block diagram of the major components would be useful, along the lines of a
standard compiler/interpreter diagram. Also useful would be a high-level
function diagram of the interpreter
Chapters follows that describe the specific technical details of the system
that has been built. The technical chapters include design and implementation
details of all the interesting technical problems that were totally or
partially solved.
5. The Functional Interpreter
Describe a bit of the detailed design of the interpreter, with some brief
sample code excerpts.
6. Quantifier Execution
Describe the possible ways to execute quantifiers, and focus on the particular
technique used here.
7. User Interface
If you build a GUI, it'll get described here.
8. Results
Optional chapter that presents quantitative and/or qualitative results, such as the results of controlled end-user usage studies or quantitative comparative analysis of system performance. This chapter may appear earlier if the results are particularly significant or worthy of emphasis compared to the technical design aspects of the system.
I need to think about what can go here. As noted, it's optional.
9. Related Work
In-depth discussion of other research related to this thesis. This chapter may sometimes appear earlier, say as chapter 2 or 3, if there is a substantial amount of technical background that a reader may need to know before continuing with the rest of the thesis. If it does appear earlier, then this and the background chapter can be merged into one chapter called "Background and Related Work".
As noted for Chapter 2, this may move up to that chapter on "Background and
Related Work".
10. Conclusions
General conclusions about the work described in the thesis, including a
recap of what was accomplished.
10.1. Summary of Contributions
Enumerate the specific technical contributions of the thesis, emphasizing
what is novel and/or noteworthy.
10.2. Future Work
Describe intended future uses and major challenges for the future. Emphasize work that is likely to be pursued in the near term.