资源描述
北 京 邮 电 大 学
计 算 机 科 学 与 技 术 学 院
软件工程综合设计与实验
实验指导书
肖丁、吴建林 编著
2007年6月
软件工程面向对象分析与设计 实验指导书
目 录
一、 实验类别 1
二、 实验目的 1
三、 实验学时 1
四、 实验小组安排 1
五、 实验环境 1
六、 实验原理及要点(知识点) 2
七、 实验内容和要求 3
教材及主要参考文献 3
北京邮电大学 计算机科学与技术学院
软件工程面向对象分析与设计 实验指导书
实验一 面向数据流的结构化方法实验
一、 实验类别
本实验属于软件分析、设计与开发类型的实验,是与《软件工程》课程中结构化分和设计方法的配套实验。
二、 实验目的
结构化分析与设计是软件工程传统的软件开发方法,主要应用面向数据流的技术,以瀑布模型为建模过程指导,以自顶向下的分析和设计原则来驱动整个软件开发过程。
本实验的总体目标是:培养学生采用面向数据流的结构化分析与设计方法进行实际项目开发的动手能力,加深并巩固《软件工程》课堂上讲授的结构化分析与设计知识。具体目的如下:
l 熟悉瀑布模型,掌握瀑布模型的六个关键开发阶段。
l 掌握面向数据流的分析方法以及如何通过数据流图转化出系统功能结构图的方法,加深对结构化的分析和设计原则。
l 熟悉瀑布模型的六个里程碑,重点突出掌握需求规格说明书以及系统的概要和详细设计说明书。
l 熟悉并实践黑盒和白盒的系统测试方法。
三、 实验学时
共16学时,安排每周2学时,共8周。
四、 实验小组安排
实验学生按照小组进行组织,每个小组6人,推举一位为小组长。每个小组的所有成员必须实践结构化的分析与设计的所有步骤,小组长负责小组的人员与任务的计划与安排,并控制和监督小组成员按时完成周任务。
每3-5个小组组成一个大组,目的是为了模拟小组之间的接口,或者说模拟软件外包时如何和承包方制定良好的接口。大组内每个小组是独立的,但必须和另外的小组之间拟定好通信接口。
五、 实验环境
l 硬件设备
(1) 普通PC机,主频1.0GHz、512MB内存。
l 软件设备
(1) 任选一种软件配置管理工具,如VSS或者SVN均可;
(2) 任选一种程序设计语言,C, Java或者C++均可;
六、 实验原理及要点(知识点)
1. 瀑布模型的建模思想
a) 瀑布模型是一个线性的开发过程,主要分为项目的计划阶段、需求分析阶段、概要设计阶段、详细设计阶段、编码实现及测试阶段以及系统的运行和维护阶段。通过实践,学生应该知道每个阶段的任务和里程碑,明确每个阶段的目标和任务以及阶段的工作成果。
b) 文档书写的规范性:瀑布模型规定了里程碑目标及相应的阶段性文档,通过实践,学生应体会出软件开发文档的重要性以及规范化软件开发的好处。
2. 瀑布模型的几个重要阶段
a) 计划阶段:项目的启动阶段,通过小组的划分和成立过程使得学生们体会出团队的软件开发模式,进而确定小组的目标。可能的情况下进行系统分析及项目的可行性分析。
b) 需求分析阶段:应用数据流图的方法进行分析,并将分析结果以分层的数据流图方式进行展示,并对数据流图中的数据元素进行描述形成数据词典。可能的情况下构建系统的领域模型,即ER图。
c) 概要设计阶段;根据数据流图和数据词典进行系统功能模块的设计,应用系统的变换分析型以及事务处理型的原则构件系统的功能结构图,并将系统功能结构图中的功能模块通过外部特性和内部特性进行说明,构成系统的概要设计说明书
d) 详细设计阶段:根据概要设计说明书所确定的各个功能模块,进行程序流程图及功能算法的设计,最终形成详细设计说明书。
e) 系统编码和测试阶段:根据系统的概要设计和详细设计阶段的成果,对各个功能模块进行编码实现,同时利用软件测试的原理进行功能模块的路径测试和系统的功能集成测试。
f) 系统的运行和维护阶段:经过系统的测试和用户验收测试之后,系统将部署在实际的运行环境中进行运转。
3. 面向数据流的基本概念
a) 数据流图及数据流图中的四个基本元素,数据流图绘制的平衡原则。
b) 变换分析型和事务处理型功能结构图,传入模块、传出模块、中心变换模块、分配和协调模块。
c) 模块的控制范围以及模块的作用范围
d) 功能模块的偶合和内聚特性,功能的扇入扇出等。
e) 程序流程图、PDL语言
这些最基本的概念应该始终贯彻到结构化的分析与设计过程中。
4. 结构化的分析与设计步骤
a) 问题分析:描述系统业务流程;
b) 需求分析:绘制分层的数据流图,并对相应的层次进行数据元素的说明,构成数据词典,最终形成需求分析规格说明书。
c) 领域模型:识别概念类;建立概念类间的关联;绘制ER图;
d) 概要设计:根据局部的领域问题重画数据流图;再确定变换中心,进而推导出初始的局部功能结构图;重复以上步骤将所有领域问题的数据流图转换为功能结构图。最后对所确定的功能结构图中功能进行外部特性和内部特性的说明,形成概要设计说明书。
e) 详细设计:根据已经确定的各功能模块,对模块内部的具体实现步骤和算法进行设计,绘制程序流程图和PDL语言进行相应的说明。
5. 系统的测试方法
a) 功能模块的单元测试:基于功能模块内部的路径进行逻辑测试,保证模块内部的逻辑正确性;
b) 功能模块间集成测试:采用黑盒测试的原理主要进行等价类划分和边界值的测试,保证功能模块之间的数据传递的正确性。
c) 系统验收测试:采用黑盒测试方法根据需求规格说明书的内容设计测试用例,并完成大型作业的系统运行验收测试;
七、 实验内容和要求
周次
实验内容
实验要求
1
1. 实验老师讲解软件开发项目内容;
2. 实验老师讲解作业实现方法及分组
3. 实验老师讲解业务建模方法
4. 小组完成软件开发项目的业务建模;
5. 确定小组成员及小组组长并完成项目开发环境的部署。
1. 描述当前系统的业务流程;
2. 描述系统的业务需求,包括功能需求和性能需求;
3. 系统里程碑开发计划
2
1. 实验老师讲解面向数据流的分析方法并讲解绘制数据流图的步骤和注意事项;
2. 小组完成系统的初始数据流图。
1. 初始的数据流图;
2. 初始的数据词典
3. 初始的需求规格说明书
3
1. 实验老师总结数据流图的结果;
2. 实验老师讲解领域模型建模步骤和注意事项;
3. 小组完成领域模型建模;
1. 修正数据流图
2. 领域模型,ER图
4
1. 实验老师总结领域模型建模结果;
2. 实验老师讲解概要设计原则及变换分析方法和事务分析方法;
3. 小组完成初始的系统功能结构图。
1. 修正领域模型
2. 重画数据流图并推导出初始的系统功能结构图
5
1. 实验老师总结系统功能结构图;
2. 实验老师讲解功能模块的划分及优化原则以及各功能模块说明的要求;
3. 小组完成各功能模块的设计工作。
1. 优化系统功能结构图
2. 优化ER图
6
1. 实验老师总结概要设计结果;
2. 实验老师讲解详细设计和测试的要求和内容;
3. 小组开始代码实现和功能测试。
1. 完成程序流程图
2. 功能模块的算法设计
3. 系统运行设计
4. 设计部分的功能测试用例
7
答疑。
8
1. 小组内部集成测试;
2. 小组间集成测试;
3. 系统验收。
1. 集成测试用例
2. 验收前的文档准备
实验二 面向对象的方法实验
一、 实验类别
本实验属于软件开发类型的实验,是与《软件工程》课程中面向对象分析与设计部分的配套实验。
二、 实验目的
面向对象分析与设计是当前各行各业应用领域广泛采用的软件开发方法,它采纳UML为建模语言,以迭代增量模型为建模过程指导,倡导以体系结构为中心,以用例来驱动整个软件开发过程。
本实验的总体目标是:培养学生采用面向对象分析与设计方法进行实际项目开发的动手能力,加深并巩固《软件工程》课堂上讲授的面向对象分析与设计知识。具体目的如下:
l 熟悉迭代增量建模思想,并使用IBM RUP(Rational Unified Process)工具将迭代增量建模思想应用于实际软件开发过程中。
l 熟练使用UML语言中的各种图形表达面向对象分析与设计的建模结果。
l 熟练使用IBM ROSE(Rational Object-oriented Software Engineering)工具实践UML语言。
l 加深对面向对象概念、面向对象设计原则、面向对象设计模式的理解,并能够自觉运用。
l 熟悉并实践面向对象分析与设计的步骤。
l 熟悉并实践面向对象的测试方法。
三、 实验学时
共16学时,安排每周2学时,共8周。
四、 实验小组安排
实验学生按照小组进行组织,每个小组6人,推举一位为小组长。每个小组的所有成员必须实践面向对象分析与设计的所有步骤,小组长负责小组的分工与协作,并推动成员按时完成周任务。
每3个小组组成一个大组,目的是为了模拟小组之间的接口,或者说模拟软件外包时如何和承包方制定良好的接口。大组内每个小组是独立的,但必须和另外的小组之间拟定好通信接口。
五、 实验环境
l 硬件设备
(1) 普通PC机,主频1.0GHz、512MB内存。
l 软件设备
(1) IBM RUP过程工具
(2) IBM ROSE2003
(3) 任选一种软件配置管理工具,如VSS或者CVS均可;
(4) 任选一种面向对象程序设计语言,Java或者C++均可;
六、 实验原理及要点(知识点)
1. RUP工具中的迭代增量建模思想
d) RUP是一个二维过程模型,横向时间维度上划分为初始阶段(inception)、细化阶段(elaboration)、构造阶段(construction)、移交阶段(transition);纵向工作流维度上划分为六个核心过程工作流和三个核心支持工作流,核心过程工作流包括:业务建模、需求、分析与设计、实现、测试、部署,三个核心支持工作流包括:配置与变更管理、项目管理、环境。通过实践,学生应该知道每个阶段的任务和里程碑,明确九个核心工作流的角色、流程、任务、工件等内容。
e) RUP的迭代增量思想:每个阶段中划分为多次迭代,每次迭代的时间是刚性的,通过迭代计划安排任务,每一次迭代通过九个核心工作流完成一个原型产品的开发;用户在原型产品的基础上提出反馈意见;下一次迭代计划中对原型产品作出适应性调整,并增加新的迭代任务。通过迭代计划制定,学生应该体会迭代时间刚性的意图,体会RUP通过用户反馈和适应性调整来适应需求变化的思想。
f) RUP的风险控制思想:在制定阶段计划时,RUP是将高业务价值和高技术风险的任务安排在细化阶段完成的,而且在细化阶段中又是按照风险的等级进行迭代计划安排的。通过设置一些用户需求的变化,让学生体会RUP是如何控制风险的。
g) RUP的规范性:RUP制定了过程规范和文档模板,通过实践,学生体会规范化软件开发的好处。
h) RUP的可裁剪性:通过实践,让学生针对自己项目的特点对RUP的过程和文档进行裁剪。
2. IBM ROSE2003中建模视图
i) 用例视图(usecase view):建立用例模型,并对系统操作进行分析。
j) 逻辑视图(logical view):建立领域模型,并将系统操作结果分配到对象上;建立设计模型。
k) 构件视图(component view):描述代码之间的关系;
l) 部署视图(deploy view):描述代码到物理设备之间的映射关系。
通过ROSE工具的使用,学生们应该知道在什么视图表达建模结果,并掌握如何用包图来组织模型。
3. 面向对象的基本思想
m) 封装:对象将属性和行为封装在一起;
n) 信息隐藏:对象将表达内部状态的属性以及针对属性的具体操作细节隐藏起来,对外公开操作接口;
o) 多态性:当一个对象的操作接口有多种实现方式时就要用到多态性。
这些最基本的思想应该始终贯彻到面向对象的分析与设计过程中。
4. 面向对象分析与设计步骤
p) 业务建模:⑴描述系统业务流程;⑵描述系统需求
q) 用例模型:⑴识别角色及其目标;⑵识别用例;⑶用例描述;
r) 领域模型:⑴识别概念类;⑵识别概念类间关联;⑶识别概念类本质属性;
s) 系统操作分析:⑴针对每个用例识别系统事件;⑵将系统事件转化为系统操作;⑶描述系统操作影响系统状态变化的结果;
t) 对象职责分配:根据面向对象设计原则和对象职责分配模式,利用交互图描述多个对象协作完成用例实现的过程。
u) 设计建模:⑴将领域类转换为设计类;⑵类操作设计;⑶类属性设计;⑷类间导航设计;⑸利用设计模式优化类设计。
5. 类的测试方法
v) 类的单元测试:基于状态的测试、基于响应状态的测试;
w) 类间集成测试:基于线程的测试、基于应用的测试
x) 面向对象确认测试:采用黑盒测试方法完成用例功能的确认测试;
y) 面向对象系统测试:和其他系统元素一起完成系统测试,确认满足系统需求规格要求。
七、 实验内容和要求
周次
实验内容
实验要求
1
6. 实验老师讲解软件开发项目内容;
7. 实验老师讲解实验软件环境中的每一个软件工具的使用方法;
8. 实验老师讲解业务建模方法;
9. 小组完成软件开发项目的业务建模;
10. 小组拟定系统开发计划;
11. 小组完成项目开发环境的部署。
4. 用活动图描述当前系统的业务流程;
5. 描述系统的业务需求,包括功能需求和性能需求;
6. 系统开发计划和初始阶段计划;
7. 初始阶段的迭代计划。
2
3. 实验老师讲解用例建模的步骤和注意事项;
4. 小组完成系统用例建模。
4. 角色及其目标描述文档;
5. 用例图
6. 用例文本描述
7. 补充规范(表达不能在用例中描述的功能需求和性能需求)
3
4. 实验老师总结用例建模的结果;
5. 实验老师讲解领域模型建模步骤和注意事项;
6. 小组完成领域模型建模;
7. 实验老师讲解系统操作分析步骤;
8. 小组完成系统操作及其操作契约的分析工作。
3. 修正用例模型
4. 领域类图
5. 系统顺序图
6. 系统操作契约
4
4. 实验老师总结领域模型建模结果;
5. 实验老师讲解对象职责分配的步骤和注意事项;
6. 小组完成对象职责分配。
3. 修正领域模型
4. 针对每个用例实现,利用交互图完成对象职责分配。
5
4. 实验老师总结对象职责分配结果;
5. 实验老师讲解设计类的设计过程和注意事项;
6. 小组完成设计类的设计工作。
3. 修正对象职责分配结果
4. 设计类图
6
4. 实验老师总结设计类图的建模结果;
5. 实验老师讲解初始化用例的分析与设计方法,并讲解系统运行设计方法;
6. 小组开始代码实现和类测试。
5. 修正设计类图
6. 初始化用例的分析与设计
7. 系统运行设计
8. 部分用例实现的源代码和测试用例。
7
1. 继续剩余用例的迭代分析、设计、实现和测试。
1. 按照上述步骤继续迭代开发。
8
4. 小组内部集成测试;
5. 小组间集成测试;
6. 系统验收。
3. 集成测试用例
4. 验收前的文档准备
教材及主要参考文献
[1] 吴建林、肖丁、周春燕、修佳鹏. 软件工程理论与方法. 北京:北京邮电大学出版社,2007年11月
[2] Craig Larman. UML和模式应用. 北京:机械工业出版社,2007年2月
[3] Martin Fowler著,徐家福译,UML精粹——标准对象建模语言简明指南(第2版),北京:清华大学出版社,2002
[4] Erich Gamma等著,李英军等译. 设计模式:可复用面向对象软件的基础,北京:机械工业出版社。
[5] 邱仲潘译,UML与Rational Rose2002从入门到精通,电子工业出版社。
北京邮电大学 计算机科学与技术学院 9
展开阅读全文