第16单元 传统程序设计方法 计算机软件基础 The software basic of computer 下一页 主讲人:刘志强
下一页 计算机软件基础 The software basic of computer 主讲人:刘志强 第16单元 传统程序设计方法
教学目标 ●了解传统程序设计方法 基本概念 方法及特点 步骤及准则 下一页 第2页
上一页 停止放映 下一页 第 2 页 教学目标 ⚫ 了解传统程序设计方法: –基本概念 –方法及特点 –步骤及准则
本单元涉及内容 ●第十章传统的软件开发方法 10.1结构化开发方法概述 10.2系统分析与定义 10.3系统设计 10.4系统编程 10.5系统测试 10.6系统维护 ●P273P333 下一页 第3页
上一页 停止放映 下一页 第 3 页 本单元涉及内容 ⚫ 第十章 传统的软件开发方法 –10.1 结构化开发方法概述 –10.2 系统分析与定义 –10.3 系统设计 –10.4 系统编程 –10.5 系统测试 –10.6 系统维护 ⚫ P273~P333
、结构化开发方法 结构化开发方法是传统的软件系统开发方法。 ●基本要点是 自顶向下 逐步求精 模块化设计 结构化编码 主程序员组织 结构化设计SD ●SP的基本思想: 把一个复杂问题的求解过程分阶段进行,每个阶段处 理的问题都控制在人们容易理解和处理的范围內。 下一页 第4页
上一页 停止放映 下一页 第 4 页 一 、结构化开发方法 ⚫ 结构化开发方法是传统的软件系统开发方法。 ⚫ 基本要点是: –自顶向下 –逐步求精 –模块化设计 –结构化编码 –主程序员组织 –结构化设计SD ⚫ SP的基本思想: 把一个复杂问题的求解过程分阶段进行,每个阶段处 理的问题都控制在人们容易理解和处理的范围内
“自顶向下 ●是将复杂的大问题,分解为小问题,找出问 题的关键、重点所在,同时找出技术难点来。 然后用精确的思维定性、定量地描述问题 问题的核心是”分解“。如何划分?准则是 什么? ●实现的手段是”子程序“、”函数“,即模 块化。 下一页 第5页
上一页 停止放映 下一页 第 5 页 “自顶向下” ⚫ 是将复杂的大问题,分解为小问题,找出问 题的关键、重点所在,同时找出技术难点来。 然后用精确的思维定性、定量地描述问题。 ⚫ 问题的核心是”分解“ 。如何划分?准则是 什么? ⚫ 实现的手段是”子程序“ 、 ”函数“ ,即模 块化
“逐步求精” ●将现实世界的问题经抽象转化为逻辑空间或求 解空间的问题。复杂问题经抽象化处理变为相 对较简单的问题。经几次抽象(精化)处理, 最后到求解域中只是非常简单的编程问题。求 解(抽象)过程可以划分为若干个阶段,在不 同阶段用不同工具来描述。实现细则在前期阶 段可以不去管它。在每个阶段有不同的规划和 标准,产生出不同阶段的文档资料。 ●求解问题不是一下子就用计算机语言却描述问 题,而是分阶段;先用自然语言、DFD(数据 流程图)等工具一步步地去抽象、描述,最后 用计算机语言却实现。 下一页 第6页
上一页 停止放映 下一页 第 6 页 “逐步求精” ⚫ 将现实世界的问题经抽象转化为逻辑空间或求 解空间的问题。复杂问题经抽象化处理变为相 对较简单的问题。经几次抽象(精化)处理, 最后到求解域中只是非常简单的编程问题。求 解(抽象)过程可以划分为若干个阶段,在不 同阶段用不同工具来描述。实现细则在前期阶 段可以不去管它。在每个阶段有不同的规划和 标准,产生出不同阶段的文档资料。 ⚫ 求解问题不是一下子就用计算机语言却描述问 题,而是分阶段;先用自然语言、DFD(数据 流程图)等工具一步步地去抽象、描述,最后 用计算机语言却实现
模块化处理 ●模块化就是把程序划分为若干个模块,而每 个模块完成一个子功能,把这些模块汇总起 来构成一个有机整体,即可完成指定的功能。 ●模块化的目的是为了降低软件复杂度,使软 件设计,调试和维护等操作变得简易。 下一页 第7页
上一页 停止放映 下一页 第 7 页 模块化处理 ⚫ 模块化就是把程序划分为若干个模块,而每 个模块完成一个子功能,把这些模块汇总起 来构成一个有机整体,即可完成指定的功能。 ⚫ 模块化的目的是为了降低软件复杂度,使软 件设计,调试和维护等操作变得简易
结构化编码 ●SP编码的方法强调清晰简洁,它是一种构造 程序的技术,有利于提高软件生产率及降低 软件维护代价。 ●1966年Bohm和 Jacopin就证明了只要用三 中基本结构,就足以表示所有形式的程序控 制结构 ●1978年 Kernihan和 Plauge对一些编码风格 进行归纳,提出了16种具体方法。 下一页 第8页
上一页 停止放映 下一页 第 8 页 结构化编码 ⚫ SP编码的方法强调清晰简洁,它是一种构造 程序的技术,有利于提高软件生产率及降低 软件维护代价。 ⚫ 1966年Bohm和Jacopin就证明了只要用三 中基本结构,就足以表示所有形式的程序控 制结构。 ⚫ 1978年Kernihan和Plauger对一些编码风格 进行归纳,提出了16种具体方法
结构化编码风格 ●尽量使用标准库函数 使用有意乂的变量名 程序讲究清晰,避免过于精°对输入进行错误判别 注释勿用太滥 ●对重复使用的表达式尽量调◎模块化功能专一,模块间 用公共函数代替 偶合清晰 ●使用括号,以避免二义性·递归定义的DS尽量采用 ●用逻辑表达式代替分支嵌套 递归过程访问 ●使用缩排格式 ●把大程序分成小块去编 ●避免使用 IF THEN和空ELSE 写和测试 ●注意计算机运算特点,如·勿追求不必要的效率,尽 10.0乘0.1很少等于1.0 量采用基本控制结构 ●避免循环多个出囗 下一页 第9页
上一页 停止放映 下一页 第 9 页 结构化编码风格 ⚫ 尽量使用标准库函数 ⚫ 程序讲究清晰,避免过于精 巧 ⚫ 对重复使用的表达式尽量调 用公共函数代替 ⚫ 使用括号,以避免二义性 ⚫ 用逻辑表达式代替分支嵌套 ⚫ 使用缩排格式 ⚫ 避免使用IF THEN 和空ELSE ⚫ 注意计算机运算特点,如 10.0乘0.1很少等于1.0 ⚫ 使用有意义的变量名 ⚫ 对输入进行错误判别 ⚫ 注释勿用太滥 ⚫ 模块化功能专一,模块间 偶合清晰 ⚫ 递归定义的DS尽量采用 递归过程访问 ⚫ 把大程序分成小块去编 写和测试 ⚫ 勿追求不必要的效率,尽 量采用基本控制结构 ⚫ 避免循环多个出口
主程序员组织 ●主程序员组织负责人全权负责包括解决技术难题有 时一些关键性技术问题,主程序员应亲自动手遍程去解 决;他必须是技术高手,是程序生产过程中的总体设计 师 ●程序员按任务书要求编程;是程序生产线上的“工 人 ●测试工程师具有较高遍程水准和经验,负责系统测试; 是程序生产过程中的检验员。 ●文档人员自始至终参加程序生产活动,负责编写一切 有关文档资料。 下一页 第10页
上一页 停止放映 下一页 第 10 页 主程序员组织 ⚫ 主程序员 组织负责人,全权负责,包括解决技术难题,有 时一些关键性技术问题,主程序员应亲自动手遍程去解 决;他必须是技术高手,是程序生产过程中的总体设计 师。 ⚫ 程序员 按任务书要求编程;是程序生产线上的“工 人” 。 ⚫ 测试工程师 具有较高遍程水准和经验,负责系统测试; 是程序生产过程中的检验员。 ⚫ 文档人员 自始至终参加程序生产活动,负责编写一切 有关文档资料