Systematic discipline for designing, developing, testing, deploying, and maintaining software.

Record showing a request's path through a system.

Pattern encapsulating interchangeable algorithms.

Design minimizing dependencies between components.

Boundary preventing certain errors from crashing an entire application.

Pattern defining algorithm structure while allowing customized steps.

Design where related responsibilities are strongly grouped.

Component responsible for handling detected faults.

Pattern separating operations from object structures.

Boundary controlling access to internal implementation details.