An efficient tool for effective code and design standards

written by mac on June 9th, 2009 @ 02:01 PM

As "SOA" or "Software Factory" are, "Code and design quality standards adoption" is still a myth. Today, what we see in many projects is a lot of costly tools that not brings expected added-value.

We believe that effective standards are standards that comes from the team members in a specific context. Thus the complexity for a team to create and maintain its own quality standards can be a real issue to achieve significant quality improvements across time.

A lot of quality check tools aim to provide ways to define your own quality standards by:

  • parameterizing predefined rules
  • developing new ones using their APIs

By experience, it can be a very tedious process to setup and maintain your own set of rules. Take a look at the process of "developing a custom quality rule" using the famous PMD trough the popular Sonar quality aggregator :

  1. Define the rules behavior by inheriting from AbstractRule.
  2. Package it in myCustomRules.jar
  3. Register your rule through a myCustomRules.xml file
  4. Add the custom jar to sonar runtime and configure the active profile for your project to register the new rule
  5. This is the theorical process. In fact you need to code, package and deploy in order to test and fix your rule in a real code sample.

Where is the added-value? Only in step one. The other steps are plumbing and it takes time.

Now take a look at the same process using XDepend:

  1. Define, Check, Affinate your rule with a real code oriented query language (CQL) and real-time execution environment (CQL Editor)
  2. Store your CQL query using a Java Annotation inside your code

Where is the added-value? Both of the steps are valuable to your project since the first allows you to design a perfectly tailored CQL query for your code and the second allows you to persist it right into your code.

XDepend lets you focus on "the rules definition" not its "integration inside tools". From this perspective, XDepend seamlessly brings added-value to the quality process.

Read more

  • Download Trial here
  • Getting started with XDepend here
  • More on CQL Queries inside source code here

Comments are closed