Software Engineering 101 provides an overview of key concepts in software engineering including:
- Software engineering is the application of a systematic approach to software design, development, and maintenance.
- Software architecture establishes the high-level structure of a system, while software development focuses on implementation details. Both are important.
- Common software architectures include client-server, peer-to-peer, REST, service-oriented, and multi-tier architectures.
- Popular software development methodologies include waterfall, iterative, agile (e.g. Scrum, XP), and design patterns help solve common problems.
- Software development also involves object-oriented programming, databases, testing, and release management.