Integrate Button Weblog

Archive for the 'Java' Category

Stelligent is hiring!

Tuesday, January 22nd, 2008

My employer, Stelligent, is hiring Senior Agile Consultants to work with our growing team of experts. See the job description here.

When people ask me why I enjoy working for Stelligent, the answer is simple: no two days are the same. At Stelligent, our consultants are able to work in many diverse environments whether it be an industry, a customer or a technical platform. We’ve worked on Java and .NET projects and we’ve created solutions using Ruby and Groovy. We are on the cutting edge of technology because our customers demand it. We’ve worked with financial services firms, health care, and philanthropic organizations. It makes for an exciting and dynamic environment.

Further, you’ll work with some of the leading experts in the areas of Continuous Integration, Test-Driven Development and other Agile practices. Contact Stelligent today to learn more about our employment opportunities.

Full-featured Continuous Integration System video demonstration

Tuesday, September 11th, 2007

In demonstrating the Use a CI Server practice from Continuous Integration: Improving Software Quality and Reducing Risk , I show you how to create a full-featured CI system using CruiseControl, Ant and various testing, inspection and deployment tools such as Cargo, DbUnit, JUnit, JavaNCSS, Selenium, Simian, JDepend, Subversion, Cobertura and CheckStyle .

The demonstration includes a fully-functioning (albeit small) web application. You will be able to access the full source of build scripts, CruiseControl configuration scripts, Java and other configuration files so that you can configure this in your environment as well.

If you’re interested in the mechanics of installing and configuring a CI system, this is the video for you .

Asserting architectural soundness article and podcast

Thursday, July 12th, 2007

IBM developerWorks recently interviewed me for my latest Automation for the people article called Asserting architectural soundness. Scott Laningham has a very efficient operation as the whole podcast interview process took no more than 10-15 minutes to complete. Asserting architectural soundness describes a technique to build checks into your build scripts so that you discover architectural violations as soon as they are introduced into the code. For instance, let’s say your presentation layer is making a direct call to your data layer and this is a violation to your architectural layering rules. By using the JDepend API, JUnit and Ant, I show how you can find out about this type of error as soon as you build your software. What’s more, if you’re using Continuous Integration, you’ll learn about the violation for any developer that commits code to the repository and in a consistent manner - several times a day.

CI Inspection Tools for Java

Friday, June 15th, 2007

Below, is a list of tools for running automated inspections (static and dynamic analysis) for the Java platform:

  • PMD - verify code is adhering to the project’s coding standards
  • CheckStyle - verify code is adhering to the project’s coding standards
  • CPD - Copy Paste Detector (part of PMD project)
  • Simian - Similarity Analyzer
  • JDepend - Object-oriented metrics for determining robustness of the architecture
  • JavaNCSS - tool for measuring cyclomatic complexity
  • SourceMonitor - tool for measuring cyclomatic complexity and general code metrics
  • Metrics - Eclipse plugin for gathering many types of code metrics
  • Coverlipse - code coverage tool for Eclipse
  • JDepend4Eclipse - JDepend plugin for Eclipse
  • Cobertura - Code Coverage tool
  • FindBugs - code metrics and analysis tool. Provides more advanced metrics than the “average” static analysis tools such as security warnings, etc.

In chapter 7, Continuous Inspection, we cover the practices, tools and techniques for discovering potential defects in your software.