Files
016-pretty-table/.claude/skills/artifact/references/DM.md
T
Tirsvad b0a7414204 Add Pretty Table project: plan, accepted documents and code
Business Case, Stakeholder Analysis, Project Plan and milestone MIL-001
with review records RC-001 to RC-003, then the Python project: PrettyTable
Pokemon table, constants, pytest tests, pyproject.toml, Doxyfile, CI
workflow and README.

Task: MIL-001#1
Task: MIL-001#2
Task: MIL-001#3
Task: MIL-001#4
Task: MIL-001#5
Task: MIL-001#6
Task: MIL-001#7
Task: MIL-001#8
2026-10-07 12:02:59 +08:00

27 lines
1.3 KiB
Markdown

# Domain Model (DM)
Cite in `CrossReference` only if the instance exists (`new-artifact.sh` checks this for you):
- **UC** — Source of every concept (noun phrases) — cite each `UC-*` used
- **UCD** — Scope check: actors/goals the model must cover
- **SSD** — Forward: system operations that act on these concepts
## Required sections (after Metadata / Version History)
1. **Purpose and Scope** — which use cases the model covers.
2. **Diagram** — PlantUML class diagram (or linked source) showing
**concepts, attributes and associations only — no operations**.
Business language throughout ("Sale", not "SaleTable"/"SaleClass").
3. **Concept Table** — `Concept | Definition | Attributes | Source (use
case noun phrase / glossary)`. Every concept traces to a noun in a use
case or glossary. Attributes are simple domain data, not foreign-key-like
references (model those as associations).
4. **Association Table** — `From | Association name (with reading
direction) | To | Multiplicity (both ends)`. All multiplicities present.
5. **Generalizations** — only true "is-a" relationships, never inheritance
for code reuse.
## Terminology
Concept names are the PO terms recorded in the dictionary (`DICT`); add a row there for each new concept.