实验4---UML之类图、状态图和时序图



《实验4---UML之类图、状态图和时序图》由会员分享,可在线阅读,更多相关《实验4---UML之类图、状态图和时序图(32页珍藏版)》请在文档大全上搜索。
1、实验4 类图、状态图和时序图设计张程UML语法描述NewClassInterfaceusecase类是对一组具有相同属性、相同操作、相同关系和相同语义的对象的描述对象接口是描述了一个类或构件的一个服务的操作集协作定义了一个交互,它是由一组共同工作以提供某种协作行为的角色和其他元素构成的一个群体用例是对一组动作序列的描述主动类对象至少拥有一个进程或线程的类构件是系统中物理的、可替代的部件参与者在系统外部与系统直接交互的人或事物节点是在运行时存在的物理元素交互它由在特定语境中共同完成一定任务的一组对象间交换的消息组成状态机它描述了一个对象或一个交互在生命期内响应事件所经历的状态序列包把元素组织成组
2、的机制注释事物是UML模型的解释部分依赖一条可能有方向的虚线关联一条实线,可能有方向泛化一条带有空心箭头的实线实现一条带有空心箭头的虚线actorNewProcessorstateNewPackagecomponet 类图中的事物及解释类图中的事物及解释类类 从上到下分为三部分,分别是类名、属性和操作。类名是必须有的 类如果有属性,则每一个属性都必须有一个名字,另外还可以有其它的描述信息,如可见性、数据类型、缺省值等 类如果有操作,则每一个操作也都有一个名字,其它可选的信息包括可见性、参数的名字、参数类型、参数缺省值和操作的返回值的类型等Account- balance : double =
3、1+ Deposit(amount : double) : int+ ComputeInterest() : double可见性-代表private+代表public#代表protected也可以使用图形表示返回值类型操作名称斜体为抽象操作缺省值类名斜体为抽象类属性名称参数列表 类图概要类图概要 类图以反映类的结构(属性、操作)以及类之间的关系为主要目的,描述了软件系统的结构,是一种静态建模方法 类图中的“类”与面向对象语言中的“类”的概念是对应的,是对现实世界中的事物的抽象Shape(标准图形)Shape+ Draw ()(变体图形)接口Vehicle- fMaxSpeed : float+
4、 Start() : int+ Stop() : int抽象类模版参数模版类类图中的事物及解释类图中的事物及解释 接口接口一组操作的集合,只有操作的声明而没有实现 抽象类抽象类不能被实例化的类,一般至少包含一个抽象操作 模版类模版类一种参数化的类,在编译时把模版参数绑定到不同的数据类型,从而产生不同的类UML表示法角色类的角色是“事物“多重性(用数字和*表示)1*:1个或多个1个类图有1个或多个类1个类属于1个或多个类图ClassDiagramClass+thing+diagram1.*1.*use1.*1.*方向双向关联(省略箭头)名字关系的名字是“使用”实例聚合关系聚合关系 特殊关联关系,
5、指明一个聚集(整体)和组成部分之间的关系组合关系组合关系 语义更强的聚合,部分和整体具有相同的生命周期UML表示法UML表示法ThingClassDiagramRelation(空心菱形)实例类图包含有事物和关系,类图不存在了,事物和关系还可用于其它的类图ClassAssociation(实心菱形)实例类与关联关系之间有组合关系,类不存在了,则相应的关联关系也不存在类图中的关系及解释类图中的关系及解释 关联关系关联关系 描述了类的结构之间的关系。具有方向、名字、角色和多重性等信息。一般的关 联关系语义较弱。也有两种语义较强,分别是聚合与组合UML表示法 实现关系实现关系 对应于类和接口之间的关
6、系UML表示法类Circle、Rectangle实现了接口Shape的操作Shape+ Draw ()Circle+ Draw ()Rectangle+ Drarw ()RelationAssociationGeneralizationRealizationDependency关联、泛化、实现、依赖都是一种关系ThingClassInterface类、接口都是一种事物泛化关系泛化关系 在面向对象中一般称为继承关系,存在于父类与子类、父接口与子接口之间 依赖关系依赖关系描述了一个类的变化对依赖于它的类产生影响的情况。有多种表现形式, 例如绑定(bind)、友元(friend)等UML表示法模板类
7、Stack定义了栈相关的操作;IntStack将参数T与实际类型int绑定,使得所有操作都针对int类型的数据类Memento和类Originator建立了友元依赖关系,以便Originator使用Memento的私有变量state类图p聚集关系 表示整体与部分之间的关系,也即作为整体的对象拥有作为部分的对象,它通常只是概念上的区分。 构成对象不存在,聚集对象还可存在。p组成关系 组成关系是聚集关系的变种,它强调整体与部分之间有很强的所属关系和一致的生命周期。 如果没有成分对象,组成对象也不存在。 聚集聚集ReportCorporateDivisionCorporationParagrapht
8、extPartdivision0.*0.*11.*组成组成滑翔机机翼机尾机身111C+代码class Vehiclepublic: virtual int Start() = 0; virtual int Stop() = 0; virtual int Run(float fSpeed) = 0;private: float fMaxSpeed;Java代码public abstract class Vehicle public abstract int Start(); public abstract int Stop(); public abstract int Run(float fSp
9、eed); private float fMaxSpeed;Vehicleabstract - fMaxSpeed : float+Start ()Stop ()Run (float fSpeed): int: int: int类图与代码的映射类图与代码的映射 类的映射类的映射类图类图 关联关系的映射关联关系的映射 C+代码class Dialog private: Button btnOK; Button btnCancel; TextBox txtInfo;class Button;class TextBox;组合关系,代码表现为Dialog的属性有Button和TextBox的对象Tex
10、tBoxButtonDialog- btnOK : Button- btnCancel : Button- txtInfo : TextBox泛化关系的映射泛化关系的映射Java代码public class SavingsAccount extends Account C+代码class SavingsAccount : public Account ;类图类图C+代码class Shape public: virtual void Draw() = 0;class Circle : public Shapepublic: void Draw();private; Point ptCenter
11、; int nRadius;Java代码public interface Shape public abstract void Draw();public class Circle implements Shapepublic void Draw();private Point ptCenter;private int nRadius;Shape+ Draw ()Circle-ptCenternRadius: Point: int+ Draw ()Rectangle-ptUpperLeftnWidthnHeight: Point: int: int+ Drarw ()在C+语言里面,使用抽象类