Software Evolution and Feedback : Theory and Practice

個数:

Software Evolution and Feedback : Theory and Practice

  • 在庫がございません。海外の書籍取次会社を通じて出版社等からお取り寄せいたします。
    通常6~9週間ほどで発送の見込みですが、商品によってはさらに時間がかかることもございます。
    重要ご説明事項
    1. 納期遅延や、ご入手不能となる場合がございます。
    2. 複数冊ご注文の場合、分割発送となる場合がございます。
    3. 美品のご指定は承りかねます。
  • ≪洋書のご注文につきまして≫ 「海外取次在庫あり」および「国内仕入れ先からお取り寄せいたします」表示の商品でも、納期の目安期間内にお届けできないことがございます。あらかじめご了承ください。

  • 製本 Hardcover:ハードカバー版/ページ数 575 p.
  • 言語 ENG
  • 商品コード 9780470871805
  • DDC分類 005.1

Full Description


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

Foreword                                           xix
Preface xxi
Acknowledgements xxvii
Editors' Biographies xxix
List of Contributors xxxi
PART ONE SOFTWARE EVOLUTION 1 (358)
1 Software Evolution 7 (34)
Meir Lehman and Juan C. Fern疣dez-Ramil
1.1 Introduction 7 (1)
1.1.1 Evolution 7 (1)
1.1.2 Interpretation of the Term 8 (1)
Evolution in the Context of Software
1.2 The Evolution of Large Software 8 (2)
Systems
1.2.1 Early Work 8 (1)
1.2.2 Large Programs 9 (1)
1.3 Program Classification 10 (3)
1.3.1 The SPE Program Classification 10 (1)
Schema
1.3.2 S-type Applications and Software 10 (2)
1.3.3 E-type Applications and Software 12 (1)
1.3.4 P-type Situations and Software 13 (1)
1.4 The Inevitability of Evolution 13 (1)
1.5 Levels of Software-Related Evolution 14 (2)
1.6 Ab Initio Implementation or Change 16 (6)
1.6.1 Process Steps 16 (1)
1.6.2 The LST Paradigm 17 (1)
1.6.3 Phenomenological Analysis of 18 (1)
Real-World Computer Usage
1.6.4 Theoretical Underpinning 18 (1)
1.6.5 The Value of Formalisms and of 19 (1)
Verification
1.6.6 Bounding 20 (1)
1.6.7 The Consequence: Continual System 21 (1)
Evolution
1.6.8 Summary 21 (1)
1.6.9 Principle of Software Uncertainty 22 (1)
1.7 Software Systems Evolution 22 (5)
1.7.1 Early Work 22 (1)
1.7.2 FEAST 23 (1)
1.7.3 The Growth Trend 24 (1)
1.7.4 Evolution Drivers 25 (1)
1.7.5 Relationship Between the Above 26 (1)
Levels of Evolution
1.7.6 Evolutionary Development 26 (1)
1.8 Evolution of the Application and Its 27 (1)
Domain
1.9 Process Evolution 28 (4)
1.9.1 Software Processes as Systems 28 (1)
1.9.2 Process Improvement 28 (1)
1.9.3 The Theoretical Approach 29 (1)
1.9.4 Evolving Specifications 30 (1)
1.9.5 The Empirical Approach 30 (1)
1.9.6 Laws of Software Evolution 30 (1)
1.9.7 The Ephemeral Process 31 (1)
1.10 Process Model Evolution 32 (3)
1.10.1 The Nature of the Software 32 (1)
Process
1.10.2 Process Models 32 (1)
1.10.3 Software Process Models 33 (1)
1.10.4 Process Improvement 33 (2)
1.10.5 Links Between Process and 35 (1)
Process Model Evolution
1.11 Relationships Between Levels 35 (2)
1.11.1 The Software/Software Process 35 (1)
Contrast
1.11.2 The Software Process/Process 36 (1)
Model Contrast
1.12 Conclusions 37 (1)
1.13 Acknowledgments 37 (1)
References 37 (4)
2 A Nontraditional View of the Dimensions of 41 (12)
Software Evolution
Dewayne E. Perry
2.1 Introduction 41 (1)
2.2 The Domains 42 (2)
2.2.1 The Real World and Its Model 42 (1)
2.2.2 The Model and the Derived 43 (1)
Specification
2.2.3 Theory 43 (1)
2.3 Experience 44 (3)
2.3.1 Feedback 45 (1)
2.3.2 Experimentation 46 (1)
2.3.3 Understanding 46 (1)
2.4 Process 47 (2)
2.4.1 Methods 47 (1)
2.4.2 Technology 48 (1)
2.4.3 Organization 48 (1)
2.5 Summary 49 (1)
2.6 Acknowledgments 50 (1)
References 51 (2)
3 IT Legacy Systems: Enabling Environments 53 (18)
That Reduce the Legacy Problem: A Complexity
Perspective
Professor Eve Mitleton-Kelly
3.1 Introduction 53 (2)
3.2 The Legacy Problem 55 (3)
3.2.1 Feedback 56 (1)
3.2.2 Co-evolution 56 (1)
3.2.3 The Social Ecosystem 57 (1)
3.3 The Two Case Studies 58 (6)
3.3.1 Business and Market 60 (1)
3.3.2 Organisation and Management 61 (1)
3.3.3 Technology 62 (1)
3.3.4 Interactions between the Various 62 (2)
Elements
3.4 The Socio-Technical Enabling 64 (4)
Environment
3.4.1 The Bank's Enabling Environment 64 (2)
3.4.2 The Building Society and Some 66 (2)
Complexity Principles
3.5 Summary and Conclusions 68 (1)
3.6 Acknowledgements 69 (1)
References 69 (2)
4 Facets of Software Evolution 71 (24)
Roland T. Mittermeir
4.1 Introduction 71 (1)
4.2 What is Software? 72 (3)
4.2.1 Software: A Technical Artefact 72 (1)
4.2.2 Software: A Utility 72 (1)
4.2.3 Software: A Text, Reflecting 73 (1)
Reality
4.2.4 Software is Information 74 (1)
4.3 Evolution 75 (2)
4.3.1 Principles 75 (1)
4.3.2 Evolution Drivers 76 (1)
4.4 Strata of Software-Size and Complexity 77 (5)
4.4.1 Module 77 (1)
4.4.2 Design Unit 78 (1)
4.4.3 Architecture 79 (1)
4.4.4 System 80 (1)
4.4.5 System-of-Systems 80 (1)
4.4.6 Discussion 81 (1)
4.5 Approaches to (R-)evolve 82 (4)
4.5.1 Changes in Modules 83 (1)
4.5.2 Modifying Design Units 84 (1)
4.5.3 Evolution on the Architectural 84 (1)
Level
4.5.4 System-Level Evolution 84 (1)
4.5.5 Evolution of Systems-of-Systems 85 (1)
4.6 An Example 86 (5)
4.6.1 A System-of-Systems? 86 (1)
4.6.2 System-Level Changes 87 (1)
4.6.3 Architectural Decisions 88 (1)
4.6.4 Design Units 88 (2)
4.6.5 Modules 90 (1)
4.6.6 Discussion 91 (1)
4.7 Summary 91 (1)
References 92 (3)
5 Evolution in Software Systems: Foundations 95 (36)
of the SPE Classification Scheme
Stephen Cook, Rachel Harrison, Meir M.
Lehman and Paul Wernick
5.1 Introduction 95 (1)
5.2 Background and Related Work 96 (19)
5.2.1 Software Evolution 96 (8)
5.2.2 Stakeholders, Architecture and 104 (4)
Software Evolution
5.2.3 Hermeneutics and Software 108 (5)
Evolution
5.2.4 Requirements Analysis, Paradigms 113 (2)
and Hermeneutics
5.3 SPE+ 115 (10)
5.3.1 Introduction 115 (1)
5.3.2 The SPE+ Taxonomy 115 (8)
5.3.3 Validation of SPE+ 123 (2)
5.4 Conclusions and Future Research 125 (1)
5.5 Acknowledgements 126 (1)
References 127 (4)
6 A Simple Model of Software System 131 (12)
Evolutionary Growth
Wladyslaw M. Turski
References 141 (2)
7 Statistical Modelling of Software Evolution 143 (18)
Processes
Tetsuo Tamai and Takako Nakatani
7.1 Introduction 143 (2)
7.2 Approach 145 (1)
7.2.1 Measurement 145 (1)
7.2.2 Case Studies 145 (1)
7.2.3 Metrics 146 (1)
7.3 Observed Evolution Patterns 146 (7)
7.3.1 Stable Statistic Model 147 (3)
7.3.2 Exceptional Data 150 (1)
7.3.3 Discontinuous Change 150 (1)
7.3.4 Class Tree Characteristics 151 (2)
7.4 Distribution Model 153 (6)
7.4.1 Negative Binomial Distribution 153 (2)
7.4.2 Evolution of Model Parameters 155 (2)
7.4.3 Larger Case Study 157 (2)
7.5 Discussions 159 (1)
References 160 (1)
8 Software Requirements Changes Due to 161 (20)
External Factors
Vic Nanda and Nazim H. Madhavji
8.1 Introduction 161 (2)
8.1.1 Organisation of This Chapter 162 (1)
8.2 Congruence Evaluation System (CES): A 163 (14)
Case Study
8.2.1 CES Context and Key Events 163 (1)
8.2.2 Contribution, Relevance and 163 (1)
Applicability of This Case Study
8.2.3 CES: Background and 164 (1)
Implementation Strategy
8.2.4 Analysis of CES Capabilities 165 (2)
8.2.5 The Impact of Environmental 167 (9)
Evolution
8.2.6 Threats to Validity 176 (1)
8.3 Lessons Learnt and Conclusions 177 (1)
References 177 (1)
Appendix A: An Instrument to Assess 178 (1)
System Deficiencies
Appendix B: An Instrument to Assess 179 (2)
Environment Evolution
9 Understanding Open Source Software Evolution 181 (26)
Walt Scacchi
9.1 Introduction 181 (1)
9.2 Empirical Studies of Software 182 (2)
Evolution
9.2.1 Studies of the Laws of Software 182 (1)
Evolution
9.2.2 Other Empirical Studies of 183 (1)
Software Evolution
9.3 Evolutionary Patterns in Open Source 184 (10)
Software
9.3.1 Types of Entities for Studying 185 (1)
F/OSS Evolution
9.3.2 Patterns in Open Source Software 186 (8)
Evolution Studies
9.4 Evolution Models and Theories 194 (3)
9.5 Do We Need New or Revised Models, 197 (3)
Laws or Theories for Open Source Software
Evolution?
9.5.1 Embracing the Feedback Control 197 (1)
Systems Ontology
9.5.2 Alternative Ontologies for F/OSS 198 (2)
Evolution
9.6 Conclusions 200 (2)
9.7 Acknowledgements 202 (1)
References 202 (5)
10 Structural Analysis of Open Source Systems 207 (16)
Andrea Capiluppi, Maurizio Morisio and Juan
C. Fern疣dez-Ramil
10.1 Introduction 207 (1)
10.2 Related Work 208 (1)
10.3 Rationale 209 (1)
10.4 Approach 210 (1)
10.5 Attributes Studied 211 (2)
10.5.1 Source Code Size 211 (1)
10.5.2 Code Structure 212 (1)
10.5.3 Modification Types 212 (1)
10.6 Evolution of Code Structure 213 (5)
10.6.1 Horizontally Expanding 213 (2)
10.6.2 Vertically Shrinking 215 (1)
10.6.3 Vertically Expanding 216 (2)
10.7 Summary 218 (1)
10.8 Current and Future Work 219 (1)
10.9 Acknowledgements 220 (1)
References 220 (2)
Appendix 222 (1)
11 A Study of Software Evolution at Different 223 (26)
Levels of Granularity
Elizabeth Burd
11.1 Introduction 223 (2)
11.2 Existing Studies of Software 225 (3)
Evolution
11.3 Case Study Approach 228 (2)
11.4 Results 230 (14)
11.4.1 The System Level 230 (3)
11.4.2 Level 2, The Function Level 233 (3)
11.4.3 Level 3, The Data Level 236 (6)
11.4.4 Comparing Levels 242 (2)
11.5 General Recommendations 244 (1)
11.6 Conclusions 245 (1)
References 246 (3)
12 The Role of Ripple Effect in Software 249 (20)
Evolution
Sue Black
12.1 Introduction 249 (1)
12.2 Impact Analysis 250 (2)
12.3 Software Maintenance and Software 252 (2)
Maintenance Models
12.4 Background on the Ripple Effect 254 (6)
12.4.1 Computation of the Ripple Effect 255 (3)
12.4.2 The REST Software Tool 258 (2)
12.5 Links Between Ripple Effect and the 260 (5)
Laws of Software Evolution
12.5.1 First Law  Continuing Change 261 (1)
12.5.2 Second Law  Growing Complexity 262 (1)
12.5.3 Third Law  Self Regulation 263 (1)
12.5.4 Fourth Law  Conservation of 263 (1)
Organisational Stability
12.5.5 Fifth Law  Conservation of 263 (1)
Familiarity
12.5.6 Sixth Law  Continuing Growth 264 (1)
12.5.7 Seventh Law  Declining Quality 264 (1)
12.5.8 Eighth Law  Feedback System 264 (1)
12.6 Conclusions 265 (1)
12.7 Further Work 266 (1)
12.8 Acknowledgements 266 (1)
References 266 (3)
13 The Impact of Software-Architecture 269 (12)
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 269 (1)
13.2 Evolution and Compliance 270 (1)
13.3 A Generic Scheduling Problem 271 (2)
13.3.1 A ProcessWeb Example 272 (1)
13.3.2 Programming Around Poor 273 (1)
Compliance
13.4 Compliance Through Configuration 273 (4)
13.4.1 Trade-offs in Configuration 275 (2)
13.5 Exploiting an Analytical Model 277 (1)
13.5.1 A First Analytical Model for 277 (1)
ProcessWeb
13.6 Discussion 278 (2)
13.7 Acknowledgements 280 (1)
References 280 (1)
14 Comparison of Three Evaluation Methods for 281 (32)
Object-Oriented Framework Evolution
Michael Mattsson
14.1 Introduction 281 (4)
14.2 Object-oriented Frameworks 285 (2)
14.2.1 The Studied Frameworks 285 (2)
14.3 Methods and Results 287 (18)
14.3.1 Evolution Identification Using 287 (6)
Historical Information
14.3.2 Stability Assessment 293 (7)
14.3.3 Distribution of the Development 300 (5)
Effort
14.4 Method Comparison 305 (3)
14.4.1 Change-prone Modules 305 (1)
14.4.2 Framework Deployment 306 (1)
14.4.3 Change Impact Analysis 306 (1)
14.4.4 Benchmarking 306 (1)
14.4.5 Requirements Management 307 (1)
14.4.6 Some Comments 307 (1)
14.5 Related Work 308 (1)
14.6 Conclusion 309 (1)
References 310 (3)
15 Formal Perspectives on Software Evolution: 313 (26)
From Refinement to Retrenchment
Michael Poppleton and Lindsay Groves
15.1 Introduction 313 (1)
15.2 Program Refinement 314 (6)
15.3 Modifying Refinements by Adapting 320 (2)
Derivations
15.4 A Compositional Approach to Program 322 (2)
Modification
15.5 Retrenchment 324 (11)
15.5.1 Refinement  a Relational 325 (2)
Perspective
15.5.2 The Need to Generalise Refinement 327 (3)
15.5.3 Retrenchment: Generalising 330 (2)
Refinement
15.5.4 Retrenchment for Software 332 (3)
Evolution
15.6 Conclusions 335 (1)
References 336 (3)
16 Background and Approach to Development of 339 (20)
a Theory of Software Evolution
Meir M. Lehman and Juan C. Fern疣dez-Ramil
16.1 Software Evolution 339 (1)
16.2 Global Views of Evolution 340 (3)
16.2.1 Two Approaches 340 (1)
16.2.2 The Verbal Approach 341 (1)
16.2.3 The Normal Approach 342 (1)
16.2.4 Mutual Support of the Two Views 342 (1)
16.2.5 Process Improvement 342 (1)
16.3 The Case for Theory 343 (2)
16.4 Theory Development 345 (1)
16.5 A World View 346 (3)
16.5.1 Real-World Program Relationship 346 (1)
16.5.2 Assumptions 347 (2)
16.6 Example 349 (3)
16.6.1 Introduction 349 (1)
16.6.2 Preliminary Definitions 349 (1)
16.6.3 Observations 350 (1)
16.6.4 Inferences 351 (1)
16.6.5 Guidelines 351 (1)
16.7 The Theory 352 (1)
16.8 Organisation of Theory Development 352 (1)
16.9 Goals 352 (1)
16.10 Related Work 353 (1)
16.11 Final Remarks 354 (1)
16.12 Acknowledgements 355 (1)
References 355 (4)
PART TWO FEEDBACK 359 (206)
17 Difficulties with Feedback Control in 363 (14)
Software Processes
Meir M. Lehman, Dewayne E. Perry and Wlad
Turski
17.1 Introduction 363 (2)
17.2 Feedback and Control 365 (1)
17.3 Technology versus Sociology 366 (1)
17.4 Manifesto and Model 367 (3)
17.5 Influence versus Control 370 (3)
17.5.1 Immaturity 371 (1)
17.5.2 Feedback Overload 371 (1)
17.5.3 Step Functions versus Regulation 371 (1)
17.5.4 Design versus Production 372 (1)
17.6 Examples of Feedback Control 373 (1)
17.7 Summary 373 (1)
17.8 Acknowledgments 374 (1)
References 375 (2)
18 Governing Software Evolution through 377 (20)
Policy-oriented Feedback
Nazim H. Madhavji and Jos馥 Tas 
18.1 Introduction 377 (2)

