《软件工程》课程
实验指导书
信息科学与工程学院
2016-08-20
前 言
前 言
《软件工程》课程是计算机科学与技术本科专业的一门重要的专业课.通过本课程的学习,使学生在已有的计算机软,硬件基础知识,程序设计知识,数据库和网络通信知识的基础上系统掌握面向对象系统分析与设计的基本方法和技术,并具有针对特定环境下的应用问题进行信息系统开发(包括系统分析,设计与实现)的能力。通过学习本课程学生可以理解和掌握面向对象系统的分析和设计的方法和分步过程、掌握面向对象系统分析和设计的建模标准UML语言,能够利用Rational Rose(或Microsoft Visio)软件以某一信息系统为例进行系统分析和设计。
主要介绍UML的基本概念、面向对象分析和面向对象设计的方法、面向对象分析和设计的UML建模标准等内容。
通过本课程的学习,学生掌握的知识、内容及掌握的程度要求为:
1. 使学生理解面向对象的信息系统的开发过程、系统分析和设计的原则和方法; 2. 使学生掌握UML语言的基础知识,以及UML在面向对象的软件系统分析和设计中的应用,并能使用UML工具建立系统模型;
3. 使学生掌握在UML系统模型下应用高级语言建立应用系统的方法; 4. 通过案例教学和实验,提高学生在应用面向对象技术开发软件方面的动手能力和解决问题的能力,并鼓励创新。
本实验所要求的建模工具为Rational Rose 2003。 本课程通过对LSTC图书馆管理系统进行建模设计开发。
实 验 要 求
实 验 要 求
计算机软件建模技术现在越来越广泛的应用于软件工程中。《软件工程》课程实验的目的是为了使学生在课程理论学习的同时,通过在一个实践的环境下,实际学习软件统一建模语言,对软件建模技术有一个初步的了解及认识。通过本指导书中的各个实验,学习掌握对一般面向对象系统建模的方法与技术。总之,通过上述实验环节,使学生加深了解和更好地掌握《软件工程》课程教学大纲要求的内容。
在《软件工程》的课程实验过程中,要求学生做到:
(1)预习实验指导书有关部分,认真做好实验内容的准备,就实验可能出现的情况提前作出思考和分析。
(2)仔细观察上机时出现的各种现象,记录主要情况,作出必要说明和分析。 (3)认真书写实验报告。实验报告包括实验目的和要求,实验情况及其分析。对需编程的实验,写出程序设计说明,给出源程序框图和清单。
(4)遵守机房纪律,服从辅导教师指挥,爱护实验设备。
(5)实验课程不迟到、不早退、不缺席。如有事不能出席,需出示系上假条。 实验的验收将分为两个部分。第一部分是上机操作,包括检查模型质量和即时提问。第二部分是提交书面的实验报告。此外,针对以前教学中出现的问题,本实验将采用阶段检查方式,每个实验都应当在规定的时间内完成并检查通过,过期视为未完成该实验,不计成绩。以避免期末集中检查方式产生的诸多不良问题,希望同学们抓紧时间,合理安排,认真完成。
3
目 录
目 录
《软件工程》实验指导书 ............................................................................................................... 1 前 言............................................................................................................................................... 2 实 验 要 求 ............................................................................................................................... 3 目 录 ............................................................................................................................................. 4 实验一 Rational Rose基本操作 .................................................................................................. 5 实验二 用例图 ............................................................................................................................... 10 实验三 活动图 ............................................................................................................................... 16 实验四 状态图 ............................................................................................................................... 25 实验五 类 ....................................................................................................................................... 32 实验六 类的关系 ........................................................................................................................... 40 实验七 交互图 ............................................................................................................................... 45 实验八 对象图和包 ....................................................................................................................... 54 实验九 组件图和部署图 ............................................................................................................... 56 实验十 正向工程 ........................................................................................................................... 63
4
实验一 Rational Rose基本操作
实验一 Rational Rose基本操作
一.实验目的
1.熟悉Rose的系统界面,掌握其基本使用方法。 2.熟悉模型图标元素。 3.掌握用例图的绘制方法。 二. 实验内容
1.练习Rose的基本使用。
2.熟悉UML模型元素及表示方法。 3.绘制图书馆管理系统的用例图。 三. 实验内容
1) Rose简介
Rose是美国的Rational公司的面向对象建模工具,利用这个工具,可以建立用UML描述的软件系统的模型,而且可以自动生成和维护C++、Java、VB和Oracle等语言和系统的代码。
➢ Rational Rose在建模方面具有以下特点: 1.保证模型和代码高度一致。
Rose可以实现真正意义上的正向、逆向和双向工程。 2.支持多种语言。
Rose本身能够支持的语言包括C++、Visual C++、Java、Visual Basic、PowerBuilder等,还可为数据库应用产生数据库描述语言(DDL)。
3.为团队开发提供强有力的支持。
Rose提供了两种方式来支持团队开发:一种是采用SCM(软件配置管理)的团队开发方式;另一种是没有SCM情况下的团队开发方式。这两种方式为用户提供了极大的灵活性,用户可以根据开发的规模和开发人员数目以及资金情况等选择一种方式进行团队开发。
4.支持模型的Internet发布。
Rose的Internet Web Publisher能够创建一个基于Web的Rose模型的HTML版本,使得其他人员能够通过标准的浏览器,如IE来浏览该模型。
5.生成使用简单且定制灵活的文档。
Rose本身提供了直接产生模型文档的功能。 6.支持关系型数据库的建模。
利用Rose能够进行数据库的建模。Rose能够为ANSI、Oracle、SQL Server等支持标准DDL的数据库自动生成数据描述语言。
➢ Rational Rose 基本使用 Rational Rose主界面如下图所示::
Rose的工作区分为4个部分:浏览器、文档区、编辑区和日志区。 1.浏览器——用来浏览、创建、删除和修改模型中的模型元素。
浏览器是层次结构,组成树形视图样式,用于在Rose模型中迅速定位。浏览器可以显
5
实验一 Rational Rose基本操作
示模型中的所有元素,包括用例、关系、类和组件等,每个模型元素可能又包含其他元素。利用浏览器可以增加模型元素(参与者、用例、类、组件、图等);浏览现有的模型元素;浏览现有的模型元素之间的关系;移动模型元素;更名模型元素;将模型元素添加到图中;将文件或者URL链接到模型元素上;将模型元素组成包;访问模型元素的详细规范;打开图。
浏览器中有4个视图:Use Case View(用例视图)、Logical View(逻辑视图)、Component View(组件视图)、Deployment View(配置视图)。
2.文档区——用来显示和书写各个模型元素的文档注释。
文档区用于为Rose模型元素建立文档,例如对浏览器中的每一个参与者写一个简要定义,只要在文档区输入这个定义即可。
3.编辑区——用来显示和创作模型的各种图。 在编辑区中,可以打开模型中的任意一张图,并利用左边的工具栏对图进行浏览和修改。修改图中的模型元素时,Rose会自动更新浏览器。同样,通过浏览器改变元素时,Rose也会自动更新相应的图。这样就可以保证模型的一致性。
4.日志区——用来记录对模型所做的所有重要动作。 ➢ Rational Rose的视图
Rose模型中有4个视图:Use Case View(用例视图)、Logical View(逻辑视图)、 Component View(组件视图)、Deployment View(配置视图)。每个视图针对不同的对象,具有不同的作用。
1. Use Case View(用例视图)
用例视图包括系统中的所有参与者、用例和用例图,还可能包括一些时序图或协作图。用例视图是系统中与实现无关的视图,它只关注系统功能的高层形状,而不关注系统的具体
实现方法。
通常在项目开始时要先确定,之后不轻易修改。 2. Logical View(逻辑视图)
逻辑视图关注系统如何实现用例中提出的功能,提供系统的详细图形,描述组件之间如何关联。另外,逻辑视图还包括需要的特定类、类图和状态图。利用这些细节元素,开发人员可以构造系统的详细信息。
从逻辑视图中可以看到系统的逻辑结构。 3. Component View(组件视图)
组件视图显示代码模块之间的关系。组件视图包含模型代码库、可执行文件、运行库和
6
实验一 Rational Rose基本操作
其他组件的信息。组件是代码的实际模块。在Rose中,组件和组件图在组件视图中显示。
从组件视图中可以看出系统实现的物理结构。 4. Deployment View(配置视图)
配置视图关注系统的实际配置,可能与系统的逻辑结构有所不同。例如,系统可能使用三层逻辑结构,但配置可能是两层的。配置视图还要处理其他问题,如容错、网络带宽、故障恢复和响应时间等。
一个项目只有一个配置视图。 ➢ 使用Rational Rose建模 1.创建模型
Rose模型文件的扩展名是.mdl,要创建模型,需要完成下列步骤: 1) 从菜单栏选择“File→New”,或单击标准工具栏中的“New”按钮;
2) 弹出如图2-14所示的对话框,选择要用到的框架,单击“OK”按钮。如果不使用模板,单击“Cancel”按钮。
如果选择使用模板,Rose会自动装入此模板的默认包、类和组件。模板提供了每个包中的类和接口,各有相应的属性和操作。通过创建模板,可以收集类与组件,便于作为基础设计和建立多个系统。如果单击“Cancel”按钮,表示创建一个空项目,用户需要从头开始创建模型。
2.保存模型
Rational Rose的保存,类似于其他应用程序。可以通过菜单或者工具栏来实现。 1) 保存模型:通过选择菜单“File→Save”或者工具栏的“Save”按钮,来保存系统建模。 2) 保存日志:激活日志窗口(见图2-30),通过菜单“File→Save Log As”来保存,或者右键单击日志窗口,在弹出的菜单中选择“Save Log As”命令来保存。
3.设置全局选项
全局选项可以通过菜单Tools→Options进行设置。 1) 设置字体
在Options对话框中,可以设置文档窗口字体、日志窗口字体和默认字体,点击不同的Front按钮,就可以分别设置字体。
2) 设置颜色
Rose中可以单独修改对象的颜色。点击Options对话框中的Line Color和Fill Color按钮,用户可以分别设置对象的线颜色和填充颜色。
2) UML中的模型元素
UML中的模型元素包括事物和事物之间的联系。事物是UML中重要的组成部分,它代表任何可以定义的东西。事物之间的关系能够把事物联系在一起,组成有意义的结构模型。每一个模型元素都有一个与之相对应的图形元素。模型元素的图形表示使UML的模型图形化,而图形语言的简明和直观使其成为人们建立问题模型的有力工具。
➢ 事物
UML模型中的事物可分为结构事物、动作事物、分组事物和注释事物4类。这些事物是UML模型中面向对象的基本的建筑块,他们在模型中属于静态部分,代表物理上或概念上的元素。
1. 结构事物
UML模型中最基本的结构化事物共有7种,类、接口、协作、用例、活动类、组件和节点。
(1)类(如图1-1所示)
➢ 对具有相同属性、方法、关系和语义的对象的抽象。
7
实验一 Rational Rose基本操作
(2)接口(如图1-2所示)
➢ 类或组件提供特定服务的一组操作的集合。 ➢ 描述了类或组件的对外可见的动作。 (3)协作(如图1-3所示) ➢ 定义了交互操作。
➢ 代表构成系统的模式的实现。 (4)用例(如图1-4所示)
➢ 描述系统对一个特定角色执行的一系列动作。 ➢ 组织动作事物。
图1-1 类 图1-2 接口 图1-3 协作 图1-4 用例
(5)主动类(如图1-5所示)
➢ 类对象有一个或多个进程或线程的类。 (6)组件(如图1-6所示)
➢ 实现了一个接口集合的物理上可替换的系统部分。 (7)节点(如图1-7所示)
➢ 在运行时存在的一个物理元素。 ➢ 代表一个可计算的资源。
➢ 通常占用一些内存和具有处理能力。
图1-5 活动类 图1-6 组件 图1-7 节点
2. 动作事物
动作事物是UML模型中的动态部分,它们是模型的动词,代表时间和空间上的动作。交互和状态机是UML模型中最基本的两个动态事物元素,它们通常和其他的结构元素、主要的类、对象连接在一起。
(1)交互
一组对象在特定上下文中,为达到某种特定的目的而进行的一系列消息交换组成的动作。 在UML中消息表示为带箭头的直线,直线上标注操作名字,如图1-8所示。
(2)状态机
由一系列对象的状态组成。在UML中状态的图形表示如图1-9所示。 3. 分组事物
➢ 分组事物是UML模型中组织的部分。 ➢ 分组事物只有一种,称为包。
➢ 包是一种将有组织的元素分组的机制。
8
实验一 Rational Rose基本操作
➢ 包只存在于开发阶段。
➢ 包的图形表示如图1-10所示。 4. 注释事物
UML模型的解释部分。在UML中注释事物的图形表示如图1-11所示。
图1-8 消息 图1-9 状态 图1-10 包 图1-11 注释
① UML中的关系
UML中包括如下几种常用关系。
1.关联关系。关联关系连接元素和链接实例,它用连接两个模型元素的实线表示。如图1-12所示
2.依赖关系。依赖关系描述一个元素对另一个元素的依附。依赖关系用源模型指向目标模型的带箭头的虚线表示,如图1-13所示。
图1-12 关联 图1-13 依赖
3.泛化关系。泛化关系也称为继承关系,这种关系意味着一个元素是另一个元素的特例。泛化用一条带空心三角箭头的实线表示,他从表示特殊性事物的模型元素指向表示一般性事物的模型元素,如图1-14所示。
4.实现关系。实现关系描述一个元素实现另一个元素。实现关系用一条带空心三角箭头的虚线表示,箭头从源模型指向目标模型,表示源模型元素实现目标元素模型,如图1-15所示。
5.聚合关系。聚合关系描述元素之间部分与整体的关系,即一个表示整体的模型元素可能由几个表示部分的模型元素聚合而成。聚合关系用一端带有空心小菱形的直线表示,小菱形端连接表示整体事物的模型元素,另一端连接表示部分事物的模型元素,如图1-16所示。
图1-14 泛化 图1-15 实现 图1-16 聚合
四.实验报告要求
1. 整理实验结果。 2. 小结实验心得体会。
9
实验二 用例图
实验二 用例图
一、实验目的
1.熟悉用例图的基本功能和使用方法。 2.掌握如何使用建模工具绘制用例图方法。
二、实验器材
1.计算机一台。
2.Rational Rose 工具软件。
三、实验内容
根据LSTC图书馆管理系统开发进度,在完成对系统的需求建模,得到用例模型后,应针对每个用例进行业务分析,说明其具体的业务流程,现系统分析部指派您完成该项任务。要求:
1. 对其中主要功能的用例书写书面用例。
四、实验步骤
书写“删除读者信息”用例的书面用例。一般应包含以下信息: (1)管理员在录入界面,输入待删除的读者名;
(2)“业务逻辑”组件在数据库中,查找待删除的读者名;
(3)如果不存在,则显示出错信息,返回步骤(1),如果存在则继续; (4)“业务逻辑”组件判断“待删除的读者”是否可以删除;
(5)如果不可以,则显示出错信息,返回步骤(8),如果可以则继续; (6)在数据库中,删除相关信息; (7)显示删除成功信息; (8)结束。 分析:
在图书馆管理系统中,管理员首先登录系统,系统验证通过后,管理方可向系统查询数据,在查询后,系统会给出提示,有没有找到相关的数据,管理员根据系统查询的返回结果,进行下一步的操作,就是删除读者,在删除的过程中,系统会对查询得到的结果判断该记录是否可以删除,若可以删除,则给删除提示,若不能删除,也给相关的提示信息。
绘图步骤:
(1)在用例视图上双击main,出现如图1.1所示,为绘制用例图做好准备。
10
实验二 用例图
图1.1
(2)在图中的工具栏选取“Actor”图标,在右边的图中添加一个Actor,并输入名称:administrator,如图1.2所示。
图1.2
(3)在左边的工具栏中,选取“Use Case”的图标,在右边的图中画出一个用例,并输入用例的名称:login 。
11
实验二 用例图
图1.3
(4)按照步骤(3),绘制出如图1.4和图1.5的两个用例。
图1.4
12
实验二 用例图
图1.5
(5)在绘出了用例后,接下来的是绘制参与者与用例实现,如图1.6所示。
图1.6
13
实验二 用例图
(6)根据步骤(5),同时完成如图1.7和图1.8。此时,“删除读者信息”用例图就到此完成。其系统查询读者信息等其他的功能会在时序图和活动图中描绘。
图1.7
图1.8
(7)根据分析情况,进一步添加或细化用例图。
14
实验二 用例图
五、实验报告要求
1. 整理实验结果。 2. 小结实验心得体会。
六、实验作业
1. 通过各种途径(查阅图书资料,网上搜索等),了解“LSTC图书馆管理系统”的需求,形成一份“图书馆管理系统软件需求说明书”,格式可参见“软件需求说明书(GB856T——88)”。
2. 在上述第1步的基础之上,对“LSTC图书馆管理系统”进行用例建模,形成完整的用例模型。
15
实验三 活动图
实验三 活动图
一、实验目的
1.熟悉活动图的基本功能和使用方法。 2.掌握如何使用建模工具绘制活动图方法。
二、实验器材
1.计算机一台。
2.Rational Rose 工具软件。
三、实验内容
根据LSTC图书馆管理系统开发进度,在完成对系统的需求建模,得到用例模型后,应针对每个用例进行业务分析,说明其具体的业务流程,现系统分析部指派您完成该项任务。要求:
用活动图来描述系统中已知用例的业务过程: 1.描述“删除读者信息”用例。
四、实验步骤
绘制“删除读者信息”用例的活动图。删除读者信息一般按照以下步骤进行: (1)管理员在录入界面,输入待删除的读者名; (2)“业务逻辑”组件在数据库中查找待删除的读者名;
(3)如果不存在,则显示出错信息,返回步骤(1),如果存在则继续; (4)“业务逻辑”组件判断“待删除的读者”是否可以删除;
(5)如果不可以,则显示出错信息,返回步骤(8),如果可以则继续; (6)在数据库中,删除相关信息; (7)显示删除成功信息; (8)结束。 绘图步骤:
(1)在用例图中,找到“删除读者信息”的用例,如图2.1所示,在“删除读者信息”用例上单击右键,在弹出的快捷菜单中选“New”,Rose工具也会弹出一个菜单,选”Activity Diagram”,选中后单击,便可以新建好一个活动图。如图2.2所示。
16
实验三 活动图
图 2.1
图2.2
(2)新建好活动图后,双击“删除读者信息”的活动图,得到如图2.3所示,然后在左边的工具栏内点击“Swimlane”,在右边的图添加一个泳道,如图2.4所示,并命名为administrator.按照此步骤,再添加另一个泳道,并命名为SystemTool,得到图2.5。
17
实验三 活动图
图2.3
图2.4
18
实验三 活动图
图2.5
(3)接着在左边的工具上选取“Start State”,并在administrator的泳道上添加,如图2.6所示;添加完开始结点后,再来为此活动图添加活动,图2.7所示,在左边的工具栏上选中“Activity”这个图标,在administrator这边的泳道上添加一个活动,命名为登录(login),再在开始结点和活动登录(login)之间添加活动关系,如图2.8所示。
图2.6
19
实验三 活动图
图2.7
图2.8
(4)完成步骤(3)后,登录输入需要对输入的信息进行验证,则在图中利用“Decision”图标添加一个验证框,如图2.9所示:添加验证框后,验证的内容,如果通过,则允许管理员进行查询操作,如图2.10所示;如不能通过,则结束,如图2.11所示。
20
实验三 活动图
图2.9
图2.10
21
实验三 活动图
图2.11
(5)验证后,下一步的操作是查询需要删除的记录,添加一个活动,命名为delete,如图2.12和图2.13所示。
图2.12
22
实验三 活动图
图2.13
(6)最后,在删除后,系统会返回操作结果给操作者,图2.14所示;删除成功或删除失败系统都会有信息返回给操作者。
图2.14
(7)根据分析设计情况,进一步添加或细化活动图。
五、实验报告要求
23
实验三 活动图
1. 整理实验结果。 2. 小结实验心得体会。
六、实验作业
1. 在实验二所得到的“LSTC图书馆管理系统”ROSE用例模型基础之上,选择其中至少2个最核心的用例,对其建立活动图。
2.将本实验完成后得到的ROSE模型文件进行打包
24
实验四 状态图
实验四 状态图
一、实验目的
1.熟悉状态图的基本功能和使用方法。 2.掌握如何使用建模工具绘制状态图方法。
二、实验器材
1.计算机一台。
2.Rational Rose 工具软件。
三、实验内容
通过前面内容的学习,完成了对LSTC图书馆管理系统的需求的初步分析,得出系统的用例图和相应的活动图。通过这两种图我们可以初步了解系统的业务处理过程,但对业务处理过程的处理状态间转换了解仍不够,这不利于设计人员对系统业务的进一步理解,而状态图能从对象的动态行为的角度去描述系统的业务活动。因此,指派你运用本节所学的状态图,完成如下任务:
1. 完成图书馆业务模块中“还书”用例的状态图。
四、实验步骤
1.业务分析:由前面章节对图书馆管理系统中的还书主要业务的描述和分析可知,还书业务的动态行为是由:空闲(idle)、图书查找(finding)、还书(reversion)、失败(Failure)、归还成功(Success)5种状态及激活相互转换的事件。
2.绘制状态图:请您根据业务分析,运用UML绘制“还书”用例的状态图。 分析:
还书的主要业务都是由管理员来完成,首先管理员必须先登录系统,并通过验证后,便可以进行下一步的操作,查找该书的相关信息,如存在,则进行还书操作,如不存在该信息,则给出提示信息;
绘图步骤:
(1)在用例图中的还书(reversion)用例,单击右键,如图3.1所示,新建一个状态图,命名为reversion状态图,图3.2所示。
25
实验四 状态图
图3.1
图3.2
(2)双击“reversion”状态图,展开后,在左边的工具栏上选取一个“Start State”,此结点为开始结点,图3.3所示;当还书的时候,操作者先要询问系统的状态,如果系统忙,操
26
实验四 状态图
作者则必需等待,因此,得到系统的两种状态,如图3.5所示。
图3.3
图3.4
27
实验四 状态图
图3.5
(3)操作者在询问系统和状态后,得到的图3.6所示两种状态,如果系统忙,操作者必需要等待、结束,如图3.7和图3.8所示,重返步骤(1)。
图3.6
28
实验四 状态图
图3.7
图3.8
(4)如系统空闲,则进行对还书的信息进行查询操作,图3.9所示;查询也有两种结果,一是查询得到该书的相关信息,二查询不到该书的相关信息;则此时有两种状态,需要
29
实验四 状态图
建立两种状态,如图3.10所示。
图3.9
图3.10
(5)最后,操作者进行了操作后,系统会给出操作的结果给操作者;操作成功或失败,都会有提示信息给出。整个的还书的过程便完成;图3.11所示。
30
实验四 状态图
图3.11
(7)根据分析设计情况,进一步添加或细化状态图。
五、实验报告要求
1.整理实验结果。 2.小结实验心得体会。
六、实验作业
1. 在实验三所得到的“LSTC图书馆管理系统”ROSE用例模型基础之上,选择其中至少2个最核心的用例,对其建立状态图。
2.将本实验完成后得到的ROSE模型文件进行打包
31
实验五 类
实验五 类
一、实验目的
1.理解类的基本概念。
2.掌握如何从需求分析中抽象出类的方法。 3.掌握在Rational Rose中绘制类的操作方法。
二、实验器材
1.计算机一台。
2.Rational Rose 工具软件。
三、实验内容
通过前面内容的学习,完成了对LSTC图书馆管理系统的需求的初步分析,得出系统的用例图和相应的活动图、状态图。通过这三种图我们可以初步了解系统的业务处理流程。现在需要对系统进行静态建模,这就需要从系统的用例图、活动图和状态图去寻找和发现类。因此,指派你运用本节所学的有关如何抽象出类的知识,完成如下任务:
1. 寻找和抽象出书籍管理功能中的类。
四、实验步骤
1.分析:由前面章节对图书馆管理系统中的书籍管理功能可知,该模块是由书籍信息类、书目类、新增书籍界面类、修改书籍界面类、删除书籍界面类和书籍管理类6个类组成。
2.绘制类的步骤:
(1)打开前面初步构建的UML模型文件;
(2)打开Rose中的逻辑视图(Logical View),用鼠标右击逻辑视图,在弹出来的菜单中选择“New→Class diagram”项,创建“图书馆业务功能”类图,如图4.1所示。
(3)双击新建的“图书馆业务功能”类图,并点右边控件集中选中的“Class”图标,并用鼠标在图中拖出一个类图,并命名为Book,如图4.2所示。
32
实验五 类
图4.1
图4.2
(4)接下来的一步为设置Book类的属性,在类图中双击Book类,可以在打开的“Class Specification”对话框中设置Book类的属性和方法等其他的信息,如图4.3所示;然后点击“Attributes”这个选项卡,此栏目为设置类的属性的选项,在图中间单击右键,可以看到有一个“Insert”的选项,如图4.4所示,选中这个选项,然后在出现的对话框中输入相关信息如图4.5所示,即书本的ISBN号,在“Type”这个方框内输入此属性的类型值,同时可以看到一栏可以设置此属性的访问权限,一般这些属性都设置“Private”这个权限,如图4.6所示。Book类的其他属性也可以按照以上的做法设置,最后得到的结果是图4.7所示。
33
实验五 类
图4.3
图4.5
图4.4
图4.6
34
实验五 类
图4.7
(5)设置好Book类的属性,现在来设置Book类的方法(也是操作),双击Book类后在“Class Specification”对话框中选“operations”这个选项卡,可以看到图4.8所示,在图中的空白地方,单击右键,在弹出的菜单中选“insert”这个选项,见图4.9,接着输入方法名,同时可以设置该方法的返回类型,也可以在Documentation的方框内填写一些相关的方法说明,如图4.12所示,设置好该方法的访问权限,见图4.13。Book类的其他方法也可以按上面来设置好,最后,得到Book类的其他方法见图4.14。
图4.8
35
实验五 类
图4.9 图4.11
图4.10
图4.12
36
实验五 类
图4.13 图4.14 (6)至此,Book类的方法和属性都设置好了,如图4.15所示。
图4.15
(7)接下来为书目类(BookItem)设置,按照上面的步骤可以设置好BookItem类的属性和方法,如图4.16和图4.17所示。
37
实验五 类
图4.16 图4.17
(8)最后,绘制出由分析得出的各个类,如图4.18所示,此时,“图书馆业务功能”类图便完成。
图4.18
38
实验五 类
(9)根据分析情况,进一步细化添加相关的类。
五、实验报告要求
1.整理实验结果。 2.小结实验心得体会。
六、实验作业
1. 在实验四所得到的“LSTC图书馆管理系统”ROSE用例模型基础之上进行静态建模,抽象出该系统中的每个类,并建立对应的类图。
2.将本实验完成后得到的ROSE模型文件进行打包
39
实验六 类的关系
实验六 类的关系
一、实验目的
1.理解类间关系的基本概念。 2.掌握描绘类间关系的方法。
3.掌握在Rational Rose中绘制类关系的操作方法。
二、实验器材
1.计算机一台。
2.Rational Rose 工具软件。
三、实验内容
通过对前面内容的学习,使我们完成了LSTC图书馆管理系统的需求分析,并从业务对象中抽象出了类。我们知道类通常是不会单独存在,而是由关联、泛化、依赖等关系相互协作来静态描述业务系的。因此,我们在找出系统中所存在的类的前提下,需要进一步对业务对象间如何联系进行建模。现指派你运用本节所学的相关知识,完成如下任务: 1.对书籍管理功能中的类的关系建模。
四、实验步骤
1.分析:由前面章节对图书馆管理系统中的书籍管理业务分析和对该业务抽象出来的类可知,图书馆的主要静态模型类图是由书籍管理类、书类、书目类、管理员类、用户类和各种界面操作类组成。其中用户类与管理员类是泛化的关系,而其它类之间均是关联关系。
2.请根据你的静态建模分析结果,在Rational Rose中绘制类间的关系。 绘图步骤:
(1)打开上面做好的类图,添加管理员类,用户类,界面类。首先,将实验二 “Use Case View”中的administrator角色拖到类图中,即添加了一个管理员类,图5.1,并按照上面所说方法添加类的各种属性和方法,见图5.2、图5.3。
40
实验六 类的关系
图5.1
图5.2
41
实验六 类的关系
图5.3
(2)可以依照上面的操作来添加其他的类,如:用户类(Reader类)、界面类(ActionForm),添加完后结果如图5.4 和图5.5所示;
图5.4
42
实验六 类的关系
图5.5
(3)其他的类添加完后,就可以为各个类添加关系了,由关联、泛化、依赖等关系相互协作来静态描述业务系,所以,各个类的关系也由这几个关系来完成。如图5.6所示:Person类是administrator类和reader类两个类的父类,他们之间为泛化关系,即administrator类和reader类是继承自Person类。BoobItem类是继承自Book类的,其他的类为一般的依赖关系,最后,连接完线条便得到图5.6。
43
实验六 类的关系
图5.6
(4)根据分析设计情况,进一步细化各类之间的关系。
五、实验报告要求
1.整理实验结果。 2.小结实验心得体会。
六、实验作业
1. 在实验五所得到的“LSTC图书馆管理系统”ROSE模型基础之上进行静态类间关系建模,挖掘出该系统的各个类之间的关系,并绘制对应的类图。
2.将本实验完成后得到的ROSE模型文件进行打包,通过课件主页的“作业提交”栏目完成作业上传。
44
实验七 交互图
实验七 交互图
一、实验目的
1.理解时序图的基本概念。 2.理解协作图的基本概念。
3.掌握在Rational Rose中绘制交互图的操作方法。
二、实验器材
1.计算机一台。
2.Rational Rose 工具软件。
三、实验内容
通过对教学内容的学习,使我们完成了LSTC图书馆的管理系统的需求分析,并从业务对象中抽象出了类以及类间关系。现在需要对前面所给出的用例进行实现,而用例的实现主要由交互图来描述系统的动态特性。现指派你运用本节所学的相关知识,完成如下任务:
1.对书籍管理功能中的用例进行动态建模。
四、实验步骤
1.分析:根据图书馆业务功能模块中的交互操作进行动态建模的操作步骤和方法,请你对书籍管理模块中的交互操作进行动态建模。该模块中主要存在“新增书籍”、“修改书籍信息”和“删除书籍信息”三种交互操作。
2.请在Rational Rose中绘制上述的交互图。 绘图步骤:
(1)在Rose的“Logical View”单击右键,选择“Sequence Diagram”新建一个时序图,时序图是交互图一种表示,可以用时序来表示,如图6.1;在此,先简单介绍一下用法:图中的直线箭头是发送消息;虚线箭头是返回消息;曲折线是对象自己给自己发送消息并调用。 (2)接下来的是添加类,系统中的类是其他的方法的边界,在前面的实验中做好的类可以直接拖拉到时序图中,见图6.2 和图6.3所示。
45
实验七 交互图
图6.1
图6.2
46
实验七 交互图
图6.3
(3)添加类后,便可以添加方法了,开始时必须是外面的实体向系统发送消息,如图6.4所示,是管理员登录时向系统发送的消息;
图6.4
47
实验七 交互图
(5)可以按上一步的方法来完成其他的方法,如validate(验证),返回验证结果,当用户收到结果后,可以正常登录后便能进行增加图书见图6.5到图6.9。最后得到的时序图如图6.10所示。
图6.5
: administrator1: login : ActionFormSystem2: login3: validate
图6.6
48
实验七 交互图
: administrator : SystemActionForm1: login2: login3: validate4: result5: result图6.7
: administrator : SystemActionForm1: login2: login3: validate4: result5: result6: add7: add图6.8
49
实验七 交互图
: administrator : SystemActionForm1: login2: login3: validate4: result5: result6: add7: add8: addbook
图6.9
: administrator : SystemActionForm1: login2: login3: validate4: result5: result6: add7: add8: addbook9: addruselt10: addresult
图6.10
(6)完成了时序图后,可以按F5键便得到“新增图书”的协作图,见图6.11所示。 50
实验七 交互图
1: login6: add : administrator5: result10: addresult : ActionForm3: validate8: addbook4: result9: addruselt2: login7: addSystem
图6.11
(7)剩下的“修改图书信息”和“删除图书信息”的交互图在此不再一一详细的介绍,其绘图方法跟绘制“新增图书”的方法一样,最后结果见图6.12 到图6.15
: administrator : ActionForm1: login2: loginupdate : System3: validate4: result5: result6: updatebook7: updatebook8: updatebook9: updateresult10: updateresult
图6.12
51
实验七 交互图
1: login6: updatebook : administrator5: result : ActionForm10: updateresult4: result3: validate9: updateresult8: updatebook2: login7: updatebookupdate : System图6.13
: : System : administratorActionForm1: login2: login3: viladate4: viladateresult5: viladateresult6: delete7: delete8: delete9: deleteresult10: deleteresult图6.14
52
实验七 交互图
1: login6: delete : administrator5: viladateresult10: deleteresult : ActionForm3: viladate8: delete4: viladateresult9: deleteresult2: login7: delete : System
图6.15
五、实验报告要求
1.整理实验结果。 2.小结实验心得体会。
六、实验作业
1.在实验六所得到的“LSTC图书馆管理系统”ROSE用例模型基础之上,选择其中至少2个最核心的用例,对其建立时序图和协作图。
2.将本实验完成后得到的ROSE模型文件进行打包,通过课件主页的“作业提交”栏目完成作业上传。
53
实验八 对象图和包
实验八 对象图和包
一、实验目的
1.对象图的基本概念。 2.包的基本概念。
3.掌握在Rational Rose中绘制对象图和包。
二、实验器材
1.计算机一台。
2.Rational Rose 工具软件。
三、实验内容
LSTC图书管理系统已按计划完成类图和交互图的分析与设计,不过当这份文档提交给图书馆的使用人员审查时,他们认为最好能用一个实例来说明系统的运作,现系统分析部指派您完成该项任务,为系统绘制一张对象图。
1.以借书过程为例绘制对象图。
四、实验步骤
为了更好地描述借书过程,根据图7.1绘制借书过程中某一时刻的对象图
LendFrame-BookName-ReaderId+lendBook()Book-BookName-ISBN+findFreeItem()BookManager+lendBook()+findBookByName()Item-ItemId-ISBN-State+getItemId()+setLoanState()图7.1
(1) 确定对象的值
假定管理员在为读者“S05001”办理书籍“UML Guide”的借书手续,这时首先弹出一个借书窗口LendFrame类的对象“lfLend”,在其上输入读者ID和书名,点击“借书”按钮。这里lfLend对象将调用业务管理者BookManager类的对象bmMain的findBookByName方法去获取一个书名为“UML Guide”的书籍Book类的对象bLend,然后bmMain再通过lendBook方法,去调用bLend对象findFreeItem方法,去查找一本可借阅的图书,这里假定找到书目Item类的对象iLend,然后使用setLoanState更改iLend的借阅状态为“借出”,完成借书过程。
54
实验八 对象图和包
表7.1描述了在成功设置iLend对象借阅状态为“借出”状态时,与借书过程有关的各对象的值。
表7.1
类名 LendFrame 对象名 lfLend 属性值 方法 BookName=“UML Guide” lendBook ReaderID=“S05001” BookManager bmMain findBookByName lendBook Book bLend BookName=“UML Guide” findFreeItem ISBN=“ISBN12315” Item iLend ISBN=“ISBN12315” ItemID=“B05001” State=“借出”
getItemID setLoanState (2) 绘图,根据(1)中的描述,绘制出当iLend状态变更时,系统中各对象的状态如图7.2所示。
lfLendBookName = UML GuideReaderId = S05001iLend : ItemItemId = B05001ISBN = ISBN12315State = 借出bmMain : BookManagerbLend : BookBookName = UML GuideISBN = ISBN12315
图7.2
(3) 根据分析设计情况,进一步设计对象和包之间的关系。
五、实验报告要求
1.整理实验结果。 2.小结实验心得体会。
六、实验作业
1. 在实验七所得到的“LSTC图书馆管理系统”ROSE模型基础之上绘制还书过程的对象图。
2.将本实验完成后得到的ROSE模型文件进行打包,通过课件主页的“作业提交”栏目完成作业上传。
55
实验九 组件图和部署图
实验九 组件图和部署图
一、实验目的
1.理解组件图的基本概念。 2.理解组件图的应用:逻辑部署。 3.理解部署图的基本概念。 4.理解部署图的应用:物理部署。 5.掌握组件图和部署图绘制的方法。
二、实验器材
1.计算机一台。
2.Rational Rose 工具软件。
三、实验内容
LSTC图书管理系统已按计划完成类图和交互图的分析与设计,下一步将完成系统的组件图和部署图,现系统分析部指派您完成如下任务:
1. 完成系统的组件图。
四、实验步骤
1. 绘制组件图 分析:
在LSTC的图书馆管理系统中,通过分析可以发现类图中的类应分为4个部分: 1.用户接口模块(UI),主要负责系统和用户的交互,包括Frame类,Dialog类等。 2.业务对象模块(BO),主要负责处理系统中的业务计算,如借书,还书等功能的具体操作。
3.数据存储模块(DB),主要负责处理对数据的存储。 4.通用工具模块(UTIL),包括系统中通用函数。
通过一个主程序StartClass来启动。由于系统中的类较多,这里以业务对象模块(BO)为例来讲解如何创建组件图,BO模块中包括:
Item类:书目类,表示一本(不是一种)实际存在的书籍或杂志;
Loan类:借书业务类,将借阅者和图书馆关联起来,一个Loan对象表示借出的一本书; BorrowerInfomation类:借阅者信息类,表示一个借阅者;
Title类:表示一种书或一种杂志。如《C++编程思想》就是一种书,用1个title对象表示,如果有2本这样的书,则需要用2个Item对象表示;
Reservation类:预定信息类,表示一个预定信息。
Item类和Loan类之间互相依赖,Loan类和BorrowerInfomation类之间互相依赖,BorrowerInfomation类和Reservation类之间互相依赖,Reservation类和Title之间互相依赖,Title和Item类之间互相依赖。 绘图步骤:
56
实验九 组件图和部署图
(1)在组件视图中双击Main图,出现图8.1,为编辑组件图做好准备,这时绘图工具栏中的图标如图中椭圆所示。
图8.1
(2)在组件视图中,从工具栏中选择MainProgram图标,在右边的绘图区中添加一个新组件,并取名StartClass.java表明新增一个主程序。
图8.2
(3)选择新创建的组件,点击鼠标右键,在弹出的菜单中选择“Open Sepcification”,如图8.3。
57
实验九 组件图和部署图
图8.3
(4)在对话框中,可以修改组件的名称,设置组件的类型,指定实现的语言。这里新组件的名称定为“StartClass.java”,组件构型为Main Program(Rose中提供了多种构型),实现语言为JAVA(Rose中默认的是分析语言Analysis),修改结果如图8.4所示。
图8.4
(5)组件图描述的是系统的实现视图,因此要指定实现组件功能的文件。点击File选项卡,在列表框中点击鼠标右键,在弹出的菜单中选择“Insert File”,弹出文件对话框。在对话框中,键入StartClass.java,点击“打开”按键,这时对话框如图8.5所示。
58
实验九 组件图和部署图
图8.5
(6)双击StartClass.java,弹出是否创建对话框,询问是否创建文件,选择“YES”,弹出记事本,这时可输入相应的源程序(注意:如果这里选择的文件已经存在,则不会弹出创建文件对话框,而是直接显示相应文件内容)。
(7)创建相应的包。选择包图标,在右图中创建。这里同样需要对每个组件打开“Open Specification”对话框,设置具体的属性,对“包”组件来说需要在Files选项卡中指明与其对应的目录。创建完毕的组件图如图8.6所示。
图8.6
(8)选择业务对象包(BO),双击,打开业务对象包的详细组件图,这里根据分析的结果分别创建Title.java,Item.java,Loan.java,BorrowerInfomation.java,Reservation.java组件,并设置好每个组件的构型和对应的文件。创建好的BO包组件图如图8.7。
59
实验九 组件图和部署图
图8.7
(9)创建依赖关系。在本节前述一段中,已经描述过各个类之间的依赖关系,依赖关系使用虚线表示,因此根据分析中的结果,在图中将相互依赖的组件连接即可。完成后的组件图如图8.8。
图8.8
2. 绘制部署图 分析:
LSTC图书馆管理系统目前开发的是一个单机版系统,其中所有的运算均在一台机器上完成,但是由于打印报表的需要,系统还应配备一台打印机。因此得出系统中存在2个节点:
① 一台主机,其类型是Processor。 ② 一台打印机,其类型是Device。
60
实验九 组件图和部署图
绘图步骤:
(1)浏览窗口中选择“Deployment View”,弹出如图8.9所示窗口。
图8.9
(2)在图中添加分别添加一个Processer和Device,并分别命名为“computer with java support”和“Printer”,添加完毕后,其结果如图8.10所示。
图8.10
(3)为节点添加连接关系,如图8.11。
61
实验九 组件图和部署图
图8.11
五、实验报告要求
1.整理实验结果。 2.小结实验心得体会。
六、实验作业
1. 在实验八所得到的“LSTC图书馆管理系统”ROSE模型基础之上绘制完整的组件图和部署图。到此,《软件工程》课程的“LSTC
图书馆管理系统”的
UML模型宣告设计完毕。
2.将本实验完成后得到的ROSE模型文件进行打包(请在文件名中注明“最终版”),通过课件主页的“作业提交”栏目完成作业上传。
62
实验十 正向工程
实验十 正向工程
一、实验目的
1.理解正向工程的基本概念。 2.利用Rose工具生成代码框架。 3.在实现过程中使用转换后的代码。 4.Java编程综合练习。
二、实验器材
1.计算机一台。
2.Rational Rose 工具软件。
三、实验内容
现在,LSTC图书馆管理系统的分析和设计工作已经基本完成,即将进入编码阶段。为了加快编码进度,可以利用ROSE建模工具执行正向工程,将系统中已经设计好的模型转换成指定语言类型的代码框架,然后再填充功能代码,现要求您完成该项任务。
四、实验步骤
使用Rose工具将设计的模型通过正向工程生成代码框架。按照使用Rose工具生成代码的6步基本步骤可以顺利的完成代码框架的生成工作。
(1)检查模型; (2)创建组件; (3)将类映射到组件; (4)设置代码生成属性; (5)选择类,组件和包; (6)生成代码。 步骤:
(1)在上面做好的类图和组件图,浏览窗口中选择“Component View”;见图9.1。 (2)本例是用实现administrator类为例来讲一下怎样实现正向工程,首先在左边的工具栏内选一个组件,并命名为administrator类,并找到这个类。
63
实验十 正向工程
图9.1
(3)在上面的图中找到administrator类后,把它拖拉到刚才建好的组件图里面,见图9.2所示。
图9.2
(4)做完上一步后,双击该组件,在找开的对话框中,选“Files”这个选项,如图9.3那样设置。
64
实验十 正向工程
图9.3
(5)做完上一步后,右键单击该组件,便会看到有一项为“Java/J2EE”,如图9.4所示,然后选择“Java/J2EE”菜单中的“Generate Code“,见图9.5,接下来会有另一个对话框出现,选择刚才添加的类点击中间的“Assign”键,见图9.6。到此,正向工程生成代码做完,不过,生成的代码没有具体的代码,有类的属性和方法头,但没有方法体,这需要程序员编写。
图9.4
65
实验十 正向工程
图9.5
图9.6
以下为所生成的administrator.java的部分源代码 //Source file: D:\\\\UML\\\\1\\\\administrator.java public class administrator extends Person {
public String name; public String Id; /**
66
实验十 正向工程
* @roseuid 46F9CE9B01B5 */
public administrator() { } }
(6)其他的类的正向工程生成代码同上面的方法一样,在此不再一一介绍。 (7)请尽量实现你所作类图和组件图所涉及的代码。
五、实验报告要求
1.整理实验结果。 2.小结实验心得体会。
六、实验作业
1. 在实验八所得到的“LSTC图书馆管理系统”ROSE模型基础之上实施ROSE正向工程,生成项目代码框架。
2.将本实验完成后得到的ROSE模型文件和代码框架进行打包,通过课件主页的“作业提交”栏目完成作业上传。
67
因篇幅问题不能全部显示,请点此查看更多更全内容