基于案例的软件构造教程第二章课后题答案

1.名词解释:分解,模块化,逐步求精,软件测试,测试需求,测试设计,测试覆盖,软件调试,缺陷,软件质量,编程风格。

分解:把一个大的、错综复杂的问题划分成一个一个相对简单、独立的问题,运用合适的方法分别解决。
模块化:通过把一个程序分解成简单独立、互相作用的模块,对不同的模块设定不同的功能,来实现大型、复杂的程序。
逐步求精:将现实问题经过几次抽象(细化)处理,最后到求解域中只是一些简单的算法描述和算法实现问题。
软件测试:在规定的条件下对程序进行操作,以发现错误,对软件质量进行评估。
测试需求:组件/系统中能被测试用例验证的条目或事件。
测试设计:包含设计测试用例,实施哪些层次的测试、采用哪些测试工具或框架、如何组织人员测试等。
测试覆盖:指测试所包含的软件的特征、元素、成分等方面的程度或范围。
软件调试:指根据程序的出错情况,分析、猜测可能出现错误的程序区域,让程序运行,观察程序的变化来发现错误的根源。
缺陷:程序中存在的某种破坏正常运行能力的问题、错误,或者隐藏的功能缺陷。
软件质量:软件与明确地和隐含地定义的需求相一致的程度。
编程风格:编写代码的样式规则。

3.针对算法和数据结构的4种关系,除了本书给出的例子,你还能分别为4种情形举出若干例子吗?

一种数据结构、一种算法:最近公共祖先只对树这种数据结构才有意义。
一种数据结构、多种算法:数据结构采用图,支持的算法有最小生成树,最短路,DFS和BFS等。
多种数据结构、一种算法:BFS使用的数据结构可以是树也可以是图。
多种数据结构、多种算法:针对树和图,算法DFS和BFS均可使用。

5.模块化的基本原则是什么?如何评价程序的模块化?

模块化的基本原则:模块可分解性,模块可组装性,模块可理解性,模块连续性,模块保护性。
如何评价程序的模块化:用内聚性和耦合性的高低来评价。

7.解释模块耦合性的含义,对不同的耦合举例说明。

含义:是一个模块与系统内其他模块及与外部世界的关联程度的度量。
举例
非直接耦合:代码2.2中的printHeader和printExercise函数。
数据耦合:模块A实现两个数的加法操作,模块B实现两个加数的初始化,模块B将两个加数传给模块A,模块A进行相加。
标记耦合:模块A向模块B传递Object类型的数据。
控制耦合:模块A获取用户类型传递给模块B,模块B根据不同类型的用户提供不同的服务。
外部耦合:一组模块都访问同一全局简单变量而不是同一全局数据结构,而且不是通过参数表传递该全局变量的信息。
公共耦合:定义了一个全局变量a,在A、B、C模块中均调用了a。
内容耦合:模块A中定义了变量a,在模块B中直接使用了。

9.按照任务1的设计和输出,完成程序编写,并输出加法练习和减法练习各两套。
在这里插入图片描述
后面懒得写了 瞎抄别人的了

  • 11
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值