Results for Unified Modeling Language
On this page:
 

(Unified Modeling Language) An object-oriented analysis and design language from the Object Management Group (OMG). Many design methodologies for describing object-oriented systems were developed in the late 1980s. UML standardizes several diagramming methods, including Grady Booch's work at Rational Software, Rumbaugh's Object Modeling Technique and Ivar Jacobson's work on use cases.

There are twelve diagrams supported under UML. Four are structural, five are behavioral and three are used for model management, which include packages, subsystems and models. See XMI.

Structural Diagrams

The four structural diagrams are class, object, component and deployment. Following is an example of the class diagram:

Class Diagram
This is one of the structural diagrams.User, User Terminal and Server are three classes that have attributes and operations. An actor is a UML "stereotype" that is external to the system. Lines between classes are "associations." The asterisk means "many," in this case, a many-to-one relationship between client and server.

Behavioral Diagrams

There are five behavioral diagrams: use case, sequence, activity, collaboration and state chart. Following are examples of four of them:

Use Case Diagram
This diagram shows a system's functions from a user's point of view, which in this case is pretty simple. All the following diagrams were created in the Telelogic Tau UML suite by Telelogic for this same example. Five of the nine possible diagrams available in UML are shown below. The Component Diagram (software module interaction), Deployment Diagram (hardware nodes) and the Activity Diagram (tasks) are not included. The Object Diagram (instantiations of classes) is rarely used.

Sequence Diagram
Like an MSC (Message Sequence Diagram), the Sequence Diagram depicts the message flow between entities in the system. The items between double left/right arrows are UML "stereotypes." See MSC.

Collaboration Diagram
This diagram emphasizes the structure of the relationships between entities. Note that the user is associated with the user terminal in a session, and the terminal is associated with the server in a connection. The order of messages can be read by interpreting the numbers prefixes.

State Chart
This describes the finite states that take place in the system. The rectangles are the states, and the lines between them are the transitions. The connection state shows three substates. The single circles are starting points, and the double circles are the ends.



 
 
is short for:

Meaning Category
Unconditional Maximum LikelihoodAcademic & Science->Mathematics
Unified Modeling LanguageComputing->General
Computing->Drivers
Unified Modelling LanguageComputing->Databases
University Of Manchester LanguageMiscellaneous->Funnies
University of Massachusetts at LowellAcademic & Science->Universities
User Mode LinuxComputing->General

Click here to submit an acronym.


 
Wikipedia: Unified Modeling Language

In the field of software engineering, the Unified Modeling Language (UML) is a standardized specification language for object modeling. UML is a general-purpose modeling language that includes a graphical notation used to create an abstract model of a system, referred to as a UML model.

UML is officially defined at the Object Management Group (OMG) by the UML metamodel, a Meta-Object Facility metamodel (MOF). Like other MOF-based specifications, the UML metamodel and UML models may be serialized in XMI. UML was designed to specify, visualize, construct, and document software-intensive systems.

UML is not restricted to modeling software. UML is also used for business process modeling, systems engineering modeling, and representing organizational structures. The Systems Modeling Language (SysML) is a Domain-Specific Modeling language for systems engineering that is defined as a UML 2.0 profile.

UML has been a catalyst for the evolution of model-driven technologies, which include Model Driven Development (MDD), Model Driven Engineering (MDE), and Model Driven Architecture (MDA). By establishing an industry consensus on a graphic notation to represent common concepts like classes, components, generalization, aggregation, and behaviors, UML has allowed software developers to concentrate more on design and architecture.

UML models may be automatically transformed to other representations (e.g. Java) by means of QVT-like transformation languages, supported by the OMG.

UML is extensible, offering the following mechanisms for customization: profiles and stereotype. The semantics of extension by profiles have been improved with the UML 2.0 major revision.

History

After Rational Software Corporation hired James Rumbaugh from General Electric in 1994, the company became the source for the two most popular object-oriented modeling approaches of the day: Rumbaugh's OMT, which was better for object-oriented analysis (OOA), and Grady Booch's Booch method, which was better for object-oriented design (OOD). Together Rumbaugh and Booch attempted to reconcile their two approaches and started work on a Unified Method.

