TY - BOOK TI - Software evolution and feedback: Theory and practice U1 - 005.1 PY - 2006/// CY - Chichester, England, Hoboken, N.J. PB - John Wiley & Sons KW - Computer Software KW - Development N1 - Title from title screen; Includes bibliographical references and index; Contents Foreword Preface Acknowledgements Editors' Biographies List of Contributors PART ONE SOFTWARE EVOLUTION 1 1.1 1.2 1.3 Software Evolution Meir Lehman and Juan C. Ferndndez-Ramil Introduction 1.1.1 Evolution 1.1.2 Interpretation of the Term Evolution in the Conte.xt of Softivare The Evolution of Large Software Sy.stems 1.2.1 Early Work 1.2.2 Large Progranu Program Classification 1.3.1 The SPE Program Clas.sification Schema 1.3.2 S-type Application.^ and Software 1.3.3 E-type Applications and Software 1.3.4 P-type Situations and Software 1.4 The Inevitability of Evolution 1.5 Levels of Software-Related Evolution 1.6 Ah Initio Implementation or Change 1.6.1 Process Steps 1.6.2 The LST Paradigm 1.6.3 Phenomenological Analysis of Real-World Computer Usage 1.6.4 Theoretical Underpinning 1.6.5 The Value of Formalisms and oj Verification 1.6.6 Bounding 1.6.7 The Con.sec/uence: Continual System Evolution XIX XXI XXVIl XXIX XXXI 1 7 7 7 9 10 10 10 12 13 13 14 16 16 17 18 18 19 20 21 1.6.8 Summary 1.6.9 Principle of Software Uncertainly 1.7 Software Systems Evolution 1.7.1 Early Work 1.7.2 FEAST 1.7.3 The Growth Trend 1.7.4 Evolution Drivers 1.7.5 Relationship Between the Above Levels of Evolution 1.7.6 Evolutionary Development 1.8 Evolution of the Application and Its Domain 1.9 Process Evolution 1.9.1 Software Processes as Systems 1.9.2 Process Improvement 1.9.3 The Theoretical Approach 1.9.4 Evolving Specifications 1.9.5 The Empirical Approach 1.9.6 Laws of Software Evolution 1.9.7 The Ephemeral Process 1.10 Process Model Evolution 1.10.1 The Nature of the Software Proce.ss 1.10.2 Process Models 1.10.3 Software Process Models 1.10.4 Process Improvement 1.10.5 Links Between Process and Process Mod^l r ; ■ 1.11 Relationships Between Levels '^1 Evolution 1.11.1 The Software/Software Process Comm., 1.13 Acknowledgments References 2 A Nontraditional View of the Dimensions of Dewayne E. Perry Software Evolution 2.1 Introduction 2.2 The Domains 2.2.1 The Real World and Its Model 2.2.2 The Model and the Derived 2.2.3 Theory 'fixation 2.3 Experience 2.3.1 Feedback 2.3.2 Experimentation 2.3.3 Understanding 2.4 Process 2.4.1 Methods 2.4.2 Technology 2.4.d Organization 2.5 Summary 0 6 Acknowledgments References 3 IT Legacy Systems: Enabling Environments That Reduce the Legacy Problem: A Complexity Perspective Professor Eve Mitlelon-Kelly 3.1 Introduction 3.2 The Legacy Problem 3.2.1 Feedback 3.2.2 Co-evoliuion 3.2.3 The Social Ecosystem 3.3 The Two Case Studies 3.3.1 Business ami Market 3.3.2 Organi.sation and Management 3.3.3 Technology 3.3.4 Interactions between the Various Elements 3.4 The Socio-Technical Enabling Environment 3.4.1 The Bank's Enabling Environment 3.4.2 The Building Society and Some Comple.xity Principles 3.5 Summary and Conclusions 3.6 Acknowledgements References 4 Facets of Software Evolution Roland T. Mittermeir 4.1 Introduction 4.2 What is Software? 4.2.! Software: A Technical Artefact 4.2.2 Software: A Utility 4.2.3 Software: A Text, Reflecting Reality 4.2.4 Software is Information 4.3 Evolution 4.3.1 Principles 4.3.2 Evolution Drivers 4.4 Strata of Software-Size and Complexity 4.4.1 Module 4.4.2 Design Unit 4.4.3 Architecture 4.4.4 System 4.4.5 System-of-Systems 4.4.6 Discussion 4.5 Approaches to (??-)evolve 4.5.1 Changes in Modules 4.5.2 Modifying Design Units 4.5.3 Evolution on the Architectural Level 4.5.4 System-Level Evolution 4.5.5 Evolution of Systems-of-Systems 4.6 An Example 4.6.1 A Systeni-of-Sy.stems? 4.6.2 System-Level Changes 4.6.3 Architectural Decisions 4.6.4 Design Units 4.6.5 Modules 4.6.6 Discussion 4.7 Summary References 5 Evolution in Software Systems: Foundations of the SPE Classification Scheme Stephen Cook, Rachel Harrison, Meir M. Lehman and Paul Wernick 5.1 Introduction 5.2 Background and Related Work 5.2.1 Software Evolution 5.2.2 Stakeholders, Architecture and Software Evolution 5.2.3 Hermeneutics and Software Evolution 5.2.4 Requirements Analysis, Paradigms and Hermeneutics 5.3 SPE+ 5.3.1 Introduction 5.3.2 The SPE+ Taxonomy 5.3.3 Validation of SPE+ 5.4 Conclusions and Future Research 5.5 Acknowledgements References 6 A Simple Model of Software System Evolutionary Growth Wladyslaw M. Turski References 7 Statistical Modelling of Software Evolution Processes Tetsuo Tamai and Takako Nakatani 7.1 Introduction 7.2 Approach 7.2.1 Measurement 7.2.2 Case Studies 7.2.3 Metrics 7.3 Observed Evolution Patterns 7.3.1 Stable Statistic Model 7.3.2 Exceptional Data 7.3.3 Discontinuous Change 7.3.4 Class Tree Characteristics 7.4 Distribution Model 7.4.1 Negative Binomial Distribution 7.4.2 Evolution of Model Parameters 7.4.3 Larger Case Study 7.5 Discussions References 8 Software Requirements Changes Due to External Factors Vic Nanda and Nazim H. Madhavji 8.1 Introduction 8.1.1 Organisation of This Chapter 8.2 Congruence Evaluation System (CES): A Case Study 8.2.1 CES Context and Key Events 8.2.2 Contribution. Relevance and Applicability of This Case Stiulv 8.2.3 CES: Background and Implementation Strategy 8.2.4 Analysis of CES Capabilities 8.2.5 The Impact of Environmental Evolution 8.2.6 Threats to Validity 8.3 Lessons Learnt and Conclusions References Appendix A: An Instrument to Assess Sy.stem Deficiencies Appendix B: An Instrument to As.sess Environment Evolution 9 Understanding Open Source Software Evolution Walt Scacchi 9.1 Introduction 9.2 Empirical Studies of Software Evolution 9.2.1 Studies of the Laws of Software Evolution 9.2.2 Other Empirical Studies of Software Evolution 9.3 Evolutionary Patterns in Open Source Software 9.3.1 Types of Entities for Studying F/OSS Evolution 9.3.2 Patterns in Open Source Software Evolution Studies 9.4 Evolution Models and Theories 9.5 Do We Need New or Revised Models, Laws or Theories for Open Source Software Evolution? 9.5.1 Embracing the Feedback Control Sy.stems Ontology 9.5.2 Alternative Ontologies for F/OSS Evolution 9.6 Conclusions 9.7 Acknowledgements References 10 Structural Analysis of Open Source Systems Andrea Capiluppi, Maurizio Morisio and Juan C. Ferndndez-Rantil 10.1 Introduction 10.2 Related Work 10.3 Rationale 10.4 Approach 10.5 Attributes Studied 10.5.1 Source Code Size 10.5.2 Code Structure 10.5.3 Modification Types 10.6 Evolution of Code Structure 10.6.1 Horizontally Expanding 10.6.2 Vertically Shrinking 10.6.3 Vertically E.xpanding 10.7 Summary 10.8 Current and Future Work 10.9 Acknowledgements References Appendix 11 A Study of Software Evolution at Different Levels of Granularity Elizabeth Burd II. 1 Introduction 11.2 Existing Studies of Software Evolution 11.3 Ca.se Study Approach 11.4 Results ! 1.4.1 The System Level 11.4.2 Level 2. The Function Level 11.4.3 Level 3, The Data Level 11.4.4 Comparing Levels 11.5 General Recommendations 11.6 Conclusions References 12 The Role of Ripple Effect in Software Evolution Sue Black 12.1 Introduction 12.2 Impact Analysis 12.3 Software Maintenance and Software Maintenance Models 12.4 Background on the Ripple Effect 12.4.1 Computation of the Ripple Effect 12.4.2 The REST Software Tool 12.5 Links Between Ripple Effect and the Laws of Software Evolution 12.5.1 First Law - Continuing Change 12.5.2 Second Law - Growing Complexity 12.5.3 Third Law - Self Regulation 12.5.4 Fourth Law - Conser\>ation of Organisational Stability 12.5.5 Fifth Law - Conser\'ation of Familiarity 12.5.6 Sixth Law - Contmidng Growth 12.5.7 Seventh Law - Declining Quality 12.5.8 Eighth Law - Feedback System 12.6 Conclu.sions 12.7 Further Work 12.8 Acknowledgements References 13 The Impact of Software-Architecture Compliance on System Evolution R. Mark Greenwood, Ken Mayes, Wykeen Seet, Brian C. Warboys, Dharini Balasubramaniam, Graham Kirby, Ron Morrisoit arid Aled Sage 13.1 Introduction 13.2 Evolution and Compliance 13.3 A Generic Scheduling Problem 13.3.1 A ProcessWeb Example 13.3.2 Programming Around Poor Compliance 13.4 Compliance Through Configuration 13.4.1 Trade-offs in Configuration 13.5 Exploiting an Analytical Model 13.5.1 A First Analytical Model for Proces.sWeb 13.6 Discussion 13.7 Acknowledgements References 14 Comparison of Three Evaluation Methods for Object-Oriented Framework Evolution Michael Mattsson 14.1 Introduction 14.2 Object-oriented Frameworks 14.2.1 The Studied Frameworks 14.3 Methods and Results 14.3.1 Evolution Identification Using Historical Information 14.3.2 Stability Assessment 14.3.3 Distribution of the Development Ejfort 14.4 Method Comparison 14.4.1 Change-prone Modides 14.4.2 Framework Deployment 14.4.3 Change Impact Analysis 14.4.4 Benchmarking 14.4.5 Requirements Management 14.4.6 Some Comments 14.5 Related Work 14.6 Conclusion References 15 Formal Perspectives on Software Evolution: From Refinement to Retrenchment Michael Poppleton and Lindsay Groves 15.1 Introduction 15.2 Program Refinement 15.3 Modifying Refinements by Adapting Derivations 15.4 A Compositional Approach to Program Modification 15.5 Retrenchment 15.5.1 Refinement - a Relational Perspective 15.5.2 The Need to Generalise Refinement 15.5.3 Retrenchment: Generalising Refinement 15.5.4 Retrenchment for Software Evolution 15.6 Conclusions References 16 Background and Approach to Development of a Theory of Software Evolution Meir M. Lehman and Juan C. Ferndndez-Ramil 16.1 Software Evolution 16.2 Global Views of Evolution 16.2.1 Two Approaches 16.2.2 The Verbal Approach 16.2.3 The Nomal Approach 16.2.4 Mutual Support of the Two View.s 16.2.5 Process Improvement 16.3 The Case for Theory 16.4 Theory Development 16.5 A World View 16.5.1 Real-World Program Relationship 16.5.2 Assumptions 16.6 Example 16.6.1 Introduction 16.6.2 Preliminary Definitions 16.6.3 Obserx'ations 16.6.4 Inferences 16.6.5 Guidelines 16.7 The Theory 16.8 Organisation of Theory Development 16.9 Goals 16.10 Related Work 16.11 Final Remarks 16.12 Acknowledgements References PART TWO FEEDBACK 17 Difficulties with Feedback Control in Software Processes Meir M. Lehman, Dewayne E. Perry and Wlad Turski 17.1 Introduction 17.2 Feedback and Control 17.3 Technology versus Sociology 17.4 Manifesto and Model 17.5 Influence versus Control 17.5.1 Immaturity 17.5.2 Feedback Overload 17.5.3 Step Functions versus Regulation 17.5.4 Design versus Production 17.6 Examples of Feedback Control 17.7 Summary 17.8 Acknowledgments References 18 Governing Software Evolution through Policy-oriented Feedback Nazim H. Madhavji and Josee Tasse 18.1 Introduction 18.2 The Policy-Checking Mechanism 18.2.1 Controlling System Growth 18.2.2 Re-engineering Change-Prone Modules 18.2.3 Discussion 18.3 The Contextual Framework 18.3.1 New-Release Development 18.3.2 Roles, Communication and Feedback 18.3.3 The Framework Architecture 18.4 Technological Support 18.4.1 Policy-Checking Mechanism 18.4.2 Framework 18.5 Evaluation 18.6 Related Work 18.7 Conclu.sions References 19 Feedback in Requirements Discovery and Specification: A Quality Gateway for Testing Requirements Suzanne Robertson 19.1 Contents of the Requirements Specification 19.2 Project Drivers 19.2.1 Producers 19.2.2 Consumers 19.2.3 Sponsors 19.2.4 Subject Matter Comsultants 19.2.5 Technical Consultants 19.2.6 Influencers 19.2.7 Project-Sociology Analysis 19.3 Contents of Individual Requirements 19.4 Keeping Track of Connections 19.5 The Quality Gateway 19.6 Lessons Learnt 19.7 Conclusion References 20 Requirements Risk and Software Reliability Norman F. Schneidewind 20.1 Introduction 20.1.1 Requirements Changes and Software Evolution 20.1.2 Objectives 20.1.3 Methods 20.2 Background 20.3 Selected Measurement Research Projects 20.4 Approach to Analyzing Requirements Risk 20.4.1 Categorical Data Analysis 20.5 Risk Factors 20.5.1 Space Shuttle Flight Software Requirements Change Risk Factors 20.6 Solutions to Risk Analysis Example 20.6.1 Categorical Data Analysis 20.6.2 Dependency Check on Risk Factors 20.6.3 Identification of Modides that Caused Failures 20.7 Future Trends 20.8 Conclusions 20.9 Acknowledgments References 21 Combining Process Feedback with Discrete Event Simulation Models to Support Software Project Management David Rajfo and Joseph Vandeville 21.1 Introduction 21.2 Providing Up-to-Date Process Feedback 21.2J Feedback in Simulation Models 21.2.2 Metrics Repository 21.3 Discrete Event Simulation Models 21.4 Combining Process Feedback with the Discrete Model 21.4.1 Comparing Statistical Process Control with Outcome Based Control Limits 21.5 Illustrative Example 21.5.1 The Scenario Under Consideration 21.5.2 Determining the Performance of the Baseline Process 21.5.3 Use of the Model and Metrics for Quantitative Process Feedback Management 21.5.4 Assessing the Implications of Feedback and Developing an Action Plan (Is the Process in Control?) 21.5.5 Taking Corrective Action and Asses.smg the Impact of the Changes 21.6 Conclusions 21.7 Acknowledgements References 22 A Feedforward Capability to Improve Software Reestimation William W. Agresti 22.1 Introduction 22.1.1 Reestimation: State of the Practice 22.1.2 Objective 22.1.3 Related Research 22.2 A Feedforward Capability 22.2.1 Feedforward Estimation in Other Domains 22.2.2 Feedforward Estimation in Software Development 22.2.3 Operation of a Feedforward Model 22.3 Example Uses of the Feedforward Concept 22.3.1 Feedforward Capability Integrated with a Software Estimation Tool 22.3.2 The Role of a Feedforward Capability in Risk Management 22.4 Conclusion 22.5 Acknowledgements Appendix References 23 Modelling the Feedback Part of the Software Process in Software Resource Estimation Juan C. Fernandez-Ramil and Sarah Beecham 23.1 Introduction 23.2 The Evidence of Feedback 23.3 The Need for a Taxonomy 23.4 Feedback as a Cost Factor 23.5 Cost Estimation as a 'System Identification' Problem 23.6 Why do Algorithmic Cost Estimation >proaches such as COCOMO 'Work' ? 23.7 Approaches to Model 'Feedback' in Cost Estimation Models 23.8 Indirect Black-Box Modelling and Feedback-Related Cost Factors 23.9 Final Remarks 23.10 Acknowledgments References 24 Value-Based Feedback in Software and Information Systems Development Barry Boehm and LiGiio Huang 24.1 Introduction 24.2 Feedback Control of Software Development: Four Primary Feedback Cycles 24.2.1 Feedback Cycle I: Project Scoping 24.2.2 Feedback Cycle 2: Project Execution 24.2.3 Feedback Cycle 3: Model Update 24.2.4 Feedback Cycle 4: Organizational Productivity Improvement 24.3 Using 'EV for Feedback Control of Software Development and Evolution 24.3.1 An Earned Value System Example 24.4 Real Earned-Value Feedback Control 24.4.1 Business-Case and Benejits-Realized Monitoring and Control 24.5 Value-Based Feedback Control: An Order Processing Example 24.5.1 Business Case Analysis: Costs, Benejits and Return on Investment 24.5.2 Value-Based Monitoring and Control 24.6 Conclusions and Future Challenges 24.7 Acknowledgments References 25 Expert Estimation of Software Development Cost: Learning through Feedback Magne J0rgensen and Dag Sjdberg 25.1 Introduction 25.2 Estimation Learning 25.3 Estimation Feedback and Process Guidelines 25.3.1 Increase the Motivation for Learning Estimation Skills 25.3.2 Reduce the Impact from Estimation-Learning Biases 25.3.3 Ensure a Fit Between the Estimation Process and Type of Feedback 25.3.4 Provide Learning Situations 25.4 Experiment: Application of the Guidelines 25.4.1 Background 25.4.2 Experiment Design 25.4.3 Results 25.5 Summary 25.6 Acknowledgement References 26 Self-Adaptive Software: Internalized Feedback Robert Laddaga, Paul Robert.son and Howard Shrobe 26.1 Introduction 26.1.1 Some Software Life Cycle Concepts 26.1.2 Brief Introduction to Self-Adaptive Software 26.1.3 Introduction of Binding of Function Call to Function Value 26.2 Historical Perspective 26.2.1 Dynamic Versu.s Static Binding 26.2.2 Language and Compiler Development 26.2.3 Performance Trade-Offs 26.2.4 The Concept of Software Application Evolution 26.2.5 A Note about Software Ecology 26.3 Self-Adaptive Software 26.3.1 Concept.s 26.3.2 Technology Requirements and Opportunities 26.4 Applications of Self-Adaptive Software 26.4.1 Recent Application Work 26.4.2 Vision Systems 26.4.3 Face Recognition 26.4.4 Pen'asive Computing 26.5 Conclusion References 27 Rules and Tools for Software Evolution Planning and Management Meir M. Lehman and Juan C. Ferndndez-Ramil 27.1 Introduction 27.2 Laws of Software Evolution 27.3 S- and £-Type Program Classification 27.3.1 Basic Properties 27.3.2 Implications of the SPE Program Classification Scheme 27.4 First Law: Continuing Change 27.5 Second Law: Increasing Complexity 27.6 Third Law: Self Regulation 27.7 Fourth Law: Conservation of Organisational Stability 27.8 Fifth Law: Conservation of Familiarity 27.9 Sixth Law: Continuing Growth 27.10 Seventh Law: Declining Quality 27.11 Eighth Law: Feedback System 27.12 The FEAST Hypothesis 27.13 The Principle of Software Lfncertainty 27.14 Conclusions 27.15 Acknowledgements References ER -