您的当前位置:首页软件工程设计实验报告

软件工程设计实验报告

2023-02-24 来源:乌哈旅游


课程设计报告

(2013 -- 2013年度第 二 学期)

名 称: 软件工程课程设计 题 目: 火车站售票系统 院 系: 计算机系 班 级: 学 号: 学生姓名: 指导教师: 宋雨,陈晴,王德文 设计周数: 2周

成 绩:

日期:2013年 6 月 21 日

《软件工程》课程设计

任 务 书

一、 目的、要求

通过该课程设计要使学生树立起强烈的工程化意识,用工程化思想和方法开发软件。切实体会出用软件工程的方法开发系统与一般程序设计方法的不同之处,学生在对所开发的系统进行软件计划、需求分析、设计的基础上,实现并测试实际开发的系统。通过一系列规范化软件文档的编写和系统实现,使学生具备实际软件项目分析、设计、实现和测试的基本能力。

二、 主要内容

要求学生掌握软件工程的基本概念、基本方法和基本原理,为将来从事软件的研发和管理奠定基础。每个学生选择一个小型软件项目(内容参照《计算机综合实践指导》,宋雨等编著,清华大学出版社出版),按照软件工程的生命周期,完成软件计划、需求分析、软件设计、编码实现、软件测试及软件维护等软件工程工作,并按要求编写出相应的文档。具体的方法可以选用传统的软件工程方法或者面向对象的方法,开发环境和工具不限。

三、 进度计划

序号 设计(实验)内容 完成时间 备注 要求上机前做好充分的文档准备 1 2 3 4 软件计划、软件需求分析、软件设计,第1周 制定出软件测试计划,软件测试用例 联调及整体测试, 验收,学生讲解、演示、回答问题 各模块录入、编码、编译及单元测试 第2周的第1、2天 第2周的第3、4天 第2周的第5天 四、 设计成果要求

1.至少提交4个文档,包括软件计划、软件需求规格说明书、软件设计说明书、软件测试计划,要求文档格式规范、逻辑性强(可参考《计算机综合实践指导》中给出的要求及格式)、图表规范;

2.独自实现了系统的某些功能,基本达到了要求的性能,经过了测试,基本能运行。

五、 考核方式

(1)提交的文档规范,工作量大,文档逻辑性强、正确,按《计算机综合实践指导》标准考核(附《软件工程课程设计》实验报告评分表) 占60%

(2)系统验收、讲解、答辩 占25% (3)考勤 占15%

学生姓名: 指导教师:

2013年6 月16 日

《软件工程课程设计》实验报告评分表

姓名 题目 标准 分数 得分(√) 标准 专业班级 分数 得分(√) 标准 17 20 分数 得分(√) 11 10 9 学号 报告规范,符合要求 19 报告较规范,基本符合要求 16 15 14 13 报告不规范,不符合要求 8 7 6 5 4 3 2 1 0 18 12 报工告作完量整大,文档逻辑性强、正确,语言流畅 20 19 18 20 完中工整,作报告量较适字文表档述逻较辑流性畅较强,无明显错误,文17 16 15 16 完小工整,作报告量不较表文述档不有顺逻畅辑性,有明显错误,语言 14 13 12 12 11 10 9 8 7 6 5 实验报告成绩 19 15 18 14 17 13 评分教师签字

一、 课程设计的目的与要求

1. 课程设计目的

软件工程课程设计是学习软件工程课程后所进行的实践环节,目的是培养学生用工程化的思想和标准文档化的思想进行软件开发。本次课程设计通过开发一个小型实用的软件系统,亲身体验软件生命周期中的各个环节,以加深对软件工程课程的深入理解、锻炼独立分析、解决问题的能力。

2. 课程设计要求

2.1 课程设计准备

1)复习软件工程课程的主要内容,熟练掌握软件生命周期的理论以及各阶段的基本概念。

2)明确可行性分析、需求分析、设计、测试等阶段的基本任务和基本方法。 3)熟练运用规范化的描述方法和文档,描述软件开发的各个阶段。 4)熟悉开发环境和开发工具。

2.2 内容要求

1)对所设计和实现的系统进行可行性分析,提交可行性分析报告;

2)对系统进行需求分析,可以选择传统的分析方法或者面向对象的分析方法,提交软件需求规格说明书(SRS);

