Complete Progression
Follow the full journey from single classes to multi-package architecture and continuous delivery.
Designed for SE506 MSc in Artificial Intelligence at UKH.
Read the scenario and distinguish existing guarantees from new business requirements.
Justify structural choices using SOLID principles, encapsulation, and composition over inheritance.
Drive implementation with characterisation and unit tests using Arrange-Act-Assert.
Apply safe refactorings, monitor lead/cycle time, and integrate feedback continuously.
Follow the full journey from single classes to multi-package architecture and continuous delivery.
Master responsibilities, extension, substitutability, and dependency inversion.
Drive design with test doubles, factory/builder creation, and behavioral patterns.
Layered architecture, package stability, legacy code seams, and empirical flow metrics.
Developing software that can change, OO beyond syntax, Agile user stories, and SOLID principles.
Interfaces, TDD with JUnit/Mockito, Creational patterns, and GoF Behavioral patterns.
Layered packages, component stability, characterisation tests, and legacy seams.
Cycle time, contract tests, feature flags, retrospective handover, and responsible AI assistance.
Strong typing, immutable records, explicit contracts, and modern syntax
Deterministic builds, dependency graphs, and offline surefire verification
Parametrized suites, assertions, strict stubs, and isolation spies
Automated code smell detection, design rules, and complexity gates
Traceable commits, pull request peer reviews, and milestone delivery
Critical evaluation of AI suggestions, boundary testing, and prompts
It is written for postgraduate students in Artificial Intelligence (SE506 at UKH) and software engineers looking to master production-quality object-oriented design, automated testing, and agile collaboration.
The course descriptor prepares students to build reliable, maintainable software around AI and data components, handling real-world fallbacks, timeouts, test doubles, and evolving domain rules.
A realistic running domain used across chapters. Starting from a single reservation rule, it grows iteratively into a layered, decoupled system with persistence and policy models.
Each chapter is paired with a companion containing complete or delta Java listings, line-by-line walkthroughs, lab solutions, and verified test outputs.
Yes. Every chapter companion includes self-contained code listings, and all dependencies are pinned for reproducible offline testing.
Invert dependencies, protect invariants, and isolate components that change for different reasons.
Write automated tests to discover cohesive interfaces, define contracts, and prevent regressions.
Make small, reversible commits, measure flow with lead and cycle times, and adapt plans continuously.
Ready to explore the textbook?Read online, explore verified code companions, or download the complete 341-page PDF monograph.