18.2 The Policy-Checking Mechanism 379 (5)

18.2.1 Controlling System Growth 379 (2)

18.2.2 Re-engineering Change-Prone 381 (2)

Modules

18.2.3 Discussion 383 (1)

18.3 The Contextual Framework 384 (5)

18.3.1 New-Release Development 384 (2)

18.3.2 Roles, Communication and Feedback 386 (1)

18.3.3 The Framework Architecture 387 (2)

18.4 Technological Support 389 (2)

18.4.1 Policy-Checking Mechanism 389 (1)

18.4.2 Framework 390 (1)

18.5 Evaluation 391 (2)

18.6 Related Work 393 (1)

18.7 Conclusions 394 (1)

References 394 (3)

19 Feedback in Requirements Discovery and 397 (14)

Specification: A Quality Gateway for Testing

Requirements

Suzanne Robertson

19.1 Contents of the Requirements 397 (2)

Specification

19.2 Project Drivers 399 (6)

19.2.1 Producers 400 (1)

19.2.2 Consumers 401 (1)

19.2.3 Sponsors 402 (1)

19.2.4 Subject Matter Consultants 403 (1)

19.2.5 Technical Consultants 404 (1)

19.2.6 Influencers 404 (1)

19.2.7 Project-Sociology Analysis 405 (1)

