Page 34 - DCAP305_PRINCIPLES_OF_SOFTWARE_ENGINEERING
P. 34

Principles of Software Engineering



                   Notes         The Project Costs and Benefits: Reimbursement and costs can be both touchable as well as 10
                                 Software Engineering insubstantial. Touchable costs and benefits are the ones which can be easily
                                 measured whereas intangible ones cannot be easily measured. Examples of tangible benefits
                                 are reduced errors, improved planning and control, reduced costs etc. Insubstantial benefits
                                 include timely information, better  resource control, improved information processing, better
                                 assets utilization and many more. Similarly tangible costs include cost of hardware and software
                                 required in the project, training costs, operational costs and labor costs whereas intangible costs
                                 include loss of customer goodwill, decreased operation efficiency and many more. Economic
                                 feasibility uses the concept of time-value of money (TVM) which compares the present cash
                                 outlays to future expected returns. Technical feasibility focuses on organization’s ability to
                                 construct the proposed system in terms of hardware, software, operating environments, project
                                 size, complexity, experience of the organization in handling the similar types of projects and the
                                 risk analysis. Operational feasibility deals with assessing the degree to which a proposed system
                                 solve business problems. Similarly schedule feasibility ensures that the project will be completed
                                 well in time. Legal and contractual feasibility relates to issue like intellectual property rights,
                                 copyright laws, labor laws and different trade regulations. Political feasibility finally evaluates
                                 how the key stakeholders within the organization view the proposed system.
                                 Requirements  Analysis: This phase focuses on understanding the problem domain and
                                 representing the requirements in a form which are understandable by all the stakeholders of the
                                 project i.e. analyst, user, programmer, tester etc. The output of this stage is a document called
                                 Requirements Specification Document (RSD) or Software Requirements Specification (SRS). All
                                 the successive stages of software life cycle are dependent on this stage as SRS produced here is
                                 used in all the other stages of the software lifecycle.
                                 System Design: This phase translates the SRS into the design document which depicts the overall
                                 modular structure of the program and the interaction between these modules. This phase focuses
                                 on the high level design and low level design of the software. High level design describes the
                                 main components of software and their externals and internals. Low level design focuses on
                                 transforming the high level design into a more detailed level in terms of an algorithms used,
                                 data structures used etc.
                                 Implementation: This phase transforms the low level design part of software design description
                                 into a working software product by writing the code.
                                 Testing Phase: It is responsible for testing the code written during implementation phase. This
                                 phase can be broadly divided into unit testing (tests individual modules), integration testing (tests
                                 groups of interrelated modules) and system testing (testing of system as a whole). Unit testing
                                 verifies the code against the component’s high level and low level design. It also ensures that all
                                 the statements in the code are executed at least once and branches are executed in all directions.
                                 Additionally it also checks the correctness of the logic. Integration testing tests the inter modular
                                 interfaces and ensures that the module drivers are functionally complete and are of acceptable
                                 quality. System testing validates the product and verifies that the final product is ready to be
                                 delivered to the customers. Additionally several tests like volume tests, stress tests, performance
                                 tests etc., are also done at the system testing level.
                                 Deployment Phase: It makes the system operational through installation of system and also
                                 focuses on training of user.
                                 Operations and Maintenance: This phase resolves the software .errors, failures etc. enhances the
                                 requirements if required and modifies the functionality to meet the customer demands. This is
                                 something which continues throughout the use of product by the customer.
                                 2.3.1 Advantages and Disadvantages

                                 Advantages and disadvantages of the Waterfall model are listed as:
                                 Advantages
                                    •  Easy to understand even by non-technical persons i.e. customers.


        28                                LOVELY PROFESSIONAL UNIVERSITY
   29   30   31   32   33   34   35   36   37   38   39