Digital Edition

SYS-CON.TV
Parasoft: The Time Has Come for Automated Error Prevention
Parasoft: The Time Has Come for Automated Error Prevention

To learn more about AEP, visit www.parasoft.com/AEPjava or email aep@parasoft.com

The software industry must mature. For too long we have pretended that software is different, that it is somehow more complex than other manufactured products. This belief is nothing more than an excuse for shoddy workmanship; bugs have no place in the software industry. It is time we learned how to create software using proven error-prevention methodologies.

What is Error Prevention?
The concept of error prevention advocates five very specific procedures that prevent errors. These procedures are:

  • Identify an error.
  • Find the cause of the error.
  • Locate the point in production that created the error.
  • Implement preventative practices to ensure that similar errors do not reoccur.
  • Monitor the process.
For example, inspectors on an appliance assembly line discover that bolts are coming loose. This error is due to a mismatch between the bolts and the tool used to tighten them. Preventing this error is a simple matter of providing the right tool to the location where the bolts are installed. Closely inspecting the bolts helps monitor the effectiveness of this change. It also provides valuable data about the amount of time saved using the proper tool.

Is error prevention the same thing as error detection? No! Error detection is the process of finding and fixing errors after a product is built. In error detection, the flawed process that generated those errors is left uncorrected. In the above example, error detection simply would have tightened the bolts at the end of the assembly line. This would leave the root of the problem indefinitely embedded in the manufacturing process.

Error detection is how the software industry currently deals with bugs, by treating the "symptom" (bugs) and not the "disease" (the flawed development process). There are valuable quality improvement initiatives that attempt to address error prevention in an effort to correct flawed development processes. Among the more popular initiatives for software are ISO 9001 and SEI-CMM. However, without automation, these quality initiatives fall short of their goals because they cannot implement practices that actually enforce and support their written procedures.

Automation is the Key
For the software industry, the most effective way to make highquality applications is through the concept of Automated Error Prevention. The AEP concept consists of the same five steps listed above for error prevention, plus automation.

How is this accomplished? First, define and implement proven techniques that help stop errors during application development. Practices such as coding standards enforcement, unit testing, integration testing, load testing, connectivity verification, monitoring and others can be placed in the software development lifecycle and automated. This provides an Automated Error Prevention "seal" around the four core phases of software development and establishes full lifecycle error prevention.

AEP is the foundation behind the Parasoft AEP Methodology. Errors found anywhere in the development process can be correlated back to a procedure that came before it; all that is needed is to modify the "upstream" procedure and prevent the error from reoccurring. This is shown in Figure 1 by the feedback loop (indicated by the dashed arrow). In this way, information gathered from individual practices can be used to intelligently improve the process and prevent future errors.

 

When such procedures are in place and automated, they remain indefinitely, returning benefits daily to the software development lifecycle. The AEP concept fits into any development process, including traditional waterfall and iterative methods, and even more ambitious processes such as Extreme Programming.

More important, AEP is exactly what quality-improvement initiatives such as ISO 9001 and SEI-CMM are trying to accomplish. AEP should be integrated into any quality initiative, as it is the only proven method for enforcing quality-improvement measures that rely upon written procedures.

Implementing Automated Error Prevention
After identifying the error-prevention techniques that need automating, focus on key issues that allow these practices to be successfully implemented. One such issue is the ability to improve the process. This is accomplished by feedback loops, like the one shown in Figure 1. Let's look at a specific example of how this works. Suppose you are developing an n-tier system. To establish what types of traffic the system can manage, you need to perform load testing. Unfortunately, you discover that the system is overwhelmed by even the smallest amount of traffic because the middleware is leaking connections to the database.

Under normal circumstances, you would simply fix this bug, but this does not prevent similar errors from occurring. In AEP, you also want to correct the root cause of this error in order to prevent further leaks. The root cause is that when a connection is opened, it isn't closed. So how can you prevent this?

