资讯专栏INFORMATION COLUMN

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

mist14 / 1370人阅读

摘要:解释模块耦合性的含义,对不同的耦合举例说明耦合性,也叫耦合度,是对模块间关联程度的度量。模块间的耦合度是指模块之间的依赖关系,包括控制关系调用关系数据传递关系。软件设计中通常用耦合度和内聚度作为衡量模块独立程度的标准。

这篇文章只提供题号为 奇数 的答案,因为是我们的NT老师要求的

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

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

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

5. 模块化的基本原则是什么?如何评价程序的模块化?
单一职责原则,里氏替换原则,依赖倒置原则,接口隔离原则,迪米特原则,开闭原则
(1)有利于程序复用。
把功能模块化之后有利于程序后续开发的复用,这样可把公共的功能进行深入的抽象、优化。

(2)利于系统开发集成
模块化的功能,明确了本模块的职责,已定的模块只负责该模块的特定功能,这样以系统以后做集成、重构神马的时候将会有很大的便利之处。

(3)利于调试、后续功能拓展
程序模块化后,单个模块既是系统的组成部分,也是个多带带的个体,对于系统开发而言,针对单个模块进行调试往往会比整个系统的调试要方便得多。并且在系统要进行后续开发的时候,把要拓展的功能拆分到具体的模块当中这样把大大减轻了开发难度及成本等。

(4)代码结构清晰易读
在编写代码的时候把程序模块化,这样将使得代码的可读性更强。把方法的职责明确且单一化(即一个方法只做一件固定的事情),在以后维护的时候大大减少维护人员在阅读理解代码上时间。

7. 解释模块耦合性的含义,对不同的耦合举例说明
耦合性,也叫耦合度,是对模块间关联程度的度量。耦合的强弱取决与模块间接口的复杂性、调用模块的方式以及通过界面传送数据的多少。模块间的耦合度是指模块之间的依赖关系,包括控制关系、调用关系、数据传递关系。模块间联系越多,其耦合性越强,同时表明其独立性越差。软件设计中通常用耦合度和内聚度作为衡量模块独立程度的标准。划分模块的一个准则就是高内聚低耦合。

数据耦合

sum(int a, int b) {	int c;	c = a + b;	return c;}main() {	int x, y;	printf("x+y=%d", sum(x, y));}

主函数与sum函数之间即为数据耦合关系

控制耦合

void output(int flag) {	if(flag) printf("OK!");	else printf("NO!");}main() {	int flag;	output(flag);}

主函数与output函数之间即为控制耦合关系.

内容耦合

public class Product {	public float unitPrice;	......}public class Order {	private Product p = new Product();	public void setItem() {		p.unitPrice = 100;	}}

Product 类与 Order 类构成内容耦合

非直接耦合

void PrintDog() {	System.out.println("汪汪汪");}void PrintCat() {	System.out.println("喵喵喵");}public static void main(String[] args) {	printDog();	printCat();}

标记耦合

typedef equation {    int a;}Equation;void generateExercise(){    Equation e;    return e;}void printExercise(Equation e) {    ...}main() {    generateExercise();    printExercise(e)}

两个函数为传递了数据结构Equation的函数,视为标记耦合

外部耦合

import com.la.pojo.Dog;public static void main(String[] args) {	private Dog dog;}

使用import引入另一个软件包就产生了外部耦合

公共耦合

int temp;void student() {	temp = 1;	......}void teacher() {	......	temp = 3;	......}

一组函数都访问同一个公共数据环境就构成公共耦合

9. 按照任务1的设计和输出,完成程序编写,并输出加法练习和减法练习各两套
老子不打算写这个,谁愿意写这个写去吧,后面也别看了,我也没写出来

11. 针对2.2.2节的设计1,编写完整的程序,并给出一套题的输出
我也不想写

13. 如果要求习题中不允许有相同的算式,(1)请修改代码2.2、2.2.2节设计1的代码,以及2.2.2节设计2的代码,并分别输出;(2)思考:如何确定写出程序满足这个要求呢?
我也不想写

15. 用C/JAVA/Python等语言采用结构化编程,…

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/121066.html

相关文章

  • 慕课版软件质量保证与测试(第一章.课后作业)

    摘要:慕课版软件质量保证与测试第一章课后作业一选择题二填空题三判断题四解答题一选择题缺陷产生的原因包括交流不充分及沟通不畅软件需求的变更软件开发工具的缺陷软件的复杂性软件项目的时间压力程序开发人员的错误软件项目文档的缺乏以上 ...

    masturbator 评论0 收藏0
  • iKcamp出品|全网最新|微信小程序|基于最新版1.0开发者工具之初中级培训教程分享

    摘要:微信小程序课程,面向所有具备前端基础知识的同学官网访问官网更快阅读全部免费分享课程出品全网最新微信小程序基于最新版开发者工具之初中级培训教程分享。 ?? 微信小程序课程,面向所有具备前端基础知识的同学 ?? iKcamp官网:http://www.ikcamp.com 访问官网更快阅读全部免费分享课程:《iKcamp出品|全网最新|微信小程序|基于最新版1.0开发者工具之初中级培训教...

    hersion 评论0 收藏0
  • iKcamp出品|全网最新|微信小程序|基于最新版1.0开发者工具之初中级培训教程分享

    摘要:微信小程序课程,面向所有具备前端基础知识的同学官网访问官网更快阅读全部免费分享课程出品全网最新微信小程序基于最新版开发者工具之初中级培训教程分享。 ?? 微信小程序课程,面向所有具备前端基础知识的同学 ?? iKcamp官网:http://www.ikcamp.com 访问官网更快阅读全部免费分享课程:《iKcamp出品|全网最新|微信小程序|基于最新版1.0开发者工具之初中级培训教...

    MRZYD 评论0 收藏0
  • iKcamp出品|全网最新|微信小程序|基于最新版1.0开发者工具之初中级培训教程分享

    摘要:微信小程序课程,面向所有具备前端基础知识的同学官网访问官网更快阅读全部免费分享课程出品全网最新微信小程序基于最新版开发者工具之初中级培训教程分享。 ?? 微信小程序课程,面向所有具备前端基础知识的同学 ?? iKcamp官网:http://www.ikcamp.com 访问官网更快阅读全部免费分享课程:《iKcamp出品|全网最新|微信小程序|基于最新版1.0开发者工具之初中级培训教...

    李昌杰 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<