properties-methods-and-relationships

Convert CRC responsibilities into a typed domain model with properties, methods, and relationships.

1|Updated Feb 26, 2026
One-click install
npx skills add https://github.com/agilebydesign/agilebydesign-skills --skill properties-methods-and-relationships
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: properties-methods-and-relationships
Source: https://github.com/agilebydesign/agilebydesign-skills/tree/main/agents/abd-ooad/skills/properties-methods-and-relationships
Command: npx skills add https://github.com/agilebydesign/agilebydesign-skills --skill properties-methods-and-relationships

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Convert CRC responsibilities into a typed domain surface in domain-model.md, enabling precise properties, operations, and relationships to be modeled and validated.

Core Features & Use Cases

  • Properties: define what each object must know to fulfill its responsibility.
  • Operations: specify methods with parameter and return types, aligned to invariants from business logic.
  • Relationships: model composition/association with clear cardinalities and class boundaries.
  • Output: abd-ooad/domain-model.md driven by inputs: crc.md, domain-walkthrough.md, object-sketch.md, business-logic.md.

Quick Start

Run the domain-model generator with your CRC inputs to produce abd-ooad/domain-model.md.

Frequently Asked Questions about properties-methods-and-relationships

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I convert CRC responsibilities into a typed domain model?

To convert CRC responsibilities into a typed domain model, you map Class-Responsibility-Collaborator cards into explicit properties, operations, and relationships. This generates a structured domain-model.md defining object knowledge, method signatures, and composition boundaries.

What is the best way to define object properties and operations from domain-driven design?

Defining object properties and operations from domain-driven design involves extracting what each object must know to fulfill its responsibility. You specify methods with parameter and return types, aligning operations directly to invariants from your business logic.

How do I model class relationships and cardinalities across OOAD modules?

Modeling class relationships and cardinalities across OOAD modules requires defining composition and association boundaries. You transform collaboration data into a typed domain surface with clear cardinalities to validate interactions across distinct classes.

What inputs do I need to generate a domain model for explicit properties and methods?

Generating a domain model for explicit properties and methods requires four specific inputs: crc.md, business-logic.md, domain-walkthrough.md, and object-sketch.md. These files provide the responsibilities and invariants needed to produce the final output.

Can I use object sketches and business logic to drive class design?

Yes, you can use object sketches and business logic to drive class design. The domain model generator consumes object-sketch.md and business-logic.md alongside CRC inputs to produce a fully typed domain-model.md for your architecture.

Why does my domain model need typed properties and composition boundaries?

Your domain model needs typed properties and composition boundaries to enable precise modeling and validation. Structuring associations with clear cardinalities ensures object interactions remain consistent with invariants across all modules and classes.