软件工程实验指导书.docx
《软件工程实验指导书.docx》由会员分享,可在线阅读,更多相关《软件工程实验指导书.docx(45页珍藏版)》请在冰豆网上搜索。
软件工程实验指导书
软件工程实验指导书
软件工程实验是《软件工程》课程讲授中一个重要的、不可或缺的实践环节。
其目的是使学生能够在实际软件工程项目中熟练的运用软件工程的理论、技术和方法,全面掌握软件工程管理、软件需求分析、软件概要设计、软件详细设计、软件测试等阶段的方法和技术,以及培养学生的合作意识和团队精神,培养学生对技术文档的编写能力,从而使学生提高软件工程的综合能力,提高软件项目的管理能力。
根据课程的特点,实验内容包括结构化的方法学和面向对象的方法学两个方面。
引入一个简单的实际项目(自选或教师指定),要求学生利用结构化软件开发技术或面向对象的软件开发技术完成对该项目的开发。
此外又引入我国国家《计算机开发规范文档》,以规范技术文档的书写标准,提高实验教学质量。
特别是在实验中针对面向对象的软件开发技术,增加面向对象的工业建模标准-------统一建模语言及其工具rationalrose的专项练习。
通过实验训练,达到如下目的:
使学生进一步了解和掌握软件工程原理,提高对实际项目的分析和设计能力,快速掌握结构化的软件分析技术、设计技术和软件测试,并熟练的撰写软件文档;进一步的掌握面向对象的分析技术、设计技术和测试技术,以及统一建模语言及其工具rose在实际工程项目中的应用,从而培养学生综合运用所学课程知识,分析解决问题的能力以及学生的合作意识和团队精神,为今后走向工作岗位打下扎实的基础。
一、实验要求
软件工程实验要求学生采用“项目小组”的形式,结合具体的开发项目进行设计。
具体要求如下:
1.班级按项目小组进行分组,每组不得超过5人
2.每个项目小组选出项目负责人或项目经理,由项目经理召集项目组成员讨论、选定开发项目
3.项目开的每项任务要落实到人且规定该任务的起止日期和时间
4.每个项目小组必须按照《软件工程实验指导书》附录中给定的文档规范标准提供项目文档
5.根据实验内容,分别实现结构化的开发和面向对象的软件开发
6.题目自定或采用附录一中的题目
二、实验内容
1.结构化软件开发技术
以实际工程项目为驱动,采用结构化的分析、设计与实现方法完成该项目的分析设计与实现。
(1)项目的可行性分析
评述为了合理地达到开发目标而可能先择的各种方案;论证所选定的方案。
(2)项目的开发计划
以项目负责人为主,对于在开发过程中各项工作的负责人员、开发进度所需经费预算、所需软、硬件条件等问题作出安排记载下来,以便根据本计划开展和检查本项目的开发工作。
(3)软件需求规格说明书
编制目的是软件使用用户、业务专家和软件开发者对该软件的起初规定有一个共同的理解,使之成为整个开发工作的基础,主要将用户的需求和业务的需求转化为未来软件系统的目标功能模型。
(4)软件概要设计说明书
编制目的是说明对未来软件系统的结构设计的考虑,包括软件系统的体系结构、数据的设计、接口的设计以及模块基本处理流程的设计,为软件系统的详细设计提供基础。
(5)详细设计说明书
编制目的是说明一个软件系统各个层次中的每一个结构(模块或子系统)的设计考虑,如果一个软件系统比较简单,层次很少,本文件可以不单独编写,有关内容合并概要设计说明书。
(6)数据库设计
数据库设计说明书的编制目的是对于设计中所涉及的数据对象的逻辑结构和理结构作出具体的设计规定。
(7)测试分析报告
测试分析报告的编写是为了把单元测试、集成测试、系统测试和确认测试的结果写成文件加以记载。
(8)用户手册
描述该软件系统的基本使用方法。
使用户(或潜在用户)通过本手册能够了解该软件的功能以及熟练的使用该系统。
注:
国家《计算机软件开发规范文档》见附录二。
2.面向对象的软件开发技术
以实际工程项目-----图书管理系统为驱动,结合面向对象的建模语言---uml及建模工具ratioanlrose,完成该项目的分析、设计与实现。
(1)面向对象的分析
●用例模型:
软件系统的功能模型
●活动图:
软件系统的业务模型
●类对象模型:
软件系统的结构模型
(2)面向对象的设计
●用例模型:
设计阶段软件系统的功能模型
●类对象模型:
设计阶段软件系统的结构模型
●动态模型:
顺序图和协作图,状态图
(3)面向对象的实现
●组件图:
系统的编码
●部署图:
系统的部署
注:
结合3--rationalrose的练习完成该项目。
3.RationalRose的使用
(1)rationalrose的基本操作的熟悉
(2)用例视图的建立
(3)逻辑视图的建立
类对象模型
动态模型的建立
●顺序图
●协作图
●状态图
●活动图
(4)组件图的建立
(5)部署图的建立
三、实验过程
课程实验项目具体要求如下:
实验一项目开发的准备工作
实验学时:
2实验类型:
设计型
一、目的与任务
确定课题,组织软件开发团队,制定开发计划,项目职责分工、熟悉软件开发环境,培养团队精神。
二、内容、要求与安排方式
1.实验内容与要求:
根据所选课题,实行项目经理制,每组推荐一名组长,统一管理整个项目的实施过程,合理调整资源和负责项目全局;根据项目的难易合理分配组员的任务,对问题达成一致的看法;制定开发计划,熟悉相应的软件开发环境。
2.实验安排方式:
本实验为开放实验,各组可同时进行实验,每组5-6人。
三、实验设备
1.所用设备:
计算机、打印机。
2.消耗性器材:
无
实验二系统分析过程
实验学时:
2实验类型:
设计型
一、目的与任务
采用结构化或面向对象的软件开发技术,获取业务需求、用户需求和软件需求,完成软件系统的需求分析过程,设计软件系统逻辑功能模型,数据模型、行为模型以及撰写软件需求规格说明书。
二、内容、要求与安排方式
1.实验内容与要求:
(1)结构化开发技术
理解项目的业务需求、用户需求和软件需求的内容,绘制软件系统的功能模型-----DFD(数据流程图)、数据模型----E-R(实体联系图)和STD(行为模型)以及数据字典和需求规格说明书。
(2)面向对象开发技术
理解项目的业务需求、用户需求和软件需求的内容,绘制软件系统的功能模型(用例图)、静态的结构模型(类图)、行为模型(交互图和状态图)、数据模型以及数据字典和需求规格说明书。
2.实验安排方式:
本实验为开放实验,各组可同时进行实验,每组5-6人。
三、实验设备
1.所用设备:
计算机、打印机。
2.消耗性器材:
无
实验三系统设计过程
实验学时:
2实验类型:
设计型
一、目的与任务
依据软件需求规格说明书,完成软件系统体系结构的设计和系统结构中每个模块的详细算法设计,并给出相应的软件设计规格说明书。
二、内容、要求与安排方式
1.实验内容与要求:
(1)结构化开发技术
仔细分析需求规格说明书的内容,设计系统的功能层次结构图SD(结构图)、接口设计、数据库设计和系统结构中各模块算法的详细设计,以及撰写软件设计规格说明书
(2)面向对象开发技术
仔细分析需求规格说明书的内容,设计系统的体系结构、问题域类设计、人机交互类设计、数据管理类设计及各子类的详细设计,以及撰写软件设计规格说明书
2.实验安排方式:
本实验为开放实验,各组可同时进行实验,每组5-6人。
三、实验设备
1.所用设备:
计算机、打印机。
2.消耗性器材:
无
实验四系统实现过程
实验学时:
2实验类型:
综合型
一、目的与任务
完成软件系统的编码,并正确运用软件测试技术和方法,完成软件系统的单元测试、集成测试、确认测试、验收测试,熟练掌握测试用例的设计方法,能撰写测试报告。
二、内容、要求与安排方式
1.实验内容与要求:
(1)软件系统编码
(2)熟悉测试技术,能掌握单元测试、集成测试、确认测试、验收测试的方法,掌握测试用例的设计方法。
(3)树立正确的软件测试思想,培养分析问题、解决问题的能力,能掌握测试报告的撰写。
2.实验安排方式:
本实验为开放实验,各组可同时进行实验,每组5-6人。
三、实验设备
1.所用设备:
计算机、打印机。
2.消耗性器材:
无
实验五:
用例模型
实验学时:
2实验类型:
设计型
一、目的与任务
目的:
熟悉用例模型的功能,熟悉rationalrose的使用环境,掌握如何使用rose创建系统的用例模型。
任务:
熟练掌握rationalrose的开发环境,熟练用例模型的创建过程。
二、内容、要求与步骤
内容:
本实验采用一个案例--------网上选课系统。
在了解系统的具体需求后,完成对系统的需求建模。
当创建系统的用例模型后,应针对每个用例进行业务分析,说明其具体的业务流程。
要求:
实现用例模型,并对其中主要的用例进行用例描述。
实验步骤:
1.系统需求陈述
网上选课系统主要包括如下功能:
管理员通过管理界面进入,建立本学期要开的各种课程、将课程信息保存在数据库里并可以对课程进行修改和删除。
学生通过客户机的浏览器根据学号和密码进入选课界面,查询已选课程和选课。
2.系统主事件流的描述
①添加课程事件流:
1.管理员选择进入管理界面,用例开始。
2.系统提示输入管理员密码。
3.管理员输入密码。
4.系统验证密码。
A1:
密码错误
5.进入管理界面,系统显示目前所建立的全部课程信息。
6.管理员选择添加课程。
7.系统提示输入新课程信息。
8.管理员输入信息。
9.系统验证是否和已有课程冲突。
A2:
有冲突
10.系统添加新课程,提示课程添加成功。
11.系统重新进入管理主界面,显示所有课程。
12.用例结束。
其他事件流:
A1:
密码错误
1.系统提示再次输入。
2.用户确认。
3.三次错误,拒绝再次访问。
4.否则进入添加课程事件流第5步。
A2:
有冲突
1.系统提示冲突,显示冲突课程信息。
2.用户重新输入。
3.继续验证直到无冲突。
4.进入添加课程事件流第10步。
注:
删除课程事件流和修改课程事件流与此类似,在此不再详述。
②选课事件流:
1.学生进入选课登入界面,用例开始.
2.系统提示输入学号和密码.
3.学生输入学号密码.
4.系统验证:
A1;验证失败。
5、进入选课主界面。
6、学生点击选课。
7、系统显示所有课程信息。
8、学生选择课程。
9、系统验证课程是否可选。
A2:
不可选。
10、系统提示课程选择成功,提示学生交费。
11、用例结束。
错误流:
A1:
验证失败
1.系统提示验证失败,提示重新输入。
2.三次失败,拒绝访问。
3.成功,转选课事件流第5步。
A2:
不可选
1.系统提示不可选及原因。
2.学生重新选课。
3.重新验证直至成功。
4.转选课事件流死10步。
注:
查询事件流比较简单,在此不详述。
2.分析
在-网上选课系统中,管理员首先登录系统,系统验证通过后,管理员负责添加课程、修改课程和删除课程等主要功能,所有信息存放在后台数据库中。
学生实现对本学期课程的查询和选课。
3.创建用例模型
(1)在用例图上双击main,出现如图1.1所示,为绘制用例图做好准备。
图1.1rationalrose的用例模型
(2)在图中的工具栏选取Actor图标(参与者),在右边的图中添加一个Actor,并输入名称管理员(administrator),如图1.2所示。
图1.2添加一个参与者
(3)在左边的工具栏中,选取用例的图标,在右边的图中画出一个用例,并输入用例的名称:
addCourse,如图1.3.
图1.3添加一用例
(4)按照步骤(3),绘制出如图1.4的三个用例,添加课程(addCourse)、修改课程(modifyCourse)和删除课程(deleteCourse)。
图1.4添加三个用例
(5)在绘出了用例后,接下来的是绘制参与者与用例的关联,如图1.5所示。
图1.5参与者和用例的关联
(6)根据以上步骤,可完成学生使用的用例。
则系统的用例模型就完成了,如图1.6所示。
图1.6完整的参与者和用例的关联图
(7)根据分析情况,进一步添加或细化用例图。
三、实验报告要求
1.整理实验结果,写实验报告。
2.小结实验心得体会。
实验六:
类图
实验学时:
2实验类型:
设计型
一、目的与任务
目的:
理解类的基本概念;掌握如何从需求分析中抽象出类,类对象间的关联,类自身的属性和方法;掌握在RationalRose中绘制类的操作方法。
任务:
寻找和抽象出网上选课系统所涉及的类,熟练掌握rationalrose中类图的创建过程。
二、内容、要求与步骤
内容:
根据网上选课系统的需求模型-----用例模型中用例的描述,了解了系统中每一用例的业务处理流程。
现在需要对系统进行静态建模,即类图。
要求:
绘制类图,包括类间的关联。
实验步骤:
1.分析
由前面章节对网上选课系统中课程的添加、修改和删除等基本功能的主事件流的描述可抽象出系统所涉及的主要对象,如Student(学生类)、Administrator(管理员类)、FormObject(界面类)、Course(课程类)、ControlObject(控制对象类)、DataBase(数据库类)等。
2.绘制类的步骤:
(1)打开前面初步构建的UML模型文件。
(2)打开Rose中的逻辑视图(LogicalView),在其下创建一张类图,名为:
“网上选课系统类图。
(3)用鼠标右击LogicalView,在弹出来的菜单中选择“New→Classdiagram”项,创建类图。
(4)双击新建的类图,并点右边控件集中选中的类的图标,并用鼠标在图中分别拖出一个类图,并命名为Course,如图1.7所示。
图1.7网上选课系统的类图
(5)接下来的一步为设置类的属性,在新的类中双击该类,在打开属性面板中,可以看到在此可以设置类的属性和方法等其他的信息,图1.8所示;后撞击Attributes这个栏目,此栏目为设置类的属性的选项,在图中间的单击右键,可以看到有一个“Insert”的选项,选中这个选项;如课程号,在Type这个方框内输入此属性的类型值,同时可以看到一栏可以设置此属性的访问权限,一般这些属性都设置Private这个权限,如图1.9所示。
这个类的其他属性也可以按照以上的做法设置。
图1.8类的属性设置
图1.9Course类属性设置
(6)设置好类的属性,现在来设置类的方法(也是操作),双击类后在弹出的菜单上选operations这个选项,可以看到图1.10所示,在图中的空白地方,单击右键,在弹出的菜单中选insert这个选项,也就只有这个选项可用,接着输入方法名,同时可以设置该方法的返回类型,也可以在Documentations的方框内填写一些相关的方法说明,设置好该方法的访问权限。
类的其他方法也可以按上面来设置好,最后,得到该类的其他方法见类1.10。
图1.10设置类的方法
(7)至此,类的方法和属性都设置好了,如图1.11所示。
图1.11完整的Cpurse类(名称、属性和方法)
(8)同样的方法设置其他的类,并分别设置相关的属性和方法,得到系统的初步类图,并根据分析情况,进一步细化添加相关的类,并给出类之间的关联,如图1.12所示。
图1.12系统的最终类图
三、实验报告要求
1.整理实验结果,写实验报告。
2.小结实验心得体会。
实验七:
顺序图和协作图
实验学时:
2实验类型:
设计型
一、目的与任务
目的:
理解顺序图的基本概念,理解协作图的基本概念;掌握在RationalRose中绘制交互图的操作方法。
任务:
对网上选课系统中的用例进行动态建模,熟悉交互图的创建过程。
二、内容、要求与步骤
内容:
完成网上选课系统的静态结构---类模型的搭建。
现在需要对前面所给出的用例进行实现,而用例的实现主要由交互图来指定和描述系统的动态特性,即对象之间的交互,用顺序图和协作图实现。
要求:
给出系统所涉及主要用例的动态实现------交互图的绘制。
步骤:
(以系统管理员添加课程的用例展示交互图的实现)
1.添加课程用例的主事件流描述
管理员进入管理界面,选择添加课程功能。
1)界面提示用户输入课程信息。
2)界面对象创建一个课程对象。
3)通过控制对象来对课程信息进行合法性检查。
‘
4)控制对象向课程对象返回结果。
5)控制对象向数据库查询课程相关信息。
6)控制对象对查询结果进行判断。
7)控制对象向数据库中插入数据。
8)在界面上显示结果。
9)控制对象撤消建立的课程对象。
2.绘图步骤:
(1)在Rose软件的左边栏目上的LogiclView单击右键,在弹出来的菜单中选择“New→Sequencediagram”项新建一个顺序图,顺序图是交互图一种表示,可以用时序来表示,如图1.13。
图1.13顺序图
(2)接下来的是添加对象。
见图1.14所示。
图1.14添加了对象的顺序图
(3)添加对象后,便可以添加对象间的消息了。
如图1.15所示。
图1.15添加了对象间消息的顺序图
(4)完成了顺序图后,可以按F5键便得到添加课程的协作图;或在弹出来的菜单中选择“New→Collaborationdiagram”项见图1.16所示。
图1.16协作图
三、实验报告要求
1.整理实验结果,写实验报告。
2.小结实验心得体会。
实验八:
状态图
实验学时:
2实验类型:
设计型
一、目的与任务
目的:
熟悉活动图的基本功能和使用方法,掌握如何使用建模工具绘制活动图方法。
任务:
完成系统主要对象的状态变换,熟练状态图的创建过程。
二、内容、要求与步骤
内容:
得到网上选课系统的业务处理过程,但对业务处理过程的处理状态间转换了解仍不够,这不利于设计人员对系统业务的进一步理解,而状态图能从对象的动态行为的角度去描述系统的业务活动。
要求:
实现网上选课系统中课程对象的状态图。
实验步骤:
1.业务分析:
由前面章节对网上选课系统中的添加课程的主要业务的描述和分析可知,管理员可以添加、删除和修改课程信息,在某个学期开设该课程,如果选修人数超过指定人数,就不再允许学会选这门课。
学期结束,课程的状态结束。
2.绘图步骤:
(1)在逻辑视图(Logicalview)下,点击鼠标右键,在弹出来的菜单中选择“New→Statechartdiagram”项如图3.1所示,新建一个状态图,命名为addCourse状态图,图1.17所示。
图1.17构建状态图
(2)双击“addCourse”状态图,展开后,在左边的工具栏上选取一个实心圆点,此结点为开始结点;当创建该课程时,操作者添加课程到数据库中,如果修改或删除某课程,则发出其他事件,如删除课程的事件“deletecourse”,则课程的状态就转入“deleted”状态。
如图1.18所示。
图1.18添加两个状态的状态图
(3)课程对象(course)的状态图如图1.19所示。
图1.19还书的状态图
(5)根据分析设计情况,进一步添加或细化状态图。
三、实验报告要求
1.整理实验结果,写实验报告。
2.小结实验心得体会。
实验九:
活动图
实验学时:
2实验类型:
设计型
一、目的与任务
目的:
.熟悉活动图的基本功能和使用方法,掌握如何使用建模工具绘制活动图方法。
任务:
对每个用例进行业务分析,说明其具体的业务流程;熟悉rose中活动图的创建过程。
二、内容、要求与步骤
内容:
在了解系统的具体需求后,完成对系统的需求建模。
当创建系统的用例模型后,应针对每个用例进行业务分析,说明其具体的业务流程。
要求:
实现用例的业务流程。
实验步骤:
1.业务分析
添加课程事件流:
1.管理员选择进入管理界面,用例开始。
2.系统提示输入管理员密码。
3.管理员输入密码。
4.系统验证密码。
A1:
密码错误
5.进入管理界面,系统显示目前所建立的全部课程信息。
6.管理员选择添加课程。
7.系统提示输入新课程信息。
8.管理员输入信息。
9.系统验证是否和已有课程冲突。
A2:
有冲突
10.系统添加新课程,提示课程添加成功。
11.系统重新进入管理主界面,显示所有课程。
12.用例结束。
其他事件流:
A1:
密码错误
1.系统提示再次输入。
2.用户确认。
3.三次错误,拒绝再次访问。
4.否则进入添加课程事件流第5步。
A2:
有冲突
1.系统提示冲突,显示冲突课程信息。
2.用户重新输入。
3.继续验证直到无冲突。
4.进入添加课程事件流第10步。
2.绘图步骤:
(1)在逻辑视图(Logicalview)下,点击鼠标右键,在弹出来的菜单中选择“New→ActivityDiagram”,选中后单击,便可以新建好一个活动图。
如图1.20所示。
图1.20活动图
(2)新建好活动图后,双击删除的活动图,然后把在左边的工具栏内点击“UI“,在右边的图添加一个泳道,并命名为“Model”.按照此步骤,再添加另一个泳道,并命名为“Database”,得到图1.21.
图1.21带有两个泳道的活动图
(3)接着在左边的工具上选取开始点,并在“UI”泳道上添加开始结点后,再来为此活动图添加活动,名为:
输入各项课程信息“,并添加他们间添加活动关系,如图1.22所示。
图1.22带活动的活动图
(3)根据业务分析中添加课程的事件流程,最终获取“添加课程“用例的具体也去的处理流程,活动图如图1.23所示。
图1.23完整的添加课程的活动图
(4)根据分析设计情况,进一步添加或细化活动图。
三、实验报告要求
1.整理实验结果,写实验报告。
2.小结实验心得体会。
实验十:
组件和部署
实验学时:
2实验类型:
设计型
一、目的与任务
目的:
理解组件图的基本概念,理解部署图的基本概念,掌握组件图和部署图绘制的方法。
任务:
完成系统的物理部件的映射,熟练掌握rationalrose中组件和部署图的绘制。
二、内容、要求与步骤
内容:
已经完成网上选课系统的分析和设计,下一步就是生成系统的组件图和部署图。
要求:
完成系统的组件图和部署图。
实验步骤:
1.分析:
在网上选课系统中,通过分析可以发现类图中的类应分为4个部分:
在选课系统中,包括MainProgram类(主程序)、People类、ControlObject类、Student类、Registrar类、Course类和DataBase类。
其中,People类是Student类和Registrar类的抽象类,所以Student类和Registrar类依赖People类。
FormObject类和ControlObject类都和Course类相关, FormObject类和ControlObject类依赖Course类。
ControlObject类和DataBase类相关,ControlObject类依赖DataBase类。
2.绘图步骤:
组件图:
(1)在组件视图中双击Main图,在右边的绘图区中添加一个新组件,并取名StartClass.java表明新增一个主程序,如图1.24.。
图1.24组件图
(3)选择新创建的组件,点击鼠标右键,在弹出的菜单中选择“OpenSepcification”,)在对话框中,可以修改组件的名称,设置组件的类型,指定实现的语言。
这里新