The Unified Modeling Language(UML)
统一过程建模语言UML
统一过程建模语言UML是一种标准的可视化建模语言,使用在:
- 业务建模和类似的过程
- 居于软件系统的分析、设计、和实现
UML 是一门通用语言,提供给业务分析员,软件架构师和开发人员来描述、说明、设计现有的文档或者新的业务处理,软件系统的结构和行为的构件。
UML 可以广泛运用到多种应用领域(比如:银行,金融,互联网,航空,健康服务等), UML 被用于各种对象和软件开放方法的组件以及各类实现平台(如J2EE, .NET).
UML 是一种标准化建模语言,而非软件开放过程。 UML1.4.2 说明规范解释过程:
- 作为团队活动顺序提供指导
- 说明应该开发出什么样的产品
- 执导单个开放人员和团队作为一个整体
- 提供监控和管理一个项目的产品和活动的标准
UML 专门处理独立并且被应用与不同处理的背景下。 而且,最适合于以用例(Use Case)来驱动,迭代和递增式发展过程, 统一软件开发过程RUP(Rational Unified Process) 就是这个处理的一个例子。
UML并不完全,而且也不是完全可视化。以一些UML图来说,我们不能单独从图上来理解系统部分和行为,有些信息是特意从图上忽略,有些图上的信息有不同的解释,并且有些UML概念根本没有图形化标识,所以没有办法将他们在图上标识。
UML 并不完全,而且也并不是完全可视化。 以一些UML图为例,我们并不能确信单纯从图上理解系统的描述部分和行为。 一些信息被故意从图上忽略,一些图形上的信息可以做不同的理解,一些UML概念完全没有图形标识。
例如:用例图中,语义上的多重用户和多重用例并没有在UML中准确描述,可能意味着并发和持续使用用例。
抽象类可以用斜体字来表示,而常量类没有任何图形标识,所以从图形上无法区分一个类是否为常量类。
Version of UML:
The current version of UML is UML 2.4.1, released in August 2011 [UML 2.4.1 Specification]. The first versions of UML were created by Three Amigos - Grady Booch (creator of Booch method), Ivar Jacobson (Object-Oriented Software Engineering, OOSE), and Jim Rumbaugh (Object-Modeling Technique, OMT). UML® specification (standard) is updated and managed by the Object Management Group (OMG™) OMG UML.
Version | Date | Description |
---|---|---|
1.1 | 11-1997 | UML 1.1 proposal is adopted by the OMG. |
1.3 | 03-2000 | Contains a number of changes to the UML metamodel, semantics, and notation, but should be considered a minor upgrade to the original proposal. |
1.4 | 09-2001 | Mostly "tuning" release but not completely upward compatible with the UML 1.3. Addition of profiles as UML extensions grouped together. Updated visibility of features. Stick arrowhead in interaction diagrams now denotes asynchronous call. Model element may now have multiple stereotypes. Clarified collaborations. Refined definitions of components and related concepts. Artifact was added to represent physical representations of components. |
1.5 | 03-2003 | Added actions (see Part 5 of spec) - executable actions and procedures, including their run-time semantics, defined the concept of a data flow to carry data between actions, etc. |
1.4.2 | 01-2005 | This version was accepted as ISO specification (standard) ISO/IEC 19501. UML 1.5 was released 2 years before. |
2.0 | 08-2005 |
New diagrams: object diagrams, package diagrams, composite structure diagrams, interaction overview diagrams, timing diagrams, profile diagrams. Collaboration diagrams were renamed to communication diagrams. Activity diagrams and sequence diagrams were enhanced. Activities were redesigned to use a Petri-like semantics. Edges can now be contained in partitions. Partitions can be hierarchical and multidimensional. Explicitly modeled object flows are new. Classes have been extended with internal structures and ports (composite structures). Information flows were added. A collaboration now is a kind of classifier, and can have any kind of behavioral descriptions associated. Interactions are now contained within classifiers and not only within collaborations. It is now possible for use cases to be owned by classifiers in general and not just packages. New notation for concurrency and branching using combined fragments. Notation and/or semantics were updated for components, realization, deployments of artifacts. Components can no longer be directly deployed to nodes. Artifacts should be deployed instead. Implementation has been replaced by «manifest». Artifacts can now manifest any packageable element (not just components, as before). It is now possible to deploy to nodes with an internal structure. New metaclasses were added: connector, collaboration use, connector end, device, deployment specification, execution environment, accept event action, send object action, structural feature action, value pin, activity final, central buffer node, data stores, flow final, interruptible regions, loop nodes, parameter, port, behavior, behaviored classifier, duration, interval, time constraint, combined fragment, creation event, destruction event, execution event, interaction fragment, interaction use, receive signal event, send signal event, extension, etc. Many stereotypes were eliminated from the Standard UML Profile, e.g. «destroy», «facade», «friend», «profile», «requirement», «table», «thread». Integration between structural and behavioral models was improved with better support for executable models. |
2.1 | 04-2006 | Minor revision to UML 2.0 - corrections and consistency improvements. |
2.1.1 | 02-2007 | Minor revision to the UML 2.1 |
2.1.2 | 11-2007 | Minor revision to the UML 2.1.1 |
2.2 | 02-2009 | Fixed numerous minor consistency problems and added clarifications to UML 2.1.2 |
2.3 | 05-2010 | Minor revision to the UML 2.2, clarified associations and association classes, added final classifier, updated component diagrams, composite structures, actions, etc. |
2.4.1 | 08-2011 | Current version of UML, a minor revision to the UML 2.3, with few fixes and updates to classes, packages - added URI package attribute; updated actions; removed creation event, execution event, send and receive operation events, send and receive signal events, renamed destruction event to destruction occurrence specification; profiles - changed stereotypes and applied stereotypes to have upper-case first letter - «Metaclass» and stereotype application. |
2.5 FTF - Beta 1 | 11-2012 |
From the UML language perspective, 2.5 will be a minor revision to the UML 2.4.1, while they spent a lot of efforts simplifying and reorganizing specification document. It seems that this time "professors" took over researchers and industry practitioners, and instead of fixing actual UML issues waiting to be resolved for several years they re-written UML specification "to make it easier to read". For example, they tried "to reduce forward references as much as possible" which is an obvious requirement for textbooks but not for specifications. There will be no separate UML 2.5 Infrastructure document, so that the UML 2.5 specification will be a single document. Package merge will no longer be used within the specification itself. Four UML compliance levels (L0, L1, L2, and L3) are to be eliminated, as they were not useful in practice. UML 2.5 tools will have to support complete UML specification. Information flows, models, and templates will no longer be auxiliary UML constructs. At the same time, use cases, deployments, and the information flows to become UML supplementary concepts! Default for generalization sets changed from {incomplete, disjoint} to {incomplete, overlapping}. |
2.5 RTF - Beta 2 | 09-2013 |
Work in progress - some fixes, clarifications, and explanations added to UML 2.5 FTF – Beta 1. Updated description for multiplicity and multiplicity element. Clarified definitions of aggregation and composition. Finally fixed wrong «instantiate» dependency example for Car Factory. Introduced notation for inherited members with a caret ’^’ symbol. Clarified feature redefinition and overloading. Moved and rephrased definition of qualifiers. Few clarifications and fixes for stereotypes, state machines, activities. Protocol state machines are now denoted using «protocol» instead of {protocol}. Use cases are no longer required to express some needs of actors and to be initiated by an actor. |
UML 2.5 图
关于UML图,先看UML 图概要, 以及稍后呈现的一些事例。