1、第6章 统一建模语言统一建模语言UML与与Rational Rose工具工具 面向对象的实用拐杖内容概览n统一建模语言UML概述nRational Rose基本应用n用例图n静态视图n动态图n活动图n时序图n协作图n基于UML的图书管理信息系统设计RUP模型模型统一软件开发过程模型统一软件开发过程模型-新型软件生命周期模型新型软件生命周期模型 统一开发过程统一开发过程(Rational Unified Process,RUP)是一套面向对象的软件工程方法。)是一套面向对象的软件工程方法。统一软件开发过程模型统一软件开发过程模型,集成了许多软件开发模,集成了许多软件开发模型的优点,是一种综合了瀑
2、布模型,增量模型,型的优点,是一种综合了瀑布模型,增量模型,演化模型,快速原型模型优点的混合模型。具有演化模型,快速原型模型优点的混合模型。具有很好的可操作性和实用性,是目前最有效的软件很好的可操作性和实用性,是目前最有效的软件开发过程模型。开发过程模型。RUP的二维开发模型的二维开发模型n传统的瀑布开发模型是一个一维的模型,开发过程被划分为多个连续的阶段。n在RUP中,软件开发生命周期根据时间和RUP的核心工作流划分为二维空间。横轴表示项目的时间维,纵轴以内容来组织为自然的逻辑活动。RUP的二维开发模型的二维开发模型6.1统一建模语言统一建模语言UML概述概述 统一建模语言UML是绘制软件蓝
3、图的标准语言,可以对软件系统产品进行可视化、详述、构造和文档化。UML在实际软件项目开发中,可以用于构造各种类型系统的业务模型和软件模型。UML简介简介UML的全名:的全名:Unified Modeling Language 统一建模语言统一建模语言UML是是Booch,Rumbaugh和和Jacobson三位著名的三位著名的 研究面向对象方法的计算机专家的研究成果研究面向对象方法的计算机专家的研究成果UML已被已被OMG(Object Management Group)采)采纳,作为国际标准。纳,作为国际标准。UML是一种用于对软件系统进行建模的语言,独立是一种用于对软件系统进行建模的语言,
4、独立于软件开发过程于软件开发过程,不是一门程序设计语言,不是一门程序设计语言 UML发展历程发展历程6.1.1 UML的内涵的内涵 UML是一种通用的可视化建模语言,用于对软件进行描述、可视化处理、构造和建立软件系统工件的文档。它记录了与被构建系统有关的决策和理解,可用于对系统的理解、设计、浏览、配置、维护及控制系统的信息。UML适用于各种软件开发方法、软件生命周期的各个阶段、各种应用领域及各种工具,旨在统一以往建模技术,吸收当今软件开发的最佳方案从而形成一种标准的方法。需要说明的是,UML是一种建模语言,而不是一种方法。从原理上讲,任何方法都应由建模语言和建模过程两部分构成。其中建模语言提供
5、了这种方法中用于表示设计的符号(通常是图形符号);建模过程则描述进行设计所需要的步骤。6.1.2 UML的组成及应用的组成及应用1UML的模型元素的模型元素UML定义了两类模型元素:一类是用于表示模型中的某个概念,如类、对象、构件、用例、节点、接口、包和注释等;另一类是用于表示模型元素之间相互连接的关系,其中主要有:关联、泛化、依赖和聚集等。6.1.2 UML的组成及应用的组成及应用2UML的模型图的模型图UML是用来描述模型的,即描述系统的结构或静态特征,以及行为或动态特征。为了能支持从不同角度来考察系统,UML定义了五类共9种模型图。第一类是用例图,它从用户角度描述系统的功能,并指出各功能
6、的操作者。第二类是静态图,包括类图、对象图和包图。第三类是行为图,描述系统的动态模型和组成对象间的交互关系,包括状态图和活动图。第四类是交互图,描述对象间的交互关系,包括顺序图和协作图。第五类是实现图,包括构件图和配置图。6.2 Rational Rose基本应用基本应用 6.2.1 Rational Rose简介简介Rational Rose是由美国的Rational公司开发的、面向对象的可视化建模工具。利用Rose工具,可以建立用UML描述的软件系统模型,它支持UML中的用例框图、活动框图、序列框图、协作框图、状态框图、组建框图和布局框图等。而且通过其正向和逆向转出工程代码的特性,可以支持
7、C+、Java、Visual Basic和XML DTD 的代码生成和逆向转出工程代码。我们以Rose 2003为基础,掌握其进行UML建模的基本操作。13Rational Rose的作用的作用n整个开发团队可以使用用况图,来获得一个系统高整个开发团队可以使用用况图,来获得一个系统高层次的视图,并且可以协商项目的范畴;层次的视图,并且可以协商项目的范畴;n项目经理可以使用用况图和文档,把项目分解项目经理可以使用用况图和文档,把项目分解成便于管理的多个模块;成便于管理的多个模块;n系统分析员和客户在看到用况规格描述文档的系统分析员和客户在看到用况规格描述文档的时候,就可以明白系统将会提供什么样的
8、功能时候,就可以明白系统将会提供什么样的功能;n技术编写者在看到用况规格描述文档时,就可技术编写者在看到用况规格描述文档时,就可以着手编写用户手册和培训计划;以着手编写用户手册和培训计划;n系统分析员和软件开发者在看到时序图和协作系统分析员和软件开发者在看到时序图和协作图时,就可以明白整个系统的逻辑流程、对象图时,就可以明白整个系统的逻辑流程、对象以及对象之间的消息;以及对象之间的消息;14Rational Rose的作用的作用n质量检测员可以使用用况文档、时序图、协作图获质量检测员可以使用用况文档、时序图、协作图获得测试脚本所需要的信息;得测试脚本所需要的信息;n软件开发人员使用类图和状态图
9、,可以获得系软件开发人员使用类图和状态图,可以获得系统模块的详细视图以及模块之间的关系;统模块的详细视图以及模块之间的关系;n部署人员在使用组件图和部署图时,就可以明部署人员在使用组件图和部署图时,就可以明白哪些是可执行文件或白哪些是可执行文件或DLL文件,以及其他的文件,以及其他的一些组件是如何创建的,这些组件该部署在网一些组件是如何创建的,这些组件该部署在网络中哪些地方;络中哪些地方;n整个团队使用整个团队使用Rose模型,就可以确定从需求到模型,就可以确定从需求到编码的整个过程,并且从编码到需求这个逆过编码的整个过程,并且从编码到需求这个逆过程也是可以追踪的。程也是可以追踪的。Rose建
10、模环境建模环境nRose 提供了一套十分友好的界面让用户对系统进行建模。安装完Rose 之后,单击“开始”“程序”“Rational Software”“Rational Rose Enterprise Edition”命令选项,则会出现如图所示的界面,选择Rose新模型的应用架构(Framework)界面。开发人员可以选择J2EE,J2SE1.2,J2SE1.3,jfc-11等应用框架进行系统分析和设计。6.2.3 Rational Rose基本操作基本操作启动Rational Rose2003Create New Model窗体中给出了许多开发语言的模型向导,开发者可以根据自己所采用的语言
11、来进行选择如果不需要特定的语言环境,单击Cancel就可以直接进入主界面n菜单:集成了系统中几乎所有的操作n浏览器:用于在Rose模型中迅速漫游n文档窗口:用于查看或更新模型元素的文档n工具栏:用于迅速访问常用命令n图窗口:用于显示和编辑一个或几个UML图n日志窗口:用于查看错误和报告各个命令的结果l主菜单和工具栏Rose 2003Rose 2003主要菜单主要菜单任务2lRose 2003 视图Rose 2003Rose 2003主要菜单主要菜单6.3 用例图用例图 6.3.1 用例图简介用例图简介用例图是表示用例模型,其基本组成部件是用例、参与者和用例关系。1参与者参与者参与者是系统、子系
12、统或类发生与外部用户、进程或其他系统的交互。2用例用例在系统模型,用例表示主体(功能单元)对外部用户可见的行为。关 系功 能符 号关联参与者与其执行的用例之间的通信路径扩展在基用例上插入附加的行为,基用例并不知道extend包含在基用例上插入附加的行为,并显示地描述了该插入include用例泛化一般用例和特殊用例之间的关系,其中特殊用例继承了一般用例的特征并增加新特征用例图的内容用例图的内容n用例图的内容:n参与者n用例n泛化、扩展和包含关系参与者参与者n用例描述了系统的功能和所提供的服务。面对一个大系统,要列出所有用例的清单常常比较困难,比较简单的方法是先找出系统的参与者,分析每个参与者是怎
13、样使用系统的。n使用以下问题有助于发现系统的参与者谁使用系统?谁安装系统、维护系统?谁启动系统、关闭系统?谁从系统中获取信息,谁提供信息给系统?在系统交互中,谁扮演了什么角色?系统会与哪些其他系统相关联?识别参与者识别参与者 订货系统:客户给销售员发来传真订货,销售员下班前将当日订货单汇总输入系统。谁是系统的Actor?答案:销售员识别参与者识别参与者 寻呼台系统。用户如果预定了天气预报,系统每天定时给他发天气消息;如果当天气温高于35度,还要提醒用户注意防暑。这个叙述里,谁是寻呼台系统的Actor?用户?气温?时间?答案:用户,气温,时间都是Actor识别参与者识别参与者 商品销售系统。顾客
14、通过网络下单之后,系统计算出总计金额,税金,运费,并将数目传递给一个外挂的会计系统,该系统是另外购买的。有几个Actor?答案:顾客(商品销售系统),商品销售系统(会计系统)用例用例(UseCase)n用例是对一组序列动作的描述,系统执行这些动作将对用例的参与者产生可以观察的结果。n参与者和用例分别描述了“谁来做?”和“做什么?”这两个问题。n用例用实线的椭圆表示用例用例 n识别用例的最好办法就是从分析系统的参与者开始,考虑每个参与者是怎样使用系统。n根据下面的一些问题来识别用例:参与者希望系统提供什么功能;系统是否存储和检索信息;当系统改变状态时,是否通知参与者;是否存在影响系统的外部事件,
15、是哪个参与者通知系统这些外部事件。识别用例识别用例 Email客户端(如:outlook express):A在北京发邮件给深圳的B,系统提醒B”你有新邮件”,B收邮件。参与者:用户(A、B)、时间识别用例识别用例 论坛的应用:用户可以提问,别人来回答,如果有自己问题被解答的话,就给发问者发一份邮件通知。注意:发邮件这个用例可以是单独的用例,也可以是由回答用例扩展出来的用例用例之间的关系用例之间的关系 泛化关系 包含关系 扩展关系泛化泛化(generalization)当多个用例共同拥有一种类似的结构和行为的时候我们可以将它们的共性抽象成为父用例,其他的用例作为泛化关系中的子用例。泛化举例(一
16、):泛化泛化(generalization)泛化举例(二):包含包含(include)包含是指基本用例(base use case)会用到包含用例(inclusion),具体地讲,就是将包含用例的事件流插入到基础用例的事件流中。包含用例是可重用的用例多个用例的公共用例。扩展扩展(extend)将扩展用例的事件流在一定的条件下按照相应的扩展点插入到基础用例中。n基础用例不必知道扩展用例的任何细节,它仅为其提供扩展点。n扩展用例的行为是否被执行要取决于主事件流中的判定点。包含用例与扩展用例的区别包含用例与扩展用例的区别相对于基础用例,扩展用例是可选的,而包含用例则不是。如果缺少扩展用例,基础用例还
17、是完整的,而缺少包含用例,则基础用例就不完整了。扩展用例的执行需要满足某种条件,而包含用例不需要。扩展用例的执行会改变基础用例的行为,而包含用例不会。37用例建模用例建模 1创建用例图创建用例图(1)选定浏览器窗口中的【选定浏览器窗口中的【Use Case View】;(2)单击鼠标右键,在弹出的快捷菜单中选择【单击鼠标右键,在弹出的快捷菜单中选择【New】;(3)在菜单【在菜单【New】产生的下级菜单中选择要新建的图产生的下级菜单中选择要新建的图【Use Case Diagram】。】。以上步骤如图以上步骤如图2-19所示,生成的用况图,如图所示,生成的用况图,如图6-7所示。所示。38用例
18、图用例图 用例图的建模符号实验实验1:任务解决:任务解决ATM终端系统完成以下任务:(1)客户可以通过ATM完成登录、取款、存款、通过信用系统付款、查询余额、修改密码、打印凭证等业务。(2)银行官员登录、修改密码、为ATM添加现金、维护ATM硬件。(3)信用系统启动来自客户的付款创建系统用例模型n创建系统用例的第一步是确定系统的参与者。ATM自动取款机系统的参与者包含以下三种:(1)客户(2)银行职员(3)信用系统创建系统用例模型创建系统用例模型实验1:绘制ATM自动柜员机系统总的用例图 ATM自动柜员机系统总的用例图 取款存款转账查询余额客户修改密码硬件维护银行官员添加现金信用系统还款实验实
19、验2:“学生成绩管理信息系统”功能模块如下,分析教师登记成绩业务过程,并建立教师登记成绩用例图6.4 静态视图静态视图静态视图是UML的基础,是展现系统的静态结构组成及特征,包括类图、对象图和包图。其中,类图描述系统中类的结构,不仅定义系统中的类,表示类之间的关系如关联、依赖、聚合等,也包括类的内部结构(类的属性和操作)。类图描述的是一种静态关系,在系统的整个生命周期都是有效的。对象图是类图的实例,几乎使用与类图完全相同的标识。类图和对象图的不同点在于对象图显示类的多个对象实例,而不是实际的类。一个对象图是类图的一个实例。由于对象存在生命周期,因此对象图只能在系统某个时间段存在。包图是由包或类
20、组成,用于描述系统的分层结构。1 1、类图及对象图的基本符号、类图及对象图的基本符号类图类图类名类名属性:类型属性:类型操作操作对象:类名对象:类名属性名值属性名值操作操作关联关联 依赖依赖聚合聚合 泛化泛化类图类图类图的说明:类图的说明:类的命名类的命名 类是一组对象的抽象,应尽量做到类是一组对象的抽象,应尽量做到“见名识意见名识意”。定义属性定义属性 可见性可见性 属性名属性名:类型名类型名=初值初值 约束特性约束特性可见性:公有(可见性:公有(Public)私有(私有(Private)保护(保护(Protected)约束特性:该属性的约束说明约束特性:该属性的约束说明定义属性时,属性名必
21、须要有,其它任选定义属性时,属性名必须要有,其它任选.关联(关联(association)角色当一个类处于关联的某一端时,该类就在这个关系中扮演了一个特定的角色。它呈现的是对另一端的职责。可以显式地命名类在关联中所扮演的角色。聚合关联用于指出类间的聚合关联用于指出类间的“整体整体-部分部分”关系。关系。共享聚合(共享聚合(aggregation(空心菱形)共享聚合是指它的共享聚合是指它的“部分部分”对象可以是多个对象可以是多个 “整体整体”对象对象的一部分。的一部分。聚合关联聚合关联 Rose 2003并不提供“共享聚合”这种图形(空心菱形)1.可以先画一个单向关联的关系,2.然后右键单击这个
22、关系,open specification-Role B Detail,3.选择 aggregation(空心)的关系。组合聚集组合聚集 组合是聚合的一种形式,它具有强的拥有关系,整体与部分的生命组合是聚合的一种形式,它具有强的拥有关系,整体与部分的生命周期是一致的。周期是一致的。“部分部分”生存在生存在“整体整体”中,它们与中,它们与“整体整体”一起消亡。一起消亡。整体的整体的重数重数必须是必须是0 0或或1 1。在在UMLUML中,组合是一种特殊的关联,用整体端有实心菱形箭头的中,组合是一种特殊的关联,用整体端有实心菱形箭头的简单关联修饰它。简单关联修饰它。聚集关联聚集关联Rose 200
23、3并不提供“组合关系”这种图形(实心菱形)1.右键单击这个关系,open specification-Role B Detail,2.选择aggregation(空心)的关系,3.你会发现Contenment有三项选(By Value,By Reference,Unspecified),在你选上By Value的时候,菱形就变成实心的了。泛化泛化也称之为继承,表示类之间的一般与特殊的关系,也称之为继承,表示类之间的一般与特殊的关系,即即“一般(父)一般(父)”类是类是“特殊(子)特殊(子)”类的类的泛化泛化,“特殊特殊”类是类是“一般一般”类的类的特化特化。泛化就是简单的泛化就是简单的继承关系
24、继承关系。举例:网络教学系统中举例:网络教学系统中“用户用户”是一般类,拥有姓名、电话和邮箱属性是一般类,拥有姓名、电话和邮箱属性和登陆、收邮件的操作。和登陆、收邮件的操作。“教师教师”和和“学生学生”属于属于“用户用户”类,分别是类,分别是“用户用户”类的类的特殊类(子类),自动地继承了特殊类(子类),自动地继承了“用户用户”类的属性和操作,拥有姓类的属性和操作,拥有姓名、电话和邮箱属性,可以进行登陆、收邮件的操作。同时子类也可名、电话和邮箱属性,可以进行登陆、收邮件的操作。同时子类也可以根据需要添加属于自己的属性和操作。如学生有自己的学号、班级以根据需要添加属于自己的属性和操作。如学生有自
25、己的学号、班级属性和考试操作。教师有自己的工作证号、部门属性和授课等操作。属性和考试操作。教师有自己的工作证号、部门属性和授课等操作。泛化关联泛化关联泛化关联的表示泛化关联的表示请举出生活、学习过程中泛化关联的例子?多重继承示例多重继承示例n“交通工具”分为“汽车”和“船”两类,而“水陆两用汽车”既是汽车又是船,那么在对交通工具进行抽象时,就可认为“水陆汽车”类既继承了汽车类又继承了船类,这就是多重继承。请画出它们的泛化关联。依赖依赖两个模型元素之间的语义连接,一个是独立的模型元两个模型元素之间的语义连接,一个是独立的模型元素,另一个是依赖的模型元素。独立元素的变化会影素,另一个是依赖的模型元
26、素。独立元素的变化会影响依赖元素。响依赖元素。如下例,如下例,“讨论班讨论班”类使用类使用“学生学生”类作为参数,这类作为参数,这意味着如果学生发生变化,会影响到讨论班。所以讨意味着如果学生发生变化,会影响到讨论班。所以讨论班依赖于学生论班依赖于学生依赖关联依赖关联请指出类图中的关系请指出类图中的关系CFADGE1.n1.n1.n1.nB1.n11.n1类图的建模符号类图应用举例类图应用举例小王是一个爱书之人,家里各类书籍已过千册,而平时小王是一个爱书之人,家里各类书籍已过千册,而平时又时常有朋友外借,因此需要一个个人图书管理系统。又时常有朋友外借,因此需要一个个人图书管理系统。该系统应该能够
27、将该系统应该能够将书籍书籍的基本信息按的基本信息按计算机类计算机类、非计算非计算机类机类分别建档,实现对分别建档,实现对书籍的管理书籍的管理:按书名、作者、类:按书名、作者、类别、出版社等关键字的组合查询功能;对书籍的购买金别、出版社等关键字的组合查询功能;对书籍的购买金额、册数按特定时间周期进行统计。额、册数按特定时间周期进行统计。该系统还应该能够对书籍的该系统还应该能够对书籍的借阅借阅情况进行记录,可实现情况进行记录,可实现计算机对外计算机对外借与归还的管理借与归还的管理。类图应用举例类图应用举例指出系统中的类属性、操作指出系统中的类属性、操作经过分析小王需要建立下列类及其类图书籍 计算机
28、类书籍 非计算机类书籍 书籍管理 借阅记录 借阅管理书籍类:书籍类:书名、类别、作者、出版社书名、类别、作者、出版社、价格、价格属性。属性。书籍管理:主要的操作是书籍管理:主要的操作是新增、修改、查询(按关键字查询)、统计(新增、修改、查询(按关键字查询)、统计(按特定时限统计册数与金额)。按特定时限统计册数与金额)。借阅:借阅:借阅人、借阅时间、书名。借阅人、借阅时间、书名。借阅管理:主要职责就是借阅管理:主要职责就是添加记录(借出)、删除记录(归还)以及打添加记录(借出)、删除记录(归还)以及打印借阅记录印借阅记录 找出系统中的类找出系统中的类画出系统中的类图画出系统中的类图类图应用举例类
29、图应用举例实验实验3:绘制:绘制ATM自动柜员机系统类图自动柜员机系统类图ATM自动柜员机系统工作流程如自动柜员机系统工作流程如下下,请画出其类图请画出其类图(1)客户将银行卡插入读卡器,读卡器识别卡的真伪,对于有效卡,接受该卡,并继续读卡,获取卡号。对于无效卡,弹出卡。(2)ATM屏幕负责接受客户输入的信息,并向用户提示相关信息。(3)客户可根据自己的需要可对其账户进行存款、取款、查询账户、转账、修改密码的操作。(3)ATM取款机负责按系统要求提供或接受现金、打印凭条的操作。6.5 状态图状态图6.5.1 状态图简介状态图简介一般来讲,状态图描述了一个特定对象的所有可能状态,及由于各种事件的
30、发生而引起状态之间的转移。对象可被看作是通过探测事件与系统外其他部分通信的孤立实体。事件表示对象可以探测到的各种变化,如接受到从一个对象到另一个对象的调用或某些值的改变等。任何可以影响对象的内容都可以称为事件。真实世界所发生的事情被建模为外部世界到系统的信号。一个状态图包括一系列的状态以及状态之间的转移。状态图状态图状态图基本符号:状态图基本符号:状态图状态图n状态(状态(State)是指在对象的生命周期中满足某些条件、)是指在对象的生命周期中满足某些条件、执行某些活动或等待某些事件时的一个条件或状况执行某些活动或等待某些事件时的一个条件或状况。n以下是电水壶的工作状态图以下是电水壶的工作状态
31、图关闭工作打开 没水 打开 有水 /烧水水开了/关状态转换的五要素状态转换的五要素源状态:即受转换影响的状态源状态:即受转换影响的状态目标状态:当转换完成后对象的状态目标状态:当转换完成后对象的状态 触发事件(触发事件(Event):用来为转换定义一个事件。):用来为转换定义一个事件。监护条件(监护条件(Guard Condition):决定是否激活转换):决定是否激活转换动作(动作(Action):转换激活时的操作):转换激活时的操作读状态图读状态图与状态与状态“关闭关闭”相关的转换有两个,其触发事件都是打开开关,只不过其相关的转换有两个,其触发事件都是打开开关,只不过其监护条件不同。如果对
32、象收到事件监护条件不同。如果对象收到事件t打开,那么将判断壶中是否有水;如打开,那么将判断壶中是否有水;如果果没水没水,则仍然处于,则仍然处于“关闭关闭”状态;如果状态;如果有水有水则转为则转为“工作工作”状态,并状态,并执行执行“烧水烧水”动作动作而与状态而与状态“工作工作”相关的转换也有两个,如果相关的转换也有两个,如果“水开了水开了”就执行关,关掉就执行关,关掉开关;如果烧坏了,就进入了终态了开关;如果烧坏了,就进入了终态了 关闭工作打开 没水 打开 有水 /烧水水开了/关烧毁Rose状态图建模图形符号 实验实验4:状态图实例:状态图实例 学生成绩管理信息系统中“教师登记成绩”过程包含的
33、状态有注册、审核、登录和登分4个状态:教师首次启动程序进入注册状态,注册成功后,进入等待审核状态;如果审核成功进入登录状态,否则继续等待审核;成功登录后进入登记分数状态,登记分数完毕结束程序。用状态图描述该过程中这4个状态的转移情况。实验实验5:图书对象状态图:图书对象状态图1、图书业务有编目、书库、借出、阅览室、注销五种状态。2、引起状态变化的事件/动作 (1)图书到达后,经验收,等待编目 (2)编目后可送入阅览室供阅览或进入书库 (3)阅览室的书籍经批准予以注销 (4)书库中的书主要用于借阅 (5)借出的书归还后入库,如果遗失,则注销3、画出图书业务状态图图书对象状态图图书对象状态图3、状
34、态图 6.6 活动图活动图 6.6.1 活动图简介活动图简介活动图是具有节点和流程的图,显示应用控制(也可以是数据)通过一次计算行为的各步骤流程。计算步骤可以并发执行,也可以顺序执行。活动图包括同步和分支元素,和传统的流程图相比有相似之处,但是更强大,常常用来表示并行过程。传统流程图只支持顺序和分支元素,一般用来表示串行过程。活动图的符号活动图的符号n一个活动图必然有一个开始状态 n至少有一个结束状态 n转移用来表示活动或状态间的控制流 n有分支时要在分支路径中注明分支条件 n分岔用来开始并行处理 n联结用于把并行处理转换为单个处理 Rose活动图的建模图形符号例:ATM登录活动图插卡初始化验
35、证卡准备登陆提示输入密码 卡有效 提示卡无效 卡无效 输入密码验证密码提供操作选项 密码有效 提示密码错误 密码无效 退卡登录失败登录有效密码输入少于3次 第三次密码错误 实验实验6:在学生成绩管理信息系统中,以教师登记成绩模块包含的教师登分功能为例,其业务流程是对教师登录系统时的用户名及口令信息进行验证,如果正确则可以开始选择学生所属的班级、考试的课程进行成绩的登记或修改,还可以进行教师个人信息的修改;如果登录信息有误,那么返回到登录界面,创建教师登分活动图。6.7 时序图时序图6.7.1 时序图简介时序图简介时序图(Sequence Diagram),又称为顺序图,是用来描述对象之间的交互
36、关系,着重体现对象间消息传递的时间顺序。时序图存在两个轴:水平轴表示不同的对象,垂直轴表示时间。时序图中的对象用一个带有垂直虚线的矩形框表示,并标有对象名和类名,垂直虚线是对象的生命线,用于表示在某段时间内对象的存在。对象间的通信通过在对象生命线间画消息来表示,消息的箭头表明消息的类型。时序图时序图 ATM机机“登录成功登录成功”的操作顺序:的操作顺序:ATM用户用户将磁卡插入将磁卡插入读卡机读卡机,读卡机读卡后初始化登录,读卡机读卡后初始化登录屏幕屏幕,登录屏幕提示用户输入密码,用户输入密码后,系统将之与数据登录屏幕提示用户输入密码,用户输入密码后,系统将之与数据库中保存的库中保存的帐户帐户
37、密码进行校对,并将结果返回给用户。密码进行校对,并将结果返回给用户。分析:分析:“登录成功登录成功”活动的执行顺序是:活动的执行顺序是:(1)插卡插卡(2)读卡读卡(3)初始化登录屏初始化登录屏(4)提示输入密码提示输入密码(5)密码输入密码输入(6)验证密码验证密码(7)密码有效密码有效(8)返回返回ATM机机“登录成功登录成功”的时序图的时序图对象生命线活动期消息时序图时序图n对象与角色:最顶上一排矩形框。在对象与角色:最顶上一排矩形框。在交互图中,参与交互的对象既可以是交互图中,参与交互的对象既可以是具体的事物,又可以是原型化的事物。具体的事物,又可以是原型化的事物。作为具体的事物,一个
38、对象代表现实作为具体的事物,一个对象代表现实世界中的某个东西。例如,世界中的某个东西。例如,用户用户作为作为类用户的一个实例,可以代表一个特类用户的一个实例,可以代表一个特定的用户。定的用户。n生命线与控制焦点:每个对象都有自生命线与控制焦点:每个对象都有自己的生命线,对象生命线是一条垂直己的生命线,对象生命线是一条垂直的虚线,用来表示一个对象在一段时的虚线,用来表示一个对象在一段时间内存在。间内存在。时序图时序图n消息:用来描述对象之间所进行的通信的。消息:用来描述对象之间所进行的通信的。n消息分为简单消息、同步消息、异步消息、返回消消息分为简单消息、同步消息、异步消息、返回消息息(1)同步
39、消息:表示该消息完成之前,同一个对象不能再发送下一)同步消息:表示该消息完成之前,同一个对象不能再发送下一条消息。条消息。(2)异步消息:表示不必等待来自该消息的响应,同一个对象即可)异步消息:表示不必等待来自该消息的响应,同一个对象即可发出下一条消息。发出下一条消息。(3)简单消息:表示不区分同步或异步。)简单消息:表示不区分同步或异步。(4)返回消息:表示控制流返回到调用的活动对象。)返回消息:表示控制流返回到调用的活动对象。Rose时序图的建模符号顺序图顺序图n顺序编号:整个消息的传递过程就形成了一顺序编号:整个消息的传递过程就形成了一个完整的序列,因此通过在每个消息的前面个完整的序列,
40、因此通过在每个消息的前面加上一个用冒号隔开的顺序号来表示其顺序。加上一个用冒号隔开的顺序号来表示其顺序。除了顺序编号之外,还可以采用嵌套方案除了顺序编号之外,还可以采用嵌套方案(如(如1.1,1.2)实验实验7:时序图实例:时序图实例在学生成绩管理信息系统中,教师登记成绩的前提是必须在该系统中已经注册,并经过审核成为合法教师用户,才可以对所教的考试课程进行登分操作,或修改成绩,以及修改存在系统的个人信息,创建教师注册时序图。实验8:客户取款活动时序图 6.8 协作图协作图 6.8.1 协作图简介协作图简介协作图(Collaboration Diagram)用于描述相互协作的对象之间的交互关系和
41、连接关系。虽然时序图和协作图都是用来描述对象间的交互关系,但侧重点不一样。时序图着重体现交互的时间顺序,协作图则着重体现交互对象间的静态链接关系。时序图按时序图按F5可得到协作图可得到协作图协作图协作图n图书馆管理系统中的管理员登录活动的协作图。对象关联消息 实验实验9:教师注册过程协作图:教师注册过程协作图以学生成绩管理信息系统教师登记成绩模块中教师注册过程为例,进行协作图创建的操作。实现建模实现建模n实现建模的目的n在完成系统的逻辑设计之后,即可开始进行系统的物理设计及实现,如可执行文件、库、表、文件和文档等。因为建模的系统属于软件系统,所以可以通过实现方式图来帮助设计系统的整体物理架构。
42、n实现方式图由组件图与部署图组成。组件图的建模符号 构件图构件图 n构件:n在UML中,构件是指系统中可替换的物理部分,是软件的单个组成部分。包括源代码文件、可执行文件、库、数据库、JavaBean等。n构件是定义了良好接口的物理实现单元,它封装了实现并提供了一组接口的实现。n在组件图中,组件表示为一个矩形,且一侧有凸出的两个小矩形。组件名字标在矩形中。student.MDF 构件图构件图 组成组成n构件图中通常包含3种元素:构件、接口和依赖关系。构件图通过这些元素描述软件的各个构件及它们之间的依赖关系,以及构件的接口和调用关系。部署图部署图 部署图可以用来描述系统硬件的拓扑结构以及软件在此基
43、础上的分布。部署图只有两个主要的标记符,即节点和通信关联。节点用来表示一种硬件,如计算机、扫描仪、手机、路由器等。在UML中,节点的标记符是一个立方体,在框的上方包含了节点的名称。部署图用关联关系表示各节点之间的通信路径。在UML中,部署图中的关联关系为一条实线。Router 部署图通信关联部署图通信关联 另外,在连接硬件时通常都会关心节点之间的连接方式,如红外、蓝牙、以太网、令牌、并行、USB、TCP等。因此,关联关系一般不使用名称,而是使用构造型,如、等表示。Computer WirelessScanner 部署图的建模图形符号 6.9 基于基于UML的图书管理信息系统设计的图书管理信息系
44、统设计在这一节中通过基于UML的开发案例,即图书管理信息系统的设计,说明如何将UML应用到实际项目进行开发。该应用系统的分析模型,首先使用用例进行描述,其次将用例扩展成设计模型。本节在设计模型中详细介绍其实现细节。以上这些开发过程都是利用IBM Rational Rose Enterprise V7.0工具实现的。6.9.1 需求分析需求分析预定取消预定借书还书系统维护图书管理员二增加标题修改或删除标题增加数目修改或删除数目增加借阅者修改或删除借阅者借阅者图书管理员一 6.9.1 需求分析需求分析 6.9.1 需求分析需求分析:借阅者:借阅者LendingWindowLendingWindow
45、:Title:Title:Borrower:Borrower:Loan:Loan:Item:Item1.find title()2.find(String)3.find item()4.find on title(Title)5.identify borrower()6.find(String)7.create(Borower)6.9.2 设计设计1体系结构设计体系结构设计UI PackageBusiness Objects PackgageDatabase PackageUtility Package 6.9.2 设计设计2详细设计详细设计3用户界面设计(用户界面设计(User-interf
46、ace Design)6.9.3实现(实现(Implementation)在构造(或称实现)阶段进行程序编写。该应用系统选择Java编程语言编写程序代码,Java可轻松地将逻辑类映射为代码组件,因为在类和Java代码文件之间有1对1的映射。6.9.4测试和部署测试和部署(Test and Deployment)编码结束后,UML的使用还没有结束,需要检验用例能否在已完成的应用系统中得到很好的支持。对于软件系统的部署,可以利用模型和本文做一份完整、细致的系统文档资料。小结小结支持UML的开发工具有很多,IBM Rational Rose是功能强大、实际应用较为广泛的一种。本章简要介绍了Rational Rose的主要功能、集成环境界面及基本常用操作,重点结合UML的用例图、类图、状态图、活动图、时序图和协作图,以实例讲述了Rational Rose的操作过程。