《软件工程》第7章 统一建模语言
1.简述统一建模语言
简述统一建模语言
统一建模语言(UML):是一种用于对软件密集系统进行可视化建模的标准语言。
它始于1997年,被采纳为OMG标准,是一种非专利的第三代建模和规约语言。
UML独立于任何具体程序设计语言,是面向对象设计的建模工具。
UML为面向对象开发系统的产品进行说明、可视化和编制文档,展现了一系列最佳工程实践,这些实践在对大规模、复杂系统进行建模方面已经被验证有效。
UML可以贯穿软件开发周期中的每一个阶段,从需求分析到规格,到构造和配置。
UML表示法集中了不同的图形表示方法,剔除了其中容易引起的混淆、冗余或者很少使用的符号,同时添加了一些新的符号。
其中的概念来自于面向对象技术领域中众多专家的思想。
总的来说,UML作为一种模型语言,使开发人员专注于建立产品的模型和结构,而不是选用什么程序语言和算法实现。
当模型建立之后,模型可以被UML 工具转化成指定的程序语言代码。
统一建模语言
统一建模语言统一建模语言(UML)是一种定义良好、易于表达、功能强大且普遍适用的建模语言。
它融入了软件工程领域的新思想、新方法和新技术。
它的作用域不限于支持面向对象的分析与设计,还支持从需求分析开始的软件开发的全过程。
1.UML的结构UML的结构包括基本构造块、支配这些构造块如何放在一起的规则(体系架构)和一些运用于整个UML的机制。
(1)构造块。
UML有三种基本的构造块,分别是事物(thing)、关系(relationship)和图(diagram)。
事物是UML中重要的组成部分,关系把事物紧密联系在一起,图是很多有相互相关的事物的组。
(2)公共机制。
公共机制是指达到特定目标的公共UML方法,主要包括规格说明(详细说明)、修饰、公共分类(通用划分)和扩展机制四种。
●规格说明:规格说明是事物语义的文本描述,它是模型真正的核心。
●修饰:UML为每一个事物设置了一个简单的记号,还可以通过修饰来表达更多的信息。
●公共分类:包括类元与对象(类表示概念,而对象表示具体的实体)、接口和实现(接口用来定义契约,而实现就是具体的内容)两组公共分类。
●扩展机制:包括约束(添加新规则来扩展事物的语义)、构造型(用于定义新的事物)、标记值(添加新的特殊信息来扩展事物的规格说明)。
(3)规则。
UML用于描述事物的语义规则分别是为事物、关系和图命名。
给一个名字以特定含义的语境,即范围;怎样使用或看见名字,即可见性;事物如何正确、一致地相互联系,即完整性;运行或模拟动态模型的含义是什么,即执行。
UML对系统架构的定义是系统的组织结构,包括系统分解的组成部分、它们的关联性、交互、机制和指导原则等这些提供系统设计的信息。
而具体来说,就是指5个系统视图,分别是逻辑视图、进程视图、实现视图、部署视图和用例视图。
●逻辑视图:以问题域的语汇组成的类和对象集合。
●进程视图:可执行线程和进程作为活动类的建模,它是逻辑视图的一次执行实例,描绘了所设计的并发与同步结构。
UML统一建模语言
统一建模语言Unified Modeling Language,5类、13种视图第一部分UML概述为什么建模?1、在一个现代化的工程中,人们要相互沟通和合作,就必须使用标准的工业化设计语言,用这些语言来对开发产品进行建模。
2、在实际的软件开发过程中,现实世界的复杂性以致用户经常不能精确地理解和描述将要开发的软件系统,建模可以使用户更好地理解需要开发的系统。
3、建模是开发优秀软件的所有活动中最核心的部分,其目的是把所要设计的结构和系统的行为联系起来,并对系统的体系结构进行可视化和控制。
4、建模过程把复杂的问题分解成为易于理解的小问题,以达到问题的求解。
UML定义1、UML是用于描绘软件蓝图的标准语言。
2、UML是一种语言,也就意味着它有属于自己的标准表达规则。
它不是一种类似Java、C++的编程语言,而是一种分析设计语言,也就是一种建模语言。
3、UML是由图形符号表达的建模语言。
UML能做什么?制造业、医疗卫生、军事领域......图示:要学UML吗?你应该使用UML吗?是!旧的面向对象符号正在快速消失,新的书、文章将全部采用UML 作为符号。
如果你正要开始使用建模符号,你就该直接学习UML。
--Martin FowlerUML 五大类、13种视图五大类视图:1、用户视图:以用户的观点表示系统的目标,它是所有视图的核心,该视图描述系统的需求。
2、结构视图:表示系统的静态行为,描述系统的静态元素如包、类与对象,以及它们之间的关系。
3、行为视图:表示系统的动态行为,描述系统的组成元素如对象在系统运行时的交互关系。
4、实现视图:表示系统中逻辑元素的分布,描述系统中物理文件以及它们之间的关系。
5、环境视图:表示系统中物理元素的分布,描述系统中硬件设备以及它们之间的关系。
UML 2.0的十三种图:1、用例图(用户视图)2、类图(结构视图)3、对象图(结构视图)4、包图(结构视图,UML2.0)5、组合结构图(结构视图,UML2.0)6、时序图(行为视图)7、通信图(行为视图,UML1.0 协作图)8、定时图(行为视图,UML2.0)9、状态图(行为视图)10、活动图(行为视图)11、交互概览图(行为视图,UML2.0)12、组件图(实现视图)13、部署图(环境视图)第二部分UML需求建模用户视图1种视图以用户的观点表示系统的目标,它是所有视图的核心,该视图描述系统的需求。
什么是统一建模语言(UML)?
什么是统一建模语言(UML)?UML是统一建模语言的缩写,是一种标准化建模语言,由一组集成的图表组成,它开发来帮助系统和软件开发人员指定、可视化、构建和记录软件系统的工件,以及业务建模和其他非软件系统。
UML代表了在大型和复杂系统建模中已被证明是成功的最佳工程实践的集合。
UML是开发面向对象软件和软件开发过程中非常重要的一部分。
UML 主要使用图形符号来表示软件项目的设计。
使用UML帮助项目团队沟通,探索潜在的设计,并验证软件的体系结构设计。
在本文中,我们将向您详细介绍UML是什么、UML的历史以及每个UML图类型的描述,以及UML示例。
What is Unified Modeling Language (UML)?UML, short for Unified Modeling Langung of an integrated set of diagrams, developed to help system and software developers for specifying, visualizing, constructing, and documenting the artifacts of software systems, as well as for business modeling and other non-software systems. The UML represents a collection of best engineering practices that have proven successful in the modeling of large and complex systems. The UML is a very important part of developing object oriented software and the software development process. The UML uses mostly graphical notations to express the design of software projects. Using the UML helps project teams communicate, explore potential designs, and validate the architectural design of the software. In this article we will give you detailed ideas about what is UML, the history of UML and a description of each UML diagram type, along with UML examples.The Origin of UMLThe goal of UML is to provide a standard notation that can be used by all object-oriented methods and to select and integrate the best elements of precursor notations. UML has been designed for a broad range of applications. Hence, it provides constructs for a broad range of systems and activities (e.g., distributed systems, analysis, system design and deployment).UML is a notation that resulted from the unification of OMT from1.Object Modeling T echnique OMT [James Rumbaugh 1991] - was best for analysis and data-intensive information systems.2.Booch [Grady Booch 1994] - was excellent for design and implementation. Grady Booch had worked extensively with the Ada language, and had been a major player in the development of Object Oriented techniques for the language. Although the Booch method was strong, the notation was less well received (lots of cloud shapes dominated his models - not very tidy)3.OOSE (Object-Oriented Software Engineering [Ivar Jacobson 1992]) - featured a model known as Use Cases. Use Cases are a powerful technique for understanding the behaviour of an entire system (an area where OO has traditionally been weak).In 1994, Jim Rumbaugh, the creator of OMT, stunned the software world when he left General Electric and joined Grady Booch at Rational Corp. The aim of the partnership was to merge their ideas into a single, unified method (the working title for the method was indeed the "Unified Method").By 1995, the creator of OOSE, Ivar Jacobson, had also joined Rational, and his ideas (particularly the concept of "Use Cases")were fed into the new Unified Method - now called the Unified Modelling Language1. The team of Rumbaugh, Booch and Jacobson are affectionately known as the "Three Amigos"UML has also been influenced by other object-oriented notations:•Mellor and Shlaer [1998]•Coad and Yourdon [1995]•Wirfs-Brock [1990]•Martin and Odell [1992]UML also includes new concepts that were not present in other major methods at the time, such as extension mechanisms and a constraint language.History of UML1.During 1996, the first Request for Proposal (RFP) issued by the Object Management Group (OMG) provided the catalyst for these organizations to join forces around producing a joint RFP response.2.Rational established the UML Partners consortium with several organizations willing to dedicate resources to work toward a strong UML 1.0 definition. Those contributing most to the UML 1.0 definition included:o Digital Equipment Corpo HPo i-Logixo IntelliCorpo IBMo ICON Computingo MCI Systemhouseo Microsofto Oracleo Rational Softwareo TIo Unisys3.This collaboration produced UML 1.0, a modeling language that was well-defined, expressive, powerful, and generally applicable. This was submitted to the OMG in January 1997 as an initial RFP response.14.In January 1997 IBM, ObjecTime, Platinum Technology, Ptech, Taskon, Reich Technologies and Softeam also submitted separate RFP responses to the OMG. These companies joined the UML partners to contribute their ideas, and together the partners produced the revised UML 1.1 response. The focus of the UML 1.1 release was to improve the clarity of the UML 1.0 semantics and to incorporate contributions from the new partners. It was submitted to the OMG for their consideration and adopted in the fall of 1997.1 and enhanced 1.1 to 1.5, and subsequently to UML 2.1 from 01 to 06 (now the UML current version is 2.5)Why UMLAs the strategic value of software increases for many companies, the industry looks for techniques to automate the production of software and to improve quality and reduce cost and time-to-market. These techniques include componenttechnology, visual programming, patterns and frameworks. Businesses also seek techniques to manage the complexity of systems as they increase in scope and scale. In particular, they recognize the need to solve recurring architectural problems, such as physical distribution, concurrency, replication, security, load balancing and fault tolerance. Additionally, the development for the World Wide Web, while making some things simpler, has exacerbated these architectural problems. The Unified Modeling Language (UML) was designed to respond to these needs. The primary goals in the design of the UML summarize by Page-Jones in Fundamental Object-Oriented Design in UML as follows:1.Provide users with a ready-to-use, expressive visual modeling language so they can develop and exchange meaningful models.2.Provide extensibility and specialization mechanisms to extend the core concepts.3.Be independent of particular programming languages and development processes.4.Provide a formal basis for understanding the modeling language.5.Encourage the growth of the OO tools market.6.Support higher-level development concepts such as collaborations, frameworks, patterns and components.7.Integrate best practices.UML - An OverviewBefore we begin to look at the theory of the UML, we are going to take a very brief run through some of the major concepts of the UML.The first thing to notice about the UML is that there are a lot of different diagrams (models) to get used to. The reason for thisis that it is possible to look at a system from many different viewpoints. A software development will have many stakeholders playing a part.For Example:•Analysts•Designers•Coders•Testers•QA•The Customer•Technical AuthorsAll of these people are interested in different aspects of the system, and each of them require a different level of detail. For example, a coder needs to understand the design of the system and be able to convert the design to a low level code. By contrast, a technical writer is interested in the behavior of the system as a whole, and needs to understand how the product functions. The UML attempts to provide a language so expressive that all stakeholders can benefit from at least one UML diagram.Here's a quick look at each one of these 13 diagrams in as shown in the UML 2 Diagram Structure below:Structure diagrams show the static structure of the system and its parts on different abstraction and implementation levels and how they are related to each other. The elements in a structure diagram represent the meaningful concepts of a system, and may include abstract, real world and implementation concepts, there are seven types of structure diagram as follows:•Class Diagram•Component Diagram•Deployment Diagram•Object Diagram•Package Diagram•Composite Structure Diagram•Profile DiagramBehavior diagrams show the dynamic behavior of the objects in a system, which can be described as a series of changes to the system over time, there are seven types of behavior diagrams as follows:•Use Case Diagram•Activity Diagram•State Machine Diagram•Sequence Diagram•Communication Diagram•Interaction Overview Diagram•Timing DiagramWhat is a Class Diagram?The class diagram is a central modeling technique that runs through nearly all object-oriented methods. This diagram describes the types of objects in the system and various kinds of static relationships which exist between them.RelationshipsThere are three principal kinds of relationships which areimportant:1.Association - represent relationships between instances of types (a person works for a company, a company has a number of offices.2.Inheritance - the most obvious addition to ER diagrams for use in OO. It has an immediate correspondence to inheritance in OO design.3.Aggregation - Aggregation, a form of object composition in object-oriented design.Class Diagram ExampleWhat is Component Diagram?In the Unified Modeling Language, a component diagram depicts how components are wired together to form larger components or software systems. It illustrates the architectures of the software components and the dependencies between them. Those software components including run-time components, executable components also the source code components.Component Diagram ExampleWhat is a Deployment Diagram?The Deployment Diagram helps to model the physical aspect of an Object-Oriented software system. It is a structure diagram which shows architecture of the system as deployment (distribution) of software artifacts to deployment targets. Artifacts represent concrete elements in the physical world that are the result of a development process. It models the run-time configuration in a static view and visualizes the distribution of artifacts in an application. In most cases, it involves modeling the hardware configurations together with the software components that lived on.Deployment Diagram ExampleWhat is an Object Diagram?An object diagram is a graph of instances, including objects and data values. A static object diagram is an instance of a class diagram; it shows a snapshot of the detailed state of a system at a point in time. The difference is that a class diagram represents an abstract model consisting of classes and their relationships. However, an object diagram represents an instance at a particular moment, which is concrete in nature. The use of object diagrams is fairly limited, namely to show examples of data structure.Class Diagram vs Object Diagram - An ExampleSome people may find it difficult to understand the difference between a UML Class Diagram and a UML Object Diagram as they both comprise of named "rectangle blocks", with attributes in them, and with linkages in between, which make the two UML diagrams look similar. Some people may even think they are the same because in the UML tool they use both the notations for Class Diagram and Object Diagram are put inside the same diagram editor - Class Diagram.But in fact, Class Diagram and Object Diagram represent two different aspects of a code base. In this article, we will provide you with some ideas about these two UML diagrams, what they are, what are their differences and when to use each of them.Relationship between Class Diagram and Object Diagram You create "classes" when you are programming. For example, in an online banking system you may create classes like 'User', 'Account', 'Transaction', etc. In a classroom management system you may create classes like 'Teacher', 'Student', 'Assignment', etc. In each class, there are attributes and operations that represent the characteristic and behavior of the class. Class Diagram is a UML diagram where you can visualize those classes, along with their attributes, operations and theinter-relationship.UML Object Diagram shows how object instances in your system are interacting with each other at a particular state. It also represents the data values of those objects at that state. In other words, a UML Object Diagram can be seen as a representation of how classes (drawn in UML Class Diagram) are utilized at a particular state.If you are not a fan of those definition stuff, take a look at the following UML diagram examples. I believe that you will understand their differences in seconds.Class Diagram ExampleThe following Class Diagram example represents two classes - User and Attachment. A user can upload multiple attachment so the two classes are connected with an association, with 0..* as multiplicity on the Attachment side.Object Diagram ExampleThe following Object Diagram example shows you how the object instances of User and Attachment class "look like" at the moment Peter (i.e. the user) is trying to upload two attachments. So there are two Instance Specification for the two attachment objects to be uploaded.What is a Package Diagram?Package diagram is UML structure diagram which shows packages and dependencies between the packages. Modeldiagrams allow to show different views of a system, for example, as multi-layered (aka multi-tiered) application - multi-layered application model.Package Diagram ExampleWhat is a Composite Structure Diagram?Composite Structure Diagram is one of the new artifacts added to UML 2.0. A composite structure diagram is similar to a class diagram and is a kind of component diagram mainly used in modeling a system at micro point-of-view, but it depicts individual parts instead of whole classes. It is a type of static structure diagram that shows the internal structure of a class and the collaborations that this structure makes possible.This diagram can include internal parts, ports through which the parts interact with each other or through which instances of the class interact with the parts and with the outside world, and connectors between parts or ports. A composite structure is a set of interconnected elements that collaborate at runtime to achieve some purpose. Each element has some defined role in the collaboration.Composite Structure Diagram ExampleWhat is a Profile Diagram?A profile diagram enables you to create domain and platform specific stereotypes and define the relationships between them. You can create stereotypes by drawing stereotype shapes and relate them with composition or generalization through the resource-centric interface. You can also define and visualize tagged values of stereotypes.Profile Diagram ExampleWhat is a Use Case Diagram?A use-case model describes a system's functional requirements in terms of use cases. It is a model of the system's intended functionality (use cases) and its environment (actors). Use cases enable you to relate what you need from a system to how the system delivers on those needs.Think of a use-case model as a menu, much like the menu you'd find in a restaurant. By looking at the menu, you knowwhat's available to you, the individual dishes as well as their prices. You also know what kind of cuisine the restaurant serves: Italian, Mexican, Chinese, and so on. By looking at the menu, you get an overall impression of the dining experience that awaits you in that restaurant. The menu, in effect, "models" the restaurant's behavior.Because it is a very powerful planning instrument, the use-case model is generally used in all phases of the development cycle by all team members.Use Case Diagram ExampleWhat is an Activity Diagram?Activity diagrams are graphical representations of workflows of stepwise activities and actions with support for choice, iteration and concurrency. It describes the flow of control of the target system, such as the exploring complex business rules and operations, describing the use case also the business process. In the Unified Modeling Language, activity diagrams are intended to model both computational and organizational processes (i.e. workflows).Activity Diagram ExampleWhat is a State Machine Diagram?A state diagram is a type of diagram used in UML to describe the behavior of systems which is based on the concept of state diagrams by David Harel. State diagrams depict the permitted states and transitions as well as the events that effect these transitions. It helps to visualize the entire lifecycle of objects and thus help to provide a better understanding of state-based systems.State Machine Diagram ExampleWhat is a Sequence Diagram?The Sequence Diagram models the collaboration of objects based on a time sequence. It shows how the objects interact with others in a particular scenario of a use case. With the advanced visual modeling capability, you can create complex sequence diagram in few clicks. Besides, some modeling tool such as Visual Paradigm can generate sequence diagram from the flow of events which you have defined in the use case description.Sequence Diagram ExampleWhat is a Communication Diagram?Similar to Sequence Diagram, the Communication Diagram is also used to model the dynamic behavior of the use case. When compare to Sequence Diagram, the Communication Diagram is more focused on showing the collaboration of objects rather than the time sequence. They are actually semantically equivalent, so some of the modeling tool such as, Visual Paradigm allowsyou to generate it from one to the other.Communication Diagram ExampleWhat is Interaction Overview Diagram?The Interaction Overview Diagram focuses on the overview of the flow of control of the interactions. It is a variant of the Activity Diagram where the nodes are the interactions or interaction occurrences. The Interaction Overview Diagram describes the interactions where messages and lifelines are hidden. You can link up the "real" diagrams and achieve high degree navigability between diagrams inside the Interaction Overview Diagram.Interaction Overview Diagram ExampleWhat is Timing Diagram?Timing Diagram shows the behavior of the object(s) in a given period of time. Timing diagram is a special form of a sequence diagram. The differences between timing diagram and sequence diagram are the axes are reversed so that the time are increase from left to right and the lifelines are shown in separate compartments arranged vertically.Timing Diagram ExampleUML Glossary and Terms•Abstract Class - A class that will never be instantiated. An instance of this class will never exist.•Actor - An object or person that initiates events the system is involved with.•Activity: A step or action within an Activity Diagram. Represents an action taken by the system or by an Actor.•Activity Diagram: A glorified flowchart that shows the steps and decisions and parallel operations within a process, such as an algorithm or a business process.•Aggregation - Is a part of another class. Shown with a hollow diamond next to the containing class in diagrams.•Artifacts - Documents describing the output of a step in the design process. The description is graphic, textual, or some combination.•Association - A connection between two elements of a Model. This might represent a member variable in code, or theassociation between a personnel record and the person it represents, or a relation between two categories of workers, or any similar relationship. By default, both elements in an Association are equal, and are aware of each other through the Association. An Association can also be a Navigable Association, meaning that the source end of the association is aware of the target end, but not vice versa.•Association Class: A Class that represents and adds information to the Association between two other Classes.•Attributes - Characteristics of an object which may be used to reference other objects or save object state information.•Base Class: A Class which defines Attributes and Operations that are inherited by a Subclass via a Generalization relationship.•Branch: A decision point in an Activity Diagram. Multiple Transitions emerge from the Branch, each with a Guard Condition. When control reaches the Branch, exactly one Guard Condition must be true; and control follows the corresponding Transition.•Class: A category of similar Objects, all described by the same Attributes and Operations and all assignment-compatible.•Class Diagram - Shows the system classes and relationships between them.•Classifier: A UML element that has Attributes and Operations. Specifically, Actors, Classes, and Interfaces.•Collaboration: A relation between two Objects in a Communication Diagram, indicating that Messages can pass back and forth between the Objects.•Communication Diagram - A diagram that shows how operations are done while emphasizing the roles of objects.•Component: A deployable unit of code within the system.•Component Diagram: A diagram that shows relations between various Components and Interfaces.•Concept - A noun or abstract idea to be included in a domain model.•Construction Phase - The third phase of the Rational Unified Process during which several iterations of functionality are built into the system under construction. This is where the main work is done.•Dependence: A relationship that indicates one Classifier knows the Attributes and Operations of another Classifier, but isn't directly connected to any instance of the second Classifier.•Deployment Diagram: A diagram that shows relations between various Processors.•Domain -The part of the universe that the system is involved with.•Elaboration Phase - The second phase of the Rational Unified Process that allows for additional project planning including the iterations of the construction phase.•Element: Any item that appears in a Model.•Encapsulation - Data in objects is private.•Generalization - Indicates that one class is a subclass on another class (superclass). A hollow arrow points to the superclass.•Event: In a State Diagram, this represents a signal or event or input that causes the system to take an action or switch States.•Final State: In a State Diagram or an Activity Diagram, this indicates a point at which the diagram completes.•Fork: A point in an Activity Diagram where multiple parallel control threads begin.•Generalization: An inheritance relationship, in which aSubclass inherits and adds to the Attributes and Operations of a Base Class.•GoF - Gang of Four set of design patterns.•High Cohesion - A GRASP evaluative pattern which makes sure the class is not too complex, doing unrelated functions.•Low Coupling - A GRASP evaluative pattern which measures how much one class relies on another class or is connected to another class.•Inception Phase - The first phase of the Rational Unified Process that deals with the original conceptualization and beginning of the project.•Inheritance - Subclasses inherit the attributes or characterics of their parent (superclass) class. These attributes can be overridden in the subclass.•Initial State: In a State Diagram or an Activity Diagram, this indicates the point at which the diagram begins.•Instance - A class is used like a template to create an object. This object is called an instance of the class. Any number of instances of the class may be created.•Interface: A Classifier that defines Attributes and Operations that form a contract for behavior. A provider Class or Component may elect to Realize an Interface (i.e., implement its Attributes and Operations). A client Class or Component may then Depend upon the Interface and thus use the provider without any details of the true Class of the provider.•Iteration - A mini project section during which some small piece of functionality is added to the project. Includes the development loop of analysis, design and coding.•Join: A point in an Activity Diagram where multiple parallel control threads synchronize and rejoin.•Member: An Attribute or an Operation within a Classifier.•Merge: A point in an Activity Diagram where different control paths come together.•Message - A request from one object to another asking the object receiving the message to do something. This is basically a call to a method in the receiving object.•Method - A function or procedure in an object.•Model - The central UML artifact. Consists of various elements arranged in a hierarchy by Packages, with relations between elements as well.•Multiplicity - Shown in a domain model and indicated outside concept boxes, it indicates object quantity relationship to quantiles of other objects.•Navigability: Indicates which end of a relationship is aware of the other end. Relationships can have bidirectional Navigability (each end is aware of the other) or single directional Navigability (one end is aware of the other, but not vice versa).•Notation - Graphical document with rules for creating analysis and design methods.•Note: A text note added to a diagram to explain the diagram in more detail.•Object - Object: In an Activity Diagram, an object that receives information from Activities or provides information to Activities. In a Collaboration Diagram or a Sequence Diagram, an object that participates in the scenario depicted in the diagram. In general: one instance or example of a given Classifier (Actor, Class, or Interface).•Package - A group of UML elements that logically should be grouped together.•Package Diagram: A Class Diagram in which all of theelements are Packages and Dependencies.•Pattern - Solutions used to determine responsibility assignment for objects to interact. It is a name for a successful solution to a well-known common problem.•Parameter: An argument to an Operation.•Polymorphism - Same message, different method. Also used as a pattern.•Private: A Visibility level applied to an Attribute or an Operation, indicating that only code for the Classifier that contains the member can access the member.•Processor: In a Deployment Diagram, this represents a computer or other programmable device where code may be deployed.•Protected: A Visibility level applied to an Attribute or an Operation, indicating that only code for the Classifier that contains the member or for its Subclasses can access the member.•Public: A Visibility level applied to an Attribute or an Operation, indicating that any code can access the member.•Reading Direction Arrow - Indicates the direction of a relationship in a domain model.•Realization: Indicates that a Component or a Class provides a given Interface.•Role - Used in a domain model, it is an optional description about the role of an actor.•Sequence Diagram: A diagram that shows the existence of Objects over time, and the Messages that pass between those Objects over time to carry out some behavior. State chart diagram - A diagram that shows all possible object states.•State: In a State Diagram, this represents one state of a system or subsystem: what it is doing at a point in time, as wellas the values of its data.•State Diagram: A diagram that shows States of a system or subsystem, Transitions between States, and the Events that cause the Transitions.•Static: A modifier to an Attribute to indicate that there's only one copy of the Attribute shared among all instances of the Classifier. A modifier to an Operation to indicate that the Operation stands on its own and doesn't operate on one specific instance of the Classifier.•Stereotype: A modifier applied to a Model element indicating something about it which can't normally be expressed in UML. In essence, Stereotypes allow you to define your own "dialect" of UML.•Subclass: A Class which inherits Attributes and Operations that are defined by a Subclass via a Generalization relationship.•Swimlane: An element of an Activity Diagram that indicates what parts of a system or a domain perform particular Activities. All Activities within a Swimlane are the responsibility of the Object, Component, or Actor represented by the Swimlane.•Time Boxing - Each iteration will have a time limit with specific goals.•Transition: In an Activity Diagram, represents a flow of control from one Activity or Branch or Merge or Fork or Join to another. In a State Diagram, represents a change from one State to another.•Transition Phase - The last phase of the Rational Unified Process during which users are trained on using the new system and the system is made available to users.•UML - Unified Modeling Language utilizes text and graphic documents to enhance the analysis and design of software。
学习计算机程序设计中的统一建模语言
学习计算机程序设计中的统一建模语言计算机程序设计是现代社会中非常重要的一门学科,它涉及到各种各样的技术和方法。
其中,统一建模语言(Unified Modeling Language,简称UML)作为一种通用的建模语言,被广泛应用于软件开发过程中的需求分析、系统设计、系统实现和系统测试等各个阶段。
本文将聚焦于学习计算机程序设计中的统一建模语言,并探讨其在软件开发过程中的重要性和应用。
一、什么是统一建模语言?统一建模语言是一种用来描述系统结构和行为的标准建模语言,它起源于计算机科学和软件工程领域。
它提供了一套图形符号和表达方法,用于展示软件系统的各种关系和结构。
统一建模语言不仅可以帮助开发者更好地理解软件系统的设计和实现细节,还可以为开发团队提供清晰和一致的交流和文档化工具。
通过使用统一建模语言,开发者可以更好地跟进软件开发过程中的变化和需求,从而提高开发效率和软件质量。
二、统一建模语言的图形符号和表达方法统一建模语言通过一系列的图形符号和表达方法来描述软件系统的各种关系和结构。
其中,最常用的图形符号包括类图、用例图、活动图、时序图和状态图。
类图用于展示软件系统的静态结构,包括类、接口、关联、继承等。
用例图则用于展示系统的功能需求和用户交互,描述系统与外部实体的关系和交互。
活动图则用于展示系统的业务流程和操作过程,帮助开发者理解系统的执行逻辑。
时序图则用于展示系统中各个对象之间的交互和消息传递。
状态图则用于展示对象在不同状态下的行为和转换。
三、统一建模语言在软件开发中的应用统一建模语言作为一种通用的建模语言,被广泛应用于软件开发过程中的各个阶段。
首先,在需求分析阶段,开发者可以使用统一建模语言来创建用例图和活动图,明确系统的功能需求和操作流程,从而帮助开发团队更好地理解用户需求。
其次,在系统设计阶段,开发者可以使用统一建模语言来创建类图和时序图,详细描述软件系统的结构和交互过程,从而为系统实现提供清晰的目标和方向。
统一建模语言.
统一建模语言统一建模语言是一个通用的可视化的建模语言,它可以完整的描述软件的需求和结构。
利用UML,软件设计人员可以很方便的为实际系统的编写提供一个“蓝图”,可以对软件系统进行直观的表示、架构和开发,并可以用工具软件使整个过程半自动化和文档化,能大大简化软件设计的复杂过程。
当然,仅有建模语言还不够,还需要有相应的过程来实现建模语言的蓝图。
UML是一种图形建模语言,但用户可对语言进行扩展,它贯穿于系统开发的各个阶段,并且和系统的开发过程相独立。
UML由符号和图形两部分组成。
1.UML v1.0的符号表UML 基本符号一览表2.UML的图形由UML的符号,根据需求调研的结果,由符号画成图形以表示待建系统的结构和行为,UML提供了以下的九种图来对待建系统建模。
1)用例图用例图表示一个系统中所有的用例与所有外部参与者的交互。
可为待建系统的功能建模,如图3.4所示某保险公司销售管理系统用例图2)类图类图描述了类、接口、协作以及它们之间的关系。
类图可用来表示程序的结构、程序模块之间的依赖关系或为数据库建模。
某IT公司开发的餐饮管理系统的一个类图2)对象图对象图描述了类图某一时刻的实际例子,描述了这个时刻对象和对象间的关系,如图所示4)组件图组件图描述了组件以及组件之间的关系,表示了组件之间的组织或依赖关系。
5)部署图部署图用来描述运行应用软件系统的处理器、设备、网络及其拓扑结构。
部署图6)状态图描述了一个特定对象的所有可能状态以及引起状态跃迁的事件,可为一个对象建模。
7)序列图序列图用来描述对象之间动态的交互关系,着重体现对象间消息传递的时间顺序,序列图可以描述一个用例的实现,可为一个协作建模。
序列图也叫顺序图。
如图:8)协作图协作图描述对象之间动态的交互关系,也可为一个协作建模,只是与序列图画法不同。
9)活动图活动图依据对象状态的变化来捕获动作与动作的结果,可以用用例建模。
以上内容介绍的是UML中的图形,其实UML2.0支持13种图,它可以分成两大类,结构图和行为图。
统一建模语言
统一建模语言1.统一建模语言英文名称:unified modeling language;UML定义:是一种面向对象的建模语言,它是运用统一的、标准化的标记和定义实现对软件系统进行面向对象的描述和建模。
2.标准建模语言UML的主要特点可以归结为三点:(1) 统一性:统一了Booch、OMT和OOSE的概念和方法,带来了广泛的认同,表达形式更加清晰、更加一致。
(2) 完整性:实用范围更加广泛(不仅用于信息系统建模,还可以用于机械系统、企业系统、商业系统等的建模);支持从需求、设计、实现直到系统的测试和维护的系统的全生命周期。
(3)发展实用性:UML在演变过程中还提出了一些新的概念。
在UML标准中新加了模板(Stereotypes)、职责(Responsibilities)、扩展机制(Extensibility mechanisms)、线程(Threads)、过程(Processes)、分布式(Distribution)、并发(Concurrency)、模式(Patterns)、合作(Collaborations)、活动图(Activity diagram)等新概念,并清晰地区分类型(Type)、类(Class)和实例(Instance)、细化(Refinement)、接口(Interfaces)和组件(Components)等概念。
因此可以认为,UML是一种先进实用的标准建模语言,但其中某些概念尚待实践来验证,UML也必然存在一个进化过程3.UML面向对象分析的一般过程1、调研、交流形成系统的问题域描述2、从用户的角度,确定系统的边界、主要功能和活动,建立用例模型3、深入分析用例中用户需求的功能,分析这些功能实现的活动。
使用顺序图、合作图和活动图来辅助进行。
4、分析用户功能的完成基础,建立类和对象模型。
5、对某些具有复杂状态变化关系的类建立状态图,深入分析它们的行为和状态的变化。
6、在上述过程中,要收集并整理系统的性能指标,研究系统的测试策略和测试方法,并对照用例模型检测系统需求结果。
统一建模语言UML概述
构造软件系统的产出。
UML不是可视化的编程语言,但它的模型可 以直接对应到各种各样的编程语言,即:可 以从UML的模型生成Java、C++等语言的 编码,甚至可以生成关系数据库中的表。
相关术语和概念
系统 由一组为了完成一定目标而组织起来的 元素构成的,这些元素是用一组模型分 别从不同的角度描述的。 子系统 系统的一部分,用来将一个复杂的系统 分解为几乎相互独立的部分。
识别下面的图形是哪种UML图,并识 别图中的UML元素:
创建支票
未付
付款
已付
是一个状态 图。未付和 已付是状态, 创建支票、 付款和销毁 支票是状态 之间的事件。
销毁支票
识别下面的图形是哪种UML图,并识 别图中的UML元素:
<<library>> commhandler.dll <<library>> graphics.dll <<library>> dbhandler.dll
UML的组成
UML的词汇表包括3种构造模块:元素、关 系和图。
元素
模型中重要的抽象。包括结构元素、行为元素、 分组元素和注释元素。
关系
说明元素之间的相互联系。包括依赖关系、关联 关系、类属关系和实现关系。
图
由一组元素和关系组成的连通图。包括静态结构 图和动态行为图。
UML的组成—元素
建模的重要性
模型是对现实世界的简化; 建模是为了更好地理解正在开发的系统。
模型帮助按照实际情况或所需要的情况对系 统进行可视化; 模型可以详细说明系统的结构和行为; 模型给出了一个指导系统构造的模版; 模型对作出的决策进行文档化。
统一建模语言UML
UML统一建模语言1.软件建模概述1.1什么是建模任何事情都要先想清楚了才能做,软件开发更是如此!软件开发过程不可能一上来就开始盲目写代码,写代码之前必须搞清楚下面一些基本问题:要做什么?做成什么样?怎么去做?1.2建模原则➢选择建立什么样的模型对如何发现和解决问题具有重要的影响。
正确的模型有助于提高开发者的洞察力。
➢每个模型可以有多种表达方式. 使用者的身份和使用的原因是评判模型好坏的关键。
➢最好的模型总是能够切合实际. 模型是现实的简化,必须保证简化过程不会掩盖任何重要的细节。
1.3软件建模的实现过程软件建模的作用是把源于现实世界的问题转化为计算机可以理解和实现的过程。
软件建模的实现过程是从需求入手, 用模型表达分析设计过程, 最终将模型映射成软件实现.2.UML(1)UML(United Modeling Language, 统一建模语言): 是一种基于面向对象的可视化建模语言.(2)UML 采用了一组形象化的图形(如类图)符号作为建模语言, 使用这些符号可以形象地描述系统的各个方面(3)UML 通过建立图形之间的各种关系(如类与类之间的关系)来描述模型.2.1 UML一共有10种图。
2.2 UML中的关系UML中的关系主要包括4种:关联关系(association)依赖关系(dependency)泛化关系(generalization)实现关系(realization)名称重要性活动图★★☆☆☆3.用例图(1)用例图(Use Case Diagram): 也称为用户模型图, 是从软件需求分析到最终实现的第一步, 它是从客户的角度来描述系统功能.(2)用例图包含3 个基本组件:参与者(Actor): 与系统打交道的人或其他系统即使用该系统的人或事物. 在UML 中参与者用人形图标表示用例(Use Case): 代表系统的某项完整的功能. 在UML 中使用一个椭圆来表示关系: 定义用例之间的关系------ 泛化关系, 扩展关系, 包含关系泛化关系: 表示同一业务目的(父用例)的不同技术实现(各个子用例). 在UML 中, 用例泛化用一个三角箭头从子用例指向父用例. 以下是某购物网站为用户提供不同的支付方式3.2 用例之间的关系——包含关系一个用例可以包含其他用例具有的行为, 并把它包含的用例行为作为自身行为的一部分. 在UML 中包含关系用虚线箭头加“<<include>>”, 箭头指向被包含的用例.如果在完成某个功能的时候偶尔会执行另外一个功能, 则用扩展关系表示.在UML 中扩展关系用虚线箭头加“<<extend>>”, 箭头指向被扩展的用例.4.类图类图是面向对象系统建模中最常用的图. 是定义其他图的基础.类图主要是用来显示系统中的类, 接口以及它们之间的关系.类图包含的主要元素有类, 接口和关系. 其中关系有泛化关系,关联关系, 依赖关系和实现关系. 在类图中也可以包含注释和约束.4.1类的表示法1. 类是类图的主要组件, 由3部分组成: 类名, 属性和方法. 在UML 中, 类用矩形来表示, 顶端部分存放类的名称, 中间部分存放类的属性, 属性的类型及值, 底部部分存放类的方法, 方法的参数和返回类型.2.在UML 中可以根据实际情况有选择的隐藏属性部分或方法部分或两者都隐藏3.在UML 中, 共有类型有+ 表示, 私有类型用–表示, 保护类型用# 表示. UML 的工具开发商可以使用自己定义的符号表示不同的可见性4.2类之间的关系-泛化关系1. 在UML 中, 泛化关系用来表示类与类, 接口与接口之间的继承关系. 泛化关系有时也称为”is a kind of“关系.2. 在UML 中泛化关系用一条实线空心箭头有子类指向父类.4.3 类之间的关系-实现关系在UML 中, 实现关系用来表示类与接口之间的实现关系.在UML 中实现关系用一条虚线空心箭头由子类指向父类4.4 类之间的关系-依赖关系对于两个相对独立的系统,当一个系统负责构造另一个系统的实例,或者依赖另一个系统的服务时,这两个系统之间体现为依赖关系. 例如生产零件的机器和零件,机器负责构造零件对象; 充电电池和充电器,充电电池通过充电器来充电;自行车Bicycle和打气筒Pump,自行车通过打气筒来充气。
软件设计过程中的统一建模语言UML
软件设计过程中的统一建模语言UML一、UML的概念和发展统一建模语言,英文缩写UML,是软件开发中常用的一种建模语言。
自1997年推出以来,UML 以其简明的表达和强大的组织能力逐渐成为软件开发领域的标准和事实上的应用范式。
UML 的前身是Booch方法、OOSE方法和OMT方法。
在20世纪80年代中期,这些方法都有自己独特的建模方式和框架,难以让不同方法之间进行有效的交互。
为了解决这个问题,OMG开始了一个称为“UML”(即“共同建模语言”)的倡议。
UML 的实现促使OMG摒弃自己之前的建模语言DA(即“OMT、Booch和OOSE的综合”)。
在几次重大的更新中,UML 以一种形式化规范形式定义了一组符号和图形,以实现在开发、文档化和维护软件时进行可视化建模的目标。
二、UML的优点及特点UML是具有很强的建模性和逻辑性的,为软件开发工程师和设计师提供了简单、规范、美观的可视化构图方式。
在具体应用中,UML的优点主要体现在以下几个方面。
1. 统一的建模语言:UML可以作为一种通用的建模语言,为不同的软件开发者提供了的一种共同基础,从而促进了软件开发的有效性和互操作性。
2. 开放性和标准性:UML是由OMG组织推广的一种标准化建模语言,开放式的接口和标准的语法形式使得UML应用于许多事实应用的实现中。
3. 图形表达力:UML是一种具有较高可视化操作性的可视化建模语言,通过其精美实用的图形,开发人员可以快速理解系统结构和动作流程的设计,为软件开发的快速实现提供了便利条件。
4. 易于扩展性和可维护性:UML是有流程性、属性性和行为性三个方面构成的、具有极高扩展性的建模语言,因而可以方便的与其他开发工具及软件结合,也预示着其易于维护的特性。
5. 面向对象的特点:UML以对象的视角来看待系统,这使得建模结果具有面向对象的特点,更贴近于实际的软件开发实践。
三、UML的主要元素1. 用例图:是一个描述系统功能的图形化工具,可以显示对象、行为和组织结构组成。
使用统一建模语言进行需求分析和设计
使用统一建模语言进行需求分析和设计随着软件开发的不断发展,需求分析和设计极为重要。
统一建模语言(Unified Modeling Language,简称UML)是一种通用的、标准化的建模语言,可以在软件开发过程中进行需求分析和设计。
本文将介绍如何使用UML进行需求分析和设计,并利用UML的不同图形来展示需求和设计的过程。
首先,需求分析是指确定软件系统对用户需求的描述和定义,而设计是指根据需求进行系统的设计。
使用UML进行需求分析和设计可以帮助开发团队更好地理解和表达需求,避免沟通误差和功能差异。
在需求分析阶段,可以使用用例图(Use Case Diagram)来描述系统的功能需求。
用例图能够清晰地展示系统和外部参与者之间的交互关系,帮助开发团队理解用户对系统的期望和需求。
用例图由参与者(Actor)和用例(Use Case)组成,参与者表示系统的外部角色,用例表示系统的功能。
通过用例图可以明确系统的边界和交互流程,从而更好地理解用户的需求。
在设计阶段,可以使用类图(Class Diagram)和时序图(Sequence Diagram)等来描述系统的结构和行为。
类图展示了系统中的类及其属性和方法,有助于开发团队理解系统的组成和关系。
时序图则描述了系统中不同对象之间的交互流程,提供了时序和顺序的视角,帮助开发团队更好地理解系统的行为。
除了用例图、类图和时序图,UML还提供了众多其他类型的图形,如活动图、状态图、组件图、部署图等等。
这些图形各有不同的应用场景,可以根据具体需求进行选择和使用。
使用UML进行需求分析和设计有许多好处。
首先,UML是一种通用的建模语言,在软件开发界得到广泛应用,可以方便不同团队之间的沟通和交流。
其次,UML是标准化的语言,具有明确的语法和规范,可以减少沟通误差和功能差异。
此外,UML具有丰富的图形元素和关系,可以灵活地表达不同的需求和设计,以满足不同项目的需求。
总之,使用统一建模语言进行需求分析和设计是软件开发中极为重要的一环。
统一建模语言UML简介
统一建模语言UML简介摘要统一建模语言UML是一个通用的可视化建模语言,用于对软件进行描述、可视化处理、构造和建立软件系统制品的文档。
它记录了对必须构造的系统的决定和理解,可用于对系统的理解、设计、浏览、配置、维护和信息控制。
本文讨论了统一建模语言UML的发展历程及主要特点,主要介绍了UML的技术核心,各种模型图,并给出了实例。
关键字:统一建模语言;用例图;类图;序列图;活动图;状态图1.引言随着计算机应用的飞速发展,软件的复杂度不断提高,源代码的规模越来越大,项目失败的可能性也相应增加。
在长期的研究与实践中,人们越来越深刻地认识到,建立简明准确的表示模型是把握复杂系统的关键。
模型是对事物的一种抽象,人们常常在正式建造实物之前,首先建立一个简化的模型,以便更透彻地了解它的本质,抓住问题的要害。
使用模型可使人们从全局上把握系统的全貌及其相关部件之间的关系,可以防止人们过早地陷入各个模块的细节。
因此,建模是软件建设的功能需求分析的重要部分。
对于软件的开发来讲,参与系统建设人员包括领域专家、软件设计开发人员、管理人员和操作人员,他们之间的交流成为系统开发的最大难题,即如何将系统的功能需求分析以明确的、清晰的方式表达出来,使得系统在具体实现阶段能够顺利地、无歧义地进行。
UML作为一种建模语言,正是这样一种标准的表示,它通过统一语义和符号表示来定义一些图和它们的意义,与使用的方法无关。
所以,人们可以用各种方法使用UML,而不管方法如何变化,其基础都是UML的图,这就是UML的最终用途,即为不同领域的人们提供统一的交流标准。
统一建模语言UML(Unified Modeling Language)是由Rational公司的知名专家Gray Booch,Ivar Jacoboson 和 Jim Rum baugh联合开发的第三代面向对象(Object-oriented,简称OO)的建模语言,它采纳和扩展了Booch标记法、OMT( Object-oriented Modeling and Design)标记法和OOSE标记法,还吸取了面向对象技术中其它流派的长处,其中也包括非OO 方法的影响。
统一建模语言)是软件和系统开发的标准建模语言
7第1章简介UML(Unified Modeling language,统一建模语言)是软件和系统开发的标准建模语言。
单看这句话,结论似乎非常明确,即应该在软件中运用UML技术。
然而这句话并没有回答某些问题,例如:为何说UML是统一的?哪些程序可以采用模型化设计?UML是怎样的一种语言?此外还有一点也许是最重要的:为什么要关注UML?任何大规模的系统设计都是相当困难的。
从简单的桌面应用程序到完整的多层企业级系统,任何系统都可以分解为成百上千乃至成千上万的软件和硬件组件。
如何确定需要哪些组件?每个组件的职责及其如何满足客户的需求?再进一步,如何与同事共享设计,以确保各个部分能够无缝地协作?在开发复杂系统时,如果缺乏相应的帮助,容易曲解或遗忘的技术细节实在是太多,而这正是建模(当然还有UML)出现的原因。
在系统设计中采用模型化设计的重要原因之一是:管理系统设计的复杂性。
模型化可以帮助用户高屋建瓴,使用户专注于系统设计的重要部分,收集关键信息,编制文档并在各个部分之间建立通信。
模型是对真实事物的抽象(abstraction)。
对系统建模时,实际上抽掉了任何无关或可能引起混淆的细节信息。
模型是对真实系统的简化(simplification),因此,与直接深入开发实际的系统本身相比,这种方法可以简化系统的设计和维护,使之更容易理解、评估和除错。
更妙的是,如果采用规范化的建模语言,虽然语言本身是抽象的,但却像其他编程语言一样精确。
这种精确性实现了语言的机器可读性,因此,可对其进行解释和执行,并在不同系统之间进行变换。
要有效地进行系统建模,需要一项非常重要的技术:可用来描述模型的语言。
而这正是UML表演的舞台。
第1章8什么是建模语言建模语言可由伪代码、实际代码、图片、图或大段描述组成;实际上,它几乎能够描述系统的任何元素。
组成建模语言的元素称为该语言的表示法(notation)。
图1-1显示了UML表示法的示例片段。
统一建模语言名词解释
统一建模语言名词解释统一建模语言(Unified Modeling Language,简称UML)是一种用于软件开发过程中进行建模的可视化语言。
它提供了一套标准的符号和规则,用于描述软件系统中的结构、行为和交互。
UML可以帮助开发人员更好地理解和沟通软件系统的设计和实现。
UML中的一些常见的名词解释如下:1. 类(Class):类是UML中最基本的概念,用于描述具有相似属性和行为的对象的模板。
类中包含了属性(属性是描述对象特征的变量)和方法(方法是描述对象行为的函数)。
例如,一个“学生”类可以有属性“姓名”和“年龄”,以及方法“学习”和“休息”。
2. 对象(Object):对象是类的一个实例,代表了现实世界中的一个具体事物。
每个对象有自己的状态(属性的值)和行为(方法的操作)。
例如,一个“张三”的对象是“学生”类的一个实例,它具有特定的姓名和年龄,并且可以执行学习和休息的行为。
3. 关系(Relationship):关系描述了不同类之间的连接和交互。
UML 中常见的关系有继承、关联、聚合、组合和依赖等。
-继承(Inheritance):继承关系表示一个类(子类)继承了另一个类(父类)的属性和方法。
子类可以重用父类的代码,并且可以定义自己的特定属性和方法。
例如,一个“学生”类可以继承一个更通用的“人”类,以便共享“姓名”属性和“吃饭”方法。
-关联(Association):关联关系表示不同类之间的连接。
它描述了类之间的静态关系,表示一个类与另一个类之间的关联关系。
例如,一个“学生”类和一个“课程”类之间可以有一个关联关系,表示学生可以选择参加课程。
-聚合(Aggregation):聚合关系表示整体与部分之间的关系,表示一个类包含另一个类的实例。
例如,一个“班级”类可以聚合多个“学生”类的实例,表示班级由学生组成。
-组合(Composition):组合关系也表示整体与部分之间的关系,但是部分对象不可独立存在,它们是整体对象的一部分。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
7.1.3 UML的主要内容
UML的定义包括UML语义和UML表示法两 部分。UML语义通过其元模型进行严格 定义,元模型为UML的所有元素在语法 和语义上提供了简单、一致且通用的定 义性说明。UML表示法定义了UML的表 示符号,为建模人员和建模支持工具的 开发人员提供了标准的图形符号和正文 语法。 UML提供了5类图形。
3. 行为图(Behavior Diagram):描述系统的动态模型和组成对象之间 的约束关系。行为图包括状态图(Statechart Diagram)和活动图 (Activity Diagram)。状态图描述一类对象的所有可能的状态以及事件 发生时状态的转移条件。通常状态图是对类图的补充。实际上,并不 需要对所有的类图绘制状态图,而只需要对那些有多个状态并且其行 为受外界环境的影响而发生变化的类绘制状态图。另一种行为图是活 动图,它描述为满足用例要求而要进行的活动和活动之间的约束关系。 使用活动图能够很方便地表示并行活动。 4. 交互图(Interaction Diagram):描述对象之间的交互关系。包括时 序图(Sequence Diagram)和合作图(Collaboration Diagram)。时序图 描述对象之间的动态交互关系,它强调对象之间消息发送的顺序,同 时也显示了对象之间的交互过程。合作图着重描述对象之间的协作关 系。合作图与时序图相似,显示对象之间的动态合作关系。除了显示 信息交换之外,合作图还显示对象以及他们之间的关系。如果强调时 间和顺序,应该使用时序图;如果强调互相之间的通信关系,则应该 使用合作图。
7.1.4 UML的应用 ห้องสมุดไป่ตู้应用
UML主要用于软件系统,在如下领域得到了广 泛应用:
企业信息系统 银行和金融系统 通信 运输 国防/航空 零售 医疗电子 科学研究 分布式Web服务
UML并不局限于软件建模。它还可以用于其它非软件系统 的建模,如法律系统的工作流,医疗保健系统的架构和硬 件系统的设计等。 UML可以用于软件开发过程中从需求规格描述、系统设计 方案确立、系统实现,一直到系统完成后测试的不同阶段。 在需求分析阶段,可以使用UML中的用例来获取用户需求。 通过用例建模,描述与系统关联的参与者及其对系统的功 能需求。使用UML类图描述类与类之间的关系,找出问题 域中的如类、对象等主要概念和运行机制。为实现用例, 类之间要进行协作,这可以用UML动态模型进行描述。在 系统分析阶段,要对把现实世界要处理的问题抽象出问题 域中的对象,使用UML建模。在系统设计阶段,要考虑定 义软件系统中技术细节的类(如数据库、通信、处理用户 接口和并行性等问题的类),为系统实现阶段提供更详细 的规格说明。
4.
UML是一种构建的语言
UML不是编程语言,但它的模型与多种 编程语言有直接的联系。可以将UML的模型 映射成如Java、C#、C++或Visual Basic的某 一种编程语言,甚至映射成关系数据库的表。
5. UML是一种文档化语言
好的软件公司除了源程序外还应制作各种软件制品,这些软件制品包括: 系统需求 系统架构 系统设计 源代码 项目计划 系统测试 原型 软件发布 UML给出系统架构和所有详细情况的文档。UML提供表达需求和测试的 语言,UML也提供项目计划和发布管理活动的建模语言。 UML不是一种建模方法,只是一种建模语言。一般的方法均应该由建模 语言和建模过程两部分组成,其中建模语言提供了该方法中用于表示设 计的符号,而建模过程则描述了进行设计所需要遵循的步骤。UML统一 了面向对象建模的基本概念、术语和图形符号,为使用者建立了易于沟 通的共同语言。使用者可以根据所开发软件的类型、环境和条件,选用 不同的建模过程。
系统实现阶段的任务是使用面向对象编程语言将来自系统 设计阶段的类转换成实际的程序代码。在使用UML建立系 统分析和系统设计模型时,要尽量避免考虑把模型转换成 某种特定的编程语言。在系统分析及系统设计阶段,模型 只是理解和分析系统结构的工具,过早考虑采用某种特定 编程语言不利于建立简单正确的模型。 UML模型还可以作为测试阶段的依据。软件测试的步骤有 单元测试、集成测试、确认测试及系统测试。不同的测试 阶段采用不同的UML图作为测试依据:单元测试采用类图 和类规格说明;集成测试采用部件图和合作图;确认测试 验证系统测试的结果是否满足在系统分析阶段确定的需求; 系统测试由用例图来验证系统的行为。 总而言之,统一建模语言UML适用于采用面向对象技术的 任何类型的系统,并且适用于系统开发的各个不同阶段, 从需求规格描述一直到系统测试及维护。
第七章 统一建模语言UML
【本章引言】
面向对象技术在当今的软件开发过程中 有了深入的研究和广泛的应用。面向对 象技术使用的各种软件设计工具、规范 等在面向对象技术发展的过程中经历了 较大的发展。UML就是这个发展过程中 最重要的成果。UML统一了面向对象技 术的众多表示方法,最终统一为大众所 接受的标准建模语言。
【本章重点】
UML的概念和主要内容; 用例图、类图、对象图和包; 状态图、交互图和活动图。
【学习目标】
掌握UML的概念和主要内容; 掌握UML构造块、规则和公共机制; 掌握UML的建模机制; 了解UML的发展; 了解UML的应用领域 了解各种图的应用。
【教学内容】
7.1 UML概述 7.2 UML的概念模型 7.3 UML的静态建模机制 7.4 UML的动态建模机制 7.5 UML的物理架构建模 7.6 小结 7.7 习题
7.1.2 UML的演变
面向对象技术出现以后,各种建模技术应运而生。UML语言是在总结 和归纳了很多面向对象技术和方法基础之上建立起来的。面向对象最 早的发起者和倡导者Grady Booch 于1993年提出面向对象技术Booch 1993奠定了UML语言发展的基础。 Booch 1993适用于软件系统的设计和构建。UML语言的另一个来源是 Jim Rumbaugh等人提出的面向对象的建模技术(Object-oriented Modeling Techniques,OMT)。OMT技术采用对象模型、动态模型、 功能模型和用例模型一起实现对整个软件系统的建模,所定义的概念 和方法可以用于整个软件开发生命周期的分析、设计和实现全过程。 1994年另一位面向对象技术专家Ivar Jacobson提出了面向对象软件工 程(Object-Oriented Software Engineering,OOSE)的方法,该方法最 大的特点是用例,在用例的描述中引入了参与者的概念。
7.1.1 UML概念 概念
UML(Unified Modeling Language),统一建模语言,是一种绘制软件蓝图的标准 语言,用于对软件系统制品(包括程序、数据及文档等)进行可视化、详细说明、 构建并归档处理。 UML具有如下含义: 1. UML是一种语言 语言提供用于交流的词汇及词语组合的规则。建模语言是这样一种语言,它的 词汇和规则集中于系统的概念表达和物理表达上。像UML这种建模语言是绘制 软件蓝图的标准语言。UML的词汇和规则说明了如何建立模型和阅读建好的模 型,但没有说明建立什么模型和什么时候建立模型,这些是软件开发过程的工 作范畴。 2. UML是一种可视化语言 有些事物使用文本建模比较好,而有些事物使用图形建模则更好一些。编程语 言使用文本来建模,UML是图形化语言,它的建模体系要远远优于文本建模。 UML表面看起来是一些图形符号,实际上在每个图形符号的后面是定义明确的 语义。一名开发人员使用UML建立一个模型,另一名开发人员能够明确地解释 这个模型,而不会出现歧义的理解。 3. UML是一种明确性语言 UML建立的模型是精确的、无歧义的和完整的模型。UML还可以对软件系统所 有重要的分析、设计、实现和部署软件系统制定规格说明书。
1994年10月,Grady Booch和Jim Rumbaugh将两人各自的 技术统一起来,并于1995年10月发布了被称为统一方法 (Unified Method)的UM0.8。1995年秋,OOSE的创始人Ivar Jacobson加盟到这一团队中。经过3人的共同努力,在1996 年6月发布了UML 0.9版本,在1996年10月发布了UML 0.91 新版本,并将UM重新命名为UML(Unified Modeling Language)。后来,很多大公司参与到了这些工作中,这些 大公司包括DEC、HP、IBM、Microsoft、Oracle、Rational Software、TI和Unisys等。1997年1月正式公布了UML 1.0, 1997年11月17日,OMG(Object Management Group)接纳 UML 1.1为基于面向对象技术的标准建模语言。2001年,发 布UML 1.4版,2005年7月,发布UML 2.0版。UML的出现统 一了面向对象的建模语言,标志着面向对象技术和方法的成 熟。
1. 用例图(Use Case Diagram):它从用户的角度描述系统 的功能,并且明确指出各功能的操作者。 2. 静态图(Static Diagram):包含类图(Class Diagram)、 对象图(Object Diagram)及包图(Package Diagram)。类图 用于定义系统中的类,描述系统中类的静态结构。包括类 的内部结构(类的属性和操作)及类之间的联系(如关联、依 赖和聚合等)。类图描述了系统中类的静态结构,在系统 的整个生命周期中都有效。对象图所使用的符号与类图几 乎完全相同,不同点在于对象只是类的实例,而不是实际 的类。一个对象图是某一类图的实例。对象有生命周期, 对象图只会在系统某一时间段内存在。包图由包或类组成, 主要包与类、包与包之间的关系。包图用于描述系统的层 次结构,而不是一种独立的模型图。
7.2 UML的概念模型 的概念模型
为理解UML,需要建立UML的概念模型, 这要求学习三个要素:UML的基本构造 块、决定这些构造块之间联系的规则和 一些贯穿UML全部的公共机制。一旦掌 握了这些概念,就能够阅读并建立基本 的UML模型。获得应用UML更多的经验 后,就能建立这些概念模型,使用UML 的更高级的功能。