




已阅读5页,还剩27页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第7章系统程序设计与测试 管理信息系统 7 1系统实施阶段概述 在管理信息系统的系统开发期 经过系统分析和系统设计阶段以后 便开始了系统实施阶段 在系统分析和设计阶段 系统开发工作主要是集中在逻辑 功能和技术设计上 工作成果是以各种系统分析与设计文档来体现的 系统实施阶段要继承此前各阶段的工作成果 将技术设计转化成为物理实现 因此系统实施的成果是系统分析和设计阶段的结晶 管理信息系统 7 1系统实施阶段概述 1系统实施的前提条件系统实施工作必须在系统分析和系统设计工作完成后 严格按照系统开发文档进行 系统实施是以系统分析和设计文档资料为依据的 系统开发者只有通过系统开发文档 对系统目标 系统总体结构 系统代码设计 输入 输出设计 数据库设计 处理过程设计以及系统运行环境等有了明确理解和认识以后 才能开始系统实施活动 系统开发人员不仅要了解本人所承担的部分 还要了解总体结构 彼此接口 数据交换等相互联系部分的内容 以保证在系统实施工作中局部分散实施与系统整体的协调一致性 管理信息系统 7 1系统实施阶段概述 2系统实施的主要活动这一阶段由程序设计 系统测试 系统安装和新旧系统转换等活动构成 程序设计又称编写程序 按照详细设计阶段产生的程序设计说明书 用选定的程序设计语言书写源程序 系统测试是系统质量可靠性保证的关键 也是对需求分析 系统设计和编码的最终评审 系统安装主要是指各种软 硬件设备的选型 论证 购置 安装 以及整个系统调试运行 新旧系统转换 也称系统切换与运行 是指以新开发的系统替换旧的系统 并使之投入使用的过程 管理信息系统 7 1系统实施阶段概述 系统实现阶段最主要的工作是程序设计 程序设计是根据系统设计说明书中有关模块的处理过程描述 数据库设计 输入设计 输出设计 选择合适的计算机语言 编制出正确 清晰 强健性好 易维护 易理解 工作效率高的程序 首先是正确实现程序说明书所规定的各项功能 其次要求程序具有以下良好的性能 1 结构清晰 2 易理解 3 可维护 4 健壮性 5 效率 管理信息系统 7 2程序设计 1结构化程序设计方法结构化程序设计方法是由L Constantine等人于1972年提出 用于详细设计和程序设计阶段 指导人们用良好的思想方法 开发出正确 易理解的程序 结构化程序使用顺序 选择 循环三种程序结构 1 顺序结构 2 选择结构 3 循环结构 管理信息系统 7 2程序设计 2结构化程序和非结构化程序设计比较非结构化程序设计除了大量使用GOTO转向语句 这种语句可以改变程序的执行顺序 但控制流的转向是随意的 此结构形式必然是面条状 相互交错 当程序规模比较小时 这种面条状结构的程序还可以理解 随着程序规模的增加 这种面条状结构的程序就越来越复杂 变得不宜阅读理解 再复杂的结构化程序也可看成是线状结构形式 结构化程序的控制流是线性的 所以若程序的每个部分正确 则整个程序就正确 且程序只有一个入口一个出口 在验证程序的正确性时 只要验证入口处所有可能的输入条件 出口处的结果都正确即可 管理信息系统 7 2程序设计 3结构化程序设计的原则l 使用语言中的顺序 选择 重复等有限的基本控制结构表示程序逻辑 2 选用的控制结构只准许有一个入口和一个出口 3 程序语句组成容易识别的块 block 每块只有一个入口和一个出口 4 复杂结构应该用基本控制结构进行组合嵌套来实现 5 语言中没有的控制结构 可用一段等价的程序段模拟 但要求该程序段在整个系统中应前后一致 6 严格控制GOTO语句 仅在可以改善而不是损害程序可读性的情况下偶尔使用 例如 在查找结束时 文件访问结束时 出现错误情况要从循环中转出时 使用条件选择结构实现就不如用GOTO语句来得简洁易懂 管理信息系统 7 2程序设计 1 理解系统的设计要求 首先要仔细地阅读系统设计说明书 吃透系统设计所提出的任务 功能和目标 明确自己所编程序在系统中所处的位置及与之相关的环境条件 2 熟悉计算机性能 在程序设计前要熟悉系统的开发环境 包括计算机的性能 操作系统 程序设计语言与数据库管理系统 3 细化程序处理过程 系统设计说明书中给出的处理过程的描述还是比较粗糙的 程序设计者在编程前要根据所选择的程序设计语言予以细化 并用一定的方法对处理过程进行描述 管理信息系统 7 2程序设计 4 编写源程序 在完成前三阶段工作的基础上 完成编程并在计算机上实现 5 测试 程序编制完成以后 要对程序的正确性作出评价 这就需要对程序进行测试 测试的目的是为了发现错误并加以改正 程序中常见的错误有 语法错误 逻辑错误 输入输出格式错误等 有关统计表明 程序测试所占用的时间和经费与开发系统的规模成正比 因此 组织测试数据 选择测试方法应引起系统开发者足够的重视 程序测试时应根据程序错误的特点选择有代表性的测试方法进行测试 管理信息系统 7 2程序设计 1源程序文档化源程序文档化包括选择好标识符 变量和标号 的名字 安排注释以及程序的视觉组织等等 l 符号名的命名符号名即标识符 包括模块名 变量名 常量名 标号名 子程序名以及数据区名 缓冲区名等 这些名字应能反映它所代表的实际东西 应有一定的实际意义 使其能够见名知意 有助于对程序功能的理解 例如 表示次数的量用times 表示总量用total 表示平均值用average 表示和的量用sum等 为达此目的 不应限制名字的长度 管理信息系统 7 2程序设计 2 程序的注释夹在程序中的注释是程序员与日后的程序读者之间通信的重要手段 正确的注释能够帮助读者理解程序 可为后续阶段进行测试和维护 提供明确的指导 因此注释决不是可有可无的 大多数程序设计语言允许使用自然语言写注释 这给阅读程序带来很大的方便 一些正规的程序文本中 注释行的数量占到整个源程序的1 3到1 2 注释分为序言性注释和功能性注释 管理信息系统 8 2程序设计 序言性注释通常置于每个程序模块的开头部分 它应当给出程序的整体说明 对于理解程序本身具有引导作用 有些软件开发部门对序言性注释作了明确而严格的规定 要求程序编制者逐项列出 有关项目包括 程序标题 有关本模块功能和目的的说明 主要算法 接口说明 包括调用形式 参数描述 子程序清单 有关数据描述 重要的变量及其用途 约束或限制条件 以及其它有关信息 模块位置 在哪一个源文件中 或隶属于哪一个软件包 管理信息系统 7 2程序设计 书写功能性注释 要注意以下几点 用于描述一段程序 而不是每一个语句 用缩进和空行 使程序与注释容易区别 注释要正确 有合适的 有助于记忆的标识符和恰当的注释 就能得到比较好的源程序内部的文档 有关设计的说明 也可作为注释 嵌入源程序体内 管理信息系统 7 2程序设计 3 视觉组织 空格 空行和移行一个程序如果写得密密麻麻 分不出层次来常常是很难看懂的 优秀的程序员在利用空格 空行和移行的技巧上显示了他们的经验 恰当地利用空格 可以突出运算的优先性 避免发生运算的错误 管理信息系统 7 2程序设计 2数据说明虽然在设计阶段 已经确定了数据结构的组织及其复杂性 在编写程序时 则需要注意数据说明的风格 为了使程序中数据说明更易于理解和维护 必须注意以下几点 l 数据说明的次序应当规范化 使数据属性容易查找 也有利于测试 排错和维护 2 当多个变量名用一个语句说明时 应当对这些变量按字母的顺序排列 管理信息系统 7 2程序设计 3语句结构在设计阶段确定了软件的逻辑流结构 但构造单个语句则是编码阶段的任务 语句构造力求简单 直接 不能为了片面追求效率而使语句复杂化 l 在一行内只写一条语句 并且采取适当的移行格式 使程序的逻辑和功能变得更加明确 2 程序编写首先应当考虑清晰性 简单 直截了当地说明程序员的用意 不要刻意追求技巧性或程序执行速度 使程序编写得过于紧凑 管理信息系统 7 2程序设计 3 首先要保证程序正确 然后才要求提高速度 4 避免使用临时变量而使可读性下降 5 尽量用公共过程或子程序上代替重复的功能代码段 要注意 这段代码应具有一个独立的功能 不要只因代码形式一样便将其抽出组成一个公共过程或子程序 模块的偶尔内聚 6 使用括号清晰地表达算术表达式和逻辑表达式的运算顺序 管理信息系统 7 2程序设计 7 用逻辑表达式代替分支嵌套 以避免过多的循环嵌套和条件嵌套 8 尽量减少使用 否定 条件的条件语句 9 经常反躬自省 如果我不是编码的人 我能看懂它吗 考虑它的可理解性达到什么程度 总之 要从程序编码的实践中 积累编制程序的经验 培养和学习良好的程序设计风格 使编写出来的程序清晰易懂 易于测试和维护 在程序编码阶段改善和提高软件的质量 管理信息系统 7 3系统测试 系统测试的对象和目的由于信息系统的开发很大程度上是软件系统的开发 那么经过程序设计阶段以后 系统测试的对象是不是源程序呢 我们知道 系统开发周期内的各个阶段是彼此衔接的 前一阶段发生的问题如未能及时解决 很自然会带入下一个阶段 因此在测试中发现的问题不一定是在编码阶段产生的 而是前面各阶段的错误的集中反映 也就是说 对程序设计阶段来讲 有些错误是 先天性 的 因此系统测试的对象显然不仅仅是源程序 而应是整个软件 它把需求分析 概要设计 详细设计以及程序设计各阶段的开发文档 包括需求规格说明 概要设计说明 详细设计说明以及源程序 都作为测试的对象 由于 程序 文档 软件 所以系统测试的对象是软件 管理信息系统 7 3系统测试 在系统测试中发现的错误可能是各式各样的 按其范围和性质可划分为以下几类 1 功能错误 由于功能规格说明书不够完整或叙述不够确切 致使在编码时对功能有误解而产生的错误 2 系统错误 指与外部接口的错误 参数调用错误 子程序调用错误 输入 输出地址错误 以及资源管理错误等 管理信息系统 7 3系统测试 3 过程错误 主要指算术运算错误 初始过程错误 逻辑错误等 4 数据错误 数据结构 内容 属性错误 动态数据与静态数据混淆 参数与控制数据混淆等 5 编码错误 语法错误 变量名错误 局部变量与全局变量混淆 程序逻辑错误和编码书写错误等 管理信息系统 7 3系统测试 测试与调试测试与调试意义是不同的 仅就测试而言 其目标是发现系统中的错误 但发现错误并不是我们的最终目的 系统开发的最终目的是高质量的完全符合用户需要的信息系统 因此测试发现问题后 还必须诊断错误 改正错误 这就是调试 准确判定错误位置以及具体的出错情况 继而进行改正以排除错误 管理信息系统 7 3系统测试 穷举测试与选择测试既然测试的目的在于寻找错误 并且找出的错误越多 测试就越成功 那么能不能通过测试把所有隐藏的错误全部找出来呢 换句话说 能否将所有可能发现错误的测试都做完呢 我们把能够包含所有可能情况的测试称为穷举测试 管理信息系统 7 3系统测试 图穷举路径示例 管理信息系统 7 3系统测试 基于以上系统测试的概念 在进行系统测试中应遵循以下基本原则 1 测试工作应避免由原开发软件的个人或小组来承担 测试的目的就是挑剔地找错误 而从心理上来讲 软件开发人员对自己的工作成果有所偏爱 总认为自己开发的软件没有错误或错误不大 因而有一种不愿否定自己成果的心理 另一方面 如果开发人员对软件的功能有理解错误 由本人去找 肯定是找不出错误的 正所谓 当局者 管理信息系统 7 3系统测试 2 设计测试方案时 不仅要包括确定的输入数据 而且应包括从系统功能出发预期的测试结果 把预期测试结果作为测试方案的组成部分 对于发现错误是有帮助的 并且可以提高效率 只要将运行结果与预期测试结果进行对比即可发现有无错误 否则 由于人们的心理作用或粗心大意 常把一些似是而非的结果当成正确结果 把本该发现的问题漏掉 管理信息系统 7 3系统测试 3 测试用例不仅要包括合理 有效的输入数据 还要包括无效的或不合理的输入数据 在测试中人们常常只注意到从系统功能角度是合理有效的和可以预想得到的输入数据 而忽视那些无效的和预想不到的输入数据 实际上一个软件在投入运行后 一些意想不到的输入是常常会遇到的 如用户按错键 输错数 键入非法命令等 如果软件不能做出适当的反映而失控 就不能说明软件是可靠的 往往使用预期不合理的数据进行测试比用合理数据收获要大 管理信息系统 7 3系统测试 4 不仅要检验程序是否做了该做的事 还要检查程序是否同时做了不该做的事 多余的副作用即使是无意义的也会影响程序运行效率 甚至有时会带来潜在的危害 管理信息系统 7 3系统测试 5 软件中仍存在错误的概率和已经发现错误的个数是成正比的 有时软件经测试发现了许多错误后 测试者认为可能错误已找得差不多了 因而不必再继续测试了 但经验和统计结果均表明 发现的错误越多 程序中潜在的错误可能会越多 这个事实还可用米中含沙的情况做比喻 当我们发现手中抓到的一把米里有沙时 绝不表
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025广西凭祥产业园管理委员会保税和自贸事务局招聘越南语翻译人员1人备考考试题库附答案解析
- 2025安徽合肥市肥东县大学生乡村医生专项计划招聘3人备考考试题库附答案解析
- 2025年下半年甘肃省文化和旅游厅直属事业单位招聘人员考试参考试题及答案解析
- 2025北京市自来水集团禹通市政工程有限公司招聘35人备考考试题库附答案解析
- 骨质疏松症预防锻炼计划
- 教育保育评估指南培训
- 工厂安全培训教学内容课件
- 捕捞业社会影响评价-洞察及研究
- 论文咨询项目管理方案
- 可降解聚合物设计-洞察及研究
- 植物病理学课件
- 玻璃幕墙施工方案完整版
- 部编人教版三年级道德与法治上册全册课件
- 城市道路工程质量事故
- 七律长征教学实录王崧舟3篇
- 铁路路基大维修规则
- DB62∕T 3171-2019 双向螺旋挤土灌注桩技术规程
- Q∕GDW 12178-2021 三相智能物联电能表技术规范
- 合同法中英文对照版
- 小学道法小学道法六年级上-5.国家机构有哪些(第二课时-国家机关的职权)ppt课件
- 车架设计手册1
评论
0/150
提交评论