They were soon assisted in their efforts by Ivar Jacobson, the creator of the OOSE method. Jacobson joined Rational in 1995, after his company, Objectory, was acquired by Rational. The three methodologists were collectively referred to as the Three Amigos, since they were well known to argue frequently with each other regarding methodological preferences.

In 1996 Rational concluded that the abundance of modeling languages was slowing the adoption of object technology, so repositioning the work on a Unified Method, they tasked the Three Amigos with the development of a non-proprietary Unified Modeling Language. Representatives of competing Object Technology companies were consulted during OOPSLA '96, and were won over by Rumbaugh's a cappella rendition of his version of Joni Mitchell's "Clouds". (Indicating the victory of his OMT notation of using boxes for representing classes over Grady Booch's Booch method's notation which used cloud symbols).

Under the technical leadership of the Three Amigos, an international consortium called the UML Partners was organized in 1996 to complete the Unified Modeling Language (UML) specification, and propose it as a response to the OMG RFP. The UML Partners' UML 1.0 specification draft was proposed to the OMG in January 1997. During the same month the UML Partners formed a Semantics Task Force, chaired by Cris Kobryn and administered by Ed Eykholt, to finalize the semantics of the specification and integrate it with other standardization efforts. The result of this work, UML 1.1, was submitted to the OMG in August 1997 and adopted by the OMG in November 1997.[1]

As a modeling notation, the influence of the OMT notation dominates (e.g., using rectangles for classes and objects). Though the Booch "cloud" notation was dropped, the Booch capability to specify lower-level design detail was embraced. The use case notation from Objectory and the component notation from Booch were integrated with the rest of the notation, but the semantic integration was relatively weak in UML 1.1, and was not really fixed until the UML 2.0 major revision.

Concepts from many other OO methods were also loosely integrated with UML with the intent that UML would support all OO methods. For example CRC Cards (circa 1989 from Kent Beck and Ward Cunningham), and OORam were retained. Many others contributed too with their approaches flavoring the many models of the day including: Tony Wasserman and Peter Pircher with the "Object-Oriented Structured Design (OOSD)" notation (not a method), Ray Buhr's "Systems Design with Ada", Archie Bowen's use case and timing analysis, Paul Ward's data analysis and David Harel's "Statecharts". as the group tried to ensure broad coverage in the real-time systems domain. As a result, UML is useful in a variety of engineering problems, from single process, single user applications to concurrent, distributed systems, making UML rich but large.

The Unified Modeling Language is an international standard:

ISO/IEC 19501:2005 Information technology -- Open Distributed Processing -- Unified Modeling Language (UML) Version 1.4.2.

UML has matured significantly since UML 1.1. Several minor revisions (UML 1.3, 1.4, and 1.5) fixed shortcomings and bugs with the first version of UML, followed by the UML 2.0 major revision, which is the current OMG standard.

The first part of UML 2.0, the Superstructure which describes the new diagrams and modeling elements available, was adopted by the OMG in October 2004. Other parts of UML 2, notably the infrastructure, the Object Constraint Language (OCL) and the diagram interchange were yet to be completed and ratified as of November 2005.

The final UML 2.0 specification has been declared available and has been added to OMG's formal specification library. The other parts of the UML specification, the UML 2.0 infrastructure, the UML 2.0 Diagram Interchange, and UML 2.0 OCL specifications have been adopted.

The current version available is 2.1.1 (August 2007) and is available in the form of an XMI 2.1 version of the UML 2.1 version. The corresponding XMI 2.1 file is made available from the OMG. The version 2.2 is currently under development.

Most of the commercially successful UML tools now support most of UML 2.0, leaving only the rarely used features left to implement. Of course, it will take some time for the tools that are in the hands of the developers to reach this level of compliance.

Methods

UML is not a method by itself; however, it was designed to be compatible with the leading object-oriented software development methods of its time (for example OMT, Booch, Objectory). Since UML has evolved, some of these methods have been recast to take advantage of the new notation (for example OMT), and new methods have been created based on UML. The best known is Rational Unified Process (RUP). There are many other UML-based methods like Abstraction Method, Dynamic Systems Development Method, and others, designed to provide more specific solutions, or achieve different objectives.

Modeling

It is very important to distinguish between the UML model and the set of diagrams of a system. A diagram is a partial graphical representation of a system's model. The model also contains a "semantic backplane" — documentation such as written use cases that drive the model elements and diagrams.

