Skip to content

Software Engineering Principles

Dr M H B Ariyaratne edited this page Jun 9, 2026 · 3 revisions

Software Engineering Principles

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.


Series Articles

# 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

Reading Paths

New to software engineering? Read in order from SE-01 through SE-15.

Building or reviewing a feature?


Related Developer Resources


Back to Home

Clone this wiki locally