第一篇:4 飞机订票系统系统概要设计说明书
文档编号: 版本号:V1.0
概要设计说明书
项目名称
飞机订票系统 项目负责人
何柳青 本文档编写者 李欣纯 项目开发者 计算机081第二组
2010年11月7日 目录
1.引言.....................................................................1
1.1 编写目的......................................................................................................................................1 1.2 背景.............................................................................................................................................1 1.3 定义.............................................................................................................................................1 1.4参考资料.......................................................................................................................................1
2.任务概述...............................................................2
2.1目标...............................................................................................................................................2 2.2运行环境.......................................................................................................................................2
2.2.1设备........................................................................................................................2
2.2.2支持软件................................................................................................................2 2.3需求概要.......................................................................................................................................2 2.4条件与限制...................................................................................................................................2 3.总体设计.................................................................3
3.1处理流程.......................................................................................................................................3 3.2总体结构和模块外部设计...........................................................................................................4
4.接口设计.................................................................4
4.1 硬件接口......................................................................................................................................4 4.2 软件接口......................................................................................................................................4
5.数据结构设计.............................................................5
5.1 逻辑结构设计..............................................................................................................................5 5.2 物理结构设计..............................................................................................................................5 5.3 数据结构与程序的关系..............................................................................................................5
6.运行设计.................................................................5
6.1 运行模块的组合..........................................................................................................................5 6.2 运行控制......................................................................................................................................5 6.3 运行时间......................................................................................................................................5
7.出错处理设计.............................................................6
7.1 出错输出信息..............................................................................................................................6 7.2 出错处理对策..............................................................................................................................6
8.安全保密设计.............................................................6 9.维护设计.................................................................6
1.引言
1.1 编写目的
从该阶段正式进入软件的实际开发阶段,本文档将对《飞机订票系统》的软件功能进行描述。本阶段的主要任务是把系统的功能需求分配给软件结构,形成软件的系统结构图。本概要设计说明书的目的就是进一步细化软件设计阶段得出的软件总体概貌,把它加工成在程序细节上非常接近于源程序的软件表示。本文档的读者是项目策划、设计和评审人员。
1.2 背景
开发软件名称:飞机票订系统。
//(1)项目任务提出者:中国民航及中国国际旅游开发公司。(2)项目开发者:何柳靑,陆银琳,李欣纯,单国英,阿依古丽
(3)项目与其他软件,系统的关系:本项目采用客户机/服务器原理,客户端的程序是建立在Windows NT 系统上以Microsoft Visual C++为开发软件的应用程序,服务器端采用Linux 为操作系统的工作站,是采用Oracle 8的为开发软件的数据库服务程序。
1.3 定义
概要设计说明书中的专门术语有:数据结构设计,总体设计,接口设计,运行设计,系统出错处理设计。
1.4参考资料
《软件工程导论》 清华大学出版社 张海藩 编著 《实用软件工程》 清华大学出版社 郑人杰 等 编著
《数据库系统概论(第三版)》 高等教育出版社 萨师煊 王珊等编著 《实用软件文档写作》 清华大学出版社 肖刚等 编著 《软件工程》第3版 人民邮电出版社 张海藩等 编著 2.任务概述
2.1目标
该阶段目的在于明确系统的数据结构和软件结构,此外总体设计还将给出内部软件和外部系统部分之间的接口定义,各个软件模块的功能说明,数据结构的细节以及具体的装配要求。
2.2运行环境
2.2.1设备
硬件最低要求:内存128MB,硬盘20G以上PC机
2.2.2支持软件
vc++.net 传感器windows系列os 如 win98/me/2000pro server/xp/server2003/win7 2.3需求概要
系统主要的输入输出:
1.乘客通过登录用户界面输入姓名和密码,进行登录,查询信息等; 2.操作人员根据乘客的要求输入信息到数据库中进行相应的查询及修3.4.5.改;
操作人员或用户登录相应的界面输入基本信息,例如姓名,性别,年龄,身份证号等;
公告信息的输出,公告信息的回复;
航班具体情况的输出,剩余票数的输出,及临时调整的输出。
2.4条件与限制
为了评价该设计阶段的设计表示的“优劣程度”,必须遵循以下几个准则:
(1)软件设计应当表现出层次结构,它应巧妙地利用各个软件部件之间的控制关系;
(2)设计应当是模块化的,即该软件应当从逻辑上被划分成多个部件,分别实现各种特定功能和子功能;(3)设计最终应当给出具体的模块(例如子程序或过程),这些模块就具有独立的功能特性;
(4)应当应用在软件需求分析期间得到的信息,采取循环反复的方法来获得设计。
3.总体设计
3.1处理流程
系统的总体处理流程如下图:
开始进入用户登录界面是否为后台数据管理员NO YES是否订票NOYES查看航班信息YESNO是否改签NOYES查询显示航班信息YES是否修改退票改签订票修改信息NO结束图3.1 流程图 3.2总体结构和模块外部设计
模块是软件是软件结构的基础,软件结构的好坏完全由模块的属性体现出来,把软件模块化的目的是为了降低软件复杂性,使软件设计、测试、调试、维护等工作变得简易,但随着模块数目的增加,通过接口连接这些模块的工作量也随之增加。
从系统的层次图中可以看出,订票以及退票的信息输入输出功能是由航班数据管理系统进行的。
飞机订票系统登录验证乘客信息修改订票管理航班信息查询航班信息调整后台管理员验证用户身份验证乘客基本信息录入乘客基本信息修改乘客票务信息修改乘客订票改签退票按时间查询按目的地查询按航班号查询增加新航班修改原有航班删除航班图3.2系统层次图
4.接口设计
4.1 硬件接口
本软件不需要特定的硬件或硬件接口进行支持。
4.2 软件接口
可以运行于Windows等操作系统之上。5.数据结构设计
5.1 逻辑结构设计
1.航空公司表:AIRLINE 2.客户表CUSTOMER 3.飞机表PLANE 4.航线表LINE 5.航班表FLIGHT 6.订票表BOOKTICKET 5.2 物理结构设计
系统的物理结构具体由数据库来设计与生成的。
5.3 数据结构与程序的关系
系统的数据结构由标准数据库语言SQL生成。
6.运行设计
6.1 运行模块的组合
具体软件的运行模块组合为程序多窗口的运行环境,各个模块在软件运行过程中能较好的交换信息,处理数据。
6.2 运行控制
软件运行时有较友好的界面,基本能够实现用户的数据处理要求。
6.3 运行时间
系统的运行时间基本可以达到用户所提出来的要求。7.出错处理设计
7.1 出错输出信息
用户使用错误的数据或访问没有权限的数据后,系统给出提示:“对不起,你无法使用数据,没有权限!”而且用户的密码管理可以允许用户修改自己的密码,不允许用户的匿名登录。
7.2 出错处理对策
由于数据在数据库中已经有备份,故在系统出错后可以依靠数据库恢复功能,并且依靠日志文件使系统再启动,就算系统崩溃用户的数据也不会丢失或遭到破坏。但有可能占用更多的数据存储空间,权衡措施由用户来决定。
8.安全保密设计
系统的系统用户管理保证了只有授权的用户才能进入系统进行数据操作,而且对一些重要的数据,系统设置为只有最高权限的人员方可读取或是操作。系统安全保密性较高。
9.维护设计
由于系统较小没有加外加维护模块,因为系统维护工作比较简单,仅靠数据库的一些基本维护。
第二篇:数据结构课程设计 飞机订票系统
飞机订票系统
1.需求分析
描述要求编程解决的问题。以无歧义的陈述说明程序设计的任务,强调的是程序要做什么?明确规定:
(a)输入的形式和输入值的范围;
(b)输出的形式;
(c)程序所能达到的功能;
(d)测试数据:包括正确的输入及其输出结果和含有错误的输入及其输出结果。
2.概要设计
给出程序要达到的具体的要求。描述解决相应问题算法的设计思想。描述所设计程序的各个模块(即函数)功能。说明本程序中用到的所有抽象数据类型的定义、主程序的流程以及各程序模块之间的层次(调用)关系。
3.详细设计
实现概要设计中定义的所有数据类型,对每个操作只需要写出流程或伪码算法;对主程序和其他模块也都需要写出流程或伪码算法(伪码算法达到的详细程度建议为:按照伪码算法可以在计算机键盘直接输入高级程序设计语言程序);画出函数的调用关系图。给出所使用的基本抽象数据类型,所定义的具体问题的数据类型,以及新定义的抽象数据类型。设计出良好的输入输出界面(清晰易懂)。
4.调试分析 内容包括:
(a)调试过程中遇到的问题是如何解决的以及对设计与实现的回顾讨论和分析;
(b)算法的时空分析(包括基本操作和其他算法的时间复杂度和空间复杂度的分析)和改进设想;
(c)经验和体会等。
5.用户使用说明
说明如何使用你编写的程序,详细列出每一步的操作步骤。
6.测试结果
设计测试数据,或具体给出测试数据。要求测试数据能全面地测试所设计程序的功能。列出你的测试结果,包括输入和输出。这里的测试数据应该完整和严格,最好多于需求分析中所列。
7.测试情况:给出程序的测试情况,并分析运行结果
附录(非必须,按照需要添加)
带注释的源程序。可以只列出程序文件名的清单。
需求分析
任务:通过此系统可以实现如下功能: 录入:
可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)
查询:
可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓); 可以输入起飞抵达城市,查询飞机航班情况;
订票:(订票情况可以存在一个数据文件中,结构自己设定)可以订票,如果该航班已经无票,可以提供相关可选择航班;
退票: 可退票,退票后修改相关数据文件;
客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。
概要设计
详细设计
详列函数 void list(){
struct airline *info;
int i=0;
info=start;
printf(“起点城市t终点城市t航班号t起飞时间t降落时间t总票数t余票数n”);
while(i { display(info); info++; i++; } printf(“nn”);} 查询函数 void search(){ struct airline *info,*find(); char qiname[10]; char jiangname[10]; int i=0; info=start; printf(“请输入要起飞城市的名称:”); scanf(“%s”,qiname); printf(“请输入要抵达城市的名称:”); scanf(“%s”,jiangname); while(i { if(!strcmp(jiangname,info->jiang_name)) { break; } info++; i++; } if(i>=MAXSIZE) { printf(“没有这条航线!n”); } else { printf(“起飞城市t降落城市t航班号t起飞时间t降落时间t总票数t余票数n”); display(info); } } struct airline *find(){ struct airline *info; char number[10]; int i=0; info=start; printf(“请输入航班号:”); scanf(“%s”,number); while(i { if(!strcmp(number,info->air_num)) { return info; } info++; i++; } printf(“没有这条航线!n”); return NULL;} 订票函数 void order(){ struct airline *info; char qiname[10]; char jiangname[10]; int amount; char name[10]; char id[30]; info=start; printf(“请输入您的起飞城市:”); scanf(“%s”,qiname); printf(“请输入您的降落城市:”); scanf(“%s”,jiangname); printf(“请输入您需要的票数:”); scanf(“%d”,&amount); int i=1; while(i<5) { if(!strcmp(info->qi_name,qiname)&&!strcmp(info->jiang_name,jiangname)) { if(amount<=info->ticket_left) { int i; printf(“请输入您的姓名:”); scanf(“%s”,name); printf(“请输入您的身份证号:”); scanf(“%s”,id); info->order=insertlink(info->order,amount,name,id); printf(“您的航班信息为:n”); display(info); for(i=0;i { printf(“%s的座位号是:%dn”,name,info->ticket_all-info->ticket_left+i+1); } info->ticket_left-=amount; printf(“订票成功!n”); break; } else { info++; i++; } } else { info++; i++; } } } 退票函数 void returnticket(){ struct airline *info; linklist *p1,*p2,*head; char name[10]; if(!(info=find())) { return; } head=info->order; p1=head; printf(“请输入您的姓名:”); scanf(“%s”,name); while(p1!=NULL) { if(!strcmp(name,p1->name)) { break; } p2=p1; p1=p1->next; } if(p1==NULL) { printf(“您没有订过票!n”); return; } else { if(p1==head) { head=p1->next; } else { p2->next=p1->next; } info->ticket_left+=p1->tickets; printf(“%s退票成功!n”,p1->name); free(p1); } info->order=head;} 存储结构 typedef struct passenger { char name[10]; int tickets; char id[30]; struct passenger *next;} linklist;typedef struct airline { char qi_name[10]; char jiang_name[10]; char air_num[10]; char qi_time[10]; char jiang_time[10]; int ticket_all; int ticket_left; linklist *order;} lineinfo;调试分析 查看航线信息 查询航线 ① 输入起飞城市 ② 输入抵达城市 ③ 输出航班信息 办理订票业务 ① 查询符合的航班 ② 查询余票量 ③ 输出航班信息 办理退票业务 源代码 #include char name[10]; int tickets; char id[30]; struct passenger *next;} linklist; typedef struct airline { char qi_name[10]; char jiang_name[10]; char air_num[10]; char qi_time[10]; char jiang_time[10]; int ticket_all; int ticket_left; linklist *order;} lineinfo; struct airline *start; void display(struct airline *info){ printf(“%st %10st %10st %10st %10st %5dt %5dn”,info->qi_name,info->jiang_name,info->air_num,info->qi_time,info->jiang_time,info->ticket_all,info->ticket_left);} void list(){ struct airline *info; int i=0; info=start; printf(“起点城市t终点城市t航班号t起飞时间t降落时间t总票数t余票数n”); while(i { display(info); info++; i++; } printf(“nn”);} void search(){ struct airline *info,*find(); char qiname[10]; char jiangname[10]; int i=0; info=start; printf(“请输入要起飞城市的名称:”); scanf(“%s”,qiname); printf(“请输入要抵达城市的名称:”); scanf(“%s”,jiangname); while(i { if(!strcmp(jiangname,info->jiang_name)) { break; } info++; i++; } if(i>=MAXSIZE) { printf(“没有这条航线!n”); } else { printf(“起飞城市t降落城市t航班号t起飞时间t降落时间t总票数t余票数n”); display(info); } } struct airline *find(){ struct airline *info; char number[10]; int i=0; info=start; printf(“请输入航班号:”); scanf(“%s”,number); while(i { if(!strcmp(number,info->air_num)) { return info; } info++; i++; } printf(“没有这条航线!n”); return NULL;} linklist *insertlink(linklist *head,int amount,char name[],char id[]){ linklist *p1,*new1; p1=head; new1=(linklist*)malloc(sizeof(linklist)); strcpy(new1->name,name); new1->tickets=amount; new1->next=NULL; strcpy(new1->id,id); if(head==NULL) { head=new1; new1->next=NULL; } else { while(p1->next!=NULL) p1=p1->next; p1->next=new1; } return head;} void order(){ struct airline *info; char qiname[10]; char jiangname[10]; int amount; char name[10]; char id[30]; info=start; printf(“请输入您的起飞城市:”); scanf(“%s”,qiname); printf(“请输入您的降落城市:”); scanf(“%s”,jiangname); printf(“请输入您需要的票数:”); scanf(“%d”,&amount); int i=1; while(i<5) { if(!strcmp(info->qi_name,qiname)&&!strcmp(info->jiang_name,jiangname)) { if(amount<=info->ticket_left) { int i; printf(“请输入您的姓名:”); scanf(“%s”,name); printf(“请输入您的身份证号:”); scanf(“%s”,id); info->order=insertlink(info->order,amount,name,id); printf(“您的航班信息为:n”); display(info); for(i=0;i { printf(“%s的座位号是:%dn”,name,info->ticket_all-info->ticket_left+i+1); } info->ticket_left-=amount; printf(“订票成功!n”); break; } else { info++; i++; } } else { info++; i++; } } } void returnticket(){ struct airline *info; linklist *p1,*p2,*head; char name[10]; if(!(info=find())) { return; } head=info->order; p1=head; printf(“请输入您的姓名:”); scanf(“%s”,name); while(p1!=NULL) { if(!strcmp(name,p1->name)) { break; } p2=p1; p1=p1->next; } if(p1==NULL) { printf(“您没有订过票!n”); return; } else { if(p1==head) { head=p1->next; } else { p2->next=p1->next; } info->ticket_left+=p1->tickets; printf(“%s退票成功!n”,p1->name); free(p1); } info->order=head;} int menu_select(){ int c; char s[20]; printf(“ 订票系统n”); printf(“-------------n”); printf(“ 1.查看航线信息 printf(” 2.查询航线 printf(“ 3.办理订票业务 printf(” 4.办理退票业务 printf(“ 5.退出系统 printf(”-------------n“); do { printf(”请选择(1-5):“); scanf(”%s“,s); c=atoi(s); } while(c<1||c>6); return c; n”);n“);n”);n“); n”); } int main(){ struct airline air[MAXSIZE]= { {“harbin”,“beijing”,“1”,“12:00”,“14:00”,30,30},{“harbin”,“shanghai”,“2”,“10:00”,“13:00”,20,20},{“harbin”,“beijing”,“3”,“13:30”,“10:00”,50,50},{“harbin”,“guangzhou”,“4”,“17:00”,“21:00”,50,50},{“harbin”,“dalian”,“5”,“14:00”,“17:00”,40,40} }; start=air; while(1) { system(“cls”); switch(menu_select()) { case 1: list(); break; case 2: search(); break; case 3: order(); break; case 4: returnticket(); break; case 5: exit(0); } getch(); } } 经验体会 1、通过设计飞机订票系统,加深了对链表的运用和理解。 2、通过多组测试数据,发现了程序的问题,并做了调整、3、通过设计选择菜单,对选择结构有更深刻的了解。 飞机订票系统 1.概述(设计题目与可行性分析) 1.1设计题目:飞机订票系统 1.2可行性分析 飞机订票系统是为机场工作人员和客户提供订票退票等与机票相关内容的管理系统,方便机场工作人员对机票的管理,以提高机场工作人员对机票管理工作的效率。当前飞机订票问题:手工订票所产生的客座率低。而我们的目标是:建立一个飞机订票系统数据库。 1.2.1研究现有系统,画现有系统的流程图 了解当前系统能够完成的功能及组成 航班管理:票据管理 售票点:直接面向用户 航班管理 票据管理 票库 订票库 订票管理 出售管理 打印机票 售票点1 售票点n 现有系统:票据都分布在各个售票点 1.2.2导出新系统的高层逻辑结构 数据流图的基本符号: 数据源/终点(人机界面): 加工处理: 文件名 文件: 数据流名 数据流: 票价信息 机票 查订票号 订票处理 客户信息 出票处理 订票记录 顾客 订票信息 订票号 库存信息 票价信息 票价管理 航班管理 航班信息 操作员 航班信息 保存 新系统的数据流图: 说明:流向文件的数据流的名可以省略 1.2.3可行性分析报告 随着Internet的迅速发展和用户数量的急剧增加,互联网对于企业和事业单位的运营和发展日益重要,网上交易也逐渐被人们认可,并成为未来交易的发展方向。在这种情况下,很多原有的C/S模式的系统也逐步向B/S模式靠拢,飞机订票系统也不例外。 飞机订票系统是飞机旅游服务信息系统的一个重要组成部分。为旅客提供优质便捷的服务,为了提高飞机客运的售票效率,丰富飞机客运的营销手段,飞机售票总站的下属代售点可以通过公用的互联网资源,建立数据库,实现网上的售票,查询及管理工作。 2.系统目标和设计原则 2.1系统目标: 建立一个飞机订票系统数据库。 2.1.1系统简介: 本系统是专为乘坐飞机的旅客准备的,旅客只需把自己的信息(姓名.性别.工作单位.身份证号.旅行时间.旅行目的地)预先交给旅行社,旅行社就可以将信息输入本系统,系统就可以为旅客安排航班,打印出取票通知和帐单。旅客只要在飞机起飞的前一天凭取票通知单和帐单交款取单,系统校对无误即印出机票给旅客。 2.2设计原则 2.2.1根据实际情况考虑三种可行性 技术可行性、经济可行性、操作可行性 2.2.2提出侯选方案、提出各种各样的实现方案 主机(纯主机型、C/S型)、开发环境、网络方案、对提出的每个方案进行成本估计 硬件、软件费用投资(根据各公司的报价)开发成本估计(任务估算法) 运行费用、投资回收期 纯收入:通过本系统的运行、投资回收后的收入 3、描述推荐理由:分别从技术、经济、用户、投资方的不同角度考虑 3.支撑环境规划 3.1整体系统运作图 3.2运行环境 服务器:硬件配置:CPU Intel P4 1.2G以上 内存256 硬盘 80G以上 软件配置:Windows 2000/2003 SERVER SQL SERVER 2000 4.系统功能结构 1、录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定) 2、查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);可以输入起飞抵达城市,查询飞机航班情况; 3、订票:(订票情况可以存在一个数据文件中,结构自己设定)可以订票,如果该航班已经无票,可以提供相关可选择航班; 4、退票:可退票,退票后修改相关数据文件; 客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。 5、修改航班信息:当航班信息改变可以修改航班数据文件。 5.数据库设计 5.1概念结构设计 E-R图如下: 5.2逻辑结构设计 1.航空公司表:AIRLINE 2.客户表CUSTOMER 3、飞机表PLANE 4.航线表LINE 5.航班表FLIGHT 6.订票表BOOKTICKET 5.3实现设计 实现以下操作: 1、注册航空公司: 2、增加飞机: 3、增加航线: 4、增加航班: 5、增加客户: 6、建立一个订票的存储过程,存储过程名为Book_Ticket,请完成以下存储过程,实现订票的操作: a)指定要订的航班号(HID)及客户的编号(KID); b)先查看客户是否为特殊客户,如果不是,票价不打折扣; c)否则如果客户航程超过5万公里,票价7折,超过15万公里,票价打5折; d)查看客户订票以后,所有乘客的票数是否超过总的座位数,如果超过,回滚订票操作; e)要求在操作过程中使用到事务技术。 CREATE PROCEDURE Book_ticket @HID VARCHAR(20) @HID VARCHAR(20) AS DECLARE @TRANS_NAME VARCHAR(20)select @TRANS_NAME=’ ’ BEGIN TRANSACTION DECLARE @Bookid int,@seats int,@IsSpec char(1)/*定义订票里程DIST、折扣率discount、总的订票里程distance、票价PRICE(实型)*/ select @Isspec=Isspec,@distance=Points FROM Customer where select @discount=1 IF @ BEGIN END /*选择出票价*/ SELECT @PRICE=PRICE FROM FLIGHT WHERE /*加入客户订票信息*/ /*将客户新订票里程的信息累计到用户信息里面*/ UPDATE SET WHERE /*查看客户订票后,是否超过可容纳的座位数目,如果超过,取消所有操作*/ SELECT booked=count(*)FROM WHERE FID= /*查看额定座位容量*/ SELECT @seats=seatsnum FROM WHERE IF @BOOKED>@SEATS ELSE COMMIT TRANSACTION GO 7.运行这个订票操作的存储过程(自己设定客户及航班) book_ticket , 8.事务运行成功后,再显示各表的数据,按表分别写出来。 6.总体实施计划 6.1可行性研究: 研究现有系统,画现有系统的流程图,编写可行性分析报告 6.2进行数据库设计: 概念结构设计,逻辑结构设计,实现设计 6.3概要设计: 从数据流图导出初始结构图,设计优化 6.4详细设计: 结构化的程序设计,采用流程图的形式 6.5保密设计 1.每个用户需要注册才能进入航空订票信息系统,并进行网上订票的。用户必须 用自己真实的身份进行注册。 2.系统要另外在备一份数据库,防止系统出现错误而使数据信息丢失的可能性。 3.系统要安装防火墙,防止黑客入侵破坏系统。还有就是安装杀毒软件,防止 病毒入侵而导致系统瘫痪。 6.6维护设计 系统设置提供管理员操作页面: 1.提供管理员密码,方便维护操作.2.固定时间对系统进行维护和检测.3.若系统出现瘫痪时,可出动备用系统维持运转.4.定期对系统进行更新整顿清空.7.总结 这次数据库课程设计的“飞机订票系统”,通过近一周的上机操作,充分应用了所学的数据库的知识,并去图书馆查阅了一些书集和上网搜索一部分相当资料,粗略设计出该系统。总体上来说,这次课程设计还是比较成功的,充分运用了所学的软件工程设计、数据库的设计,设计出E-R图、流程图、数据库基本表,从整体规划出了系统的运行环境和系统实现的功能。 当然,由于学艺不精,在课程设计的过程也碰到的一些问题。其中,画E-R图时,各实体中的关系的确定,由于对系统还不够了解而找不到一个准确的词来形容;总体规划时,材料太多,不易整理;相关数据库技术方面没有多注意,这次课程设计的重点只在对整个系统的总体思路设计。 其实这些通过最近的课程设计觉得最重要一点就是:我们一定要自己动手,这样才能真正的学到东西。书本知识固然重要,但我们更要学会将书本知识应用到实际的工作中。实践中才会发现错误,也才能改进,才能达到学习的最终目的。 最后感谢在这次课程设计中帮助过我的老师,同学!8.参考文献 物流信息系统 赵刚 四川大学人民出版社 2002/9 物流信息管理 尹涛 东北财经大学出版社 2005/1 数据库系统概论 王珊 萨师煊 高等教育出版社 2006/5 数据库技术与应用-Access2000篇 郭力平人民邮电出版社 2002/8 软件设计师教程 陈平禇华 清华大学出版社 2006/6 文章引用自: 飞机订票系统 —项目风险评估报告 本文档的范围和目的 本文主要针对飞机订票系统软件开发涉及到的风险,包括在软件开发周期过程中可能出现的风险以及软件实施过程中外部环境的变化可能引起的风险等进行评估。在文中对所提到的风险都一一做了详细的分析,并提出了相应的风险回避措施。主要风险综述 任何软件的开发,其主要风险均来自于两个方面,一是软件管理,二是软件体系结构。软件产品的开发是工程技术与个人创作的有机结合。软件开发是人的集体智慧按照工程化的思想进行发挥的过程。软件管理是保证软件开发工程化的手段。软件体系结构的合理程度是取决于集体智慧发挥的程度和经验的运用。 1、软件是否能够按工期的要求完成:时间定为2个月,能按期完成。 2、软件需求的调研是否深入透彻:软件的需求的调研花了一个月,已了解大致的需求。 3、软件的实现技术手段是否能够同时满足性能要求:由于是第一次,所以难免会有一些不足,但会尽力去客服。 4、软件的可伸缩性:预设计为满足未来3-5年的需要。 5、软件的可维护性:软件的维护也是必然的事情,为了保证软件的较长使用寿命,软件就必须适应不断的业务需求变化,根据业务需求的变化对软件进行修改,软件代码无需修改,仅仅是在系统提供的配置文件中进行适当的修改,然后软件重新加载进入运行状态,就完成了系统部分功能和性能要求的变化。对于重大改动,需要打开源代码进行修改的,也仅仅是先继承原先的代码,然后用新的功能接替原先的调用接口,这样将把软件改动量减小到最低。 项目管理的风险 一般参与软件开发的人员和其责任如下: 由于软件开发小组共有5人,项目经理1人 主要职责:进行全局把握 制定项目开发计划和开发策略,参与项目核心系统的分析设计,同时努力保证开发计划的按时完成和开发策略的真正贯彻落实。 其他4人 主要职责:进行软件系统的分析和设计工作,书写软件需求分析和系统设计相关文档,进行详细设计,和软件系统的代码实现,并进行适当的白盒测试。 软件技术风险 本系统拟订采用的两个重大的软件技术是面向对象的构件和基于微软的COM组件技术。组件和构件技术都是为了提高软件的可靠性和软件的可扩展性而采用的技术手段。从技术成熟度上说不存在风险,但为了实现良好的软件构架和稳定的组件,与传统开发方法比较,有相当的多的额外工作需要做,这会给项目工期带来较大的风险。 回避和控制这部分风险的办法是在项目进行的过程不断的对该阶段进行风险估计和指定有效的里程碑。同时采用“范例”方式提高开发人员的构件组件的分析识别能力,适时调整构件组件的数量和粒度。 软件需求阶段的风险 软件的开发是以用户的需求开始,以书面的形式形成《用户需求》这一重要的文档。需求分析更多的是开发方确认需求的可行性和一致性的过程,在此阶段需要和用户进行广泛的交流和确认。需求和需求分析的任何疏漏造成的损失会在软件系统的后续阶段被一级一级地放大,因此本阶段的风险最大。 设计阶段的风险 设计的主要目的在于软件的功能正确的反映了需求。可见需求的不完整和对需求分析的不完整和错误,在设计阶段被成倍地放大。设计阶段的主要任务是完成系统体系结构的定义,使之能够完 成需求阶段的即定目标;另一方面也是检验需求的一致性和需求分析的完整性和正确性。 设计本身的风险主要来自于系统分析人员。分析人员在设计系统结构时过于定制,系统的可扩展性较弱,会给后期维护带来巨大的负担,和维护成本的激增。对用户来说系统的使用比例会有明显的折扣,甚至造成软件寿命过短。反之,软件结构的过于灵活和通用,必然引起软件实现的难度增加,系统的复杂度会上升,这又会在实现和测试阶段带来风险,系统的稳定性也会受到影响。 设计阶段蕴涵的另一种风险来自于设计文档。文档的不健全不仅会造成实现阶段的困难,更会在后期的测试和维护造成灾难性的后果,所以我们会在整个设计过程中对文档的编写非常重视。 实现阶段引入的风险 软件的实现从某种意义上讲是软件代码的生产。原代码本身也是文档的一部分,同时它又是将来运行于计算机系统之上的实体。源代码书写的规范性,可读性是该阶段的主要风险来源。规范的代码生产会把属于程序员自身个性风格的成分引入代码的比例降到最低限度,从而减小了系统整合的风险。 概要设计说明书 1. 引言 1.1 编写目的 在人事管理系统项目的前一阶段,也就是需求分析阶段中,已经将系统用户对本系统的需求做了详细的阐述,本阶段已在系统的需求分析的基础上,该文档的目的是描述企业人事管理系统项目的概要设计,其内容包括: 系统功能简介 系统结构设计 系统接口设计 数据设计 模块设计 界面设计 本文档的预期的读者是: XX有限公司的领导 技术人员 XX有限公司的领导 相关项目组的所有成员 1.2 项目背景 国外企业关于人事信息的管理,主要是利用人力资源方面管理系统来实现的因为这类系统同IT、通信等领域技术的发展存在密切的联系,因此在计算机、网络等技术发展相对快的国家,基本上创建了一套人力资源管理系统,人力资源方面的信息能够在其本国范围内被授权查阅。无论人才流动到哪里,在人们进行求职、贷款以及办理保险之时,具备查阅权限的机构都能够查阅该人的信息,以衡量为该人办理有关手续的潜在风险,或者是否可以录用。 1.3 定义 1.3.1 专门术语 C/S:Client/Server客户机/服务器。 可修改性:容许对系统进行修改而不增加原系统的复杂性。 有效性:软件系统能有效地利用计算机的时间资源与空间资源的能力。 可适应性:软件在不同的系统约束条件下使用户需求得到满足的难易程度。可移植性:软件从一个计算机系统或环境搬到另一个计算机系统或环境的难易程度。主键:数据库表中的关键域。 1.3.2 缩写 系统:若未特别指出,统指本机票预定系统。 SQL: Structured Query Language(结构化查询语言)。ATM: Asynchronous Transfer Mode(异步传输模式)。 1.4 参考资料 以下列出在概要设计过程中所使用到的有关资料: [1]韩万江 《软件工程案例教程》机械工业出版社 [2]李金勇 曹军生,《SQL sever 2000实用教程》,北京理工大学出版社 [3]林邓伟 等,《JAVA程序设计项目教程》,北京理工大学出版社 [4]孙峰,《数据库原理及应用》。天津大学出版社 [5]软件工程文档编制国际标准:GB8567—88 2. 总体设计 2.1 需求规定 数据库分析是数据库管理系统开发周期中的一个重要的阶段,也是工作量比较大的一 项活动。随着现代软件的发展,手工分析方式已经很难满足数据库管理系统数据库分析的要 求,必须借助相应的工具。 设计数据库系统时应首先充分了解用户各个方面的需求,包括现有的以及将来可能增 加的需求。用户需求具体体现在各种信息的提供、保存、更新和查询,这就要求数据库结构 能充分满足各种信息的输入和输出。通过对书店管理工作过程的内容和数据流程分析,设计 数据项和数据结构。 通过与企业的沟通和需求分析,要求系统具有以下功能。1.新员工资料的添加、修改、删除和查询。2.部门信息的添加、修改、删除和查询。3.自动分配员工编号和部门编号。 4.人事调动的详细记录,包括部门、职位和职称的调整,以及人员离职。 5.添加/修改日常出勤记录,这里重点实现可按全体员工、部门员工和所选员工添加/修改 日常出勤记录,以方便用户操作。员工日常公出/请假信息的添加、修改、删除和查询。每月工资信息的批量添加、修改、删除和查询。 2.2 运行环境 2.2.1 设备 1.Web服务器1台 2.数据库服务器1台 3.备份服务器1台 4.开发服务器1台 5.软件防火墙服务器1台 6.千兆路由器1台 7. 10M网络宽带1条 2.2.2 软件环境 本系统的的软件环境如下 1.My Eclipese 10开发工具 2.SQL Server2008数据库系统 3.Windows xp操作系统;4.防火墙,杀毒软件 2.3 基本设计概念和处理流程 概念模型是对信息世界的建模,所以概念模型应该能够方便、准确的表示出信息世界 中的常用概念。实体--关系模型(Entity-Relationship Module,简称E-R图)是数据库结构设计常用的方法。得到了数据项和数据结构以后,就可以设计出能够满足用户需求的各种实体以及它们之间的关系,为后面逻辑结构设计打下基础。这些实体包含各种具体信息,通过相互之间的作用形成数据的流动。根据需求分析和功能分析,规划出本系统中使用的数据库实体分别为员工实体,部门实体,工资实体,出勤实体,公出请假实体,人事调动实体,福利实体,员工离职实体等员工实体包括ID、编号、姓名、性别、身份证号、出生年月、年龄、民族、婚姻状况、政治面貌、如党团时间、籍贯、联系电话和手机号码等属性。员工实体E-R图如图2.1所示: 部门实体包括部门编号、部门名称、部门经理、部门地址和部门电话属性。 部门实体E-R图如图2.2所示:。 公出实体包括ID、所属工资月份、员工编号、员工姓名、基本工资、加班费、工龄工 资、全勤奖、奖励总额、职务津贴、请假扣除等属性。工资实体E-R图如图2.3所示: 2.4 结构 本系统的实现采用典型的三层模式、B/S结构来实现,不同的客户端程序共同访问中心数据库,系统结构如图1: 图1:系统结构 系统基本功能图解体系基本结构图 2.5功能需求与系统模块的关系 各项功能需求的实现同各个块程序的分配关系: 2.5.1登录页面 需要登陆的人员,对于不同的身份,他们的权限是不一样 的。当用户输入ID 和密码时,查询数据库,若用户名和密 码正确,则进入相应的员工信息页面,若不正确,则提示用户名或密码错误,人显示当前页面。 功能描述: 用户管理 配置管理 数据备份 数据维护 1.2.3.4.2.5.2员工注册 功能描述: 新员工注册,输入员工的注册信息,包括(登录账号,登录密码,核对密码,联系电话,联系地址,电子邮箱)。 注册信息的修改。 用例图 2.5.3员工的登录和登出 功能描述: 员工登陆 员工退出 用例图: 2.5.4信息查询 功能描述: 查看公司内部相关信息 查看个人信息 查看其他员工的部分信息 用例图 2.5.5人事档案 1增加员工档案信息 2修改员工档案信息 3删除员工档案信息 4查询员工档案信息 5打印员工档案信息 用例图 2.5.6工资信息管理 功能描述: 1.工资信息模块 2.计发工资信息 3.查询工资信息 4.保险/福利 5.打印工资信息 用例图 2.5.7员工培训 功能描述: 1.员工培训模块主要包括: 2.培训信息的录入 3.培训信息的删除 4.培训信息的修改 5.培训信息的查询 6.履历表的打印 用例图 2.5.8公司招聘 功能描述: 1.录入招聘信息 2.查询招聘信息 3.修改招聘信息 4.删除招聘信息 5.查询应聘者信息 6.删除应聘者信息 用例图 2.6 人工处理工程 创建用户(注册新用户):用户信息需要手工输入计算机。更新部门、员工资料:需要手动输入更新内容。 2.7 尚未解决的问题 由于数据的传输上需要通过网络传输,为了客户资料进行保密,需要在网络的传输过程中对数据进行加密。 这个工作主要是在准备网络包,及解开网络包这两个模块完成,它们各对数据进行加密及解密还原工作。 在加密算法选择上将使用RSA 加密算法。具体算法可参照参考资料中《Computer Network》p.598。 3.接口设计 3.1用户接口设计 3.2外部接口 3.3内部接口 4.运行设计 4.1运行模块组合 施加不同的外界运行控制时所引起的各种不同的运行模块组合如下表所示: 4.2运行控制 5.系统数据结构设计 5.1逻辑结构设计要点 根据设计好的E-R图在企业人事管理系统中创建各表。 员工信息表用于储存员工基本信息和单位相关信息,改数据表结构如表2.1所示: 部门表用于存储部门编号、部门名称等信息,该数据表结构如表2.2所示。 工资表用于存储每月每个员工的详细工资信息该数据表结构如表2.3所示。 6.系统出错处理设计 6.1出错信息 程序在运行时主要会出现两种错误: 1、由于输入信息,或无法满足要求时产生的错误,称为软错误。 2、由于其他问题,如网络传输超时等,产生的问题,称为硬错误。 对于软错误,须在定票/领票操作成功判断及输入数据验证模块由数据进行数据分析,判断错误类型,再生成相应的错误提示语句,送到输出模块中。 对与硬错误,可在出错的相应模块中输出简单的出错语句,并将程序重置。返回输入阶段。 6.2补救措施 所有的客户机及服务器都必须安装不间断电源以防止停电或电压不稳造成的数据丢失的损失。若真断电时,客户机上将不会有太大的影响,主要是服务器上:在断电后恢复过程可采用 SQL SERVER 的日志文件,对其进行ROLLBACK 处理,对数据进行恢复。 在网络传输方面,可考虑建立一条成本较低的后备网络,以保证当主网络断路时数据的通信。 在硬件方面要选择较可靠、稳定的服务器机种,保证系统运行时的可靠性。 6.3系统维护设计 维护方面主要为对服务器上的数据库数据进行维护。可使用 SQL SERVER 的数据库维护功能机制。例如,定期为数据库进行Backup,维护管理数据库死锁问题和维护数据库内数据的一致性等。第三篇:数据库课程设计+飞机订票系统
第四篇:飞机订票系统风险评估
第五篇:人事管理系统概要设计说明书范文