3)在SRS的基础上进行软件的概要设计和详细设计,提交软件设计文档; 4)遵循上述文档的要求,实现软件;

5)对所实现系统进行软件测试,完成软件测试报告。

二、 设计正文

1. 可行性分析报告

1.1 项目简介

1.1.1 项目目标

随着社会的发展、网络的普及,生活中有许许多多的事情可以通过网络解决。比如在网上查询火车票以及预订火车票等等。然而网上预订火车票预订系统诞生了,开发火车票预订系统主要是帮助人们 能够及时购买火车票,查询火车出发时间,节约人们的时间和精力。 1.1.2 系统的简要描述,主要功能

用户可以在本系统查询票价、余票,然后通过注册登录进行预订车票,若没有登录则不能预订车票和查看我的订单。一般的用户可以通过本网站选择出发地点和到达地点来查询车票,然后进行车票预订,用户还可以通过我的订单来进行对预订的车票进行退票和查询自己预订的车票详细信息。

1.2 对现有系统的分析

1.2.1 处理流程和数据流程(系统流程图)

有账号 登陆 注册 余票查询 车次查询 车票预订 车票退订 预订成功 订单查询

1.2.2 对现有系统的其他说明

本软件在开发过程中,分为技术实现与使用软件说明书两大部分,这两部分都有它的重要之处,若技术支持出现故障或疑难问题无法解决、程序开发出现偏差,程序严重错误而不解的,会影响开发软件的进度和该软件不能按期完成。若软件说明书陈述出现问题,那出现部分描述含糊不清,则会影响该软件的完整性与可继承性。

1.3 技术可行性分析

开发工具:Microsoft Visual Studio 2008 数据库环境:MySQL 系统环境:Win7。

系统实现依靠相对比较熟悉的C++语言和MySQL数据库系统,其基本操作实质还是对数据库进行添加、删除、查找等操作。

1.4 经济可行性分析

本系统所用到的应用软件、硬件系统都易于获得。因此,开发成本较低。而引进使用本系统后,与传统方式相比,具有高效率、低成本、高质量的特点,可以节省不少人力、物力及财力。所以,从经济的角度来看,该系统可行。

1.5 社会因素可行性分析

1.5.1 法律因素

因为此系统不仅为人们提供了快捷的服务,更重要的是可以在足不出户的情况下就能够解决购买火车票的问题,它使得中国的订票系统更加理性化也更加人性化,且该项目为独立开发,在技术上没有使用任何现有的软件与方法。所以在法律上具有可行性。 1.5.2 用户使用可行性

中国旅客多,而选择铁路的更是多数,故应需求而言,符合基本要求;网络订购系统比窗口排队等票方便快捷,为大众节约时间精力,符合人情;网络已成为现代的代步工具,足不出户即可定多事,符合实际;订购系统为免费注册账户,经济实惠。具有可行性。

1.6 可供选择的方案

我曾想过B/S(Browser/Server)结构即浏览器和服务器结构,采用.net实现。在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层3-tier结构。但由于不熟悉SSH(Stucts+Spring+Hibernate)框架,也没找到合适的合作同伴,所以放弃了。我选择现用方案是由于效率,安全,技术方面的原因。

2. 软件需求规格说明书(SRS)

2.1 需求概述

1) 给出软件需求的摘要和简单描述

一般的用户可以通过本网站选择出发地点和到达地点来查询车票,然后进行车票预订,用户还可以通过我的订单来进行对预订的车票进行退票和查询自己预订的车票详细信息。 用户可实现的功能有:登陆、注册、车票的预订、车票的余票查询、实现车票的票价查询、订单的查询和退订 2) 运行环境

Windows7操作系统、MySQL、Microsoft Visual Studio 2008

2.2 功能需求

1. 用例图

票价查询余票查询车票预订用户用户注册

2. 功能表述图

数据存储、数据查询、数据修改、数据删除 系统主界面Microsoft Visual Studio 2008

MySQL 数据库 数据存储、数据查询、数据修改、数据删除

2.3 数据描述

E-R图

2.4 性能需求

1) 数据精确度

在进行向数据库提取数据时,需要据记录定位准确;在往数据库中添加数据时,需要输入的数据准确。 2) 时间特性

