管理信息系统-第6章__系统实施与维护_第1页
管理信息系统-第6章__系统实施与维护_第2页
管理信息系统-第6章__系统实施与维护_第3页
管理信息系统-第6章__系统实施与维护_第4页
管理信息系统-第6章__系统实施与维护_第5页
已阅读5页,还剩71页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第6章系统实施与维护,第一节系统实施阶段的任务第二节自顶向下的实现方法第三节编程方法第四节系统测试第五节系统的交付使用第六节系统维护,第一节系统实施阶段的任务,一、系统实施阶段的主要活动系统实施是开发信息系统的最后一个阶段。这个阶段的任务,是实现系统设计阶段提出的物理模型,完成一个可以实际运行的信息系统,交付用户使用。系统设计说明书详细规定了系统的结构,规定了各个模块的功能及输入和输出,规定了数据库的物理结构。这是系统实施的出发点。,具体讲,这一阶段的任务包括以下几个方面:1.硬件准备硬件设备包括计算机主机,输入输出设备、存储设备、辅助设备(稳压电源、空调设备等)、通信设备以及机房建设等等。这些设备要购置、安装、调试。这方面的工作要花费大量的人力、物力,持续相当长的时间。,2.软件准备软件设备包括系统软件、数据库管理系统以及一些应用程序。这些软件有些需要购买,有些需要组织人力编写,也需要相当多的人力、物力和时间。编写程序是这一阶段的主要任务之一。3.人员培训人员培训主要指用户的培训,包括主管人员和业务人员。为保证系统调试和运行的顺利进行,应根据他们的基础,提前进行培训,使他们逐步适应和熟悉新的操作方法。有时,改变旧的工作习惯比软件的更换更为困难。,4.数据准备数据的收集、整理、录入是一项既繁琐,劳动量又大的工作。没有一定的基础数据,系统调试就不能很好地进行。一般说来,确定数据库物理模型之后,就应进行数据的整理和录入,这样既分散了工作量,又可以为系统调试提供真实的数据。,表8.1实施阶段的任务之间的关系,二、系统实施阶段的特点系统实施阶段的特点是工作量大,投入的人力、物力多。因此,这一阶段的组织管理工作也很繁重。在我国的信息系统建设中,项目负责人往往一身兼任多种角色。在系统分析阶段,他是系统分析员;在设计阶段,他又是主要设计师;在实施阶段,他又是组织者。,在系统分析阶段,他的主要任务是调查研究,分析问题,与用户一起充分理解用户要求。在系统设计阶段,他的任务是精心设计,提出合理方案。在实施阶段,他的任务是组织协调,督促检查。他要制定逐步实现物理模型的具体计划,协调各方面的任务,检查工作进度和质量,组织全系统的调试,完成旧系统向新系统的转换。,第二节自顶向下的实现方法,系统的实施有许多工作要做。结构图中有大大小小很多模块,先实现哪些模块呢?是先实现上层模块,还是先实现下层模块呢?下层模块执行具体功能,上层模块是控制性的。传统方法是先实现下层模块,实现一部分就调试一部分。这种方法往往造成返工。单个模块调试通过了,系统联调却不一定能通过,原因是模块之间的接口可能有问题。,结构化方法主张自顶向下实现,尽量先实现上层模块,即首先调试整个系统的结构及各模块间的接口,确保系统结构和各模块接口的正确性。然后逐步向下,最后实现下层最基本的模块。,一、例:图8.1是处理领料业务的系统结构图。图中省略了模块间的传递信息。根据自顶向下实现的思想,第一个版本可实现图中虚线以上的模块,即实现1、2、4、9、11、14共六个模块。这些模块直接调用的模块有:3、5、8、10、12、13、15等七个模块。这些模块即是“树桩”。另外四个模块,即模块6、7、16、17暂时没有联系。,图8.1版本划分示例,1.这个例子说明,版本的划分需要考虑以下几个方面:(1)总的原则是先实现控制部分后实现具体执行部分,先上层后下层。尤其是第一个版本具有特别重要的意义,应该让控制流通过尽可能多的模块,以便于测试尽可能多的接口。因此,第一个版本实现的模块大多数是控制模块,也包括少数执行模块(这往往是系统最主要、最经常的业务所必须通过的模块),一些例外情况的处理留待以后实现。这一步是后面各步实现的基础。,(2)每个版本实现多少模块以及实现哪些模块要根据开发力量、设备、培训等方面的情况确定。(3)复杂的模块应分散在几个版本中逐步实现。(4)兼顾功能模块和数据库的实现。(5)兼顾硬件、软件、人员培训方面的情况。,2.与传统的方法相比,这种自顶向下的实现方法的优点:首先,有效地解决了接口问题。其次,这种方法便于对系统的设计方案进行校正,保证系统切实符合用户的要求。另外,这种方法便于控制进度,可保证研制工作按时完成。,第三节编程方法,编程(Coding)就是为各个模块编写程序。这是系统实现阶段的核心工作。在系统开发的各个阶段中,编程是最容易的,也是人们已掌握得较好的一项工作。根据结构化方法设计了详细的方案,又有了高级语言,初级程序员都可以参加这一阶段的工作。当然,程序员的水平决定了程序的水平。,一、好程序的标准1.一般认为好程序应具备下列素质:(1)能够工作;(2)调试代价低;(3)易于维护;(4)易于修改;(5)设计不复杂;(6)效率高。,2.可读性在相当长一个时期内,人们认为程序是用于给机器执行而不是给人阅读的,因而程序员存在严重的低估编程方法、不注意程序风格的倾向。可读性(readability)是70年代提出的新概念,它主张程序应使人们易于阅读,编程的目标是编出逻辑上正确又易于阅读的程序。程序可读性好,自然易于理解、易于维护,并将大大降低隐含错误的可能性,从而提高程序的可靠性。,(1)要使程序的可读性好,程序员应有一定的写作能力。他应能写出结构良好,层次分明、思路清晰的文章。(2)要使程序可读性好,总的要求是使程序简单、清晰。七十年代以来,人们总结了使程序简单、清晰的种种技巧和方法:用结构化方法进行详细设计;程序中包含说明性材料;良好的程序书写格式;良好的编程风格。,二、结构化程序设计结构化程序设计被称为软件发展中的第三个里程碑,其影响比前两个里程碑(子程序、高级语言)更为深远。结构化程序设计的概念和方法,以及支持这些方法的一整套软件工具,构成了“结构化革命”。这是自存储程序计算机问世以来,对计算机界影响最大的一个软件概念。,对于什么是“结构化程序设计”,至今还没有被普遍接受的定义。通常认为结构化程序设计包括以下四个方面的内容:1.限制使用GOTO语句2.逐步求精的设计方法3.自顶向下的设计、编码和调试4.主程序员制的组织形式,作为这种组织形式中的一个程序员,不仅应具备程序设计的基本知识,对项目所在的领域有较深入的了解,熟悉开发的技术环境,而且,更为重要的是必须具备高度的组织纪律性和团队精神,能使自己的工作与整个系统的工作协调一致起来。为此,他必须严格遵守:,(1)不使用可能干扰其他模块的命令或函数;(2)按总体设计的要求传递参数,不随意修改其内容与含义;(3)按统一规定的格式操作公用文件或数据库;(4)按统一的原则使用标识符;(5)按统一要求编写文档;(6)保持程序风格的一致。,三、面向对象的程序设计(OOP)在OOP方法中,一个对象即是一个独立存在的实体,对象有各自的属性和行为,彼此以消息进行通信,对象的属性只能通过自己的行为来改变,实现了数据封装,即对象具有的封装性。相关对象在进行合并分类后,有可能共享某些性质,通过抽象后使多种相关对象表现为一定的组织层次,低层次的对象继承其高层次对象的特性,这就是对象的继承性。另外,对象的某一种操作在不同的条件环境下可以实现不同的处理,产生不同的结果,这就是对象的多态性。,1.对象的三个性质:(1)封装性:一般以类(class)来创建一个对象。类表现为一种数据结构,它对外提供的界面包括一组数据以及操作这些数据的方法(函数或过程),而隐藏了内部实现的细节,对象操作者只需要了解该对象的界面即可。,(2)继承性:类通过继承定义成不同的层次结构,将相关类的特点抽象出来作为父类,子类继承父类的结构和方法后,再定义各自特定的数据和操作,或者还可以通过重载将父类的某些特殊操作进行重新定义。,(3)多态性:类的某些操作允许同一名称具有多种语义。OOPL的这些特点使得程序员在做面向对象程序设计时与做过程式的程序设计时相比有很大的不同,具体体现在以下这些方面:面向对象程序设计采用对象本身的属性与方法来解决问题。在解决问题的过程中,面向对象程序设计可以直接在对象中设计事件处理程序(接收事件消息),而不用调用子过程严格地按顺序执行,可以很方便地让用户实现自由无顺序的操作。,面向对象程序设计中数据与程序不是分离的。面向对象程序设计中不用设计公用程序模块,而只需设计类就可以实现重用,而且类库中提供大量基类,掌握它们后可以加快开发过程。,四、可视化编程技术可视化编程技术的主要思想是用图形工具和可重用部件来交互地编制程序。它把现有的或新建的模块代码封装于标准接口封包中,作为可视化编程编辑工具中的一个对象,用图符来表示和控制。可视化编程技术中的封包可能由某种语言的一个语句、功能模块或数据库程序组成,由此获得的是高度的平台独立性和可移植性。,可视化编程一般是基于事件驱动的原理。用户界面中包含各种类型的可视控制部件,如按钮、列表框和滚动条等,每个可视控制部件对应多个事件和事件驱动程序。发生于可视控制部件上的事件触发对应的事件驱动程序,完成各种操作。编程人员只要在可视化编程工具的帮助下,利用鼠标或菜单建立、复制、缩放、移动或清除各种已提供的控件,然后使用该可视化编程工具提供的语言编写每个控件对应的事件程序,最后用解释方式运行并测试该程序,就能很快地完成一个应用程序的设计。,五、程序的内部文档程序的内部文档,指程序内部带有的说明材料。内部文档可以用注释语句书写。程序适当加注释后,阅读时就不必再看其他说明材料了,因此,这是提高程序可阅读性的有力手段。注释可以出现在程序的任何位置,但要与程序结构配合起来效果才好。并且需要注意以下几点:,需要注意以下几点:(1)注释必须与程序一致,否则它毫无价值,甚至使人感到莫名其妙,所以修改程序时,要注意对注释作相应的修改。(2)注释不是重复程序语句,而是应提供程序本身难以得到的信息。(3)对程序段作注释,而不是对每个语句作注释。,六、编程风格注意使用一些编程的技术,可以提高程序的可读性,举例说明如下。1.简单、直接地反映意图把要说的事情直截了当地说清楚,让人准确地知道你说的事情,不需要过多的想象、分析。,2.变量名、文件名、过程名应规范化理解变量的含义是理解程序逻辑的关键。在一个系统中,涉及的变量、过程、文件很多,编写程序的人也很多。因此,在编写程序之前,应对名字作出统一的规范标准。3.表达式的书写应一气呵成4.合理使用GOTO语句,按照结构化程序设计的原则,程序中可以不用GOTO语句。但是,在某些情况下,使用GOTO语句还是更为直截了当一些。所谓合理使用,主要注意下面三条原则:(1)在一个程序中不要多用GOTO语句。(2)在其他结构形式难以控制程序流向的情况下才使用GOTO语句。(3)不要使GOTO语句相互交叉。,第四节系统测试,一、测试的概念据统计,一个较好的程序员,在他交付的程序中,错误率为1%,而一个水平低的程序员编写的程序,可能每个语句都含有一两个错误。在一个大型的软件系统中,“错误百出”是不必大惊小怪的,这是人类本身能力的局限性。目前,检验软件有三种手段:动态检查、静态检查和正确性证明。,1.程序正确性证明程序正确性证明技术目前还处于初级阶段,近期内还不可能适用于大型系统。设置命题及其证明需要大量的脑力劳动,推导过程冗长,尽管如此,正确性证明仍是一个诱人的课题,对未来的软件可能产生深远影响。,2.静态检查静态检查指人工评审软件文档或程序,发现其中的错误。这种方法手续简单,是一种行之有效的检验手段。评审强调要有局外专家参加,可吸取各家之长。评审是直接检查软件文档,错误的排除也比较容易,也容易发现产生错误的原因。,3.动态检查动态检查就是测试。有控制地运行程序,从多种角度观察程序运行时的行为,发现其中的错误。也就是说,测试是为了发现错误而执行程序。测试只能证明程序有错误,而不可能证明程序没有错误。,图8.2程序流程图,4.测试的目的在于:(1)测试是指“用意在发现错误而执行一个程序的过程”;(2)一个好的测试用例是指这个测试用例有很高的几率可以发现一个尚未发现的错误;(3)一个成功的测试是指它成功地发现了一个尚未发现的错误。,测试的目的是为了发现程序的错误。因此,测试的关键问题是如何设计测试用例,即设计一批测试数据,通过有限的测试用例,在有限的研制时间、研制经费的约束下,尽可能多地发现程序中的错误。二、测试的四种类型:模块测试,联合测试,验收测试,系统测试。,1.模块测试模块测试是对一个模块进行测试,根据模块的功能说明,检验模块是否有错误。这种测试在各模块编程后进行。模块测试一般由编程人员自己进行。模块测试包括以下项目:(1)模块界面:调用时参数(流入数据)的数目、顺序和类型。(2)内部数据结构:如初始值对不对,变量名称是否一致,共用数据是否有误。,(3)独立路径:是否存在不正确的计算,不正确的循环及判断控制。(4)错误处理:预测错误的产生及后处理,看是否和运行时一致。(5)边界条件:对数据大小的界限和判断条件的边界进行跟踪运行。,2.联合测试各个模块单独执行可能无误,但组合起来相互产生影响,可能会出现意想不到的错误。因此要将整个系统作为一个整体进行联调,这就是联合测试。按照前面分“版本”的实现方法,这种测试用来在各个版本实现后完成有关接口的测试。联合测试的方法有两种,即根据模块结构图由上到下或由下到上进行测试。,(1)由上到下:设置下层模块为假模块,检查控制流,可较早发现错误,而不致于影响到下层模块。但这种方法要制作的假模块太多,而且不能送回真实数据,可能发现不了内在的错误。(2)由下到上:先设置上层模块为假模块,测试下层模块执行的正确性,然后逐步向上推移。这种方法方便,设计简单,但要到测试的最后才能窥得全貌,有一定的风险。较好的方法是二者结合:高层由上到下,低层由下到上,到中层进行会合。,3.验收测试验收测试是检验系统说明书的各项功能与性能是否能实现,是否满足要求。验收测试的方法一般是列出一张清单,左边是需求的功能,右边是发现的错误或缺陷。常见的验收测试有所谓的测试和测试,这两种测试都是由用户进行的,但前者是使用者在应用系统开发所在地,有开发者参与,一同进行观察记录;后者是在使用环境中由用户独立进行。,4.系统测试系统测试是对整个系统的测试,将硬件、软件、操作人员看作一个整体,检验它是否有不符合系统说明书的地方。这种测试可以发现系统分析和设计中的错误。,三、测试的原则测试阶段应注意以下一些基本原则:1.测试用例应包括输入数据和预期的输出结果。2.不仅要选用合理的输入数据作为测试用例,而且应选用不合理的输入数据作为测试用例。3.既要检查程序是否完成了它应做的工作,又要检查它是否还做了它不应做的事情。4.测试用例应长期保留,直到这个程序被废弃。,传统的测试方法分为“白箱测试”和“黑箱测试”。白箱测试:根据一个软件部件的内部控制结构,测试它是否依据设计正确地执行。黑箱测试:根据一个软件部件由外部界面所能观察到的功能效果,测试它是否与其他部件正确地沟通,一般指输入正确时,看是否有正确的输出。,四、测试用例设计既然测试工作不可能采用穷举测试方法,那么测试用例的选择就是测试的关键问题。好的测试用例应以尽量少的测试数据发现尽可能多的错误。下面介绍几种测试用例的设计技术。,1.语句覆盖法一般来讲,程序的某次运行并不一定执行其中的所有语句。因此,如果某个含有错误的语句在测试中并没有被执行,那么这个错误便不可能被发现。为了提高发现错误的可能性,应在测试中执行程序中的每一个语句。语句覆盖法就是要选择这样的测试用例,使得程序中的每个语句至少能执行一次。,2.判断覆盖判断覆盖是设计测试用例使程序中的每个判断的取“真”值和取“假”值的每一个分支至少通过一次。3.条件覆盖条件覆盖是指执行足够的测试用例,使得判断中的每个条件获得各种可能的结果。,4.条件组合覆盖设计测试用例时,要使得判断中每个条件的所有可能取值至少出现一次,并且每个判断本身的判定结果也至少出现一次。5.路径覆盖路径覆盖是指设计测试用例,覆盖程序中所有可能的路径。,路径覆盖的测试功能很强,但对于实际问题,如一个不太复杂的程序,其路径数可能相当庞大而不可能完全覆盖。以上这五种测试技术均属于“白箱测试”,下面是“黑箱测试”的例子。我们介绍设计测试用例的另一种技术:边界值测试。,6.边界值测试经验证明,程序往往在处理边缘情况时犯错误,因此检查边缘情况的测试用例效率是比较高的。把边界值的概念扩大,可以设计出种种的测试用例。例如对文件只处理第一个记录、中间一个记录、最后一个记录、不存在的记录等等。下面是一些例子:,1)对新记录(1)在文件第一个记录之前加一个记录;(2)在文件最后一个记录之后加一个记录;(3)插入的新记录对应实体是实际不可能存在的;(4)记录的域不全。2)处理业务(1)处理文件的第一个记录;(2)处理文件的最后一个记录;(3)处理中间的一个记录;(4)处理同一程序刚建立的记录;,(5)连续处理相邻记录;(6)试图处理一个不存在的记录;(7)处理业务使某个数值超过常规(如库存数为负或域值上溢);(8)对某些关键数据输入有错误的数据;(9)同一业务处理过程中造成多重例外和出错。3)记录删除(1)删去文件的第一个记录;(2)删去文件的最后一个记录;(3)试图删去不存在的记录;(4)连续删去多个记录;(5)删去一个记录,并试图处理这个记录。,4)试验逻辑(1)检查所有能产生最大值、最小值、平均值的计算;(2)除式中除数为0;(3)数据域填入最小数或最大数;(4)数据域填入允许值之外的数。5)对报告程序(1)负号是否全打印出来;(2)全9是否打全;(3)全0看高位压缩情况;(4)交叉结算平衡结果是否有报告。,五、排错测试是为了发现程序存在的错误,排错是确定错误的位置和性质,并改正错误。关键是找到错误的具体位置,一旦找到错误所在位置,修正错误相对容易得多。下面一些方法可以帮助确定错误的位置。,1.试探法2.跟踪法3.对分查找法4.归纳法5.演绎法,第五节系统的交付使用,系统的交付使用即系统的转换,包括把旧系统的文件转换成新系统的文件,数据的整理和录入,也包括人员、设备、组织机构的改造和调整,有关资料档案的建立和移交等。系统转换的最后形式是将全部控制权移交给用户单位。系统转换有三种方式,如图8.4所示。,1.直接转换方式这种方式是用新系统直接替换老系统。这种方式的优点是转换简单,费用最省。但是由于新系统还没有承担过正常的工作,可能出现意想不到的情况,因而风险大。实际应用中应有一定的措施,一旦新系统出现问题,老系统能顶替工作。,图8.4系统转换的三种方式,2.试运行方式这种方式类似平行运行方式。在试运行期间,老系统照常运行,新系统承担部分工作,等试运行感到满意时再全面运行新系统,停止老系统的运行。3.逐步转换方式这种方式是用新系统一部分一部分地替代老系统,直到全部代替老系统。这种方式避免了直接转换方式的危险性,但是这种方式接口复杂,必须事先充分考虑。当新、老系统差别太大时,不宜采用这种方式。,第六节系统维护,一、维护的内容1.程序的维护在系统维护阶段,会有一部分程序需要改动。2.数据文件的维护由于业务发生了变化,从而需要建立新文件,或者对现有文件的结构进行修改。,3.代码的维护随环境的变化,旧的代码不能适应新的要求,必须进行改进,制定新的代码或修改旧的代码体系。代码维护的困难主要是新代码的贯彻,因此各个部门要有专人负责代码管理。4.机器、设备的维护包括机器、设备的日常维护与管理。一旦发生小故障,要有专人进行修理,保证系统的正常运行。,图8.5系统维护成本的比例,二、维护的类型1.更正性维护这是指由于发现系统中的错误而引起的维护。工作内容包括诊断问题与改正错误。2.适应性维护这是指

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论