Software Development Process (Udacity)

Software Development Process (Udacity)

In SDP, you will learn how to select and implement the ideal software process for your development project. Through Professor Orso's engaging examples and interviews with industry insiders, you will learn both conceptual and practical aspects of software engineering. The course covers requirements engineering, architecture and design, testing and maintenance, and software quality in general.

Class Deals by MOOC List - Click here and see Udacity's Active Discounts, Deals, and Promo Codes.

The goal of this class is to equip you with the skills necessary to define requirements, set up an integrated development environment (IDE), learn Git (and Github!) and use Unified Modeling Language (UML) to design and build an Android application. We will also examine several testing practices and refactoring techniques that are helpful before the launch of your software project.
While everyone working with software should have these skills, they are particularly important for Software Engineers and Engineering Managers.
Software engineering isn’t just about programming. It isn’t just about building a technology stack.
This course introduces the idea of software engineering as an iterative, systematic process. You will learn to use Github and Eclipse as you get introduced to the development life cycle, design processes and software testing.
Software Development Processes will show you the skills and processes needed to complement technical understanding of software products in order to make you a more effective developer in an engineering team.

What You Will Learn

Lesson 1
Introduction and Overview
Importance of Software Engineering
Discipline of Software Engineering
The Software Crisis
Software Phases

Lesson 2
Life Cycle Models
Introduction with Barry Bohem
Requirements Engineering
Design
Maintenance
Software Process Model Introduction
Waterfall Process
Spiral Process
Evolutionary Prototyping Process
Rational Unified Process
Agile Process
Choosing a Model
Lifecycle Documents

Lesson 3
Integrated Development Environment
Eclipse Introduction
IDE Overview
Plug-Ins
Eclipse Demo: Create Java Project
Eclipse Demo: Create a Class
Eclipse Demo: Run Configuration
Eclipse Demo: Debugging

Lesson 4
Version Control Systems
Interview with John Britton
Version Control System Introduction
Two Main Types of VCS
Introduction to Git
Git Workflow
Git Demo: Intro to Git
Git Demo: Git + Eclipse
Git Demo: Github
Git Recap: Local Repositories
Git Recap: Remote Repositories

Lesson 5
Requirements Engineering
Interview with Jane Cleland-Huang
General RE Definition
Software Intensive Systems
Functional and Nonfunctional Requirements
User and System Requirements
Modeling Requirements
Analyzing Requirements
Requirements Prioritization
Requirements Engineering Process

Lesson 6
OO Software and UML
Object Orientation Introduction
UML Structural Diagrams: Class Diagrams
Class Diagram: Creation Tips
UML Structural Diagrams: Component Diagram
UML Structural Diagram: Deployment Diagram
UML Behavioral Diagram: Use Case
Use Case Diagram: Creation Tips
UML Behavioral Diagrams: Sequence
UML Behavioral Diagrams: State Transition Diagram

Lesson 7
Software Architecture
Interview with Nenad Medvidovic
What is Software Architecture?
Prescriptive vs. Descriptive Architecture
Architectural Evolution
Architectural Degradation
Architectural Recovery
Architectural Elements
Components, Connectors, and Configuration
Deployment Architectural Perspective

Lesson 8
A Tale of Analysis and Design
Analyzing Requirements
Refining Classes and Attributes
Adding Attributes
Identifying Operations
Refining the Class Diagram

Lesson 9
Design Patterns
Patterns Catalogue
Pattern Format
Factory Method Pattern
Strategy Pattern
Choosing a Pattern
Negative Design Patterns

Lesson 10
Unified Software Process
Use-Case Driven
Inception Phase
Elaboration Phase
Construction Phase
Transition Phase
Phases and Iterations

Lesson 11
General Concepts
Failure, Fault and Error
Verification Approaches
Pros and Cons of Approaches
Testing Introduction
Testing Granularity Levels
Alpha and Beta Testing
Black and White Box Testing Introduction

Lesson 12
Black-Box Testing
Systematic Functional Testing Approach
Test Data Selection
Category Partition Method
Produce and Evaluate Test Case Specifications
Generate Test Cases from Test Case Specifications
Model Based Testing
Finite State Machines

Lesson 13
White-Box Testing
Coverage Criteria Intro
Statement Coverage
Control Flow Graphs
Test Criteria Subsumption
MC/DC Coverage

Lesson 14
Agile Development Methods
Cost of Change
Agile Software Development
Extreme Programming (XP)
XP’s Values and Principles
Test First Development
Refactoring
Pair Programming
Continuous Integration
Testing Strategy
High Level Scrum Process

Lesson 15
Software Refactoring
Reasons to Refactor
Refactoring Demo
Refactoring Risks
Cost of Refactoring
When Not to Refactor

Prerequisites and Requirements
A strong familiarity with Android development (perhaps through Developing Android Apps) is expected.

Go to Class
MOOC List is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Related Courses

Database Management Essentials (Coursera) Coursera
University of Colorado System

