The software development process is analyzed from a problem-theoretic viewpoint, and a precise metamodel is proposed. The model provides a uniform conceptual structure for understanding the process by clarifying its semantics, and indicates some important requirements on formalisms purporting to describe the process. Requirements analysis, specification, and program transformations and decompositions are formulated in problem-theoretic terms. The metamodel formalizes a large portion of the software development process, leaving another portion as heuristics, which appears to be an essential ingredient in any widely applicable method. The analysis also suggests the nonexistence of a single canonical step for the entire process as well as obstacles to its complete formalization or automation.<<ETX>>
[1]
John W. Hughes.
A formalization and explication of the Michael Jackson method of program design
,
1979,
Softw. Pract. Exp..
[2]
Stephen N. Zilles,et al.
Programming with abstract data types
,
1974
.
[3]
Ellis Horowitz,et al.
Fundamentals of Computer Algorithms
,
1978
.
[4]
Michael Jackson,et al.
Principles of program design
,
1975
.
[5]
Joseph A. Goguen,et al.
Parameterized Programming
,
1984,
IEEE Transactions on Software Engineering.
[6]
Wladyslaw M. Turski,et al.
Design of Large Programs
,
1980,
Software Engineering.
[7]
Władysław Turski,et al.
The specification of computer programs
,
1987
.