【计算机专业文献翻译】OMG统一建模语言规范
- 格式:doc
- 大小:1.94 MB
- 文档页数:12
the unified modeling language reference manualpdf摘要:1.统一建模语言参考手册概述2.统一建模语言的发展历程3.统一建模语言的主要特点4.统一建模语言的应用领域5.统一建模语言参考手册PDF 的价值正文:统一建模语言(Unified Modeling Language,简称UML)是一种用于描述、可视化和构建软件系统结构的标准化建模语言。
它广泛应用于软件开发领域,帮助开发人员更好地理解系统的结构和行为。
如今,关于统一建模语言的参考资料众多,其中《统一建模语言参考手册PDF》是一本颇具价值的参考书籍。
统一建模语言自1997 年由OMG(Object Management Group,对象管理组)推出以来,已经经历了多个版本的更新,逐渐成为软件开发领域的标准建模语言。
它的发展历程反映了软件工程从面向对象到面向服务的转变,也体现了软件开发方法的不断进步。
统一建模语言的主要特点包括:1.面向对象:UML 完全支持面向对象的编程思想,可以描述类、对象、接口等概念。
2.建模能力:UML 提供了丰富的建模元素,可以描述系统的结构、行为、交互等各个方面。
3.可视化:UML 支持可视化表示,使得开发人员可以直观地看到系统的结构和关系。
4.独立于实现:UML 的建模不依赖于特定的编程语言或实现技术,具有较高的可移植性。
统一建模语言在软件开发领域的应用十分广泛,包括需求分析、系统设计、代码生成、测试等各个阶段。
此外,它还在其他领域,如业务流程建模、数据库设计等领域发挥着重要作用。
《统一建模语言参考手册PDF》是一本详尽介绍UML 的参考书籍,对于学习UML、提高建模技能具有很高的价值。
该手册全面地介绍了UML 的基本概念、建模元素、建模方法和最佳实践,为开发人员提供了全面的指导。
同时,该手册还包括了大量的实例和案例,使得学习更加直观、深入。
第3章统一建模语言UML软件工程领域具有划时代意义的成果之一就是统一建模语言(unified modeling language,UML)。
至少在近十年内,UML将是面向对象技术领域内占主导地位的标准建模语言。
UML应用领域非常广泛,可用于多种类型软件系统开发建模的各个阶段。
具有创建系统的静态结构和动态行为等多种结构模型的能力,具有可扩展性和通用性,适合与多种多变结构系统的建模。
3.1 软件建模的原因高质量的软件开发是项目团队努力追求的一个重要目标。
但是,软件质量受到诸多因素的混合影响,在软件工程中,我们面临着成本和工作量的压力;在软件产品方面,我们需要保证软件的功能、性能、有效性、容错能力、扩展性、可维护性、可移植性等等;尤其对大型复杂软件系统,费用超支、生产率低下和质量不高等问题常常困绕着软件开发。
这些问题的根源在于软件自身的复杂性。
应对软件复杂性问题的根本性方法之一就是要进行软件建模。
我们进行软件建模的最重要原因是为了使我们的最终产品在质量上达到一个较高的水平。
高品质是指产品开发简单,开发周期短,有更好的用户文档,经过更好测试从而减少故障。
事实上,良好的结构可以持续使用,拙劣的结构只会被淘汰。
建立于良好基础之上,使用达到目标的一致的方法、包含大量的重用,没有故障的代码修复起来非常容易。
事实上,建立软件模型要比开发软件耗费的时间更多,而通过合理的软件建模可以减少开发时间也是一个不争的事实。
3.2 UML的发展历程面向对象的建模方法始于20世纪80年代初期,大量有决定意义的思想形成于20世纪90年代中期,这期间涌现出一些重要方法,包括Booch、OMT、Shlaer-Mellor、Fusion、OOSE 和Coad-Yourdon等。
1994年10月,Jim Rumbaugh和Grady Booch开始共同合作,于1995年10月提出统一方法(unified method)0.8版本。
随后,Ivar Jacobson也加入其中,同时将OOSE思想融合进来,于1996年6月发布统一建模语言(Unified Modeling Language,UML)0.9版本。
UML(统一建模语言)重点(原创高品质)Chapter 1 Introduction1. Model & advantage2. ModelingModeling is a proven and well-accepted engineering technique which helps build a model.Model is a simplification of reality;It is a blueprint of the actual system that needs to be built3. Principles of modelingThe choice of what models to create has a profound influence on how a problem is attacked and how a solution is shaped.Every model may be expressed at different levels of precision.The best models are connected to reality.No single model or view is sufficient. We need multiple view points.4. Types of modelingMajor three types of modeling areStructural,Behavioral, andArchitectural5. What is UMLThe Unified Modeling Language (UML) is a standard language for writing software blueprints.The UML may be used to visualize, specify, construct, and document the artifacts of a software system.6. Where can the UML be used?Enterprise Information systemsBanking and Financial servicesTelecommunicationsTransportationsDefense / AerospaceRetailMedical ElectronicsScientificDistributed Web-based services7. Goals of UMLTo define some general purpose modeling language which all modelers can use and also it needs to be made simple to understand and use.UML diagrams are not only made for developers but also for business users, common people and anybody interested to understand the system.The system can be a software or non software. So it must be clear that UML is not adevelopment method rather it accompanies with processes to make a successful system.At the conclusion the goal of UML can be defined as a simple modeling mechanism to model all possible practical systems in today's complex environment.8. UML building blocksThings,relationships,diagrams9. Architectural viewsArchitecture refers to the different perspectives from which a complex system can be viewed.The architecture of a software-intensive system is best described by five interlocking views:–Use case view: system as seen by users, analysts and testers.–Design view: classes, interfaces and collaborations that make up the system.–Process view: active classes (threads).–Implementation view: files that comprise the system.–Deployment view: nodes on which SW resides.UML plays an important role in defining different perspectives of a system. These perspectives are:Design viewImplementation viewProcess viewDeployment viewAnd the centre is the Use Case view which connects all these fourChapter 2 Diagrams1. UML standard diagrams●In the previous chapters we have discussed about the introduction to UML ,basicbuilding blocks and other necessary elements of UML.●Now we need to understand where to use those elements.●The elemen ts are like components which can be associated in different ways to make acomplete UML pictures which is known as diagram.●So it is very important to understand the different diagrams to implement the knowledgein real life systems.●Any complex system i s best understood by making some kind of diagrams or pictures.●These diagrams have a better impact on our understanding.●So if we look around then we will realize that the diagrams are not a new concept but it isused widely in different form in different industries.●We prepare UML diagrams to understand a system in betterand simple way.● A single diagram is not enough to cover all aspects of the system.●So UML defines various kinds of diagrams to cover most of the aspects of a system.●There are two broad categories of diagrams and then are again divided intosub-categories:●Structural Diagrams●Behavioral Diagrams2. Categories of diagramsStructural diagrams●The structural diagrams represent the static aspect of the system.●These static parts are represents by classes, interfaces, objects, components and nodes.●The four structural diagrams are:1.Class diagram2.Object diagramponent diagram4.Deployment diagramBehavioral diagrams●Any system can have two aspects, static and dynamic.●So a model is considered as complete when both the aspects are covered fully.●Behavioral diagrams basically capture the dynamic aspect of a system.●Dynamic aspect can be further described as the changing/moving parts of a system.●UML has the following five t ypes of behavioral diagrams:●Use case diagram●Sequence diagram●Collaboration diagram●Statechart diagram●Activity diagramChapter 3 Class Diagram1. Purpose of class diagram●The purpose of the class diagram is to model the static view of an application.●The class diagrams are the only diagrams which can be directly mapped with objectoriented languages and thus widely used at the time of construction.●So the purpose of the class diagram can be summarized as:●Analysis and design of the static view of an application.●Describe responsibilities of a system.●Base for component and deployment diagrams.●Forward and reverse engineering.2. Notations (or) Elements of class diagramClassesInterfacesDependency , generalization , and association relationships3. RelationshipsDependencyGeneralizationAssociationAggregationComposition4. How to draw class diagram1)Class diagrams are the most popular UML diagrams usedfor construction of softwareapplications.2)So it is very important to learn the drawing procedure of class diagram.3)Class diagrams have lot of properties to consider while drawing but here the diagram willbe considered from a top level view.4)Class diagram is basically a graphical representation of the static view of the system andrepresents different aspects of the application.5)So a collection of class diagrams represent the whole system6)The following points should be remembered while drawinga class diagram:① The name of the class diagram should be meaningful to describe theaspect of the system.② Each element and their relationships should be identified in advance. ③ Responsibility (attributes and methods) of each class should be clearlyidentified.④ For each class minimum number of properties should be specified.Because unnecessary properties will make the diagram complicated. ⑤ Use notes when ever required to describe some aspect of the diagram.Because at the end of the drawing it should be understandable to the developer/coder.⑥ Finally, before making the fina l version, the diagram should be drawn on plain paper and rework as many times aspossible to make it correct.5. Example class diagrams● Now the following diagram is an example of an Order System of an application. ● So it describes a particular aspect o f the entire application.● First of all Order and Customer are identified as the two elements of the system and theyhave a one to many relationship because a customer can have multiple orders.● We would keep Order class is an abstract class and it has two concrete classes(inheritance relationship) SpecialOrder and NormalOrder .● The two inherited classes have all the properties as the Order class. ● In addition they have additional functions like dispatch () and receive ().● So the following class dia gram has been drawn considering all the points mentionedabove+ Public # Protected - PrivateWindow {abstract,author=Joe,status=teste d}+size: Area = (100,100) #visibility:Boolean=invisi ble+default-size: Rectangle #max-size: Rectangle -xptr: XWindow+display() +hide() +create()-attachXWindow(xsin:Xwindow)6. Where to use class diagram?●Class diagram is a static diagram and it is used to model static view of a system.●The static view describes the vocabulary of the system.●Class diagram is also c onsidered as the foundation for component and deploymentdiagrams.●Class diagrams are not only used to visualize the static view of the system but they arealso used to construct the executable code for forward and reverse engineering of any system.●Generally UML diagrams are not directly mapped with any object oriented programminglanguages but the class diagram is an exception.●Class diagram clearly shows the mapping with object oriented languages like Java, C++etc.●So from practical experience class diagram is generally used for construction purpose.So in a brief, class diagrams are used for:●Describing the static view of the system.●Showing the collaboration among the elements of the static view.●Describing the functionalities performed by the system.●Construction of software applications using object oriented languagesChapter 4 Use case diagram1. What are use cases?A use case is a typical interaction between a user and a computer systemUse cases document the behavior of the system from the users' points of viewA user might be a person, another information system, a hardware device, etcA user is external to the system2. What are actors?An actor in a use case diagram represents a role that someone may play, not an individual user of the system The same person can be different actorsThink about roles rather than people or job titlesAn actor is any person, organization, or system that interacts with application but is external to itNotation in a use case diagram3. Actor RelationshipsGeneralization4. Use case scenarioUse case scenario is a specific example of a use caseA scenario is an instance of a use case, as an object is an instance of a classA use case describes a set of related scenariosFor each use case:What are the possible scenarios?What are the rules for applying a particular scenario?To capture this information, a software engineer would use a textual descriptionof the use case5. Use case relationships6. Use case diagramShow expected actors and use casesShow which actors do which use casesShow dependency and inheritance among use casesChapter 5 Activity diagram1)Notation of Activity diagramActivitiesActionsControl FlowInitial NodeFinal NodeTransitionsObjectsObject FlowsObject FlowPinsData store2)Activity (or) ActionAn activity is the specification of a parameterized sequence of behavior.An activity is shown as a round-cornered rectangle enclosing all the actions, control flows and other elements that make up the activity.An action represents a single step within an activity.Actions are denoted by round-cornered rectangles.An initial or start node is depicted by a large black spot, as shown below.There are two types of final node: Activity andFlow final nodes.The activity final node is depicted as a circle with a dot inside. ?4) Flows---control & objectA control flow shows the flow of control from one action to the next.Its notation is a line with an arrowhead5) TransitionsAn object flow is a path along which objects or data can pass.An object is shown as a rectangle7)Joins---Fork & Joins(Differece)Forks and joins have the same notation: either a horizontal or vertical bar(the orientation is dependent on whether the control flow is running left to right or top to bottom).They indicate the start and end of concurrent threads of control.The following diagram shows an example of their use.DifferenceA join is different from a merge in that the join synchronizes two inflows and produces a single outflow.The outflow from a join cannot execute until all inflows havebeen received.A merge passes any control flows straight through it. If two or more inflows are received by a merge symbol, the action pointed to by its outflow is executed two or more times 8)Branch9)Swimlanes (or) partitionsPartitionAn activity partition is shown as either a horizontal or vertical swimlane.In the following diagram, the partitions are used to separate actions within an activity into those performed by the accounting department and those performed by the customer.10)Expansion RegionAn expansion region is a structured activity region that executes multiple times.Input and output expansion nodes are drawn as a group of three boxes representing a multiple selection of items.The keyword "iterative", "parallel" or "stream" is shown in the top left corner of the region.11)Example Activity diagram(1)order(2)courseware management system(3)Ready & Attend lecture(4)Pass or fail(5)To find more than or less than salaryChapter 6 State diagram1)Elements of state chart diagramStates is a Condition or situation during the life cycle of an object during which it satisfies some condition, performs some activity, or waits for some event.Transitions is a relationship between two states indicating that an object in the first state will perform certain actions and enter the second state when a specified event occurs and specified conditions are satisfied2)StateA state is denoted by a round-cornered rectangle with thename of the state written inside it.The initial state is denoted by a filled black circle and may be labeled with a name.The final state is denoted by a circle with a dot inside and may also be labeled with a name.3)TransitionsTransitions from one state to the next are denoted by lines with arrowheads.A transition may have a trigger, a guard and an effect, as below.4) How to draw the state diagram?State diagrams have very few elements.The basic elements are rounded boxes representing the state of the object and arrows indicting the transition to the next state.The activity section of the state symbol depicts whatactivities the object will be doing while it is in that state.All state diagrams being with an initial state of the object.This is the state of the object when it is created.After the initial state the object begins changing states.Conditions based on the activities candetermine what the next state the object transitions to.Below is an example of a state diagram might look like for an Order object.When the object enters the Checking state it performs the activity "check items."After the activity is completed the object transitions to the next state based on the conditions [all items available] or [an item is not available]. If an item is not available the order is canceled.If all items are available then the order is dispatched.When the object transitions to the Dispatching state the activity "initiate delivery" is performed.After this activity is complete the object transitions again to the Delivered state.Chapter 7 Interaction diagram1)Sequence DiagramA Sequence diagram is two-dimensional in nature.On the horizontal axis, it shows the life of the object that it represents, while on the vertical axis, it shows the sequence of the creation or invocation of these objects.A sequence diagram is made up of objects and messages.Objects are represented exactly how they have been represented in all UML diagrams —as rectangles with the underlined2)Elements of SequenceObject:The primary element involved in a sequence diagram is an Object — an instance of a class.An object is represented by a named rectangle.The name to the left of the ":" is the object name and to its right is the class name. Message:The interaction between different objects in a sequence diagram is represented as messages.A message is denoted by a directed arrow.Depending on the type of message, the notation differs.In a Sequence diagram, you can represent simple messages, special messages to create or destroy objects, and message responses.3)Example of Sequence diagram4)Collaboration diagramA sophisticated modeling tool can easily convert a collaboration diagram into a sequence diagram and the vice versa.Hence, the elements of a Collaboration diagram areessentially the same as that of a Sequence diagram.Let us see in detail what the elements of Collaboration diagram are.5)Elements of Collabration diagramRelation/AssociationA link connecting the associated objects.Qualifiers can be placed on either end of the association to depict cardinality.MessagesAn arrow pointing from the commencing object to the destination object shows the interaction between the objects.The number represents the order/sequence of this interaction.6)Example of Collaboration7)Difference between sequence & collaboration diagramSequence diagrams are easy to read and follow, as they enforce a standard layout on the diagram.Collaborations have the added advantage of interfaces and freedom of layout, but can be difficult to follow, understand andcreate.。
UML 统一建模语言第三章需求工作流需求元模型有两种方法捕获需求。
——功能性需求和非功能性需求。
UP需求工作流细节包含以下有意义的活动:——找出参与者和用例。
——详细描述用例。
——结构化用例模型。
扩展标准的UP需求工作流,做法:——参与者:需求工程师。
——活动:找到功能性需求。
——活动:找到非功能性需求。
——活动:给需求排出优先顺序。
——活动:在需求和用例之间跟踪。
两种类型的需求:——功能性需求。
——非功能性需求。
系统需求规格说明(SRS)包含系统的功能性需求和非功能性需求。
这可以是:——文档。
——需求管理工具中的数据库。
映射是没有范围的。
自然语言包括:——剔除:信息过滤。
——变形:信息修改。
——泛化:创建关于真理和谬论的规则、信念和原理。
第四章用例建模用例建模是需求工程的另一种形式。
步骤如下:——找出系统边缘。
——找出参与者。
——找出用例。
参与者是系统外部事物所扮演的角色,它直接同系统进行交互。
——通过考虑谁或者什么使用系统或直接同系统交互,你能找到参与者。
——时间常常作为参与者。
用例是系统对于参与者执行的并且给参与者提供有益的功能。
用例图表示:——系统边界。
——参与者。
——用例。
——交互。
用例规格说明包括:——用例名称。
——唯一标识符。
——前置条件:影响用例执行的系统约束。
——事件流:用例中陈述性、按时间排序的步骤序列。
——后置条件:用例执行引发的系统约束。
用例建模对于这些系统最合适:——系统由功能需求所主导。
——具有很多类型的用户。
——具有与其他系统的很多借口。
用例建模对于这些系统最不合适:——系统由非功能性需求所主导。
——只有很少用户。
——只有很少接口。
附录:BOMG Unified Modeling Language SpecificationPreface0.1 About the Unified Modeling Language (UML)The Unified Modeling Language (UML) provides system architects working on object analysis and design with one consistent language for specifying, visualizing, constructing, and documenting the artifacts of software systems, as well as for business modeling.This specification represents the convergence of best practices in the object-technology industry. UML is the proper successor to the object modeling languages of three previously leading object-oriented methods (Booch, OMT, and OOSE). The UML is the union of these modeling languages and more, since it includes additional expressiveness to handle modeling problems that these methods did not fully address.One of the primary goals of UML is to advance the state of the industry by enabling object visual modeling tool interoperability. However, in order to enable meaningful exchange of model information between tools, agreement on semantics and notation is required. UML meetsthe following requirements:• Formal definition of a common object analysis and design (OA&D) metamodel to represent the semantics of OA&D models, which include static models, behavioral models, usage models, and architectural models.•IDL specifications for mechanisms for model interchange between OA&D tools. This document includes a set of IDL interfaces that support dynamic construction and traversal of a user model.• A human-readable notation for representing OA&D models. This document defines theUML notation, an elegant graphic syntax for consistently expressing the UML’s rich semantics. Notation is an essential part of OA&D modeling and the UML.0.2 About the Object Management Group (OMG)The Object Management Group, Inc. (OMG) is an international organization supported by over 800 members, including information system vendors, software developers and users. Founded in 1989, the OMG promotes the theory and practice of object-oriented technology in software development. The organization's charter includes the establishment of industry guidelines and object management specifications to provide a common framework for application development. Primary goals are the reusability, portability, and interoperability of object-based software in distributed, heterogeneous environments. Conformance to these specifications will make it possible to develop a heterogeneous applications environment across all major hardware platforms and operating systems.OMG's objectives are to foster the growth of object technology and influence its direction by establishing the Object Management Architecture (OMA). The OMA provides the conceptual infrastructure upon which all OMG specifications are based.Contact the Object Management Group, Inc. at:OMG Headquarters492 Old Connecticut PathFramingham, MA 01701USATel: +1-508-820 4300Fax: +1-508-820 4303pubs@OMG’s adoption of the UML specification reduces the degree of confusion within the industry surrounding modeling languages. It settles unproductive arguments about methodnotations and model interchange mechanisms and allows the industry to focus on higher leverage, more productive activities. Additionally, it enables semantic interchange between visual modeling tools.0.3 About This DocumentThis document is intended primarily as a precise and self-consistent definition of the UML’s semantics and notation. The primary audience of this document consists of the Object Management Group, standards organizations, book authors, trainers, and tool builders. The authors assume familiarity with object-oriented analysis and design methods. The document isnot written as an introductory text on building object models for complex systems, although itcould be used in conjunction with other materials or instruction. The document will become more approachable to a broader audience as additional books, training courses, and tools that apply to UML become available.The Unified Modeling Language specification defines compliance to the UML, covers the architectural alignment with other technologies, and is comprised of the following topics: UML Summary (Chapter 1) - provides an introduction to the UML, discussing motivation and history.UML Semantics (Chapter 2) - defines the semantics of the Unified Modeling Language. The UML is layered architecturally and organized by packages. Within each package, the model elements are defined in the following terms:UML Notation Guide (Chapter 3) - specifies the graphic syntax for expressing the semantics described by the UML metamodel. Consequently, the UML Notation Guide’s chapter should be read in conjunction with the UML Semantics chapter.UML Standard Profiles (Chapter 4) - defines the UML Profile for Software Development Processes and the UML Profile for Business Modeling.UML CORBAfacility Interface Definition (Chapter 5) - uses CORBA IDL to specify a repository that enables the creation, storage and manipulation of UML models.UML XMI DTD Specification (Chapter 6) - uses XML DTD to define a physical mechanism for interchanging UML models that conform to the UML metamodel.Object Constraint Language Specification (Chapter 7) - defines the Object Constraint Language (OCL) syntax, semantics, and grammar. All OCL features are described in terms of concepts defined in the UML Semantics.In addition, there is appendix of Standard Elements that defines standard stereotypes, constraints and tagged values for UML, and a glossary of terms.0.3.1 Dependencies Between ChaptersUML Semantics (Chapter 2) can stand on its own, relative to the others, with the exception of the OCL Specification. The semantics depends upon OCL for the specification of its wellformedness rules.The UML Notation Guide, UML CORBAfacility Interface Definition and UML XMIDTD Specification all depend on the UML Semantics. Specifying these as separate standards will permit their evolution in the most flexible way, even though they are not completely independent.The specifications in the UML Standard Profiles depend on both the notation and semantics chapters.1. Abstract syntax UML class diagrams are used to present the UML metamodel, its concepts (metaclasses), relationships, and constraints. Definitions of the concepts are included.2. Well-formedness rules The rules and constraints on valid models are defined. The rules are expressed in English prose and in a precise Object Constraint Language (OCL). OCL is a specification language that uses logic for specifying invariant properties of systems comprising sets and relationships between sets.3. Semantics The semantics of model usage are described in English prose.0.4 Compliance to the UMLThe UML and corresponding facility interface definition are comprehensive. However, these specifications are packaged so that subsets of the UML and facility can be implemented without breaking the integrity of the language. The UML Semantics is packaged as follows:This packaging shows the semantic dependencies between the UML model elements in the different packages. The IDL in the facility is packaged almost identically. The notation is also “packaged” along the lines of diagram type. Compliance of the UML is thus defined along the lines of semantics, notation, and IDL.Even if the compliance points are decomposed into more fundamental units, vendors implementing UML may choose not to fully implement this packaging of definitions, while still faithfully implementing some of the UML definitions. However, vendors who want to precisely declare their compliance to UML should refer to the precise language defined herein, and not loosely say they are “UML compliant.”0.4.1 Compliance to the UML SemanticsThe basic units of compliance are the packages defined in the UML metamodel. The full metamodel includes the corresponding semantic rigor defined in the UML Semanticschapter of this specification.The class diagram illustrates the package dependencies, which are also summarized in the table.Complying with a package requires complying with the prerequisite package.The semantics are defined in an implementation language-independent way. An implementation of the semantics, without consistent interface and implementation choices, does not guarantee tool interoperability. See the OA&D CORBAfacility Interface Definition (Chapter 5).In addition to the above packages, compliance to a given metamodel package must load or know about the predefined UML standard elements (i.e., values for all predefined stereotypes, tags, and constraints). These are defined throughout the semantics and notation documents and summarized in the UML Standard Elements appendix. The predefined constraint values must be enforced consistent with their definitions. Having tools know about the standard elements is necessary for the full language and to avoid the definition of user-defined elements that conflict with the standard UML elements. Compliance to theUML Standard Elements and UML Standard Profiles is distinct from the UML Semantics, so not all tools need to know about the UML Standard Elements and UML Standard Profiles.For any implementation of UML, it is optional that the tool implements the Object Constraint Language. A vendor conforming to OCL support must support the following: • Validate and store syntactically correct OCL expressions as values for UML data types. • Be able to perform a full type check on the object constraint expression. This check will test whether all features used in the expression are actually defined in the UML model and used correctly. All tools conforming to the UML semantics are expected to conform to the following aspects of the semantics:• abstract syntax (i.e., the concepts, valid relationships, and constraints expressed in the corresponding class diagrams),• well-formedness rules, and• semantics of model usage.However, vendors are expected to apply some discretion on how strictly thewell-formedness rules are enforced. Tools should be able to report on well-formedness violations, but not necessarily force all models to be well formed. Incomplete models are common during certain phases of the development lifecycle, so they should be permitted. See the OA&D CORBAfacility Interface Definition (Chapter 5 of this specification) for its treatment of well-formedness exception handling, as an example of a technique to report well-formedness violations.0.4.2 Compliance to the UML NotationThe UML notation is an essential element of the UML to enable communication between team members. Compliance to the notation is optional, but the semantics are not very meaningful without a consistent way of expressing them.Notation compliance is defined along the lines of the UML Diagrams types: use case, class, statechart, activity graph, sequence, collaboration, component, and deploymentdiagrams.If the notation is implemented, a tool must enforce the underlying semantics and maintain consistency between diagrams if the diagrams share the same underlying model. By this definition, a simple "drawing tool" cannot be compliant to the UML notation.There are many optional notation adornments. For example, a richly adorned class icon may include an embedded stereotype icon, a list of properties (tagged values and metamodel attributes), constraint expressions, attributes with visibilities indicated, and operations with full signatures. Complying with class diagram support implies the ability to support all of the associated adornments.Compliance to the notation in the UML Standard Profiles is described separately.0.4.3 Compliance to the UML Standard ProfilesVendors should specify whether they support each of the UML Standard Profiles or not.Compliance to a profile means knowledge and enforcement of the semantics and corresponding notation.0.4.4 Compliance to the UML CORBAfacility Interface DefinitionThe IDL modules defined in the UML CORBAfacility parallel the packages in the semantic metamodel. The exception to this is that DataTypes and Extension Mechanisms have been merged in with the core for the facility. Except for this, a CORBAfacility implementing the interface modules has the same compliance point options as described in “Compliance to the UML Semantics” listed above.0.4.5 Compliance to the UML XMI DTD SpecificationThe DTD defined in the UML XMI DTD Specification parallel the packages in the semantic metamodel. The exception to this is that DataTypes and Extension Mechanisms have been merged in with the core for the facility. Except for this, an implementation of the XMI DTD has the same compliance point options as described in “Compliance to the UML Semantics” listedabove.0.5 AcknowledgementsThe UML was crafted through the dedicated efforts of individuals and companies who find UML strategic to their future. This section acknowledges the efforts of these individuals who contributed to defining UML.UML Core TeamThe following persons were members of the core development team for the UML proposal or served on the UML Revision Task Force:Data Access Corporation: Tom DigreElectronic Data Systems Corporation: Cris Kobryn, Joaquin MillerEnea Data: Karin PalmkvistHewlett-Packard Company: Martin GrissIBM Corporation: Steve Brodsky, Steve Cook, Jos WarmerI-Logix: Eran Gery, David HarelICON Computing: Desmond D’SouzaIntelliCorp and James Martin & Co.: Conrad Bock, James OdellOAO Technology Solutions: Ed SeidewitzObjecTime Limited: John Hogg, Bran SelicOracle Corporation: Guus RamackersPLATINUM Technology Inc.: Dilhar DeSilvaRational Software: Grady Booch, Ed Eykholt, Ivar Jacobson, Gunnar Overgaard, Jim RumbaughSAP: Oliver WiegertSOFTEAM: Philippe DesfraySterling Software: John Cheesman, Keith ShortTaskon: Trygve ReenskaugUnisys Corporation: Sridhar Iyengar, GK KhalsaUML 1.1 Semantics Task ForceDuring the final submission phase, a team was formed to focus on improving the formality of the UML 1.0 semantics, as well as incorporating additional ideas from the partners. Under the leadership of Cris Kobryn, this team was very instrumental in reconciling diverse viewpoints into a consistent set of semantics, as expressed in the revised UML Semantics. Other members of this team were Dilhar DeSilva, Martin Griss, Sridhar Iyengar, Eran Gery, James Odell, Gunnar Overgaard, Karin Palmkvist, Guus Ramackers, Bran Selic, and Jos Warmer. Grady Booch, Ivar Jacobson, and Jim Rumbaugh also provided their expertise to the team.UML Revision Task ForceAfter the adoption of the UML 1.1 proposal by the OMG membership in November, 1997, the OMG chartered a revision task force (RTF) to deal with bugs, inconsistencies, and other problems that could be handled without greatly expanding the scope of the original proposal. The RTF accepted public comments submitted to the OMG after adoption of the proposal. This document containing UML version 1.3 is the result of the work of the UML RTF. The results have been issued in several preliminary versions with minor changes expected in the final version. If you have a preliminary version of the specification, you can obtain an updated version from the OMG web site at .Contributors and SupportersWe also acknowledge the contributions, influence, and support of the following individuals. Jim Amsden, Hernan Astudillo, Colin Atkinson, Dave Bernstein, Philip A. Bernstein, Michael Blaha, Mike Bradley, Ray Buhr, Gary Cernosek, James Cerrato, Michael Jesse Chonoles, Magnus Christerson, Dai Clegg, Peter Coad, Derek Coleman, Ward Cunningham, Raj Datta, Mike Devlin, Philippe Desfray, Bruce Douglass, Staffan Ehnebom, Maria Ericsson, Johannes Ernst, Don Firesmith, Martin Fowler, Adam Frankl, Eric Gamma,Dipayan Gangopadhyay, Garth Gullekson, Rick Hargrove, Tim Harrison, Richard Helm, Brian Henderson-Sellers, Michael Hirsch, Bob Hodges, Glenn Hollowell, Yves Holvoet, Jon Hopkins, John Hsia, Ralph Johnson, Stuart Kent, Anneke Kleppe, Philippe Kruchten, Paul Kyzivat, Martin Lang, Grant Larsen, Reed Letsinger, Mary Loomis, Jeff MacKay, Bev Macmaster, Robert Martin, Terrie McDaniel, Jim McGee, Bertrand Meyer, Mike Meier, Randy Messer, Greg Meyers, Fred Mol, Luis Montero, Paul Moskowitz, Andy Moss, Jan Pachl, Paul Patrick, Woody Pidcock, Bill Premerlani, Jeff Price, Jerri Pries, Terry Quatrani, Mats Rahm, George Reich, Rich Reitman, Rudolf M. Riess, Erick Rivas, Kenny Rubin, Bernhard Rumpe, Jim Rye, Danny Sabbah, Tom Schultz, Gregson Siu, Jeff Sutherland, Dan Tasker, Dave Tropeano, Andy Trice, Dan Uhlar, John Vlissides, Larry Wall, Paul Ward, Oliver Wiegert, Alan Wills, Rebecca Wirfs-Brock, Bryan Wood, Ed Yourdon, and Steve Zeigler.。