Findbugs Architecture

14
© Headway Software 2009 The Evolution of Findbugs Architecture

description

A short presentation on the evolution of the Findbugs architecture and the need to understand and control evolving software architecture.

Transcript of Findbugs Architecture

Page 1: Findbugs Architecture

© Headway Software 2009

The Evolution of

Findbugs Architecture

Page 2: Findbugs Architecture

“The human mind can not grasp the complexity of a moderately sized program, much less the monster systems we build today.”

Jonathan Edwards on Beautiful Code

Complexity

Page 3: Findbugs Architecture

Findbugs 0.8.6 October 2004

A healthy start – a clearly understood Architecture

Page 4: Findbugs Architecture

Findbugs 0.8.7 April 2005

Imperfection creeps in

Page 5: Findbugs Architecture

Findbugs 0.8.8 May 2005

Imperfection takes hold

Page 6: Findbugs Architecture

Findbugs 1.0.0 June 2006

Chaos begins

Page 7: Findbugs Architecture

Findbugs 1.3.5 September 2008

And it’s downhill from there

Page 8: Findbugs Architecture

Eeek!!!

© Headway Software 2008

Page 9: Findbugs Architecture

The Bottom Line

• Well Structured vs. Poorly Structured Software– 50% less time to deliver– 50% less cost to deliver– 8x less defects

Page 10: Findbugs Architecture

Divide & Conquer

© Headway Software 2008

Page 11: Findbugs Architecture

Does your code look like this?

Top Level Architecture of the Spring Framework with No Cyclic Dependencies

Page 12: Findbugs Architecture

What’s needed

• Visualize your “as-is” design

• Measure it’s quality

• Track it over time

• Define your target architecture

• Communicate it to the team

• Repair, refactor, refine– Time, after time, after time…

Page 13: Findbugs Architecture

“Tools exist for enforcing architecture. Start today, no more Word architectures!”

Magnus Robertsson, Enterprise Architect, Jayway

Page 14: Findbugs Architecture

Web Resources

© Headway Software 2009

Download Structure101: http://www.headwaysoftware.com/downloads/structure101/

On-Line Docs: http://www.headwaysoftware.com/help/java/

Product Tour: http://www.headwaysoftware.com/products/structure101/tour/visualize/