Software development is a process that requires precise planning and foresight. There are several techniques available to document software development. Unified Modeling Language (UML) is a standard method used for documenting the artifacts required for software development.
UML is a collection of design best practices that have been used for many years in the software development community. The Unified Modeling Language was first introduced in 1996 by the Object Management Group (OMG). The initial version of UML was created by a group of software development experts often referred to as the three amigos.
The three amigos are Grady Booch, James Rumbaugh, and Ivar Jacobson. They are considered the leaders and founders of the standard method unification project in 1996 that led to the creation of Unified Modeling Language. This unification effort took the best approaches for software design and development and created a reusable framework that could be easily understood.
The UML design approach uses graphical notations as a communication devise for software projects and the user community. These graphical notations help the software development team explore potential designs and pitfalls. Unified Modeling Language is typically used as a blueprint for the design of a software application. This blueprint explains how a software application will be built.
Agile Modeling (AM) is an example of a software design approach that uses UML. AM is a collection of practices and principles for designing software. The UML process is often criticized for being burdensome to the development team, especially in the area of document management. Agile Modeling attempts to take the necessary pieces of UML and streamline them into an agile design framework. Agile Modeling uses the UML documents as rough drafts of the design rather then the final blueprints or formal document. This removes the need for regular updates of the UML documents.
Model Based Testing (MBT) is a process where testing is completed based on defined designs. These designs are built from the requirements of a system. The defined requirements are then used to generate test cases,which are written as test scripts. The MBT artifacts can next generate the necessary information to explain the expected state of a system.
One of the most complex processes within software development is integration of components. Model-Driven Integration (MDI) is a process designed to simplify the integration effort of an application. Within MDI a design is created in Unified Modeling Language to represent the control of exchange paths in software.