What is the Unified Modeling Language?

上一篇 / 下一篇  2008-06-18 12:03:48 / 个人分类:Software Testing

Unified Modeling Language

From Wikipedia, the free encyclopedia

In the field ofsoftware engineering, theUnified/Universal Modeling Language(UML) is a standardized visual specification language for object modeling. UML is a general-purpose modeling language that includes a graphical notation used to create anabstract modelof a system, referred to as a UML model.

Contents

[hide]

[edit]General descrīption

UML is officially defined at theObject Management Group(OMG) by theUML metamodel, aMeta-Object Facilitymetamodel (MOF). Like other MOF-based specifications, UML has allowed software developers to concentrate more on design and architecture[citation needed].

UML models may be automatically transformed to other representations (e.g. Java) by means ofQVT-like transformation languages, supported by theOMG.

UML isextensible, offering the following mechanisms for customization:profilesandstereotype. Thesemanticsofextension by profileshave been improved with the UML 2.0 major revision.

[edit]History

AfterRational Software CorporationhiredJames RumbaughfromGeneral Electricin 1994, the company became the source for the two most popularobject-orientedmodeling approaches of the day: Rumbaugh'sOMT, which was better forobject-oriented analysis(OOA), andGrady Booch'sBooch method, which was better forobject-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 byIvar Jacobson, the creator of theOOSEmethod. Jacobson joined Rational in 1995, after his company, Objectory, was acquired by Rational. The three methodologists were collectively referred to as theThree 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 anon-proprietaryUnified Modeling Language. Representatives of competing Object Technology companies were consulted duringOOPSLA'96, and were won over by Rumbaugh'sa cappellarendition of his version ofJoni Mitchell's "Clouds"[citation needed], indicating the victory of hisOMTnotation of usingboxesfor representing classes overGrady Booch'sBooch method's notation that usedcloudsymbols.

Under the technical leadership of the Three Amigos, an international consortium called theUML Partnerswas organized in 1996 to complete theUnified 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 byCris Kobrynand administered byEd 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. Theuse casenotation from Objectory and thecomponentnotation 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 exampleCRC Cards(circa 1989 fromKent BeckandWard Cunningham), andOORamwere retained. Many others contributed too with their approaches flavoring the many models of the day including: Tony Wasserman and Peter Pircher with the "Object-OrientedStructured 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 internationalstandard:

ISO/IEC19501: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 that was adopted by the OMG in 2003. There are four parts to the UML 2.x 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; and the UML Diagram Interchange that defines how UML 2 diagram layouts are exchanged. The current versions of these standards follow: UML Superstructure version 2.1.2, UML Infrastructure version 2.1.2, OCL version 2.0, and UML Diagram Interchange version 1.0[2].

Although manyUML toolssupport some of the new features of UML 2.x, the OMG provides notest suiteto objectively test compliance with its specifications.

[edit]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 exampleOMT,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 isRational Unified Process(RUP). There are many other UML-based methods likeAbstraction Method,Dynamic Systems Development Method, and others, designed to provide more specific solutions, or achieve different objectives.

[edit]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.
Includesuse case diagrams.

Static structural view

Emphasizes the static structure of the system using objects, attributes, operations, and relationships.
Includesclass diagramsandcomposite structure diagrams.

Dynamic behavīor view

Emphasizes the dynamic behavīor of the system by showing collaborations among objects and changes to the internal states of objects.
Includessequence diagrams,activity diagramsandstate machine diagrams.

UML models can be exchanged amongUML toolsby using theXMIinterchange format.

[edit]Diagrams

UML 2.0 has 13 types ofdiagramsthat can be categorized hierarchically as shown in the followingClass diagram:

Structure diagramsemphasize what things must be in the system being modeled:

behavīor diagramsemphasize what must happen in the system being modeled:

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

TheProtocol State Machineis 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.

[edit]Concepts

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

For structure

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

For behavīor

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

For relationships

Aggregation,association,composition,dependency,generalization(orinheritance).

Other concepts

[edit]Criticisms

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

  • Languagebloat. UML is often criticized as being gratuitously large and complex[3]. 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 moredesign-by-committeecompromises[citation needed].
  • Problems in learning and adopting. The problems cited above can make learning and adopting UML problematic, especially when required of engineers lacking the prerequisite skills[4].
  • Only the code is in sync with the code. Another perspective holds that it is working systems that are important, not beautiful models. AsJack Reevessuccinctly put it, "The code is the design"[5][6]. Pursuing this notion leads to the need for better ways of writing software; UML has value in approaches thatcompile the modelsto generate source or executable code. This however, may still not be sufficient since it is not clear that UML 2.0's Action Semantics exhibitTuring completeness. "All models are wrong, but some models are useful."
  • Cumulative Impedance/Impedance Mismatching. As with any notational system, UML is able to represent some systems more concisely or efficiently than others. Thus a developer gravitates toward solutions that reside at the intersection of the capabilities of UML and the implementation language. This problem is particularly pronounced if the implementation language does not adhere to orthodox object-oriented doctrine, as the intersection set between UML and implementation language may be that much smaller.
  • Aesthetically Inconsistent. This argument states that the adhoc mixing of abstract notation (2-D ovals, boxes, etc) make UML appear jarring and that more effort could have been made to construct uniform and aesthetically pleasing representations.
  • Tries to be all things to all programmers. UML is a general purpose modeling language that 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.
  • Dysfunctional interchange format. While the XMI (XML Metadata Interchange) standard is designed to facilitate the interchange of UML models, it has been largely ineffective in the practical interchange of UML 2.x models. Defining a UML 2.x model in one tool and then importing it into another tool typically leads to loss of information.[citation needed]This interoperability ineffectiveness is attributable to two reasons: First, XMI 2.x is large and complex in its own right, since it purports to address a technical problem more ambitious than exchanging UML 2.x models. In particular, it attempts to provide a mechanism for facilitating the exchange of any arbitrary modeling language defined by the OMG'sMeta-Object Facility(MOF). Secondly, the UML 2.x Diagram Interchange specification lacks sufficient detail to facilitate reliable interchange of UML 2.x notations between modeling tools. Since UML is a visual modeling language, this shortcoming is substantial for modelers who don't want to redraw their diagrams[7].

Many modeling experts have written sharp criticisms of UML, includingBertrand Meyer's "UML: The Positive Spin"[3], and a paper presented byBrian Henderson-Sellersat the MoDELS/UML conference inGenova,Italyin October 2006[citation needed].

[edit]See also


TAG:

 

评分:0

我来说两句

Open Toolbar