19.3 Contents of Individual Requirements 405 (2)

19.4 Keeping Track of Connections 407 (1)

19.5 The Quality Gateway 408 (1)

19.6 Lessons Learnt 409 (1)

19.7 Conclusion 410 (1)

References 410 (1)

20 Requirements Risk and Software Reliability 411 (16)

Norman F. Schneidewind

20.1 Introduction 411 (2)

20.1.1 Requirements Changes and 412 (1)

Software Evolution

20.1.2 Objectives 412 (1)

20.1.3 Methods 413 (1)

20.2 Background 413 (1)

20.3 Selected Measurement Research 414 (1)

Projects

20.4 Approach to Analyzing Requirements 415 (3)

Risk

20.4.1 Categorical Data Analysis 416 (2)

20.5 Risk Factors 418 (2)

20.5.1 Space Shuttle Flight Software 418 (2)

Requirements Change Risk Factors

20.6 Solutions to Risk Analysis Example 420 (3)

20.6.1 Categorical Data Analysis 420 (2)

20.6.2 Dependency Check on Risk Factors 422 (1)

20.6.3 Identification of Modules that 422 (1)

Caused Failures

20.7 Future Trends 423 (1)

20.8 Conclusions 424 (1)

20.9 Acknowledgments 424 (1)

References 424 (3)

