试题详情
- 简答题递归模块(即自己调用自己的模块)的概念如何能够与本章所介绍的设计原理与方法相适应?
-
归过程在求解复杂的大型问题时非常有效。常用的求解问题的方法,一种叫做“分而治之”的策略和“回溯”的策略,都可以用递归方法来解决。所谓“分而治之”的方法即是把大而复杂的问题化为规模稍小的子问题,用同样方法求解。如果分解后的子问题能够直接解决,就直接解出,然后再回推得到原来问题的解。所谓“回溯”方法就是如果一个大的问题在求解过程中从某一步出发有可选的多种解决方案,先选择一种解决方案,试探求解。如果求解失败,撤消原来的选择,再选一种解决方案,试探求解,……。如果用某一方案求解成功,则退回上一步并报告这一步求解成功;如果所有可选方案都试过,都求解失败,则退回上一步并报告求解失败。
软件设计过程中的“自顶向下,逐层分解”的做法与上述求解问题的策略是一致的。如果分解出来的子问题(子功能、子模块)相互独立性比较强,这种分解可以降低模块的复杂性,做到模块化。所以,只要分解出来的子问题与原来问题满足递归的情况,用递归方法建立模块结构也是可行的。 关注下方微信公众号,在线模考后查看
热门试题
- 如果模块之间耦合性太高,每个模块内功能不
- 软件产品的特性是什么?
- 在软件需求分析时,首先建立当前系统的物理
- 考虑一个计算机超市,出售硬件、外设和软件
- 通常系统的需求可以分为哪几个层次?
- 对小的程序进行穷举测试是可能的,用穷举测
- 交互设计不包括()
- 容错定义?容错的方法?
- 对于给定的算法,如何判断它是否是结构化的
- 快速原型化思想是在研究()阶段的方法技术
- SD方法能方便地将数据流图转换为软件结构
- 软件开发技术主要研究内容?
- 软件的质量反应在哪些方面?
- 下面哪一项是软件工程学科的研究内容()。
- 请给出构件的一般性定义,然后给出传统的软
- 软件工程是开发、运行、维护和修复软件的系
- 什么是软件开发方法?有哪些主要开发方法?
- 对于复杂的系统,其对象模型应该由哪五个层
- 软件工程是一类求解软件的工程。它涉及计算
- 为了提高软件开发过程的(),有效地进行管