Online. Offline. Bottom Line.™ (skip to the content)

Home | About | Jobs | Privacy Policy | Contact | Login or Register


Software Maintenance.  How Far Have We Come in 15 years?

by

In 1993, the Software Engineering Institute at Carnegie Mellon University published a study named A Study in Software Maintenance.  As part of this study, one task was to examine the development processes and the software tools used within maintenance (life-cycle support) projects.  Three pervasive themes presented themselves in the findings: Tools, People, and Software Process.

This is the first in a three part blog to compare the findings of that 1993 paper with the general climate of software maintenance today.  The first area of findings that we will look at is the area of Tools.  The findings from the paper are as follows:

1. Most project personnel believe that they do not have adequate tools for technical support.

2. Many project personnel want additional automated support for their configuration management (CM) systems. The in-house CM system developed by the agency is in use in a number of projects, but the users believe it is only a partial solution for their needs.

3. Projects have heterogeneous platforms which make it difficult for the agency to identify a standard set of tools across projects.

4. The maintenance activities which were most often cited by the projects as in need of CASE tool support include CM, reverse engineering, re-engineering, testing, and document production.

5. Most project personnel interviewed believe that they have not been exposed to state-of-the-art tools.

6. Most new tools that have been examined by each of the projects are generally not mature enough for use by the agency. For example, we were told that many CASE tools tested are currently not sufficiently robust for maintenance of the large application systems typical of the agency.

7. All project personnel believe that tooling needs for maintenance projects differ from those for new software development, and that, while tools exist for development support, tools for many maintenance activities do not currently exist within the agency.

8. All project personnel were appreciative of the work of the in-house group responsible for evaluation, acquisition, and adoption of new CASE tools. Many project personnel told us that the work of the group should be expanded.

These findings really focused on the beliefs the project personnel had toward CASE tools.  Replace any reference to configuration management systems with continuous integration systems, and pretty much every belief is still held in part today.  Engineers in a support and maintenance role often feel like their tools are subpar, always wanting the next greatest tool.

However, the fact is CASE tools have actually made huge advances in the past 15 years.  Integrated Development Environments (IDEs), such as jetbrains’ IntelliJ, bring together testing platforms, debugging platforms, and multiple technology disciplines into one single environment.  Continuous Integration Servers like CruiseControl or Draco significantly reduce the time it takes to discover an integration bug.  And because one of the 12 tenets of Extreme Programming (XP) is Test Driven Development, we are seeing that most tools are appropriate for both software development and software maintenance.

So we can say with relative confidence that the area of CASE tools in software maintenance is an area that has undergone significant improvement in the past decade and a half.  The next area compared will concern the people themselves who work in maintenance projects.  Stay tuned…

Found in (0) CommentsPermalink http://www.sundog.net/index.php/sunblog/entry/software-maintenance-how-far-have-we-come-in-15-years/
Like this post? Subscribe to our RSS feed. RSS icon

© 2008 Sundog, All Rights Reserved xhtml | css | 508 | What's This?