欢迎使用CSDN-markdown编辑器

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 <components>] <directory> [directory2 [directory 3]...]

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

文本界面命令如下:

java jdepend.textui.JDepend [-components <components>] [-file <output file>] <directory> [directory2 [directory 3] ...]

XML UI

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

java jdepend.xmlui.JDepend [-components <components>] [-file <output file>] <directory> [directory2 [directory 3] ...]

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提出.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值