Software Evolution and Feedback: Theory and Practice

Nazim H. Madhavji, Juan Fernandez-Ramil, Dewayne Perry

  • 出版商: Wiley
  • 出版日期: 2006-06-01
  • 售價: $4,940
  • 貴賓價: 9.5$4,693
  • 語言: 英文
  • 頁數: 612
  • 裝訂: Hardcover
  • ISBN: 0470871806
  • ISBN-13: 9780470871805
  • 已絕版
    無現貨庫存(No stock available)




Evolution of software has long been recognized as one of the most problematic and challenging areas in the field of software engineering, as evidenced by the high, often up to 60-80%, life-cycle costs attributed to this activity over the life of a software system.  Studies of software evolution are central to the understanding and practice of software development.  Yet it has received relatively little attention in the field of software engineering.  This book focuses on topics aimed at giving a scientific insight into the aspect of software evolution and feedback.

In summary, the book covers conceptual, phenomenological, empirical, technological and theoretical aspects of the field of software evolution - with contributions from the leading experts.

This book delivers an up-to-date scientific understanding of what software evolution is, to show why it is inevitable for real world applications, and it demonstrates the role of feedback in software development and maintenance.  The book also addresses some of the phenomenological and technological underpinnings and includes rules and guidelines for increased software evolvability and, in general, sustainability of the evolution process.

Software Evolution and Feedback provides a long overdue, scientific focus on software evolution and the role of feedback in the software process, making this the indispensable guide for all software practitioners, researchers and managers in the software industry.


Table of Contents

List of Contributors.


1 Software Evolution Meir Lehman and Juan Fern´andez Ramil.

1.1 Introduction.

1.2 The Evolution of Large Software Systems.

1.3 Program Classification.

1.4 The Inevitability of Evolution.

1.5 Levels of Software-Related Evolution.

1.6 Ab Initio Implementation or Change.

1.7 Software Systems Evolution.

1.8 Evolution of the Application and Its Domain.

1.9 Process Evolution.

1.10 Process Model Evolution.

1.11 Relationships Between Levels.

1.12 Conclusions.

1.13 Acknowledgments.


2 A Nontraditional View of the Dimensions of Software Evolution Dewayne E. Perry.

2.1 Introduction.

2.2 The Domains.

2.3 Experience.

2.4 Process.

2.5 Summary.

2.6 Acknowledgments.


3 IT Legacy Systems: Enabling Environments That Reduce the Legacy Problem:

A Complexity Perspective Eve Mitleton-Kelly.

3.1 Introduction.

3.2 The Legacy Problem.

3.3 The Two Case Studies.

3.4 The Socio-Technical Enabling Environment.

3.5 Summary and Conclusions.

3.6 Acknowledgements.


4 Facets of Software Evolution Roland T. Mittermeir.

4.1 Introduction.

4.2 What is Software?.

4.3 Evolution.

4.4 Strata of Software-Size and Complexity.

4.5 Approaches to (R-)evolve .

4.6 An Example.

4.7 Summary.


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.3 SPE+.

5.4 Conclusions and Future Research.

5.5 Acknowledgements.


6 A Simple Model of Software System Evolutionary Growth Władysław M. Turski.


7 Statistical Modelling of Software Evolution Processes Tetsuo Tamai and Takako Nakatani.

7.1 Introduction.

7.2 Approach.

7.3 Observed Evolution Patterns.

7.4 Distribution Model.

7.5 Discussions.


8 A Case Study of Software Requirements Changes Due to External Factors Vic Nanda and Nazim H. Madhavji.

8.1 Introduction.

8.2 Congruence Evaluation System (CES): A Case Study.

8.3 Lessons Learnt and Conclusions.


Appendix A: An Instrument to Assess System Deficiencies.

Appendix B: An Instrument to Assess Environment Evolution.

9 Understanding Open-Source Software Evolution Walt Scacchi.

9.1 Introduction.

9.2 Empirical Studies of Software Evolution.

9.3 Evolutionary Patterns in Open-Source Software.

9.4 Evolution Models and Theories.

9.5 Do We Need New or Revised Models, Laws or Theories for Open-Source Software Evolution?.

9.6 Conclusions.

9.7 Acknowledgements.


10 Structural Analysis of Open Source Systems Andrea Capiluppi, Maurizio Morisio and Juan Fernandez-Ramil.

10.1 Introduction.

10.2 Related Work.

10.3 Rationale.

10.4 Approach.

10.5 Attributes Studied.

10.6 Evolution of Code Structure.

10.7 Summary.

10.8 Current and Future Work.

10.9 Acknowledgements.



11 A Study of Software Evolution at Different Levels of Granularity Elizabeth Burd.

