From the Abstract:
The body of methods, rules, postulates, procedures, and processes that are used to manage a software engineering project are collectively referred to as a
methodology.
There are two well-known software engineering methodologies commonly used in practice today. The two methodologies, informally known as the
waterfall and
spiral methodologies, are characterized by the grouping of tasks as either sequential or cyclical. Both of these methodologies organize some tasks very well, but have a narrow focus, so that crucial aspects of one methodology are missed by the other methodology.
This thesis defines the
WaterSluice software engineering methodology. The WaterSluice borrows the iterative nature of the cyclical methodology, more commonly known as the spiral methodology, along with the steady progression of the sequential methodology, more commonly known as the waterfall methodology. In addition, the tasks in the WaterSluice are prioritized such that the most beneficial, non-conflicting tasks are accomplished first. A collection of theorems is presented establishing the strengths and weaknesses of the WaterSluice methodology as compared to the sequential and cyclical methodologies.
This thesis builds a foundation for the study of software engineering methodologies and then categorizes the conditions under which one software engineering methodology will be preferred over another software engineering methodology. Predicted performance characteristics for several major classes of software engineering methodologies under a variety of conditions are presented.
The thesis concludes that a software engineering methodology that is goal focused, manages conflicts, and differentiates between different priorities is best suited for dynamic non-monotonic environments.