目录
前言
课题背景和意义
实现技术思路
实现效果图样例
前言
📅大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。近几年各个学校要求的毕设项目越来越难,有不少课题是研究生级别难度的,对本科同学来说是充满挑战。为帮助大家顺利通过和节省时间与精力投入到更重要的就业和考试中去,学长分享优质的选题经验和毕设项目与技术思路。
🚀对毕设有任何疑问都可以问学长哦!
大家好,这里是海浪学长毕设专题,本次分享的课题是
🎯C++程序类内聚度的计算与存储
课题背景和意义
如今市场上应用软件层出不穷,需要一款测量面向对象系统的类内聚度的程序,设计者基于现有的计算类内聚度的方法,设计并实现C++语言类内聚度度量工具。
系统使用Java语言,利用Eclipse工具进行编写,并且使用了MySQL WorkBench工具对MySQL数据库进行相应管理。系统对被测代码进行扫描与分析,找出被测代码中的成员变量、方法以及每种方法中所使用的属性。为了能够更加准确而直观的反应被测代码的类内聚度,通过LCOM1、LCOM2、LCOM3、LCOM4、CO、LCOM5、COH、TCC、LCC多种内聚度,进行类内聚度计算。
结果表明,由于多种类内聚度计算的方法侧重点不同,能从不同角度了解类内聚度的值,在实际设计一个质量优良的类的过程中可以起到良好引导的作用,这不仅能够提高一个程序的可维护性,还能提高程序的可复用性。开发C++程序类内聚度的计算与存储软件主要是为了分析代码的类内聚度,以计算结果作为实际设计一个质量优良的类参考,从而提高代码质量以及可维护性。
实现技术思路
定义
定义名 | 解释 |
内聚度 | 前述信息隐藏和局部化概念的自然扩展,它标志着一个模块内部各成分彼此结合的紧密程度。内聚度可按高低程度总共分为7个等级,一般来说内聚度越高越好。 |
LCOM1 | 计算的是类中没有共享实例变量的方法对数目。 |
LCOM2 | 计算类中有共享实例变量的方法对数目与没有共享实例变量的数目差值。 |
LCOM3 | Li和Henry提出LCOM3计算类中没有共享实例变量的方法集数目。后来Hitz和 Montazeri重新定义了LCOM3。他们以图论为基础统计类中两个不同方法中至少有一个共享实例变量的方法对数。 |
CO | CO度量方法计算的是类中存在的有共享实例变量的方法对数目与可能存在的方法对数目的比值。 |
LCOM5 | 计算的是属性被方法平均访问的个数,是一个相对概念。 |
COH | 与LCOM5类似,都以一个相对比值作为度量消除了类中方法个数对度量结果的影响。 |
TCC | 计算出类中有直接关联的方法对数目与类中最大可能存在的方法对数目的比值。 |
LCC | 计算出了类中有直接或间接关联方法对数目与最大可能存在的方法对数目比值。 |
功能模块设计
C++程序类内聚度的计算与存储系统采用了多种方法计算类的内聚度,将LCOM1、LCOM2、LCOM3分为一类计算,通过类名查找类名ID,通过类名ID查找数据库中的方法名表、属性名表、关系表,创建一个方法对类,对属性进行遍历,对方法进行遍历,查找具有同一属性的方法对,将它们存入方法对集合中,得到具有相同属性的方法对。LCOM1计算未共享变量的方法对,LCOM2计算没有共享变量与共享变量的方法对的差值,LCOM3计算共享变量的方法对。将LCOM4与CO分为一类计算,LCOM4与LCOM3近似,它们的差异在于LCOM4需计算的是共享变量的方法对要存在调用关系。CO计算实际共享变量的方法对与可能存在共享变量的方法对的数目的比值。将LCOM5、COH分为一类计算,求得类中方法的集合、类中属性的集合、类中访问每一个属性的方法对的数目,通过计算公式求得LCOM5的结果。COH是LCOM5计算公式的变形。将TCC、LCC分为一类计算,求得类中最大可能共享变量的方法对以及共享变量的方法对之间具有直接关联关系的方法对数目,通过计算公式求得TCC的结果。LCC与TCC近似,但还需计算共享变量的方法对之间具有间接关联关系的方法对数目。
实现效果图样例
我是海浪学长,创作不易,欢迎点赞、关注、收藏、留言。
毕设帮助,疑难解答,欢迎打扰!