软件开发过程
实验一 软件需求分析
一、目的和意义
对本书第二和三章的内容做进一步的掌握,写出软件需求规格说明书。为下面的实习奠定基础。
二、实习内容
1、确定软件题目(学生可自己拟定,也可在本书附录2中选择);
2、分析软件需求以及人工模式下的工作流程;
3、编写需求规格说明书(需求规格说明书的编写要求参见本节模板参考);
4、完成形式:以文档的形式完成软件的需求规格说明书。纸张型号为A4。
三、实习指导
1、在磁盘上建立一个软件工程实习文件夹,以自己的姓名命名。
2、提交文档的格式如下:
第一页的格式为:
软件名称: 文档编号
版本号
文档名称:
项目名称:
项目负责人:
编写 时间
审核 时间
批准 时间
开发单位
第二页之后的内容为:
l 编写目的:阐明编写该文档的目的,指出读者对象
l 项目背景:项目的委托单位、开发单位、该软件系统与其他系统的关系。
l 参考资料
软件需求规格说明的书写原则
①任务概述:软硬件环境、条件和限制(软件的使用条件和限制)。
②数据描述:输入数据、输出数据、数据库设计和建立数据词典。
③功能需求:功能划分和功能描述
④性能需求:数据精度、时间特性、适应性(操作方式、与其他软件的接口、开发计划变化时,软件应具有的适应能力。)。
⑤运行要求:用户界面、硬件接口(如:连接打印机)、软件接口(如:是否为其他项目的子项目)、故障处理。
⑥其他需求:可使用性、安全保密性、可维护性、可移植性等。
l 模板参考
第一页:
软件名称: 教务管理软件 文档编号 001
版本号 Ver 1.0
文档名称: 需求规格说明书
项目名称: 课表编排系统
项目负责人: 屈艳
编写: 刘楠、叶艺、赵春、马燕 时间: 2005-2-14
审核: 屈艳 时间: 2005-2-16
批准: 王湘桃 时间: 2005-2-20
开发单位: 冰雪五人组
第二页之后的内容:
编写目的:编写该文档是为了分析人工状态下课表编排的工作流程,把人工模式抽象为可在计算机上处理的自动模式。便于开发小组成员对系统整体功能的认识。
项目背景:高校的课表编排一直是一个烦琐的工作,为了解决这个问题,某某高校教务处委托我们开发该软件。该软件是高校教务软件的一个子系统。该子系统与专业规划子系统和教师管理软件有一定的关系。
参考资料:
1.郑人杰 实用软件工程(第二版)北京:清华大学出版社,1997
任务概述:
硬件环境:CPU的型号为PentiumIII以上,内存256M ,及其兼容机
软件环境:Win98/2000/xp、VB/VC/VF/DeLphi 等。
软件的使用条件和限制:教室的数量能满足排课的需求;一个教师只能代两门课;修改课表有安全级别。
数据描述:
用户提供的资料:计划书和教师、教室情况
用户对软件的要求:输入计划书,系统自动按班级排课表,并可查询打印课表。
静态数据:教室信息(编号、名称、类型(普通/多媒体)、规模等)。
动态数据:计划书(课程名称,专业年级,人数,学时,讲课(周次),实验周次,教师姓名,对教室的要求等。)、教师信息(编号、姓名、学院、职称)
数据流图:
数据流图的图符含义为:圆圈表示加工,矩形框表示结果,箭头表示数据流向。
课表编排系统的数据流图如下:
计划书中的数据有:学生所在学院、专业年级、班级、人数、课程名称、总学时、周学时、周次、教师姓名、教室类型等信息。
教室数据有:教室编号、教室类型、教室的规模(60人/90人)、周一到周五各个时间段的使用情况等信息
一级课表数据有:专业年级、班级、周一至周五每天五个时间段(12节,34节,56节,78节,90节)、课程名称、教室编号、教师姓名、课程起始周次或间断的周次。
数据库描述及数据词典:
班级表banji
字段名称 | 字段类型 | 字段大小 | 字段名称 | 字段类型 | 字段大小 |
班级编号 | 文本 | 6 | 班级 | 文本 | 2 |
年级 | 文本 | 4 | 所属学院 | 文本 | 20 |
所属专业 | 文本 | 20 |
|
|
|
教室表jiaoshi
字段类型 | 字段大小 | 字段名称 | 字段类型 | 字段大小 | |
编号 | 自动编号 | 递增 | 名称 | 文本 | 30 |
类型 | 文本 | 6 | 规模 | 文本 | 6 |
星期 | 文本 | 1 | 节12 | 文本 | 1 |
节34 | 文本 | 1 | 节56 | 文本 | 1 |
节78 | 文本 | 1 | 节90 | 文本 | 1 |
课程表kecheng
字段名称 | 字段类型 | 字段大小 | 字段名称 | 字段类型 | 字段大小 |
课程编号 | 文本 | 8 | 课程名称 | 文本 | 20 |
所属学院 | 文本 | 20 | 所属专业 | 文本 | 20 |
所属年级 | 文本 | 4 |
|
|
|
计划表jihua
字段名称 | 字段类型 | 字段大小 | 字段名称 | 字段类型 | 字段大小 |
编号 | 自动编号 | 递增 | 课程名称 | 文本 | 20 |
所属学院 | 文本 | 20 | 所属专业 | 文本 | 20 |
所属年级 | 文本 | 4 | 班级 | 文本 | 4 |
学生人数 | 文本 | 6 | 总学时 | 文本 | 4 |
周学时 | 文本 | 4 | 周次 | 文本 | 6 |
教师姓名 | 文本 | 8 | 教室类型 | 文本 | 6 |
课程类型 | 文本 | 6 | 优先级 | 文本 | 1 |
临时表linshi
字段名称 | 字段类型 | 字段大小 | 字段名称 | 字段类型 | 字段大小 |
课程名称 | 文本 | 20 | 教室 | 文本 | 20 |
任教老师 | 文本 | 8 | 周次 | 文本 | 16 |
星期 | 文本 | 1 | 节次 | 文本 | 4 |
所属学院 | 文本 | 20 | 所属专业 | 文本 | 20 |
所属年级 | 文本 | 4 | 班级 | 文本 | 1 |
临时表linshi2
字段名称 | 字段类型 | 字段大小 | 字段名称 | 字段类型 | 字段大小 |
课程名称 | 文本 | 20 | 教室 | 文本 | 20 |
任教老师 | 文本 | 8 | 周次 | 文本 | 16 |
星期 | 文本 | 1 | 节次 | 文本 | 4 |
所属学院 | 文本 | 20 | 所属专业 | 文本 | 20 |
所属年级 | 文本 | 4 | 班级 | 文本 | 1 |
输出结果表result
字段名称 | 字段类型 | 字段大小 | 字段名称 | 字段类型 | 字段大小 |
节次 | 文本 | 4 | 周一 | 文本 | 50 |
周二 | 文本 | 50 | 周三 | 文本 | 50 |
周四 | 文本 | 50 | 周五 | 文本 | 50 |
周六 | 文本 | 50 |
|
|
|
功能需求:
功能划分:基本信息输入模块、计划书信息输入模块、课表自动生成模块、备份删除数据模块。
功能描述:
计划信息输入模块的功能:输入计划书中的信息。
课表自动生成模块的功能:根据输入的基本信息,自动生成一级课表。(具体算法在详细设计中查询)。
备份删除数据模块的功能:课表编排系统将在多学期使用,一个学期结束后,应备份数据,并将旧数据删除,产生新的课表数据。
性能需求:
数据精确度:整数
时间特性:无特殊要求
适应性:有一定的适应能力,可将数据导入导出。
运行需求:
用户界面:简单
硬件接口:标准接口(打印机接口)
软件接口:无,该软件暂时独立使用。
故障处理:重新安装该软件。
其他需求:
可使用性:良好
安全保密性:有安全保密性。课表编排必须由教务管理人员进行,课表修改要设定权限。
可维护性:可以进行简单的维护,
可移植性:适用于各种操作系统。
实习二 软件详细设计
一、目的和意义
对本书第四章的内容做进一步的掌握,写出软件详细设计说明书。为下面的实习奠定基础。
二、 实习内容
确定软件的总体结构,设计每个模块的细节。
①总体设计:画软件系统的结构图
②程序描述:每个模块给出以下说明
功能、性能、输入项目、输出项目、算法、限制条件、测试要点(模块的主要测试要求)。
三、 实习指导
提交文档的格式如下:
软件名称: 教务管理软件 文档编号 002
版本号 Ver 1.0
文档名称: 软件详细设计说明书
项目名称: 课表编排系统
项目负责人: 屈艳
编写: 叶艺、赵春、马燕、刘楠 时间: 2005-3-14
审核: 屈艳 时间: 2005-3-16
批准: 王湘桃 时间: 2005-3-20
开发单位: 冰雪五人组
编写目的:编写详细设计是为了上程序员在写程序时有一个依据。程序员根据详细设计写出符合设计要求的程序。
项目背景:详细设计的设计思路由教务管理科的管理人员提供,经过设计人员的加工处理,形成可在计算机上实现的算法。
1.郑人杰 实用软件工程(第二版)北京:清华大学出版社,1997
开始 | ||
do | ||
| 输入信息 | |
保存信息 | ||
是否继续输入? | ||
Y | N | |
| 结束 |
输入项:有9项,具体项目见测试用例列表。
输出项:有9项,同上。
测试用例:
教师信息:
姓名 | 性别 | 年龄 | 职称 | 承担课程 | 研究方向 |
李红 | 女 | 30 | 讲师 | 软件工程 | 软件工程 |
教室信息:
名称 | 类型 | 规模 | 星期 | 12 | 34 | 56 | 78 | 90 |
信M1 | 多媒体 | 90人 | 1-5 | 空 | 空 | 空 | 空 | 空 |
信M2 | 多媒体 | 90人 | 1-5 | 空 | 空 | 空 | 空 | 空 |
信M3 | 多媒体 | 60人 | 1-5 | 空 | 空 | 空 | 空 | 空 |
3106 | 普通 | 90人 | 1-5 | 空 | 空 | 空 | 空 | 空 |
3117 | 普通 | 90人 | 1-5 | 空 | 空 | 空 | 空 | 空 |
3118 | 普通 | 60人 | 1-5 | 空 | 空 | 空 | 空 | 空 |
计划信息录入模块:
功能:完成计划书的信息输入,并保存在数据库中,供自动排课模块使用。
输入项:有9项,具体见测试用例。
输出项:有9项,同上。
算法:算法同基本信息输入模块。
测试用例:
计划书信息
学生学院 | 专业年级 | 班级 | 人数 | 课程名 | 总学时 | 周学时 | 教师名 | 教室类型 |
信息学院 | 计算机02 | 1-3 | 90 | 编译原理 | 60 | 4 | 李长悦 | 普通 |
信息学院 | 计算机02 | 1-3 | 90 | 软件工程 | 50 | 4 | 王湘桃 | 多媒体 |
自动排课模块:
功能:该模块根据计划书信息,完成各个班级的一级课表的编排。
输入项:从计划书信息库和教室信息库中获的信息。
输出项:班级的课表
算法:
DO1
在计划书数据库取一条信息(某个专业年级,班级)
DO2
在教室数据库取一个教室信息
if 教室类型满足 then
if 教室规模满足 then
if 教室空且时间合适 then
占用教室
exit DO2
endif
endif
endif
LOOP UNTIL EOF(教室信息库)
LOOP UNTIL EOF(计划书)
注:如果某个计划书不能找到合适的教室,则该计划书转入手动排课。
测试用例:信息学院02级计算机1-3班的计划书为例。教室为信息学院的专业教室。
备份删除数据模块:(省略)
实验三 原型软件设计
一、目的和意义
我们对系统进行一次分析,不可能很清楚的完成软件的需求规格说明书,我们通常是先对系统进行简单的需求分析之后,设计一个原型软件。原型软件是一个看起来像真软件,具有真软件的简单功能,但不具有真软件的强大的功能。客户通过使用原型软件可以很容易发现未来的软件包是否满足需要、或者还应作什么修改。对原型软件不断的修该,使它成为一个真正意义上的软件。
二、实习内容
1、题目:原型软件设计
2、要求:设计原型软件的界面和主要功能模块。
3、完成形式:进行简单的输入,软件可以运行。
三、实习指导
1、高级程序设计语言的选择
2、编写主界面程序代码(按照实验二的详细设计说明书进行代码编写)。
3、编写主要功能程序代码(按照实验二的详细设计说明书进行代码编写)。
4、对编写好的程序进行测试(使用实验二提供的测试用例测试程序)。
实验四 软件测试用例设计和测试
一、目的和意义
对软件进行测试是为了得到安全可靠的软件产品。软件测试常用的方法有两个:白盒法和黑盒法。不论是白盒法还是黑盒法都不能完全找到软件的错误(bug),所以要设计软件的测试用例,希望尽可能多的发现软件中存在的错误。
二、实习内容
1、题目:对实习三设计的软件进行测试
2、要求:选择两个软件单元,一个用白盒法进行测试,一个用黑盒法进行测试。
3、完成形式:写出测试用例及测试结果。对测试结果进行分析,评价软件的可靠程度。
三、实习指导
1、对所选择的白盒法测试软件单元进行逻辑分析,画出逻辑流程图。
2、根据逻辑流程图设计测试用例。记录测试结果,并对测试结果进行分析。
3、确定黑盒法测试的软件单元。
4、设计黑盒法的测试用例。记录测试结果,并对测试结果进行分析。
提交文档的格式如下:
软件名称: 教务管理软件 文档编号 003
版本号 Ver 1.0
文档名称: 测试用例的设计
项目名称: 课表编排系统
项目负责人: 屈艳
编写:赵春、马燕、刘楠、叶艺 时间: 2005-4-14
审核: 屈艳 时间: 2005-4-16
批准: 王湘桃 时间: 2005-4-20
开发单位: 冰雪五人组
编写目的:为了在测试软件的过程中思路清晰,测试的目标明确。该测试计划供测试人员使用。
要测试的程序模块名:教室信息输入模块和自动排课模块。
测试用例1:
教室信息输入模块的测试用例:
名称 | 类型 | 规模 | 星期 | 12 | 34 | 56 | 78 | 90 |
信M1 | 多媒体 | 90人 | 1-5 | 空 | 空 | 空 | 空 | 空 |
信M2 | 多媒体 | 90人 | 1-5 | 空 | 空 | 空 | 空 | 空 |
信M3 | 多媒体 | 60人 | 1-5 | 空 | 空 | 空 | 空 | 空 |
3106 | 普通 | 90人 | 1-5 | 空 | 空 | 空 | 空 | 空 |
3117 | 普通 | 90人 | 1-5 | 空 | 空 | 空 | 空 | 空 |
3118 | 普通 | 60人 | 1-5 | 空 | 空 | 空 | 空 | 空 |
另外:对运行程序的过程中,程序提出的问题:是否继续输入,回答一次Yes,回答一次No。
测试结果:数据库中的信息与用户输入的信息一致。
软件评价:该模块运行正确。
测试用例2:
自动排课模块的测试用例:
以信息学院计算机02级1-3班的计划书为例。运行自动排课模块。
学生学院 | 专业年级 | 班级 | 人数 | 课程名 | 总学时 | 周学时 | 教师名 | 教室类型 |
信息学院 | 计算机02 | 1-3 | 90 | 编译原理 | 60 | 4 | 李长悦 | 普通 |
信息学院 | 计算机02 | 1-3 | 90 | 软件工程 | 50 | 4 | 王湘桃 | 多媒体 |
信息学院 | 计算机02 | 1-3 | 90 | 网络 | 50 | 4 | 韩宏 | 多媒体 |
信息学院 | 计算机02 | 1-3 | 90 | 接口技术 | 54 | 4 | 黄道君 | 普通 |
信息学院 | 计算机02 | 1-3 | 90 | 通讯原理 | 40 | 4 | 刘晴蕊 | 多媒体 |
信息学院 | 计算机02 | 1-3 | 90 | Linux | 40 | 4 | 鱼晓 | 多媒体 |
信息学院 | 计算机02 | 1-3 | 90 | 数学建模 | 40 | 4 | 边宽江 | 多媒体 |
信息学院 | 计算机02 | 1-3 | 90 | 图形学 | 40 | 4 | 宁纪锋 | 多媒体 |
另外:对程序过程中的判定语句进行单独测试。判定的真假各测试一次。对不能排课的计划书转入手动排课系统(即手工调整课表)。
测试结果:形成一张计算机02级1-3班的课表。
软件评价:基本完成设计要求。
实验五 软件提交与维护
一、目的和意义
软件开发成功后,将交付用户使用,在用户使用前,要对用户进行培训。并要求写出详细的使用说明书和维护手册,待后续修改和维护。否则,软件的使用将受到限制,软件寿命将缩短,成本会增高。
二、实习内容
1、题目:对开发该软件的所有资料进行整理
2、要求:从软件需求分析规格说明书到使用说明书的所有资料进行收集和整理。
3、完成形式:将所有文档编辑成册。
三、实习指导
1、根据用户的要求写出软件的使用说明书
2、根据开发的限制条件,写出软件的维护手册
①系统说明:系统具备的功能,输入和输出。
②操作环境:系统的设备配置及其特性。列出系统使用的所有支持软件(名称和版本号)。
③维护过程:约定(所有标识和助记符的使用规则)。列出出错状态和纠正方法。修改错误,并详细描述修改。