-
Notifications
You must be signed in to change notification settings - Fork 134
Software Engineering Principles
Dr M H B Ariyaratne edited this page Jun 9, 2026
·
3 revisions
A structured series of articles covering the core principles, patterns, and practices of professional software development. Each article is self-contained and cross-linked for sequential or reference reading.
| # | Article | Topics covered |
|---|---|---|
| 01 | Introduction to Software Engineering | What SE is, history, the engineering mindset, why it matters |
| 02 | Software Development Life Cycle | SDLC phases, Waterfall, Iterative, Spiral, Agile, V-Model, requirements quality |
| 03 | Object-Oriented Programming | Encapsulation, inheritance, polymorphism, abstraction, composition |
| 04 | SOLID Principles | SRP, OCP, LSP, ISP, DIP — with code examples and pitfalls |
| 05 | Design Patterns | Creational, Structural, Behavioural patterns (GoF); patterns in Java EE |
| 06 | Clean Code | Naming, functions, comments, formatting, error handling, code smells |
| 07 | Software Architecture | Layering, MVC, Hexagonal, Microservices vs Monolith, quality attributes |
| 08 | Refactoring | What refactoring is, core techniques, safe process, what it is not |
| 09 | Testing Principles | Testing pyramid, unit tests, integration tests, TDD, FIRST properties |
| 10 | Version Control and Git Workflows | Git concepts, branching strategies, commit messages, PR workflow |
| 11 | API Design Principles | REST, resource design, HTTP methods, status codes, versioning |
| 12 | Security Principles | OWASP Top 10, injection, access control, cryptography, audit logging |
| 13 | Database Design Principles | Normalisation, relationships, constraints, indexing, migrations |
| 14 | Agile and Scrum | Agile values, Scrum roles/events/artefacts, user stories, estimation |
| 15 | Foundational Coding Principles | KISS, YAGNI, DRY, Separation of Concerns, Cohesion/Coupling, Boy Scout Rule, Fail Fast, Defensive Programming, POLA, Automation, Immutability, Observability, Performance, Concurrency, Documentation, Feedback Loops |
New to software engineering? Read in order from SE-01 through SE-15.
Building or reviewing a feature?
- Writing new classes → SE-03 OOP + SE-04 SOLID + SE-06 Clean Code + SE-15 Foundational Coding Principles
- Designing a new module → SE-07 Architecture + SE-05 Design Patterns
- Touching existing code → SE-08 Refactoring
- Writing tests → SE-09 Testing
- Working on the database → SE-13 Database Design
- Working on an API → SE-11 API Design + SE-12 Security
- Estimating / planning a Sprint → SE-14 Agile and Scrum
- Starting on a new project → SE-02 SDLC
- Developer Manual
- Developer Guidelines
- 26-Week Training Schedule for Software Trainee Engineers
- Tech Stack
Back to Home