Carnegie Mellon University Website Home Page
 

17-653 Managing Software Development

Managing Software Development is a 12 unit full semester course.

Large scale software development requires the ability to manage resources - both human and computational - through control of the development process. This course provides the knowledge and skills necessary to lead a project team, understand the relationship of software development to overall product engineering, estimate time and costs, and understand the software process.

Course topics:

  • life cycle models
  • requirements elicitation
  • configuration control
  • environments
  • quality assurance


More course details can be found in the Managing Software Development syllabus.

After completing this course, students will:

  • be able to write a software project management plan, addressing issues of risk analysis, schedule, costs, team organization, resources, and technical approach.
  • be able to define the key process areas of the Capability Maturity Model and the technology and practices associated with each and a variety of software development life cycle models and explain the strengths, weaknesses, and applicability of each.
  • be able to understand the relationship between software products and overall products (if embedded), or the role of the product in the organizational product line.
  • be able to understand the legal issues involved in liability, warranty, patentability, and copyright.
  • be able to understand the purpose and limitations of software development standards and be able to apply sensible tailoring where needed.
  • be able to use software development standards for documentation and implementation.
  • be able to apply leadership principles.
  • be able to perform requirements elicitation.

Prerequisites:

  • Industrial software engineering experience with a large project, or a comprehensive undergraduate course in software engineering. All (non-MSE/MSIT) applicants need to submit a one page description of their prior industrial software experience to the instructor.