Database Management Essentials (Coursera)

Database Management Essentials provides the foundation you need for a career in database development, data warehousing, or business intelligence, as well as for the entire Data Warehousing for Business Intelligence specialization. In this course, you will create relational databases, write SQL statements to extract information to satisfy business reporting requests, create entity relationship diagrams (ERDs) to design databases, and analyze table designs for excessive redundancy.

Nov 16th 2026
5-12 Weeks
Inspiring Peak Performance on Technical Teams (Coursera) Coursera
Advancing Women in Tech

Inspiring Peak Performance on Technical Teams (Coursera)

In the previous course, Leadership Principles for Software Engineers, you learned about how to hire your team and set its goals. Now, learn how to lead each individual team member, increasing their personal best performance, and your team's overall performance, day after day. NANCY WANG, Director of Engineering and General Manager of AWS Data Protection Services and Founder, Advancing Women in Tech (AWIT), shares with you the engineering management skills cultivated at AMAZON (the #2-ranked company in the Fortune 500), with supplemental practices from GOOGLE and MICROSOFT. Develop the skills and mental models that the world's best engineering managers apply to turn their new hires into world-class engineers.

Nov 23rd 2026
3 Weeks
What is Programming? (Udacity) Udacity
Udacity

What is Programming? (Udacity)

A Coding Dictionary. The world of development can be daunting with all of its lingo and jargon. This course will help demystify the cryptic terms that developers use on a daily basis. You'll learn about how the web functions, what a programmer does each day, why version control is so important, and how communication on the internet happens.

Self Paced
Self-Paced
Capstone: Autonomous Runway Detection for IoT (Coursera) Coursera
EIT Digital

Capstone: Autonomous Runway Detection for IoT (Coursera)

The students will develop a larger system using the learning outcomes from these courses, and the students will evaluate the developed system in a real-world programming environment. This course is a true engineering task in which the student must, not only implement the algorithm code, but also handle the interfaces between many different actors and hardware platforms.

Nov 30th 2026
3 Weeks
Executing Full Text Queries with Elasticsearch (Coursera) Coursera
Board Infinity

Executing Full Text Queries with Elasticsearch (Coursera)

This course is designed to teach you how to execute full-text queries with Elasticsearch, a powerful search and analytics engine widely used for data exploration, log analysis, and real-time search applications. In this course, you will learn the basics of Elasticsearch, including how to install and configure the software, index data, and create mappings. You will then explore the various query types supported by Elasticsearch, such as term queries, match queries, and phrase queries. You will also learn how to use Elasticsearch's aggregation framework to analyze and summarize your data.

Nov 30th 2026
3 Weeks
A Crash Course in Data Science (Coursera) Coursera
Johns Hopkins University

A Crash Course in Data Science (Coursera)

By now you have definitely heard about data science and big data. In this one-week class, we will provide a crash course in what these terms mean and how they play a role in successful organizations. This class is for anyone who wants to learn what all the data science action is about, including those who will eventually need to manage data scientists. The goal is to get you up to speed as quickly as possible on data science without all the fluff. We've designed this course to be as convenient as possible without sacrificing any of the essentials.

Nov 16th 2026
1 Week
Games, Sensors and Media (Coursera) Coursera
University of California, Irvine

Games, Sensors and Media (Coursera)

You will learn to make fluid digital interactive experiences that are suitable for gaming and use the advanced sensor hardware built into the iPhone and iPad. This includes drawing 2D graphics, playing sounds and music, integrating with Game Center, the iOS physics engine and detecting device orientation and location.

Nov 23rd 2026
4 Weeks
Quantitative Model Checking (Coursera) Coursera
EIT Digital

Quantitative Model Checking (Coursera)

The integration of ICT (information and communications technology) in different applications is rapidly increasing in e.g. Embedded and Cyber physical systems, Communication protocols and Transportation systems. Hence, their reliability and dependability increasingly depends on software. Defects can be fatal and extremely costly (with regards to mass-production of products and safety-critical systems).

Nov 30th 2026
5-12 Weeks
Client Needs and Software Requirements (Coursera) Coursera
University of Alberta

Client Needs and Software Requirements (Coursera)

This course covers practical techniques to elicit and express software requirements from client interactions. Upon successful completion of this course, you will be able to: Create clear requirements to drive effective software development; visualize client needs using low-fidelity prototypes; maximize the effectiveness of client interactions - adapt to changing product requirements.

Nov 23rd 2026
4 Weeks
An Introduction to Interactive Programming in Python (Part 2) (Coursera) Coursera
Rice University

An Introduction to Interactive Programming in Python (Part 2) (Coursera)

This two-part course is designed to help students with very little or no computing background learn the basics of building simple interactive applications. Our language of choice, Python, is an easy-to learn, high-level computer language that is used in many of the computational courses offered on Coursera. To make learning Python easy, we have developed a new browser-based programming environment that makes developing interactive applications in Python simple.

Nov 30th 2026
4 Weeks