The Unified Modeling Language (UML) is a graphical language for visualizing, specifying, constructing, and documenting the artifacts of software-intensive systems.
This is a language’ for specifying design details not a method or procedure.
Advantages of UML
1) The UML can be used to model just about any type of application, running on any type and combination of hardware, operating system, programming language, and network, in UML.
2) UML can be used for modeling middleware and this is effective for modeling large, complex software systems
3) Built upon the Microsoft Operating Framework (MOF) metamodel for object oriented modeling.
4) UML Profiles (that is, subsets of UML tailored for specific purposes) help to model Transactional, Real-time, and Fault-Tolerant systems in a natural way.
5) This has an ability to generate test scripts apart from stub code when integrated with Integrated development network.
6) The reverse engineering support, UML regenerate design level artifacts in accordance with the changes you made to the structure of class relationship
Disadvantages of UML 1) UML does not define a standard file format, meaning that each UML tool vendor stores the representation of its UML model in a proprietary format.
2) The result is that the UML model is generally limited to what the vendor provides out of the box, which is usually some form of code generation. Code will be generated once.
3) UML is large and complex (very much like the systems it wants to model) Comprises many different concepts and imprecise semantics 4) Synchronizing code with models is difficult: Using multiple models/diagrams makes it difficult to keep them consistent with each other and the code and much code has to be added by hand