在进行向数据库提取数据时,需要据记录定位准确;在往数据库中添加数据时,需要输入的数据准确 3) 适应性

当需求发生某变化时,系统软件操作方式、数据结构、运行环境基本不会发生变化,变化只是将对应的数据库内的记录改变,或将过滤条件改变即可。

2.5 运行需求

1) 用户界面

Windows7界面本软件产品通过PC机浏览器进行访问操作,界面简单明了,功能导航菜单统一。 2) 硬件接口

不必是专门的网络硬件环境,一般只要有操作系统和浏览器就行了。本工程产品需要高性能的服务器硬件接口进行支持。 3) 软件接口

本工程产品的软件接口由Windows7中文操作系统、MySQL数据库以及软件的词典和数据结构组成。 4)故障处理

对出现的问题无法采用可行的解决手段,会影响开发模块之间的互动,从而影响开发软件的开展,导致软件无法按期完工。所以要个相应的部门的协力才能工作,才能很好的完成这个软件系统。

2.6 其它需求

包括提炼,分析和仔细审查已收集到的需求,以确保所有的风险承担者都明其含义并找出其中的错误、遗憾或者其它不足的地方。

3. 软件设计说明书

3.1 软件模块结构图

1.系统结构图 系统模块 用户模块 询 登 陆 系 统 车票基本信息查 车票预订和查询

3.功能模块图 最初界面截图

3.2 文件结构和全局数据

1) 逻辑结构设计要点:

本系统内软件所使用的每个数据结构的名称、标识符以及它们之中每个数据项、记录、文卷和系的标识、定义、长度及它们之间的层次的或表格的相互关系。

1.车次信息包括:车号、出发地、目的地、发车日期、座位等级、剩余座位数。 2.订票记录包括:订单号、身份证号、车号、订购日期、订购票数。 3.用户信息包括:用户名、身份证号、性别、电话、地址。 2) 全局数据 :

模块1---登录系统模块 输入:登录账号和密码 模块2---车票查询模块

输入:客户信息、车次信息 输出:分析结果 模块3---订购模块

输入:分析结果 输出:订购成功/失败通知 模块4---退票模块

输入:退票信息 输出:有效退票/无效退票的确认 模块5—新用户注册模块

输入—用户信息 输出—注册成功确认 表名: 用户信息(Adm) 表名称 字段名称 用户列表 密码 姓名 联系电话 用户信息 表字段 AdmId AdmPwd AdmName Admpemail 身份证号 表的用途 IDCard Varchar 50 否 是 无 字段类型 int Varchar Varchar Varchar 长度 20 20 20 是否为主键 允许空 是 否 否 否 否 是 是 是 默认值 无 无 无 无 记录用户的基本信息的 表名:城市表(TCity) 表名称 字段名 自动编号 城市 表的用途

表名:车票信息表(Ticket) 表名称 字段名 试题信息表 表字段 字段类型 长度 是否为主键 允许为空 城市表 表字段 TCityId TCity 字段类型 int Varchar 长度 50 是否为主键 是 否 允许空 否 是 记录城市名称 自动编号 车次 出发城市 到达城市 出发时间 软卧余票 硬卧余票 硬座余票 站票 表的用途 TId Tno Startcity Endcity Starttime SoftTicks int Varchar Varchar Varchar datetime Int 10 10 20 20 10 是 否 否 否 否 否 否 否 否 否 否 否 否 否 否 否 TouristTicket Int HardTickts StandTicks 记录车票信息的 Int Varchar 表名:车票预订信息(Bicket) 表名称 字段名称 自动编号 车次编号 车票类型 表的用途

车票预订信息 表字段 BId TId Type 记录车票预订 类型 int Int Varchar 长度 20 主键 是 否 否 允许空 否 是 是 默认 无 无 无 3.3 模块描述

3.3.1 登录系统模块描述

1)功能:登录系统在欢迎界面选择,进入登录窗口 2)处理:模块的流程处理,如图3-1 所示

开始用户登录用户名和密码点击登录登录成功结束 图3-1 截图如上:

3.3.2 车票查询模块描述

1)功能:查询所需车票的余票、用户通过出发时间、地点查询。 2)处理:模块的流程处理,如图3-2所示

