Custom Application Development

Oct 27 2007   8:40PM GMT

Software Quality and Maintainability

SJC SJC Profile: SJC

Maintainability is often included as a component of software quality, and as with so many software quality components, there has been much effort expended on measuring.  For me trying to measure “software quality” in any manner seems to mimic something that I might see on the TV show “Numbers”, it is WAY over my head.  While I was looking into “software maintenance” via a recent Google search, I discovered an interesting paper titled “Can We Measure Maintainability?“.   Once again I’ll leave these academic discussions for the “experts”, and just put out here my thoughts on the subject, right, wrong or somewhere in-between. 

I recently had the opportunity to dig through some “old” code that I produced in an effort to determine the feasability of adding another “valid” value for a field.  Now, this kind of maintenance is nothing out of the ordinary.  The code is part of a legacy application program that has been in use for years.  It’s not that something is broken, it’s just that this added functionality will provide value.  Great!

Yet as I reviewed the code and programs which used the main table affected by this “addition”, I was keenly aware of the possibility that I could fail in my attempt to provide the change, and it would have nothing to do with the code itself, but rather the environment itself.  For one thing, I no longer have the UNIX development system which created this application, and I have to depend on the DOS based system to compile the program.  Fortunately this works — but it got me to thinking that given many other development environments, I would not be able to just move the resulting executable to the different platform and have it work as this does.  That the compiled program will function on another platform is a good example of portability — another component of software quality by some standards.

The paper referenced above had me thinking about maintainability in a more complete way.  In order to continue to provide changes to this program there are factors other than the code itself that can affect its maintainability.  Things like operating environment availability for the development, and skill of the programmer needed to perform the maintenance affect the maintainability in particular.  Whether the code is stellar, or a stellar example of poor code, without these two components the software is not maintainable. 

How would you measure these?  I certainly don’t have an answer!  The simple fact regarding this application however is that it has been in operation well over 10 years — there must be some kind of quality built in!

1  Comment on this Post

There was an error processing your information. Please try again later.
Thanks. We'll let you know when a new response is added.
Send me notifications when other members comment.
  • Frida189
    Software is playing a crucial role in modern societies. Not only do people rely on it for their daily operations or business, but for their lives as well. For this reason, correct and consistent behaviour of software systems is a fundamental part of end user expectations. Additionally, businesses require cost-effective production, maintenance, and operation of their systems. Thus, the demand for good quality software is increasing and is setting it as a differentiator for the success or failure of a software product. In fact, high quality software is becoming not just a competitive advantage but a necessary factor for companies to be successful. The main question that arises now is how quality is measured. What, where and when we assess and assure quality, are still open issues. Many views have been expressed about software quality attributes, including maintainability, evolvability, portability, robustness, reliability, usability, and efficiency. These have been formulated in standards such as ISO/IEC-9126 and CMMI. However, the debate about quality and maintainability between software producers, vendors and users is ongoing, while organizations need the ability to evaluate the software systems that they use or develop from multiple angles. Regards.. Frida Adams from [A href=""]Custom Application Development[/A]
    0 pointsBadges:

Forgot Password

No problem! Submit your e-mail address below. We'll send you an e-mail containing your password.

Your password has been sent to:

Share this item with your network: