版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、UML系统建模-面向对象桂林电子科技大学信息科技学院 刘芳芳重点内容:lReviewl面向对象分析l类图与对象图的基本概念 l类图的组成 l使用Rose创建类图l对象图l案例分析第7章 类图与对象图重点内容:lReviewl面向对象分析l类图与对象图的基本概念 l类图的组成 l使用Rose创建类图l对象图l案例分析第7章 类图与对象图Review:基于用例的需求分析过程1. 获取原始需求2. 开发一个可以理解的需求 2.1 识别参与者 2.2 识别用例 2.3 构建用例图3. 详细、完整地描述需求 进行用例阐述4. 重构用例模型 4.1 识别用例间的关系 4.2 对用例进行组织和分包重点内容:
2、lReviewl面向对象分析l类图与对象图的基本概念 l类图的组成 l对象图l使用Rose创建类图l实例第7章 类图与对象图需求需求用例用例OOAOOA系统系统面向对象分析面向对象分析为什么要进行分析分析过程概述从需求到分析Requirement Model-SupplementarySpecificationGlossaryAnalysis ModelUse Case Realization - Anaysis : : Analysis Class分析模型与用例模型分析过程概述OOA与用例模型分析过程概述重点内容:lReviewl面向对象分析l类图与对象图的基本概念 l类图的组成 l对象图l
3、使用Rose创建类图l实例第7章 类图与对象图7.1.1 类图与对象图的含义 类图(Class Diagram)显示了系统的静态结构,而系统的静态结构构成了系统的概念基础 类图就是用于对系统中的各种概念进行建模,并描绘出它们之间关系的图 类图中的类可以转换成某种面向对象的编程语言代码一、类图与对象图的基本概念 在类图中,具体来讲它一共包含了以下几种模型元素,分别是:类、接口、依赖关系、泛化关系、关联关系以及实现关系。 类图可以创建约束、注释和包等。对象图的含义 对象图中包含对象(Object)和链(Link)。其中对象是类的特定实例,链是类之间关系的实例,表示对象之间的特定关系。 对象图描述某
4、种特定的情况,类图描述通用通用的情况7.1.1 类图与对象图的含义类图对象图在类中包含三部分,分别是类名、类的属性和类的操作对象包含两部分:对象的名称和对象的属性类的名称栏只包含类名对象的名称栏包含“对象名:类名”类的属性栏定义了所有属性的特征对象的属性栏定义了属性的当前值类中列出了操作对象图中不包含操作的内容因为对属于同一个类的对象,其操作是相同的类图的作用 类图的作用是对系统的静态视图进行建模。当对系统的静态视图进行建模时,通常是以以下三种方式来使用类图。 1 为系统的词汇建模。使用类图来详细描述系统建模中的抽象。 2 系统分析者可以通过类图将模型化简单的协作可视化和表述。 3 模型化逻辑
5、数据库模式。在设计数据库时,通常将数据库模式看作为数据库概念设计的蓝图,在很多领域中,都需要在关系数据库或面向数据库中存储永久信息。系统分析者可以使用类图来对这些数据库进行模式建模。 对象图作为系统在某一时刻的快照,是类图中的各个类在某一个时间点上的实例及其关系的静态写照,可以通过以下几个方面来说明它的作用: 1 说明复杂的数据结构。对于复杂的数据结构,有时候很难对其进行抽象成类表达之间的交互关系。使用对象描绘对象之间的关系可以帮助我们说明复杂的数据结构某一时刻的快照,从而有助于对复杂数据结构的抽象。 2 表示快照中的行为。通过一系列的快照,可以有效表达事物的行为。 对象图的作用重点内容:lR
6、eviewl面向对象分析l类图与对象图的基本概念 l类图的组成 l对象图l使用Rose创建类图l实例第7章 类图与对象图二、类图的组成 类是面向对象系统组织结构的核心。类是对一组具有相同属性、操作、关系和语义的事物的抽象。 在UML的图形表示中,类的表示法是一个矩形,这个矩形由三个部分构成,分别是: 类的名称(Name) 类的属性(Attribute) 类的操作(Operation)。 类的名称(Name) 类的属性(Attribute) 可见性可见性 属性名称属性名称 :属性类型:属性类型 = =初始值初始值 属性字符串属性字符串(1) 可见性 可见性可见性 属性名称属性名称 :属性:属性类
7、型类型 = =初始值初始值 属性字符串属性字符串可见性可见性RoseRose图注图注UMLUML图注图注PublicPublic+ +ProtectedProtectedPrivatePrivate- -(1) 可见性 可见性可见性 属性名称属性名称 :属性:属性类型类型 = =初始值初始值 属性字符串属性字符串(2) 属性名称 可见性可见性 属性名称属性名称 :属性:属性类型类型 = =初始值初始值 属性字符串属性字符串(3) 属性类型 可见性可见性 属性名称属性名称 :属性:属性类型类型 =初始值初始值 属性字符串属性字符串(4) 初始值 可见性可见性 属性名称属性名称 :属性:属性类型类
8、型 =初始值初始值 属性字符串属性字符串(5) 属性字符串 可见性可见性 属性名称属性名称 :属性:属性类型类型 = =初始值初始值 属性字符串属性字符串类的操作(Operation) 可见性可见性 操作操作名称名称 (参数表)(参数表):返回类型:返回类型属性字符串属性字符串(1)类的操作:可见性+public#protected-privateRoseUML可见性 可见性可见性 操作操作名称名称 (参数表)(参数表):返回类型:返回类型属性字符串属性字符串(2)类的操作:操作名称 可见性可见性 操作操作名称名称 (参数表)(参数表):返回类型:返回类型属性字符串属性字符串(3)类的操作:参
9、数表 可见性可见性 操作操作名称名称 (参数表)(参数表):返回类型:返回类型属性字符串属性字符串(4) 返回类型 可见性可见性 操作操作名称名称 (参数表)(参数表) :返回类型:返回类型属性字符串属性字符串类的定义画成类图例如: 类的定义如下: public class Circle private: Point Center; float radius; public: Circle(); float area(float ratio); float scale(); void move(Point location); Circle - Center: Point -radius: f
10、loat +Circle() +area(ratio:float):float +scale():float +move(location: Point)二、类图的组成类的职责 在标准的UML定义中,有时还应当指明类的另一种信息,那就是类的职责。类的职责指的是对该类的所有对象所具备的那些相同的属性和操作共同组成的功能或服务的抽象。 在声明类的职责的时候,可以非正式的在类图的下方增加一栏,将该类的职责逐条描述出来。类的职责的描述并不是必须的,因此也可以将其作为文档的形似存在,也就是说类的职责其实只是一段或多段文本描述。一个类可以有多种职责,设计得好的类一般至少有一种职责。二、类图的组成类的约束
11、类的约束指定了该类所要满足的一个或多个规则。在UML中,约束是用一个大括号括起来的文本信息。二、类图的组成类的注释 接口是在没有给出对象的实现和状态的情况下对对象行为的描述。 通常,在接口中包含一系列操作但是不包含属性 一个类可以通过实现接口从而支持接口所指定的行为。 在UML中,接口的表示方式是使用一个带有名称的小圆圈来进行表示接口 接口则是一种类似于抽象类的机制,它是一个没有具体实现的类 当接口被其他类依赖的时候,也就是说一个接口在某个类中实现后,一个类通过一个依赖关系与该接口相连接。 这时,依赖类仅仅是依赖于指定接口中的那些操作,而不依赖于接口实现类的其他部分。接口的依赖关系和泛化关系
12、接口之间的泛化关系二、类之间的关系依赖关系泛化关系关联关系实现关系依赖关系 一个类使用了另外一个类。表现在代码层面,为类B作为参数被类A在某个method方法中使用依赖关系泛化关系关联关系关联关系:关联名称关联关系:角色 聚集关系 聚集关系描述的是部分与整体关系的关联。 它将一组元素通过关联组成一个更大、更复杂的单元。 聚集关系描述了has ahas a的关系 聚集关系由端点带有空心菱形的线段表示。其中头部指向整体部分类可以没有整体类而独立存生。组合关系 组合关系则是一种更强形式的关联。 在组合中,成员对象的生命周期取决于聚合的生命周期。 组合关系不仅控制着成员对象的行为,而且控制着成员对象的
13、创建和结束。一个电子邮件消息由邮件头、邮件体和未指明数目的附件构成。简单描述简单描述它们之间的关系。它们之间的关系。之间之间的关系。的关系。类的关系:聚集与组成 MailMessageHeaderBodyAttachment111*关联关系:多重性 多重性标识语义关联关系:多重性 修饰符语义 0仅为0个1恰为1个0.10个或者1个0.50个到5个0.n0个到无穷个*若干个n无穷个实现关系 类之间的关系总结 关系关系 功能功能表示图形表示图形依赖关系依赖关系两个模型元素之间的依赖关系两个模型元素之间的依赖关系泛化关系泛化关系更概括地描述和更具体的种类之更概括地描述和更具体的种类之间的关系,适应于
14、继承间的关系,适应于继承关联关系关联关系类实例间连接的描述类实例间连接的描述实现关系实现关系声明声明和实现间的关系和实现间的关系 OO建模的一个普遍问题是,当类之间具有多对多关系时,一些属性不能容易地放入一个类中。例如,下图所示的公司与员工的类关系 当每个Person与雇佣它的Company间存在薪水属性时会发生什么呢?薪水记录在何处呢?记录在Person类中还是在Company类中?类的关系:关联类 薪水实际上是关联本身的特性,对于Person对象和Company对象之间的每个雇佣链接都存在特定雇佣的特定薪水。 UML允许使用关联类来建模这种情况,如下图所示。类的关系:关联类关联类既是关联类
15、既是关联又是类关联又是类类元 类图(Class Diagram)显示了系统的静态结构,而系统的静态结构构成了系统的概念基础。 在大多数的UML模型当中,我们可以把这些概念概括为以下四种,称为类元:1. 类2. 接口3. 数据类型4. 构件类元是对有实例且有属性形式的结构特征和操作形类元是对有实例且有属性形式的结构特征和操作形式的行为特征建模元素的统称。式的行为特征建模元素的统称。 在这个练习中,将会通过识别到目前为止学习的在这个练习中,将会通过识别到目前为止学习的UMLUML标标记符来阅读下面的类图,如图所示。记符来阅读下面的类图,如图所示。 练习步骤:练习步骤: 1 1)指出建模的类。)指出
16、建模的类。 2 2)指出所有属性及其显示的数据类型。)指出所有属性及其显示的数据类型。 3 3)指出所有显示的操作。)指出所有显示的操作。 4 4)指出找到的关联。)指出找到的关联。 5 5)指出建模的角色。)指出建模的角色。 6 6)指出图中使用的多重性。)指出图中使用的多重性。练习:阅读一个类图例例 :机房收费:机房收费的类图的类图四、对象图 对象图(Object Diagram)是由对象(Object)和链(Link)组成的。对象图的目的在于描述系统中参与交互的各个对象在某一时刻是如何运行的。对象的表示法 对象名 对象名:类名 两个部分是可选的,如果有类名,则必须加冒号,对象名加下划线
17、属性 由于对象是具体事物,则所有属性均已确定,因此在属性后面列出其值 对象元素中不列出操作对象图 Rose中没有专门的对象图,可在协作图中表示。对象图 在UML中引入对象图,用于描述一个参与交互的对象在交互过程中某一时刻的状态。 对象图(Object Diagram)是描述在某一时刻,一组对象以及它们之间关系的图形。 对象图是描述系统交互的静态图形,它由协作的对象组成,但不包含在对象之间传递的任何消息。练习需求描述小王是一个爱书之人,家里各类书籍已过千册,而平时小王是一个爱书之人,家里各类书籍已过千册,而平时又时常有朋友外借,因此需要一个个人图书管理系统。又时常有朋友外借,因此需要一个个人图书
18、管理系统。该系统应该能够将书籍的基本信息按计算机类、非计算该系统应该能够将书籍的基本信息按计算机类、非计算机类分别建档,实现按书名、作者、类别、出版社等关机类分别建档,实现按书名、作者、类别、出版社等关键字的组合查询功能。在使用该系统录入新书籍时系统键字的组合查询功能。在使用该系统录入新书籍时系统会自动按规则生成书号,可以修改信息,但一经创建就会自动按规则生成书号,可以修改信息,但一经创建就不允许删除。该系统还应该能够对书籍的外借情况进行不允许删除。该系统还应该能够对书籍的外借情况进行记录,可对外借情况列表打印。另外,还希望能够对书记录,可对外借情况列表打印。另外,还希望能够对书籍的购买金额、
19、册数按特定时间周期进行统计籍的购买金额、册数按特定时间周期进行统计 发现类小王小王是一个爱书之是一个爱书之人人,家里家里各类各类书籍书籍已过千册,而平时已过千册,而平时又时常有又时常有朋友朋友外借,因此需要一个外借,因此需要一个个人图书管理系统个人图书管理系统。该系统应该能够将书籍的该系统应该能够将书籍的基本信息基本信息按按计算机类计算机类、非计算非计算机类机类分别建档,实现按分别建档,实现按书名书名、作者作者、类别类别、出版社出版社等等关关键字键字的组合查询的组合查询功能功能。在使用该系统录入。在使用该系统录入新书籍新书籍时时系统系统会自动按会自动按规则规则生成生成书号书号,可以修改,可以修
20、改信息信息,但一经创建就,但一经创建就不允许删除。该系统还应该能够对书籍的外借情况进行不允许删除。该系统还应该能够对书籍的外借情况进行记录记录,可对,可对外借情况列表外借情况列表打印。另外,还希望能够对书打印。另外,还希望能够对书籍的籍的购买金额购买金额、册数册数按按特定时间周期特定时间周期进行统计进行统计 筛选备选类“小王小王”、“人人”、“家里家里”很明显是系统外的概念,无须对其建模;很明显是系统外的概念,无须对其建模;而而“个人图书管理系统个人图书管理系统”、“系统系统”指的就是将要开发的系统,即系指的就是将要开发的系统,即系统本身,也无须对其进行建模;统本身,也无须对其进行建模;很明显
21、很明显“书籍书籍”是一个很重要的类,而是一个很重要的类,而“书名书名”、“作者作者”、“类类别别”、“出版社出版社”、“书号书号”则都是用来描述书籍的基本信息的,因则都是用来描述书籍的基本信息的,因此应该作为此应该作为“书籍书籍”类的属性处理,而类的属性处理,而“规则规则”是指书号的生成规则,是指书号的生成规则,而书号则是书籍的一个属性,因此而书号则是书籍的一个属性,因此“规则规则”可以作为编写可以作为编写“书籍书籍”类类构造函数的指南。构造函数的指南。“基本信息基本信息”则是书名、作者、类别等描述书籍的基本信息统称,则是书名、作者、类别等描述书籍的基本信息统称,“关键字关键字”则是代表其中之
22、一,因此无需对其建模;则是代表其中之一,因此无需对其建模;“功能功能”、“新书籍新书籍”、“信息信息”、“记录记录”都是在描述需求时使用都是在描述需求时使用到的一些相关词语,并不是问题域的本质,因此先可以将其淘汰掉;到的一些相关词语,并不是问题域的本质,因此先可以将其淘汰掉;筛选修选类“计算机类计算机类”、“非计算机类非计算机类”是该系统中图书的两大分类,因此应该是该系统中图书的两大分类,因此应该对其建模,并改名为对其建模,并改名为“计算机类书籍计算机类书籍”和和“非计算机类书籍非计算机类书籍”,以减少,以减少歧义;歧义;“外借情况外借情况”则是用来表示一次借阅行为,应该成为一个候选类,多个则
23、是用来表示一次借阅行为,应该成为一个候选类,多个外借情况将组成外借情况将组成“外借情况列表外借情况列表”,而外借情况中一个很重要的角色是,而外借情况中一个很重要的角色是“朋友朋友”借阅主体。虽然到本系统中并不需要建立借阅主体。虽然到本系统中并不需要建立“朋友朋友”的资料库,的资料库,但考虑到可能会需要列出某个朋友的借阅情况,因此还是将其列为候选但考虑到可能会需要列出某个朋友的借阅情况,因此还是将其列为候选类。为了能够更好地表述,将类。为了能够更好地表述,将“外借情况外借情况”改名为改名为“借阅记录借阅记录”,而将,而将“外借情况列表外借情况列表”改名为改名为“借阅记录列表借阅记录列表”;“购买
24、金额购买金额”、“册数册数”都是统计的结果,都是一个数字,因此不用将都是统计的结果,都是一个数字,因此不用将其建模,而其建模,而“特定时限特定时限”则是统计的范围,也无需将其建模;不过从这则是统计的范围,也无需将其建模;不过从这里的分析中,我们可以发现,在该需求描述中隐藏着一个关键类里的分析中,我们可以发现,在该需求描述中隐藏着一个关键类书籍书籍列表,也就是执行统计的主体。列表,也就是执行统计的主体。得到候选类在使用在使用“名词动词法名词动词法”寻找类的时候,很多团队会在此寻找类的时候,很多团队会在此耗费大量的时间,特别是对于中大型项目,这样很容易耗费大量的时间,特别是对于中大型项目,这样很容易迷失方向。其实在此主要的目的是对问题领域建立概要迷失方向。其实在此主要的目的是对问题领域建立概要的了解,无需太过咬文嚼字的了解,无需太过咬文嚼字 书籍 计算机类书籍 非计算机类书籍借阅记录 借阅记录列表 书籍列表关联分析,建模,多重性分析,再建模职责分析书籍类:从需求描述中,可找到书籍类:从需求描述中,可找到书名、类别、作者、出版社书名、类别、作者、出版社;同时从;同时从统计的需要中,可得知统计的需要中,可得知“定价定价”也是一个关键的成员变量。也是一个关键的成员变量。书籍列表类:书籍列表就是全部书籍列表类:书籍列表就是全部的藏书列表,其主要的成员方法的藏书列表,其主
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论