SOA (service-oriented architecture) edged out Web services in 2004 as the preferred label for decentralized systems woven together by the exchange of XML messages. Whatever you call this approach to application development, it presents new challenges in terms of quality control. As applications extend beyond the enterprise to include partner services, it becomes crucial to monitor and debug your interaction with those services.
Mindreef's SOAPscope 3.0 meets this need in an effective way and at a bargain price. With its integration of Web Services Interoperability Organization (WS-I) testing tools, SOAPscope made it easier for developers to create WS-I-compliant services that can work reliably with similar services.
As three-tier systems increasingly federate with remote services, real-time analysis of system health and application response time becomes essential. So it's no surprise that application performance management products such as ProactiveNet were in demand this year. That trend will accelerate in 2005.
Whereas the growth of Web services can make life more complicated for developers, parallel growth in the use of Java and .Net can create new opportunities to improve software quality. For example, Compuware's new DevPartner Fault Simulator runs a .Net application in a sandbox that it subjects to "environmental faults" such as lost connectivity or disk failure. The tool also exercises error-handling code by enabling developers to program exceptions that can be thrown by .Net classes.
The reflection -- or introspection --features of Java and .Net lend themselves to this kind of approach. The VM environment is inherently friendly to a whole set of monitoring, analysis, and simulation techniques, which will play a growing role in the assurance of software quality.
But 2004 was also a year in which a venerable tactic, source code analysis, emerged in new forms. Agitar Software's Agitator reads Java source files, performs data flow analysis, and acts as an intelligent assistant to the developer who is already committed to writing unit tests but needs help formulating testable assertions.
Our article on the new breed of source code analyzers explored how companies such as Coverity and Fortify Software are revitalizing analysis techniques that many programmers have long thought moribund. These tools will work with Java and .Net code, but they don't depend on the fancy machinery built into VMs. Their pattern-recognition algorithms will also ferret out potentially troublesome inconsistencies in C, C++, or SQL code.
Throwing more software at the problem of software quality might seem ironic. But the reality is that high-quality software requires superhuman attention to detail. The right partnerships between computers and programmers will be the key to success, and we continue to find new ways to forge those partnerships.