- ISBN: 9780849335921 | 0849335922
- Cover: Hardcover
- Copyright: 5/7/2007
Foreword | p. xiii |
The Author | p. xvii |
Acknowledgments | p. xix |
Prologue | p. xxiii |
Introduction | p. 1 |
Chapter Summary | p. 1 |
Background | p. 1 |
The Problem of Software Change | p. 3 |
Software Evolution and Its Challenges | p. 5 |
About This Book | p. 8 |
References | p. 10 |
Conventional Methods of Software Maintenance and Evolution | |
Static Program Analysis Methods | p. 15 |
Chapter Summary | p. 15 |
Introduction to Static Program Analysis | p. 15 |
Approaches to Static Program Analysis | p. 17 |
How Does an SPA Work? | p. 19 |
Source Language: Simple | p. 20 |
Program Design Abstractions for Simple | p. 22 |
Querying Programs with PQL | p. 33 |
Design of PQL and SPA | p. 39 |
Optimizing the Performance of Query Evaluation | p. 42 |
PQL for Cobol | p. 44 |
Conclusions | p. 44 |
References | p. 45 |
Reverse Engineering Methods | p. 47 |
Chapter Summary | p. 47 |
Review of Approaches to Reverse Engineering | p. 47 |
Incremental and Interactive Reverse Engineering Process | p. 49 |
Recovering Object Models from Code | p. 51 |
Object Recovery Heuristics | p. 53 |
Semiautomatic Recovery of Abstract Objects as Candidates for Classes | p. 53 |
A Plan for Semiautomatic Recovery of Abstract Data Types as Candidates for Classes | p. 54 |
Specifying Reverse Engineering Heuristics in PQL | p. 55 |
Specifying Object Recovery Heuristics for C Programs | p. 57 |
Generation of Recovered Design Views in Extended PQL | p. 59 |
Conclusions | p. 61 |
References | p. 61 |
Model-Based Design for Ease of Maintenance | p. 67 |
Chapter Summary | p. 67 |
The Role of Models in the Design of Software Tools | p. 67 |
The Concept of Model-Based Design | p. 68 |
Model-Based PQL Query Validator in SPA and REA | p. 70 |
Model-Based Design of the PQL Query Evaluator in SPA and REA | p. 72 |
Model-Based Design of a Software Project-Support Environment | p. 73 |
Conclusions | p. 91 |
References | p. 92 |
Evolution of Versions and Configuration Management | p. 95 |
Chapter Summary | p. 95 |
A Working Example: FRS Evolution | p. 96 |
FRS Component Architecture | p. 97 |
Evolution of FRS with CVS | p. 99 |
Reuse of Features Implemented in Past Releases When Building New System Releases | p. 101 |
Adding New Features to a System Release | p. 104 |
Selective Propagation of New Features to Past Releases | p. 105 |
The Visibility of Changes during Evolution | p. 105 |
Explosion of Variant Features and Feature Dependencies | p. 106 |
Lessons Learned | p. 107 |
Related Work | p. 107 |
Conclusions | p. 108 |
References | p. 109 |
Limits of Conventional Techniques | p. 111 |
Chapter Summary | p. 111 |
Software Complexity Factor | p. 112 |
Tackling Software Evolution Challenges | p. 114 |
Conclusions | p. 117 |
References | p. 118 |
Reuse-Based Software Maintenance and Evolution | |
The Mixed-Strategy Approach: An Overview | p. 125 |
Chapter Summary | p. 125 |
Concepts of Reuse-Based Evolution | p. 126 |
Change-Design versus Design for Change | p. 127 |
Concepts of the Mixed-Strategy Approach | p. 128 |
A Preview of the Mixed-Strategy Approach: An Example | p. 131 |
The Role of Genericity in the Mixed-Strategy Approach | p. 136 |
Conclusions | p. 138 |
References | p. 138 |
Step-by-Step Introduction to XVCL | p. 141 |
Chapter Summary | p. 141 |
Salient Features of XVCL | p. 142 |
Flexible Composition of X-Frames | p. 144 |
Defining Compositions with XVCL | p. 146 |
Specifying Small-Granularity Changes | p. 153 |
Changes at Various Abstraction Levels | p. 156 |
Defining Generic Structures and Generators | p. 157 |
Capturing Change Traces and Similarity Patterns in Evolutionary Changes | p. 159 |
Handling Implementation Dependencies among Features | p. 161 |
Summary of XVCL Rules | p. 162 |
Conclusions | p. 176 |
References | p. 177 |
Software Similarities: Symptoms and Causes | p. 179 |
Chapter Summary | p. 179 |
The Problem of Software Similarities and Cloning | p. 180 |
Software Similarities and Reuse | p. 183 |
Software Similarities and Generic Design | p. 184 |
Software Similarities, Genericity, and Software Complexity | p. 185 |
Similarity Patterns in the Buffer Library: An Example | p. 189 |
Similarity Patterns and Clones in STL | p. 202 |
Similarity Patterns in Application Programs | p. 203 |
General Implications | p. 209 |
Identifying Similarity Patterns and Automated Detection of Clones | p. 210 |
Conclusions | p. 212 |
References | p. 212 |
The Mixed-Strategy Approach to Generic Design | p. 217 |
Chapter Summary | p. 217 |
Buffer Library in Java/XVCL Mixed-Strategy Representation | p. 218 |
Evaluation of the Mixed-Strategy Buffer Library Solution | p. 228 |
Conclusions | p. 234 |
References | p. 236 |
Evolution with the Mixed-Strategy Approach | p. 237 |
Chapter Summary | p. 237 |
Introduction | p. 237 |
Stages of FRS Evolution | p. 239 |
An Overview of the FRS X-Framework | p. 240 |
Development of a New System Release | p. 243 |
Specifying Changes for FRS[superscript DATE] | p. 244 |
Specifying Changes for FRS[superscript USER] and FRS[superscript DATE, USER] | p. 246 |
Specifying Changes for FRS[superscript DATE, USER, PREF] | p. 251 |
Specifying Changes for FRS[superscript DATE, USER, PAY] | p. 252 |
Specifying Changes for FRS[superscript DATE, USER, PREF, PAY] | p. 255 |
Specifying Changes for FRS[superscript DATE, USER, PAY, BR] | p. 255 |
Specifying Changes for FRS[superscript DATE, USER, PAY, BR, BRD] | p. 257 |
Specifying Changes for FRS[superscript USER, BR] | p. 257 |
Specifying Changes for FRS[superscript USER-PD, BR] | p. 258 |
Conclusions | p. 258 |
Scaling Up the Mixed-Strategy Approach | p. 261 |
Chapter Summary | p. 261 |
Introduction | p. 261 |
Modeling Features Arising during Evolution | p. 262 |
A Mixed-Strategy Evolution Support Environment (MESE) | p. 271 |
An FRS Architecture with Connectors | p. 273 |
Generic Connectors in the FRS X-Framework | p. 273 |
Comments on X-Framework Organization Principles | p. 275 |
An Overview of the X-Framework Customization Process | p. 278 |
Customization and Assembly Passes over an X-Framework | p. 280 |
Using the Customization Decision Tree (CDT) | p. 282 |
Using MESE to Customize and Evolve the FRS X-Framework: An Example | p. 282 |
Assembly Pass | p. 289 |
Related Work on Product Line Research | p. 291 |
Conclusions | p. 291 |
References | p. 292 |
The Mixed-Strategy Approach in Other Projects | p. 295 |
Chapter Summary | p. 295 |
STL in C++/XVCL | p. 296 |
DEMS in C#/XVCL | p. 296 |
Web Portal Product Line in ASP/XVCL | p. 298 |
CAP-WP in J2EE/XVCL | p. 301 |
Role-Playing Games (RPG) for Mobile Phones | p. 302 |
Conclusions | p. 304 |
References | p. 305 |
Other Techniques Related to XVCL | p. 307 |
Chapter Summary | p. 307 |
Frame Technology | p. 307 |
Conventional Techniques | p. 308 |
Generation Techniques | p. 311 |
Separation of Concerns and Its Relation to Generic Design | p. 312 |
Conclusions | p. 316 |
References | p. 316 |
Evaluation of the Mixed-Strategy Approach | p. 319 |
Chapter Summary | p. 319 |
Summary of the Mixed-Strategy Approach | p. 319 |
The Mixed-Strategy Process | p. 320 |
Trade-Offs Involved in Applying the Mixed-Strategy Approach | p. 322 |
XVCL Workbench | p. 326 |
References | p. 326 |
Conclusions | p. 329 |
Summary of PQL Grammar Rules | p. 331 |
Program Design Models for Cobol85 | p. 333 |
XVCL Specifications - A Reference Manual | p. 339 |
Index | p. 387 |
Table of Contents provided by Ingram. All Rights Reserved. |
The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.
The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.
Digital License
You are licensing a digital product for a set duration. Durations are set forth in the product description, with "Lifetime" typically meaning five (5) years of online access and permanent download to a supported device. All licenses are non-transferable.
More details can be found here.