开始余票查询输入时间、地点点击查询查询成功结束

截图如下图3-2 3.3.3 车票预订模块描述

1)功能:车票预订,用户通过出发时间、地点查询。 2)接口:会调用车票查询模块

3)处理:模块的截图处理,如图3-3所示 图

3-3

3.3.4 车票退订模块描述

1)功能:车票预订后的查询订单并退订车票,用户通过出发时间查询订单并退订。 2)接口:会调用用户登陆及查票查询模块 3)处理:模块的流程处理,如图3-4所示

开始订单查询输入时间查询成功车票退订退订成功结束

图3-4 截图:

3.3.5 新用户注册模块描述

1)功能:没有账号的用户注册。

2)处理:模块的流程处理,如图3-5所示

开始用户注册输入信息进行注册注册成功结束

图3-5 截图如上:

4. 软件测试报告

4.1 测试范围

这一部分要列出所有要测试的功能项。凡是没有出现在这个清单里的功能项都排除在测试的范围之外。具体要点有接口测试、集成测试、功能的测试、业务周期测试、用户页面测试、性能测试整体考虑这部分测试需求要考虑到数据流从软件中的一个模块流到另一个模块的过程中的正确性。

4.2 测试计划

4.2.1 测试阶段

1. 尽早地和不断地进行软件测试

2. 测试用例应由测试输入数据和与之对应的预期输出结果两部分组成 3. 程序员应避免检查自己的程序

4. 在设计测试用例时,应当包括合理的输入条件和不合理的输入条件 5. 充分注意测试中的群集现象

6. 严格执行测试计划,排除测试的随意性 7. 应当对每一个测试结果做全面检查

8. 妥善保存测试计划、测试用例、出错统计和最终分析报告,为维护提供方便 4.2.2 测试进度: 测试活动 制定测试计划 设计测试 集成测试 系统测试 性能测试 安装测试 用户验收测试 对测试进行评估 产品发布

计划开始日期 2013-06-04 2013-06-05 2013-06-06 2013-06-07 2013-06-08 2013-06-10 2013-06-11 2013-06-12 2013-06-13 实际开始日期 2013-06-04 2013-06-05 2013-06-06 2013-06-07 2013-06-08 2013-06-10 2013-06-11 2013-06-12 2013-06-12 结束日期 2013-06-04 2013-06-05 2013-06-06 2013-06-07 2013-06-08 2013-06-10 2013-06-11 2013-06-12 2013-06-13 4.3 测试项目说明

1. 登录模块功能:

登录界面测试用例 LH001 项目名称 用例编号 说明 模块 测试目的 初始条件 步骤 期望输出 实际输出 火车票订票系统 LH001 网站首页能顺利显示并能显示首页信息. 登录主界面模块 运行系统,显示网站登录首页 1.新用户则点击注册进行注册账户 2.输入账号和密码以及验证码 3.单击“登录”按钮 打开用户成功登陆后的主界面 优先级 1 验证:登陆功能能正确响应鼠标单击事件

2.车票预定模块

车票预订测试用例LH004 项目名称 用例编号 版本号 说明 模块 测试目的 初始条件 火车票订票系统 LH004 1.0 用户成功登陆进行购票操作 网上购票功能模块 优先级 1 验证:判断身份验证信息正确,数据库票存正确。 成功登陆,进入购票界面 1.输入始发站和终点站或输入车次 2.选择车次 3.点击购票 4.输入身份凭证信息 如果尚有余票则允许点击购票,否则提示没有,直至购票成功 胡柏吉 其他窗口界面中各组建对鼠标相应测试参照本测试用例 步骤 期望输出 实际输出 测试状态 编制人 备注 4.用户注册模块

注册测试用例 LH002

项目名称 用例编号 版本号 说明 模块 测试目的 初始条件 火车票订票系统 LH002 1.0 测试新用户能否顺利注册,并且测试能否注册已存在用户或非法字符。 注册功能模块 运行系统,显示网站首页 1.点击注册 2.输入正确信息进行注册提交 3.输入非法字符信息进行注册提交 4.输入已存在用户进行注册提交 注册信息正确则注册成功,错误时则注册失败并返回错误信息 胡柏吉 其他窗口界面中各组建对鼠标相应测试参照本测试用例 优先级 1 验证:能成功正确注册用户信息,并写入系统数据库 步骤 期望输出 实际输出 测试状态 编制人 备注 5.查询模块

