unified modeling language the unified modeling language uml is a generalpurpose developmental modeling language in the field of software engineering that is intended to provide a standard way to visualize the design of a system the creation of uml was originally motivated by the desire to standardize the disparate notational systems and approaches to software design it was developed by grady booch ivar jacobson and james rumbaugh at rational software in 19941995 with further development led by them through 1996 in 1997 uml was adopted as a standard by the object management group omg and has been managed by this organization ever since in 2005 uml was also published by the international organization for standardization iso as an approved iso standard history history of objectoriented methods and notation before uml 10 uml has been evolving since the second half of the 1990s and has its roots in the objectoriented programming methods developed in the late 1980s and early 1990s the timeline see image shows the highlights of the history of objectoriented modeling methods and notation it is originally based on the notations of the booch method the objectmodeling technique omt and objectoriented software engineering oose which it has integrated into a single language rational software corporation hired james rumbaugh from general electric in 1994 and after that the company became the source for two of the most popular objectoriented modeling approaches of the day uml 1x under the technical leadership of those three rumbaugh jacobson and booch a consortium called the uml partners was organized in 1996 to complete the unified modeling language uml specification and propose it to the object management group omg for standardisation the partnership also contained additional interested parties for example hp dec ibm and microsoft the uml partners uml 10 draft was proposed to the omg in january 1997 by the consortium during the same month the uml partners formed a group designed to define the exact meaning of language constructs chaired by cris kobryn and administered by ed eykholt to finalize the specification and integrate it with other standardization efforts the result of this work uml 11 was submitted to the omg in august 1997 and adopted by the omg in november 1997 after the first release a task force was formed the standards it produced as well as the original standard have been noted as being ambiguous and inconsistent cardinality notation as with database chen bachman and iso er diagrams class models are specified to use lookacross cardinalities even though several authors merise have shown that the lookacross technique used by uml and er diagrams is less effective and less coherent when applied to nary relationships of order strictly greater than 2 feinerer says problems arise if we operate under the lookacross semantics as used for uml associations hartmann investigates this situation and shows how and why different transformations fail and as we will see on the next few pages the lookacross interpretation introduces several difficulties which prevent the extension of simple mechanisms from binary to nary associations uml 2 uml 20 major revision replaced version 15 in 2005 which was developed with an enlarged consortium to improve the language further to reflect new experience on usage of its features although uml 21 was never released as a formal specification versions 211 and 212 appeared in 2007 followed by uml 22 in february 2009 uml 23 was formally released in may 2010 there are four parts to the uml 2x specification the superstructure that defines the notation and semantics for diagrams and their model elements the infrastructure that defines the core metamodel on which the superstructure is based the object constraint language ocl for defining rules for model elements the uml diagram interchange that defines how uml 2 diagram layouts are exchanged the current versions of these standards are uml superstructure version 241 uml infrastructure version 241 ocl version 231 uml diagram interchange version 10 it continues to be updated and improved by the revision task force who resolve any issues with the language design uml offers a way to visualize a systems architectural blueprints in a diagram including elements such as any activities jobs individual components of the system and how they can interact with other software components how the system will run how entities interact with others components and interfaces external user interface although originally intended for objectoriented design documentation uml has been extended to a larger set of design documentation as listed above software development methods uml is not a development method by itself however it was designed to be compatible with the leading objectoriented software development methods of its time for example omt booch method objectory and especially rup that it was originally intended to be used with when work began at rational software modeling it is important to distinguish between the uml model and the set of diagrams of a system a diagram is a partial graphic representation of a systems model the set of diagrams need not completely cover the model and deleting a diagram does not change the model the model may also contain documentation that drives the model elements and diagrams such as written use cases uml diagrams represent two different views of a system model static or structural view emphasizes the static structure of the system using objects attributes operations and relationships it includes class diagrams and composite structure diagrams dynamic or behavioral view emphasizes the dynamic behavior of the system by showing collaborations among objects and changes to the internal states of objects this view includes sequence diagrams activity diagrams and state machine diagrams uml models can be exchanged among uml tools by using the xml metadata interchange xmi format in uml one of the key tools for behavior modelling is the usecase model caused by oose use cases are a way of specifying required usages of a system typically they are used to capture the requirements of a system that is what a system is supposed to do diagrams uml diagram types structural uml diagrams class diagram component diagram composite structure diagram deployment diagram object diagram package diagram profile diagram behavioral uml diagrams activity diagram communication diagram interaction overview diagram sequence diagram state diagram timing diagram use case diagram vte uml 2 has many types of diagrams which are divided into two categories these diagrams may all contain comments or notes explaining usage constraint or intent structure diagrams structure diagrams emphasize the things that must be present in the system being modeled since structure diagrams represent the structure they are used extensively in documenting the software architecture of software systems for example the component diagram describes how a software system is split up into components and shows the dependencies among these components component diagram class diagram behavior diagrams behavior diagrams emphasize what must happen in the system being modeled since behavior diagrams illustrate the behavior of a system they are used extensively to describe the functionality of software systems as an example the activity diagram describes the business and operational stepbystep activities of the components in a system activity diagram use case diagram interaction diagrams interaction diagrams a subset of behavior diagrams emphasize the flow of control and data among the things in the system being modeled for example the sequence diagram shows how objects communicate with each other regarding a sequence of messages sequence diagram communication diagram metamodeling metaobject facility illustration of the metaobject facility the object management group omg has developed a metamodeling architecture to define the uml called the metaobject facility mof is designed as a fourlayered architecture as shown in the image at right it provides a metameta model at the top called the m3 layer this m3model is the language used by metaobject facility to build metamodels called m2models the most prominent example of a layer 2 metaobject facility model is the uml metamodel which describes the uml itself these m2models describe elements of the m1layer and thus m1models these would be for example models written in uml the last layer is the m0layer or data layer it is used to describe runtime instances of the system the metamodel can be extended using a mechanism called stereotyping this has been criticised as being insufficientuntenable by brian hendersonsellers and cesar gonzalezperez in uses and abuses of the stereotype mechanism in uml 1x and 20 adoption uml has been marketed for many contexts it has been treated at times as a design silver bullet which leads to problems uml misuse includes overuse designing every part of the system with it which is unnecessary and assuming that novices can design with it it is considered a large language with many constructs some people including jacobson feel that umls size hinders learning and therefore using it software portal applications of uml business process model and notation bpmn modelbased testing modeldriven engineering object oriented role analysis and modeling systems modeling language sysml list of unified modeling language tools this article is based on material taken from the free online dictionary of computing prior to 1 november 2008 and incorporated under the relicensing terms of the gfdl version 13 or later ambler scott william 2004 the object primer agile model driven development with uml 2 cambridge university press isbn0521540186 chonoles michael jesse james a schardt 2003 uml 2 for dummies wiley publishing isbn0764526146 fowler martin uml distilled a brief guide to the standard object modeling language 3rd ed addisonwesley isbn0321193687 jacobson ivar grady booch james rumbaugh 1998 the unified software development process addison wesley longman isbn0201571692 martin robert cecil 2003 uml for java programmers prentice hall isbn0131428489 noran ovidiu s business modelling uml vs idef pdf retrieved 20051228 horst kargl interactive uml metamodel with additional examples penker magnus hanserik eriksson 2000 business modeling with uml john wiley sons isbn0471295515 wikimedia commons has media related to unified modeling language wikiversity has learning resources about uml official website vteunified modeling languageactors organizations object management group uml partners persons grady booch ivar jacobson james rumbaugh conceptsobject oriented objectoriented programming objectoriented analysis and design objectoriented modeling structure actor attribute artifact class component interface object package profile diagram behavior activity event message method state use case relationships association composition dependency generalization or inheritance extensibility profile stereotype other multiplicity diagramsstructure class component composite structure deployment object package behaviour activity state machine use case interaction communications sequence interaction overview timing derived languages systems modeling language sysml uml exchange format uxf xml metadata interchange xmi executable uml xuml other topics glossary of uml terms rational unified process list of unified modeling language tools object modeling in color vtesoftware engineeringfields computer programming requirements engineering software deployment software design software maintenance software testing systems analysis formal methods concepts data modeling enterprise architecture functional specification modeling language orthogonality programming paradigm software software archaeology software architecture software configuration management software development methodology software development process software quality software quality assurance software verification and validation structured analysis orientations agile aspectoriented object orientation ontology service orientation sdlc modelsdevelopmental agile eup executable uml incremental model iterative model prototype model rad up scrum spiral model vmodel waterfall model xp other spice cmmi data model er model function model information model metamodeling object model systems model view model languages idef uml usl sysml softwareengineers victor basili kent beck grady booch fred brooks barry boehm peter chen danese cooper ward cunningham tom demarco edsger w dijkstra delores m etter martin fowler adele goldstine margaret hamilton c a r hoare lois haibt mary jean harrold grace hopper watts humphrey michael a jackson ivar jacobson alan kay nancy leveson stephen j mellor bertrand meyer david parnas trygve reenskaug winston w royce james rumbaugh mary shaw peri tarr elaine weyuker niklaus wirth edward yourdon related fields computer science computer engineering project management risk management systems engineering category commons vteiso standards by standard numberlist of iso standards iso romanizations iec standards 19999