Assuming that the failing middleware is written in Java, you need a way to ensure that each class opening a connection also closes the connection (through a finalize() method or a try/finally block). Coding standards are an excellent way to achieve this. To ensure that each connection opened is also closed, simply create a rule that checks for this pairing. Doing so allows you to move upstream from the load-testing error and establish a coding rule that mandates that no connections should be left open. This feedback loop is illustrated by the dashed arrow in Figure 1.

The next step is to implement this change automatically. A coding standards scanning tool could be used to ensure that this rule is enforced across the development group. This is true AEP implementation. Not only do you improve the process to ensure that errors are not repeated, but you automate the practice and use its results to measure how well that change is being followed across the development group. This makes it possible to determine if your change is effective, or if further changes need to be implemented somewhere else in the process.

Another key factor in AEP is group behavior. It is crucial that AEP practices be embedded into the software development groups that will use them. This means that everyone in the development group—developer, architect, QA, or project manager—must understand his or her role and how to adhere to that role given the practices in place. For example, for the group to successfully adopt coding standards, it's critical for all team members to understand who creates coding standards, where these coding standards are stored, and who uses them and when. Most important, defining group behavior ensures that the adopted practices remain ingrained and that they do not deteriorate over time. The recommended AEP workflow is illustrated in Figure 2.

 

A Final Word
Error prevention is a very straightforward and effective concept that helps reduce errors and increase productivity. For the software industry, automation ensures that the five basic steps of prevention are fully integrated into the software development lifecycle. Automated Error Prevention is the most effective way to avoid errors, increase productivity and make high-quality applications. Other industries have used this same concept to achieve substantial productivity gains and reduce production costs. For the software industry, the same results are possible. What are we waiting for?

To learn more about AEP, visit www.parasoft.com/AEPjava or email aep@parasoft.com

About IT Solutions Guide
IT Solutions Guide (ITSG), aimed at development and corporate managers, is a free quarterly supplement focusing on the most competitive tools, solutions, and services available in the IT and infrastructure technology world today.

In order to post a comment you need to be registered and logged in.

Register | Sign-in

Reader Feedback: Page 1 of 1



ADS BY GOOGLE
Subscribe to the World's Most Powerful Newsletters

ADS BY GOOGLE

DX World EXPO, LLC, a Lighthouse Point, Florida-based startup trade show producer and the creator of...
SYS-CON Events announced today that Conference Guru has been named “Media Sponsor” of the 22nd Inter...
DevOps is under attack because developers don’t want to mess with infrastructure. They will happily ...
The next XaaS is CICDaaS. Why? Because CICD saves developers a huge amount of time. CD is an especia...
Companies are harnessing data in ways we once associated with science fiction. Analysts have access ...
Widespread fragmentation is stalling the growth of the IIoT and making it difficult for partners to ...
"Akvelon is a software development company and we also provide consultancy services to folks who are...
Enterprises are adopting Kubernetes to accelerate the development and the delivery of cloud-native a...
In his session at 21st Cloud Expo, James Henry, Co-CEO/CTO of Calgary Scientific Inc., introduced yo...
The question before companies today is not whether to become intelligent, it’s a question of how and...
In his session at 21st Cloud Expo, Carl J. Levine, Senior Technical Evangelist for NS1, will objecti...
22nd International Cloud Expo, taking place June 5-7, 2018, at the Javits Center in New York City, N...
"Cloud Academy is an enterprise training platform for the cloud, specifically public clouds. We offe...
Agile has finally jumped the technology shark, expanding outside the software world. Enterprises are...
"MobiDev is a software development company and we do complex, custom software development for everyb...
"Codigm is based on the cloud and we are here to explore marketing opportunities in America. Our mis...
High-velocity engineering teams are applying not only continuous delivery processes, but also lesson...
"CA has been doing a lot of things in the area of DevOps. Now we have a complete set of tool sets in...
While some developers care passionately about how data centers and clouds are architected, for most,...
"NetApp is known as a data management leader but we do a lot more than just data management on-prem ...