The C programming language
Programming perl
TXL: a rapid prototyping system for programming language dialects
Computer Languages
A meta-environment for generating programming environments
ACM Transactions on Software Engineering and Methodology (TOSEM)
Reverse engineering to the architectural level
Proceedings of the 17th international conference on Software engineering
Programming Perl (2nd ed.)
Applied software measurement (2nd ed.): assuring productivity and quality
Applied software measurement (2nd ed.): assuring productivity and quality
Re-engineering needs generic programming language technology
ACM SIGPLAN Notices
A systematic approach to fuzzy parsing
Software—Practice & Experience
The year 2000 software problem: quantifying the costs and assessing the consequences
The year 2000 software problem: quantifying the costs and assessing the consequences
Software architecture in practice
Software architecture in practice
Building program optimizers with rewriting strategies
ICFP '98 Proceedings of the third ACM SIGPLAN international conference on Functional programming
AnnoDomini: from type theory to Year 2000 conversion tool
Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Aggregate structure identification and its application to program analysis
Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Successful COBOL upgrades: highlights and programming techniques
Successful COBOL upgrades: highlights and programming techniques
Generation of components for software renovation factories from context-free grammars
Science of Computer Programming - Special issue on WCRE 97
Software assessments, benchmarks, and best practices
Software assessments, benchmarks, and best practices
Software—Practice & Experience
The art of systems architecting (2nd ed.)
The art of systems architecting (2nd ed.)
Rapid Development: Taming Wild Software Schedules
Rapid Development: Taming Wild Software Schedules
Software Engineering Economics
Software Engineering Economics
Macroprocessors and Techniques for Portable Software
Macroprocessors and Techniques for Portable Software
Semi-automatic grammar recovery
Software—Practice & Experience
Proceedings of the 2002 ACM SIGPLAN workshop on Rule-based programming
Quatitative IT portolio management
Science of Computer Programming
IEEE Software
The Realities of Language Conversions
IEEE Software
Cracking the 500-Language Problem
IEEE Software
Change Costing in a Maintenance Environment
ICSM '96 Proceedings of the 1996 International Conference on Software Maintenance
Preprocessors from an Abstract Point of View
ICSM '96 Proceedings of the 1996 International Conference on Software Maintenance
A Strafunski Application Letter
PADL '03 Proceedings of the 5th International Symposium on Practical Aspects of Declarative Languages
Laws of Software Evolution Revisited
EWSPT '96 Proceedings of the 5th European Workshop on Software Process Technology
Architecture Recovery for Software Evolution
CSMR '98 Proceedings of the 2nd Euromicro Conference on Software Maintenance and Reengineering ( CSMR'98)
Architecture and Functions of a Commercial Software Reengineering Workbench
CSMR '98 Proceedings of the 2nd Euromicro Conference on Software Maintenance and Reengineering ( CSMR'98)
Restructuring of COBOL/CICS Legacy Systems
CSMR '99 Proceedings of the Third European Conference on Software Maintenance and Reengineering
Scaffolding for Software Renovation
CSMR '00 Proceedings of the Conference on Software Maintenance and Reengineering
MDA Explained: The Model Driven Architecture: Practice and Promise
MDA Explained: The Model Driven Architecture: Practice and Promise
Type Inference for COBOL Systems
WCRE '98 Proceedings of the Working Conference on Reverse Engineering (WCRE'98)
WCRE '98 Proceedings of the Working Conference on Reverse Engineering (WCRE'98)
Risks Involved in Reengineering Projects
WCRE '99 Proceedings of the Sixth Working Conference on Reverse Engineering
Preprocessor Conditional Removal by Simple Partial Evaluation
WCRE '01 Proceedings of the Eighth Working Conference on Reverse Engineering (WCRE'01)
Generating Robust Parsers using Island Grammars
WCRE '01 Proceedings of the Eighth Working Conference on Reverse Engineering (WCRE'01)
Building Documentation Generators
ICSM '99 Proceedings of the IEEE International Conference on Software Maintenance
IWPC '98 Proceedings of the 6th International Workshop on Program Comprehension
An Architecture for Automated Software Maintenance
IWPC '99 Proceedings of the 7th International Workshop on Program Comprehension
Pretty-Printing for Software Reengineering
ICSM '02 Proceedings of the International Conference on Software Maintenance (ICSM'02)
Term rewriting with traversal functions
ACM Transactions on Software Engineering and Methodology (TOSEM)
IEEE Software
Deriving tolerant grammars from a base-line grammar
ICSM '03 Proceedings of the International Conference on Software Maintenance
Revitalizing modifiability of legacy assets: Research Articles
Journal of Software Maintenance and Evolution: Research and Practice - Seventh European Conference on Software Maintenance and Reengineering (CSMR 2003)
IEEE Software
9210: The Zip Code of Another IT-Soap
Software Quality Control
Pigs from sausages? Reengineering from assembler to C via FermaT transformations
Science of Computer Programming - Special issue on program transformation
What does aspect-oriented programming mean to Cobol?
Proceedings of the 4th international conference on Aspect-oriented software development
Toward an engineering discipline for grammarware
ACM Transactions on Software Engineering and Methodology (TOSEM)
Towards lightweight checks for mass maintenance transformations
Science of Computer Programming
Model-centric software architecture reconstruction
Software—Practice & Experience
Automated mass maintenance of a software portfolio
Science of Computer Programming - Special issue on source code analysis and manipulation (SCAM 2005)
Software—Practice & Experience
Case study: Re-engineering C++ component models via automatic program transformation
Information and Software Technology
ACM Transactions on Programming Languages and Systems (TOPLAS)
Large-scale, AST-based API-usage analysis of open-source Java projects
Proceedings of the 2011 ACM Symposium on Applied Computing
Revisiting information hiding: reflections on classical and nonclassical modularity
Proceedings of the 25th European conference on Object-oriented programming
Study of an API migration for two XML APIs
SLE'09 Proceedings of the Second international conference on Software Language Engineering
Forms2Net – migrating oracle forms to microsoft .NET
GTTSE'05 Proceedings of the 2005 international conference on Generative and Transformational Techniques in Software Engineering
ICDCIT'06 Proceedings of the Third international conference on Distributed Computing and Internet Technology
RCDA: Architecting as a risk- and cost management discipline
Journal of Systems and Software
Hi-index | 0.00 |
We discuss the nuts and bolts of industrial large-scale software modification projects. These projects become necessary when system owners of deployed systems hit architectural barriers. The mastery of such projects is key to the extension of the best-before date of business-critical software assets. Our discussion comprises the process for problem analysis, pricing and contracting for such projects, design and implementation of tools for code exploration and code modification, as well as details of service delivery. We illustrate these concerns by way of a real-world example where a deployed management information system required an invasive modification to make the system fit for future use. The chosen project is particularly suited for a complete treatise because of its size (just 90,000 LOC), and the nature of the relevant architectural modification (namely, a form of data expansion). We share the lessons that we learned in this and other architectural modification projects.