欢迎使用CSDN 您所在的位置:网站首页 markdown序列图 欢迎使用CSDN

欢迎使用CSDN

2023-04-22 18:45| 来源: 网络整理| 查看: 265

JDepend介绍 本篇翻自JDepend文档,原文链接在此。 摘要 JDepend遍历Java类文件目录和产生每个Java包的设计质量度量. JDepend 能够自动对设计质量的可扩展性、可重用性和可维护性进行度量,来有效的管理包依赖。

概述 JDepend遍历Java类文件目录和产生每个Java包的设计质量度量,包括: 类和接口的数目Number of Classes and Interfaces:包中具象类与抽象类(接口)的数目作为该包可扩展性的指示器。 传入耦合Afferent Couplings (Ca):依赖该包(包含的类)的外部包(类)的数目,作为该包的责任指数。(注,责任指数越大表示该包越稳定) 传出耦合Efferent Couplings (Ce):被该包依赖的外部包的数目,作为该包的独立性指数。(注:该数值越大,说明该包越不独立(因为依赖了别的包),也越不稳定。) 抽象度Abstractness (A):在被分析包中抽象类(和接口)的数目与类的总体数目的比例。度量值处于0,1之间,若A=0,说明包是一个完全具象的包;若A=1,说明包内全部是抽象类或接口。 不稳定性Instability (I):传出耦合与所有耦合的比例:I=Ce/(Ce+Ca)。对包的对改变的适应性。它的值处于[0,1]之间。I=0时说明包是最稳定的,反之I=1则说明包极不稳定。 Distance from the Main Sequence (D): 一个包与该包理想化程度的距离,它可以用二维直线图 A + I = 1 来表示。度量指示出包的抽象度与稳定度间的平衡关系。 主序列上的包的优化是对它的抽象性和稳定性的平衡。理想化的包是即完全抽象和稳定的(x=0, y=1) 或完全具象和不稳定的(x=1, y=0) 。 度量值处于[0,1]之间,D=0表示一个包与主要序列一直,D=1表示包与主要序列相差太远。 包的循环依赖度Package Dependency Cycles:包的循环依赖度反映了在包依赖环中包的层次路径。

为什么使用JDepend? blablabla… Installing JDepend Building and Testing JDepend

运行JDepend JDepend提供一个图形化、文本化和XML用户接口来可视化Java包的度量,依赖和环。 Graphical UI 图形用户界面展示了每个分析的Java包的传入和传出耦合的层次树。

使用图形界面运行,命令如下:

java jdepend.swingui.JDepend [-components ] [directory2 [directory ]...]

Textual UI 文本化用户界面展示每个被分析包的详细度量、依赖和环。为了方便将度量输出到其他应用,摘要部分包含了每个包的以逗号分隔的度量。可选的,XML用户接口可以用来在其他工具中早期集成。

文本界面命令如下:

java jdepend.textui.JDepend [-components ] [-file ] [directory2 [directory ] ...]

XML UI

XML用户界面展示每个被分析包的详细度量、依赖和环,以XML格式方便在其他工具中集成。 XML UI运行命令如下:

java jdepend.xmlui.JDepend [-components ] [-file ] [directory2 [directory ] ...]

For example, to analyze all the Java class files in the $JDEPEND_HOME/build directory, use:

java jdepend.xmlui.JDepend $JDEPEND_HOME/build Alternatively, the XML report can be written to file using:

java jdepend.xmlui.JDepend -file report.xml $JDEPEND_HOME/build

Graphical UI Navigation 。。。。 局限性 JDepend有以下已知的局限性:

环依赖性检测不会报告给定包里所有可接触的循环。一旦检测到任何一个给定循环,检测算法就会停止。若同一个循环可从另一包检测到,这个循环会报告不止一次。你通常很想移除任何循环。

JDepend不收集源码复杂性度量,如果你对收集此类度量感兴趣,推荐JAVANCSS工具给你 JDepend 出产的设计质量度量不完美,它旨在实际运用,测量设计相对可靠,但不能当作所有设计的码尺。 java接口被认为是java抽象类等同,也就是说,虽然在带有抽象的具象中使用接口有设计优势,Jdepend在抽象的计算方面没有区分。同样,除了接口外,不论它们是否像其接口类能在包外引用,实现接口的抽象类被算作抽象类。 JDepend目前不支持包中每个类的Ca和Ce的计算。JDepend直接通过基于包的导入分析来计算Ca和Ce包中传入和传出耦合。该计算方法区别于原本的Ca和Ce,由Robert Martin提出.



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有