第二章

1、1)分解:把一个大的,错综复杂的问题划分为一个一个相对简单、独立的
问题
2)模块化:模块化是把问题分解成容易理解,便于控制,便于实现的
子问题的一个重要手段,是实现控制复杂性的方式
3>逐步求精:不要求一步就编制成可执行程序,而是分若干步进行.
逐步求精
4>软件测试:描述一种用来促进鉴定软件正确性,完整性、安全性
和质量的过程
5>测试需求:组件/系统中能被一个/多个测试用例验证的条目/事件.
6>测试设计:由测试用例,层次测试,测试工具和自动化测试框架.
组成的测试方案
7>测试覆盖:测试所包含的软件特征,元素成分等方面的程度与范围
8>调试:理解程序的行为,发现可能的错误并排除
9>缺陷:产品开发或维护过程中所存在的错误毛病以及实现某种
功能的失效与违背。
10)软件质量:反映软件产品或服务满足明确的和隐含的能力总和
(1)编程风格:如何命名标识符、注释程序,编排程序格式
3.
一种算法,一种数据结构:线性表基本运算(求长度)
一种数据结构,一种算法:线性表的插入(头插法、尾插法)。
多种数据结构一种算法:用栈,二叉树实现四则运算
多种数据结构,多种算法:背包问题,降维计算
5.模块化原则
1.模块可分解性:2.模块可组装性.3、模块可理解性
4、模块连续性.
5.模块保护性.

模块化程序以函数作为基本单元,有助于了解转软件设计,使软件结构清晰,容易阅读与理解,并且容易测试与调试,提高软件可修改性。
7.耦合性是一个模块与系统内其他模块及与外部世界关联程度的度量
①非直接耦合
#include<stdio.h>
Void main()
{int a, b;printf("printaninteger mumber.“)
scanf(“%d,&a);
if(a<0)
printf("data emor!”);
else {b=fac(a);prt(b);}]
int fac(int n){.
intf;if(n0,n1)f÷1;
else f=fac(n-1)n; netum(f);}
void prt (int x)
此时。函数fac与prt之间为非直接耦合,因为他们之间的联系
完全通过主模块控制和调用来实现
②数据耦合
一个模块访问另一个模块,彼此之中是通过数据参数。
int.Multiply(int.xj.inty)
Multiply与main之间
{retum(X
y);}
为数据耦合
Veid main()l intx=0;
inty=0;
scanf(“%d%d”,&x,&y);

标记耦合

通过参数表传递记录信息

main(){ int j, b[1o];

for(i=0;j<10;j++)

b[j]=j;add(b[10]}

Void add (int a(10]).

{int s=0;s=a[3]+1;

printf(“%d\n”,s);}

main 与子函数之间为标记耦合。

控制耦合。
一个模块通过传送开关,标志,名字等控制信息明显控制另一模块功能。
static beol Signal;
Vaid. AdultOrNot(int.age)

{if(age>182
{Signal=1;}

else {signal==1;3}.

Void Wine OrNot(){

if(Signal==1){

printf(“%s\n”“已成年”了

else{
printf(“%s\n”“未成年”了)
int main()9 intAge=o;.printf.(“%s”“请输入年龄:”);
scanf(“%d”,&Age);
Adultor Not Age);}

外部耦合
一组模块都访问同一全局变量而不是同一金局数据结构。
int.a.b.
Vaid main()
{pin();b=a+l;prt();}
aidpi(){.printf (°pmiat aninteger number:“);
Scanf(%d&a);}
Void.prt().
fprintf(”%d/n“b);了
三个函数都存在外部耦合
公共耦合:若一组模块都访问同一个公共数据环境。
内容耦合:一个模块直接访问另一模块内部数据

  • 19
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 26
    评论
评论 26
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

无敌帅气的张泽中

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

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

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

打赏作者

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

抵扣说明:

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

余额充值