Saturday, December 15, 2012
To UML Or Not To UML? That is the question...
UML was developed with the intent of standardizing the modeling language in the field of object-oriented software engineering. It utilizes graphic notation techniques to produce a visual model of an object-oriented software system. Specifically, UML is used to specify, visualize, modify, construct and document the artifacts of an object-oriented software-intensive system under development.
UML, at it's core, puts a strong emphasis on design. In practice, it is utilized to make attempts to model software in detail. The drawback with this approach, in general, is that potential for "analysis paralysis" is very high. In an age where extreme programming methods and agile development is becoming the norm, the "big design up front" method is becoming just another road block to developing working code.
That being said, UML offers some very key advantages over any other non-standardized approach. The creation of a standardized method of representing data is a major advantage to all software engineers and developers. It allows everyone to have a common understanding of a single graphical representation with very little misunderstanding.
UML has it's advantages as well as it's disadvantages, some say it's the standard while others say it's on it's way out. An argument can be made both for or against it. Personally, I find it has a place in developing simple applications, but it becomes extremely overwhelming when utilizing it with large scale applications. UML can be advantageous to any team given that they use it in the right context.