Cascaded refactoring for framework development and evolution

This paper presents the cascaded refactoring methodology, which addresses three issues in the existing framework development approaches: identification and realization of variability, framework evolution, and framework documentation. The methodology views framework development as framework evolution, which consists of framework refactoring followed by framework extension. A framework is specified by a set of models. The overall refactoring of a framework is a set of refactorings performed sequentially on the models. Alignment maps are defined to maintain the traceability amongst the models. The constraints of refactorings on a model are derived from the refactorings performed on a previous model. A document template is proposed to document the framework refactoring. The methodology is illustrated by a case study.

[1]  Jaejoon Lee,et al.  FORM: A feature-;oriented reuse method with domain-;specific reference architectures , 1998, Ann. Softw. Eng..

[2]  Wim Codenie,et al.  From custom applications to domain-specific frameworks , 1997, CACM.

[3]  Ralph E. Johnson,et al.  Frameworks = (components + patterns) , 1997, CACM.

[4]  Mohammad Alshayeb,et al.  An Empirical Validation of Object-Oriented Metrics in Two Different Iterative Software Processes , 2003, IEEE Trans. Software Eng..

[5]  Brian Henderson-Sellers,et al.  OML Metamodel: Relationships and State Modeling , 1997, J. Object Oriented Program..

[6]  Don Roberts,et al.  Patterns for evolving frameworks , 1997 .

[7]  Dirk Riehle,et al.  Pattern density and role modeling of an object transport service , 2000, CSUR.

[8]  Dave A. Thomas,et al.  MDA: revenge of the modelers or UML utopia? , 2004, IEEE Software.

[9]  Hans Albrecht Schmid,et al.  Systematic framework design by generalization , 1997, CACM.

[10]  Robert L. Nord,et al.  Applied Software Architecture , 1999, Addison Wesley object technology series.

[11]  C. Mohan,et al.  Concurrency and recovery in generalized search trees , 1997, SIGMOD '97.

[12]  L. P. Deutsch,et al.  Design reuse and frameworks in the smalltalk-80 system , 1989 .

[13]  Rachel Harrison,et al.  Software evolution and software evolvability , 2003 .

[14]  Doris L. Carver,et al.  A Metamodeling Approach to Model Refactoring , 2003 .

[15]  Wolfgang Pree,et al.  Meta Patterns - A Means For Capturing the Essentials of Reusable Object-Oriented Design , 1994, ECOOP.

[16]  Bashar Nuseibeh,et al.  Restructuring requirements specifications for managing inconsistency and change: a case study , 1998, Proceedings of IEEE International Symposium on Requirements Engineering: RE '98.

[17]  Giancarlo Succi,et al.  Domain analysis and framework-based software development , 1997, SIAP.

[18]  Karl J. Lieberherr,et al.  Assuring good style for object-oriented programs , 1989, IEEE Software.

[19]  Jan Bosch,et al.  Maturity and Evolution in Software Product Lines: Approaches, Artefacts and Organization , 2002, SPLC.

[20]  Don Batory,et al.  Automated Software Evolution via Design Pattern Transformations , 1995 .

[21]  Ivar Jacobson,et al.  The Unified Modeling Language User Guide , 1998, J. Database Manag..

[22]  Siobhán Clarke,et al.  Subject-oriented design: towards improved alignment of requirements, design, and code , 1999, OOPSLA '99.

[23]  Desmond D'Souza,et al.  Objects, Components, and Frameworks with UML: The Catalysis Approach , 1998 .

[24]  Björn Regnell,et al.  A hierarchical use case model with graphical representation , 1996, Proceedings IEEE Symposium and Workshop on Engineering of Computer-Based Systems.

[25]  Gregory Butler,et al.  Cascaded refactoring for framework , 2001, SSR '01.

[26]  Wei Yu,et al.  Refactoring use case models on episodes , 2004 .

[27]  Ping Chen,et al.  An environment for managing evolving product line architectures , 2003, International Conference on Software Maintenance, 2003. ICSM 2003. Proceedings..

