1.内聚与耦合:
【耦合】
耦合指的是模块之间的相对独立性(互相连接的紧密程度)的度量,耦合取决于各个模块之间的复杂程度、调用模块的方式以及通过接口的信息类型。
耦合的种类有:
无直接耦合:指两个模块之间没有直接的关系,他们分别属于不同模块的控制和调用,他们之间不传递任何消息。
数据耦合:数据耦合:一个模块访问另一个模块时,彼此之间是通过简单变量(不是控制参数、公共数据结构和外部变量)来交换输入、输出信息的,这种耦合为数据耦合
标记耦合:指两个模块之间传递的是数据结构。
控制耦合:一个模块通过传送开关、标志、名字等控制信息,明显地控制选择另一模块的功能,称为控制耦合
外部耦合:模块间通过软件之外的环境连接,如I/O设备等时称为外部耦合。
公共耦合:指通过一个公共数据环境相互作用的那些模块之间的耦合。
内容耦合:一个模块直接访问另一个模块的内部数据;一个模块不通过正常入口转到另一模块内部;两个模块有一部分程序代码重叠;一个模块有多个入口。
其中无直接耦合耦合度最低,模块独立性最强;内容耦合的耦合度最高,模块独立性最差。
【内聚】
内聚是对一个模块内部各个元素彼此结合的紧密程度的度量。一个内聚程度高的模块在理想状态下应该只做一件事。
模块的种类有:
偶然内聚(巧合内聚):指一个模块内部各个处理元素之间没有任何联系
逻辑内聚:指各个模块内执行各若干个逻辑上相似的功能,通过参数来确定该模块完成哪个功能。
时间内聚:把需要同时执行的动作组合在一起形成的模块称为时间内聚模块
过程内聚:指一个模块完成多个任务,这些任务必须按指定的过程执行
通信内聚:指模块内的所有处理元素都在同一个数据结构上操作,或者各处理使用相同的输入数据或者产生相同的输出数据。
顺序内聚:指一个模块中的各个处理元素都紧密相关于同一个功能且必须顺序执行,前一个功能元素的输出就是下一个功能元素的输入。
功能内聚:指模块内的所有元素共同完成一个功能,缺一不可。
其中偶然内聚的内聚性最低,功能分散;功能内聚的内聚性最高,功能最单一
2.桩程序和驱动程序
假设现在项目组把任务分给了7个人,每个人负责实现一个模块。你负责的是B模块,你很优秀,第一个完成了编码工作,现在需要开展单元测试工作,先分析结构图:
1、由于B模块不是最顶层模块,所以它一定不包含main函数(A模块包含main函数),也就不能独立运行。
2、B模块调用了D模块和E模块,而目前D模块和E模块都还没有开发好,那么想让B模块通过编译器的编译也是不可能的。
那么怎样才能测试B模块呢要做:
1、写两个模块Sd和Se分别代替D模块和E模块(函数名、返回值、传递的参数相同),这样B模块就可以通过编译了。Sd模块和Se模块就是桩模块。
2、写一个模块Da用来代替A模块,里面包含main函数,可以在main函数中调用B模块,让B模块运行起来。Da模块就是驱动模块。
3.McCabe度量法
绘制流程图,环路复杂度=弧数-结点数+2。
4.软件维护
5.模块间耦合程度
模块间耦合的高低取决于模块间接口的复杂性,调用的方式以及传递的消息
6.后缀式
9.软件配置
11.DHCP/FTP
并联系统:
16.语法分析的输入
记 流
17.磁盘调度
先进行移臂调度(寻找磁道),再进行旋转调度(寻找扇区)
18.
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!