系统实施
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
10.3
程序设计
(2)模块化(modularity)。把代
码划为内聚度高、富有意义的功能块。通常是把
长且复杂的程序段或子程序分解为小且定义良好 的程序段,具体措施包括:
– 确保物理和逻辑功能密切相关; – 限定一个模块完成一个独立的功能;
– 检查代码的(3)简单化(simplicity)。去掉过分复杂和不必
– 确定软件生存周期中的一个给定阶段的产品是否达到前阶段确立的 需求的过程; – 程序正确性的形式证明,即采用形式理论证明程序符合设计规约规 定的过程; – 评审、审查、测试、检查、审计等各类活动,或对某些项处理、服 务或文件等是否和规定的需求相一致进行判断和提出报告。
确认(validation)是一系列的活动和过程,目的是想证实在一 个给定的外部环境中软件的逻辑正确性。
10.3
程序设计
10.3.2结构化程序设计
通常认为结构化程序设计包括以下四方面的内容: (1)限制使用GOTO语句。 (2)逐步求精的设计方法。在一个程序模块内,先从 该模块功能描述出发,一层层地逐步细化,直到最 后分解、细化成语句为止。 (3)自顶向下的设计、编码和调试。这是把逐步求精 的方法由程序模块内的设计推广到一个系统的设计 与实现。 (4)主程序员制的组织形式。
10.1 系统实施阶段的任务
表10-1 系统实施阶段的主要活动及相互关系 程序编制 程序编制 设备购置 提供调试设备 人员培训 培训有关人 员 试用软件 培训有关人 员 接收设备 数据准备 提供试验数 据 调试程序 提供存储量和 内存要求
设备购置
提供对设备的要 求
人员培训
数据准备
提供程序以培训 提供培训设备 人员
10.3
程序设计
10.3.3面向对象的程序设计
面向对象程序设计中的概念主要包括:对象、类、数据抽 象、继承、动态绑定、数据封装、多态性、消息传递。 通过这些概念面向对象的思想得到了具体的体现。 (1)对象。 (2)类。 (3)封装。 (4)继承。 (5)多态。 (6)动态绑定 (7)消息传递。
10.3
10.4 系统测试
2.从是否执行程序的角度 按照从是否执行程序的角度系统测试可以分静态 测试和动态测试。 (1)静态测试。静态方法是指不运行被测程序本身, 仅通过分析或检查源程序的语法、结构、过程、接 口等来检查程序的正确性。对需求规格说明书、软 件设计说明书、源程序做结构分析、流程图分析、 符号执行来找错。静态方法通过程序静态特性的分 析,找出欠缺和可疑之处 . (2)动态测试。动态方法是指通过运行被测程序,检 查运行结果与预期结果的差异,并分析运行效率和 健壮性等性能,这种方法由三部分组成:构造测试 实例、执行程序、分析程序的输出结果。
10.4 系统测试
10.4.2系统测试的分类
系统测试的方法从不同的角度分为不同的类型 ,下面分别从是否关心软件内部结构和具体实现的 角度、是否执行程序的角度和从软件开发的过程分 别介绍软件测试的方法。
10.4 系统测试
1.从是否关心软件内部结构和具体实现的角度划分 按照从是否关心软件内部结构和具体实现的角度划分可以分为白 盒测试、黑盒测试和灰盒测试。 (1)白盒测试。也称结构测试或逻辑驱动测试,它是按照程序内 部的结构测试程序,通过测试来检测产品内部动作是否按照设 计规格说明书的规定正常进行,检验程序中的每条通路是否都 能按预定要求正确工作。 (2)黑盒测试。黑盒测试也称功能测试,它是通过测试来检测每 个功能是否都能正常使用。在测试中,把程序看作一个不能打 开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下 ,在程序接口进行测试,它只检查程序功能是否按照需求规格 说明书的规定正常使用,程序是否能适当地接收输入数据而产 生正确的输出信息。黑盒测试着眼于程序外部结构,不考虑内 部逻辑结构,主要针对软件界面和软件功能进行测试。
10.4 系统测试
(3)灰盒测试。灰盒测试,确实是介于白盒测试与黑盒测试 之间的,可以这样理解,灰盒测试关注输出对于输入的 正确性,同时也关注内部表现,但这种关注不象白盒那 样详细、完整,只是通过一些表征性的现象、事件、标 志来判断内部的运行状态,有时候输出是正确的,但内 部其实已经错误了,这种情况非常多,如果每次都通过 白盒测试来操作,效率会很低,因此需要采取这样的一 种灰盒的方法。
10.4 系统测试
系统测试就是利用测试工具按照测试方案和 流程对产品进行功能和性能测试,甚至根据需要 编写不同的测试工具,设计和维护测试系统,对 测试方案可能出现的问题进行分析和评估。执行 测试用例后,需要跟踪故障,以确保开发的产品
适合需求。
10.4 系统测试
10.4.1系统测试内容
软件测试主要工作内容是验证(verification)和确认 (validation ),下面分别给出其概念: 验证(verification)是保证软件正确地实现了一些特定功能的 一系列活动,即保证软件做了你所期望的事情。(Do the right thing) 主要包括:
10.5 系统的交付使用
系统的交付使用即系统的转换,包括 把旧系统的文件转换成新系统的文件,数 据的整理和录入,也包括人员、设备、组 织机构的改造和调整,有关资料档案的建 立和移交。系统转换的最后形式是将全部 控制权移交给用户单位。
10.5 系统的交付使用
经过调试与测试的软件可以投入 运行。这时,需要由原有的老系 统切换到新建立的管理信息系统 。新系统替换老系统投入运行的 过程,通常有三种切换方法。 (1)直接切换。规定某一时刻为切 换时刻,在这一时刻,停止使用 老系统,全面启用新系统,如图 10.1所示。这种切换方法简单, 费用省,但风险大,企业通常不 采用。
10.3
程序设计
可视化编程技术的主要思想是用图形工 具和可重用部件来交互地编制程序。它把 现有的或新建的模块代码封装于标准接口 封包中,作为可视化编程编辑工具中的一 个对象,用图符来表示和控制。可视化编 程技术中的封包可能由某种语言的一个语 句、功能模块或数据库程序组成,由此获 得的是高度的平台独立性和可移植性。在 可视化编程环境中,用户还可以自己构造 可视控制部件,或引用其他环境构造的符 合封包接口规范的可视控制部件,增加了 编程的效率和灵活性。
10.3
程序设计
10.3.1编程的标准
一般认为好程序应具备下列素质: (1)能够工作; (2)调试代价低; (3)易于维护; (4)易于修改; (5)设计不复杂; (6)效率高;
10.3
程序设计
要使程序可读性好,总的要求是使程序简单、 清晰。70年代以来,人们总结了使程序简单、 清晰的种种技巧和方法,包括: (1)用结构化方法进行详细设计; (2)程序中包含说明性材料; (3)良好的程序书写格式; (4)良好的编程风格。
要的矫揉造作。具体措施如包括:
– 采用简单和直截了当的算法; – 使用简单的数据结构,避免使用多维数组、指针和复杂的 表; – 注意对象命名的一致性;
– 以手工方式简化算术和逻辑表达式。
10.3
程序设计
(4)结构化(structure)。把程序的各个构建组织 成一个有效系统。具体措施包括:
– – – – – – – – – 按照标准化的次序说明数据; 使用读者明了的结构化部件; 采用直截了当的算法; 根据应用背景排列程序各部分; 不随意为效率而牺牲程序的清晰度和可读性; 让机器多做琐碎、繁琐的工作; 用公共函数调用代替重复出现的表达式; 检查参数传递的情况,保证有效性; 检查多层嵌套结构,确认是否存在某些语句可从内从循环 中提出,避免大量使用嵌套循环结构和嵌套分支结构; – 坚持使用统一缩进规则; – 只编制单入口单出口的代码。
10.3
程序设计
(5)文档化(documentation)
程序能自说明。具体措施包括: – 有效适当的使用注释,保证注释有意义,说明性强; – 使用含义鲜明的变量名; – 协调使用程序块注释和程序行注释; – 始终坚持编制文档。
(6)格式化(layout)
尽量使用程序布局合理、清晰、明了。具体措施包括: – 有效使用编程空间(水平和垂直两个方向),以助读者理 解; – 适当的插入括号,使表达式的运算次序清晰直观,排除二 义性; – 有效使用空格符,以区别程序的不同意群,提高程序的可 读性;
10.2 系统实施的方法
10.2.1自顶向下的实现方法
结构化方法主张自顶向下实现,尽量先实 现上层模块,逐步向下,最后实现下层最基本 的模块。即首先调试整个系统的结构及各模块 间的接口,确保系统结构和各模块接口的正确 性。当然,所谓先实现上层模块也不是"一刀切 ",即先实现某个层次的所有模块,而是把整个 实施方案分成若干个"版本",首先实现系统的 轮廓或框架,在此基础上不断添加新的功能, 逐步完善,最后达到物理模型所要求的全部功 能。
程序设计
面向对象程序设计的其他优点: (1)数据抽象的概念可以在保持外部接口不变的情况下改变 内部实现,从而减少甚至避免对外界的干扰; (2)通过继承大幅减少冗余的代码,并可以方便地扩展现有 代码,提高编码效率,也减低了出错概率,降低软件维护的 难度; (3)结合面向对象分析、面向对象设计,允许将问题域中的 对象直接映射到程序中,减少软件开发过程中中间环节的转 换过程; (4)通过对对象的辨别、划分可以将软件系统分割为若干相 对为独立的部分,在一定程度上更便于控制软件复杂度; (5)以对象为中心的设计可以帮助开发人员从静态(属性) 和动态(方法)两个方面把握问题,从而更好地实现系统; (6)通过对象的聚合、联合可以在保证封装与抽象的原则下 实现对象在内在结构以及外在功能上的扩充,从而实现对象 由低到高的升级。
程序设计
(1)节俭化(economy).提供尽可能简 洁的代码,具体措施包括:
– 避免程序中不必要的动作和变量; – 避免变量名重载; – 较少程序的体积; – 减少程序的执行时间(提高速度),例如,使用执行 时间短的算术运算; – 避免不同类型的对象混合操作; – 尽量使用整型运算和布尔表达式; – 避免模块冗余和重复; – 检查全局变量的副作用。
10.3.4可视化编程技术
10.3
程序设计
编程风格在很大程度上影响着程序设计 的可读性、可测试性和可维护性。鉴于软 件开发的绝大部分成本在测试和维护阶段 ,努力追求可测试性和可维护性极其重要 。编程风格是在不影响性能的前提下,有 效地编排和组织程序,以提高可读性和可 维护性。
10.3.5编程风格
10.3
规定数据准备的 提供录入设备 内容、格式 提供录入人员
提供培训的实 验数据
10.1 系统实施阶段的任务
10.1.2系统实施阶段的特点
与系统分析、系统设计阶段相比,系统实施阶段的特点是工 作量大,投入的人力、物力多。因此,这一阶段的组织管理工作 也很繁重。对于这样一个多工种、多任务的综合项目,合理的调 度安排就十分重要。在我国的信息系统建设中,项目负责人往往 一身兼任多种角色。在系统分析阶段,他是系统分析员;在设计 阶段,他又是主要设计师;在实施阶段,他又是组织者。 在系统分析阶段,系统分析员的主要任务是调查研究,分析 问题,与用户一起充分理解用户要求。在系统设计阶段,系统设 计人员的任务是精心设计,提出合理方案。在实施阶段,他们的 任务是组织协调,督促检查。他们要制定逐步实现物理模型的具 体计划,协调各方面的任务,检查工作进度和质量,组织全系统 的调试,完成旧系统向新系统的转换。 在实际工作中,系统分析员往往是这几个阶段的组织者。作 为合格的系统分析员,不仅要有坚实的计算机科学知识,丰富的 管理知识和经验,还要有较强的组织能力。
第10章
系统实施
本章要点
系统实施的任务、特点 结构化程序设计方法、面向对象程序设计方法 系统的白盒测试、黑盒测试、灰盒测试 系统切换的主要方法
10.1 系统实施阶段的任务
10.1.1 实施阶段的主要活动
系统实施是开发信息系统的最后一个阶段。这个阶段的任务,是 实现系统设计阶段提出的物理模型,按实施方案完成一个可以实 际运行的信息系统,交付用户使用。系统设计说明书详细规定了 系统的结构,规定了各个模块的功能、输入和输出,规定了数据 库的物理结构。这是系统实施的出发点。 具体讲,这一阶段的任务包括以下几个方面: 1、硬件准备 2、软件准备 3、人员培训 4、数据准备