Stepwise Refinement In this approach, software systems are developed through the progressive refinement and enhancement of high-level system specifications into source code components (Wirth 1971, Mili 1986).Incremental Development and Release Developing systems through incremental release requires first providing essential operating functions, then providing system users with improved and more capable versions of a system at regular intervals (Basili 1975).Instead, formalization is expected to emerge within the heuristics and skills that are acquired and applied through increasingly competent practice.This model has been most effective and widely applied in helping to teach individual programmers how to organize their software development work.Many interpretations of the classic software life cycle thus subsume this approach within their design and implementations.This model combines the classic software life cycle with iterative enhancement at the level of system development organization.However, the choice and order of which steps to choose and which refinements to apply remain unstated.It also supports a strategy to