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

面向过程的扇入及扇出:

扇入:是指直接调用该模块的上级模块的个数。即: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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值