next up previous contents index
Next: The WaterSluice Up: Software Engineering Methodology: The Previous: Abstract

Introduction

A software engineering project involves people working with a collection of tools to produce documents and code guided by common goals and strategies. The tools include compilers, debuggers, environments, change management  , source control,   project management,   document processors, and domain modeling tools. The documents produced include the requirements which define the problem, the user manuals, the test plans,   the scenarios,   the design which define the architecture, and the implementation plans. The code may deal with objects, data structures, algorithms, methods, modules, protocols, and interface definitions. The strategies are materialized through the collection of the architecture, methods, paradigms,   risk analysis,   conventions, and a mission statement. These steps together define the cradle-to-grave life cycle   of the software product.

Just how should an engineering project be managed? The answer is not unique nor clearly defined. It is a combination of many ingredients, defined later. One of the key ingredients is the methodology.

The two well known methodologies are the waterfall methodology and the spiral methodology. A third methodology is introduced, called WaterSluice, which combines the best aspects of the previous two methodologies, taking the iterative nature of the spiral methodology and the steady progression of the waterfall methodology and then adds priority.

Before we talk about these three methodologies, we need to first describe some general concepts.

All three methodologies deal with four simple categories of software engineering, namely analysis, design, implementation, and testing. Frequently, fifth and sixth categories are added dealing with deployment and operations. We will not deal with those categories in this document.

The theory section maps the three methodologies to algorithms in a search space. It will be shown that the waterfall methodology can be mapped to a breadth-first search, the spiral methodology can be mapped to a depth-first search, and the WaterSluice methodology can be mapped to a best-first search. Given these mappings, the WaterSluice methodology will work best in a very dynamic search space as compared to the other two.


next up previous contents index
Next: The WaterSluice Up: Software Engineering Methodology: The Previous: Abstract

Ronald LeRoi Burback
Wed Jul 30 10:49:53 PDT 1997