Application Software Quality - CAST
Application Software Quality

As companies conduct more of their critical business activities online, concern over the quality of IT applications has moved from the IT department to the boardroom. Downtime on a retail e-business Website can be measured in lost sales. Compromised customer records can be measured in customer defections. Corrupted financial data can be measured in restatement costs. All three can be measured in lines of bad press.

The types of application problems that most frequently cause these disasters are not defects in functional logic -'what the application is supposed to do'. Rather they are caused by the non-functional defects that result from poor design and coding 'how the application does it'. Most functional defects are detected during development through reviews and testing. The non-functional defects often lie hidden beneath the surface of an application until they are triggered during ordinary business operations and cause embarrassing calamities.

Poor application quality can introduce many hidden costs into IT and business operations. For example:

  • Telesales reps having to restart customer transactions due to system brownouts
  • E-commerce websites losing customers due to timeout issues
  • Inability to complete transactions due to system outages, causing account receivables to slip into the next quarter

Application Software Quality is more than high availability and low latency. It includes the speed with which the application can be modified to meet a pressing business need, and the inherent strength of the software to repel security attacks. Application Software Quality goes beyond present-day performance to include a measure of future performance -- how well an application meets future business needs.

Hundreds of Decisions, Independently Made

Throughout the course of development, a large number of developers, architects, IT workers, business users, and managers make hundreds of independent decisions which need to come together in a coherent fashion for the end product to work well.

"Software design is not an orderly top-down process. It is a collection of multiple decisions made at varying levels of abstraction, brought together to satisfy an overall business goal." (Dr. Bill Curtis, CAST’s Chief Scientist)

As the code base grows linearly, architectural complexity grows exponentially! Performance bottlenecks multiply but become very hard to detect. There is no human or team of humans capable of having a comprehensive end-to-end view of how the application is put together to satisfy its long list of continually-evolving requirements.

Performance Testing Is Necessary, But Far from Sufficient

Performance testing only scratches the surface. Here’s why.

  • It’s usually done too late to be meaningful and is quickly curtailed due to schedule pressure. And it’s often too costly to replicate a true production environment
  • Even when plenty of time is available, doing it right is more art than science – what to test, how to replicate the production environment, knowing how much is enough – these are all difficult issues that require a considerable amount of expertise. It is very difficult to make it repeatable.
  • Even if it is repeatable, performance testing doesn’t tell you how something will perform in a few months when production conditions have inevitably changed. It won’t tell you how easy it will be to modify the software to meet pressing business needs. And it won’t tell you how difficult it will be to transfer the maintenance of the software to another team (internal or external).

"We cannot write a test case to verify a system’s reliability…The ability to associate code to non-functional properties can be a powerful weapon in a software engineer’s arsenal." (Diomidis Spinellis, author of Code Quality)

So, we have a dilemma. How something is built has a direct causal impact on how well it performs, which in turn affects business productivity and TCO. Visible outage is only a small fraction of performance problems -- but it's not clear how to measure the other part, let alone monetize it.

The unfortunate result: when software is sub-optimally engineered, business performance dies the death of a thousand cuts.

The CAST Solution

The CAST Application Intelligence Platform is an objective and repeatable way to measure and improve the Application Software Quality of mission-critical applications.

Application Software Quality is more than high availability and low latency in the production environment. It includes the speed with which the software can be modified to meet a pressing business need, and the inherent strength of the software to repel security attacks. Application Software Quality goes beyond present-day performance to include a measure of future performance -- how well an application can meet future business needs.

CAST enables you to measure and improve quality from the very start of the application development phase all the way through an application’s useful life.

Application Software Quality describes among other attributes, the soundness of an application’s architectural design and the extent to which its implementation follows proven coding best practices. Application Software Quality is not measured by passing test cases that were mostly designed to verify the functional correctness of an application. Rather, measures of Application Software Quality are measures of the internal structure and engineering of its code.

Through extensive research and industrial experience CAST has identified five areas of Application Software Quality that most affect business outcomes and TCO. These five areas, or ‘health factors’, are similar but not identical to the high level software quality measures defined in ISO 9126. Each of these five areas can be assessed by measuring numerous attributes of the software, and then aggregating the results into a summary health factor for that area (see the table below). These health factors summarize Application Software Quality at a level that can be related to business outcomes and value.

Health Factor Description Business Benefits and/or
Hard IT Cost Reductions
1. Transferability Attributes that allow new teams or members to quickly understand and work with an application
  • Speedy transfer of development or maintenance to external resources cuts IT costs
  • Problems are fixed faster resulting in lower maintenance costs
  • Vendor lock-in is avoided resulting in better prices due to increased negotiating power
2. Changeability Attributes that make an application easier and quicker to modify
  • Reduces speed to market, increases business revenue, and decreases the pay back period
  • Reduces total cost of ownership
3. Robustness Attributes that affect the stability of the application and the likelihood of introducing defects when modifying it
  • Increases the number of business transactions completed in a given time period, resulting in higher business revenue
  • Reduces the risk of business performance degradation
  • Customer satisfaction improves
  • Decrease in risk
  • Reduces risk of loss in customer confidence or financial damages
4. Performance Attributes that affect the performance of an application
  • Increases the number of business transactions completed in a given time period, resulting in higher business revenue
  • Increases business productivity
  • Reduces total cost of ownership (TCO)
5. Security Attributes that affect an application’s ability to prevent unauthorized intrusions
  • Protects proprietary intellectual property
  • Reduces risk of loss in customer confidence or financial damages
  • Reduces legal risk of non-compliance with security-related standards and mandates
A 360-Degree Measure of Application Software Quality

The CAST Application Intelligence Platform covers not just the business logic layer but the presentation, middleware, and database layer as well. All four come together to determine the engineering quality of a software system. Leaving one or more of these out can lead to dangerous false negatives about the quality of software. In other words, when it comes to software quality, the holistic, 360-degreee view is a must; the whole is greater than the sum of its parts.

Company Overview | Application Software Quality | Software Factory Performance | Management Visibility

First Name*
Last Name*
Email*
Company*
Country*
Your info
First Name *
Last Name *
Email *
Colleague's info
First Name *
Last Name *
Email *
First Name *
Last Name *
Email *
Company *
Country *
Zip *
Subject*
Question *
Copyright © 2010 CAST All Rights Reserved