11.1 Introduction.

11.2 Existing Studies of Software Evolution.

11.3 Case Study Approach.

11.4 Results.

11.5 General Recommendations.

11.6 Conclusions.


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.5 Links Between Ripple Effect and the Laws of Software Evolution.

12.6 Conclusions.

12.7 Further Work.

12.8 Acknowledgements.


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 Morrison and Aled Sage.

13.1 Introduction.

13.2 Evolution and Compliance.

13.3 A Generic Scheduling Problem.

13.4 Compliance Through Configuration.

13.5 Exploiting an Analytical Model.

13.6 Discussion.

13.7 Acknowledgements.


14 Comparison of Three Evaluation Methods for Object-Oriented Framework Evolution Michael Mattsson.

14.1 Introduction.

14.2 Object-oriented Frameworks.

14.3 Methods and Results.

14.4 Method Comparison.

14.5 Related Work.

14.6 Conclusion.


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.6 Conclusions.


16 Background and Approach to Development of a Theory of Software Evolution Meir M Lehman and Juan Fern´andez Ramil.

16.1 Foreword.

16.2 Software Evolution.

16.3 Global Views of Evolution.

16.4 The Case for Theory.

16.5 Theory Development.

16.6 A World View.

16.7 Example.

16.8 The Theory.

16.9 Organisation of Theory Development.

16.10 Goals.

16.11 Related Work.

16.12 Final Remarks.

16.13 Acknowledgements.


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.6 Examples of Feedback Control.

17.7 Summary.

17.8 Acknowledgments.


18 Policy-Guided Software Evolution Nazim H. Madhavji and Jos´ee Tass´e.

18.1 Introduction.

18.2 The Policy-Checking Mechanism.

18.3 The Contextual Framework.

18.4 Technological Support.

18.5 Evaluation.

18.6 Related Work.

18.7 Conclusions.


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.3 Contents of Individual Requirements.

19.4 Keeping Track of Connections.

19.5 The Quality Gateway.

19.6 Lessons Learnt.

19.7 Conclusion.


Suzanne Robertson.

20 Requirements Risk and Software Reliability Norman F. Schneidewind.

20.1 Introduction.

20.2 Background.

20.3 Selected Measurement Research Projects.

20.4 Approach to Analyzing Requirements Risk.

20.5 Risk Factors.

20.6 Solutions to Risk Analysis Example.

20.7 Future Trends.

20.8 Conclusions.

20.9 Acknowledgments.


21 Combining Process Feedback with Discrete Event Simulation Models to Support Software Project Management David Raffo and Joseph Vandeville.

21.1 Introduction.

21.2 Providing Up-to-Date Process Feedback.

21.3 Discrete Event Simulation Models.

21.4 Combining Process Feedback with the Discrete Model.

21.5 Illustrative Example.

21.6 Conclusions .

21.7 Acknowledgements.

21.8 Biographies.


22 A Feedforward Capability to Improve Software Reestimation William W. Agresti.

22.1 Introduction.

22.2 A Feedforward Capability.

22.3 Example Uses of the Feedforward Concept.

22.4 Conclusion.

22.5 Acknowledgements.



23 Modelling the Feedback Part of the Software Process in Software Resource Estimation Juan 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 Approaches 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.


24 Value-Based Feedback in Software and Information Systems Development Barry Boehm and LiGuo Huang.

24.1 Introduction.

24.2 Feedback Control of Software Development: Four Primary Feedback Cycles.

24.3 Using ‘EV’ for Feedback Control of Software Development and Evolution.

24.4 Real Earned-Value Feedback Control.

24.5 Value-Based Feedback Control: An Order Processing Example.

24.6 Conclusions and Future Challenges.

24.7 Acknowledgments.


25 Expert Estimation of Software Development Cost: Learning through Feedback Magne Jørgensen and Dag Sjøberg.

25.1 Introduction.

25.2 Estimation Learning.

25.3 Estimation Feedback and Process Guidelines.

25.4 Experiment: Application of the Guidelines.

25.5 Summary.

25.6 Acknowledgement.


26 Self-Adaptive Software: Internalized Feedback Robert Laddaga, Paul Robertson and Howard Shrobe.

26.1 Introduction.

26.2 Historical Perspective.

26.3 Self-Adaptive Software.

26.4 Applications of Self-Adaptive Software.

26.5 Conclusion.


27 Rules and Tools for Software Evolution Planning and Management Meir M (Manny) Lehman and Juan Fernandez Ramil.

27.1 Introduction.

27.2 Laws of Software Evolution.

27.3 S- and E-Type Program Classification.

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 Uncertainty.

27.14 Conclusions.

27.15 Acknowledgements.