软件工程课程设计论文正文.docx
《软件工程课程设计论文正文.docx》由会员分享,可在线阅读,更多相关《软件工程课程设计论文正文.docx(23页珍藏版)》请在冰豆网上搜索。
![软件工程课程设计论文正文.docx](https://file1.bdocx.com/fileroot1/2023-1/2/d7b84473-b099-41bb-842d-be0d34b1e3d4/d7b84473-b099-41bb-842d-be0d34b1e3d41.gif)
软件工程课程设计论文正文
一、可行性研究
1、可行性研究的任务:
本次系统研究的技术范围是从市场可行性、技术可行性、经济可行性、法律可行性几个方面着手分析,下面就这几个方向作具体的分析。
(1)市场可行性:
项目是否可以实施,只要应该看该项目是否有潜在市场以及市场的变化对项目的开发结果会有什么影响。
(2)技术可行性研究:
更鼓客户提出的系统功能、性能即实现系统的各项约束条件,从技术角度研究实现系统可行性。
技术可行性包括:
风险分析、资源分析和技术分析。
(3)经济可行性研究:
分析系统的估算开发成本是否支持系统开发的全过程。
(4)法律可行性研究:
研究在系统开发过程中可能涉及的各种合同、侵权、责任以及同法律相抵触的问题。
2、市场可行性:
本系统的主要功能是帮助航空公司对乘客的信息进行统计,更新。
并对自己的航班做出相应的调整,来达到最好的运输效果。
其功能描述如下:
(1)旅行社将乘客的信息传输到该系统,并在系统中注册。
(2)系统为乘客安排航班。
(3)旅客交付了预定金后,系统印出取票通知和帐单给旅客
(4)旅客在飞机起飞的前一天凭取票通知和帐单交款取票,系统核对无误即印出机票给旅客
(5)航空公司为随时掌握各航向飞机的乘载情况,系统定期进行查询统计,以便适当调整。
(6)系统对旅客延误了取票时间的处理
(7)系统对班机取消后的处理
(8)旅客临时更改机票班次的处理
3、技术可行性:
使用现有的技术能不能实现这个系统。
由于本管理系统的对象单一,仅对航空公司机票进行管理。
因此,这个管理系统比较适合采用数据库来设计。
在计算机硬件和软件快速发展的今天,计算机硬件和软件已经远远满足本管理系统的要求。
在旅游局中的终端是安装了WindowsNT的PC机,主要目的是向机场的服务器传递数据。
当顾客在旅游局进行咨询时,终端向服务器发出查询请求,服务器根据航班信息库的实时数据,向终端发送数据,显示在终端的屏幕上。
当顾客向售票员定票时,终端向服务器发出详尽的一份定单,服务器核对后,存入定票信息库,并修改机票信息库。
当顾客再次来取票时,终端向服务器发出查询定票请求,服务器接收后,查询定票信息库,核对后,传送机票确认表单,终端打印出机票。
4、经济可行性:
4.1支出
(1)基础投资:
终端PC机20台:
5000*20=10万
网络设备:
10万
辅助配置:
10万
共计:
30万
(2)其他一次性投资:
Oracle8.0:
20万
WindowsNT:
10万
操作员培训费:
5万
共计:
35万
(3)经常性支出:
人工费用:
2(月)*6(人)*5000(元)=6万
其他不可知额外支出:
20万
共计:
26万
支出共计:
91万
4.2效益
一次性收益
0元
(1)经常性收益
(按银行利率:
1%);
减少员工20人(1000圆/人)五年收益:
1000*(1.1(1.1)2(1.1)3(1.1)4(1.1)5)*20*12*5=120万
(2)工作效率提高收益(工作效率提高30%):
30*(1.1(1.1)2(1.1)3(1.1)4(1.1)5)*(30%)*5=45万
经常性收益共计:
160万
(3)不可定量收益
因服务质量提高增加旅客量10%:
1000万*10%*(90%(90%)2(90%)3(90%)4(90%)5)=360万
收益共计:
520万
4.3收益/投资比
520万/91万=574%
4.4投资回收周期
2.3年
4.5敏感性分析
设计系统周期为五年,估计最长可达10年
处理速度:
一般查询速度<4秒
关键数据查询速度:
<2秒
二、需求分析
1、功能要求
机票预定系统采用Client/Server结构,即客户/服务器结构,所以机票预定系统分为两个子系统:
客户端子系统,服务器端子系统。
1.1客户端子系统:
客户端系统实现订票和取票两个功能,它进行以下5个功能部分的实现
[1]旅客信息的输入和统计
旅行社把旅客要求订票的信息由专人负责输入。
这部分功能是客户端子系统的基本部分,这个功能是以后各个部分的基础。
系统要求做到即能够从其它子系统中共享一部分信息,又有方便的操作界面工手工输入旅客信息。
这部分要求对输入的数据进行简单的统计,供航空公司进行查询和宏观调控。
[2]旅客信息的存储:
将旅客的信息存储到旅行社的客户端系统中,以备以后的取票确认以及查询。
[3]机票信息的传递及接收:
将旅客所须的机票信息由旅行社客户端由网络传到航空公司的服务器上,并且接受航空公司返回的航班信息,然后存储起来。
[4]取票通知及帐单的生成和打印:
把已存储的从航空公司返回的航班机票信息打印出来,并且生成帐单打印出来一起交给旅客。
印出机票给已经订票的旅客:
根据旅客的取票通知及帐单,经过确认无误后,接受旅客的付款后把机票印出来交给旅客。
5]机票销售情况的核算
这一功能是在上一功能的基础上,对机票销售额进行单项核算,得到该旅行社的销售情况并把核算结果作为企业报表输出。
1.2服务器端子系统:
通过计算机网络将客户端与服务器的数据库相连,将从客户端得到的信息进行处理,实现航班查询,机票生成,销售统计,综合信息查询等子系统。
以计算机成本核算为中心,实现销售业务的计算机自动化,为航空公司降低成本、提高销售额、经营决策提供及时精确的依据。
在客户端系统的功能实现上,可以分为以下几个部分:
[1]接收由旅行社客户端发回的所需机票信息:
通过网络接收机票信息并存入到服务器的数据库中。
[2]生成航班信息:
根据所需机票信息(时间,地点),在数据库中查询并得到正确的航班的信息(价格,时间,等级),分配所需的机票数并在数据库中做出已售出的标记。
[3]传递航班信息到客户端(旅行社):
把得到的航班信息通过网络传递到旅行社。
[4]接收旅行社的反馈信息:
对旅行社的反馈信息进行分析,把已经售出的机票进行统计,对被旅客所退掉的机票要进行数据库的恢复。
[5]印出机票给已经订票的旅客:
根据旅客的取票通知及帐单,经过确认无误后,接受旅客的付款后把机票印出来交给旅客。
[6]销售额的分析和管理
这一步骤的功能要求包括对销售的机票进行分析,这一工作是在前面的基础上,以计算机为工具,对机票预定系统的功能和目标进行扩充。
它以财务管理学为理论基础,以辅助决策为目标,以机票销售数据为中心,广泛采用统计学、运筹学的分析方法,对销售信息进行深层加工,建立反映不同航班需求的模型,提供管理上所需的各种辅助决策信息和财务信息。
这一要求是机票预定系统的最高目标,将通过系统运行后获得的大量销售历史数据基础上,实现这一目标。
2、性能需求
为了保证系统能够长期、安全、稳定、可靠、高效的运行,机票预定系统应该满足以下的性能需求:
1.系统处理的准确性和及时性
系统处理的准确性和及时性是系统的必要性能。
其准确性很大程度上决定了机票预定系统的成败。
在系统开发过程中,必须采用一定的方法保证系统的准确性。
2.系统的开放性和系统的可扩充性
机票预定系统在开发过程中,应该充分考虑以后的可扩充性。
所有这些,都要求系统提供足够的手段进行功能的调整和扩充。
而要实现这一点,应通过系统的开放性来完成,既系统应是一个开放系统,只要符合一定的规范,可以简单的加入和减少系统的模块,配置系统的硬件。
通过软件的修补、替换完成系统的升级和更新换代。
3.系统的易用性和易维护性
机票预定系统是直接面对使用人员的,而使用人员往往对计算机并不时非常熟悉。
这就要求系统能够提供良好的用户接口,易用的人机交互界面。
要实现这一点,就要求系统应该尽量使用用户熟悉的术语和中文信息的界面;机票预定系统中涉及到的数据是航空公司的相当重要的信息,系统要提供方便的手段供系统维护人员进行数据的备份,日常的安全管理,系统意外崩溃时数据的恢复等工作。
4.系统的标准性
系统在设计开发使用过程中都要涉及到很多计算机硬件、软件。
所有这些都要符合主流国际、国家和行业标准。
5.系统的先进性
因为目前计算系统的技术发展相当快,做为机票预定系统工程,应该保证系统在使用的时候是先进的,在系统的生命周期尽量做到系统的先进,充分完成企业信息处理的要求而不至于落后。
6.系统的响应速度
机票预定系统系统在日常处理中的响应速度为秒级,达到实时要求,以及时反馈信息。
在进行统计分析时,根据所需数据量的不同而从秒级到分钟级,原则是保证操作人员不会因为速度问题而影响工作效率。
3、数据需求
机票预定系统的数据需求包括如下几点:
1.数据录入和处理的准确性和实时性
数据的输入是否准确是数据处理的前提,错误的输入会导致系统输出的不正确和不可用,从而使系统的工作失去意义。
数据的输入来源是手工输入。
手工输入要通过系统界面上的安排系统具有容错性,并且对操作人员要进行系统的培训。
在系统中,数据的输入往往是大量的,因此系统要有一定的处理能力,以保证迅速的处理数据。
2.数据的一致性与完整性
由于系统的数据是共享的,在不同的旅行社中中,机票是共享数据,所以如何保证这些数据的一致性,是系统必须解决的问题。
要解决这一问题,要有一定的人员维护数据的一致性,在数据录入处控制数据的去向,并且要求对数据库的数据完整性进行严格的约束。
对于输入的数据,要为其定义完整性规则,如果不能符合完整性约束,系统应该拒绝该数据。
3.数据的共享与独立性
整个机票预定系统的数据是共享的。
然而,从系统开发的角度上看,共享会给设计和调试带来困难。
因此,应该提供灵活的配置,使各个分系统能够独立运行,而通过人工干预的手段进行系统数据的交换。
这样,也能提供系统的强壮性。
4、逻辑模型
机票预定系统的逻辑模型如下图所示:
旅客取
机票信息
三、总体设计
1、系统设计
本系统主要应用于航空公司的票务系统的预订子系统,主要目的为用户提供方便快捷的机票预订服务,提高航空公司的运行效率.其主要应用对象是对机票预订有需求的潜在用户。
本阶段是在系统需求分析的基础上,对机票预定系统做概要设计。
主要解决了实现该系统需求的程序模块设计问题。
包括如何把该系统划分成若干个模块、决定各个模块之间的接口、模块之间传递的信息,以及数据结构、模块结构的设计等。
在以下的概要设计报告中将对在本阶段中对系统所做的所有概要设计进行详细的说明。
该阶段的主要任务是确定系统的具体实现方案,在前面需求分析的基础上,可以将得出的数据流图中的处理逻辑地进行分组,从而得出不同的实现方案,然后经过对每个方案的分析和对比,确定出了一个最佳方案。
下面将对其进行结构化设计。
2、结构设计
结构设计的方法就是根据问题域的数据流定义一组不同的“映射”,利用这些映射把数据流图变换成软件结构,即用结构图来描述。
1.该系统的数据流图可确定为变换型数据流图,第一级分解后的结构图如下:
Cm为所要设计的系统;
Cm1为所要设计的机票预订系统的订票子系统;
Cm2为所要设计的机票预订系统的取票子系统;
Ca为输入信息控制模块,功能是安排接受所有的输入数据;
Ct为变换控制模块,功能是管理对内部数据的所有操作;
Ce为输出信息控制模块,功能是安排输出信息的产生;
2、逐级分解,最终得到的结构图如下:
订票:
订票:
1、输入数据:
读入旅行社记录并存储的旅客信息并将其格式化送入数据转换处进行处理。
2、信息处理:
将读入的旅客信息进行处理,产生相应的航班信息。
3、输出数据:
将得出的航班信息传递给航空公司,由航空公司安排航班。
取票:
1、输入数据:
读入旅行社存储的机票信息并将其格式化送入数据转换处进行处理。
2、取票处理:
将读入的机票信息进行处理,产生相应的售票信息。
3、输出数据:
经过数据处理,由机票信息处理其格式获得要售出的机票并打印出机票。
3、数据库设计
3.1、逻辑设计
该系统的逻辑模型如下:
3.2、物理设计
该数据库包含了3张表:
旅客信息表、航班信息表、机票信息表、账单信息表。
(1)旅客信息表
旅客信息表是用来记录旅客信息的表
姓名
性别
身份证号
工作单位
旅行时间
旅行地点
旅客信息表保存已定位的旅客信息资料,它的主键为旅客身份证号,主要用于领票时将旅客信息一同返回。
(2)航班信息表
航班信息表是用来记录航班信息的表
航班号
目的地
起飞时间
座位空数
航班信息表保存了所有从本地起飞的班机信息,它的主键为航班号。
在定位前,先查寻座位空数,在定位后将修改座位空数。
(3)机票信息表
机票信息表用来记录机票特征的表。
航班号
目的地
起飞时间
机票价格
旅客姓名
身份证号
机票信息表记录了机票的相关特性,它的主键为航班号,外部主键为身份证号,主要用于及时向旅客反馈机票信息。
3.3、数据结构与程序的关系
服务器程序在对定票/领票进行操作时需对数据库数据库数据结构,也就是数据表进行查询和修改:
在定票/领票过程中都需要对数据库中的所有表,进行联合查询、修改。
物理数据结构主要用于各模块之间函数的信息传递。
接口传递的信息将是以数据结构封装了的数据,以参数传递或返回值的形式在各模块间传输。
出错信息将送入显示模块中,机票结构,帐单结构,送入打印准备模块中准备打印格式。
四、详细设计
1、概要说明
在前一阶段中,已解决了实现该系统需求的程序模块设计问题。
包括如何把该系统划分成若干个模块、决定各个模块之间的接口、模块之间传递的信息,以及数据结构、模块结构的设计等。
在本阶段中,确定应该如何具体地实现所要求的系统,从而在编码阶段可以把这个描述直接翻译成用具体的程序语言书写的程序。
2、模块设计
根据要求,输入数据和输出数据的逻辑结构的jackson图如下:
输入数据结构的Jackson图
输出数据结构的Jackson图
1.模块描述
本模块的主要功能,是根据操作员在输入数据模块中输入的预定机票的旅客信息由系统产生的相关取票通知和账单。
2.功能
系统地产生与客户信息相对应的取票通知和账单。
3.性能
操作员输入客户信息后,立即产生相对应的取票通知和账单,如果数据库中没有预定的票,则提示无票,说明原因。
4.输入项
客户定票信息:
任意长度字符串,包括数字和汉字和英文字母。
5.输出项
取票通知
姓名:
任意长度字符串。
班次:
8位长度字符串(班次=出发地+目的地+序列号)。
日期:
date类型。
3、程序描述
3.1、订票过程
存储旅客信息用Jackson伪码描述的程序如下:
产生新文件seq
建立输入文件
输入旅客信息
输入身份证号
输入姓名
输入性别
输入工作单位
输入旅行地点
输入旅行时间
将新记录写入输入文件
从输入文件中各读一条记录
处理旅客记录end
关闭所有文件
停止
产生新文件end
产生航班信息用Jackson伪码描述的程序如下:
产生新文件seq
打开输入文件
从输入文件中个读一条记录
分析旅客记录文件seq
处理旅客记录
产生航班号
产生目的地
产生起飞时间
产生座位号
将新记录写入输入文件
从输入文件中各读一条记录
处理旅客记录end
关闭所有文件
停止
产生新文件end
五、编码
1、软件编码
1.1登录模块
在本窗口中共分两种登陆模式以及供旅行社注册的注册功能
1)旅行社登陆
登陆成功以后可以进行旅客信息的输入,机票的预订与退订等活动。
登陆代码如下:
stringls_user,ls_password
ls_user=sle_1.text
select密码
into:
ls_password
fromlxs
where旅行社名称=:
ls_user;
ifsle_1.text=""then
messagebox("","不能为空!
")
return
endif
ifsle_2.text=ls_passwordthen
open(w_main)
close(parent)
else
messagebox("","错误!
")
endif
2)管理员登陆
在这一登陆模式中登陆者为管理员。
登陆成功后管理员可进行航班的时间的修改以及航班的开通和取消操作。
具体代码如下:
stringls_user,ls_password
ls_user=sle_1.text
select管理员名称
into:
ls_password
fromgly
where管理员密码=:
ls_user;
ifsle_1.text=""then
messagebox("","不能为空!
")
return
endif
ifsle_2.text=ls_passwordthen
open(w_hbcz)
close(parent)
else
messagebox("","错误!
")
endif
1.2查询模块
(1)航班信息的查询部分
在这一界面中通过下拉列表框控件与一静态文本控件输入查询信息,再通过按钮控件进行查询,之后再显示到数据窗口控件中。
其中按钮控件的代码如下:
stringtj
Ifsle_1.text=""Then
Messagebox("","查询信息不能为空!
")
else
tj=ddlb_1.text+"="+"'"+sle_1.text+"'"
dw_1.setfilter(tj)
filter(dw_1)
dw_1.retrieve()
界面代码为:
dw_1.settransobject(sqlca)
dw_1.retrieve
(1)
connectusingsqlca;
Endif
(2)用户信息查询部分:
这一界面的原理和上一界面基本相同。
在这一界面中通过下拉列表框控件与一静态文本控件输入查询信息,再通过按钮控件进行查询,之后再显示到数据窗口控件中。
其中按钮控件的代码如下:
stringtj
Ifsle_1.text=""Then
Messagebox("","查询信息不能为空!
")
else
tj=ddlb_1.text+"="+"'"+sle_1.text+"'"
dw_1.setfilter(tj)
filter(dw_1)
dw_1.retrieve()
界面代码为:
dw_1.settransobject(sqlca)
dw_1.retrieve
(1)
connectusingsqlca;
Endif
(3)旅客预订信息查询部分:
在这一界面中基本上是通过数据窗口控件来实现的,通过创建数据窗口控件以后,再将其与数据窗口连接起来,再在主界面加入以下代码:
dw_1.settransobject(sqlca)
dw_1.retrieve
(1)
六、软件测试
1、测试过程
1.1测试目的
测试是“为了发现程序中的错误而执行程序的过程”,测试的目的就是在软件投入生产性运行之前,尽可能多的发现软件中的错误。
在测试前,与各模块的主要负责人共同协商讨论,以概要设计说明书、详细设计说明书作为总的提纲,选择合适的输入输出数据,并加以意义列举说明。
1.2运行环境
由于系统将由两部分程序组成,安装在各旅行社客户机上的客户程序及航空公司内的
数据服务器程序。
1.服务器端子系统的运行要求:
系统软件:
WindowsNTServer、WindowsXP、WindowsServer2003、Linux等
数据库管理系统:
SQLServer
硬件要求:
PentiumII450以上,1024MRAM,36GHD
2.客户端子系统的运行要求:
系统软件:
WindowsServer2003Workstation
数据库管理系统:
SQLServer
硬件要求:
Pentium133以上,32MRAM,2.1GHD
1.3需求概述
航空公司为方便旅客,需开发一个机票预定系统。
为便于旅客由旅行社代替航空公司
负责为旅客定票,旅行社把预定机票的旅客信息,包括姓名、性别、工作单位、身份证号码、旅行时间、旅行目的地,输入机票预定系统的客户端程序,系统经过查询航空公司内的航班数据服务器后,为旅客安排航班,印出取票通知。
旅客在飞机起飞前一天凭取票通知和帐单交款后取票,系统校对无误后即印出机票给旅客。
要求系统能有效、快速、安全、可靠和无误的完成上述操作。
并要求客户机的界面要求简单明了,易于操作,服务器程序利于维护。
1.4测试步骤
(1)单元测试:
单元测试也称模块测试或程序测试,单元测试是对每个模块单独进行的,验证模块接口与设计说明书是否一致,对模块的所有主要处理路径进行测试且与预期的结构进行对照,还要对所有错误处理路径进行测试。
(2)组合测试:
组合测试也称集成测试或子系统测试,通常采用自顶向下测试和自底向上测试两种测试方法。
组合测试的对象是指已经通过单元测试的模块,不是对零散模块进行单个测试,而是用系统化的方法装配和测试软件系统。
(3)确认测试
确认测试是对通过组合测试的软件进行的,这些软件已经存于系统目标设备的介质上,确认测试的目的是对表明软件是可以工作的,并且符合“软件需求说明书”中规定的全部功能和性能要求。
(4)系统测试
系统测试是对整体性能的测试,主要解决各子系统之间的数据通信和数据共享问题以及检测系统不否达到用户的实际要求,系统测试的依据是系统分析报告。
系统测试应在系统的整个范围内进行,这种测试不只对软件进行,而是对构成系统的硬、软件一起进行。
(5)用户验收测试
在系统测试完成后,进行用户的验收测试,它是用户在实际应用环境中所进行的真实数据测试。
在具体的测试中,一般应遵循以下原则:
由程序设计者之外的人进行测试;测试用例应由两部分组成:
输入数据和预期输出结果;应选用不合理的输入数据与非法输入测试;不仅要检验程序是否实现预期功能,还应检查程序是否做了不应该做的工作;集中测试容易出错的程序模块;对程序修改以后,必须重新进行测试。
1.5测试用例设计
(1)白盒测试
a
其对应的测试代码为:
if(输入用户姓名为string型)显示用户姓名
if(输入身份证号=18位)显示旅客身份证号
if(输入航班序号和目的地)显示航班信息
其中共有8条路径:
P1(acef)P2(aceg)P3(abdf)P4(abdg)P5(abef)P6(abeg)
P7(acdf)P8(acdg)
P2(aceg)正好能满足语句覆盖条件,可以设计以下输入数据:
身份证号码421126198555562356显示为421126198555562356
(2)黑盒测试
针对前面的程序,采用错误推测法可列举出程序中所有可能有的错误和容易发生错误的特殊情况:
a.输入数据和输出数据为0的情况
b.输入表格为空格或输入表格只有一行
c.程序是否把空格作为回答
d.在回答记录中混有其他的记录
e.有两个旅客的姓名相同
根据这些情况设计