第十章传统的软件开发方法
第4页
模块化处理
把程序划分为若干个模块,而每个模块 完成一个子功能,把这些模块汇总起来 构成一个有机整体,完成指定的功能。 模块化的目的是为了降低软件复杂度, 使软件设计,调试和维护等操作变得简 易。
第5页
结构化编码
SP编码的方法强调清晰简洁,它是一种 构造程序的技术,有利于提高软件生产 率及降低软件维护代价。 1966年Bohm和Jacopin就证明了只要用 三中基本结构,就足以表示所有形式的 程序控制结构。 1978年Kernihan和Plauger对一些编码 风格进行归纳,提出了16种具体方法。
用户 分析员 程序员 软件需求说明书
需要分解
有补充修改
无补充 修改
软件开发计划
交换意见 作出贡献
分析追踪 数据流图
用户复查
细化数据 不要分解 流图
第 16 页
沿数据流回溯
通常从数据流图的输出端着手分析,要搞清楚:
– 数据元素从哪儿来? – 每个输出数据元素又是从哪儿来的?
有时对用户具体的数据元素还搞不清楚,则 需要和用户探讨、商量解决。 通常把分析过程中得到的有关部门数据元素信 息记录到数据字典DD中。把对算法的简明描述 记录在IPO(输入|处理|输出图)图中。 通过分析而补充的数据流、数据存储和处理, 应该添加到DFD的适当位臵上。
第 18 页
细化数据流图
在反复循环的分析过程中,不断细化 DFD(即把数据流图扩展到更低的层 次)。通过功能分解可以完成DFD的细 化,即将一些处理比较复杂的功能再划 分为若干个子功能。
第 19 页
修改开发计划
在分析过程中可能会不断地修改原拟定 的开发计划,这是正常的。
第 11 页
10.2 软件需求定义
软件需求分析
– 就是明确软件系统将来达到的目标。
目标
– – – 规定项目必须满足的总目标; 确定项目的可行性; 拟定完成项目各个目标的策略,制定项目 资源成本和进度。
第 12 页
1、软件需求定义的任务
理解和表达用户要求,制定软件开发计 划,编写要求说明书。 收集、理解、明确用户的要求,明确系 统做什么?建立系统的逻辑模型,写出 开发计划和需求分析报告。
第 10 页
结构化程序设计SP
SP的思想最早是由著名计算机科学家 E.W.Dijkstra提出的。 1966年Bohm和Jacopin证明了只用三种基本 结构就能实现任何一个入口,一个出口的程序; 1977年IBM公司的Mills又进一步提出:“程序 应该只有一个入口和一个出口。 在长期程序设计的实践中,SP方法不断得以完 善,使之成为开发传统应用领域应用系统的主 要方法之一。
第 17 页
用户复查
经分析将在数据流图回溯过程中找出的 数据元素,并由此定义的DD和算法是否 正确?这只能由最有发言权的用户来复 查。 在复查过程中反映出新的问题,应及时 修改、补充DFD、DD和IPO图,并将对 系统的新认识及时记录下来。实际上, 追踪DFD和复查系统的逻辑模型这两个 步骤是交替进行的循环过程。
– 自顶向下 – 逐步求精 – 模块化设计 – 结构化编码 – 主程序员组织 – 结构化设计SD
第2页
“自顶向下”
是将复杂的大问题,分解为小问题,找 出问题的关键、重点所在,同时找出技 术难点来。然后用精确的思维定性、定 量地描述问题。
第3页
“逐步求精”
将现实世界的问题经抽象转化为逻辑空间或求 解空间的问题。复杂问题经抽象化处理变为相 对较简单的问题。经几次抽象(精化)处理, 最后到求解域中只是非常简单的编程问题。求 解(抽象)过程可以划分为若干个阶段,在不 同阶段用不同工具来描述。实现细则在前期阶 段可以不去管它。在每个阶段有不同的规划和 标准,产生出不同阶段的文档资料。 求解问题不是一下子就用计算机语言却描述问 题,而是分阶段;先用自然语言、DFD(数据 流程图)等工具一步步地去抽象、描述,最后 用计算机语言却实现。
第 13 页
软件需求定义的工作流程
用户要求
系统定义
软件功能
软件计划
范围
软件定义
功能说 明书
软件功能
费用、资源进度
第 14 页
2、需求分析过程
基本过程示意图 沿数据流回溯 用户复查 细化数据流图 修改开发计划 书写文档资料 审查和复审
第 15 页
需求分析的基本过程
第6页
主程序员组织
主程序员 组织负责人,全权负责,包括解决技术 难题,有时一些关键性技术问题,主程序员应亲 自动手遍程去解决;他必须是技术高手,是程 序生产过程中的总体设计师。 程序员 按任务书要求编程;是程序生产线上 的“工人”。 测试工程师 具有较高遍程水准和经验,负责 系统测试;是程序生产过程中的检验员。 文档人员 自始至终参加程序生产活动,负责 编写一切有关文档资料。
– 把复杂问题自顶向下逐层分解,再从分解出 的对象中抽象出相对简单的子问题。 – 经过一系列分解和抽象,到最底层的问题已 经是很容易求解的了。
第9页
结构化设计SD
SD方法是由IBM公司的Constentine等 人花了十几年时间研究出来的一种程序 设计方法,发表于1974年。 SD是一种用于概要设计的方法,与SA方 法配合使用。 其目标:建立一个结构良好的软件系统。 SD方法的基础是数据流程图,因此也称 为面向数构
结构化方法的体系结构是:
– 结构化分析(SA—Structure Analysis) – 结构化设计(SD—Structure Design) – 结构化程序设计(SP—Structure Programing)
第8页
结构化分析SA
SA方法是建立在自顶向下、逐步求精思 想基础上的分析方法,它的要点是分解 和抽象:
第十章 传统的软件开发方法
– 10.1 结构化开发方法概述 – 10.2 系统分析与定义 – 10.3 系统设计 – 10.4 系统编程 – 10.5 系统测试 – 10.6 系统维护
第1页
10.1 结构化开发方法
基本思想:把一个复杂问题的求解过程 分阶段进行,每个阶段处理的问题都控 制在人们容易理解和处理的范围内。 基本要点: