Conclusions
Program development involves several basic phases:
-
Specifications/requirements
-
Design
-
Coding
-
Testing
-
Maintenance
This talk has focused on elements of the phases 1-4.
At each stage, we have identified both theoretical and practical
constraints that limit the possibilities of program solutions.
Theoretical Limitations
-
Some problems (e.g., the Halting Problem) have no solution.
-
Some problems (e.g., the Satisfiability Problem) have solutions, but they
are not feasible for reasonable data sets.
Practical Limitations
-
Cannot tell when specifications are complete, consistent, and unambiguous.
-
Testing most solutions completely is not feasible.
-
Program Verification cannot be automated to give a mathematical proof of
correctness (even assuming we have sufficiently precise specifications).
created: 3 January 2007
last revised: 7 January 2007
|
previous
|
|