《代码大全》学习笔记(4):建立子程序的步骤

简介: 4.1 建立程序步骤概述       按图4-1的顺序来进行。  4.2 程序设计语言(PDL)        有效使用PDL的一些方针:1)用模拟英语的语句来精确描述每一个特定操作;2)避免使用最终程序语言的语句;3)在设计意向这一层次上写PDL;4)在足够低的层次上写出PDL,它几乎可以自动生成代码。

4.1 建立程序步骤概述
       按图4-1的顺序来进行。
 
4.2 程序设计语言(PDL)
        有效使用PDL的一些方针:1)用模拟英语的语句来精确描述每一个特定操作;2)避免使用最终程序语言的语句;3)在设计意向这一层次上写PDL;4)在足够低的层次上写出PDL,它几乎可以自动生成代码。
        当PDL写好之后,就可以根据它来编码,而PDL则成为程序语言的注释。
        使用PDL可以获得的益处:1)PDL可以使评审工作变得更容易;2)PDL可以帮助实现逐步细化的思想;3)PDL使得变动工作变得很容易;4)PDL极大地减少了注释工作量;5)PDL比其它形式的设计文件容易维护。

4.3 设计子程序
        创建一个子程序的第一步是设计。设计子程序所需要进行的活动见图4-2。
 
        检查先决条件、定义这个子程序将要解决的问题、给子程序命名、考虑效率、研究算法和数据结构、编写PDL、编写工作应该从抽象到具体、考虑数据、检查PDL、逐步细化。


4.4 子程序编码
        设计好子程序之后,就要开始实现。图4-3给出了实现一个子程序时的步骤。
 
        书写子程序说明:编写子程序的接口语句—编写过程或函数说明,应采用所需要的语言,无论Pascal、C或Fortran都可以,只要符合需要。
        非正式地检查代码:在注释下面填上代码之后,可以对每一块代码作一简略检查;尽力想一下什么因素可能破坏目前的块,然后证明这种情况不会发生;一旦完成了对某一子程序的实现,停下来检查一下是否有误。
        进行收尾工作:检查完代码是否存在问题后,再检查一下它是否满足本书所提到的通用质量标准;可以采取几个步骤来确认子程序的质量是否满足要求:1)检查子程序的接口;2)检查通用设计质量;3)检查子程序的数据;4)检查子程序的控制结构;5)检查子程序设计;6)检查子程序的文档。
        按需要重复步骤:如果程序的质量很差,请返回PDL阶段。


4.5 检查子程序
        在设计并实现了子程序之后,创建活动的第三个主要步骤是进行检查,以确认所实现的软件是正确的。
        在心里对子程序进行查错处理:在前面提到过的非正式检查和清扫工作就是两种内心检查方法,另一方法是在心中执行每一个路径。
        编译子程序:如果检查完了子程序,那就开始编译它;在编译时,尽可能地检查出全部错误的指导方针:尽可能把编译程序的警告级别调到最高;消除所有编译程序指出的错误和提出警告的原因。
       使用计算机来检查子程序错误:子程序编译之后,将其放入调试程序,逐步运行每一行代码,要保证每一行都是按预期的运行。
       消除子程序中的错误:一旦发现有错误,就要消除它。
4.5.1 检查表
       创建子程序。


4.6 小结
(1) 要想写好PDL,首先要用易懂的自然语言,避免拘泥于某种程序语言,其次要在意向层次上写PDL,描述设计作什么而不是如何作。
(2) PDL到代码流程方法是详细设计的有力工具,而且使得编码非常容易;可以把PDL直接翻译成注释,但要注意保证注释是精确而有用的。
(3) 应该在工作的每一步中都检查子程序,并鼓励同事们检查;这样,可以在投入的资金和工作努力最少时便发现错误,从而极大降低改错成本。

 

       本章小结:

       本章介绍了建立子程序的步骤。

       对于一个大的系统,我们不可能一下子就能够实现,这就需要先设计好一个个的子系统,然后将这些子系统组装为大的系统。对于程序来说,这些子系统其实就是子程序。

       一句话,建立子程序的过程,其实就是软件开发的过程。

目录
相关文章
|
25天前
|
传感器 存储 安全
【软件设计师备考 专题 】构件的创建和重用:子程序库和类库
【软件设计师备考 专题 】构件的创建和重用:子程序库和类库
40 0
|
25天前
|
数据可视化 数据库连接 测试技术
【软件设计师备考 专题 】编写外部设计文档:系统流程图和功能说明书
【软件设计师备考 专题 】编写外部设计文档:系统流程图和功能说明书
82 0
|
XML JSON 算法
【软件设计师备考 专题 】编写内部设计文档:构件划分图和接口
【软件设计师备考 专题 】编写内部设计文档:构件划分图和接口
49 0
2017计科01-08编译原理练习题一运行时空间组织管理&优化&目标代码生成
2017计科01-08编译原理练习题一运行时空间组织管理&优化&目标代码生成
2017计科01-08编译原理练习题一运行时空间组织管理&优化&目标代码生成
|
25天前
|
存储 编译器 C++
【软件设计师备考 专题 】设计语言的基本成分:数据、运算、控制和传输,过程(函数)调用(一)
【软件设计师备考 专题 】设计语言的基本成分:数据、运算、控制和传输,过程(函数)调用
57 2
|
25天前
|
C++
【软件设计师备考 专题 】设计语言的基本成分:数据、运算、控制和传输,过程(函数)调用(二)
【软件设计师备考 专题 】设计语言的基本成分:数据、运算、控制和传输,过程(函数)调用
38 2
|
25天前
|
传感器 运维
【软件设计师备考 专题 】编写外部设计文档:系统配置图和关系图
【软件设计师备考 专题 】编写外部设计文档:系统配置图和关系图
51 1
|
1月前
|
编译器 Linux C++
【C进阶】C程序是怎么运作的呢?-- 程序环境和预处理(下)
【C进阶】C程序是怎么运作的呢?-- 程序环境和预处理(下)
|
1月前
|
编译器 C语言 C++
【C进阶】C程序是怎么运作的呢?-- 程序环境和预处理(上)-1
【C进阶】C程序是怎么运作的呢?-- 程序环境和预处理(上)-1
|
1月前
【C进阶】C程序是怎么运作的呢?-- 程序环境和预处理(上)-2
【C进阶】C程序是怎么运作的呢?-- 程序环境和预处理(上)-2