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

本文提供了软件构造课程第二章部分奇数题目的解答,主要涉及模块化概念、软件测试、算法与数据结构的关系、模块化原则及耦合性解释。内容包括名词解释、模块化原则的讨论以及对不同耦合类型的举例。
摘要由CSDN通过智能技术生成

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

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

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

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

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

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

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

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

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

数据耦合

int 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;

Equation 
评论 24
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不知名小白猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值