Business Innovation Homepage > Infrastructure Optimization
Software quality initiatives can help organizations deliver reliable, usable and secure applications.
October 8, 2007
Ensuring the quality of applications has long been a concern of software development companies. But all organizations that rely heavily on homegrown applications to support business processes should make sure that software development is held to a high standard.
If an application isn't reliable, maintainable, easy to use, efficient and secure, it could render the software useless or worse for a business. Software quality is especially important for companies that rely heavily on applications such as those that support online sales transactions, for example. But it would be hard to find any large enterprise that doesn't rely on in-house or customized software for some functions.
"Since more and more business operations are dependent on software, the risk of a loss due to software is increasing," says John Goodenough, a fellow at the Software Engineering Institute/Carnegie Mellon. "This makes software quality of increasing importance to businesses today."
But Goodenough points out that major losses are seldom due to software defects alone. "Failures in a business work process combine with software failures to produce losses," he says. "So it is important to pay attention to the big picture and how business operations are dependent on software. Where important dependencies exist, a business needs to consider how to reduce the impact of potential software failures."
That's where software quality efforts come in. There are multiple definitions of software quality, but in general it involves measuring how well software is designed and how well it performs using a variety of criteria, such as reliability, ease of use and security.
What's involved in developing a software quality initiative in a company? For an organization that's developing software to be used in critical applications (for example, applications where a software failure could lead to a significant loss), one of the key steps is to use appropriate methods to detect potential causes of software failures early in the development process, Goodenough says.
"Quality is not achieved just by testing," he says. "In the avionics community, for example, developers are using various tools to analyze models of software systems, sometimes even before the software is completely developed. They analyze interactions between components that could lead to degraded performance or unsafe conditions."
These interactions may occur only rarely and are unlikely to be detected even by thorough testing, Goodenough says. "Increasing the use of such analysis tools is an important step to improving software quality."
Standards exist for quality assurance processes for software developers, and companies that follow these standards are more likely to produce high quality software, Goodenough adds.
Tools are also needed to support quality assurance processes, such as test-management tools and model-checking tools. There are standards that determine capabilities of model-checking tools, Goodenough notes. "For example, the SAE Architecture Analysis and Design Language (AADL) is an international standard for a language that allows engineers to describe a system using a standard notation," he says.
Tools can then be developed to process descriptions in this notation, so engineers can investigate possible performance, safety and security problems long before the software has actually been produced, Goodenough says. "The analysis methods supported by these tools can detect errors that would be very difficult to detect by testing," he says.
Click here for more IT Optimization articles
|