Page 20 - DCAP305_PRINCIPLES_OF_SOFTWARE_ENGINEERING
P. 20
Principles of Software Engineering
Notes • Aim is to develop working programs: The aim has been shifted from developing working
programs to good quality, maintainable programs. Maintaining software has become a
very critical and crucial area for software engineering community. This list is endless.
These myths, poor quality of software, increasing cost and delay in the delivery of the
software have been the driving forces behind the emergence of software engineering as
a discipline. In addition, following are the contributing factors:
(a) Change in ratio of hardware to software costs
(b) Increasing importance of maintenance
(c) Advances in software techniques
(d) Increased demand for software
(e) Demand for larger and more complex software systems.
1.9 Software a Crisis on the Horizon
Lots of industry observers have branded the exertion connected with software development as
a “crisis” Yet what we really have may be something somewhat dissimilar. The word “crisis is
defined in Webster’s Dictionary as a crossroads in the course of no matter which: important or
crucial time stage or event” Yet for software there has been no “defining moment” no “decisive
time” only slow evolutionary change. In the software industry we have had a “crisis” that has
been with us for close to 30 years and that is a contradiction in terms. Anyone who looks up the
word “crisis” in the dictionary will find another definition: “the turning point in the course of a
disease when it becomes clear whether the patient will live or die”. This definition may give us
a clue about the real nature of the problems that have plagued software development. We have
yet to reach the stage of crisis in computer software. What we really have is a chronic affliction.
The word “affliction is defined as anything causing pain or distress” But it is the definition of
the adjective “chronic” that is the key to our argument: “lasting a long time or recurring often;
continuing indefinitely”. It is far more accurate to describe what we have endured for the past
three decades as a chronic affliction rather that a crisis. There are no miracle cures, but there
are many ways that we can reduce that pain as we strive to discover a cure (See in Figure 1.8).
Figure 1.8: The Impact of Change
Whether we call it a software crisis or a software affliction the term alludes to asset or problems
that are encountered in the development of computer software. The problems are not limited to
14 LOVELY PROFESSIONAL UNIVERSITY