CS 301: Software Engineering
Become a software engineering expertise with our comprehensive course! You'll learn about process models, agile development, testing, requirements modeling, software design, user interface design, and more.
Become a software engineering expertise with our comprehensive course! You'll learn about process models, agile development, testing, requirements modeling, software design, user interface design, and more.
Ch 1.1 What is Computer Software? - Definition & Applications
Computer Software Definition
Computer Software Examples
Types of Computer Software
Lesson Summary
Quiz 1.1
Introduction
Definition of Software Engineering
Software Engineering Process
Software Engineering Methods
Lesson Summary
Quiz 1.2
Introduction
Software Engineering
System Analysis Definition
Lesson Summary
Quiz 1.3
Introduction
Object Oriented Analysis and Design
OOP Concepts and Terminologies
Lesson Summary
Quiz 1.4
Introduction
Software Engineering
Systems Development Life Cycle
Lesson Summary
Quiz 1.5
Introduction
Systems Development Life Cycle
Models of Software Development
Prototypes
Agile Methodology
Rapid Application Development
Lesson Summary
Additional Activities
Quiz 1.6
Introduction
Software Engineering: Myths and Misconceptions
Lesson Summary
Quiz 1.7
Ch 2.1 Waterfall Model: Definition & Example
SDLC Waterfall Model
Waterfall Methodology Phases
Waterfall Model Examples
Advantages and Disadvantages of the Waterfall Life Cycle Model
Lesson Summary
Frequently Asked Questions
Quiz 2.1
Introduction
Managing Complexity
What Is a Process Pattern?
Lesson Summary
Quiz 2.2
Introduction
What is the Iterative Model?
Process Steps of the Iterative Model
Advantages and Disadvantages
Lesson Summary
Quiz 2.3
Introduction
The Incremental Model
Three Decision-Making Phases
Lesson Summary
Quiz 2.4
Introduction
Spiral Model
Lesson Summary
Quiz 2.5
Introduction
Concurrent Engineering Definition
Concurrent Engineering Pros and Cons
Concurrent Model in Engineering
Summary
Frequently Asked Questions
Quiz 2.6
Introduction
Software Development Life Cycle
Types of Software Process Models
Lesson Summary
Quiz 2.7
Introduction
Addressing Complexity
What is a Process Model?
What is a Component-Based Process Model?
Lesson Summary
Quiz 2.8
Introduction
Striving to Progress
Formal Methods Model: Definition
Lesson Summary
Quiz 2.9
Intoduction
Definition
Unified Process Model Phases
Lesson Summary
Quiz 2.10
Introduction
Choosing a Development Model
Listing the Options
Ch 3.1 Comparison of Agile Development Methods
Agile Development
Scrum
Extreme Programming
Dynamic Systems Development Method
Lesson Summary
Quiz 3.1
Introduction
Definitions
Differences
Lesson Summary
Quiz 3.2
Introduction
Why Agile Project Management?
Agile Project Management Tools
Lesson Summary
Quiz 3.3
Introduction
Adapting Agile to Large Orgs
Scaling Methods and Frameworks
Lesson Summary
Quiz 3.4
Introduction
Getting Your Software to the End User - Quickly
RAD Design Models
RAD Tools
Lesson Summary
Quiz 3.5
Introduction
What is Joint Application Development?
What are JAD Sessions?
Joint Application Development Steps
Pros and Cons of JAD
Lesson Summary
Frequently Asked Questions
Quiz 3.6
Introduction
What is the Stage-Gate Process?
The Idea Funnel Process
Gate Criteria
Applications of the Stage-Gate Process
Benefits and Disadvantages of the Stage-Gate Process
Example of the Stage-Gate Process and Idea Funnel
Lesson Summary
Frequently Asked Questions
Quiz 3.7
Introduction
Software Testing
Software Testing Methods
Purposes of Testing
Lesson Summary
Quiz 3.8
Introduction
Types of Software Testing
Lesson Summary
Quiz 3.9
Introduction
Software Evolution
Software Maintenance
Maintaining Large Software Systems
Lesson Summary
Quiz 3.10
Introduction
What is Refactoring?
Refactoring Benefits
Refactoring Principles
Lesson Summary
Quiz 3.11
Ch 4.1 What is Agile Methodology? - Overview, Definition & Steps
What is Agile Methodology?
Agile Approach & Overview
Difference Between Agile vs. Scrum
Agile Principles
Steps in Agile Methodology
Lesson Summary
Frequently Asked Questions
Quiz 4.1
Introduction
Definition
Values
Methodologies
Lesson Summary
Quiz 4.2
Introduction
Agile Software Development
Methodologies
Lesson Summary
Quiz 4.3
Introduction
Adapting Agile to Large Orgs
Scaling Methods and Frameworks
Lesson Summary
Quiz 4.4
Introduction
What Exactly is Extreme Programming?
Extreme Programming Practices
Lesson Summary
Quiz 4.5
Introduction
There's Nothing Constant
Agile Method
Dynamic Systems Development Method
Lesson Summary
Additional Activities
Quiz 4.6
Introduction
Scrum in Software Engineering
Application
Backlog and Sprints
Scrum Meetings
Ch 5.1 Software Requirements Modeling: Guiding Principles
Why You Do What You Do
Guiding Principles for Modeling Software
Lesson Summary
Quiz 5.1
Introduction
What Is Software Prototyping?
The Software Prototyping Process
Models of Prototyping
Tools
Advantages & Disadvantages
Lesson Summary
Quiz 5.2
Introduction
Managing Capabilities
What is Requirements Engineering?
The Role of Collaboration
Use Cases
Elements of the Requirements Model
Negotiation and Validation
Lesson Summary
Quiz 5.3
Introduction
Requirements Modeling
Use Case Diagrams
Lesson Summary
Quiz 5.4
Introduction
Model : A picture is worth a thousand words!
The Unified Modeling Language (UML)
Definition of a UML Model
Design of UML models
Lesson Summary
Quiz 5.5
Introduction
Data vs. Requirements Modeling
Objects, Attributes, Relationships
Conceptual, Logical, Physical
Data Modeling: Example
The Solution
Lesson Summary
Quiz 5.6
Introduction
Class-Based Modeling
Example Use Case
Class-Based Model Method
Lesson Summary
Quiz 5.7
Introduction
The UML Case Use Diagram
Ch 6.1 What is a Data Flow Diagram?
What is a Data Flow Diagram?
What is Data Flow?
Data Flow Chart
Data Flow Diagram Types
What is a Flow Diagram?
Lesson Summary
Frequently Asked Questions
Quiz 6.1
Introduction
Control Flow Diagrams: Definition
Control Flow Diagrams: Example
Control Flow Diagram: Symbols
Lesson Summary
Quiz 6.2
Introduction
Use Case Diagram
How To Make a Use Case Diagram
Use Case Template
Use Case Document
Lesson Summary
Frequently Asked Questions
Quiz 6.3
Introduction
System Context Diagram
The Context Bubble
External Entities
Data Flows
Lesson Summary
Frequently Asked Questions
Quiz 6.4
Introduction
Consider the Users
What is the Behavioral Model for Requirements Gathering?
How Do you Evaluate a Use Case?
What is a State Representation?
Lesson Summary
Quiz 6.5
Introduction
Requirements Modeling
Identifying Requirements
Working with Requirements Modeling
Lesson Summary
Quiz 6.6
Introduction
Requirements Gathering
Functional Requirements
Non-Functional Requirements
Methods of Requirements Gathering
Challenges
Lesson Summary
Quiz 6.7
Introduction
UML Sequence Diagram Revisited
Ch 7.1 Design Process in Software Engineering: Steps, Attributes & Changes
From Art to Engineering
Design in Software Engineering
Iterative Nature of the Design Process
Modern Trends in Software Design
Lesson Summary
Quiz 7.1
Introduction
Basics of Software Design
Lesson Summary
Quiz 7.2
Introduction
A World of Objects
Classes and Objects
Inheritance
Encapsulation, Interfaces, Methods
Polymorphism
Lesson Summary
Quiz 7.3
Introduction
Handling the Difficult
What Is a Design Model?
Requirements to Specifications
What Is UML?
UML Deployment Diagram: Example
Lesson Summary
Quiz 7.4
Introduction
Applications for UML Deployment Diagrams
SmartHome Automation Systems
Questions to Consider
Ch 8.1 Conceptual Architecture Diagram: Definition & Examples
Conceptual Architecture Design
Conceptual Architecture Design Example
Multi-tier computer system
Building management system
Web and email server system
Lesson Summary
Frequently Asked Questions
Quiz 8.1
Introduction
What is Software Architecture?
Software Architecture Patterns and Styles
Types of Software Architecture Styles
Data-Centric Style
Layered Style
Object-Oriented Style
Software Architecture Example
Lesson Summary
Frequently Asked Questions
Quiz 8.2
Introduction
Making Sense of Diversity
What is Software Architecture Design?
Software System Fit into the Context of Other Systems
Archetypes Defined
Breaking a System Down into Components
Lesson Summary
Quiz 8.3
Introduction
Data Flow Diagram
Transform Mapping & DFD Level 0
Lesson Summary
Quiz 8.4
Introduction
Venturing Out on Her Own
Emily's First Project
Mapping Data for LogisticsManagerPro2
Ch 9.1 Component-Level Design: Definition & Types
What is a Component?
Component Level Design Overview
Types of Component Level Design Views
Component Level Design Examples
Roles of Cohesion and Coupling in Component Level Design
Lesson Summary
Frequently Asked Questions
Quiz 9.1
Introduction
The Tale of Parts
Software Components
Class-Based Component Design
Implementing Class-Based Component Design
Lesson Summary
Quiz 9.2
Introduction
Component-Level Design
Lesson Summary
Quiz 9.3
Introduction
Creating UML Component Diagrams
Ch 10.1 What is User Interface Design? - Examples & Definition
User Interface Design Definition and History
User Analysis
Information Architecture
Usability Testing
Lesson Summary
Quiz 10.1
Introduction
The Transparency of Good Design
What is Design?
What is an Interface?
What is Human Interface Design?
What are Some Principles that Drive Human Interface Design?
Lesson Summary
Quiz 10.2
Introduction
Analyzing User Interface Design
Swimlane Diagrams
Lesson Summary
Quiz 10.3
Introduction
The Importance of Use
What is User Interface Design?
What are the Objects and Actions of a System?
How are System Events Modeled?
How are These Event Changes Interpreted by the User?
Lesson Summary
Quiz 10.4
Introduction
Computer Interaction
What is an Application Interface?
What is Particular About a Web Application Interface?
How Does that Contrast with a Mobile Application Interface?
Lesson Summary
Quiz 10.5
Introduction
Designing User-Friendly Interfaces
Developing the User Interface Step-by-Step
Ch 11.1 Software Requirements Validation: Process & Techniques
Software Requirements Specification
Software Requirements Validation and Verification
Lesson Summary
Quiz 11.1
Introduction
Dependability
Causes of System Failure
Dimensions of Dependability
Dependability Purpose/Importance
Lesson Summary
Quiz 11.2
Introduction
Delivering Correctness
What are Formal Methods of Software Development?
Why is the Industry Reluctant to Adopt Formal Methods?
What are Some Ways to Avoid Errors in Software?
Lesson Summary
Quiz 11.3
Introduction
What is Reliability Engineering?
Reliability Engineering Principles
Reliability Engineering Specification & Implementation
Reliability Engineering Measurement
Lesson Summary
Frequently Asked Questions
Quiz 11.4
Introduction
The Need For Best Practices in Programming
Lesson Summary
Quiz 11.5
Introduction
Systems Reliability
Lesson Summary
Quiz 11.6
Introduction
Types of Information Security
Definition of Information Security Types
Lesson Summary
Quiz 11.7
Introduction
Preparing for the Worst
What Is Network Security?
Network Security Testing
Tools Used for Network Security Testing
Lesson Summary
Quiz 11.8
Ch 12.1 What is Project Risk Management? - Definition, Process & Examples
What is Risk Management in Project Management?
Types of Project Risk
Project Risk Management Examples
Project Risk Management Process
Preventing Risk
Lesson Summary
Frequently Asked Questions
Quiz 12.1
Introduction
Project Management Planning
Basic Definitions
The Planning Process
Planning Tools
Lesson Summary
Quiz 12.2
Introduction
Project Team Planning
Responsibility Assignment Matrix
Job Position Description
Project Organizational Chart
Project Team Assembly & Assignments
Lesson Summary
Quiz 12.3
Introduction
Defining Agile
Planning Process
Defining Requirements
When/How Work is Taken On
Planning Tools
Metrics
Software
Lesson Summary
Quiz 12.4
Introduction
Software Project Management
The Players and the Process
Scope Creep
Expect the Unexpected
Communication is Key
Lesson Summary
Quiz 12.5
Introduction
Why the W5HH?
Definition of the W5HH Model
The W5HH in Practice
Lesson Summary
Quiz 12.6
Introduction
Recognizing Uncertainty
Strategies
Lesson Summary
Quiz 12.7
Introduction
What Is a Quality Management System (QMS)?
Quality Management Components
Quality Improvement
Quality Management Benefits
Quality Management System Examples
Lesson Summary
Frequently Asked Questions
Quiz 12.8
Introduction
Configuration Management
Purpose of Software Configuration Management (SCM)
Change Control
Configuration Baseline
Measure Performance and Monitor Changes
Lesson Summary
Quiz 12.9
Introduction
What Is Configuration Management?
Configuration Management and System Changes
Configuration Management Process
Configuration Management Plan
Configuration Management Tools
Lesson Summary
Frequently Asked Questions
Quiz 12.10
Introduction
Configuration Management
Change Control
Configuration Control
Impact of Change Control, Version Control and Configuration Control
Lesson Summary
Quiz 12.11
Introduction
Project Change Management
Types of Changes
Change Budget
Roles in Change Management
Overall Change Management Process
Lesson Summary
Quiz 12.12
Ch 13.1 Component-Based Software Engineering (CBSE): Definition & Component Models
Orchestrating Your Devices
What is a Component?
What are the Basic Elements of an Ideal Component Model?
What is Component-Based Software Engineering (CBSE)?
What Do the CBSE Process Steps Look Like?
Lesson Summary
Quiz 13.1
Introduction
Computer Processing Power
What Is Distributed Computing?
Other Applications
Parallel Computing
Lesson Summary
Quiz 13.2
Introduction
What Is Middleware?
Simple Illustration
Uses of Middleware
Lesson Summary
Quiz 13.3
Introduction
What is Client-Server Network?
How Does It Work?
Advantages of Client-Server Network
Disadvantages of Client-Server Network
Lesson Summary
Frequently Asked Questions
Quiz 13.4
Introduction
Architectural Patterns
Distributed Systems Architecture
Non-Functional Requirements
Lesson Summary
Quiz 13.5
Introduction
What Is SaaS?
Benefits of SaaS
Examples of SaaS
Lesson Summary
Quiz 13.6
Introduction
Service-Oriented Architecture
Advantages of SOA
Disadvantages of SOA
Unsuitable Applications
Lesson Summary
Quiz 13.7
Introduction
The Actors in Service Engineering
Characteristics of Services in Service Engineering
The Three Stages of Service Engineering
Summary
Quiz 13.8
Introduction
Sociotechnical Systems (STS) Theory
History of the Sociotechnical Theory in Management
Sociotechnical Systems Theory Characteristics
Examples of Sociotechnical Systems
Lesson Summary
Frequently Asked Questions
Quiz 13.9
Introduction
What Is a Conceptual Model?
Abstraction
Characteristics of Conceptual Models
Uses of Conceptual Models
Conceptual Model Example
Advantages/Disadvantages of Conceptual Models
Lesson Summary
Frequently Asked Questions
Quiz 13.10
Introduction
What Does Procurement Mean?
Project Procurement Management
The Project Procurement Process
Lesson Summary
Frequently Asked Questions
Quiz 13.11
Introduction
Definition of System of Systems (SoS)
Challenges of Building a SoS
Lesson Summary
Quiz 13.12
Assignment
Final Exam
General Questions
With UPI, you determine your own level of time commitment. You can move through coursework quickly or slow down your pace.
YES, there are exams—held online on our platform and are proctored. Your course grade distribution is:
Content Questions
To ensure your UPI Study courses transfer to your university, check two things:
1) Is your university listed? If it's one of the 1,500 universities listed with NCCRS, you're all set.
OR
2) Check your university's credit policy. If it says they accept credits from "regionally accredited" universities, you're good to go! As long as you meet one of these criteria, your courses should transfer without a hitch.
Check the list of colleges here.
Membership Questions
Yes, that is what differentiates UPI. With each student their advisor will guide them on how to move forward.