Bog'liq Software Engineering Architecture-driven Software Development ( PDFDrive )
94 CHAPTER 6 Impediments to Software Design
prior to completion or delivered and never utilized)
1
for software development pro-
jects averaged 20% over the 15-year reporting period. This indicates that current
software development practices are incapable of reliably delivering software prod-
ucts on time or within budget.
Table 6.1
provides a summary of the CHAOS report
results for the 15 years the data has been collected.
What has caused this chaotic situation is the premise that software, as a mate-
rial, lacks physical characteristics and, therefore, the application of traditional
engineering practices cannot be applied to the development of software products.
Software practitioners were left with no technical supposition on which to estab-
lish a software engineering discipline. Trailblazers in the software industry have
devised a myriad of software development methodologies that have delivered little
recognizable improvement with software development success. There is only one
other profession in which a 30% success rate is considered respectable, and no one
expects a baseball player to consistently hit above a 0.350 average.
Software has become a critical element of many consumer products. This
is a major concern since software is integrated into systems the public, govern-
ment agencies, and public and private institutions must depend on every day. The
issues of software liability and consumer protection are refocusing attention on
the inadequacies of current software development methods, techniques, and fads.
The software industry must establish formal software engineering practices upon
which software development can evolve into a dependable profession and signifi-
cantly improve software development project success rates and product dependabil-
ity.
Figure 6.1
illustrates a conceptual progression of software development trends
from initial laboratory experimentation to consumerism. The evolution of software
programming languages and design techniques are associated with each stage of
evolution to demonstrate how these technologies have supported the procession of
software development as a legitimate profession.
The progression shown in
Figure 6.1
represents a typical evolutionary path for
most new technologies. Consumer laws and protection agencies exist to ensure
that products that introduce new technologies will not cause serious injury, dam-
age, or destruction of property. The introduction of software into critical systems
and the consumer marketplace will be an incentive for the inevitable transition of
the software craft to a professional stature. Current software development tools,