Wednesday, February 16, 2011

Using UML in Projects

Well the obvious question by any fresh student\developer is not how but WHY??? UML is used extensively in project development as a general programming practice, where you pictorially represent your entire project as a series of diagrams.


What is UML?
Seriously if you're still searching then I'd suggest Wikipedia. the most apt definition i found was:
The Unified Modeling Language (UML) is a standard  language for specifying, visualizing, constructing, and documenting the artifacts of software systems, as well as for business modeling and other non-software systems. The UML represents a collection of best engineering practices that have proven successful in the modeling of large and complex systems.
Now lets proceed to why we as students\developers should use it more often.


1) Everyone needs a plan
Thinking of starting without a plan? Well we are not cowboys, nor are we experienced that much, a plan will certainly help keep track of project progress. Also, a well structured plan can be verified, evaluated, and improved in the very initial stages without even having to make those obvious mistakes. Besides this the diagrams let you know exactly where you are and what you need to do next.


2) Ease of understanding
Software projects tend to get lengthy and boring. Class Diagrams will definitely help understand the project code better than a hundred page source-code booklet. UML helps you show the scope, depth and size of the project in simple diagrams. Any level of detail can be incorporated into the pictorials to ease understanding. 


3) Explain to "others"
It is simple to show how a project operates or how to proceed while making it using Use-case diagrams. Others simply have to put themselves in place of the "actor" and they have a plan of action that tells them how to operate.


4) Document Assets
Any software requires good documentation to support it. Both User Manuals and Developer manuals mark the beginning of a support and maintainance relationship that must continue long after sale, both for corporate and open source products. UML diagrams in documentation bring both transparency and clarity and reduces dependence on rather obtuse source code.


5) Re-Usability
Any reboot\restart\retry will require a new approach firmly rooted to the last one. Hence the use of UML retains the very essence of that process used. Also, it is pretty simple to edit existing models and modify them to match new requirements.


6) Universal
UML standards are universally accepted. People might not know the programming language used or whether it was object oriented or procedure centric but they definitely will understand the UML part of your documentation.


7) Further Development
Models can be isolated, segmented, and edited individually, allowing for branching into several projects. Large projects can be decomposed and utilized by many people for their applications.


Some Important Softwares(Opensource)
1) StarUML
2) ArgoUML