《软件工程设计实验报告.doc》由会员分享,可在线阅读,更多相关《软件工程设计实验报告.doc(26页珍藏版)》请在三一办公上搜索。
1、 课程设计报告(2013 - 2013年度第 二 学期)名 称: 软件工程课程设计 题 目: 火车站售票系统 院 系: 计算机系 班 级: 学 号: 学生姓名: 指导教师: 宋雨,陈晴,王德文 设计周数: 2周 成 绩: 日期:2013年 6 月 21 日软件工程课程设计任 务 书一、 目的、要求通过该课程设计要使学生树立起强烈的工程化意识,用工程化思想和方法开发软件。切实体会出用软件工程的方法开发系统与一般程序设计方法的不同之处,学生在对所开发的系统进行软件计划、需求分析、设计的基础上,实现并测试实际开发的系统。通过一系列规范化软件文档的编写和系统实现,使学生具备实际软件项目分析、设计、实现
2、和测试的基本能力。二、 主要内容要求学生掌握软件工程的基本概念、基本方法和基本原理,为将来从事软件的研发和管理奠定基础。每个学生选择一个小型软件项目(内容参照计算机综合实践指导,宋雨等编著,清华大学出版社出版),按照软件工程的生命周期,完成软件计划、需求分析、软件设计、编码实现、软件测试及软件维护等软件工程工作,并按要求编写出相应的文档。具体的方法可以选用传统的软件工程方法或者面向对象的方法,开发环境和工具不限。三、 进度计划序号设计(实验)内容完成时间备注1软件计划、软件需求分析、软件设计,制定出软件测试计划,软件测试用例第1周要求上机前做好充分的文档准备2各模块录入、编码、编译及单元测试第
3、2周的第1、2天3联调及整体测试,第2周的第3、4天4验收,学生讲解、演示、回答问题第2周的第5天四、 设计成果要求1至少提交4个文档,包括软件计划、软件需求规格说明书、软件设计说明书、软件测试计划,要求文档格式规范、逻辑性强(可参考计算机综合实践指导中给出的要求及格式)、图表规范;2独自实现了系统的某些功能,基本达到了要求的性能,经过了测试,基本能运行。五、 考核方式(1)提交的文档规范,工作量大,文档逻辑性强、正确,按计算机综合实践指导标准考核(附软件工程课程设计实验报告评分表) 占60%(2)系统验收、讲解、答辩 占25%(3)考勤 占15%学生姓名: 指导教师: 2013年6 月16
4、日软件工程课程设计实验报告评分表姓名专业班级学号题目标准分数得分()标准分数得分()标准分数得分()报告规范,符合要求20报告较规范,基本符合要求17报告不规范,不符合要求1110169819157614541813321210工作量大,报告完整20工作量适中,报告较完整17工作量较小,报告不完整14191613181512文档逻辑性强、正确,语言流畅20文档逻辑性较强,无明显错误,文字表述较流畅16文档有逻辑性,有明显错误,语言表述不顺畅12111915109181487171365实验报告成绩评分教师签字一、 课程设计的目的与要求1. 课程设计目的软件工程课程设计是学习软件工程课程后所进行
5、的实践环节,目的是培养学生用工程化的思想和标准文档化的思想进行软件开发。本次课程设计通过开发一个小型实用的软件系统,亲身体验软件生命周期中的各个环节,以加深对软件工程课程的深入理解、锻炼独立分析、解决问题的能力。2. 课程设计要求2.1 课程设计准备1)复习软件工程课程的主要内容,熟练掌握软件生命周期的理论以及各阶段的基本概念。2)明确可行性分析、需求分析、设计、测试等阶段的基本任务和基本方法。3)熟练运用规范化的描述方法和文档,描述软件开发的各个阶段。4)熟悉开发环境和开发工具。2.2 内容要求1)对所设计和实现的系统进行可行性分析,提交可行性分析报告;2)对系统进行需求分析,可以选择传统的
6、分析方法或者面向对象的分析方法,提交软件需求规格说明书(SRS);3)在SRS的基础上进行软件的概要设计和详细设计,提交软件设计文档;4)遵循上述文档的要求,实现软件;5)对所实现系统进行软件测试,完成软件测试报告。 二、 设计正文1. 可行性分析报告1.1 项目简介1.1.1 项目目标随着社会的发展、网络的普及,生活中有许许多多的事情可以通过网络解决。比如在网上查询火车票以及预订火车票等等。然而网上预订火车票预订系统诞生了,开发火车票预订系统主要是帮助人们 能够及时购买火车票,查询火车出发时间,节约人们的时间和精力。1.1.2 系统的简要描述,主要功能 用户可以在本系统查询票价、余票,然后通
7、过注册登录进行预订车票,若没有登录则不能预订车票和查看我的订单。一般的用户可以通过本网站选择出发地点和到达地点来查询车票,然后进行车票预订,用户还可以通过我的订单来进行对预订的车票进行退票和查询自己预订的车票详细信息。1.2 对现有系统的分析1.2.1 处理流程和数据流程(系统流程图)有账号登陆注册车票预订车次查询余票查询订单查询车票退订预订成功1.2.2 对现有系统的其他说明本软件在开发过程中,分为技术实现与使用软件说明书两大部分,这两部分都有它的重要之处,若技术支持出现故障或疑难问题无法解决、程序开发出现偏差,程序严重错误而不解的,会影响开发软件的进度和该软件不能按期完成。若软件说明书陈述
8、出现问题,那出现部分描述含糊不清,则会影响该软件的完整性与可继承性。1.3 技术可行性分析开发工具:Microsoft Visual Studio 2008数据库环境:MySQL 系统环境:Win7。系统实现依靠相对比较熟悉的C+语言和MySQL数据库系统,其基本操作实质还是对数据库进行添加、删除、查找等操作。1.4 经济可行性分析本系统所用到的应用软件、硬件系统都易于获得。因此,开发成本较低。而引进使用本系统后,与传统方式相比,具有高效率、低成本、高质量的特点,可以节省不少人力、物力及财力。所以,从经济的角度来看,该系统可行。1.5 社会因素可行性分析1.5.1 法律因素因为此系统不仅为人们
9、提供了快捷的服务,更重要的是可以在足不出户的情况下就能够解决购买火车票的问题,它使得中国的订票系统更加理性化也更加人性化,且该项目为独立开发,在技术上没有使用任何现有的软件与方法。所以在法律上具有可行性。1.5.2 用户使用可行性中国旅客多,而选择铁路的更是多数,故应需求而言,符合基本要求;网络订购系统比窗口排队等票方便快捷,为大众节约时间精力,符合人情;网络已成为现代的代步工具,足不出户即可定多事,符合实际;订购系统为免费注册账户,经济实惠。具有可行性。1.6 可供选择的方案我曾想过B/S(Browser/Server)结构即浏览器和服务器结构,采用.net实现。在这种结构下,用户工作界面是
10、通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层3-tier结构。但由于不熟悉SSH(Stucts+Spring+Hibernate)框架,也没找到合适的合作同伴,所以放弃了。我选择现用方案是由于效率,安全,技术方面的原因。2. 软件需求规格说明书(SRS)2.1 需求概述1) 给出软件需求的摘要和简单描述 一般的用户可以通过本网站选择出发地点和到达地点来查询车票,然后进行车票预订,用户还可以通过我的订单来进行对预订的车票进行退票和查询自己预订的车票详细信息。用户可实现的功能有:登陆、注册、车票的预订、车票的余票
11、查询、实现车票的票价查询、订单的查询和退订2) 运行环境Windows7操作系统、MySQL、Microsoft Visual Studio 20082.2 功能需求1. 用例图2. 功能表述图系 统 主 界 面Microsoft Visual Studio 2008MySQL 数据库数据存储、数据查询、数据修改、数据删除数据存储、数据查询、数据修改、数据删除2.3 数据描述 E-R图2.4 性能需求1) 数据精确度在进行向数据库提取数据时,需要据记录定位准确;在往数据库中添加数据时,需要输入的数据准确。2) 时间特性在进行向数据库提取数据时,需要据记录定位准确;在往数据库中添加数据时,需要输
12、入的数据准确3) 适应性当需求发生某变化时,系统软件操作方式、数据结构、运行环境基本不会发生变化,变化只是将对应的数据库内的记录改变,或将过滤条件改变即可。2.5 运行需求1) 用户界面Windows7界面本软件产品通过PC机浏览器进行访问操作,界面简单明了,功能导航菜单统一。2) 硬件接口 不必是专门的网络硬件环境,一般只要有操作系统和浏览器就行了。本工程产品需要高性能的服务器硬件接口进行支持。3) 软件接口 本工程产品的软件接口由Windows7中文操作系统、MySQL数据库以及软件的词典和数据结构组成。4)故障处理 对出现的问题无法采用可行的解决手段,会影响开发模块之间的互动,从而影响开
13、发软件的开展,导致软件无法按期完工。所以要个相应的部门的协力才能工作,才能很好的完成这个软件系统。2.6 其它需求包括提炼,分析和仔细审查已收集到的需求,以确保所有的风险承担者都明其含义并找出其中的错误、遗憾或者其它不足的地方。3. 软件设计说明书3.1 软件模块结构图1.系统结构图 3.功能模块图最初界面截图3.2 文件结构和全局数据1) 逻辑结构设计要点: 本系统内软件所使用的每个数据结构的名称、标识符以及它们之中每个数据项、记录、文卷和系的标识、定义、长度及它们之间的层次的或表格的相互关系。 1.车次信息包括:车号、出发地、目的地、发车日期、座位等级、剩余座位数。 2.订票记录包括:订单
14、号、身份证号、车号、订购日期、订购票数。 3.用户信息包括:用户名、身份证号、性别、电话、地址。2) 全局数据 : 模块1-登录系统模块输入:登录账号和密码 模块2-车票查询模块输入:客户信息、车次信息 输出:分析结果 模块3-订购模块 输入:分析结果 输出:订购成功/失败通知模块4-退票模块输入:退票信息 输出:有效退票/无效退票的确认模块5新用户注册模块输入用户信息 输出注册成功确认表名: 用户信息(Adm)表名称用户信息字段名称表字段字段类型长度是否为主键允许空默认值用户列表AdmIdint是否无密码AdmPwdVarchar20否是无姓名AdmNameVarchar20否是无联系电话A
15、dmpemailVarchar20否是无身份证号IDCardVarchar50否是无表的用途记录用户的基本信息的表名:城市表(TCity)表名称城市表字段名表字段字段类型长度是否为主键允许空自动编号TCityIdint是否城市TCityVarchar50否是表的用途记录城市名称表名:车票信息表(Ticket)表名称试题信息表字段名表字段字段类型长度是否为主键允许为空自动编号TIdint10是否车次TnoVarchar10否否出发城市StartcityVarchar20否否到达城市EndcityVarchar20否否出发时间Starttimedatetime否否软卧余票SoftTicksInt否
16、否硬卧余票TouristTicketInt否否硬座余票HardTicktsInt否否站票StandTicksVarchar10表的用途记录车票信息的表名:车票预订信息(Bicket)表名称车票预订信息字段名称表字段类型长度主键允许空默认自动编号BIdint是否无车次编号TIdInt否是无车票类型TypeVarchar20否是无表的用途记录车票预订3.3 模块描述3.3.1 登录系统模块描述1)功能:登录系统在欢迎界面选择,进入登录窗口2)处理:模块的流程处理,如图3-1 所示 图3-1 截图如上: 3.3.2 车票查询模块描述1)功能:查询所需车票的余票、用户通过出发时间、地点查询。2)处理:
17、模块的流程处理,如图3-2所示 截图如下图3-23.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 测试范围这一部分要列出所有要测试的功能项。凡是没有
18、出现在这个清单里的功能项都排除在测试的范围之外。具体要点有接口测试、集成测试、功能的测试、业务周期测试、用户页面测试、性能测试整体考虑这部分测试需求要考虑到数据流从软件中的一个模块流到另一个模块的过程中的正确性。4.2 测试计划 4.2.1 测试阶段 1 尽早地和不断地进行软件测试2 测试用例应由测试输入数据和与之对应的预期输出结果两部分组成3程序员应避免检查自己的程序4 在设计测试用例时,应当包括合理的输入条件和不合理的输入条件5 充分注意测试中的群集现象6 严格执行测试计划,排除测试的随意性7 应当对每一个测试结果做全面检查8 妥善保存测试计划、测试用例、出错统计和最终分析报告,为维护提供
19、方便 4.2.2 测试进度:测试活动计划开始日期实际开始日期结束日期制定测试计划2013-06-042013-06-042013-06-04设计测试2013-06-052013-06-052013-06-05集成测试2013-06-062013-06-062013-06-06系统测试2013-06-072013-06-072013-06-07性能测试2013-06-082013-06-082013-06-08安装测试2013-06-102013-06-102013-06-10用户验收测试2013-06-112013-06-112013-06-11对测试进行评估2013-06-122013-06
20、-122013-06-12产品发布2013-06-132013-06-122013-06-134.3 测试项目说明1 登录模块功能: 登录界面测试用例 LH001项目名称火车票订票系统用例编号LH001说明网站首页能顺利显示并能显示首页信息.模块登录主界面模块优先级1测试目的验证:登陆功能能正确响应鼠标单击事件初始条件运行系统,显示网站登录首页步骤1.新用户则点击注册进行注册账户 2.输入账号和密码以及验证码3.单击“登录”按钮期望输出打开用户成功登陆后的主界面实际输出2车票预定模块车票预订测试用例LH004项目名称火车票订票系统用例编号LH004版本号1.0说明用户成功登陆进行购票操作模块网
21、上购票功能模块优先级1测试目的验证:判断身份验证信息正确,数据库票存正确。初始条件成功登陆,进入购票界面步骤1.输入始发站和终点站或输入车次2.选择车次3.点击购票4.输入身份凭证信息期望输出如果尚有余票则允许点击购票,否则提示没有,直至购票成功实际输出测试状态编制人胡柏吉备注其他窗口界面中各组建对鼠标相应测试参照本测试用例4用户注册模块注册测试用例 LH002项目名称火车票订票系统用例编号LH002版本号1.0说明测试新用户能否顺利注册,并且测试能否注册已存在用户或非法字符。模块注册功能模块优先级1测试目的验证:能成功正确注册用户信息,并写入系统数据库初始条件运行系统,显示网站首页步骤1.点
22、击注册2.输入正确信息进行注册提交3.输入非法字符信息进行注册提交4.输入已存在用户进行注册提交期望输出注册信息正确则注册成功,错误时则注册失败并返回错误信息实际输出测试状态编制人胡柏吉备注其他窗口界面中各组建对鼠标相应测试参照本测试用例5查询模块查询测试用例LH003项目名称火车票订票系统用例编号LH003版本号1.0说明用户成功登陆后进入查询余票界面模块查询余票功能模块优先级1测试目的验证:输入查询条件后,能正确显示余票、车次、时间。初始条件成功登陆,进入查询界面步骤1.输入始发站和终点站2.输入查询车次和时间3.点击查询期望输出显示按条件筛选后的余票、车次、时间、票价以及备注信息实际输出
23、测试状态编制人胡柏吉备注其他窗口界面中各组建对鼠标相应测试参照本测试用例6退票模块退票测试用例 LH005项目名称火车票订票系统用例编号LH005说明成功登录后点击进入我的订单页面模块火车票退票改签模块优先级1测试目的验证:条件符合,能进行改签和退票操作初始条件成功登陆,进入我的订单页面步骤1.选择改签或退票2.输入订单号3.点击提交4.成功期望输出依据规则判断能否有权改签或退票,改签或退票成功。实际输出测试状态编制人胡柏吉备注其他窗口界面中各组建对鼠标相应测试参照本测试用例4.4 测试分析4.4.1 第1个阶段登录模块的测试分析 1.实测结果数据:100%2.与预期结果数据的偏差:03.该项
24、测试表明的事实:配置文件和数据库文件无损坏,有足够内存可供使用4. 该项测试发现的问题:无4.4.2 第2个阶段车票预订模块的测试分析1.实测结果数据:100%2.与预期结果数据的偏差:03.该项测试表明的事实:若数据库文件或配置文件不能正常操作或全局数据已经不一致,设置后备数据库,以防之需4. 该项测试发现的问题:后备数据库、配置文件的重载会加大系统的运转,空间扩大。4.4.3 第3个阶段注册测试模块的测试分析1.实测结果数据:100%2.与预期结果数据的偏差:03.该项测试表明的事实:正常4. 该项测试发现的问题:无4.4.4 第4个阶段查询测试模块的测试分析 1.实测结果数据:100%2
25、.与预期结果数据的偏差:03.该项测试表明的事实:采集了最常出现的查询方式进行查询4.该项测试发现的问题:查询的例子还不是很全面4.4.5 第5个阶段退票测试的测试分析 1.实测结果数据:100%2.与预期结果数据的偏差:03.该项测试表明的事实:数据库里全面的采集正确有效的信息4.该项测试发现的问题:无效信息的范围很广,缩小需要时间三、 课程设计总结或结论通过这次完成的课程设计项目实践让我又学到了许多新的技术,也明白了实践的重要性,知道有的东西不自己做是无法掌握的。并且让我知道了需求分析是什么。也了解到写需求分析文档的重要性。知道开发一个软件不仅要会写代码还必须要会写项目的需求分析文档。因为
26、项目的需求分析文档是给别人看的,所以在一定程度上项目的需求分析文档比软件本身更重要。而且,在我们在写这个项目的需求分析文档之前,我们要去了解这个项目的流程和一些相关的知识。这对于我们在开发这个软件的过程中将带来很大的便利,他能让我们的思路更加清晰,不易出错。最后,通过这次完成的课程设计实践提高了我的逻辑思维能力和动手能力,也让我累计的一些宝贵的开发经验让我在以后的学习中能更加得心应手。四、 参考文献1 王珊、萨诗煊. 数据库系统概论. 高等教育出版.2006.052 柳永坡,刘雪梅,赵长海.JSP应用开发技术. 北京:人民邮电出版社,20053 蒋本珊,黄敏基于数据库和ASP的网上自我测试系统计算机系统应用,2002(1)4 宋雨,赵文清编著.软件工程.北京:中国电力出版社,20075 刘利民、田保军. 软件工程综合设计指导书. 2011