21 Combining Process Feedback with Discrete 427 (16)

Event Simulation Models to Support Software

Project Management

David Ruffo and Joseph Vandeville

21.1 Introduction 427 (1)

21.2 Providing Up-to-Date Process Feedback 428 (3)

21.2.1 Feedback in Simulation Models 428 (1)

21.2.2 Metrics Repository 429 (2)

21.3 Discrete Event Simulation Models 431 (2)

21.4 Combining Process Feedback with the 433 (1)

Discrete Model

21.4.1 Comparing Statistical Process 433 (1)

Control with Outcome Based Control

Limits

21.5 Illustrative Example 434 (6)

21.5.1 The Scenario Under Consideration 434 (2)

21.5.2 Determining the Performance of 436 (1)

the Baseline Process

21.5.3 Use of the Model and Metrics for 437 (1)

Quantitative Process Feedback Management

21.5.4 Assessing the Implications of 438 (1)

Feedback and Developing an Action Plan

(Is the Process in Control?)

21.5.5 Taking Corrective Action and 439 (1)

Assessing the Impact of the Changes

21.6 Conclusions 440 (1)

21.7 Acknowledgements 440 (1)

References 440 (3)

22 A Feedforward Capability to Improve 443 (16)

Software Reestimation

William W. Agresti

