ter
This is the known list of java architecture-monitoring alternatives. Most or all of these are open source projects. If you know of any others, please mail the name of the project to the mailing list.
Contents |
SonarJ is free for open-source and private use, and more complete architecture monitoring solution than Architecture Rules is.
SonarJ is an innovative solution, that helps you to manage and monitor the logical architecture and the technical quality of your Java projects. The approach of SonarJ is absolutely unique on the market. It is light-weight and easy to use. It enables you to effectively avoid the well known effect of structural erosion. Without any extra overhead you can now make sure, that your logical architecture is implemented as planned. Moreover you can define thresholds for some key metrics affecting technical quality, that will allow you to maintain a high level of technical quality.
http://www.hello2morrow.com/en/sonarj/sonarj.php
Macker is a build-time architectural rule checking utility for Java developers. It’s meant to model the architectural ideals programmers always dream up for their projects, and then break — it helps keep code clean and consistent. You can tailor a rules file to suit a specific project’s structure, or write some general “good practice” rules for your code. Macker doesn’t try to shove anybody else’s rules down your throat; it’s flexible, and writing a rules file is part of the development process for each unique project.
Japan is an Ant task and IntelliJ plugin for checking you haven’t broken any of the package dependency rules within your Java project. For example, you might want to allow the ‘client’ and ’server’ packages to see ‘remote’, but not allow ‘remote’ to see ‘client’ or ’server’. Japan works on Java source files and the dependency rules are defined in an XML configuration file.
JDepend is not really an alternative, because Architecture Rules wraps JDepend, to make it easier to use and to make your rules easier to maintain and read. However, if you want to tackle JDepend on your own, or want to extend JDepend, then it could be considered an alternative.
JDepend traverses Java class file directories and generates design quality metrics for each Java package. JDepend allows you to automatically measure the quality of a design in terms of its extensibility, reusability, and maintainability to manage package dependencies effectively.
http://clarkware.com/software/JDepend.html
Classycle’s Analyser analyses the static class and package dependencies in Java applications or libraries. It is especially helpful for finding cyclic dependencies between classes or packages. Classycle is similar to JDepend which does also a dependency analysis but only on the package level.
Classycle’s Dependency Checker searchs for unwanted class dependencies described in a dependency definition file. Dependency checking helps to monitor whether certain architectural constrains (e.g. in a layered architecture) are fulfilled or not.
http://classycle.sourceforge.net/
Lattix is a comprehensive solution for architecture management. Lattix supports the analysis of Java, Spring Framework, Hibernate, .NET, C/C++, Ada, Delphi, Oracle, SQL Server, Sybase, UML/SysML and LDI.
Lattix provides tools and algorithms for architecture discovery, a means to specify architectural rules, support for architectural refactoring and the ability to track the evolution. Lattix supports a range of reports and metrics. Lattix has pioneered the use of Dependency Structure Matrix (DSM) for a highly scalable representation. Examine the demos or try it out.
http://www.lattix.com/products
Every project defines a set of rules that all (or most :-)) developers agree on. These rules can be coding conventions, naming conventions or at a higher level architecture decisions or best practices.
Usually these rules are either mentioned verbally or written in a “Developer Guide” (I am personally using an internal Wiki web site for sharing this best practices knowledge). However, it is not enough. How am I going to verify that I have properly coded against these rules?
Pattern Testing is about providing the means to automatically check for Architecture/Design/Implementation decisions.
http://patterntesting.sourceforge.net/05/whatis.html
Structure101 is a more complete solution for understanding, controlling and tracking evolving software architecture. Structure101 is free for use on open-source, $299 for personal use and $599 for commercial licenses.
Check out the demos or better still just download it and take it for a spin on your own code.
http://www.headwaysoftware.com/products/structure101/index.php