Stepwise refinement From Wikipedia + Niklaus Wirth, Program development by stepwise refinement: January 1983 Communications of the ACM , Volume 26 Issue 1. Special 25th Anniversary Issue ; Pages: 70 - 74
Niklaus Wirth, Program development by stepwise refinement; April 1971 Communications of the ACM , Volume 14 Issue 4. Pages: 221 - 227
In formal methods, program refinement is the verifiable transformation of an abstract (high-level) formal specification into a concrete (low-level) executable program. Stepwise refinement allows this process to be done in stages. |
In 1971,
Niklaus Wirth, the developer of Pascal programming language, wrote the influential paper Program Development by Stepwise Refinement.
This paper were published on Communications of the ACM , Volume 14 Issue 4, April 1971. |
The program is gradually developed in a sequence of refinement
steps.
|
Top-down and bottom-up are strategies of information processing and knowledge ordering, mostly involving software, but also other humanistic and scientific theories (see systemics). In practice, they can be seen as a style of thinking and teaching. In many cases top-down is used as a synonym of analysis or decomposition, and bottom-up of synthesis.
A top-down approach is essentially the breaking down of a system to gain insight into its compositional sub-systems. In a top-down approach an overview of the system is first formulated, specifying but not detailing any first-level subsystems. Each subsystem is then refined in yet greater detail, sometimes in many additional subsystem levels, until the entire specification is reduced to base elements. A top-down model is often specified with the assistance of "black boxes", these make it easier to manipulate. However, black boxes may fail to elucidate elementary mechanisms or be detailed enough to realistically validate the model. A bottom-up approach is the piecing together of systems to give rise to grander systems, thus making the original systems sub-systems of the emergent system. In a bottom-up approach the individual base elements of the system are first specified in great detail. These elements are then linked together to form larger subsystems, which then in turn are linked, sometimes in many levels, until a complete top-level system is formed. This strategy often resembles a "seed" model, whereby the beginnings are small but eventually grow in complexity and completeness. However, "organic strategies" may result in a tangle of elements and subsystems, developed in isolation and subject to local optimization as opposed to meeting a global purpose. |
...
|