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.