This book is designed for professionals and students in software engineering or information technology who are interested in understanding the dynamics of software development in order to assess and optimize their own process strategies. It explains how simulation of interrelated technical and social factors can provide a means for organizations to vastly improve their processes. It is structured for readers to approach the subject from different perspectives, and includes descriptive summaries of the best research and applications.
Raymond J. Madachy, PhD, is a Research Assistant Professor in the USC Industrial and Systems Engineering Department and a Principal of the USC Center for Systems and Software Engineering. Dr. Madachy's current research interests include modeling and simulation of processes for architecting and engineering of complex software-intensive systems; economic analysis and value-based engineering of software-intensive systems; systems and software measurement, process improvement, and quality; quantitative methods for systems risk management; integrating systems engineering and software engineering disciplines; and integrating empirical-based research with process simulation. He is a Senior Member of IEEE and a member of ACM.
Foreword ( Barry Boehm ). Preface. PART 1 FUNDAMENTALS. Chapter 1 Introduction and Background. 1.1 Systems, Processes, Models, and Simulation. 1.2 Systems Thinking. 1.3 Basic Feedback Systems Concepts Applied to the Software Process. 1.4 Brooks's Law Example. 1.5 Software Process Technology Overview. 1.6 Challenges for the Software Industry. 1.7 Major References. 1.8 Chapter 1 Summary. 1.9 Exercises. Chapter 2 The Modeling Process with System Dynamics. 2.1 System Dynamics Background. 2.2 General System Behaviors. 2.3 Modeling Overview. 2.4 Problem Definition. 2.5 Model Conceptualization. 2.6 Model Formulation and Construction. 2.7 Simulation. 2.8 Model Assessment. 2.9 Policy Analysis. 2.10 Continuous Model Improvement. 2.11 Software Metrics Considerations. 2.12 Project Management Considerations. 2.13 Modeling Tools. 2.14 Major References. 2.15 Chapter 2 Summary. 2.16 Exercises. Chapter 3 Model Structures and Behaviors for Software Processes. 3.1 Introduction. 3.2 Model Elements. 3.3 Generic Flow Processes. 3.4 Infrastructures and Behaviors. 3.5 Software Process Chain Infrastructures. 3.6 Major References. 3.7 Chapter 3 Summary. 3.8 Exercises. PART 2 APPLICATIONS AND FUTURE DIRECTIONS. Introduction to Applications Chapters. Chapter 4 People Applications. 4.1 Introduction. 4.2 Overview of Applications. 4.3 Project Workforce Modeling. 4.3.1 Example: Personnel Sector Model. 4.4 Exhaustion and Burnout. 4.4.1 Example: Exhaustion Model. 4.5 Learning. 4.6 Team Composition. 4.7 Other Application Areas. 4.8 Major References. 4.9 Chapter 4 Summary. 4.10 Exercises. Chapter 5 Process and Product Applications. 5.1 Introduction. 5.2 Overview of Applications. 5.3 Peer Reviews. 5.4 Global Process Feedback (Software Evolution). 5.5 Software Reuse. 5.6 Commercial Off-the-Shelf Software (COTS)-Based Systems. 5.7 Software Architecting. 5.8 Quality and Defects. 5.9 Requirements Volatility. 5.10 Software Process Improvement. 5.11 Major References. 5.12 Provided Models. 5.13 Chapter 5 Summary. 5.14 Exercises. Chapter 6 Project and Organization Applications. 6.1 Introduction. 6.2 Overview of Applications. 6.3 Integrated Project Modeling. 6.4 Software Business Case Analysis. 6.5 Personnel Resource Allocation. 6.6 Staffing. 6.7 Earned Value. 6.8 Major References. 6.9 Provided Models. 6.10 Chapter 6 Summary. 6.11 Exercises. Chapter 7 Current and Future Directions. 7.1 Introduction. 7.2 Simulation Environments and Tools. 7.3 Model Structures and Component-Based Model Development. 7.4 New and Emerging Trends for Applications. 7.5 Model Integration. 7.6 Empirical Research and Theory Building. 7.7 Process Mission Control Centers, Analysis, and Training Facilities. 7.8 Chapter 7 Summary. 7.9 Exercises. Appendix A: Introduction to Statistics of Simulation. A.1 Risk Analysis and Probability. A.2 Probability Distributions. A.3 Monte Carlo Analysis. A.4 Analysis of Simulation Input. A.5 Experimental Design. A.6 Analysis of Simulation Output. A.7 Major References. A.8 Appendix A Summary. A.9 Exercises. Appendix B: Annotated System Dynamics Bibliography. Appendix C: Provided Models. References. Index.