Note: this notes are adapted from UCLA 130 - Software Engineering. From my personal experience in the software industry, only some parts of the concepts here are actually used. Not worth reading if you want to explore the modern practices of software engineering. But they can be some reference.

Software Process

Software Analysis

Software Architecture

Software Design

Code Generation

Software Testing

Software Code Review

Software Evolution and Maintenance