22.1 Introduction 443 (3)

22.1.1 Reestimation: State of the 443 (2)

Practice

22.1.2 Objective 445 (1)

22.1.3 Related Research 446 (1)

22.2 A Feedforward Capability 446 (6)

22.2.1 Feedforward Estimation in Other 447 (1)

Domains

22.2.2 Feedforward Estimation in 448 (1)

Software Development

22.2.3 Operation of a Feedforward Model 449 (3)

22.3 Example Uses of the Feedforward 452 (2)

Concept

22.3.1 Feedforward Capability 452 (1)

Integrated with e Software Estimation

22.3.2 The Role of a Feedforward 453 (1)

Capability in Risk Management

22.4 Conclusion 454 (1)

22.5 Acknowledgements 455 (1)

Appendix 455 (3)

References: 458 (1)

23 Modelling the Feedback Part of the 459 (12)

Software Process in Software Resource

Estimation

Juan C. Fern疣dez-Ramil and Sarah Beecham

23.1 Introduction 459 (1)

23.2 The Evidence of Feedback 460 (1)

23.3 The Need for a Taxonomy 461 (1)

23.4 Feedback as a Cost Factor 461 (1)

23.5 Cost Estimation as a 'System 461 (3)

Identification' Problem

23.6 Why do Algorithmic Cost Estimation 464 (1)

