Page 14 - DCAP305_PRINCIPLES_OF_SOFTWARE_ENGINEERING
P. 14

Principles of Software Engineering



                   Notes         1.4.3 Reusability of Components
                                 If we have to manufacture a TV, we may purchase picture tube from one vendor, cabinet from
                                 another, design card from third and other electronic components from fourth vendor. We will
                                 assemble every part and test the product thoroughly to produce a good quality TV. We may
                                 be required to manufacture only a few components or no component at all. We purchase every
                                 unit and component from the market and produce the finished product. We may have standard
                                 quality guidelines and effective processes to produce a good quality product. In software, every
                                 project is a new project. We start from the scratch and design every unit of the software product.
                                 Huge effort is required to develop software which further increases the cost of the software
                                 product. However, effort has been made to design standard components that may be used in
                                 new projects. Software reusability  has  introduced another  area  and is  known  as  component
                                 based software engineering. Hence developers can concentrate on truly innovative elements of
                                 design, that is, the parts of the design that represent something new. In the hardware world,
                                 component reuse is a natural part of the engineering process. In software, there is only a humble
                                 beginning like graphical user interfaces are built using reusable components that enable the
                                 creation of graphics windows, pull-down menus, and a wide variety of interaction mechanisms.

                                 1.4.4 Software is Flexible
                                 We  all  feel  that  software  is  flexible.  A  program  can  be  urbanized  to  do  almost  anything.
                                 Sometimes, this feature may be the best and may help us to accommodate any kind of change.
                                 However, most of the times, this “almost anything” characteristic has made software development
                                 difficult to plan, monitor and control. This unpredictability is the basis of what has been referred
                                 to for the past 30 years as the “Software Crisis”.

                                 1.5 The Changing Nature of Software

                                 Software has become integral part of most of the fields of human life. We name a field and we
                                 find the usage of software in that field. Software applications are grouped in to eight areas for
                                 expediency as shown in Figure. 1.7.


                                                          Figure 1.7: Software Application



                                                              System      Real time
                                                             software      software
                                                  Engineering                      Embedded
                                                  and science                       software
                                                   software

                                                  Web based                         Business
                                                   software                         software
                                                              Artificial  Personal
                                                             intelligence  computer
                                                              software    software


                                 1.5.1 System Software

                                 Infrastructure software comes under this category like compilers, operating systems, editors,
                                 drivers, etc. Basically system software is a set of programs to provide service to other programs.







        8                                 LOVELY PROFESSIONAL UNIVERSITY
   9   10   11   12   13   14   15   16   17   18   19