If the sequence characteristic of the waterfall model implied a difficulty in reverting to phases that had been deemed as completed, with the UML structure, new phases can simply be added into the model and treated in connection to the phases that are actually impacted and to which these new phases relate to.
One of the disadvantages of UML is that the entire modeling process is, in fact, just an auxiliary activity of the actual development phase that will eventually create the finite product. In that sense, the development company needs to be a fairly large organization, able to manage the diagrams involved in the modeling process and ensure this activity despite the fact that it only makes a marginal contribution to the final development process.
Another disadvantage is the fact that the semantics used in UML and, from a larger perspective, the necessary language used to connect the different elements in the diagrams, is often limited and either does not reflect all the conditions or it does not convey the actual sense or status that needs to be included in the model. With this fact, confusions may actually arise in the development phase as to what the original sense and connection was meant to be.
Finally, some argue that the XML is too costly, with more resources being needed for training purposes, as well as for the implementation of the system in the company that decides to use such an approach. Other resources have been previously mentioned and include the fact that separate human resources may be needed to manage the diagrams.
With prototyping, the developer provides intermediary products to the user, referred to as prototypes. These intermediary products have some of the characteristics and functionality of the final product, but have not been entirely completed. There are two main advantages that one can identify with prototyping. The first one is the fact that prototyping improves the relationship and communication between the developer and the client and can better involve the client in the different phase of the software development process. This is essential in the second advantage that prototyping provides, ensuring that any changes in the product requirements are introduced at a stage where the implied costs are not too high.
The main disadvantage for a prototyping approach is the fact that the developing team may associate the prototype too much with the finite product and not address sufficiently the errors that it has. One needs to understand that the prototype that is presented to the client in the development process is, in fact, only an intermediary phase before the completion of the project. Most likely, it needs not only an additional round of testing and the polishing error-fixing code, but rather a complete continuation of the development process, based on the prototype, the initial requirements of the client and the additional ones that may have been introduced after the prototype was presented.
SECTION 5: Conclusion
The three different software development methodologies that have been presented here are constructed taking into consideration the approach towards the final use and his implication in the development process, as well as the way the different phases are implemented in the overall process. Some of the approaches, such as the UML, are more flexible, while others, like the waterfall model, provide a more rigorous approach sustained by the sequential development of the phases. The prototype model is likely to capitalize on the direct implication of the user in the development process and his input at key moments of this process.
1. Royce, Winston (1970). "Managing the Development of Large Software Systems." Proceedings of IEEE WESCON 26 (August): 1 -- 9. On the Internet at http://www.cs.umd.edu/class/spring2003/cmsc838p/Process/waterfall.pdf. Last retrieved on August 16, 2010
2. Parnas, David. A Rational Design Process: How and Why to Fake it.
3. Chonoles, Michael Jesse; James A. Schardt (2003). UML 2 for Dummies. Wiley Publishing
4. Smith, MF. (1991). Software Prototyping: Adoption, Practice and Management. McGraw-Hill, London
Royce, Winston (1970). "Managing the Development of Large Software Systems." Proceedings of IEEE WESCON 26 (August): 1 -- 9. On the Internet at http://www.cs.umd.edu/class/spring2003/cmsc838p/Process/waterfall.pdf. Last retrieved on August 16, 2010
Parnas, David. A Rational Design Process: How and Why to…