《软件工程导论》实
验指导书
实验类别: 实验课程名称:软件工程导论 实验室名称: 实验课程编号: 总学时:48 学 分:3 适用专业:软件工程
先修课程:程序设计语言
实验在教学培养计划中地位、作用;
《软件工程导论》是理论与实践并重的课程。这门实验课为配合软件工程的课堂教学而编写,要求学生综合运用一、二、三年级所学的多门课程的内容。通过本实验课程培养学生的实际分析问题、编程和动手能力,最终使学生系统的掌握该门课程的主要内容,更好的完成教学任务。
实验一 面向对象分析-用例图的绘制(2学时)
1、实验目的:
通过实验,熟悉并掌握面向对象分析的一种工具Rational Rose 2003,掌握面向对
象软件开发中用例图的绘制。
2、实验内容:
设计和实现某学校的网上选课系统的用例图。 3、实验要求:
(1) 给出本系统的功能描述:
某学校的网上选课系统主要包括如下功能:管理员通过系统管理界面进入,建立本学期要开的各种课程、将课程信息保存在数据库中并可以对课程进行改动和删除。学生通过客户机浏览器根据学号和密码进入选课界面,在这里学生可以进行三种操作:查询已选课程、选课以及付费。同样,通过页五层,这些操作结果存入数据库中。
(2) 对本系统的用例、活动者进行分析:
本系统拟使用Java语言通过三层模型实现:数据核心层、业务逻辑层和接入层。数据核心层包括对于数据库的操作;业务逻辑层作为中间层对用户输入进行逻辑处理,在映射到相应的数据层操作;接入层包括用户界面、系统登录界面、管理界面、用户选课界面等。
本系统涉及的用户包括管理员和学生,他们使用例图中的活动者,他们的主要特征相似,都具有学号和姓名等信息,可抽象出“基”活动者people,而registrar和student则从people同一诞生,数据库管理系统是另外一个活动者。
(3) 写出系统中出现的一些事件流,如添加课程事件流、删除课程事件流、修改课
程事件流、选课事件流。
下面是系统中出现的一些事件流。 添加课程事件流:
a) 管理员选择进入管理界面,用例开始。 b) 系统提示输入管理员密码。 c) 管理员输入密码。 d) 系统验证密码。 A1:密码错误
e) 进入管理界面,系统显示目前所建立的全部课程信息。 f) 管理员选择添加课程。
g) 系统提示输入新课程信息。 h) 管理员输入信息。
i) 系统验证是否和已有课程冲突。 A2:有冲突
j) 系统添加新课程,提示课程添加成功。
k) 系统重新进入管理主界面,显示所有课程。 l) 用例结束。 其他事件流:
A1:密码错误
a) 系统提示再次输入密码 b) 用户确认。
c) 三次错误,拒绝再次访问。
d) 否则进入添加课程事件流第e)步。
A2:有冲突
a) 系统提示有冲突,显示冲突课程信息 b) 用户重新输入
c) 继续验证知道无冲突
d) 进入添加课程事件流第j)步
删除课程事件流和修改课程事件流与此类似。 选课事件流:
a) 学生进入选课登陆界面,用例开始。 b) 系统提示输入学号和密码。 c) 学生输入学号和密码。 d) 系统验证课程是否可选。 A1:验证失败
e) 进入选课主界面。 f) 学生点击选择课程。
g) 系统显示所有课程信息。 h) 学生选择课程。
i) 系统验证课程是否可选。
A2:课程不可选
j) 系统提示课程选择成功,提示学生交费。 k) 用例结束。 错误流:
A1:验证失败
a) 系统提示验证失败,提示重新输入 b) 三次错误,拒绝再次访问。 c) 成功,转选课事件流第e)步 A2:课程不可选
a) 系统提示课程不可选以及原因。 b) 学生重新选课。
c) 重新验证直至成功。 d) 转选课事件流第j)步。
因为付费方式多样,所以此处不必讨论费用例。查询事件流比较简单,这里也不用详细描述。
(4) 根据以上的分析,可以绘出如下图所示的系统用例图。
(5) 在Rose 2003中绘制系统用例图,具体步骤如下:
a) 点击浏览器中的Use Case View 中的Main,弹出用例图窗口。
b) 将光标置于工具栏的Actor图标上,按下左键并将光标拖拽到用例图窗口
上,放开左右键,用例窗口内出现一个活动者的图标,将其命名为“New Class”
c) 采用同样的方法,在用例图中添加Registrar和Student图标。 d) 点击用例窗口工具栏中的图标“generalization”,在用例图窗口中,将光标
从Student移动到People之间添加概括(generalization)关系。 e) 同样在Registrar和People之间添加概括关系。 f) 点击工具栏中Use Case但图标,将光标移到用例图窗口,窗口内显示用例
的椭圆图标,将其命名为“Select Course”。 g) 点击工具栏中的Undirectional Relation 图标,将光标从Student指向Select
Course,在Student和Select Course之间添加关系。 h) 重复以上步骤,完成(4)中所示的用例图。
i) 然后再指定活动者和用例的属性。在浏览器中选择活动者People,按下鼠
标右键,在弹出的菜单中选择“Open Specification”,可以看到People的版型(Stereotype)是Actor。
j) 双击Select Course用例,弹出Use Case Specification对话框。 k) 在Documentation文本框中书写该用例的事件流。
l) 在完成以上步骤,可以看到Rose在浏览器中自动标出了各种关系。
实验二 面向对象分析-顺序图的绘制(2学时)
1、实验目的:
通过实验,熟悉并掌握面向对象软件开发中顺序图的绘制。 2、实验内容:
以选课系统中的选课用例(Select Course)为例,设计和实现顺序图。
3、实验要求
(1) 假设学生已经成功登录系统,分析选课的事件流。
a) 学生进入选课主界面。 b) 学生点击选课。
c) 系统显示所有课程信息。 d) 学生选择课程。
e) 系统验证课程是否可选。 A1:课程不可选
f) 系统提示课程选择成功,提示学生交费。 g) 用例结束。 A1:课程不可选
a) 系统提示课程不可选及原因。 b) 学生重新选课。
c) 重新验证直至成功。 d) 转选课事件流第f)步。
序列图描述的是对象与对象的交互,创建序列图的步骤如下: a) 寻找对象。 b) 寻找角色。
c) 将消息加进图中。
首先,查找Select Course用例的对象。从实践流中发现涉及以下对象: a) 界面。 b) 课程。
c) 对于业务层的操作,也应该有对象进行处理。 d) 实践流中设计的角色有:学生、数据库。
(2) 然后,分析对象、交色之间交互的消息。本用例主要有以下交互:
a) 学生通过界面发送选课命令。 b) 界面向控制对象请求课程信息。
c) 控制对象向数据库发送查询数据消息。 d) 控制对象暂存数据库的查询结果。
e) 界面对象从控制对象中取得所有的课程信息。 f) 在界面上显示所有的课程信息。
g) 界面对象发送命令要求控制对象删除课程信息。 h) 学生选择课程。
i) 界面对象要求学生输入学号。
j) 界面对象向控制对象发送信息,查询该生是否可以选择选定的课程。 k) 控制对象从数据库查询关联信息。 l) 控制对象判断是否可以选课。
m) 如果可以选课,则向数据库中添加关联信息。 n) 向界面对象返回信息。
(3) 根据以上分析,整理得出最终Select Course的顺序图。

