As a need for a discipline of software engineering has been recognized,
the design, implementation, and maintenance of computer software
has come into the forefront. The formulation of concepts of programming
methodology, exemplified by Dijkstra's structured programming,'
strikes at the roots of the problem. The realization is that a program,
much as a mathematical theorem, should and can be provable. Recognition
that a program can be proved correct as it is developed and maintained,'
and before its results are used, may ultimately change the nature
of the programming task and the face of the programming world. Clearly
these developments are of fundamental importance. They appear to
point to long-term solutions to problems that will be encountered
in creating the great amount of program text that the world appears
to require. But even though progress in mastering the science of
program creation, maintenance, and expansion has also been made,
there is still a long way to go.
- seminal work on OS/360 and evolution - mentions Laws, which are
more appropriately hypotheses or theories - not really statistically
relevant, since this is really a case study. - map 4 relationships:
modules changed, Release number (sequential, not clear if it discriminated
btw minor and major versions), release interval in days, system
size in modules, and complexity (modules changed over total modules).
- law 1 - a system that is 'used' undergoes continuing change -
law 2 - the unstructuredness (entropy) of a program increases (linearly/exponentially?)
with time unless maintenance is done - law 3 - growth trends have
well-defined long range trends - given that "complete and unambiguous
specifications of changes or additions to be made are not normally
achieved or even achievable", testing is required. Testing only
shows deviation from expectation, not correctness, therefore, upon
release the "system is suddenly exposed to an environment in which
the expected behaviour and actual usage may differ from that to
which the system was exposed" in its design and test phases. (p.234)
%0 Journal Article
%1 lehman76
%A Belady, L. A.
%A Lehman, M. M.
%D 1976
%I IBM
%J IBM Systems Journal
%K evolution software
%P 225--252
%T A model of large program development
%U http://domino.research.ibm.com/tchjr/journalindex.nsf/495f80c9d0f539778525681e00724804/24c3ab476966d22d85256bfa00685ad5?OpenDocument
%V 3
%X As a need for a discipline of software engineering has been recognized,
the design, implementation, and maintenance of computer software
has come into the forefront. The formulation of concepts of programming
methodology, exemplified by Dijkstra's structured programming,'
strikes at the roots of the problem. The realization is that a program,
much as a mathematical theorem, should and can be provable. Recognition
that a program can be proved correct as it is developed and maintained,'
and before its results are used, may ultimately change the nature
of the programming task and the face of the programming world. Clearly
these developments are of fundamental importance. They appear to
point to long-term solutions to problems that will be encountered
in creating the great amount of program text that the world appears
to require. But even though progress in mastering the science of
program creation, maintenance, and expansion has also been made,
there is still a long way to go.
@article{lehman76,
abstract = {As a need for a discipline of software engineering has been recognized,
the design, implementation, and maintenance of computer software
has come into the forefront. The formulation of concepts of programming
methodology, exemplified by Dijkstra's structured programming,'
strikes at the roots of the problem. The realization is that a program,
much as a mathematical theorem, should and can be provable. Recognition
that a program can be proved correct as it is developed and maintained,'
and before its results are used, may ultimately change the nature
of the programming task and the face of the programming world. Clearly
these developments are of fundamental importance. They appear to
point to long-term solutions to problems that will be encountered
in creating the great amount of program text that the world appears
to require. But even though progress in mastering the science of
program creation, maintenance, and expansion has also been made,
there is still a long way to go.},
added-at = {2006-09-18T06:26:07.000+0200},
author = {Belady, L. A. and Lehman, M. M.},
biburl = {https://www.bibsonomy.org/bibtex/27b6ab86578f686ab20b5e3e6fbc3a444/neilernst},
citeulike-article-id = {658246},
comment = {- seminal work on OS/360 and evolution - mentions Laws, which are
more appropriately hypotheses or theories - not really statistically
relevant, since this is really a case study. - map 4 relationships:
modules changed, Release number (sequential, not clear if it discriminated
btw minor and major versions), release interval in days, system
size in modules, and complexity (modules changed over total modules).
- law 1 - a system that is 'used' undergoes continuing change -
law 2 - the unstructuredness (entropy) of a program increases (linearly/exponentially?)
with time unless maintenance is done - law 3 - growth trends have
well-defined long range trends - given that "complete and unambiguous
specifications of changes or additions to be made are not normally
achieved or even achievable", testing is required. Testing only
shows deviation from expectation, not correctness, therefore, upon
release the "system is suddenly exposed to an environment in which
the expected behaviour and actual usage may differ from that to
which the system was exposed" in its design and test phases. (p.234)},
description = {Not previously uploaded},
interhash = {108ae81426834aca7a63c9b95da75370},
intrahash = {7b6ab86578f686ab20b5e3e6fbc3a444},
journal = {IBM Systems Journal},
keywords = {evolution software},
pages = {225--252},
priority = {0},
publisher = {IBM},
timestamp = {2006-09-18T06:26:07.000+0200},
title = {A model of large program development},
url = {http://domino.research.ibm.com/tchjr/journalindex.nsf/495f80c9d0f539778525681e00724804/24c3ab476966d22d85256bfa00685ad5?OpenDocument},
volume = 3,
year = 1976
}