Page 12 - DCAP305_PRINCIPLES_OF_SOFTWARE_ENGINEERING
P. 12

Principles of Software Engineering



                   Notes
                                                Let us consider the development of iron-making technology. In antique times,
                                                very few people knew about iron making. Those who knew about it kept it a
                                                closely-guarded secret. This esoteric knowledge used to get transferred from
                                                generation to generation as a family secret. Slowly, technology graduated
                                                from art to craft form, where tradesmen shared their knowledge with their
                                                apprentices and the knowledge pool continued to grow. Much later, through
                                                a systematic organization of knowledge, and incorporation of scientific basis,
                                                modern steel-making technology has evolved.
                                                Critics point out that many of the methodologies and guidelines provided by
                                                the software engineering discipline lack scientific basis, are subjective, and
                                                are often inadequate. Yet, there is no denying the fact that adopting software
                                                engineering techniques facilitates development of high quality, software in a
                                                cost-effective and efficient manner. Software engineering practices have proven
                                                to be indispensable to the development of large software products-though
                                                exploratory styles can often be successfully used to develop small programs.

                                 1.4 Software Characteristics


                                 The software has a very particular characteristic e.g., “it does not exhaust”. Its performance and
                                 nature is quite diverse than other products of human life. A comparison with one such case, i.e.,
                                 constructing a bridge in comparison with writing a program is given in Table 1.1. Both activities
                                 require different processes and have different characteristics.


                                               Table 1.1: A Compression Between Constructing a Bridge
                                                              and Writing a Program

                                      Sr. No.  Constructing a bridge       Writing a program
                                        1.   The problem is well understood.  Only some  parts of the problem are
                                                                           understood, others are not.
                                        2.   There are many existing bridges.  Every program is different and
                                                                           designed for special applications.
                                        3.   The requirements for a bridge  Requirements typically change during
                                             typically do not change much  all phases of development.
                                             during construction.
                                        4.   The strength and stability of a  Not possible to calculate correctness
                                             bridge can be calculated with  of a program with existing methods.
                                             reasonable precision.
                                        5.   When a bridge collapses, there is a  When a program fails, the reasons are
                                             detailed investigation and report.  often unavailable or even deliberately
                                                                           concealed.
                                        6.   Engineers have been constructing  Developers have been writing
                                             bridges for thousands of years.  programs for 50 years or so.
                                        7.   Materials (wood, stone, iron, steel)  Hardware  and  software changes
                                             and  techniques  (making  joints  in  rapidly.
                                             wood, carving stone, casting iron)
                                             change slowly.


                                 Some of the important characteristics are discussed:




        6                                 LOVELY PROFESSIONAL UNIVERSITY
   7   8   9   10   11   12   13   14   15   16   17