Information Technology Reference
In-Depth Information
− Using Roles of Variables in Programming Education 8
− Literature on the Roles of Variables 9
2. What are your impressions with respect to the research work that examines
the roles of variables concept?
3. Write 5-10 ideas that, while reading, you found interesting, curious, and
innovative. Explain your choice of each of these ideas.
5.4.2
Stepwise Refinement
The main purpose of the stepwise refinement design methodology is to first obtain
an overview of the structure of the problem and of the relationships among its parts,
and then to address specific and complex issues related to the implementations of
the various subparts (Wirth 1971 ; Dijkstra 1976 ). Stepwise refinement is a top-
down methodology since it progresses from the general to the specific. An alterna-
tive approach is the bottom-up methodology that progresses from the specific to the
general. These two approaches can be considered as complementing each other. In
both cases, the problem is divided into sub-problems; the main difference lies in the
direction of the mental process that guides the solution construction. Here, we focus
on the top-down approach.
Solutions produced by stepwise refinements possess a natural modular structure,
which (a) is easier to develop and to check, (b) increases the solution readability,
and (c) enables to use the solution of sub-problems of the full solution for solving
other problems as well.
The stepwise refinement approach can be applied in any software development
process. Throughout this process, an initial representation of some solution, on a
high level of abstraction, is gradually refined through a sequence of intermediate
representations that eventually yield a final program in some programming lan-
guage (Batory et al. 2004 ). While the initial representation employs notations and
abstractions that are appropriate for the addressed problem, the development pro-
ceeds in a sequence of small steps that each of them refines some aspect of the
representation produced in previous steps.
The approach is usually associated with Niklaus Wirth, who formulated the main
principles of stepwise refinements:
• In each step, one or several instructions of the given program are decomposed
into more detailed instructions; a step can involve a simultaneous refinement of
both data structures and operations.
• Every refinement step implies some design decisions. It is important that these
decisions be explicit, and that the programmer be aware of the underlying criteria
and of the existence of alternative solutions.
8 See http://www.cs.joensuu.fi/~saja/var_roles/teaching.html.
 
Search WWH ::




Custom Search