mccabe java_面向过程及面向对象的扇入及扇出

article/2025/8/28 23:28:13

面向过程的扇入及扇出:

扇入:是指直接调用该模块的上级模块的个数。即:called by个数 (在McCabe 里度量名称为Fan in)

扇出:该模块直接调用的下级模块的个数。即:calls to 个数(在McCabe 里度量名称为Fan out)

面向对象的扇入及扇出:

扇入:派生类的数量:即一个子类继承的父类个数。通俗的讲即有多个个父类产生了此子类。(在McCabe 里度量名称为Fan in)

扇出:由一个类衍生出类的数量:即一个父类产生的子类个数。(在McCabe 里度量名称为NOC)

实例代码:

父类:People.java

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

1 public classPeople {2 privateString name;3 private intage;4

5 public People(String myName,intmyAge){6 this.name =myName;7 this.age =myAge;8 }9

10 public voideat(){11 System.out.println("I am eating");12 }13

14 public voidsleep(){15 System.out.println("I am sleep");16 }17

18 public voiddoWork(){19 this.eat();20 this.sleep();21 System.out.println("I am goto work");22 }23

24 }

View Code

子类1:Students.java

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

1 public class Students extendsPeople{2 privateString mySchool;3

4 public Students(String myName, intmyAge, String mySchool) {5 super(myName, myAge);6 //TODO Auto-generated constructor stub

7 this.mySchool =mySchool;8 }9

10 public voidgoSchool(){11 this.doWork();12 System.out.println("I am goto school");13 }14 }

View Code

子类2:Worker.java

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

1 public class Worker extendsPeople{2 privateString address;3

4 public Worker(String myName, intmyAge,String address) {5 super(myName, myAge);6 //TODO Auto-generated constructor stub

7 this.address =address;8 }9

10 public voiddoJob(){11 this.doWork();12 System.out.println("I am goto job");13 }14 }

View Code

主类:Famly.java

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

public classFamly {public static voidmain(String[] args) {//TODO Auto-generated method stub

Students stu = new Students("xx",15,"qinghua");

Worker wor= new Worker("yy",35,"tonghuashun");

stu.goSchool();

wor.doWork();

}

}

View Code

使用McCabe分析的类调用关系图:

24211d2ccf02fe735c9aee11f2d3f3c1.png

People父类产生了子类Students 及Worker,故People类的扇出NOC为2,Students及Worker类的扇入Fan in为1。

McCabe度量信息截图如下:

fbb12fe74589dfb89740d1a4586edab9.png

使用McCabe分析模块调用关系图如下:

66a03fcfb1f7bc683a0754c55e8e5710.png

doWork方法调用了eat方法及sleep方法,故doWork方法的扇出为2,因doWork方法也调用了类方法system.out.println故:doWork的扇出为3;

同理eat方法及sleep方法的扇入为1,扇出为1。

使用McCabe分析如下:

针对eat模块扇入扇出分析如下:

75f7dce90b9f5a5ba4cb8b8578eb0260.png

针对doWork模块扇入扇出分析如下:

4e6666e25af4e5bc3d825090c36e2eaf.png


http://chatgpt.dhexx.cn/article/jaOjrKvU.shtml

相关文章

代码静态分析思维体操—扇入、扇出、圈复杂度

静态分析是一种检查代码的方法,无需执行程序。它提供了一种机制,可以审查代码结构、控制流和数据流,检测潜在的可移植性和可维护性问题,计算适当的软件质量测度。 其中控制流分析包括:扇入、扇出和圈复杂度。 常见流程图结构 一种常见的程序分析方法是通过生成程序的有向控…

FPGA Fanout-Fanin(扇入扇出)

在谈到多扇出问题之前,先了解几个相关的信息,也可以当成是名词解释。 扇入、扇出系数 扇入系数是指门电路允许的输入端数目。一般门电路的扇入系数为1—5,最多不超过8。扇出系数是指一个门的输出端所驱动同类型门的个数,或称负载…

关于 FPGA 内部信号扇入扇出

转自https://www.cnblogs.com/dxs959229640/p/3870189.html 关于 FPGA 内部信号扇入扇出 扇入、扇出系数 扇入系数是指门电路允许的输入端数目。一般门电路的扇入系数为1—5,最多不超过8。扇出系数是指一个门的输出端所驱动同类型门的个数,或称负载能力。…

软件工程考试选择题:模块的扇入扇出 深度宽度

ABCD A常作为总体设计工具的是HIPO图 B 顶层扇出大,中间扇出小,扇出指一个模块调用的模块数。 C组合是一种特殊形式的聚合关系 D状态图 扇入扇出 启发规则 一.改进软件结构提高模块独立性 初步结构分解或合并,降低耦合提高内聚。 二.模块规模应该适中 过大分…

静态分析—扇入、扇出、圈复杂度

静态分析是一种检查代码的方法,无需执行程序。它提供了一种机制,可以审查代码结构、控制流和数据流,检测潜在的可移植性和可维护性问题,计算适当的软件质量测度。 其中控制流分析包括:扇入、扇出、圈复杂度。 常见的…

Go语言并发之扇入和扇出

1、Go语言并发之扇入和扇出 编程中经常遇到扇入和扇出两个概念,所谓的扇入是指将多路通道聚合到一条通道中处理,Go 语言最简单的扇入 就是使用 select 聚合多条通道服务;所谓的扇出是指将一条通道发散到多条通道中处理,在Go语言…

