spacer.png, 0 kB
Register and enter to win an iPod touch.

iPod Touch


One winner will be chosen each hour during the conference.

Site Statistics

Visitors: 386569

spacer.png, 0 kB
spacer.png, 0 kB
Dependency Management Techniques

Kirk Knoernschild - Author 
Date: May 24, 2006 - 4:00
Track: Best Practices
[Jump to this session]

Session Abstract: Why is software so difficult to change? When you establish your initial vision for the software’s design and architecture, you imagine a system that is easy to modify, extend, and maintain. Unfortunately, as time passes, changes trickle in that exercise your design in unexpected ways. Unlike what you had anticipated, each change begins to resemble nothing more than another hack, until finally the system becomes a tangled web of code that few developers care to venture through. Eventually, modifications to the software intended to improve the system have the opposite affect of breaking other parts of the system. The software is beginning to rot. The most common cause of rotting software is tightly coupled code with a heavy dependency graph. In this session, we’ll explore the most common  symptoms of rotting design, examine their root cause, and present techniques and patterns that have been used on a number of real world projects to help manage dependencies across classes, packages, and the binary units of deployment.

Speaker Bio: Kirk is Chief Technology Strategist at QWANtify/ <http://www.qwantify.com/Main/QWANtify>, where he leads based on his firm belief in the pragmatic use of technology. In addition to his work on large development projects, Kirk shares his experiences through courseware development, teaching, writing, and speaking at seminars and conferences. Kirk has provided training to thousands of software professionals, teaching courses on UML, Java J2EE technology, object-oriented development, component based development, software architecture, and software process.

As CTS at QWANtify/, Kirk works with clients and peers to develop high quality software that solves real business problems. In addition to spending a good share of his time on projects, Kirk’s role typically involves mentoring other developers on proven coding and design techniques, and driving QWANtify's/ technology vision. He intimately understands the software lifecycle, and has applied many best practices espoused by leading agile methodologies, such as the Rational Unified Process and Extreme Programming.

Kirk is the author of Java Design: Objects, UML, and Process, and the founder of www.extensiblejava.com, a growing resource of design pattern heuristics that emphasize greater component modularity in large scale enterprise software projects. He is also the creator of JarAnalyzer, a utility for identifying and managing the physical dependencies between .jar files. He blogs regularly at http://blog.kirkk.com and his personal website is www.kirkk.com.

spacer.png, 0 kB
spacer.png, 0 kB
spacer.png, 0 kB