软件建模与UML实验指导书(共57页).doc
精选优质文档-倾情为你奉上软件建模与UML 实验指导书高晔 杨晓强 付立东 编西安科技大学前 言抽象、分解、模型化是计算机科学的主要技术手段。由于软件系统的复杂性以及人们对复杂性的认识能力有限,因此系统的设计者在系统设计之初往往无法全面理解整个系统。此时,人们就需要对系统进行建模。建模可以使设计者从全局把握系统及其内部的联系,而不致陷入纷杂的细节之中。模型可使具有复杂关系的信息简单易懂,使人们容易洞察系统的规律,并能有效地让人们将系统需求映射到软件结构上。统一建模语言(Unified Modeling Language, 简称UML)是一种定义良好、易于表达、功能强大的面向对象建模语言。适用于系统开发过程中从需求规格描述直到系统完成后的测试和维护。统一建模语言(UML)的产生为面向对象技术的推广规定了一致的表示,支持用例驱动,以架构为中心以递增和迭代地进行软件开发。Rational Rose集中体现了当代软件开发的先进思想,把面向对象的建模与螺旋上升式的开发过程相结合,支持团队开发,并且综合了其它的开发技术,提供了对UML标准的完美支持。本实验指导书试图通过一些实际的例子,使学习者熟悉Rational Rose开发环境,培养学习者运用面向对象思想分析和解决实际问题的能力,掌握UML建模技术,以达到系统的掌握面向对象的软件开发技术。本书由计算机系教师高晔、杨晓强、付立东编写。高晔编写了UML概况及实验1,2,3;杨晓强编写了实验5,6;付立东编写了实验7,8,9。硕士生段建荣负责文字及插图编辑,全书由高晔副教授统稿,软件工程教研室主任付燕副教授审阅。由于作者水平所限,难免存在一些不足之处,恳请读者批评指正。 2007年7月内容简介本书是为大学计算机类相关专业软件建模与UML课程编写的实验指导书,旨在指导学生了解、熟悉Rational Rose 开发环境,应用并熟练掌握UML的基本知识,理解面向对象的分析与设计方法,熟悉面向对象软件开发过程。本书结合软件建模与UML课程内容,编写了八个专题实验和一个综合型实验。目的是进一步加强和巩固理论知识,帮助学习者培养操作建模工具的技能,提高解决实际问题的能力。实验环境条件:PIII以上机型,内存512M以上,安装Rational Rose2003专心-专注-专业目 录 UML概况UML架构由视图、图、模型元素和通用机制等几个部分组成。1 UML从不同的视角为系统的构架建模,形成系统的不同视图,包括:Ø 用例视图,强调从用户的角度看到的或需要的系统功能。Ø 逻辑视图,展现系统的静态或结构组成及特征。Ø 并发视图,体现了系统的动态或行为特征。Ø 组件视图,体现了系统实现的结构和行为特征。Ø 配置视图,体现了系统环境的结构和行为特征。2 UML定义了9种不同类型的图,把它们有机地结合起来就可以描述系统的所有视图。Ø 用例图 Use case diagramØ 对象图 Object diagramØ 类图 Class diagramØ 序列图 Sequence diagramØ 协作图 Collaboration diagramØ 状态图 Statechart diagramØ 活动图 Activity diagramØ 组件图 Component diagramØ 配置图 Deployment diagram这9种图又可以分为5类,分别是:u 第1类,用例图(Use Case Diagram),从用户角度描述系统功能,并指出各功能的操作者。u 第2类,静态图(Static diagram),包括类图、对象图和包图。 u 第3类,行为图(Behavior diagram),描述系统的动态模型和组成对象间的交互关系,包括状态图和活动图。u 第4类,交互图(Interactive diagram),描述对象间的交互关系,包括时序图和合作图。 u 第5类,实现图(Implementation diagram),包括组件图和配置图。 3 通用机制用于表示其他信息,比如注释、模型元素的语义等。另外,它还提供扩展机制,使UML语言能够适应一个特殊的方法(或过程)、或扩充一个组织或用户。UML的目标是用面向对象的方式描述任何类型的系统。最直接的是用UML为软件系统创建模型,但UML也可用来描述其它非计算机软件的系统,或者是商业机构或过程。UML的应用贯穿在系统开发的五个阶段,它们是:1) 需求分析u UML的用例图描述客户需求,通过用例建模,可以对外部的角色以及它们所需要的系统功能建模。2)系统分析(问题域建模)u 系统结构:类图u 系统行为:协作图、状态图、时序图、活动图3)系统设计(系统框架建模)u 逻辑框架:细化问题域模型u 界面设计、数据设计u 物理框架:组件图、部署图4)系统实现u 对象设计:从系统框架到程序结构u 可复用构件、可复用系统框架5)系统测试u 单元测试:测试类(基于类图)u 结合测试:测试协作关系(基于构件图和协作图)u 系统测试:测试系统功能(基于使用案例图)总之,统一建模语言UML的应用领域很广泛,它既可以用于商业建模(business modeling)、软件开发建模的各个阶段,也可以用于其他类型的系统。它是一种通用(general)的建模语言,具有创建系统的静态结构和动态行为等多种结构模型的能力。UML语言本身并不复杂,也不很专业化,它具有可扩展性和通用性,适合为各种多变的系统建模。Rose是美国的Rational公司的面向对象建模工具,利用这个工具,可以建立用UML描述软件系统的模型,而且可以自动生成和维护C+、Java、VB、Oracle等语言和系统。Rational Rose包括了统一建模语言(UML),OOSE及OMT。其中UML由Rational公司3位世界级面向对象技术专家Grady Booch、Ivar Jacobson和Jim Rumbaugh通过对早期面向对象研究和设计方法的进一步扩展而得来的,它为可视化建模软件奠定了坚实的理论基础。Rational Rose是菜单驱动式的应用程序,可以通过工具栏使用其常用工具。它的界面分类3个部分Browser窗口、Diagram窗口和Document窗口。Browser窗口用来浏览、创建、删除和修改模型中的模型元素;Diagram窗口用来显示和创作模型的各种视图;而Document窗口用来显示和书写各个模型元素的文档注释。实验 1 Rational-Rose的使用 实验学时:2实验类型:(设计型)一、实验目的与要求通过本实验的学习,使学生熟悉Rational Rose的操作环境,并熟练各个菜单项、工具栏、工作区等组成部分的操作与使用。为今后使用Rational-Rose工具建模奠定基础。 二、实验内容掌握Rational-Rose的基本建模操作包括:创建模型、保存模型、发布模型;全局选项的设置(可以通过菜单“ToolOptions”进行设置);框架设计(例如设计一个用例图);UML双向工程。三、实验步骤Rational Rose是菜单驱动式的应用程序,可以通过工具栏使用其常用工具。它的界面分为3个部分Browser窗口、Diagram窗口和Document窗口。Browser窗口用来浏览、创建、删除和修改模型中的模型元素;Diagram窗口用来显示和创作模型的各种图;而Document窗口则用来显示和书写各个模型元素的文档注释。 基本建模操作1)创建模型 Rose模型文件的扩展名是.mdl,要创建模型,需要完成下列步骤:a) 从菜单栏选择“FileNew”,或单击标准工具栏中的“New”按钮;b) 弹出如图2-14所示的对话框,选择要用到的框架,单击“OK”按钮,或者“Cancel”按钮(表示不使用框架)。 2) 保存模型 Rational Rose的保存,类似于其他应用程序。可以通过菜单或者工具栏来实现。a) 保存模型:通过选择菜单“FileSave”或者工具栏的“Save”按钮,来保存系统建模;b) 保存日志:激活日志窗口(见图2-30),通过菜单“FileSave Log As”来保存,或者右键单击日志窗口,在弹出的菜单中选择“Save Log As”命令来保存。3)导出与导入模型面向对象机制的一大优势就是重用技术。重用不公适用于代码,也适用于模型。Rose支持导出与导入模型和模型元素操作。a) 导出模型。选择菜单项【FileExport Model】,在弹出的对话框中输入导出文件名(.ptl)即可。b) 导入模型。选择菜单项【FileImport】,在弹出的对话框中输入导入的文件名(.ptl),供选择的文件类型有.ptl.、.mdl 、.cat 和.sub。4)发布模型 选择菜单栏的【ToolsWeb Publisher】选项,在弹出的对话框中选择要发布的模型视图和包,可以把Rose建立的模型发布到Web,使得其他人都能够浏览模型。5)使用控制单元Rose通过使用控制单元支持多用户的并行开发。6)使用模型集成器Rose中的模型集成器可以比较和合并多个Rose模型,这项功能在多个设计人员共同开发时十分有用。每个人可以独立工作,最后再将所有的模型集成到一起。7)使用注释8)在Rose模型元素中增加文件与URL右键单击浏览器中的模型元素:选择【NewFile】或【NewURL】;在弹出的对话框中选择相应的文件或URL。要删除文件或URL,只要在浏览器中右键单击文件名或URL并选择【Delete】 即可。提示:此处的删除操作只是删除Rose模型与文件之间的链接,而不会从系统中删除文件。9)使用包包的主要作用是:用于组织模型。用于版本控制。10)增加与删除图 设置全局选项1) 设置字体 2) 设置颜色四、思考题1Rational Rose的主界面由哪些部分组成。2Rational Rose中有哪几种视图,各个视图的作用是什么。 使用UML进行系统建模,就是使用面向对象的方法来分析系统,然后用可视化的模型将信息用标准的图形直观地显示出来,以此建立面向对象的系统模型。为了能够加深读者对UML建模技术的理解,我们选取了一个大家耳熟能详的实例图书馆管理系统,以它的整个建模过程为例来直观学习UML建模技术。本书中第2到第8个实验都是以图书馆管理系统为例来设计的。分析阶段最重要的是用例视图的建立,用例视图强调从用户的角度看到的所希望得到的功能,是被成为参与者的外部用户所能观察到的系统功能的模型图。通过用户视图,应该明确软件后续设计阶段所要完成的任务的基础,整个软件直到实现的过程都是围绕需求阶段的用例来进行的。 画好用例图(Use Case Diagrams)是由软件需求到最终实现的第一步,在UML中用例图用于对系统、子系统或类的行为的可视化,以便使系统的用户更容易理解这些元素的用途,也便利了软件开发人员最终实现这些元素。 用例图的组成UML中的用例图描述了一组用例、参与者以及它们之间的关系。用例图包括用例、参与者和用例之间的依赖、泛化以及关联关系三方面内容。(1)参与者(Actor)是系统外部的一个实体(可以是任何的事物或人),它以某种方式参与了用例的执行过程。参与者通过向系统输入或请求系统输入某些事件来触发系统的执行。参与者由他们参与用例时所担当的角色来代表。在图形上,参与者用人形图符表示。 (2)用例(Use Case)是一个叙述型的文档,用来描述一个参与者(Actor)使用系统完成某个事件时的事情发生顺序。用例是系统的使用过程。更确切的说,用例不是需求或者功能的规格说明,但用例也展示和体现出了其所描述的过程中的需求情况。图形上用例用一个椭圆来表示,用例的名字可以书写在椭圆的内部或下方。(3)用例之间的关系。用例除了与参与者发生关联外,还可以与系统中的其它用例具有多个关系,这些关系包括包含关系、扩展关系和泛化关系。应用这些关系的目的是为了从系统中抽取出公共行为和其变体。实验 2 用例图建模 实验学时:2实验类型:(设计型)一、实验目的与要求通过本实验的学习,使学生认识到用例图对整个系统建模过程的重要性,能根据系统的功能需求,分析系统的用例组成;确定用例图中的参与者,参与者与用例之间的关系以及用例与用例之间的关系;使用建模工具绘制用例图。二、实验内容以图书馆管理系统为例设计一个图书馆管理系统的用例图。三、实验步骤分析:(1) 确定系统涉及的内容图书馆管理系统用于对书籍的借阅以及对读者信息进行统一的管理,凡是有关这些操作的内容都属于系统的范围。u 读者: 借书 还书 书籍预定 u 图书馆管理员: 书籍借出处理 书籍归还处理 预定信息处理 u 系统管理员: 增加书目 删除或更新书目 增加书籍 减少书籍 增加读者账户信息 删除或更新读者账户信息 书籍信息查询 读者信息查询 (2) 确定系统的参与者对参与者的确定,需要分析系统涉及的问题领域,明确系统运行的主要任务。分析使用该系统主要功能部分的是哪些人。谁将需要该系统的支持以完成其工作。系统的管理者与维护者。 根据图书馆管理系统的需求分析得出,系统的参与者主要有以下3类: 读者(借阅者) 图书馆管理员 图书馆管理系统维护者 (3) 确定系统用例用例是系统参与者与系统在交互过程中所需要完成的事务。识别用例的最好办法就是从分析系统的参与者开始,考虑每个参与者是如何使用系统的。由于系统存在借阅者、图书馆管理员、系统维护人员3个参与者,所以在识别用例的过程中,可以将系统分为3个用例图分别考虑。1借阅者请求服务的用例Ø 登录系统 Ø 查询自己的借阅信息Ø 查询书籍信息Ø 预定书籍Ø 借阅书籍Ø 归还书籍2) 图书馆管理员处理借书、还书等的用例Ø 处理书籍借阅Ø 处理书籍归还Ø 删除预定信息3) 系统管理员进行系统维护的用例 Ø 查询借阅者信息Ø 查询书籍信息Ø 增加书目Ø 删除或更新书目Ø 增加书籍Ø 删除书籍Ø 添加借阅者账户Ø 删除或更新借阅者账户 用Rational Rose 来绘制用例图的基本操作如下:1创建用例。要建立新的用例图,可以选择【NewUse Case Diagram】菜单项。此时,在“Use Case Diagram”树型结构下多了一个名为“NewDiagram”的图标,右键单击此图标,在弹出的菜单中选择【Rename】菜单项,就可以为用例图重命名。最好为用例图模型取一个有意义的名字,此处取名为“Library”。2添加参与者与用例。双击用例图图标,出现用例图的编辑区和编辑工具栏,如图2.1所示,左边是用例图的编辑工具栏,右边是用例图的编辑区。图2.1 用例图的编辑区和编辑工具栏3工具栏的定制用户可以根据需要自行定制和添加工具栏中的图标按钮,操作方法:右键单击工具箱的空白处(注意别点到图标按钮),在弹出菜单中选择【Customize】菜单项后出现“自定义工具栏”对话框。用户在此对话框中定置自己需要的按钮。4添加参与者与用例之间以及用例之间的关系。(1)参与者与用例的绘制方法相同,首先点击工具栏中的图标按钮,然后在编辑区要绘制的地方单击鼠标左键。(2)设置用例的属性。在用例上双击,弹出用例属性设置对话框。5添加参与者与用例,用例之间的关系6完成图书馆管理系统的用例图设计分别如图2.2,图2.3,图2.4所示。图2.2借阅者请求服务的用例图 图2.3 图书馆管理员处理借书、还书的用例图图2.3系统管理员进行系统维护的用例图注意:构造用例图时,不需要关心系统的实现问题,每一个用例的内部细节不是本阶段需要考虑的问题,用例图的最终目的是说明系统对于用户来说是什么样子的,因此,能否正确反映用户的需求是用例视图的关键所在。四、作业对大型仓库管理系统进行需求分析,确定系统的参与者,识别出系统的用例,以及各用例之间的关系,然后,用Rational Rose对这些用例建模。五、思考题1什么是用例图,用例图由哪些部分组成。2什么是参与者,如何确定参与者。3简述用例之间有哪些关系。 静态视图包括类图,对象图和包图。其中类图描述系统中类的静态结构。它不仅定义系统中类,表示类之间的联系,如关联、依赖、聚合等,还包括内部结构(类的属性和操作)。通过分析用例和问题域,就可以得到相关的类,然后再把逻辑上相关的类封装成包。这样就可以很好的体现出系统的分层结构,使人们对系统层次关系一目了然。对象图是类图的实例,几乎与类图有完全相同的标识。他们的不同点在于对象图显示类图的多个对象实例,而不是实际的类,一个对象图是类图的一个实例。由于对象存在生命周期,因此对象图只能在系统的某一时间存在。包图由包或类构成,表示包与包之间的关系。包图用于描述系统的分层结构。实验3,实验4,实验5是有关UML静态视图的建模实验。类是对应用领域或应用解决方案中概念的描述。类图以类为中心组织。对象图主要是用来描述类的实例在特定时刻的状态。它可以是类的实例也可以是交互图的静态部分。对象图用与类图相似的符号描述,不同之处在于它用带下划线的名称来表示对象。类的名称类的名称是每个类中所必有的构成元素,用于同其它类相区分。类的名称应该来自系统的问题域,并且应该尽可能地明确,以免造成歧义。它通常是一个字符串,可分为简单名称和路径名称。单独的名称即不包含冒号的字符串叫做简单名称;用类所在的包的名称作为前缀的类名叫做路径名。类在它的包含者内有唯一的名称,这个包含者可能是一个包也可能是另一个类。类之间的关系类之间关系最常用的有4种,分别是表示类之间的使用关系的依赖关系;表示类之间一般和特殊关系的泛化关系;表示对象之间结构关系的关联关系;表示类中规格说明和实现之间关系的实现关系。实验 3 类图和对象图实验学时:2实验类型:(设计型)一、实验目的与要求掌握类的识别方法;理解类与类之间依赖关系,泛化关系,关联关系,实现关系的含义。理解类的继承性,分析属性和操作的可见性与可继承性;熟练使用建模软件创建出该系统的类图和类的实例化对象图。二、实验内容本实验要求学生完成图书馆管理系统的类图和对象图的创建。三、实验步骤分析:图书馆管理系统的不可缺少的7个类:Item、Title、Loan、Reservation、Borrower、Administrator、Librarian,前5个类之间有一定的关系。使用Rose绘制类图的基本操作步骤:1创建类图要创建图,可以右键单击“Logic View”节点,从弹出菜单中选择【NewClass Diagram】,新建一个名为Item的类,双击该类的图标,将会打开类图的编辑区域,如图3.1所示。图3.1 类图的编辑区域读者还可以使用实验2中介绍的方法的对工具栏进行定置,这里就不再详述。2加入类单击工具栏中类的图标,然后在类图编辑区域中某个位置单击鼠标左键,就可以在该图中绘制出一个类。3增加类的属性有两种方法可以增加类的属性(即类的成员变量)(1)使用“Class Specification”。双击类的图标打开“Class Specification”窗口,然后选择“Attributes”选项卡,在窗口中空白的地方单击右键,并且单击【Insert】按钮,添加name属性。(2)选择类的图标,单击右键,在弹出的菜单中选择【New Attributes】,添加name属性。双击name属性,打开“Class Attribute specification”对话框,如图3.2所示。图3.2 “Class Attribute specification”对话框在如图3.2所示的对话框中,可以对该属性的名字、类型、修饰符、初始值、可见性等进行设置。4增加类的方法增加类的方法与增加类的属性相似。5添加类之间的关系类之间的关系不同,表示方法也不相同。最后,绘制出图书馆管理系统的类图。1 参与者相关的类图3.3 参与者相关的类【类图说明】(1) Borrower类是借阅者的类,它的属性较多,包括借阅者的账户ID(User ID)、姓名(Name)、地址(Address)、邮编(Zip)、所借书籍的书目(Borrow_number)等。其中主要操作有借书(borrow)和还书(return_back)。(2) Librarian类是图书管理员的类,包括工作账号(WordID)、名字(Name)和地址(Address)等属性。(3) Administrator类是系统管理员类。2系统中用到的其它类图3.4 系统中用到的其它类【类图说明】(1) Title 是记录书目信息的类,包括书籍的名字(name)、作者(author)、ISBN、此种书籍的总数量(total_number)、借出的数量(borrowed_number)、是否允许借出(isAllowforBorrow)等属性。(2) Item类是具体某本书的类,属性包括书籍号(ID)。操作包括预订(reserve)、按书目查找(find_on_title)等(3) Loan类是某本书的借阅信息类,包括借阅书籍的ISBN、借阅的时间(data)等。(4) Reservation类是预订信息类,每个预订信息包括预订日期(data)、所预订书籍的ISBN、预订书籍的用户ID(userID)等属性。3各类之间的关系图3.5 各类之间的关系从类图的应用角度来看,图书馆管理系统的类图可分为:商业对象类图、数据库类图、效用类图、用户界面类图。其中,商业对象类图主要包括:读者信息、书籍信息和借阅信息等几个类。数据库类图便于数据库的操作,定义包含数据库基本信息的父类,包括存储、删除、更新和读写等内容。效用类图,包括对象信息的一些共有的内容的基础类。用户界面相应的类图比较复杂,比如,Base类图包含有关系统运行界面的基础部分的系统启动类,主窗口类,以及一些帮助和退出对话框的类。Function类图是系统运行界面的基本功能部分,包括借书、还书、预订书籍和取消预订的界面类。Information类图是系统运行界面的信息显示部分,包括书籍信息,读者信息的显示,查询各种信息的对话框等界面类。Maintenance类图,是系统运行界面的维护部分,包括读者信息,书籍信息的修改、更新和查询的内容。读者可以从这个角度出发,为图书馆管理系统的类图建模。对象图的建模过程:(1) 确定参与交互的各对象的类,可以参照相应的类图和交互图;(2) 确定类之间的关系,如依赖、泛化、关联和实现;(3) 针对交互在某特定时刻各对象的状态,使用对象图为这些对象建模;(4) 建模时,要根据建模的目标,绘制对象的关键状态和关键对象之间的连接关系。四、作业找出大型仓库管理系统中的类,确定各类之间的关系,并用Rational Rose绘制出此系统的类图。五、思考题1类图由哪些元素组成。2类之间有哪些关系。3什么是对象图,类图和对象图之间有何区别。包图是由包和包之间的关系组成的,它是维护和控制系统总体结构的重要建模工具。当对大型系统进行建模时,经常需要处理大量的类、接口、构件、节点和图,这时就很有必要将这些元素进行分组,即把那些语义相近并倾向于一起变化的元素组织起来加入同一包,这样方便理解和处理整个模型。同时也便于轻松地控制这些元素的可见性,使一些元素在包外可见,一些元素是隐藏在包内的。设计良好的包是高内聚、低耦合的,并且对其内容的访问具有严密的控制。包的名字和其他建模的元素一样,每个包都必须有一个区别于其他与其他包的名字。模型包是名字是一个字符串,它可分为简单名(simple name)和路径名(path name)。简单名是指包仅含一个简单的名称,路径名是指以包所位于的外围包的名字作为前缀的包名。包拥有的元素包是对模型元素进行分组的机制,它把模型元素划分成若干个子集。包可以拥有UML中的其他元素,包括类、接口、组件、节点、协作、用例和图,包甚至还可以包含其他包。图形上,包是带有标签的文件夹包的作用不仅仅是为模型元素分组。它还为所拥有的模型元素构成一个命名空间,这就意味着一个模型包的各个同类建模元素不能具有相同的名字,不同模型包的各个建模元素能具有相同的名字,因为它们代表不用的建模元素。在同一包内,不同种类的模型元素能够具有相同的名字,但可能会带来不必要的麻烦,不推荐这么做。包的可见性包的可见性用来控制包外界的元素对包内元素的可访问权限,这一点和类的可见性类似。可见性可以分成3种。(1)公有访问(public):包内的模型元素可以被任何引入了此包的其他包的内含元素访问。公有访问用前缀于内含元素名字的加号(+)表示。(2)保护访问(protected):表示此元素能被该模型包在继承关系上后继模式包的内含元素访问。保护访问用前缀于内含元素名字的号()表示。(3)私有访问(private):表示此元素可以被属于用一包的内含元素访问。私有访问用前缀于内含元素名字的减号()表示。包与类的区别包在很多方面与类相似,但是在对大系统建模时特别要注意区别包与类。类是对问题领域或解决方案的事物的抽象,包是把这些事物组织成模型的一种机制。包可以没有标识因为它没有实例,在运行系统中不可见;类必须有标识,它有实例,类的实例(对象)是运行系统的组成元素。实验 4 包图 实验学时:2实验类型:(设计型)一、实验目的与要求理解包在对大型系统建模时所起的作用以及重要性。对于特定体系结构视图中的建模元素,能够找出概念和语义上相互接近的元素,然后把这些元素放到一个包中。对问题域中一级有意义的体系结构视图,能够找出对于可视化、详述、构造和文档化每个视图的语义来说充分必要的元素,并将它们放到合适的包中。利用的包的可见性,达到合理访问包中元素的目的。二、实验内容本实验要求对图书馆管理系统中的类、接口、组件、节点和图进行分组,形成一个个包,并用Rational Rose绘制出图书馆管理系统中的包图。三、实验步骤分析:图书馆管理系统的包图包括UI包、商业对象(Business Object)包、效用(Utility)包和数据库(Database)包 。为包图建模的具体步骤如下。1分析系统模型元素,把概念上或语义上相近的模型元素纳入一个包。2 对于每一个包,标出其模型元素的可视性(公共、保护或私用)。3 确定包与包之间的依赖联系,特别是输入依赖。4 确定包与包之间的泛化联系,确定包元素的多态性与重载。5 绘制包图。(1) 创建包包既可以在Rose的“logic view”处创建,又可以在“Component View”处创建。可以在Rose的“logic view”的图标上单击鼠标右键,在弹出的菜单中选择【NewPackage】,Rose在“logic view”目录下创建一个名为“New Package”的包,右键单击包的图标,在弹出菜单中选择【rename】,可以更改创建的包的名字。然后,可以选中所创建的包,用鼠标将其手拖到右边的绘图区域,此时,在绘制区域会出现创建包的图标。另一种方法是双击“logic view”目录树下的“Main”子选项,在出现的工具栏中选择按钮,然后在绘制区域要绘制包的地方单击鼠标左键。此时,在左边的“logic view”目录树中会出现新建的包的子目录。(2) 修改包的属性可以修改包的属性信息,如状态的名字“Name”和文档说明“Documentation”等。要修改包的属性,可以双击左边“logic view”目录树下的包图标,在弹出的对话框的“General”选项卡里进行设置。6精化包图。(1) 增加包的信息假设包中有两个类,名字分别为“Class1”和“Class2”。首先选中包的图标,在上面单击右键,在弹出的菜单中选择“Select Compartment Item” 菜单项,在弹出的对话框中选择要添加的类。(2) 添加包之间的输入依赖最后绘制出图书馆项目的包图如图4.1所示。【包图说明】Business Object Package:商业对象包。UI Package:用户接口包。Utility Package:使用工具包。Database Package:数据库包。图4.1 图书馆管理系统中的包图四、作业将大型仓库管理系统中的具有共性的类组合在一起,用包图的形式表现出来。五、思考题1什么是包图,简述包与包之间的关系。2包可以包含的元素有哪些。3什么是包的可见性。在建立好系统静态模型基础上,接下来需要分析和设计系统的动态结构,并且建立相应的动态模型。动态模型描述了系统随时间变化的行为,这些行为是用从静态视图中抽取的系统瞬间值的变化来描述的。在UML的表现上,动态模型主要是建立系统的交互图和行为图。交互图包括时序图和协作图;行为图包括状态图和活动图。表现系统流程以及系统元素之间的交互关系可以用两种视图:时序图(sequence diagram)与协作图(Collaboration diagram),也可以合称交互图。时序图的功能是按时间顺序描述系统元素间的交互,协作图的功能按照时间和空间顺序描述系统元素间的交互以及它们之间的关系。时序图的建模技术 使用时序图对系统建模时,可以遵循如下策略:(1)设置交互的语境,这些语境可以是系统、子系统、操作、类、用例和协作的一个脚本。(2)通过识别对象在交互过程中扮演的角色,根据对象的重要性,将其从左向右的方向放在时序图中。(3)设置每个对象的生命线。一般情况下,对象存在于交互的整个过程,但它也可以在交互过程中创建和撤销。(4)从引发某个交互的信息开始,在生命线之间按从上向下的顺序画出随后的消息。(5)设置对象的激活期,这可以可视化实际计算发生时的时间点、可视化消息的嵌套。(6)如果需要设置时间或空间的约束,可以为每个消息附上合适的时间和空间约束。(7)给某控制流的每个消息附上前置或后置条件,这可以更详细化的说明这个控制流。 协作图的建模技术 使用协作图对系统建模时,可以遵循如下策略:(1)设置交互的语境。这里所指的语境可以是系统、子系统、操作、类、用例或用例的脚本。(2)通过识别对象在交互过程中所扮演的角色,开始绘制协作图,把这些对象作为图的顶点放在协作图中。其中较为重要的对象放在图的中央,与它邻近的对象放在外围。(3)为每个对象设置初始特性。如果某对象的属性值、标记值、状态或角色在交互期发生变化,则在图中放置一个复制对象,并用变化后的值更新它,然后通过构造型become或copy的消息将这两者连接。(4)设置了对象的初始值后,根据对象间的关系确定对象间链接。一般先确定关联的链接;因为这是最主要的,它代表了结构的链接。然后需要确定的是其他的链接,用合适的路径构造型修饰它们,显示地说明这些对象间是如何互相联系的。(5)从引起交互的消息开始,按消息的顺序,把随后的消息附到适当的链接上,这描述了对象间的消息传递。可以用带小数点的编号来表达嵌套。(6)如果需要说明时间或空间的约束,可以用适当的时间或空间约束来修饰每个消息。(7)在建模中,如果想更详细的描述这个控制流,可以为交互过程中的每个消息都附上前置条件和后置条件。实验 5 时序图和协作图 实验学时:4实验类型:(设计型)一、实验目的与要求掌握时序图的组成要素,以及各部分的表示方法。要求学生能够理解激活在时序图的作用。掌握如何在时序图中的创建与撤消一个对象。理解协作图与时序图的相同点与不同点。掌握协作图的建模方法。二、实验内容以时序图的形式将图书馆管理系统中的各个用例执行中的对象之间的消息传递过程表现出来。以协作图的形式将图书馆管理系统中的各个用例执行中对象间的交互映射到它们之间的链上。三、实验步骤在图书馆管理系统中,每个用例都可以建立一个时序图和一个协作图,由于图书馆管理系统中用例很多,此处只介绍个别重要的时序图和协作图,其它的时序图和协作图,要求学生自己绘制完成。1使用Rational Rose绘制时序图(1) 创建时序图在“Use Case View”图标上单击鼠标右键,在弹出的菜单中选择【NewSequence Diagram】,在“Use Case View”目录下将创建时序图“New Diagram”,可以按需要更改时序图的名字。建立时序图后,双击时序图的图标,将出现时序图的绘制区域。(2) 添加对象向时序图添加对象。设置对象属性。设置对象的持续性。(3) 添加消息消息是对象间的通信,一个对象可以请求另一个对象做某件事。在时序图中,消息用两个对象生命线之间的箭头表示。增加对象间的消息。消息绘制出来以后,还要输入消息文本。双击表示消息的箭头,在弹出的对话框的“ name”字段里输入要添加的文本。显示或取消消息编号。要打开消息编号,选择菜单栏的【ToolOptions】菜单项,在出现的对话框中选择“Diagram” 选项卡,将“Sequence numbering” 复选框勾选,就可以显示消息编号;如果不勾选,消息编号不会显示在时序图中。显示或取消激活显示。显示或取消激活显示的方法类似于消息编号的显示或取消。完成系统管理员添加书籍的时序图如图5.1.1所示。【时序图说明】(1) add Item():添加书籍函数。(2) find(String):根据书籍查找相应书目的函数。(3) create(Integer Title):修改书籍数目的函数。图5.1.1系统管理员添加书籍的时序图2使用Rational Rose绘制协作图(1) 创建协作图在“Use Case View”图标上单击鼠标右键,在弹出的菜单中选择【NewCollaboration Diagram】,在“Use Case View”目录下将创建协作图“New Diagram”,可以按需要更改 协作图的名字。建立协作图后,双击协作图的图标,将出现协作图的绘制区域。(2) 添加对象要