Skip to content

Software Engineering Principles

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

Software Engineering Principles

A curated series of articles covering the core concepts, patterns, and practices that underpin the CareCode HMIS platform and modern software development in general.


Foundations

Article Summary
Object-Oriented Programming (OOP) – Overview Core OOP concepts: encapsulation, inheritance, polymorphism, abstraction
SOLID Principles Five design principles for maintainable, flexible OO design (Single Responsibility, Open/Closed, Liskov, Interface Segregation, Dependency Inversion)
Software Design Pattern Common patterns including MVC — separating concerns for maintainability and testability

Architecture

Article Summary
Architecture Single-tier through multi-tier architectural styles explained
Migration from Monolithic Architecture to Microservices Why and how to break apart a monolith — concepts and strategy
Converting Tightly Coupled Application into Loosely Coupled and Pluggable Modules Practical patterns for reducing coupling
Transitioning CareCode HIMS from a Monolithic Architecture to Mini‐Services CareCode-specific roadmap from monolith to mini-services
Business Process Reengineering (BPR) Radically redesigning business processes for dramatic performance improvements

Technology Stack

Article Summary
Tech Stack Languages, frameworks, and tools used in the CareCode platform
Introduction to Technologies Orientation to the technologies involved
Java The Java version in use and links to deeper Java articles
Overview of Java Editions and Usage in CareCode SE vs EE vs ME — which editions are used and why
Overview of Java Specifications, Implementations, and Instances JCP specifications, reference implementations, and runtime instances explained

Training & Development Path

Article Summary
26-Week Training Schedule for Software Trainee Engineers Structured 26-week onboarding covering SDLC, OOP, design patterns, architecture, and the CareCode stack

Related Developer Resources


Back to Home

Clone this wiki locally