查询测试用例LH003 项目名称 用例编号 版本号 说明 模块 测试目的 初始条件 火车票订票系统 LH003 1.0 用户成功登陆后进入查询余票界面 查询余票功能模块 优先级 1 验证:输入查询条件后,能正确显示余票、车次、时间。 成功登陆,进入查询界面 1.输入始发站和终点站 2.输入查询车次和时间 3.点击查询 显示按条件筛选后的余票、车次、时间、票价以及备注信息 胡柏吉 其他窗口界面中各组建对鼠标相应测试参照本测试用例 步骤 期望输出 实际输出 测试状态 编制人 备注 6.退票模块

退票测试用例 LH005 项目名称 用例编号 说明 模块 测试目的 初始条件 火车票订票系统 LH005 成功登录后点击进入我的订单页面 火车票退票改签模块 优先级 1 验证:条件符合,能进行改签和退票操作 成功登陆,进入我的订单页面 1.选择改签或退票 2.输入订单号 3.点击提交 4.成功 依据规则判断能否有权改签或退票,改签或退票成功。 胡柏吉 其他窗口界面中各组建对鼠标相应测试参照本测试用例 步骤 期望输出 实际输出 测试状态 编制人 备注

4.4 测试分析

4.4.1 第1个阶段登录模块的测试分析 1.实测结果数据:100%

2.与预期结果数据的偏差:0

3.该项测试表明的事实:配置文件和数据库文件无损坏,有足够内存可供使用 4. 该项测试发现的问题:无

4.4.2 第2个阶段车票预订模块的测试分析

1.实测结果数据:100%

2.与预期结果数据的偏差:0

3.该项测试表明的事实:若数据库文件或配置文件不能正常操作或全局数据已经不一致,设置后备数据库,以防之需

4. 该项测试发现的问题:后备数据库、配置文件的重载会加大系统的运转,空间扩大。 4.4.3 第3个阶段注册测试模块的测试分析

1.实测结果数据:100%

2.与预期结果数据的偏差:0 3.该项测试表明的事实:正常 4. 该项测试发现的问题:无

4.4.4 第4个阶段查询测试模块的测试分析 1.实测结果数据:100%

2.与预期结果数据的偏差:0

3.该项测试表明的事实:采集了最常出现的查询方式进行查询 4.该项测试发现的问题:查询的例子还不是很全面 4.4.5 第5个阶段退票测试的测试分析 1.实测结果数据:100%

2.与预期结果数据的偏差:0

3.该项测试表明的事实:数据库里全面的采集正确有效的信息 4.该项测试发现的问题:无效信息的范围很广,缩小需要时间

三、 课程设计总结或结论

通过这次完成的课程设计项目实践让我又学到了许多新的技术,也明白了实践的重要性,知道有的东西不自己做是无法掌握的。并且让我知道了需求分析是什么。也了解到写需求分析文档的重要性。知道开发一个软件不仅要会写代码还必须要会写项目的需求分析文档。因为项目的需求分析文档是给别人看的,所以在一定程度上项目的需求分析文档比软件本身更重要。而且,在我们在写这个项目的需求分析文档之前,我们要去了解这个项目的流程和一些相关的知识。这对于我们在开发这个软件的过程中将带来很大的便利,他能让我们的思路更加清晰,不易出错。

最后,通过这次完成的课程设计实践提高了我的逻辑思维能力和动手能力,也让我累计的一些宝贵的开发经验让我在以后的学习中能更加得心应手。

四、 参考文献

[1] 王珊、萨诗煊. 数据库系统概论. 高等教育出版.2006.05

[2] 柳永坡,刘雪梅,赵长海.JSP应用开发技术. 北京:人民邮电出版社,2005

[3] 蒋本珊,黄敏.基于数据库和ASP的网上自我测试系统.计算机系统应用,2002(1).

[4] 宋雨,赵文清编著.软件工程.北京:中国电力出版社,2007 [5] 刘利民、田保军. 《软件工程综合设计指导书》. 2011

因篇幅问题不能全部显示,请点此查看更多更全内容