UML (Unified Modeling Language) is a graphical tool widely used for describing, building, and documenting a wide variety of artifacts produced all the way through the software development life cycle. Without a doubt, functionalities and features of complex and large-scale software systems cannot be explained with text and words only unless they are explained through diagrams by making use of UML. In this scenario, system modeling provides various benefits to system developers such as visualization, unambiguous communication, easy understanding and clarification of requirements. In fact, UML can be used with all activities all the way through the software development lifecycle as well as across different development tools (IBM; Kotonya and Sommerville, p.11).
It is an admitted fact that agile methodologies have been developed to support rapid development of high-quality code hence they ignore various other aspects such as documentation and system design (Paige, Agarwal and Brooke). However, in their paper (Paige, Agarwal and Brooke) performs an experiment in which they have used UML and agile collectively to complete a project. This project involved the implementation of a health information system. The results of this experiment clearly demonstrated that modeling is essential, even though a project is being managed through agile software development methodologies. In this project, researchers have made use of UML for capturing object interactions, use cases and simple associations among classes. In addition, these models were proved to be very useful in describing the system to the customer (Paige, Agarwal and Brooke).
In the same way, (Rumpe) also discuss similar concepts. According to their viewpoint, the use of UML to develop the system within an agile methodology makes the development project all the more resourceful. In addition, through the abstractness of the platform independent models, these models are more compact and can more easily be written, read and understood than code. Additionally, UML also presents an excellent support for state-of-the-art documentation even much better than code along with proper commenting does (Rumpe).
According to (Huang, Chen and Lin) the combination of UML and agile methodology can make the software development process more effective. In addition, the combination of UML and agile methodology brings the benefit of readability, speed and modifiability (Huang, Chen and Lin).
Moreover, in agile development methodology, the development is focused on developing high quality products. On the other hand, low quality can have a serious impact on the development of new features, team confidence, and drown the reputation of a firm in bug triage, reporting, and fixing, documenting, regressing, and forward fixing. In this scenario, the development of a high quality product can be ensured through the development of high quality design for the reason that a high quality design is the artifact that can be used for effective communication with other team members on the subject of design issues. In this scenario, one of the best languages for this communication is UML. In fact, text or just word-based methods for communication about design are time-consuming and cause to experience interpretation errors. In this scenario, high performing agile teams should make use of graphical diagrams to share their work. It also gives complete clarification of requirements. (McKenna) believe that agile development team should make use of UML to communicate their work (McKenna).
- Huang, Chuen-min, Kuo-wei Chen and Kou-kai Lin. An Empirical Study of Adaptability of UML and Agile Methodology in Software Development. 2010. 20 March 2013 <http://188.8.131.52:8080/TeacherWeb/fileDownload/48.pdf>.
- IBM. Unified Modeling Language (UML). 2013. 20 March 2013 <http://www-01.ibm.com/software/rational/uml/>.
- Kotonya, Gerald and Ian Sommerville. Requirements Engineering Processes and Techniques. New York: John Wiley and Sons, 1998.
- McKenna, Jeff. Does Agile Development Require UML? 02 April 2009. 22 March 2013 <http://blog.agile-action.com/2009/04/does-agile-development-require-uml.html>.
- Paige, Richard, Priyanka Agarwal and Phillip Brooke. “Combining agile practices with UML and EJB: a case study in agile development.” XP’03 Proceedings of the 4th international conference on Extreme programming and agile processes in software engineering. Springer-Verlag Berlin, Heidelberg, 2003. 351-353.
- Rumpe, Bernhard. Agile Modeling with the UML. 2010. 23 March 2013 <http://sse-tubs.de/publications/Rumpe_AgileModelingUML_RISSEF02_04.pdf>.