软件工程之内聚类型的判断

内聚是软件工程中描述模块内部元素之间联系紧密程度的概念。它反映了一个模块内部元素(如函数、类、模块等)相互关联程度的强弱,以及它们是否集中在实现某一特定功能上的程度。高内聚度意味着模块内部元素之间联系紧密,共同完成一个特定的任务或目标;而低内聚度则表示模块内的元素相对独立,功能分散,没有明确的关联性。

以下是一些判断内聚类型的方法:(内聚度由高到底排序)

 1. 功能內聚(Functional Cohesion)
- 特点:模块内的元素共同实现一个功能,彼此关联紧密。
- 判断标准:如果模块内的元素主要集中在实现某一特定功能,共享数据,且彼此之间的关系紧密,则为功能內聚。

 2. 序列內聚(Sequential Cohesion)
- 特点:模块内的元素按照顺序执行,一个元素的输出是下一个元素的输入。
- 判断标准:如果模块内的元素按照一定的顺序依次执行,且后一个元素需要前一个元素的输出作为输入,则为序列內聚。

 3. 通信內聚(Communicational Cohesion)
- 特点:模块内的元素共享数据,彼此之间通过传递数据来完成一定的功能。
- 判断标准:如果模块内的元素共享数据并通过数据交换来完成一定的功能,例如传递一个结构体或者对象,共享某个数据结构,则为通信內聚。

 4. 过程內聚(Procedural Cohesion)
- 特点:模块内的元素通过一系列步骤或过程来实现一个功能。
- 判断标准:如果模块内的元素通过一系列步骤或者过程相互关联,按照某个顺序执行以实现某个功能,则为过程內聚。

 5. 时间內聚(Temporal Cohesion)
- 特点:模块内的元素在同一时间段内执行。
- 判断标准:如果模块内的元素在同一时间段内被执行,且没有明确的执行顺序或依赖关系,则为时间內聚。

 6. 逻辑內聚(Logical Cohesion)
- 特点:模块内的元素按照一定的逻辑条件或关系执行。
- 判断标准:如果模块内的元素按照一定的逻辑条件或者关系进行执行,例如通过判断条件来执行不同的功能,则为逻辑內聚。

 7. 偶然內聚(Coincidental Cohesion)
- 特点:模块内的元素没有明确的关联性或逻辑关系,只是因为偶然性而在同一个模块中。
- 判断标准:如果模块内的元素没有明确的关联性或逻辑关系,只是因为偶然性而在同一个模块中,则为偶然內聚。

通过分析模块内部元素的功能、数据共享、执行顺序等特征,可以判断出模块的内聚类型。通常情况下,高内聚度有利于提高系统的可维护性、可理解性和重用性。

举个例子说明如何判断?

假设我们有一个简单的图书管理系统,其中包含几个功能模块,例如图书管理模块、借阅记录模块和用户管理模块。我们可以通过对这些模块的功能和元素之间的关联程度进行分析,来判断它们的内聚类型。

 1. 功能关联性

- 图书管理模块:负责图书的增加、删除、修改和查询等操作。
- 借阅记录模块:记录用户借阅图书的信息,包括借书日期、归还日期等。
- 用户管理模块:管理系统中的用户信息,包括注册新用户、修改用户信息等。

判断:每个模块都具有明确的功能,且集中在实现特定的任务上,因此这些模块属于功能内聚。

 2. 数据共享

- 图书管理模块:需要访问图书的相关信息,如书名、作者、出版社等。
- 借阅记录模块:需要访问用户信息和图书信息。
- 用户管理模块:需要访问用户的个人信息,如姓名、联系方式等。

判断:这些模块都需要访问共享的数据,例如图书信息和用户信息,因此它们属于通信内聚。

 3. 执行顺序

- 图书管理模块:操作图书的增删改查没有特定的先后顺序,可以根据需要执行。
- 借阅记录模块:需要先借书,然后才能记录借阅信息,归还图书的操作也是有顺序的。
- 用户管理模块:注册用户需要先输入信息,然后保存用户信息。

判断:借阅记录模块和用户管理模块具有明确的执行顺序,因此它们属于序列内聚;而图书管理模块的操作顺序相对灵活,属于功能内聚。

 4. 逻辑关系

- 图书管理模块:根据用户的操作(如增加、删除、修改、查询),执行相应的逻辑。
- 借阅记录模块:根据用户的借书和还书操作,记录相应的借阅信息。
- 用户管理模块:根据用户的注册和修改信息操作,执行相应的逻辑。

判断:每个模块内的元素按照一定的逻辑条件或关系执行,因此它们属于逻辑内聚。

综合以上分析,可以得出这个图书管理系统中的模块内聚类型:

- 图书管理模块:功能内聚
- 借阅记录模块:序列内聚 + 通信内聚
- 用户管理模块:逻辑内聚 + 通信内聚

这种分析方法可以帮助我们理解模块之间的关联程度,从而更好地设计和组织软件系统,提高系统的可维护性和可扩展性。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值