Skip to main content

Knowledge Domain Database - Software Engineering

How does the domain work before writing a line of code? Choose a document from the left tree: each page explains part of the model.

Business Rules - Software Engineering

This document lists the fundamental business rules of the Software Engineering domain, identified with a unique BR-NNN code. Each rule is technology-independent and describes an invariant constraint on the software development process.

---

BR-001 - Every FeatureRequest becomes a traceable Requirement

Code: BR-001 Name: A FeatureRequest is translated into a Requirement with acceptance criteria Description: Every feature request is analysed and translated into a clear, verifiable Requirement with explicit acceptance criteria, before entering the Backlog. An ambiguous requirement, or one without acceptance criteria, is not ready for development. Motivation: Avoid ambiguity and rework; make every unit of work verifiable. Priority: HIGH Actors: Product Owner, Developer Traceability: glossary "Acceptance Test"; events/domain-events.md event RequirementCreated; BC-01.

---

BR-002 - New code is covered by tests

Code: BR-002 Name: Every completed UserStory includes adequate automated tests Description: Code that implements a behaviour is accompanied by unit and, where needed, integration tests. Coverage is meaningful (it tests real behaviour, not just lines). TDD is the preferred practice for new behaviour. Motivation: Prevent regressions and enable safe refactoring. Priority: HIGH Actors: Developer, Tester Traceability: glossary "Test-Driven Development (TDD)", "Unit Test", "Integration Test"; BR-005.

---

BR-003 - Every change passes through code review

Code: BR-003 Name: No code is integrated without a peer review Description: Every implemented UserStory must pass code review before merge. The review verifies correctness, readability, adherence to principles (SOLID), absence of code smells and test coverage. Motivation: Improve quality, share knowledge and reduce defects. Priority: HIGH Actors: Developer Violation: merge blocked until the review is approved. Traceability: glossary "Code Smell", "SOLID", "Refactoring"; state-machines/user-story-lifecycle.md code-review state.

---

BR-004 - Dependency direction respects Clean Architecture

Code: BR-004 Name: Business logic does not depend on infrastructure details Description: In the Codebase, the domain does not depend on frameworks, databases or UI: the dependency arrow points inward. Business logic is pure and testable in isolation (Dependency Injection, Inversion of Control). Motivation: Keep the domain testable, replaceable and technology-independent. Priority: CRITICAL Actors: Developer Traceability: glossary "Clean Architecture", "Dependency Injection (DI)", "Inversion of Control (IoC)", "Pure Function".

---

BR-005 - The build must stay green

Code: BR-005 Name: A failed build blocks integration until restored Description: The Codebase maintains Continuous Integration with always-green build and tests on the main branch. A commit that breaks the build (BuildFailed) has immediate fix priority; no new work is integrated on a broken build. Motivation: Guarantee an always-releasable main branch. Priority: HIGH Actors: Developer, Tester Violation: BuildFailed; the main branch is frozen until the build returns green. Traceability: glossary "Continuous Integration (CI)"; events/domain-events.md event BuildFailed.

---

BR-006 - The SprintGoal is the commitment unit

Code: BR-006 Name: Every sprint pursues a SprintGoal with a selected Backlog Description: Development is organised into iterations with a goal (SprintGoal) and a set of UserStory selected from the priority-ordered Backlog. The sprint scope is protected: new requests go to the backlog, not the in-progress sprint. Motivation: Guarantee focus, predictability and incremental delivery of value. Priority: MEDIUM Actors: Product Owner, Scrum Master, Developer Traceability: glossary "Bounded Context"; events/domain-events.md event SprintStarted.

---

BR-007 - Technical debt is tracked and managed

Code: BR-007 Name: Every introduced Technical Debt is recorded and planned Description: Implementation shortcuts (code smells, duplication, insufficient coverage) are made visible as technical debt, assessed and placed in the Backlog. No invisible debt accumulates that degrades the QualityMetric. Motivation: Keep the codebase maintainable over time. Priority: HIGH Actors: Developer, Product Owner Traceability: glossary "Technical Debt", "Refactoring"; events/domain-events.md event TechnicalDebtRecorded.

---

BR-008 - A release ships from a green, tested branch

Code: BR-008 Name: A ReleaseShipped comes only from a codebase with green build and tests Description: A release is produced from a Codebase state with green CI, adequate coverage and semantic versioning. Breaking changes increment the MAJOR version; the release is traceable to the requirements it satisfies. Motivation: Guarantee reliable and traceable releases. Priority: HIGH Actors: Developer, Scrum Master Traceability: glossary "Semantic Versioning (SemVer)", "Backward Compatibility"; events/domain-events.md event ReleaseShipped.