Approaches such as COCOMO 'Work"!

23.7 Approaches to Model 'Feedback' in 465 (1)

Cost Estimation Models

23.8 Indirect Black-Box Modelling and 466 (2)

Feedback-Related Cost Factors

23.9 Final Remarks 468 (1)

23.10 Acknowledgments 468 (1)

References 469 (2)

24 Value-Based Feedback in Software and 471 (18)

Information Systems Development

Barry Boehm and LiGuo Huang

24.1 Introduction 471 (1)

24.2 Feedback Control of Software 472 (4)

Development: Four Primary Feedback Cycles

24.2.1 Feedback Cycle 1: Project Scoping 472 (1)

24.2.2 Feedback Cycle 2: Project 473 (1)

Execution

24.2.3 Feedback Cycle 3: Model Update 474 (1)

24.2.4 Feedback Cycle 4: Organizational 475 (1)

Productivity Improvement

24.3 Using 'EV' for Feedback Control of 476 (2)

Software Development and Evolution

24.3.1 An Earned Value System Example 477 (1)

24.4 Real Earned-Value Feedback Control 478 (3)

24.4.1 Business-Case and 479 (2)

Benefits-Realized Monitoring and Control

24.5 Value-Based Feedback Control: An 481 (6)

Order Processing Example

24.5.1 Business Case Analysis: Costs, 482 (3)

