第十四章 数据库应用系统开发Word文档格式.docx
- 文档编号:5768492
- 上传时间:2023-05-05
- 格式:DOCX
- 页数:18
- 大小:260.56KB
第十四章 数据库应用系统开发Word文档格式.docx
《第十四章 数据库应用系统开发Word文档格式.docx》由会员分享,可在线阅读,更多相关《第十四章 数据库应用系统开发Word文档格式.docx(18页珍藏版)》请在冰点文库上搜索。
VisualFoxPro程序设计教程(第二版)
北京邮电大学出版社
刘卫国
2006
数据库系统概论(第三版)
高等教育出版社
王珊,萨师煊
教学目的
及要求
教学目标:
本章主要介绍综合性程序开发的一般方法步骤,通过一个工资管理的实例来学习体验完整的开发流程,通过本章课程学习
要求学生能够达到以下目标:
1.掌握管理信息系统开发的一般方法和步骤。
2.掌握VFP综合性程序开发的过程。
重点难点:
本章的内容属于以前所学内容的综合运用,重点是把握管理信息系统的开发步骤以及使用VFP开发的过程。
解决方法:
首先模拟实际开发过程,提出任务要求,然后再按照软件工程的思想进行需求分析、系统设计、系统开发过程,使学生在实际开发体验中掌握重点和难点部分。
教学方法和手段:
多媒体教学、实例演示、板书
讲授学时:
2学时
注:
表中()选项请打“∨”
[教学目的与要求]
通过本章课程学习
要求学生能够掌握管理信息系统开发的一般方法和步骤,掌握VFP综合性程序开发的过程。
3.
[教学内容]
教学内容主要包括:
管理信息系统开发的一般方法,管理信息系统开发的具体步骤,VFP程序设计开发综合程序的方法和过程。
[教学重点与难点]
管理信息系统的开发步骤以及使用VFP开发的过程。
14.1数据库应用系统的开发步骤
数据库应用系统的开发过程一般包括需求分析、系统初步设计、系统详细设计、编码、调试、系统切换等几个阶段,每阶段应提交相应的文档资料,包括《需求分析报告》、《系统初步设计报告》、《系统详细设计报告》、《系统测试大纲》、《系统测试报告》以及《操作使用说明书》等。
不管所开发的应用系统的复杂程度如何,需求分析、系统设计、编码-调试-修改这一个基本过程是不可缺少的。
1.需求分析
这一阶段的基本任务简单说来有两个,一是摸清现状,二是理清将要开发的目标系统应该具有哪些功能。
具体说来,摸清现状就要做深入细致的调查研究、摸清人们现在完成任务所依据的数据(使用了什么台帐、报表、凭证)及其联系、使用什么规则(上级有什么法律和政策规定、本单位或地方有哪些规定、以及有哪些得到公认的规则等)、对这些数据进行什么样的加工、加工结果以什么形式(报表、工作任务单、台帐、图表等)表现;
理清目标系统的功能就是要明确说明系统将要实现的功能,也就是明确说明目标系统将能够对人们提供哪些支持。
需求分析完成后,应撰写《需求分析报告》并请项目委托单位签字认可,以作为下阶段开发方和委托方共同合作的一个依据。
2.系统设计
在明确了现状与目标后,还不能马上就进入程序设计(编码)的阶段,还要对系统的一些问题进行规划和设计,这些问题包括:
设计工具和系统支撑环境的选择(选择哪种数据库、哪几种开发工具、支撑目标系统运行的软硬件及网络环境等)、怎样组织数据也就是数据库的设计(即设计表的结构、字段约束关系、字段间的约束关系、表间约束关系、表的索引等)、系统界面的设计(菜单、表单等)、系统功能模块的设计、对一些较为复杂的功能,还应该进行算法设计。
这一部分工作完成后,要撰写《系统设计报告》,在《系统设计报告》中,要以表格的形式详细列出目标系统的数据模型、并列出系统功能模块图、系统主要界面图、以及相应的算法说明。
《系统设计报告》既作为系统开发人员的工作指导,也是为了使项目委托方及早(在系统尚未开发出来时)认识目标系统,从而及早的发现问题,减少或防止项目委托方与项目开发方因对问题认识上的差别而导致的返工(这种情况在实际工作中是经常出现的)。
同样,《系统设计报告》也需得到项目委托方的签字认可。
3.系统实现(编码、调试)
这一阶段的工作任务比较明确了,就是依据前两个阶段的工作,具体建立数据库和数据表,定义各种约束,并录入部分数据;
具体设计系统菜单、系统表单、定义表单上的各种控制对象、编写对象对不同事件的响应代码、编写报表和查询等。
4.测试
测试阶段的任务就是验证系统设计与实现阶段中所完成的功能能否稳定准确地运行、这些功能是否全面地覆盖并正确地完成了委托方的需求,从而确认系统是否可以交付运行。
测试工作一般由项目委托方或由项目委托方指定第三方进行。
在系统实现阶段,一般说来设计人员会进行一些测试工作,但这是由设计人员自己进行的一种局部的验证工作,重点是检测程序有无逻辑错误,与前面所讲的系统测试在测试目的、方法及全面性来讲还是有很大的差别的。
为使测试阶段顺利进行,测试前应编写一份《测试大纲》,详细描述每一个测试模块的测试目的、测试用例、测试环境、步骤、测试后所应该出现的结果。
对一个模块可安排多个测试用例,以能较全面完整地反映实际情况。
测试过程中应进行详细记录,测试完成后要撰写《系统测试报告》,对应用系统的功能完整性、稳定性、正确性以及使用是否方便等方面给出评价。
5.系统交付
这一阶段的工作主要有两个方面,一是全部文档的整理交付,二是对所完成的软件(数据、程序等)打包并形成发行版本,使用户在满足系统所要求的支撑环境的任一台计算机上按照安装说明就可以安装运行。
本章以一个公司的工资管理系统为例,来说明一个数据库应用系统的基本开发过程。
系统设计要求是:
(1)能适应公司不同的员工工资计算与考核方法。
(2)能自动生成并打印员工个人工资单和公司工资发放汇总表。
(3)工资数据要求保存5年时间,并随时能够查询5年内的工资历史数据。
14.2系统需求分析
14.2.1系统调查
项目开发组在接受任务后去该公司的相应职能部门进行调查后发现,该公司的员工实行了3种不同的薪金体制:
(1)公司董事会成员和经理层的高级管理人员实行年薪制,其年薪额度由上年末的股东大会确定,每个月发放年薪的1/15(此比例可调),余下的的3/15由年末的股东会议讨论,有一定比例的浮动。
(2)其他管理人员、销售人员和技术开发人员的月薪由基本工资和考核工资两部分组成,其中基本工资又由岗位工资(由每人所在岗位决定)和工龄工资(由每人的社会工龄和公司工龄决定)两部分组成。
这一部分的基本工资本分由公司的人事部门管理,基本稳定,但也有不定期的修改;
考核工资由每人的上级决定,每个月都可能有修改。
(3)工人实行基本工资加计件计质工资制度。
基本工资和管理人员工资的含义相同,由公司人事部门负责管理。
计件计质工资就是在考虑工人所完成的产品质量等级的前提下,按其所完成的产品数量计算薪金、这一部分由公司生产部门和质量检查部门共同负责考核决定,生产部门统计每个工人所完成的产品数量,质量检查部门评定质量等级。
14.2.2系统功能需求
工资体制以及与某种工资体制相对应的工资计算是一项政策性很强的工作,搞得好就能调动公司各级员工的积极性,搞得不好就可能引起各种矛盾,挫伤员工的积极性。
该系统项目开发设计组在与公司协商后制定了一个确定系统需求的原则:
对各种考核数据(包括股东会议对公司高层领导的考核数据、公司高层及中层干部对下属的工资考核数据以及对工人的计时计质考核数据)在本系统中只管使用,不对这些数据的制定进行支持。
制定这样的原则也是合理的,按照系统划分的一般做法,上述的考核应归于人事管理的范畴。
对应这样的原则做出的系统功能需求如下:
(1)能对应3种不同工资制度编制相应的员工工资发放表,并要求对工资计算方法具有一定弹性,即用户可以根据公司决定调整几个工资计算参数。
(2)自动编制公司工资汇总表。
(3)能按月保存工资发放数据。
(4)操作方便、界面友好。
14.2.3系统数据需求
根据上述分析,系统应至少包含如下数据:
(1)员工工资发放明细表:
用来存储并计算公司全体员工的当月工资应发部分及代扣部分,从而计算每人当月实发工资额。
(2)员工工资发放台帐表:
根据财务规定,有关财务的数据要保留3年备查,该数据表用一个统一的形式存储公司前3年工资发放数据。
(3)第三类员工工资考核统计表。
(4)第二类员工工资考核统计表。
(5)第一类员工工资考核统计表。
(6)3类员工工资考核台帐表。
14.3系统设计
14.3.1系统功能模块设计
1.系统参数设置
这个模块是为满足功能需求的第一条而设置的。
拟设置的参数包括:
实行第三类工资制度的员工A、B两类不同质量的工时单价、实行第二种工资制度的员工每个系数应发放的工资等、实行年薪的员工每月预发比例。
这一部分功能拟设置一个数据表存储相应的计算参数,并设置一个功能模块维护与管理这些参数,每次计算工资时,由相应的工资计算模块访问该数据表以获得计算参数的值。
2.各种工资考核数据的处理
员工的考核是由不同部门的不同人员完成的,而公司员工的工资一般全部由财务部门计算。
所以工资会计需要将各种考核数据连接到每个员工的工资表中,该模块就完成这项工作。
根据前面的功能需求分析,这一部分的功能主要有3个:
数据录入、数据连接和数据的备份存储。
对应3种实行不同工资体制的人员,设计了3个结构功能大体相同的表单来完成这些功能,详细设计情况在界面设计部分进行说明。
3.工资报表编制汇总与打印
这里只要根据前面形成的数据编写一个报表应用就可以了,实现比较简单,不再详述。
4.月工资数据的备份存储
14.3.2系统菜单设计
1.系统模块图
整个工资管理系统由4个基本模块构成,为方便实现,有3个基本模块又分解成更简单、功能更单一的模块,这里8个模块都比较容易用一个表单予以实现,后面有关于其中几个典型表单的实现过程说明。
2.系统菜单设计
有了上面的模块图后,设计相应的菜单。
14.3.3数据库设计
进行数据库设计的依据有3个:
第一当然是在进行系统调查时由项目委托方所提供的各种凭证、报表和数据台帐;
第二是功能设计结果;
第三是数据库设计规范化理论。
三者间的关系是:
原始数据(凭证、报表、台帐)是素材,是提炼数据库设计的基础,而功能设计为素材选择提供了一个参考标准,只把为满足功能设计要求所需要的数据提炼为系统数据库,而把那些在实现系统功能时不需要的数据暂时放开,做到集中精力解决主要矛盾。
有了设计素材和选择标准后,还需要根据数据库设计的规范化理论设计数据表及其字段,以保证在为系统功能提供足够的信息量的前提下数据组织更加科学合理,更便于数据的维护与查询。
1.数据库设计的基本技术与工具
(1)E-R图简介
E-R图是用一种直观的图形方式建立现实世界中实体及其联系模型的工具,也是设计数据库的一种基本工具。
这种图用矩形框表示现实世界中的实体,用椭圆型框表示实体的属性,用菱形框描述实体间的联系。
(2)E-R图到关系模型的转化方法
一般用一个关系转化一个实体,E-R图中的椭圆型框作为关系的属性,并在一个主属性(能够区分一个实体类中的两个不同实体的属性称为主属性,如学生的学号,班级的班号就是主属性)字段上建立索引。
要描述两种实体间的联系,应该再增加一个对方主属性的字段,通常把这个增加的字段称为外键,如在学生表中,除设置学号、姓名、民族、年龄等4个字段外,再增加一个班号字段以反映学生和班级两种不同实体间的联系。
这样,学生表中的一个记录(1005,张其兵,汉,22,005)就能够清楚的反映张其兵是第5班的学生,并能顺着005这个线索在班级表中找到该班的其他情况,如该班所属系、专业等等。
(3)数据规范
数据规范是一个大问题,需要进行专门的研究,简单地说,数据规范就是为了保证所建立的数据表不出现数据冗余,不出现数据插入异常和删除异常而提出的一些标准。
数据规范分成几种不同的层次,分别称为一到三范式。
这里只介绍第一和第二范式,一般情况下应保证自己建立的数据表符合这两个范式。
第一范式:
一个表的每个字段应该是基本的。
这是表设计的最基本要求,不能把两种属性作为一个字段。
如职工的应发工资由基本工资和考核工资两部分组成,在设计表时,就不能把构成应发工资的基本工资和考核工资两部分数据放在同一个字段中,而应该分别设置基本工资和考核工资两个字段。
第二范式:
表中的非主属性字段间不应该存在依赖关系,也就是说,表中的每个字段都描述了本实体的一个独立属性,对其它一个或几个非主字段都没有依赖关系。
还是用工资表来说明这点,当表中设置了基本工资和考核工资字段后,因为应发工资可以由基本工资和考核工资简单相加而得到,所以工资表中就不应该再设置应发工资这样一个字段,否则就不符合第二范式。
此外如果在学生表中既设置一个“班号”字段,同时又设置一个“专业”字段也是不符合第二范式的,因为“专业”由“班号”而唯一确定,这种确定关系在“班级”表中已有明确定义,这里在“学生”表中加入一个“专业”字段对于整个系统未提供新的信息量,并且存在着不数据不一致的可能。
范式只是指导数据库设计的一种工具,如果有时增加一个字段确能带来很大的方便,违反规范化的数据表在实际工作中也是存在的。
2.本系统的数据库
利用上面的数据库设计方法,可以设计本系统的数据库。
(1)员工基本信息表(JBXXB)
(2)第一类员工年终考核表(KHB1)
(3)第二类员工月度工资考核汇总表(KHB2)
(4)第三类员工月度工资考核汇总表(KHB3)
(5)系统参数表(XTCSB)
(6)工资发放表(GZFFB)
(7)工资发放汇总表(GZHZB)
(8)工资发放表留存台帐(GZLCTZ)
(9)第一类员工年度考核留存台帐(KHLCTZ1)
(10)第二类员工月度工资考核留存台帐(KHLCTZ2)
(11)第三类员工阅读工资考核留存台帐(KHLCTZ3)
14.4系统的实现
14.4.1各模块界面设计
1.系统启动界面(封面)
封面是一个应用系统的招牌,要尽量做得有特色而不花哨。
封面完成应用系统的登录,当用户输入了正确的用户名和密码后,系统启动应用菜单,进入后续应用,否则,显示登录不成功(如图中右面的小图形),以拒绝非授权用户的使用。
图14-1工资应用系统封面
该封面的制作方法是:
(1)VisualFoxPro中,选择“文件”菜单中的“新建”,指定文件类型为“表单”,然后选择“新建文件”,进入表单设计器窗口。
(2)在新建的表单窗口建立4个标签控件、两个文本控件和1个命令按钮控件。
(3)设置这些控件的属性。
2.员工考核数据录入与处理界面
按照公司制定的3类不同考核办法,在每月计算工资前,需要将每位员工的考核数据录入计算机以计算每人的考核部分工资。
3类员工的该部分程序基本相同。
3.工资发放表计算界面
工资发放表计算是在各种数据(人员名单、基本工资、考核数据等)都已准备好的前提下计算每人的应发工资、各种由公司代扣的经费(所得税、养老保险、医疗保险等),最后计算每人实发工资并打印工资发放表。
在这一过程中,没有系统与工资管理员的数据交互行为。
这里设计的界面,只是让工资管理员能通过一个窗口观察到系统的计算过程并能随时检查计算结果。
图14-2第二类员工考核数据录入界面
图14-3第二类员工考核数据界面
14.4.2几个主要程序代码段的实现
1.系统登录过程
系统登录是封面表单的基本功能,作用是为了验证用户身份,防止未授权用户的使用。
下面的程序段运行前需要建立一个用户密码表(yhmm.dbf),有3个字段:
yhmm(yhm,yhmm,sm)
即(用户名、用户密码、说明),系统设计时,应给出一个最初的用户名及用户密码,并设计一个表单对这一个数据表进行专门处理(增加用户、删除用户、修改用户名及密码等。
)这里不讨论这一过程而只讨论怎样应用该数据表来实现用户身份认证工作。
“确认”按钮的代码如下:
USEyhmima
user1=Trim(ThisForm.user.Value)&
&
通过表单的文本框对象
接受用户名与用户密码
pass1=Trim(ThisForm.password.Value)
LOCATEALLFORyhm=user1
IFFOUND()ANDmima=pass1
DOgzjsgl.mpr&
验证通过,启动系统菜单
ELSE
MESSAGEBOX(′用户名或密码错误,请查证后再登录′)
ENDIF
ThisForm.Release
2.Comgrop_gz类的设计
Comgrop_gz是一个子类,其基类是命令按钮组,该命令组包含“加入数据”、“删除”等6个按钮,由其生成了4个对象分别置于“员工基本信息维护”、“第一类员工工资考核数据维护”、“第二类员工工资考核数据维护”、“第三类员工工资考核数据维护”等4个表单中,这也充分反映了面向对象程序设计方法的优点,一次设计,多处使用。
下面列出该类中“加入数据”命令按钮的Click事件响应代码。
其他几个按钮的相应代码请读者根据前面讲述的总体设计思想自行补充并上机调试运行。
SELECT(ThisForm.DataEnvironment.Cursor1.Alias)
kh=Trim(ThisForm.khfl)
IFrecc()=0
AppendFromjbxxbFORfl=kh
GotoTop
=MessageBox(′你已经追加了数据′)
ThisForm.Refresh
3.Comgrop_gzff类的设计
Comgrop_gzff类也是一个基于命令按钮组的子类,包含了“追加工资数据”、“工资计算”、“打印工资表”、“编制汇总表”等6个命令按钮组。
在整个工资计算系统中,该类只应用在“工资发放”一个表单中,因此,仅对于本系统的而言,也可以不专门设计这样一个类而在“工资发放”表单中直接设计一个命令按钮组对象,其设计过程与工作量是大致相同的,但是,这里独立设计的“类”可以供其他应用系统使用,而与某一固定表单捆绑在一起的对象是不能直接供其他应用系统使用的。
下面列出该类中“追加工资数据”和“工资计算”两个命令按钮的Click事件代码:
(1)追加工资数据
IFRECC()>
0
MessageBox(′你本月已追加数据或未清除上月数据,请返回处理′)
SELECT(ThisForm.DataEnvironment.Cursor1.Alias)
APPENDFROMjbxxb&
追加员工基本信息
以下几个语句的作用是把三类不同员工的考核数据追加到当前表中
SELECT5
USEkhb1
UPDATEONbhFROMEREPLACEkhgzWITHe->
khgzRANDOM
SELECT5
USEkhb2
SELECT(ThisForm.DataEnvironment.Cursor1.Alias)
USEkhb3
USE
ThisForm.Refresh
RETURN
(2)工资计算
PUBLICyanglbx1,yilbx1,shyybx1,zhufgjj1,yfbl1&
定义公共变量在不同事件代码中传递信息
USEXTCS&
系统参数表
LOCATEforcsmc=′YANGLBX′&
养老保险比例
yanglbx1=csz
LOCATEforcsmc=′YILBX′&
医疗保险比例
yilbx1=csz
LOCATEFORcsmc=′SHIYBX′&
失业保险比例
shiybx1=csz
LOCATEFORcsmc=′ZHUFGJJ′&
住房公积金比例
zhufgjj1=csz
LOCATEFORcsmc=′YFBL′&
第一类员工每月预发年薪比例
yfbl1=csz
USE&
关闭该文件
SCAN
IFnx>
REPLACEjbgzWITHyfbl1*nx&
计算第一类员工的月薪
ENDIF
REPLACEyfgzwithjbgz+khgz
REPLACEyanglbxwithyfgz*yanglbx1,yilbxwithyfgz*yilbx1,shiybxwithyfgz*shiybx1,zhufgjjwithyfgz*zhufgjj1
DOCASE&
计算所得税,为简单这里未严格按照相应规定
CASEyfgz>
=4000
REPLACEsdsWITH(yfgz-4000)*0.4+600
3000
REPLACEsdsWITH(yfgz-3000)*0.3+300
2000
REPLACEsdsWITH(yfgz-2000)*0.2+100
CASEyfgz>
1000
REPLACEsdsWITH(yfgz-1000)*0.1
ENDCASE
REPLACEkkhjWITHyanglbx+yilbx+shiybx+zhufgjj+sds
REPLACEsfgzWITHyfgz-kkhj
ENDSCANV
GOTOTOP
RETURN
14.4.3应用系统的发布过程
1.发布的意义
一般来说,作为设计者用来进行开发的计算机和作为用户使用的计算机在物理上不会是一套计算机,其配置和设置也不会完全相同。
这就存在一个将整个开发好并经过调试的应用系统从开发者的计算机中拷贝到用户的计算机中去并根据用户计算机调整一些设置的过程。
对于一些小型应用,可以使用一种移动载体(如软盘)将应用所含的几个文件拷贝走就行了,但一般的实际应用系统都是比较复杂的,应用系统所含文件很多,包括数据库文件、表文件、程序文件、表单文件、自定义“类”文件以及引用的系统“基类”文件等等,只要这些文件拉掉一个,或者即使没有拉掉文件而只是文件装载的路径
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第十四章 数据库应用系统开发 第十四 数据库 应用 系统 开发