Software Development Processes

Thank you for signing up for the course! We look forward to working with you and hearing your feedback in our forums.

Need help getting started?


Course Resources

Additional Reading

Design Patterns: Elements of Reusable Object-Oriented Software by Gamma, Helm, Johnson and Vlissides

Downloadable Materials

You can download Supplemental Materials, Lesson Videos and Transcripts from Downloadables (bottom right corner of the Classroom) or from the Dashboard (first option on the navigation bar on the left hand side).

Course Syllabus

Introduction and Overview

An introduction to the course and to the discipline of software engineering.

Life Cycle Models

Exploration of the phases of software development, common development processes, and common software engineering pitfalls.

Integrated Development Environment

The first lesson in a series on software development tools.

Version Control Systems

The second lesson in a series on software development tools.

Requirements Gathering

Learn how to collect and record detailed project requirements.

Object Oriented Software Engineering and UML

An review of object orientated analysis and design and an introduction to unified modeling language, a tool that will be used through the course.

Software Architecture

A discussion of software design and the unified software process.

A Tale of Analysis and Design

A demonstration of requirements gathering and object oriented analysis and design.

Design Patterns

An introduction to design patterns, general reusable solutions to commonly occurring design problems.

Unified Software Process

We will combine the previous topics into the context of a UML based software process, or USP. We will discuss how USP was defined, its main characteristics, its phases and how it can be applied in practice.

General Testing Concepts

An introduction to topics related to software verification and testing.

Black-Box Testing

Explore black-box testing in depth and apply the techniques to a real program. Black-Box testing is testing based on teh description of the program without considering the software's internal details.

White-Box Testing

A discussion of white-box testing (also known as structural testing) and techniques.

Agile Development Methods

An overview of agile development and test driven development. These processes are driven by the testing techniques introdued previously.

Software Refactoring

Learn about software refactoring, the process of taking an existing program and improving its design.

Course Project

During this course you will design and implement a project using the principles of software engineering taught in the lectures. Refer to the Final Project Overview for more details.