Benefits and Return on Investment

24.5.2 Value-Based Monitoring and 485 (2)

Control

24.6 Conclusions and Future Challenges 487 (1)

24.7 Acknowledgments 488 (1)

References 488 (1)

25 Expert Estimation of Software Development 489 (18)

Cost: Learning through Feedback

Magne J gensen and Dag Sj erg

25.1 Introduction 489 (1)

25.2 Estimation Learning 490 (3)

25.3 Estimation Feedback and Process 493 (4)

Guidelines

25.3.1 Increase the Motivation for 494 (1)

Learning Estimation Skills

25.3.2 Reduce the Impact from 495 (1)

Estimation-Learning Biases

25.3.3 Ensure a Fit Between the 495 (1)

Estimation Process and Type of Feedback

25.3.4 Provide Learning Situations 496 (1)

25.4 Experiment: Application of the 497 (6)

Guidelines

25.4.1 Background 498 (1)

25.4.2 Experiment Design 499 (2)

25.4.3 Results 501 (2)

25.5 Summary 503 (1)

25.6 Acknowledgement 503 (1)

References 503 (4)

26 Self-Adaptive Software: Internalized 507 (32)

Feedback

Robert Laddaga, Paul Robertson and Howard

Shrobe

26.1 Introduction 507 (3)

26.1.1 Some Software Life Cycle Concepts 508 (1)

26.1.2 Brief Introduction to 509 (1)

Self-Adaptive Software

26.1.3 Introduction of Binding of 510 (1)

Function Call to Function Value

26.2 Historical Perspective 510 (7)

26.2.1 Dynamic Versus Static Binding 510 (2)

26.2.2 Language and Compiler Development 512 (2)

26.2.3 Performance Trade-Offs 514 (1)

26.2.4 The Concept of Software 514 (1)

Application Evolution

26.2.5 A Note about Software Ecology 515 (2)

26.3 Self-Adaptive Software 517 (4)

26.3.1 Concepts 517 (1)

26.3.2 Technology Requirements and 518 (3)

Opportunities

26.4 Applications of Self-Adaptive 521 (14)

Software

26.4.1 Recent Application Work 522 (1)

26.4.2 Vision Systems 522 (6)

26.4.3 Face Recognition 528 (2)

26.4.4 Pervasive Computing 530 (5)

26.5 Conclusion 535 (1)

References 536 (3)

27 Rules and Tools for Software Evolution 539 (26)

Planning and Management

Meir M. Lehman and Juan C. Fern疣dez-Ramil

27.1 Introduction 539 (2)

27.2 Laws of Software Evolution 541 (1)

27.3 S- and E-Type Program Classification 542 (1)

27.3.1 Basic Properties 542 (1)

27.3.2 Implications of the SPE Program 542 (1)

Classification Scheme

27.4 First Law: Continuing Change 543 (2)

27.5 Second Law: Increasing Complexity 545 (2)

27.6 Third Law: Self Regulation 547 (2)

27.7 Fourth Law: Conservation of 549 (1)

Organisational Stability

27.8 Fifth Law: Conservation of 550 (1)

Familiarity

27.9 Sixth Law: Continuing Growth 551 (1)

27.10 Seventh Law: Declining Quality 552 (2)

27.11 Eighth Law: Feedback System 554 (2)

27.12 The FEAST Hypothesis 556 (1)

27.13 The Principle of Software 557 (2)

Uncertainty

27.14 Conclusions 559 (1)

27.15 Acknowledgements 560 (1)

References 560 (5)

Index 565