Page 47 - DCAP405_SOFTWARE_ENGINEERING
P. 47

Software Engineering




                    Notes          software project is not just the final program along with the user documentation, but also the
                                   requirements document, design document, project plan, test plan, and test results.
                                   The waterfall model derives its name due to the cascading effect from one phase to the other as
                                   is illustrated in the Figure 3.2. In this model each phase is well defined, has a starting and ending
                                   point, with identifiable deliveries to the next phase.
                                   This model has five phases: (i) requirement analysis and specification, (ii) design,
                                   (iii) implementation and unit testing, (iv) integration and system testing and (v) operation and
                                   maintenance. All the phases occur one-by-one without overlapping. The next phase begins only
                                   after the end of the previous phase.
                                       Requirement analysis and specification: This phase aims at understanding the exact
                                       requirements of the customer and documents them. Both the customer and the software
                                       developer work together so as to document all the functions, performance and interfacing
                                       requirements of the software. It describes the “what” of the system to be produced and not
                                       “how”. In this phase a large document called Software Requirement Specification document
                                       (SRS) is produced which contains the detailed description of what the system will do in the
                                       common language.

                                       Design phase: The aim of this phase is to transform the requirements gathered in the SRS
                                       into a suitable form which permits further coding in a programming language. It defines
                                       the overall software architecture together with high level and detailed design. All this
                                       work is documented as Software Design Description document (SDD).
                                       Implementation and unit testing phase: The actual coding begins at his stage. The
                                       implementation goes smoothly if the SDD has complete information required by the
                                       software engineers. During testing, the code is thoroughly examined and modified. Small
                                       modules are testes in isolation initially. Thereafter, these modules are tested by writing
                                       some overhead code in order to check the interaction between these modules and the flow
                                       of intermediate output.

                                       Integration and system testing: This phase is highly crucial as the quality of the end
                                       product is determined by the effectiveness of the testing carried out. Better output will
                                       lead to satisfied customers, lower maintenance costs and accurate results. Unit testing
                                       determines the efficiency of individual modules. However, in this phase the modules are
                                       tested for their interactions with each other and with the system.
                                       Operation and maintenance phase: Maintenance is the task performed by every user once
                                       the software has been delivered to the customer, installed and operational.

                                       Thus, the delivery of software initiates the maintenance phase. The time and efforts spent
                                       on the software to keep it operational after release is important. It includes activities like
                                       error correction, removal of obsolete functions, optimization and enhancements of
                                       functions. It may span for 5 to 50 years.




                                     Notes  Thus, in this model the requirements must be clear at the very initial stages. The
                                     end product is available relatively late which in turn delays the error recovery.
                                   Let us now consider the rationale behind the waterfall model. There are two basic assumptions
                                   for justifying the linear ordering of phases in the manner proposed by the waterfall model.

                                   1.  For a successful project resulting in a successful product, all phases listed in the waterfall
                                       model must be performed anyway.
                                   2.  Any different ordering of the phases will result in a less successful software product.




          40                                LOVELY PROFESSIONAL UNIVERSITY
   42   43   44   45   46   47   48   49   50   51   52