CSCI 577a -
Software Engineering I

This is the first of two courses in the Software Engineering Real Client Team Project sequence, which forms the core of the Master of Science in Computer Science with specialization in Software Engineering. The Fall Software Engineering I course enables students to both learn and apply the skills involved in the systems engineering of software-intensive systems. These skills include operational concept formulation; system and software requirements negotiation, prototyping, and architecting; software project and life cycle planning; and development of evidence of the system and software feasibility. The Spring Software Engineering II course focuses on software product creation, integration, test and maintenance with an emphasis on quality software production. Much of the content is organized around the key practices in the SEI Integrated Capability Maturity Model (CMMI).

Course Overview

This course will focus on the application of software engineering process models and management approaches that are scalable for the definition and development of large software systems. Students will work in teams and be required to understand and apply the Incremental Commitment Spiral Model (ICSM) for system and software engineering to real-world projects.

Past projects have included development of software-intensive systems for clients on the USC campus; in USC neighborhood small business and community service organizations; and in local government agencies. The resulting project experiences and software project definition and execution portfolios provide students with evidence of their ability to develop successful software-intensive systems, that has been found to be highly valuable both in job interviews and students’ subsequent careers.

The DEN students will typically be responsible for “Independent Integrated Verification and Validation” (IIV & V). Verification and validation is one of the software engineering disciplines that helps build quality into the software. V & V is a collection of analysis and testing activities across the full life cycle and complements the efforts of other quality-engineering functions. It determines that the software performs its intended functions correctly, performs no unintended functions and measures the quality and reliability of the software.

Course Prerequisite
Graduate Standing
Lecture Time
Mondays, Wednesdays, Fridays at 2:00-3:30pm

Boehm, B., Lane, J. A., Koolmanojwong, S., & Turner, R. (2014). The incremental commitment spiral model: Principles and practices for successful systems and software. Addison-Wesley Professional.

Course Websites

Course Staff


 NameEmailOffice HoursLocation
Dr. Barry Boehmboehm@TBDTBD
Dr. Supannika Koolmanojwong Mobasserkoolmano@By appointmentOnline

Teaching Assistants

 NameEmailOffice HoursLocation
Kamonphop Srisophasrisopha@usc.eduBy appointmentvia Zoom
Daniel Linkdlink@usc.eduBy appointmentvia Zoom
Jincheng Hejinchenh@usc.eduBy appointmentvia Zoom