系统实施与维护.ppt
《系统实施与维护.ppt》由会员分享,可在线阅读,更多相关《系统实施与维护.ppt(115页珍藏版)》请在三一办公上搜索。
1、第8章 系统实施与维护,8.1 系统实施阶段的任务 8.2 自顶向下的实现方法 8.3 编程方法 8.4 系统测试 8.5 系统的交付使用 习题8,8.1 系统实施阶段的任务,8.1.1 系统实施阶段的主要活动 系统实施是开发信息系统的最后一个阶段。这个阶段的任务,是实现系统设计阶段提出的物理模型,完成一个可以实际运行的信息系统,交付用户使用。系统设计说明书详细规定了系统的结构,规定了各个模块的功能及输入和输出,规定了数据库的物理结构。这是系统实施的出发点。,如果说研制信息系统是盖一幢大楼,那么系统分析与设计阶段就是根据盖楼的要求画出各种蓝图,而系统实施阶段则是调集各种人员、设备和材料,在盖楼
2、的现场,根据图纸按实施方案的要求把大楼盖起来。具体讲,这一阶段的任务包括以下几个方面。1.硬件准备 硬件设备包括计算机主机,输入输出设备、存储设备、辅助设备(稳压电源、空调设备等)、通信设备以及机房建设等等。这些设备要购置、安装、调试。这方面的工作要花费大量的人力、物力,持续相当长的时间。,2.软件准备 软件设备包括系统软件、数据库管理系统以及一些应用程序。这些软件有些需要购买,有些需要组织人力编写,也需要相当多的人力、物力和时间。编写程序是这一阶段的主要任务之一。3.人员培训 人员培训主要指用户的培训,包括主管人员和业务人员。系统投入运行后,他们将在系统中工作。这些人多数来自现行系统,精通业
3、务,但往往缺乏计算机知识。为保证系统调试和运行的顺利进行,应根据他们的基础,提前进行培训,使他们逐步适应和熟悉新的操作方法。有时,改变旧的工作习惯比软件的更换更为困难。,4.数据准备 数据的收集、整理、录入是一项既繁琐,劳动量又大的工作。没有一定的基础数据,系统调试就不能很好地进行。一般说来,确定数据库物理模型之后,就应进行数据的整理和录入,这样既分散了工作量,又可以为系统调试提供真实的数据。实践证明,这方面的工作往往容易被人忽视,甚至系统完成后设备只能作为摆设而不能真正运行。这就像建好了工厂,但因缺乏原料而不能投产一样。这类例子虽然不能说是司空见惯,但也不是绝无仅有的。,所以,要特别强调一点
4、,即不能把系统的实现仅仅归结为编程序或买机器。这几方面的任务是相互联系,彼此制约的。它们的关系可概括为表8.1。,表8.1 实施阶段的任务之间的关系,8.1.2 系统实施阶段的特点 与系统分析、系统设计阶段相比,系统实施阶段的特点是工作量大,投入的人力、物力多。因此,这一阶段的组织管理工作也很繁重。对于这样一个多工种多任务的综合项目,合理的调度安排十分重要。在我国的信息系统建设中,项目负责人往往一身兼任多种角色。在系统分析阶段,他是系统分析员;在设计阶段,他又是主要设计师;在实施阶段,他又是组织者。在系统分析阶段,他的主要任务是调查研究,分析问题,与用户一起充分理解用户要求。,在系统设计阶段,
5、他的任务是精心设计,提出合理方案。在实施阶段,他的任务是组织协调,督促检查。他要制定逐步实现物理模型的具体计划,协调各方面的任务,检查工作进度和质量,组织全系统的调试,完成旧系统向新系统的转换。在实际工作中,系统分析员往往是这几个阶段的组织者。作为合格的系统分析员,不仅要有坚实的计算机科学知识,丰富的管理知识和经验,还要有较强的组织能力。,8.2 自顶向下的实现方法,系统的实施有许多工作要做。就程序的编写和数据库的实现而言事情也很多。结构图中有大大小小很多模块,先实现哪些模块呢?是先实现上层模块,还是先实现下层模块呢?下层模块执行具体功能,上层模块是控制性的。传统方法是先实现下层模块,实现一部
6、分就调试一部分。这种方法往往造成返工。单个模块调试通过了,系统联调却不一定能通过,原因是模块之间的接口可能有问题。,结构化方法主张自顶向下实现,尽量先实现上层模块,即首先调试整个系统的结构及各模块间的接口,确保系统结构和各模块接口的正确性。然后逐步向下,最后实现下层最基本的模块。当然,所谓先实现上层模块也不是“一刀切”,即先实现某个层次的所有模块,而是把整个实施方案分成若干个“版本”(version),首先实现系统的轮廓或框架,在此基础上不断添加新的功能,逐步完善,最后达到物理模型所要求的全部功能。在实现上层模块时,与这些模块有直接调用关系的下层模块只作为“树桩”(stub)出现,即只保留它的
7、名字及有关参数传递。这样,虽然这些“树桩”的内部功能还没有实现,但可以测试系统结构的正确性,保证接口的通畅。为了说明如何划分版本,先看一个简单的例子。,图8.1是处理领料业务的系统结构图。图中省略了模块间的传递信息。根据自顶向下实现的思想,第一个版本可实现图中虚线以上的模块,即实现1、2、4、9、11、14共六个模块。这些模块直接调用的模块有:3、5、8、10、12、13、15等七个模块。这些模块即是“树桩”。另外四个模块,即模块6、7、16、17暂时没有联系。,从图8.1可以看出,这个版本实现之后,就可以向用户演示系统的主要功能:录入领料单,打印发料通知。这是用户最关心的业务。实际工作中,这
8、也是经常性的情况,即根据领料单能领到所需要的材料。同时,这一版本的实现,也检验了系统结构的大部分接口。若这些接口的设计有问题,可以尽早发现。,图8.1 版本划分示例,第二个版本可以考虑进一步实现模块5、10、12和15,并建立库存文件,而把模块6、7、16和17作为树桩。也就是在第一版的基础上,实现库存文件的查询与更新。第二个版本实现之后,其余模块与数据库的建立,可以再分两个版本实现。例如作为第三个版本,集中考虑领料文件的建立和更新,为此,可实现模块8和模块13,并把“领料登记”文件建立起来。也可以把其余模块与数据库的建立放在一个版本上,视具体情况而定。这个例子说明,版本的划分需要考虑以下几个
9、方面:,(1)总的原则是先实现控制部分后实现具体执行部分,先上层后下层。尤其是第一个版本具有特别重要的意义,应该让控制流通过尽可能多的模块,以便于测试尽可能多的接口。因此,第一个版本实现的模块大多数是控制模块,也包括少数执行模块(这往往是系统最主要、最经常的业务所必须通过的模块),一些例外情况的处理留待以后实现。这一步是后面各步实现的基础。,(2)每个版本实现多少模块以及实现哪些模块要根据开发力量、设备、培训等方面的情况确定。人多,同时开发的模块可以多些,否则就少一些。一般两、三个月完成一个版本比较合适。时间太短,完成的任务可能太少,用户看不出什么进展。间隔时间太长,与用户交流的机会少,容易偏
10、离用户的需求,用户对项目的进展容易失去信心。(3)复杂的模块应分散在几个版本中逐步实现。(4)兼顾功能模块和数据库的实现。(5)兼顾硬件、软件、人员培训方面的情况。,与传统的方法相比,这种自顶向下的实现方法首先有效地解决了接口问题。接口解决不好,往往不得不对调试过的程序反复修改,甚至推倒重来,造成重大的返工。其次,这种方法便于对系统的设计方案进行校正,保证系统切实符合用户的要求。尽管精心设计的物理模型经过了认真的论证,用户也是同意的,但这毕竟是模型而不是实实在在的系统。因此,真正实现之后还会发现某些细节不完全符合用户的需求或使用习惯。自顶向下的方法有利于发现这些问题,并作某些局部的修改。另外,
11、这种方法便于控制进度,可保证研制工作按时完成。,8.3 编 程 方 法,编程(Coding)就是为各个模块编写程序。这是系统实现阶段的核心工作。在系统开发的各个阶段中,编程是最容易的,也是人们已掌握得较好的一项工作。根据结构化方法设计了详细的方案,又有了高级语言,初级程序员都可以参加这一阶段的工作。当然,程序员的水平决定了程序的水平。,8.3.1 好程序的标准 对于什么是“好程序”,20世纪50年代与现在的观点有很大不同。20世纪50年代的计算机内存小、速度慢,人们往往把程序的长度和执行速度放在很重要的位置,费尽心机地缩短程序长度,减少存储量,提高速度。现在情况有了很大的不同,一般认为好程序应
12、具备下列素质:,(1)能够工作;(2)调试代价低;(3)易于维护;(4)易于修改;(5)设计不复杂;(6)效率高。,第(1)条当然是最基本的。一个根本不能够工作的程序当然谈不上“好”,即使谈执行速度、程序长度等指标也毫无意义。第(2)条调试代价低,是指花在调试上的时间少。这一条是衡量程序好坏,也是衡量程序员水平的一个重要标志。国外有人做过试验,选两个题目,找12个有经验的程序员来编写和调试程序。结果发现最差的与最好的程序员的调试时间之比是28:1。第(3)、(4)、(5)条要求程序可读性强,易于理解。,在相当长一个时期内,人们认为程序是用于给机器执行而不是给人阅读的,因而程序员存在严重的低估编
13、程方法、不注意程序风格的倾向。他们认为可以随意编写程序,只要结果正确就行了。读这种程序像读“天书”。可读性(readability)是70年代提出的新概念,它主张程序应使人们易于阅读,编程的目标是编出逻辑上正确又易于阅读的程序。程序可读性好,自然易于理解、易于维护,并将大大降低隐含错误的可能性,从而提高程序的可靠性。,要使程序的可读性好,程序员应有一定的写作能力。他应能写出结构良好,层次分明、思路清晰的文章。有人说:“对于程序员来说,最重要的不是学习程序设计语言如FORTRAN、PL1等,而是学习英语(日语、汉语)。程序员在写程序时应该记住:程序不仅是给计算机执行的,也是供人阅读的。要使程序可
14、读性好,总的要求是使程序简单、清晰。七十年代以来,人们总结了使程序简单、清晰的种种技巧和方法:,用结构化方法进行详细设计;程序中包含说明性材料;良好的程序书写格式;良好的编程风格。下面分别介绍。,8.3.2 结构化程序设计 结构化程序设计被称为软件发展中的第三个里程碑,其影响比前两个里程碑(子程序、高级语言)更为深远。结构化程序设计的概念和方法,以及支持这些方法的一整套软件工具,构成了“结构化革命”。这是自存储程序计算机问世以来,对计算机界影响最大的一个软件概念。对于什么是“结构化程序设计”,至今还没有被普遍接受的定义。通常认为结构化程序设计包括以下四个方面的内容。,1.限制使用GO TO语句
15、 从理论上讲,只用顺序结构、选择结构、循环结构这三种基本结构就能表达任何一个只有一个入口和一个出口的程序逻辑。为实际使用方便,往往允许程序增加多分支结构、REPEAT型循环等两三种结构。程序中可以完全不用GO TO语句。这种程序易于阅读,易于验证。但在某些情况下,例如要从循环体中跳出,使用GO TO语句描述则更为直截了当。因此,一些程序设计语言还是提供了GO TO语句。无限制地使用GO TO语句,将使程序结构变得杂乱无章,难以阅读,难以理解,容易隐含一些错误。,2.逐步求精的设计方法 在一个程序模块内,先从该模块的功能描述出发,一层层地逐步细化,直到最后将它分解、细化成语句为止。3.自顶向下的
16、设计、编码和调试 这是把逐步求精的方法由程序模块内的设计推广到一个系统的设计与实现。这正是本书介绍的结构化方法的来源。,4.主程序员制的组织形式 这是程序人员的组织形式。一个主程序员组的固定成员是主程序员一人,辅助程序员一人,程序资料员(或秘书)一人。其他技术人员按需要随时加入组内。主程序员负责整体项目的开发,并负责关键部分的设计、编码和调试。辅助程序员在细节上给主程序员以充分的支持。主程序员、辅助程序员必须在程序技术方面和项目管理方面具有丰富的经验和才能,他们必须完全熟悉该项目的开发工作。这种组织方式的好处在于显著减少了各子系统之间、各程序模块之间通信和接口方面的问题。把设计的责任集中在少数
17、人身上,有利于提高设计质量。,作为这种组织形式中的一个程序员,不仅应具备程序设计的基本知识,对项目所在的领域有较深入的了解,熟悉开发的技术环境,而且,更为重要的是必须具备高度的组织纪律性和团队精神,能使自己的工作与整个系统的工作协调一致起来。为此,他必须严格遵守:,(1)不使用可能干扰其他模块的命令或函数;(2)按总体设计的要求传递参数,不随意修改其内容与含义;(3)按统一规定的格式操作公用文件或数据库;(4)按统一的原则使用标识符;(5)按统一要求编写文档;(6)保持程序风格的一致。,8.3.3 面向对象的程序设计(OOP)传统的过程式程序设计随着软件危机和应用系统的不断膨胀越来越显得力不从
18、心,随着20世纪70年代Smalltalk及Modula-2面向对象的编程语言(OOPL)的出现,以及C+的发展成熟,面向对象程序设计思想得到了广泛的认同和普及。至90年代各种程序语言或工具都引入了这一思想,其优越性是有目共睹的,它已成为这一时代软件产业的主体技术。,在OOP方法中,一个对象即是一个独立存在的实体,对象有各自的属性和行为,彼此以消息进行通信,对象的属性只能通过自己的行为来改变,实现了数据封装,即对象具有的封装性。相关对象在进行合并分类后,有可能共享某些性质,通过抽象后使多种相关对象表现为一定的组织层次,低层次的对象继承其高层次对象的特性,这就是对象的继承性。另外,对象的某一种操
19、作在不同的条件环境下可以实现不同的处理,产生不同的结果,这就是对象的多态性。现有的OOPL中都不同程度地实现了对象的上述三个性质。,(1)封装性:一般以类(class)来创建一个对象。类表现为一种数据结构,它对外提供的界面包括一组数据以及操作这些数据的方法(函数或过程),而隐藏了内部实现的细节,对象操作者只需要了解该对象的界面即可。这样大大增强了模块化程度,很好地实现了软件重用和信息隐藏。为了更好地保持安全性和独立性,类有部分数据可以定义为私有数据,其他类的对象或过程不能直接访问私有数据,一般只能利用消息机制向对象发送消息,对象所有类就定义对应的消息响应函数主动接收消息并作处理,这也是OOPL
20、的一大特点。,(2)继承性:类通过继承定义成不同的层次结构,将相关类的特点抽象出来作为父类,子类继承父类的结构和方法后,再定义各自特定的数据和操作,或者还可以通过重载将父类的某些特殊操作进行重新定义。继承一个单一的父类时叫单继承,如果有两个或两个以上的父类则是多继承。这样做不仅体现了软件重用技术,同时又可最大限度地精简程序,减少冗余代码,极大地提高程序开发和运行的效率。,(3)多态性:类的某些操作允许同一名称具有多种语义。OOPL的这些特点使得程序员在做面向对象程序设计时与做过程式的程序设计时相比有很大的不同,具体体现在以下这些方面:面向对象程序设计采用对象本身的属性与方法来解决问题。在解决问
21、题的过程中,面向对象程序设计可以直接在对象中设计事件处理程序(接收事件消息),而不用调用子过程严格地按顺序执行,可以很方便地让用户实现自由无顺序的操作。,面向对象程序设计中数据与程序不是分离的。数据是特定对象的数据,也只有对象的函数或过程才能对数据进行处理。一个对象中的函数或过程共享对象的数据,解决了因调用子过程出现大量数据传递的情况(如函数返回值和较多参数)。面向对象程序设计中不用设计公用程序模块(因特定方法下的公用模块很难再扩展为更复杂的处理方式),而只需设计类就可以实现重用,而且类库中提供大量基类,掌握它们后可以加快开发过程。开发小组还可以自选设计自己的基类放入类库共享。,8.3.4 可
22、视化编程技术 虽然OOPL提高了程序的可靠性、可重用性、可扩充性和可维护性,但因为应用软件要适应Windows的界面环境,所以用户界面的开发工作变得越来越复杂,有关这部分的代码所占比例也越来越大,因此Microsoft公司推VisuaBasic以后,可视化编程技术受到了极大的欢迎,编程人员不再为Windows界面环境的编程而困扰,能够所见即所得地设计标准的Windows界面。,可视化编程技术的主要思想是用图形工具和可重用部件来交互地编制程序。它把现有的或新建的模块代码封装于标准接口封包中,作为可视化编程编辑工具中的一个对象,用图符来表示和控制。可视化编程技术中的封包可能由某种语言的一个语句、功
23、能模块或数据库程序组成,由此获得的是高度的平台独立性和可移植性。在可视化编程环境中,用户还可以自己构造可视控制部件,或引用在其他环境下构造的符合封包接口规范的可视控制部件,增加了编程的效率和灵活性。,可视化编程一般是基于事件驱动的原理。用户界面中包含各种类型的可视控制部件,如按钮、列表框和滚动条等,每个可视控制部件对应多个事件和事件驱动程序。发生于可视控制部件上的事件触发对应的事件驱动程序,完成各种操作。编程人员只要在可视化编程工具的帮助下,利用鼠标或菜单建立、复制、缩放、移动或清除各种已提供的控件,然后使用该可视化编程工具提供的语言编写每个控件对应的事件程序,最后用解释方式运行并测试该程序,
24、就能很快地完成一个应用程序的设计。,另外,一般可视化编程工具还有应用专家或应用向导提供模板,按照步骤对使用者进行交互指导,让用户定制自己的应用,然后就可以生成应用程序的框架代码,用户再在适当的地方添加或修改以适应自己的需求。面向对象编程技术和可视化编程开发环境的结合,改变了应用软件只有经过专门技术训练的专业编程人员才能开发的状况。它使软件开发变得容易,从而扩大了软件开发队伍。由于大量软件模块的重用和可视控件的引入,技术人员在掌握这些技术之后,就能有效地提高应用软件的开发效率,缩短开发周期,降低开发成本,并且使应用软件界面风格统一,具有很好的易用性。,8.3.5 程序的内部文档 程序的内部文档,
25、指程序内部带有的说明材料。内部文档可以用注释语句书写。程序适当加注释后,阅读时就不必再看其他说明材料了,因此,这是提高程序可阅读性的有力手段。注释可以出现在程序的任何位置,但要与程序结构配合起来效果才好。并且需要注意以下几点:,(1)注释必须与程序一致,否则它毫无价值,甚至使人感到莫名其妙,所以修改程序时,要注意对注释作相应的修改。(2)注释不是重复程序语句,而是应提供程序本身难以得到的信息。,(3)对程序段作注释,而不是对每个语句作注释。如果模型的详细设计是用PDL描述的,编程时可将PDL描述作为注释嵌套在程序中。除了加注释之外,采用缩排式书写程序也有助于阅读,下面这段程序语法上没有错,计算
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 系统 实施 维护
链接地址:https://www.31ppt.com/p-5373340.html