资源描述
《软件系统》
课程设计报告
学 院:软件学院
专业班级:
组 长:
组 员:
指导教师:
时 间:
目 录
一、序言-----------------------------------------------------------------------------5
二、需求分析说明书--------------------------------------------------------------5
2.1 引言------------------------------------------------------------------------5
2.1.1编写目的------------------------------------------------------------5
2.1.2系统定义------------------------------------------------------------5
2.2系统介绍-------------------------------------------------------------------6
2.3系统面向的用户群体----------------------------------------------------6
2.4条件与限制----------------------------------------------------------------6
2.5系统的功能性需求-------------------------------------------------------6
2.5.1功能划分------------------------------------------------------------6
2.5.2功能描述------------------------------------------------------------7
2.6系统的非功能性需求---------------------------------7
2.6.1用户界面需求----------------------------------7
2.6.2运行环境需求-----------------------------------------------------7
2.6.3软件质量需求-----------------------------------7
三、可行性分析报告-------------------------------------------------------------7
3.1编写目的-------------------------------------------7
3.1.1目的----------------------------------------------------------------7
3.1.2用户类及其特征----------------------------------------------------7
3.2问题定义------------------------------------------------------------------8
3.2.1开展该工程的原因------------------------------------------------8
3.2.2该工程的基本目标------------------------------------------------8
3.2.3经济目标------------------------------------------------------------9
3.3可行性研究的方法及评价度------------------------------------------9
3.3.1可行性研究所采用的方法------------------------------------9
3.3.2评价尺度----------------------------------------------------------9
3.4工作产品------------------------------------------------------------------9
3.4.1设计目标-----------------------------------------------------------9
3.4.2设计及约束条件-------------------------------------------------9
3.4.3产品工作原理---------------------------------------------------10
3.5时间、设备可能性-----------------------------------------------------10
3.6系统工作量--------------------------------------------------------------10
3.7代码工作量--------------------------------------------------------------10
四、开发环境与项目规划------------------------------------------------------10
4.1开发环境----------------------------------------------------------------10
4.2项目规划与管理-------------------------------------------------------10
4.2.1开发人员安排----------------------------------------------------11
4.2.2开发进度安排-----------------------------------------------------11
五、软件界面设计标准与规范------------------------------------------------11
5.1编写目的-----------------------------------------------------------------11
5.2界面设计思想-----------------------------------------------------------11
5.3界面设计原则--------------------------------------11
5.4界面设计样式----------------------------------------------------------12
5.5常见提示信息样式----------------------------------12
5.6常见错误信息样式----------------------------------12
5.7其他界面约定----------------------------------------------------------12
六、软件编码设计标准与规范-----------------------------------------------12
6.1结构化编码约定------------------------------------12
七、软件体系结构设计说明书-----------------------------------------------12
7.1系统概述------------------------------------------12
7.2设计约束------------------------------------------13
7.3系统概要设计说明书--------------------------------13
7.3.1图例说明-----------------------------------------------------------13
7.3.2系统总体结构----------------------------------------------------13
7.3.3流程图-------------------------------------------------------------15
7.4系统详细设计说明书-------------------------------------------------15
7.4.1系统核心模块详解-----------------------------------------------15
八、用户界面设计报告--------------------------------------------------------33
8.1界面设计规范--------------------------------------33
8.2界面设计------------------------------------------33
8.2.1主页----------------------------------------------------------------34
8.2.2 查询窗口---------------------------------------------------------36
8.2.3订票窗口-----------------------------------------------------------39
8.2.4航班时刻表界面--------------------------------------------------39
九、软件测试分析报告--------------------------------------------------------39
9.1测试目的------------------------------------------39
9.2测试项目------------------------------------------40
9.3测试人员------------------------------------------40
9.4测试过程分析--------------------------------------40
9.5测试报告示例--------------------------------------41
9.6测试评价------------------------------------------43
9.7改进建议与措施------------------------------------43
9.8测试结论----------------------------------------------------------------43
十、软件使用说明书-----------------------------------------------------------43
10.1软件概述-----------------------------------------43
一、序言
通过前面对工程设计的学习以及做了相应的上机实验,对软件工程设计有了一定的认识和了解,为了加深和巩固本课程的知识,现在又做了更有挑战性的实验——银河航空飞机订票查询系统。本实验基本上与实际应用中的系统相差不大,由于所学的知识有限及其它方面的原因,在本实验需求分析中所设计的用户需求中某些功能可能实现得不是很理想,但基本功能都能高质量高标准地完成。
为了系统的顺利开发和维护,特编制如下技术文档:
二、需求分析说明书
2.1 引言
本实验分为两大部分,一部分是设计实现。第二部分是测试。第一部分分为以下几个部分:需求分析、系统设计。本文档是属于设计实现的第一步,是对软件的需求进行的分析,分析出软件的各种需求,并且对于各中需求的各个部分及有关事项又分别作出了大概的说明论述。
2.1.1编写目的
目 的:为明确软件需求、安排项目规划与进度、组织软件开发与测试,撰写本文档。
针对人员:本文档供项目经理、设计人员、开发人员参考,有利于对小组各成员的任务分工和团结协作。
2.1.2系统定义
1.文档:记录软件开发活动和阶段性成果,为理解软件所必需的阐述性资料
2.数据:是客观事物的符号表示,是现实世界的事物采用计算机能够识别、存储和处理的 形式进行描述的符号集合
3.正确性:满足用户的需求(功能、性能等)
4.可靠性:具有能够防止因概念、设计和结构等方面的不完善而造成的系统失效,具有挽回因操作不当而造成软件系统失效的能力
5.有效性:充分利用计算机的时间和空间资源
2.2系统介绍
本系统是一飞机航班机票订购系统,该系统可以录入航班和机票信息,用户可以在线查询航班时刻表、查询机票可用信息和机票折扣信息,用户可以通过软件订购机票。
2.3系统面向的用户群体
本系统面向由于种种原因希望在线订购民航机票的用户群体。
实现网上远程订票,为广大的客户朋友提供方便、快捷、优质的服务。
2.4条件与限制
条件:
1.小组成员之间的通力合作,发挥团结互助的精神,共同完成。
2.有大量的参考书籍供大家借鉴。
3.有辅导老师的不停指导。
限制:
1.由于大家都还是处于学习阶段,经验不足,能力有限,所以有很多没有考虑到的地方。
2.学习任务比较重,时间比较仓促,不能仔仔细细的去完成,所以有很多功能没有实现,只是简单的做了一个样本,还有待进一步完善。
2.5系统的功能性需求
2.5.1功能划分
系统需向两类用户提供如下功能:
1.系统管理员功能:
1) 录入和修改航班和机票的信息;
2) 定时更新信息;
3) 管理留言板
2.客户需要的功能:
1)查询;
2)订票;
2.5.2功能描述
查询以及订票:查询航班时刻表,包括航线信息,时间信息和班次信息。可以通过航班、始发站、终点站和班次进行层次查询,既可以分层次逐步细化查询。
2.6系统的非功能性需求
2.6.1用户界面需求
简洁、易用、易懂,美观、大方、标准,具备一定的兼容性。
2.6.2运行环境需求
操作系统:vc6.0
2.6.3软件质量需求
易用、健壮、兼容性好、运行稳定、有一定安全保障。
三、可行性分析报告
3.1编写目的
3.1.1目的
随着人民生活水平的提高,旅游业和商务的发展,航空业的飞速发展,机票销售预定也应用而生,而相关的信息管理,如国内,国际机票的预定信息和机票政策信息等管理却落后。靠已往的管理方式进行管理,已不能适应社会的快速发展。这样就迫切需要一个高效率的管理方式来引导机票预定服务业的发展。
3.1.2用户类及其特征
用户类
描述
旅客(优先考虑)
旅客是所有乘飞机的人员,他们希望能够查询航班信息,包括票价,起飞和降落时间等,同时能够进行网上预定与删除预定。
售票员
航空公司聘请的工作人员,专门负责与旅客打交道,他们从旅客那里接受信息,进行售票,也可查询,预定,删除预定,还能为旅客办理退票手续。飞机售票管理系统的工作人员需要接受培训,学会如何使用计算机,Web浏览器和该系统
公司领导
投资开发该系统的人员,可以对当前航班和历史航班售票信息进行查询统计。
系统管理员
专门负责管理系统的人员,是高层次的人员,可以对该系统进行数据备份、恢复、数据调整等日常维护。
业务人员
录入非规范信息,包括座位数,座位等级,服务类别,备注信息。公司业务人员同时负责上述信息的修改、删除等维护。
公司业务人员录入航班信息,包括航班号,出发城市,到达城市,出发时间,到达时间,座位价格(含不同等级座位价格),备注信息。公司业务人员同时负责上述信息的修改、删除等维护。
公司业务人员可以对当前航班和历史航班售票信息进行查询统计
3.2问题定义
3.2.1开展该工程的原因
航空公司在每个航班运营的城市都设有大量订票处。每个订票处都有大量订票柜台来处理订票和取消订票。每个柜台都有一名柜台助理来负责预订或取消预订。
现航空公司需要开发一个新系统来利用最新技术和使乘客能够在线查询有关航班和候补列表状态的信息。
3.2.2该工程的基本目标
1).输入航班信息
2).浏览航班信息
3).修改航班信息
4).查找航班信息
5).删除航班信息
6).订票信息
7).退票信息
3.2.3经济目标
本工程产品作为飞机售票管理的具体应用,是带有实验性的,在一定的时间内无经济上收益。是为了通过实现本产品的设计语言,能够做到开发其它软件,是为了推广由本语言开发的相关软件,是注重以后的潜在发展,是在概念上、形象上的不断升值。
3.3可行性研究的方法及评价度
本工程产品作为飞机售票管理的具体应用,是带有实验性的,在一定的时间内无经济上收益。是为了通过实现本产品的设计语言,能够做到开发其它软件,是为了推广由本语言开发的相关软件,是注重以后的潜在发展,是在概念上、形象上的不断升值。
3.3.1 可行性研究所采用的方法
通过调查分析飞机售票管理现阶段所具备的能力及实现的方法、确定主体结构。利用现阶段售票管理所能达到的能力,以最简洁、最容易的办法,边开发边测试,实现一个初级应用软件。
3.3.2 评价尺度
利用飞机售票管理开发一个初始产品,以能够达到提高机票管理工作效率、减少额外人力、物力资源开销为评价标准。
3.4 工作产品
3.4.1 设计目标
系统具有售票,增加预定,删除预定,,查询,退票等功能。
3.4.2 设计及约束条件
a. 软件系统界面美观、布局合理、内容简单,提供的信息语言通俗易懂、有层次感、分类清晰。
b. 必须根据现有条件所能达到的能力来完成整个工程。
3.4.3 产品工作原理
飞机售票系统软件与其它软件有所不同,它小巧实用,主要利用数据库来实现:
a. 它将所有的数据都存入数据库中;
b. 它调用的数据都来自数据库;
c. 它能随意的输入数据和输出数据以及删除数据;
d. 通过过滤的功能来查找出来的记录中找到所需的项。
3.5时间、设备可能性
系统设计与开发工作预计耗时半个月,所有参与开发的人员均能够保证按时完成任务。实验设备如:计算机等充足,上机任务可以完成,网络的实验根据具体条件暂时延缓执行。
3.6系统工作量
该系统的工作量相对于我们的开发小组来说很大,必须保证按进度完成任务。实际工作量预计超过半个月(每天4-8小时)。如包含软件维护及技术文档的整理、制作,工作量将更大。
3.7代码工作量
预计需14天左右。
四、开发环境与项目规划
4.1开发环境
前台开发环境:VC6.0
4.2项目规划与管理
4.2.1开发人员安排
件测试。
4.2.2开发进度安排
1月5日至1月8日:系统分析,进行需求定义,定义系统概况
1月8日至1月10日:数据库分析与设计、UML工程设计
1月10日至1月12日:软件体系结构设计
1月12日至1月14日:软件编码
1月14日至1月16日:系统测试
五、软件界面设计标准与规范
5.1编写目的
制定界面设计标准规范的目的是为了规范和统一软件界面设计制定软件界面设计标准与规范。
5.2界面设计思想
首先考虑标准化,在标准化的基础上进行界面的美工设计。
5.3界面设计原则
简单易用、简洁明了、兼容性好、标准、规范。
5.4界面设计样式
采用标准网页界面,自上至下依次为:标题栏、菜单栏、工具条、工作区、状态栏等。
5.5常见提示信息样式
提示信息按以下标准进行:采用标准网页对话框样式,添加信息图标,后接提示信息文本和相应按钮。
5.6常见错误信息样式
错误信息依据提示信息样式设计,将信息图标更改为警告图标。
5.7其他界面约定
除主界面外,所有子界面均采用模式窗体,即该窗体不消失,不可以在本程序内将焦点移出子窗体。
六、软件编码设计标准与规范
6.1结构化编码约定
编码应清晰、可读性好,运用缩进、空行,结合大小写区别等方法保持程序结构良好。凡与数据库操作相关的模块一律加上容错代码,涉及多表操作的模块应运用“事务”处理,以保持数据完整性。
七、软件体系结构设计说明书
7.1系统概述
在单机环境下进行系统安全的考虑,有必要进行用户权限的划分与控制,因而系统在总体上应包含安全子系统之下的各类用户工作环境。用户权限的合理划分与有效控制是本系统体系结构设计的核心。
7.2设计约束
系统将实现对用户、管理员的全面管理,而用户管理是系统的核心部件,怎样实现二者的共存,互不干扰,是本系统设计的难点。本系统必须实现对用户权限的有效合理控制。
7.3系统概要设计说明书
7.3.1图例说明
过程、模块
1.处理过程:
数据表
2.数据存储:
决策
3.条件判断:
4.数据流:(单向)
5.数据流:(双向)
实体
6.外部实体:
数据表
7.带有变动历史的数据存储:
7.3.2系统总体结构
输入航班信息
浏览航班信息
按航班号修改
按航线修改
修改航班信息
按航班号查找
飞机订票管理系统
按终点站查找
查找航班信息
按航线修改
返回
按航班号删除
按航线删除
删除航班信息
按航班号查找
返回
按终点站查找
订票信息
按航线修改
返回
按航班号查找
按终点站查找
退票信息
按航线修改
返回
退出
图10.系统总体结构图
7.3.3流程图用户
Searching
Booking
选择查询
选择订票
时刻表
航班时刻表
航班表
查询记录
图11. 用户订票流程图
7.4系统详细设计说明书
7.4.1系统核心模块详解
#include<stdio.h> //标准输入、输出头文件
#include<string.h> //包含字符串函数处理头文件
#include<stdlib.h> //包含动态存储与释放函数头文件
#define N 10000
struct air //定义结构体数组
{
int num;
char start[20];
char over[20];
char time[10];
int count;
}s[N];
int i;
int m=0;
#define PRINT "%-d%12s%12s%10s%12d\n",s[i].num,s[i].start,s[i].over,s[i].time,s[i].count //定义输出格式
void input(); //输入航班信息
void print(); //输出航班信息
void save(); //保存航班信息
void read(); //读取航班信息
void search(); //查找航班信息
void shanchu(); //删除航班信息
void dingpiao(); //订票信息
void tuipiao(); //退票信息
void xiugai(); //修改信息
void main()
{
int j;
printf(" ★---您好,欢迎进入机票预订系统!---★\n");
printf("================================================================================\n");
do
{
printf(" -------- ☆ 1.输入航班信息 ☆-------- \n\n"
" -------- ☆ 2.浏览航班信息 ☆-------- \n\n"
" -------- ☆ 3.修改航班信息 ☆-------- \n\n"
" -------- ☆ 4.查找航班信息 ☆-------- \n\n"
" -------- ☆ 5.删除航班信息 ☆-------- \n\n"
" -------- ☆ 6.订票信息 ☆-------- \n\n"
" -------- ☆ 7.退票信息 ☆-------- \n\n"
" -------- ☆ 0.退出 ☆-------- \n\n");
printf("================================================================================\n");
printf("请在0-7中选择以回车键结束:\n\n");
scanf("%d",&j);
switch(j)
{
case 1: input();//调用输入模块
break;
case 2:print();//调用打印模块
break;
case 3:xiugai();//调用修改模块
break;
case 4:search();//调用查找模块
break;
case 5:shanchu(); //调用删除模块
break;
case 6:dingpiao();//调用订票模块
break;
case 7:tuipiao();//调用退票模块
break;
case 0:;
break;
}
}while(j!=0); //判断结束
printf("谢谢使用,再见!\n");
}//主函数结束
void input()//打印模块程序
{
char f[]="12345"; //设置密码
int y;
printf("请输入密码并以回车键结束:\n\n");
scanf("%s",f); //读取密码
if(strcmp(f,"12345")==0)
{
printf("请依次输入航班信息(机票数位0结束输入):\n\n"
"完成输入信息请键入w以回车键结束\n\n"); //打印提示信息
printf("--------------------------------------------------------------------------\n");
for(i=0;i<N;i++)
{
printf("请输入航班号:\n");
scanf("%d",&s[i].num); //读取航班号
printf("请输入起始站:\n");
scanf("%s",s[i].start);//读取起始站
printf("请输入终点站:\n");
scanf("%s",s[i].over);//读取终点站
printf("请输入时间:\n");
scanf("%s",s[i].time);//读取时间
printf("请输入机票数(机票数为0结束输入):\n",m);
scanf("%d",&s[i].count);//读取机票数
m++;
printf("第%d个信息已经输完是否继续?按任意键继续,按 0结束",m);
scanf("%d",&y);
if(y==0)
{
save();//将结构体信息存盘
print();//输出输入的航班信息
break;
}
}
}
else
printf("输入密码错误!请检查您的密码是否正确!谢谢!再见!\n\n");
}
void save()//保存模块程序
{
FILE *fp,*fp1;//定义文件指针
if((fp=fopen("chen.dat","wb"))==NULL)//打开文件并判断是否出错
{
printf("创建文件失败!\n\n");//打印出错提示
getchar();
return;
}
if((fp1=fopen("hao.dat","wb"))==NULL)//打开文件并判断是否出错
{
printf("创建文件失败!\n\n");//打印出错提示
getchar();
return;
}
for(i=0;i<m;i++)
if(fwrite(&s[i],sizeof(struct air),1,fp)==0)//向文件写入数据,并判断是否出错
printf("向文件输入数据失败!\n\n");
fprintf(fp1,"%d",m);
fclose(fp);//关闭文件
fclose(fp1);//关闭文件
}
void read()//从文件读取信息模块
{
FILE *fp,*fp1;//定义文件指针
if((fp=fopen("chen.dat","rb"))==NULL)//打开文件,并判断是否出错
{
printf("出错,请检查文件是否存在,按任意键返回住菜单");//打印出错提示
getchar();
}
if((fp1=fopen("hao.dat","rb"))==NULL)//打开文件并判断是否出错
{
printf("创建文件失败!\n\n");//打印出错提示
getchar();
return;
}
fscanf(fp1,"%d",&m);
fclose(fp1);//关闭文件
for(i=0;i<m;i++)
{
fread(&s[i],sizeof(struct air),1,fp);//从文件中读取信息
}
fclose(fp);//关闭文件
}
void print()//打印模块
{
char w[10];
read();//调用读取文件函数
printf("航班号 起始站 终点站 时间 机票数\n");
for(i=0;i<m;i++)
{
printf(PRINT);//打印信息
}
printf("请按任意键回车键结束返回上层菜单以:\n");
scanf("%s",w);
}
void search()//查询模块
{
char name1[20];
char name2[20];
char ii[10];
int n,no;
do
{
printf("请选择查找方式:\n\n");//打印查询方式菜单
printf("1.按航班号查找\n\n"
"2.按终点站查找\n\n"
"3.按航线查找\n\n"
"0.返回\n\n");
printf("请在0-3中选择:\n\n"
"按其他键以回车键结束返回主菜单:\n\n");
scanf("%d",&n);//读取查找方式
if(n==0)
break;
switch(n)
{
case 1:
printf("请输入航班号:\n");
scanf("%d",&no);//航班号
break;
case 2:
printf("请输入终点站名称:\n");
scanf("%s",name2);//读取终点站
break;
case 3:
printf("请输入起始站名称:\n");
scanf("%s",name1);//读取起始站
printf("请输入终点站名称:\n");
scanf("%s",name2);//终点站
break;
}
read();//调用读取函数
for(i=0;i<m;i++)
{
if(strcmp(s[i].over,name1)==0||strcmp(s[i].over,name2)==0)//按终点站起始站判断输出条件
{
printf("\n查找航班信息成功!\n");
printf("航班号 起始站 终点站 时间 机票数\n");
printf(PRINT);//打印信息
break;
}
if(s[i].num==no)//按航班号判断输出条件
{
printf("\n查找航班信息成功!\n");
printf("航班号 起始站 终点站 时间 机票数\n");
pri
展开阅读全文