Page 22 - DCAP305_PRINCIPLES_OF_SOFTWARE_ENGINEERING
P. 22

Principles of Software Engineering



                   Notes         of these attributes are therefore efficiency, reliability, maintainability, robustness, portability,
                                 and so on.
                                 The relative importance of these characteristics obviously varies from system to system. However,
                                 optimizing all of these attributes is difficult as some are exclusive. For example, providing a
                                 better user interface may reduce system efficiency. All are subject to the law of diminishing
                                 returns. The relationship between cost and improvements in each of these attributes is not a
                                 linear one. Small improvements in any of the attributes can be expensive. A great deal of effort
                                 must be devoted to optimizing a particular attribute.
                                 As  an  example  of  this,  Figure  1.9  shows  how  costs  may  rise  exponentially  as  efficiency
                                 improvements are required.

                                                           Figure 1.9: Costs vs. Efficiency






















                                 For  some  kinds  of  system,  such  as  avionic  systems,  efficiency  is  a  prime  consideration.  The
                                 software may have to run on a computer where weight and size considerations  restrict the
                                 power of the hardware which can be used. It may have to run in a relatively small memory
                                 with no associated disks. It may be necessary to optimize efficiency at the expense of the other
                                 system attributes. Where this is necessary, the design decisions for efficiency should be explicit
                                 and the consequences of these decisions carefully analyzed.
                                 1.10.3 Process and its Approach

                                 The software process is the set of activities and associated results which produce a software
                                 product. These activities are mostly carried out by software engineers. CASE (computer-aided
                                 software engineering) tools may be used to help with some procedure activities.

                                 There are four fundamental process performances which are common to all software processes.
                                 The activities are:
                                    •  Software Specification: The functionality of the software and constraints on its operation
                                      must be defined.
                                    •  Software Development: The software to meet the specification must be produced.

                                    •  Software Validation: The software must be validated to ensure that it does what the customer
                                      wants.
                                    •  Software Evolution: The software must evolve to meet changing customer needs.




        16                                LOVELY PROFESSIONAL UNIVERSITY
   17   18   19   20   21   22   23   24   25   26   27