第4 章 习题与思考题参考答案 1 第4 章 结构化设计方法 4
1 当你“编写”程序时你设计软件吗
软件设计和编码有什么不同吗
在“编写”程序时并没有设计软件
软件设计包括概要设计和详细设计,编码是将详细设计中的过程描述转换成用程序设计语言来描述
2 举出 3 个数据抽象的例子和可以用来操作这些数据抽象的过程抽象的一个例子
抽象是忽略事物的细节,获取其本质特征的过程
抽象是一种重要的机制,使人们能够对复杂系统能够很好地理解、交流和推理
在软件领域,可以将抽象分为两类,即数据抽象和过程抽象
在传统的结构化程序设计语言中,就提供了这两种抽象机制
(1) 数据抽象:在所有的结构化程序设计语言中,用户都可以自定义抽象数据类型
如定义抽象数据类型 Stu dent(学生)、Cou rse(课程)、ClassScoreList(班级成绩单)
(2) 过程抽象:过程抽象也称为是基于方法的抽象
过程抽象使我们关心处理过程的名字 和 它 能 做 什 么 , 而 无 需 知 道 如 何 完 成 所 有 实 现 细 节
如 求 班 级 总 平 均 分av erage(ClassScoreList)就是一个过程抽象
在面向对象的程序设计语言中,抽象与封装的概念密切相关,数据抽象和相关的过程抽象被封装在类中,不同类中相似的过程抽象(方法)又可以进一步抽象,放在接口中
封装是保证事物有明确内外界限的机制
内部是受保护的,与外部事物相隔离
3 应在什么时候把模块设计实现为单块集成软件
性能是实现单块集成软件的唯一理由吗
由于模块之间的调用降低了系统的运行速度,可能会导致满足不了用户的性能要求,这时就需要将软件设计为单块集成软件
但是在设计时,最好按照模块化的原则进行设计,只是没有显式的模块定义而已
这样的程序也具有模块化的优点
性能是实现单块集成软件的唯一