Series: Design Patterns and Analysis | Introduction > Developed during Master’s in Web Systems Projects
A few weeks ago, during our Object-Oriented Modeling and UML class with Professor Osmar Fernandes Jr., we were introduced to Software Analysis Patterns. This post summarizes that concept and shows how it helps us model recurring business structures with clarity.
Why It Matters
As systems and business processes grow in complexity, they generate thousands of rules, entities, and relationships. Analysis patterns help us to:
- Share reusable solutions
- Formalize domain concepts
- Avoid reinventing the wheel in new modules or systems
What Are Analysis Patterns
In his book Analysis Patterns: Reusable Object Models , Martin Fowler defines these patterns as reusable conceptual models. Each pattern represents a combination of classes, attributes, and relationships that occur repeatedly across different business domains.
They allow us to communicate complex ideas visually and with consistency.
UML Examples
Party
Defines a generic supertype for people and organizations.
- Avoids duplicated logic across entities that share the same relationships (e.g., address, phone)
- Useful for modeling any “actor” in a system

Quantity and Unit
Represents a numeric value tied to a unit (e.g., 20 km).
Quantitywraps the value and unit- Supports operations like
+,-,*,/between compatible quantities

Conversion Ratio
Allows transforming a Quantity from one unit to another.
ConversionRatiolinks two units via a multiplier- Used in operations like
convertTo(Unit)

Compound Units
Models composite units like km/h or $/m².
- Represents combinations of multiple
Unitinstances - Supports more advanced measurement systems

Organizational Hierarchies
Models hierarchical structures recursively.
Organizationcan have aparentand multiplesubsidiaries- Ideal for modeling regions, divisions, offices, etc.

Organization Structure
Makes explicit the type of organizational relationship.
- Defines
Organization Structure Type(e.g., subsidiary, joint venture) - Decouples the relationship from the entities involved

Conclusion
Analysis patterns help us visualize, discuss, and build more robust systems aligned with real-world domains. They are reusable, precise, and often save hours of discussion.
In future posts, we’ll explore how design patterns complement these concepts during implementation.
Series Navigation
- Current: Introduction - Analysis Patterns
- Next: Part 1 - Design Patterns Overview
- Complete series: Design Patterns Overview | Creational Patterns | Structural Patterns | Behavioral Patterns