Managing Software Development

Credits: 12 units

Semester: Fall

Length: full semester

Overview

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, manage different types of risks, and understand the software process. The nature of software development is sufficiently unique to require specialized management techniques, especially in the areas of estimating, scheduling and tracking.

Course topics

  • team dynamics and leadership skills
  • software development life cycle models (conventional iterative-incremental, agile and tailored)
  • requirements elicitation
  • configuration control
  • environments
  • quality assurance
  • risk management
  • project planning and tracking

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
  • 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
  • understand the relationship between software products and overall products (if embedded), or the role of the product in the organizational product line
  • understand the legal issues involved in liability, warranty, patentability, and copyright
  • understand the purpose and limitations of software development standards and be able to apply sensible tailoring where needed
  • use software development standards for documentation and implementation
  • apply leadership principles
  • perform requirements elicitation

Prerequisites

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

Сайт находится в технической разработке