Page 61 - DCAP405_SOFTWARE_ENGINEERING
P. 61

Software Engineering




                    Notes          In prototyping, for the purposes of requirement analysis to be feasible, its cost must be kept low.
                                   Consequently, only those features are included in the prototype that will have a valuable return
                                   from the user experience. Exception handling, recovery, and conformance to some standards
                                   and formats are typically not included in prototypes. In prototyping, as the prototype is to be
                                   discarded, there is no point in implementing those parts of the requirements that are already
                                   well understood. Hence, the focus of the development is to include those features that are not
                                   properly understood. Because the prototype is to be thrown away, only minimal documentation
                                   needs to be produced during prototyping. For example, design documents, a test plan, and a test
                                   case specification are not needed during the development of the prototype. Another important
                                   cost-cutting measure is to reduce testing. Because testing consumes a major part of development
                                   expenditure during regular software development, this has a considerable impact in reducing
                                   costs. By using these types of cost-cutting methods, it is possible to keep the cost of the prototype
                                   low.
                                   Prototyping is often not used, as it is feared that development costs may become large. However,
                                   in some situations, the cost of software development without prototyping may be more than the
                                   prototyping. There are two major reasons for this. First, the experience of developing the prototype
                                   might reduce the cost of the later phases when the actual software development is done. Secondly,
                                   in many projects, the requirements are constantly changing, particularly when development
                                   takes a long time. We saw earlier that changes in requirements at a later stage, during
                                   development, substantially increase the cost of the project. By elongating the requirements
                                   analysis phase (prototype development does take time), the requirements are “frozen” at a later
                                   time, by that time they are likely to be more developed and, consequently, more stable. In
                                   addition, because the client and use to get experience with the system, it is more likely that the
                                   requirements specified after the prototype will be closer to the actual requirements. This again
                                   will lead to fewer changes in the requirements at a later time. Hence, the costs incurred due to
                                   changes in the requirements may be substantially reduced by prototyping. Hence, the cost of the
                                   development after the prototype can be substantially less than the cost without prototyping; we
                                   have already seen how the cost of developing the prototype itself can be reduced.




                                      Task  In a group of four analyze this statement: “The basic reason for little common use
                                     of prototyping is the cost involved in this built-it-twice approach.”
                                   Prototyping is catching on. It is well suited for projects where requirements are hard to determine
                                   and the confidence in obtained requirements is low. In such projects, a waterfall model will have
                                   to freeze the requirements in order for the development to continue, even when the requirements
                                   are not stable. This leads to requirement changes and associated rework while the development
                                   is going on. Requirements frozen after experience with the prototype are likely to be more
                                   stable. Overall, in projects where requirements are not properly understood in the beginning,
                                   using the prototyping process model can be the most effective method for developing the
                                   software. It is an excellent technique for reducing some types of risks associated with a project.
                                   We will further discuss prototyping when we discuss requirements specification and risk
                                   management.

                                   Advantages of Prototyping

                                       Users are actively involved in the development
                                       It provides a better system to users, as users have natural tendency to change their mind in
                                       specifying requirements and this method of developing systems supports this user tendency.






          54                                LOVELY PROFESSIONAL UNIVERSITY
   56   57   58   59   60   61   62   63   64   65   66