Software evolution and feedback: Theory and practice / [edited by] Nazim H. Madhavji, Juan C. Fernández-Ramil and Dewayne E. Perry.
Material type: TextPublication details: Chichester, England ; Hoboken, N.J. : John Wiley & Sons, c2006Description: 575 pSubject(s): Computer Software -- DevelopmentDDC classification: 005.1Item type | Current library | Call number | Status | Date due | Barcode | Item holds |
---|---|---|---|---|---|---|
General Books | Central Library, Sikkim University General Book Section | 005.1 MAD/S (Browse shelf(Opens below)) | Available | P31931 |
Browsing Central Library, Sikkim University shelves, Shelving location: General Book Section Close shelf browser (Hides shelf browser)
No cover image available | ||||||||
005.1 JAL/I An integrated approach to software engineering/ | 005.1 JAL/S Pankaj Jalote's Software Engineering: A Precise Approach | 005.1 KHA/I An introduction to numerical methods: a MATLAB approach/ | 005.1 MAD/S Software evolution and feedback: Theory and practice / | 005.1 MAL/F Fundamentals of Software Engineering / | 005.1 MAL/F Fundamentals of Software Engineering / | 005.1 MAL/F Fundamentals of Software Engineering / |
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
There are no comments on this title.