1第8章信息系统实施1系统实施概述2物理系统的实施3程序设计4软件开发工具5程序和系统调试6人员培训7系统切换、运行第8章小结2信息系统的开发思路系统分析系统设计系统实施详细设计提出要求可行性研究系统评价系统维护验收编程调试系统转换详细调查初步调查逻辑设计开发方案选择审批审查审查总体设计系统规划系统分析系统设计系统实施系统运行和维护41系统实施概述5□系统实施是开发信息系统的第四阶段。□这个阶段的任务:实现系统设计阶段提出的物理模型,按照实施方案完成一个可以实际运行的信息系统软件,并应用到实际管理工作之中。1系统实施概述6构建系统运行平台程序编制代码实现数据准备程序的调试和测试系统转换用户培训系统实施报告系统的物理模型系统实施的流程和主要活动将系统设计的物理平台实际构建起来将系统设计的软件模型,利用选定的计算机语言或者开发工具来实现。即按照编码模型,为每类编码对象的实例,设计相应的编码。准备与录入与新系统相关的基础数据。发现程序中的错误和不完善的地方,并及时加以修改和完善。将调试好的新系统投入运行。培训系统的终端用户和系统维护人员。编写系统实施阶段相关的文档。7与系统分析、系统设计阶段相比较,系统实施阶段的特点是:工作量大,投入的人力、物力多。系统实施的特点8IS物理系统的实施是计算机系统和通信网络系统设备的订购、机房的准备和设备的安装调试等一系列活动。2物理系统的实施92物理系统的实施2.1计算机系统的实施2.2网络系统的实施10(1)计算机品牌选择•国外品牌目前有IBM、HP、SUN、NEC、Dell等;•国内品牌目前有联想、新浪潮、方正等。2.1计算机系统的实施11(2)计算机购置的基本原则•能够满足IS的设计和运行的基本要求•合理的性价比•良好的可扩充性•良好的技术支持12(3)计算机的环境要求•机房要安装双层玻璃门窗,并且要求无尘•硬件通过电缆线连接至电源,防止静电感应•防止由于突然停电造成的事故发生,应安装备用电源设备,如功率足够的不间断电源(UPS)132物理系统的实施2.1计算机系统的实施2.2网络系统的实施14•局域网(LocalAreaNetwork,LAN)通常指一定范围内的网络,可以实现楼宇内部和临近的几座大楼之间的内部联系。•广域网(WideAreaNetwork,WAN)能连接多个城市,国家或大洲。2.2网络系统的实施153程序设计3.1程序设计的目标3.2自顶向下的模块化设计3.3结构化程序设计方法16编程(Coding)就是为系统各个模块编写程序。根据结构化方法设计了详细方案,又有了高级语言,初级程序员都可以参加这一阶段的工作。17程序设计目标BCDA可靠性(Reliability)规范性(Standardability)可读性(Readability)可维护性(Maintainability)3.1程序设计的目标181.可靠性:程序应具有较好的容错能力。□系统的安全可靠性:反映在多个方面,如操作人员的安全可靠问题,系统运行时数据存取的安全可靠问题,进行网络通信时数据信息传递的安全可靠问题。系统的安全可靠性一般都要通过系统分析与设计过程来严格定义。□系统的运行可靠性:只能通过高质量的程序设计、仔细周到的程序调试、详尽严格的系统测试等工作过程来把关。192.规范性□规范性就要求系统的划分、书写的格式、变量的命名等等都有统一的规范要求。□程序设计的规范化,对今后的阅读、修改、维护等都会带来便利。□因而在编程时走规范化的道路是十分必要的。203.可读性□程序设计人员所编写的程序应该是条理清晰,结构清楚,他人易于理解。□要使程序具有可读性,除了结构清晰以外,还需要在程序中插入必要的注释性语句,如说明程序的功能、解释变量的含义、描述特殊处理的细节等等,这将为今后他人阅读该程序、修改程序提供很大的方便。214.可维护性□由于信息系统需求的不确定性,系统需求可能会随着环境的变化而不断变化,因此,就必须对系统功能进行完善和调整,为此,就要对程序进行补充或修改。□此外,由于计算机软硬件的更新换代也需要对程序进行相应的升级。223程序设计3.1程序设计的目标3.2自顶向下的模块化设计3.3结构化程序设计方法23功能结构图中有很多大大小小的模块,先实现那些模块呢?上层模块下层模块…….下层模块执行具体的功能控制性3.2自顶向下的模块化设计24结构化方法主张自顶向下实现,尽量先实现上层模块,逐步向下,最后实现下层最基本的模块。25模块应该具有独立性:在系统中模块之间应尽可能的相互独立,减少模块间的藕合,即信息交叉,以便于将模块作为一个独立子系统开发。模块大小划分要适当:模块中包含的子模块数要合适,既便于模块的单独开发,又便于系统重构。自顶向下模块化程序设计中应注意:26模块功能要简单:底层模块一般应完成一项独立的处理任务。共享的功能模块应集中:对于可供各模块共享的处理功能,应集中在一个上层模块中,供各模块引用。273程序设计3.1程序设计的目标3.2自顶向下的模块化设计3.3结构化程序设计方法28采用顺序结构、循环结构、选择结构三种基本逻辑结构来编写程序的方法。3.3结构化程序设计方法291.顺序结构顺序结构表示含有多个连续的处理步骤,按照书写的先后顺序执行。入口AB出口inti=0;ints=1;s=100+i;302.循环结构循环结构是由一个或几个模块构成,程序运行时重复执行,直到满足某一条件为止。入口PS出口TFinti=1;ints=0;While(i=100){s=s+i;i=i+1;}313.选择结构由某个逻辑表达式的取值决定选择两个处理加工中的一个。PAB入口出口TFinti=1;ints=0;if(i10){s=s+1;}else{s=s+2;}324软件开发工具33□利用软件生成工具进行系统开发可以大量的减少甚至避免手工编写程序,并且避免了手工方式下的编程错误,从而极大的提高了系统开发效率。341.可视化图形界面编程工具□MS可视化开发工具(VB、VC、ASP.net)□JAVA平台□宝兰公司(BorlandDelphi)□PowerBuilder352.计算机辅助软件工程(CASE)□CASE(ComputerAidedSoftwareEngineering)的特点支持系统分析和系统设计(如生成数据流程图、生成功能结构图和各种文档资料等)乃至整个系统生命周期的大型软件环境。□功能:CASE中集成了多种工具,这些工具既可以单独使用,也可以组合使用,为系统开发提供了全过程的开发环境。365程序调试和系统测试5.1程序调试过程5.3测试流程5.2测试方法375.1程序调试过程□人们常常有一种错觉,认为程序编写出来就“万事大吉”。□程序编制完成后,需要对程序进行调试,排除其中的各种错误,如语法错误、逻辑错误等。一般情况下,语法错误比较容易发现,而逻辑错误要查找出来并加以改正就不那么容易,而且逻辑错误一般都需要通过程序测试才能发现。所以程序调试与测试往往是密不可分的。□调试就是为了改正错误,而程序中的错误需要通过测试来查找。38程序调试过程程序的调试一是对错误定位,二是改正所发现的错误。具体的执行步骤是:□从错误的表现形式入手,分析判断,以确定程序中出错的位置;□研究分析相关部分的程序,找出错误的内在原因;□修改代码,以排除这个错误;□重复对修改之处进行测试,以确认修改的结果。39测试用例设计错误现象结果调试分析原因改正错误软件执行软件调试的过程405程序调试和系统测试5.1程序调试过程5.3测试流程5.2测试方法41目前,测试软件有三种手段:正确性证明、静态检查和动态检查,后两种方法都属于实验法。5.2测试方法42利用数学方法证明程序的正确性,该技术还处于初级阶段。1、正确性证明431852年,刚从伦敦大学毕业的哥斯尼在给他的兄弟弗雷赘克的一封信中提出了这样的猜想:在一幅正规地图中。凡是有共同边界的国家,都可以最多只用四种颜色着色,就能把这些国家区别开来。弗雷赘克读了这封信后,就企图用数学方法来证明。但是,他花了许多时间,仍是毫无头绪,他只好去请教他的老师摩尔根。但摩尔根也无法证明这个问题。同时也无法推翻,就把它交给了英国著名的数学家哈密顿。从此,这个问题在一些人中间传来似去,直到1865年哈密顿逝世为止,这个问题还没有得到解决。于是这个问题便以“四色猜想”的名字留在了近代数学史上。四色猜想441878年,著名的英国数学家凯来把“四色猜想”通报给伦敦的数学学会会员,征求解答。数学界顿时活跃起来,很多人挥戈上阵,企图试一试自己的能力。1879年,肯普首先宣布证明了四色定理,接着在1880年,泰特也宣布证明四色定理的问题已经解决,从此就很少有人过问它了。然而还有一个数学家赫伍德,并没有放弃对四色问题的研究,他从少年时代一直到成为白发苍苍的老者,花费了毕生的精力致力于四色研究,前后整整60年。终于在1890年,也就是肯普宣布证明了四色定理的11年之后,赫伍德发表文章,指出了肯普证明中的错误,不过,赫伍德却成功地运用肯普的方法证明了五色定理,即一张地图能用5种颜色正确地染色。45五色定理被证明了。但四色定理却又回到未被证明的四色猜想的地位了,这不仅由于赫伍德推翻了肯普的证明,而且离泰特发表论文66年后的1946年,加拿大数学家托特又举出反例,否定了泰特的证明。肯普的证明,虽然在11年后被推翻了,但是,人们认为他的证明思路有很多可取的地方。因此,数学家,有不少人一直在沿着他的思路,推进着四色问题的证明工作,并且有了新的进展。然而,这些成就所提供的检验办法太复杂了,人们难以实现。就拿1970年有些人的方案来说,用当时的计算机来算也需要连续不断地工作10万小时(即11年以上),才能得出结论,这显然是不可能的。461970年以后,人们千方百计地改进了证明四色猜想的方案,而且计算机及其使用也飞快地进步。1976年6月,美国数学家阿佩尔与哈肯,在美国伊利诺侵入大学的3台不同的电子计算机上,用了1200小时,终于完成了“四色猜想”的证明,从面使“四色猜想”成为了四色定理。“四色定理”本身没有什么突出的理论价值。因此美国数学家的贡献,主要是用电子计算机解决了延续124年之久的纯理论问题。人与机器的合作完全有可能解决那些悬而未决的问题,我们期待着那一日的到来。47人工评审软件的文档或程序,发现其中的错误。手续简单,是一种行之有效的检验手段。(1)代码审查:通过阅读程序发现软件错误和缺陷。(2)静态分析:主要对程序进行控制流分析、数据流分析、接口分析和表达式分析。2、静态测试48即测试,有控制地运行程序,从多种角度观察程序运行时的行为,发现其中的错误。测试只能证明程序有错误,而不可能证明程序没有错误。3、动态测试49(1)黑箱测试不考虑系统内部结构而运行系统,以检查在一定的输入下,系统的输出是否与期望相同。黑箱测试50白箱测试(2)白箱测试不仅要完成前者的内容,还要检查输入的数据是如何通过系统内部设定的结构,达到输出的。51需要说明的是,系统测试只能证明错误存在,不能证明错误不存在。这是因为不可能穷举数据,不可能完全覆盖路径,这样就不能证明系统中不存在错误。525程序调试和系统测试5.1程序调试过程5.3测试流程5.2测试方法53测试是通过一些典型的数据运行(测试用例)来检验系统在各种情况下的正确性的过程。5.3测试流程54单元测试连接测试系统整体测试特殊测试认可测试测试流程55单元测试是测试系统中的每一个低级处理的基本功能,其目标是告诉程序员哪些程序部分需要改正或改进。•程序代码测试•程序功能测试1、单元测试56(1)程序代码测试利用精心挑选的测试数据,使程序和模块中的每一条语句都能得到执行,即能够测试程序中的任一逻辑通路。常用的测试数据有以下几种:1.用正常数据调试。2.用异常数据调试。例如用空数据表参加测试,检查程序能否正常运行。3.用错误数据调试。试验程序对错误的处理能力,包括显示出错信息以及容许修改错误的可能性。57(2)程序功能测试经代码测试正确的程序只是基本上验证了程序逻辑上的正确性,但并不