DWcc2018免费下载及详细安装教程

DWcc2018下载及安装教程(内附安装包下载链接) 安装包下载: 百度网盘下载链接链接:https://pan.baidu.com/s/1tCkVVobfiUWSIrZuc7OOIg 提取码:0bb5 也可保存下方图片,微信扫码即可下载 安装步骤&#xff1a…

dreamweaver (dw)cc 2017

dreamweaver cc 2017是一款在目前工作中最优越的网页设计软件,被简称称为dw cc 2017。新版本比以往任何时候都变得更加专注、高效和快速,拥有和全新代码编辑器和更直观的用户界面和多种增强功能。比如对css预处理器等新工作流程的支持,可以提…

DW小知识

1.学习网页开发,首先你得知道怎么编写和构造HTML标记,用HTML标记传达你想要给用户展示的内容,比如文字、图片、音频和视频等。用HTML标记内容的目的是为了赋予网页语义,换句话讲就是要给你的网页赋予某些用户代理能够理解的含义。…

dwcc怎么设置html默认,Dreamweaver CC 2019如何设置界面首选项?

设置界面首选项 Dreamweaver为用户提供了对基本程序界面的广泛控制。您可以按照自己的喜好设置、安排和 定制各种面板。开始本书课程之前,您应该首先访问的位置之一是Dreamweaver Preferences (首选项)对话框。 利其他Adobe应用一样,首选项对话框提供描述…

html锚点链接dw怎么做,最新的DW中的锚点在哪

CSS布局HTML小编今天和大家分享dreamweaver cc2018的锚点跟跳转菜单在哪 DW中怎样让页面按钮链接到另一个页面的锚点 Dreamweaver里怎么制作锚点链接,跳到当前网页顶端?Dreamweaver里怎么制作锚点链接,效果:跳到当前网页的顶端&am…

创建 DW 项目

开发工具与关键技术: DW 作者:陈海涛 撰写时间:2021/4/27 1.首先创建一个文件夹,再在里面创建三个文件夹(注意:不能使用 中文来命名) 2.打开 DW,然后点击 CTALN 或者点击左上…

网页设计软件dw cc 2019 mac激活方法

Dreamweaver CC 2019 for mac是知名的网站和网页设计软件,简称dw,是设计师和程序员必备的网页代码编辑器,新版本的dw cc 2019 mac破解版提供了JavaScript重构功能、全新的EcmaScript 6支持,而且dw cc2019破解版与Chromium嵌入式框架的最新版本进行集成,这样用户可以轻松构…

DW CC2019软件安装破解教程(附安装包下载)

DW CC2019 64bit下载地址: 链接: https://pan.baidu.com/s/15dYmXLPvqDt2p-IepYrUdQ 密码:5rwp 安装中有任何问题添加QQ群:606940296(备注软件出现问题) 软件介绍 Adobe Dreamweaver CC 2019是Adobe公司…

网页设计软件dw cc2019直装版

Dreamweaver CC 2019 for mac是Web设计人员和开发人员设计必备的软件,dw 2019 mac破解版支持HTML、CSS、JavaScript等,功能十分强大,可以轻松帮助用户设计精美的网站网页,这次Dreamweaver cc 2019 mac破解版主要针对安全性增强功能、JavaScript重构、ECMAScript 6支持、Git…

DWCC2018HTML网页字体添加、更改

一般情况下,DWCC2018里是没有像宋体、楷体、微软雅黑之类的字体,我们可以将系统自带的字体添加到DWCC中 1、添加软件内没有的字体 **①打开DWCC2018→工具** ![在这里插入图片描述](https://img-blog.csdn.net/20181007163628785?watermark/2/text/aHR…

DWCC2018HTML基本网页设计技巧方法详解

目录: 一、文本格式化标记 ----------------------1、各类标签及描述 二、HTNL链接 ----------------------1、HTML链接语法 ----------------------2、在当前页面跳到指定位置 ----------------------3、图片链接 三、插入视频、图片、列表项、邮件链接等 --------…

dwcc2019写php,mac网页设计软件:DreamweaverCC2019(dwcc2019直装版)

dw cc 2019 Mac新增功能 dw cc 2019 Mac推出了一些令 Web 设计人员和开发人员激动无比的新增功能。 1、JavaScript 重构 作为 Web 开发人员,您现在可以使用 JavaScript 重构,利用范围感知功能智能地重命名函数和变量。只需一次单击,您就可以将…

DWCC2018基本网页设计注意要点、使用技巧

目录: 一、注意要点 -------------1、“实时视图”“设计”的选择 -------------2、调出属性框 -------------3、在浏览器中实时浏览自己的网页 二、部分使用技巧 -------------1、文本格式化标记 -------------2、网页整体属性编辑 -------------3、插入视频、列表…

解决Windows10/11系统DWcc2021安装失败打不开问题 Adobe Dreamweaver CC2021详细安装教程

最初为美国MACROMEDIA公司开发 ,2005年被Adobe公司收购。dw是集网页制作和管理网站于一身的所见即所得网页代码编辑器。利用对 HTML、CSS、JavaScript等内容的支持,设计师和程序员可以在几乎任何地方快速制作和进行网站建设快速,灵活的编码。…