UML diagrams represent three different views of a system model:

Functional requirements view

Emphasizes the functional requirements of the system from the user's point of view.
Includes use case diagrams.

Static structural view

Emphasizes the static structure of the system using objects, attributes, operations, and relationships.
Includes class diagrams and composite structure diagrams.

Dynamic behavior view

Emphasizes the dynamic behavior of the system by showing collaborations among objects and changes to the internal states of objects.
Includes sequence diagrams, activity diagrams and state machine diagrams.

UML models can be exchanged among UML tools by using the XMI interchange format.

Diagrams

In UML 2.0 there are 13 types of diagrams. To understand them, it can be useful to categorize them hierarchically, as shown in the hierarchy chart on the right.

Hierarchy of UML 2.0 Diagrams, shown as a class diagram

Structure diagrams emphasize what things must be in the system being modeled:

Behavior diagrams emphasize what must happen in the system being modeled:

Interaction diagrams, a subset of behavior diagrams, emphasize the flow of control and data among the things in the system being modeled:

The Protocol State Machine is a sub-variant of the State Machine. It may be used to model network communication protocols.

UML does not restrict UML element types to a certain diagram type. In general, every UML element may appear on almost all types of diagrams. This flexibility has been partially restricted in UML 2.0.

In keeping with the tradition of engineering drawings, a comment or note explaining usage, constraint, or intent is always allowed in a UML diagram.

Concepts

UML uses many concepts from many sources. For a definitive list, consult the glossary of Unified Modeling Language terms. Notable concepts are listed here.

For structure

Actor, attribute, class, component, interface, object, package.

For behavior

Activity, event, message, method, operation, state, use case.

For relationships

Aggregation, association, composition, dependency, generalization (or inheritance).

Other concepts

Criticisms

Although UML is a widely recognized and used modeling standard, it is frequently criticized for the following deficiencies:

  • Language bloat. UML is often criticized‹The template Who? is being considered for deletion.› 

[Who?] as being gratuitously large and complex. It contains many diagrams and constructs that are redundant or infrequently used. This criticism is more frequently directed at UML 2.0 than UML 1.0, since newer revisions include more design-by-committee compromises.

  • Problems in learning and adopting. The problems cited above make learning and adopting UML problematic, especially when management forces UML upon engineers lacking the prerequisite skills.[2]
  • Only the code is in sync with the code. Another perspective holds that it is working systems that are important, not beautiful models. As Jack Reeves succinctly put it, "The code is the design."[3][4] Pursuing this notion leads to the need for better ways of writing software; UML has value in approaches that compile the models to generate source or executable code. This however, may still not be sufficient since it is not clear that UML 2.0's Action Semantics exhibit Turing completeness.
  • Cumulative Impedance/Impedance mismatch. As with any notational system, UML is able to represent some systems more concisely or efficiently than others. Thus a developer is influenced toward solutions that most comfortably inhabit the intersection of the strengths between UML and the coding language. This problem is particularly pronounced if the coding implementation language does not adhere to orthodox object-oriented doctrine.
  • Tries to be all things to all people. UML is a general purpose modeling language, which tries to achieve compatibility with every possible implementation language. In the context of a specific project, the most applicable features of UML must be delimited for use by the design team to accomplish the specific goal. Additionally, the means of restricting the scope of UML to a particular domain is through a formalism that is not completely formed, and is itself the subject of criticism.

"UML: The Positive Spin", a stringent criticism of UML in the form of a parody -- a mock paper by a student who has been assigned UML as a topic and is desperately trying to find something good to say about it -- was published by Bertrand Meyer in Ed Yourdon's American Programmer magazine. It is available on Eiffel Software's archive site[5].

A paper by Brian Henderson-Sellers at the MoDELS/UML conference in Genova, Italy, October 2006 details flaws in the definition of the UML 2.0 language.

Extensions

UML allows vendors and users to extend the language through Profile (engineering), which customize the language through the use of stereotypes, tagged values, and constraints.

  • SysML is a OMG standard UML profile for systems engineering applications.
  • MARTE is an OMG standard UML profile for real-time and embedded system.
  • Magnus Penker and Hans-Erik Eriksson define a business process modeling profile in Business Modeling with UML (2000).
  • Peter Coad, et al. show how to customize UML notation and semantics through the use of colors in Java Modeling In Color With UML (1999).
  • Scott Ambler has defined a A UML Profile for Data Modeling.