[28]  Ralph-Johan Back,et al.  Software Construction by Stepwise Feature Introduction , 2002, ZB.

[29]  Paul Clements,et al.  Software product lines - practices and patterns , 2001, SEI series in software engineering.

[30]  André van der Hoek,et al.  Understanding and Propagating Architecutural Changes , 2002, WICSA.

[31]  Will Tracz,et al.  DSSA (Domain-Specific Software Architecture): pedagogical example , 1995, SOEN.

[32]  Walter R. Bischofberger,et al.  Designing object systems for evolution , 1997 .

[33]  Alan D. Bryant Creating Successful Bulletin Board Systems , 1994 .

[34]  Ivar Jacobson,et al.  The object advantage - business process reengineering with object technology , 1994 .

[35]  Philippe Kruchten,et al.  The Rational Unified Process Made Easy - A Practitioner's Guide to the RUP , 2003, Addison Wesley object technology series.

[36]  D. Vera Edelstein Report on the IEEE STD 1219–1993—standard for software maintenance , 1993, SOEN.

[37]  Jan Bosch,et al.  Object-oriented framework-based software development: problems and experiences , 2000, CSUR.

[38]  Matthias Jarke,et al.  Toward Reference Models of Requirements Traceability , 2001, IEEE Trans. Software Eng..

[39]  R. Prieto-Diaz,et al.  Classification of reusable modules , 1989 .

[40]  Languages Object-Oriented Programming Systems,et al.  OOPSLA '89, conference proceedings : Object-Oriented Programming: Systems, Languages and Applications : October 1-6, 1989, New Orleans, Louisiana , 1989 .

[41]  Jan Bosch,et al.  Design and use of software architectures - adopting and evolving a product-line approach , 2000 .

[42]  Meir M. Lehman,et al.  Software evolution - Background, theory, practice , 2003, Inf. Process. Lett..

[43]  Brian Randell,et al.  Software engineering : report on a conference sponsored by the NATO Science Committee, Garmisch, Germany, 7th to 11th October 1968 , 1969 .

[44]  C J Hogue,et al.  Getting to the why. , 1997, Epidemiology.

[45]  Lihao Xu,et al.  Cascaded refactoring for framework evolution , 2001 .

[46]  David M. Weiss,et al.  Software Product-Line Engineering: A Family-Based Software Development Process , 1999 .

[47]  James Solderitsch,et al.  DAGAR: a process for domain architecture definition and asset implementation , 1996, TRI-Ada '96.

[48]  Mary Shaw,et al.  Software architecture - perspectives on an emerging discipline , 1996 .

[49]  Kent Beck,et al.  A laboratory for teaching object oriented thinking , 1989, OOPSLA 1989.

[50]  Władysław Turski,et al.  The specification of computer programs , 1987 .

[51]  Jens Uwe Pipka Refactoring in a "Test First"-World , 2002 .

[52]  Jang-Hwan Kwon A feature model of the Oracle 9i database server , 2003 .

[53]  Ian M. Holland,et al.  Object-oriented programming: an objective sense of style , 1988, OOPSLA 1988.

