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
   15   16   17   18   19   20   21   22   23   24   25