Focus on the Incremental Commitment Spiral Model (ICSM) and Value-Based Software Engineering (VBSE)

The primary objective of the USC software engineering education program is to prepare students for leadership careers in the field. Good software engineering leadership requires an understanding of three major areas: software technology, economic factors, and human relations. This course assumes that you have a good background in software technology, and concentrates on the economic and human factors to show how they interplay with software factors.

The learning objectives of this course are: to enable students to understand the fundamental principles underlying software management and economics; to analyze management situations via case studies; to analyze software cost/schedule tradeoff issues via software cost estimation tools and microeconomic techniques; and to apply the principles and techniques to practical situations. CS510 is one of the mainstream courses in the Master of Science in Computer Science with specialization in Software Engineering.

Beginning this year, the course is being reorganized around the recently published book on the Incremental Commitment Spiral Model (ICSM) as a framework of theory, principles, and practices for integrating human and economic values into software engineering and management practice. The book continues to emphasize Value-Based Software Engineering (VBSE) via the first of its four main principles: Stakeholder Value-Based Guidance. The three other main principles are: Incremental Commitment and Accountability, Concurrent Multi-Discipline Engineering; and Evidence and Risk-Based Decisions.

Preparing students for future leadership careers involves coping with a future characterized by increasing rates of change and the accompanying uncertainty. Thus, the course also emphasizes the fourth ICSM Principle on risk management and decision-making under uncertainty. Thus, the course emphasizes the discipline of software risk management under six primary sub-topics: risk identification, risk analysis, risk prioritization, risk management planning, risk resolution, and risk monitoring. Further, as students’ careers will span many generations of software technology and practices, some assignments will provide practice in learning how to learn about new technologies and practices.

Summary Course Schedule
Weeks 1 – 6: The ICSM and its underlying principles (Stakeholder Value-Based Guidance, Incremental Commitment and Accountability, Concurrent Multi-Discipline Engineering, and Evidence and Risk-Based Decisions). Failure and success case studies for each principle. Software cost and schedule estimation, and their use in cost-benefit and business case analysis.
Weeks 7 – 12: Relevant microeconomic concepts: production functions, economies of scale, present value, constrained optimization, statistical decision theory, risk, and the value of information. Software risk management. Role of risk and economic analysis in managing the ICSM stages and phases.
Weeks 13 – 15: Complementary perspectives. Outsourcing and contracting. Software engineering ethics. Software process maturity models and continuous process improvement. Past and likely future software engineering, management, and economics trends.