See also

Notes

  1. ^ UML Specification v. 1.1 (OMG document ad/97-08-11)
  2. ^ See the ACM article for an amusing account of such issues.
  3. ^ http://developers.slashdot.org/article.pl?sid=05/03/01/2112257
  4. ^ Code as Design: Three Essays by Jack W. Reeves
  5. ^ Bertrand Meyer: UML: The Positive Spin, in American Programmer, 1997, available here

References

  • Ambler, Scott William (2004). The Object Primer: Agile Model Driven Development with UML 2. Cambridge University Press. ISBN 0-521-54018-6. 
  • Chonoles, Michael Jesse; James A. Schardt (2003). UML 2 for Dummies. Wiley Publishing. ISBN 0-7645-2614-6. 
  • Coad, Peter; Eric Lefebvre; Jeff De Luca (1999). Java Modeling In Color With UML: Enterprise Components and Process. Prentice Hall. ISBN 0-13-011510-X. 
  • Fowler, Martin. UML Distilled: A Brief Guide to the Standard Object Modeling Language, 3rd ed., Addison-Wesley. ISBN 0-321-19368-7. 
  • Gooch, Tom. History of UML. Retrieved on 2005-12-28.
  • Jacobson, Ivar; Grady Booch; James Rumbaugh (1998). The Unified Software Development Process. Addison Wesley Longman. ISBN 0-201-57169-2. 
  • Martin, Robert Cecil (2003). UML for Java Programmers. Prentice Hall. ISBN 0-13-142848-9. 
  • Noran, Ovidiu S.. Business Modelling: UML vs. IDEF (PDF). Retrieved on 2005-12-28.
  • Penker, Magnus; Hans-Erik Eriksson (2000). Business Modeling with UML. John Wiley & Sons. ISBN 0-471-29551-5. 
  • Henderson Sellers, Brian (2006). about UML profiles. Springer Verlag. MoDELS'2006 Conference, Genova. 

External links

This article was originally based on material from the Free On-line Dictionary of Computing, which is licensed under the GFDL.


Unified Modeling Language (UML) ()
Background

Grady Booch • Ivar Jacobson • Object Management Group (OMG) • UML Partners • Rational Unified Process (RUP) • James Rumbaugh 

Concepts

Object oriented: Object-oriented programming 

Structure: Actor • Attribute • Class • Component • Interface • Object • Package 

Behavior: Activity • Event • Message • Method • Operation • State • Use case 

Relationships: Aggregation • Association • Composition • Dependency • Generalization (or Inheritance

Extensibility: Profile • Constraint • Stereotype • Tagged values 

Other concepts: Multiplicity • Role 

Diagrams

Structure diagrams
Class diagram • Component diagram • Composite structure diagram • Deployment diagram • Object diagram • Package diagram 

Behavior diagrams
Activity diagram • State Machine diagram • Use case diagram • Communication diagram • Interaction overview diagram • Sequence diagram • Timing diagram 

Topics

Compared to relational database model (ERD) • Glossary of UML terms • Systems Modeling Language (SysML) • UML colors:

Role Moment, Interval Description Party, place, thing
Tools

UML tools


 
 

Join the WikiAnswers Q&A community. Post a question or answer questions about "Unified Modeling Language" at WikiAnswers.

 

Copyrights:

Computer Desktop Encyclopedia. THIS COPYRIGHTED DEFINITION IS FOR PERSONAL USE ONLY.
All other reproduction is strictly prohibited without permission from the publisher.
© 1981-2008 Computer Language Company Inc.  All rights reserved.  Read more
Abbreviations. STANDS4.com - The source for acronyms and abbreviations. Copyright ©2006 STANDS4 LLC. All rights reserved.  Read more
Wikipedia. This article is licensed under the GNU Free Documentation License. It uses material from the Wikipedia article "Unified Modeling Language" Read more

Search for answers directly from your browser with the FREE Answers.com Toolbar!  
Click here to download now. 

Get Answers your way! Check out all our free tools and products.

On this page:   E-mail   print Print  Link  

 

Keep Reading

Mentioned In: