Cover image for Effective software maintenance and evolution : a reuse-based approach
Title:
Effective software maintenance and evolution : a reuse-based approach
Personal Author:
Publication Information:
Boca Raton, FL : Auerbach Publications, 2007
ISBN:
9780849335921

Available:*

Library
Item Barcode
Call Number
Material Type
Item Category 1
Status
Searching...
30000010133973 QA76.76.R47 J37 2007 Open Access Book Book
Searching...
Searching...
30000010207874 QA76.76.R47 J37 2007 Open Access Book Book
Searching...
Searching...
30000003495060 QA76.76.R47 J37 2007 Open Access Book Book
Searching...

On Order

Summary

Summary

With software maintenance costs averaging 50% of total computing costs, it is necessary to have an effective maintenance program in place. Aging legacy systems, for example, pose an especially rough challenge as veteran programmers retire and their successors are left to figure out how the systems operate. This book explores program analyzers, reverse engineering tools, and reengineering tools in-depth and explains the best ways to deploy them. It also discusses using XML-based tools, the roles of software components, object technology, and metaprogramming in improving systems maintenance, as well as how to align software with business goals through strategic maintenance.


Table of Contents

Forewordp. xiii
The Authorp. xvii
Acknowledgmentsp. xix
Prologuep. xxiii
1 Introductionp. 1
Chapter Summaryp. 1
1.1 Backgroundp. 1
1.2 The Problem of Software Changep. 3
1.3 Software Evolution and Its Challengesp. 5
1.4 About This Bookp. 8
Referencesp. 10
Part I Conventional Methods of Software Maintenance and Evolution
2 Static Program Analysis Methodsp. 15
Chapter Summaryp. 15
2.1 Introduction to Static Program Analysisp. 15
2.2 Approaches to Static Program Analysisp. 17
2.3 How Does an SPA Work?p. 19
2.4 Source Language: Simplep. 20
2.5 Program Design Abstractions for Simplep. 22
2.6 Querying Programs with PQLp. 33
2.7 Design of PQL and SPAp. 39
2.8 Optimizing the Performance of Query Evaluationp. 42
2.9 PQL for Cobolp. 44
2.10 Conclusionsp. 44
Referencesp. 45
3 Reverse Engineering Methodsp. 47
Chapter Summaryp. 47
3.1 Review of Approaches to Reverse Engineeringp. 47
3.2 Incremental and Interactive Reverse Engineering Processp. 49
3.3 Recovering Object Models from Codep. 51
3.4 Object Recovery Heuristicsp. 53
3.5 Semiautomatic Recovery of Abstract Objects as Candidates for Classesp. 53
3.6 A Plan for Semiautomatic Recovery of Abstract Data Types as Candidates for Classesp. 54
3.7 Specifying Reverse Engineering Heuristics in PQLp. 55
3.8 Specifying Object Recovery Heuristics for C Programsp. 57
3.9 Generation of Recovered Design Views in Extended PQLp. 59
3.10 Conclusionsp. 61
Referencesp. 61
4 Model-Based Design for Ease of Maintenancep. 67
Chapter Summaryp. 67
4.1 The Role of Models in the Design of Software Toolsp. 67
4.2 The Concept of Model-Based Designp. 68
4.3 Model-Based PQL Query Validator in SPA and REAp. 70
4.4 Model-Based Design of the PQL Query Evaluator in SPA and REAp. 72
4.5 Model-Based Design of a Software Project-Support Environmentp. 73
4.6 Conclusionsp. 91
Referencesp. 92
5 Evolution of Versions and Configuration Managementp. 95
Chapter Summaryp. 95
5.1 A Working Example: FRS Evolutionp. 96
5.2 FRS Component Architecturep. 97
5.3 Evolution of FRS with CVSp. 99
5.4 Reuse of Features Implemented in Past Releases When Building New System Releasesp. 101
5.5 Adding New Features to a System Releasep. 104
5.6 Selective Propagation of New Features to Past Releasesp. 105
5.7 The Visibility of Changes during Evolutionp. 105
5.8 Explosion of Variant Features and Feature Dependenciesp. 106
5.9 Lessons Learnedp. 107
5.10 Related Workp. 107
5.11 Conclusionsp. 108
Referencesp. 109
6 Limits of Conventional Techniquesp. 111
Chapter Summaryp. 111
6.1 Software Complexity Factorp. 112
6.2 Tackling Software Evolution Challengesp. 114
6.3 Conclusionsp. 117
Referencesp. 118
Part II Reuse-Based Software Maintenance and Evolution
7 The Mixed-Strategy Approach: An Overviewp. 125
Chapter Summaryp. 125
7.1 Concepts of Reuse-Based Evolutionp. 126
7.2 Change-Design versus Design for Changep. 127
7.3 Concepts of the Mixed-Strategy Approachp. 128
7.4 A Preview of the Mixed-Strategy Approach: An Examplep. 131
7.5 The Role of Genericity in the Mixed-Strategy Approachp. 136
7.6 Conclusionsp. 138
Referencesp. 138
8 Step-by-Step Introduction to XVCLp. 141
Chapter Summaryp. 141
8.1 Salient Features of XVCLp. 142
8.2 Flexible Composition of X-Framesp. 144
8.3 Defining Compositions with XVCLp. 146
8.4 Specifying Small-Granularity Changesp. 153
8.5 Changes at Various Abstraction Levelsp. 156
8.6 Defining Generic Structures and Generatorsp. 157
8.7 Capturing Change Traces and Similarity Patterns in Evolutionary Changesp. 159
8.8 Handling Implementation Dependencies among Featuresp. 161
8.9 Summary of XVCL Rulesp. 162
8.10 Conclusionsp. 176
Referencesp. 177
9 Software Similarities: Symptoms and Causesp. 179
Chapter Summaryp. 179
9.1 The Problem of Software Similarities and Cloningp. 180
9.2 Software Similarities and Reusep. 183
9.3 Software Similarities and Generic Designp. 184
9.4 Software Similarities, Genericity, and Software Complexityp. 185
9.5 Similarity Patterns in the Buffer Library: An Examplep. 189
9.6 Similarity Patterns and Clones in STLp. 202
9.7 Similarity Patterns in Application Programsp. 203
9.8 General Implicationsp. 209
9.9 Identifying Similarity Patterns and Automated Detection of Clonesp. 210
9.10 Conclusionsp. 212
Referencesp. 212
10 The Mixed-Strategy Approach to Generic Designp. 217
Chapter Summaryp. 217
10.1 Buffer Library in Java/XVCL Mixed-Strategy Representationp. 218
10.2 Evaluation of the Mixed-Strategy Buffer Library Solutionp. 228
10.3 Conclusionsp. 234
Referencesp. 236
11 Evolution with the Mixed-Strategy Approachp. 237
Chapter Summaryp. 237
11.1 Introductionp. 237
11.2 Stages of FRS Evolutionp. 239
11.3 An Overview of the FRS X-Frameworkp. 240
11.4 Development of a New System Releasep. 243
11.5 Specifying Changes for FRS[superscript DATE]p. 244
11.6 Specifying Changes for FRS[superscript USER] and FRS[superscript DATE, USER]p. 246
11.7 Specifying Changes for FRS[superscript DATE, USER, PREF]p. 251
11.8 Specifying Changes for FRS[superscript DATE, USER, PAY]p. 252
11.9 Specifying Changes for FRS[superscript DATE, USER, PREF, PAY]p. 255
11.10 Specifying Changes for FRS[superscript DATE, USER, PAY, BR]p. 255
11.11 Specifying Changes for FRS[superscript DATE, USER, PAY, BR, BRD]p. 257
11.12 Specifying Changes for FRS[superscript USER, BR]p. 257
11.13 Specifying Changes for FRS[superscript USER-PD, BR]p. 258
11.14 Conclusionsp. 258
12 Scaling Up the Mixed-Strategy Approachp. 261
Chapter Summaryp. 261
12.1 Introductionp. 261
12.2 Modeling Features Arising during Evolutionp. 262
12.3 A Mixed-Strategy Evolution Support Environment (MESE)p. 271
12.4 An FRS Architecture with Connectorsp. 273
12.5 Generic Connectors in the FRS X-Frameworkp. 273
12.6 Comments on X-Framework Organization Principlesp. 275
12.7 An Overview of the X-Framework Customization Processp. 278
12.8 Customization and Assembly Passes over an X-Frameworkp. 280
12.9 Using the Customization Decision Tree (CDT)p. 282
12.10 Using MESE to Customize and Evolve the FRS X-Framework: An Examplep. 282
12.11 Assembly Passp. 289
12.12 Related Work on Product Line Researchp. 291
12.13 Conclusionsp. 291
Referencesp. 292
13 The Mixed-Strategy Approach in Other Projectsp. 295
Chapter Summaryp. 295
13.1 STL in C++/XVCLp. 296
13.2 DEMS in C#/XVCLp. 296
13.3 Web Portal Product Line in ASP/XVCLp. 298
13.4 CAP-WP in J2EE/XVCLp. 301
13.5 Role-Playing Games (RPG) for Mobile Phonesp. 302
13.6 Conclusionsp. 304
Referencesp. 305
14 Other Techniques Related to XVCLp. 307
Chapter Summaryp. 307
14.1 Frame Technologyp. 307
14.2 Conventional Techniquesp. 308
14.3 Generation Techniquesp. 311
14.4 Separation of Concerns and Its Relation to Generic Designp. 312
14.5 Conclusionsp. 316
Referencesp. 316
15 Evaluation of the Mixed-Strategy Approachp. 319
Chapter Summaryp. 319
15.1 Summary of the Mixed-Strategy Approachp. 319
15.2 The Mixed-Strategy Processp. 320
15.3 Trade-Offs Involved in Applying the Mixed-Strategy Approachp. 322
15.4 XVCL Workbenchp. 326
Referencesp. 326
16 Conclusionsp. 329
Appendix A Summary of PQL Grammar Rulesp. 331
Appendix B Program Design Models for Cobol85p. 333
Appendix C XVCL Specifications - A Reference Manualp. 339
Indexp. 387