The State of Software Maintenance
IEEE Transactions on Software Engineering
The Use of Software Complexity Metrics in Software Maintenance
IEEE Transactions on Software Engineering
Techniques of program and system maintenance (2nd ed.)
Techniques of program and system maintenance (2nd ed.)
Software Complexity and its Impact on Software Reliability
IEEE Transactions on Software Engineering
Software engineering and management
Software engineering and management
Building quality software
Improving software quality: an insider's guide to TQM
Improving software quality: an insider's guide to TQM
Software Metrics: A Rigorous Approach
Software Metrics: A Rigorous Approach
Software Maintenance: The Problems and Its Solutions
Software Maintenance: The Problems and Its Solutions
Reverse Engineering and Design Recovery: A Taxonomy
IEEE Software
Extracting and Restructuring the Design of Large Systems
IEEE Software
Hi-index | 0.00 |
The case study is about the System Monitor and Control Facility (SMCF) workstation product developed by a major telecommunications company that has been used to monitor MVS OS mainframe computer systems since 1983. In 1991, mainframe UNIX systems were added to the list of systems supported using software executing on the mainframe side. In 1994, an effort to develop a common interface using TCP/IP and Remote Procedure Calls (RPC) began with a product being developed in the C. The product, which was officially delivered in June of 1994, was coded using structured programming techniques. However, after the product had been in use for some time, maintaining and extending the code for additional functionality and portability was less than desirable.A decision was made by the programmers who support the host-side code to restructure (re-engineer) it such that certain software engineering principles be included into the product to make the product more maintainable and portable. This paper discusses the factors that led to the initial decisions of the designers and programmers, the evaluation of the existing code, and the resulting code with software engineering principles re-engineered into the existing code, and how the incorporation of these principles make maintenance simpler and how they may prevent or minimize defects in the future.