[54]  Jan Bosch,et al.  Observations on the evolution of an industrial OO framework , 1999, Proceedings IEEE International Conference on Software Maintenance - 1999 (ICSM'99). 'Software Maintenance for Business Change' (Cat. No.99CB36360).

[55]  Tom Mens,et al.  A survey of software refactoring , 2004, IEEE Transactions on Software Engineering.

[56]  Paul Clements,et al.  Software architecture in practice , 1999, SEI series in software engineering.

[57]  David J. DeWitt,et al.  Efficient mid-query re-optimization of sub-optimal query execution plans , 1998, SIGMOD '98.

[58]  Jan Bosch,et al.  Product-line architectures in industry: a case study , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[59]  Don Roberts,et al.  Practical analysis for refactoring , 1999 .

[60]  Kazunori Matsumoto,et al.  A three-view model for developing object-oriented frameworks , 2001, Proceedings 39th International Conference and Exhibition on Technology of Object-Oriented Languages and Systems. TOOLS 39.

[61]  Jeff Prosise Programming Windows With MFC , 1996 .

[62]  Frank van der Linden Development and evolution of software architectures for product families : Second international ESPRIT ARES Workshop, Las Palmas de Gran Canaria, Spain, February 26-27, 1998 : proceedings , 1998 .

[63]  Gregory Butler,et al.  Refactoring Use Case Models: The Metamodel , 2003, ACSC.

[64]  Gregory S. Palermo Getting to “Why?” , 2005 .

[65]  Tom Mens,et al.  Formalising Behaviour Preserving Program Transformations , 2002, ICGT.

[66]  Ralph Johnson How to Design Frameworks , 1993, OOPSLA 1993.

[67]  Alexander L. Wolf,et al.  Acm Sigsoft Software Engineering Notes Vol 17 No 4 Foundations for the Study of Software Architecture , 2022 .

[68]  Keith H. Bennett,et al.  Approaches to program comprehension , 1991, J. Syst. Softw..

[69]  Tom Mens,et al.  Challenges in software evolution , 2005, Eighth International Workshop on Principles of Software Evolution (IWPSE'05).

[70]  Antje von Knethen,et al.  Change-Oriented Requirements Traceability: Support for Evolution of Embedded Systems , 2002, ICSM.

[71]  L. Trussell,et al.  Essential software development methodology , 1999, IEEE Power Engineering Society. 1999 Winter Meeting (Cat. No.99CH36233).

[72]  Jan Bosch,et al.  On the notion of variability in software product lines , 2001, Proceedings Working IEEE/IFIP Conference on Software Architecture.

[73]  Alberto O. Mendelzon,et al.  Architecture and Applications of the Hy+ Visualization System , 1994, IBM Syst. J..

[74]  E KrasnerGlenn,et al.  A cookbook for using the model-view controller user interface paradigm in Smalltalk-80 , 1988 .

[75]  Jeffrey F. Naughton,et al.  Generalized Search Trees for Database Systems , 1995, VLDB.

[76]  Vincent F. Russo,et al.  Reusing Object-Oriented Designs , 2007 .

[77]  David Garlan,et al.  Software architecture: a roadmap , 2000, ICSE '00.

[78]  Meir M. Lehman,et al.  A Model of Large Program Development , 1976, IBM Syst. J..

[79]  Wayne C. Lim,et al.  Reuse economics: a comparison of seventeen models and directions for future research , 1996, Proceedings of Fourth IEEE International Conference on Software Reuse.

[80]  Philippe Kruchten,et al.  The 4+1 View Model of Architecture , 1995, IEEE Softw..

[81]  Brian Foote,et al.  Designing Reusable Classes , 2001 .

[82]  Jay Banerjee,et al.  Semantics and implementation of schema evolution in object-oriented databases , 1987, SIGMOD '87.

[83]  Jim Wilson,et al.  Applying Software Product-Line Architecture , 1997, Computer.

[84]  Stéphane Bressan,et al.  Introduction to Database Systems , 2005 .

[85]  Don S. Batory,et al.  GENESIS: An Extensible Database Management System , 1988, IEEE Trans. Software Eng..

[86]  Mikael Lindvall,et al.  How well do experienced software developers predict software change? , 1998, J. Syst. Softw..

[87]  Ivar Jacobson,et al.  Software Reuse: Architecture, Process And Organization For Business Success , 1998, Proceedings. Technology of Object-Oriented Languages. TOOLS 26 (Cat. No.98EX176).

[88]  Bogdan Franczyk,et al.  EXTENDING THE UML TO MODEL SYSTEM FAMILIES , 2000 .

[89]  Ralph E. Johnson,et al.  Patterns Generate Architectures , 1994, ECOOP.

[90]  Daniel Hoffman,et al.  Commonality and Variability in Software Engineering , 1998, IEEE Softw..

[91]  Dirk Riehle,et al.  Role model based framework design and integration , 1998, OOPSLA '98.

[92]  Bipin C. Desai Introduction to Database Systems , 1990 .

[93]  Thomas Olsson,et al.  Supporting traceability and inconsistency management between software artifacts , 2002, ICSE 2002.

[94]  Keith H. Bennett,et al.  A Staged Model for the Software Life Cycle , 2000, Computer.

[95]  Don S. Batory,et al.  Evolving Object-Oriented Designs with Refactorings , 2004, Automated Software Engineering.

[96]  Will Tracz,et al.  Domain-specific software architecture (DSSA) frequently asked questions (FAQ) , 1994, SOEN.

[97]  Edward V. Berard,et al.  Essays on object-oriented software engineering , 1992 .

[98]  Jan Bosch,et al.  Evolution in software product lines: two cases , 1999, J. Softw. Maintenance Res. Pract..

[99]  Divesh Srivastava,et al.  The CORAL deductive system , 1994, The VLDB Journal.

[100]  Mikael Lindvall A study of traceability in object-oriented systems development , 1994 .

[101]  Dewayne E. Perry,et al.  Dimensions of software evolution , 1994, Proceedings 1994 International Conference on Software Maintenance.

[102]  Murray Silverstein,et al.  A Pattern Language , 1977 .

[103]  Ivar Jacobson,et al.  Object Oriented Development in an Industrial Environment , 1987, OOPSLA.

[104]  Alexander Egyed,et al.  A scenario-driven approach to traceability , 2001, Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001.

[105]  Jeff Conklin Design rationale and maintainability , 1989, [1989] Proceedings of the Twenty-Second Annual Hawaii International Conference on System Sciences. Volume II: Software Track.

[106]  Paul G. Sorenson,et al.  Designing Object-Oriented Frameworks , 1998 .

[107]  Ilka Philippow,et al.  Systematic definition of reusable architectures , 2001, Proceedings. Eighth Annual IEEE International Conference and Workshop On the Engineering of Computer-Based Systems-ECBS 2001.

[108]  Gregory Butler,et al.  A framework for framework documentation , 2000, CSUR.

[109]  Jun Li,et al.  Refactoring use case models on episodes , 2004, Proceedings. 19th International Conference on Automated Software Engineering, 2004..

[110]  Even-André Karlsson,et al.  Software reuse: a holistic approach , 1995 .

[111]  Bin Nie A tree index framework for databases , 2003 .

[112]  Tom Mens,et al.  Identifying refactoring opportunities using logic meta programming , 2003, Seventh European Conference onSoftware Maintenance and Reengineering, 2003. Proceedings..

[113]  Raymond J. A. Buhr,et al.  Use Case Maps as Architectural Entities for Complex Systems , 1998, IEEE Trans. Software Eng..

[114]  Kent L. Beck,et al.  A laboratory for teaching object oriented thinking , 1989, OOPSLA '89.

[115]  Kenneth M. Anderson,et al.  A Framework for Mapping Traceability Relationships , 2003 .

[116]  Andrea Zisman,et al.  Tracing Software Requirements Artifacts , 2003, Software Engineering Research and Practice.

[117]  John M. Favaro,et al.  FODAcom: an experience with domain analysis in the Italian telecom industry , 1998, Proceedings. Fifth International Conference on Software Reuse (Cat. No.98TB100203).

[118]  Sean Cotter,et al.  Inside Taligent Technology , 1995 .

[119]  Peter Sommerlad,et al.  Pattern-Oriented Software Architecture: A System of Patterns: John Wiley & Sons , 1987 .

[120]  Stephen Travis Pope,et al.  A cookbook for using the model-view controller user interface paradigm in Smalltalk-80 , 1988 .

[121]  Barry W. Boehm,et al.  A spiral model of software development and enhancement , 1986, Computer.

[122]  William F. Opdyke,et al.  Refactoring object-oriented frameworks , 1992 .

[123]  Mikael Lindvall,et al.  Practical implications of traceability , 1996 .

[124]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[125]  Don S. Batory,et al.  The Advanced Computing Systems Association 5 Th Usenix Conference on Object-oriented Technologies and Systems (coots '99) Automating Three Modes of Evolution for Object-oriented Software Architectures Automating Three Modes of Evolution for Object-oriented Software Architectures , 2022 .

[126]  James O. Coplien,et al.  Pattern languages of program design , 1995 .

[127]  John C. Grundy,et al.  Inconsistency Management for Multiple-View Software Development Environments , 1998, IEEE Trans. Software Eng..

[128]  Gregory Butler Developing Frameworks by Aligning Requirements, Design, and Code , 1999, ECOOP Workshops.

[129]  Christos H. Papadimitriou,et al.  Towards an analysis of indexing schemes , 1997, PODS 1997.

[130]  Tom Mens,et al.  A formal foundation for object-oriented software evolution , 2001, Proceedings IEEE International Conference on Software Maintenance. ICSM 2001.

[131]  Jagdish Bansiya Evaluating framework architecture structural stability , 2000, CSUR.

[132]  Ivar Jacobson,et al.  Object-oriented software engineering - a use case driven approach , 1993, TOOLS.

[133]  Jan Bosch,et al.  Representing Variability in Software Product Lines: A Case Study , 2002, SPLC.

[134]  Shengbing Ren,et al.  Refactoring Use Case Models: A Case Study , 2003, ICEIS.

[135]  Greg Butler,et al.  Documenting Frameworks , 1999 .

[136]  William G. Griswold Program restructuring as an aid to software maintenance , 1992 .

[137]  Bjarne Stroustrup,et al.  C++ Programming Language , 1986, IEEE Softw..

[138]  Greg Butler,et al.  The Know-It-All Project : A Case Study in Framework Development and Evolution , 2002 .

[139]  Ivar Jacobson,et al.  The Unified Software Development Process , 1999 .

[140]  Erich Gamma,et al.  ET++—an object oriented application framework in C++ , 1988, OOPSLA 1988.

[141]  Dennis G. Kafura,et al.  The Use of Software Complexity Metrics in Software Maintenance , 1987, IEEE Transactions on Software Engineering.

[142]  B. Ramesh,et al.  Issues in the development of a requirements traceability model , 1993, [1993] Proceedings of the IEEE International Symposium on Requirements Engineering.

[143]  Krzysztof Czarnecki,et al.  Generative programming - methods, tools and applications , 2000 .

[144]  Kent L. Beck,et al.  Extreme programming explained - embrace change , 1990 .

[145]  Sherry Shavor,et al.  The Java Developer's Guide to Eclipse , 2003 .

[146]  Ralph E. Johnson,et al.  Creating abstract superclasses by refactoring , 1993, CSC '93.

[147]  Kim Mens,et al.  Vrije Universiteit Brussel Faculteit Wetenschappen Reuse Contracts: Managing the Evolution of Reusable Assets Reuse Contracts: Managing the Evolution of Reusable Assets , 2022 .

[148]  Linda M. Northrop,et al.  A Framework for Software Product Line Practice , 1999, ECOOP Workshops.

[149]  J. Paul Gibson Feature Requirements Models: Understanding Interactions , 1997, FIW.

[150]  M. Simos Organization Domain Modeling and OO Analysis and Design : Distinctions , Integration , New Directions Introduction , 1997 .

[151]  David J. DeWitt,et al.  OPT++ : an object-oriented implementation for extensible database query optimization , 1999, The VLDB Journal.

[152]  Richard N. Taylor,et al.  A Classification and Comparison Framework for Software Architecture Description Languages , 2000, IEEE Trans. Software Eng..

[153]  Ralph E. Johnson,et al.  A Refactoring Tool for Smalltalk , 1997, Theory Pract. Object Syst..

[154]  Juha Kuusela,et al.  Requirements engineering for product families , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[155]  Michael R. Blaha,et al.  Object-Oriented Modeling and Design for Database Applications , 1997 .

[156]  Matthias Riebisch,et al.  Using feature modeling for program comprehension and software architecture recovery , 2004, Proceedings. 11th IEEE International Conference and Workshop on the Engineering of Computer-Based Systems, 2004..

[157]  Ralph E. Johnson,et al.  Documenting frameworks using patterns , 1992, OOPSLA '92.

[158]  M. Howard Williams,et al.  A Model for Query Decomposition and Answer Construction in Heterogeneous Distributed Database Systems , 1998, Journal of Intelligent Information Systems.

[159]  Alistair Cockburn,et al.  Structuring Use Cases with Goals , 2000 .

[160]  Olly Gotel,et al.  An analysis of the requirements traceability problem , 1994, Proceedings of IEEE International Conference on Requirements Engineering.

[161]  Ilka Philippow,et al.  EXTENDING FEATURE DIAGRAMS WITH UML MULTIPLICITIES , 2002 .

[162]  Yue Wang,et al.  A graph database with visual queries for genomics , 2005, APBC.

[163]  Gregory Butler,et al.  A reuse case perspective on documenting frameworks , 1998, Proceedings 1998 Asia Pacific Software Engineering Conference (Cat. No.98EX240).

[164]  Kyo Chul Kang,et al.  Feature-Oriented Domain Analysis (FODA) Feasibility Study , 1990 .

[165]  Meir M. Lehman,et al.  Laws of Software Evolution Revisited , 1996, EWSPT.

[166]  Will Tracz,et al.  Software reuse - emerging technology , 1988 .

[167]  Klaus Schmid Scoping software product lines , 2000, SPLC.

[168]  Meir M. Lehman,et al.  Software Uncertainty , 2002, Soft-Ware.

[169]  Paul G. Sorenson,et al.  Hooking into Object-Oriented Application Frameworks , 1997, Proceedings of the (19th) International Conference on Software Engineering.

[170]  Wolfgang Pree,et al.  Design Patterns for Object-Oriented Software Development , 1994, Proceedings of the (19th) International Conference on Software Engineering.

[171]  Kyo Chul Kang,et al.  Featured-based approach to object-oriented engineering of applications for reuse , 2000 .

[172]  Haikuan Li Reuse-in-the-large: modeling, specification and management , 1993, [1993] Proceedings Advances in Software Reuse.

[173]  Walter R. Bischofberger,et al.  The Any Framework: A Pragmatic Approach to Flexibility , 1996, COOTS.

[174]  Meir M. Lehman,et al.  Evolution in software and related areas , 2001, IWPSE '01.

[175]  Tom Mens,et al.  Formalizing refactorings with graph transformations , 2005, J. Softw. Maintenance Res. Pract..

[176]  Bernhard Rumpe,et al.  Refinement of information flow architectures , 1997, First IEEE International Conference on Formal Engineering Methods.

[177]  Roy H. Campbell,et al.  A Class Hierarchy for Building Stream-Oriented File Systems , 1989, ECOOP.

[178]  Gregory Butler Architectural Refactoring in Framework Evolution: A Case Study , 2002, GPCE.

[179]  Kyo Chul Kang,et al.  Feature‐oriented engineering of PBX software for adaptability and reuseability , 1999 .

[180]  Tom Mens,et al.  Automating Support for Software Evolution in UML , 2000, Automated Software Engineering.

[181]  Gregory Butler,et al.  Use case refactoring: a tool and a case study , 2004, 11th Asia-Pacific Software Engineering Conference.

[182]  Thorsten Sturm,et al.  Refactoring Browser for UML , 2002, NetObjectDays.

[183]  Dirk Riehle,et al.  Pattern Languages of Program Design 3 , 1997 .

[184]  Bjarne Stroustrup,et al.  The C++ programming language (3. ed.) , 1997 .

[185]  David Lorge Parnas,et al.  Software aging , 1994, Proceedings of 16th International Conference on Software Engineering.

[186]  Serge Demeyer,et al.  Class Composition for Specifying Framework Design , 1999, Theory Pract. Object Syst..

[187]  Ivar Jacobson,et al.  The unified modeling language reference manual , 2010 .

[188]  Timothy Lethbridge,et al.  Object-oriented software engineering - practical software development using UML and Java , 2002 .

[189]  Gary J. Chastek,et al.  Measures for Software Product Lines , 2003 .

[190]  Meir M. Lehman,et al.  Program evolution: processes of software change , 1985 .

[191]  Shawn A. Bohner,et al.  A framework for software maintenance metrics , 1990, Proceedings. Conference on Software Maintenance 1990.

[192]  Wladyslaw M. Turski Essay on Software Engineering at the Turn of Century , 2000, FASE.

[193]  W. W. Royce,et al.  Managing the development of large software systems: concepts and techniques , 1987, ICSE '87.

[194]  E PerryDewayne,et al.  Foundations for the study of software architecture , 1992 .

[195]  Gregory Butler,et al.  Issues in architectural modeling and evolution in the know-it-all case study , 2003, 10th IEEE International Conference and Workshop on the Engineering of Computer-Based Systems, 2003. Proceedings..

[196]  A.J.M. Tilbury Enabling software traceability , 1989 .

[197]  Kenji Takahashi,et al.  Inquiry-based requirements analysis , 1994, IEEE Software.

[198]  Jan Bosch,et al.  Issues Concerning Variability in Software Product Lines , 2000, IW-SAPF.

[199]  Rubén Prieto-Díaz,et al.  Software reusability , 1993 .

[200]  Björn Regnell,et al.  Requirements Engineering with Use Cases - a Basis for Software Development , 1999 .

[201]  Philipp Ackermann,et al.  Developing object-oriented multimedia software : based on the MET++ application framework , 1996 .

[202]  Ira D. Baxter,et al.  Design maintenance systems , 1991, CACM.

[203]  A. Scheer Business Process Engineering: Reference Models for Industrial Enterprises , 1994 .

[204]  Vander Wielen,et al.  The Dimensions of Software Maintenance , 1985 .

[205]  Anthony Finkelstein Tracing back from requirements , 1991 .

[206]  E. F. Codd,et al.  A relational model of data for large shared data banks , 1970, CACM.

[207]  Arie van Deursen,et al.  Refactoring: Emerging Trends and Open Problems , 2003 .

[208]  Douglas C. Schmidt,et al.  Building application frameworks: object-oriented foundations of framework design , 1999 .

[209]  Goetz Graefe Iterators, schedulers, and distributed-memory parallelism , 1996 .

[210]  Tom Mens,et al.  Towards a Taxonomy of Software Evolution , 2003 .

[211]  Matt Nelson,et al.  Software Engineering Institute Capability Maturity Model , 2007, Information Security Management Handbook, 6th ed..

[212]  Brian Henderson-Sellers,et al.  An Integrated and Enhanced Methodology for Modeling and Implementing Object Relationships. , 1997 .

[213]  Martin L. Griss,et al.  Integrating feature modeling with the RSEB , 1998, Proceedings. Fifth International Conference on Software Reuse (Cat. No.98TB100203).

[214]  Danny B. Lange,et al.  Object-Oriented Program Tracing and Visualization , 1997, Computer.

[215]  Harald C. Gall,et al.  Software evolution observations based on product release history , 1997, 1997 Proceedings International Conference on Software Maintenance.

[216]  Paul Strooper Proceedings of the 2005 Australian Software Engineering Conference , 2004 .

[217]  Barry W. Boehm,et al.  A software product line life cycle cost estimation model , 2004, Proceedings. 2004 International Symposium on Empirical Software Engineering, 2004. ISESE '04..

[218]  Brian Henderson-Sellers,et al.  Open Modeling Language (OML)-Refer-ence Manual , 1998 .

[219]  Kyo Chul Kang,et al.  Feature-based approach to object-oriented engineering of applications for reuse , 2000, Softw. Pract. Exp..

[220]  Vincent Frank Russo An object-oriented operating system , 1991 .