Agile Modeling Home Page

Artifacts for Agile Modeling: The UML and Beyond

Scott W. Ambler Home Page
The Object Primer 3rd Edition: Agile Model Driven Development (AMDD) with UML 2 This page provides a brief summary of potential models that you may choose to apply when developing business application software.  This list is not complete, there are undoubtedly hundreds of types of artifacts available to you, but it does describe ones that are common use for modern software today.  Furthermore, the focus is on the development of business application software not other types such as embedded software or system software.  Yes, many of the artifacts could and should be applied in these other domains but the chart reflects a methodology geared for the development of modern-day business software.  Finally, it is important to understand that you very likely won't need to apply every single technique on any given project, instead you will want to apply a subset that is appropriate to the task at hand.    

 

The table below is large, sorry about that, and it may not contain everything that you need (such as a detailed description of the notation) which is why I include links to good references that describe the technique.  For now you may want to refer to the Agile Models Distilled pages. Artifacts are listed in alphabetical order, links to detailed descriptions of each artifact are provided, and an explanation of the columns are at the bottom of the page.  You may also want to refer to the article Be Realistic About the UML.

How does this chart support Agile Modeling (AM)? The principles Multiple Models indicates that you potentially need a wide range of models available to you, Know Your Models advises that you need to understand the strengths and weaknesses of each technique to apply them appropriately, and Content is More Important Than Representation implies that many artifacts have alternates that may be applicable for your situation.  The practices Create Several Models in Parallel and Iterate to Another Artifact also require you to understand when and when not to apply a modeling technique, and Discard Temporary Models requires advice pertaining to when you should keep an artifact.

 

Artifact

Common Applications

Common Misapplications

Iterate To

Suggested Media

When to Keep It

Likely Value as Keeper

Alternate/Similar Artifact

Also Known As

References

Activity Diagram (UML)

Analysis or design of a business process or business rule

Design of the logic flow of a complex operation

-

Class diagram

Essential use case

Organization chart

Source code

System use case

Usage scenario

Use case diagram

User story

Hand-drawn sketch

Drawing tool

CASE tool

To provide a high-level  overview of the logic for a business process

Low

Data flow diagram

Flow chart  

Specification language

Workflow diagram

-

UML Distilled UML Distilled The Object Primer 3rd Edition: Agile Model Driven Development (AMDD) with UML 2  

UML Activity diagram style guidelines

Business Rule Definition

Requirements identification 

Documentation of technical requirements 

Source code

Class diagram

CRC model

Essential use case

Flow chart

System use case

Usage scenario

Workflow diagram

Index card

Word processor

When exact definition of business rules are required in a stakeholder-readable format.

Medium

User story

Source code

Shall statement

XP in PracticeSoftware Requirements The Object Primer 3rd Edition: Agile Model Driven Development (AMDD) with UML 2  

www.businessrulesgroup.org    
www.brcommunity.com

Change Case

Exploration of future potential requirements

Justification to overbuild software to meet "potential" requirements

Constraint

CRC model

Technical requirement

Usage scenario

Use case

User story

Workflow diagram

Index card

Word processor

When you need to justify design or architecture decisions to project stakeholders AND they require documentation

Low

-

Future requirements

Architectural requirements 

 Designing Hard SoftwareThe Object Primer 3rd Edition: Agile Model Driven Development (AMDD) with UML 2

Class Diagram (UML)

Conceptual modeling

Domain modeling

Exploration of the structure of object-oriented software 

Physical database modeling

Domain model documentation for users

Only design diagram for OO software

Activity diagram

Collaboration diagram

Component diagram

CRC model

Data model

Sequence diagram

Source code

State chart diagram

Usage scenario

User story

Hand-drawn sketch

CASE tool

You need to communicate the internal structure of your software to others.

Low

Class Responsibility Collaborator (CRC) Model 

Object model

 UML DistilledUML Distilled The Object Primer 3rd Edition: Agile Model Driven Development (AMDD) with UML 2  

UML Class diagram style guidelines

Class Responsibility Collaborator (CRC) Model

Domain modeling

Conceptual modeling

Exploration of the design of the structure of object-oriented software

-

Business rule

Change case

Constraint

Class diagram

Essential use case

Organization chart

System use case

Usage scenario

Use case diagram

User story

Index card

Typically discarded after use.

Very Low

Class diagram

CRC cards

Index cards

Order now! The Object Primer 3rd Edition: Agile Model Driven Development (AMDD) with UML 2  

C2 Wiki Web Description of CRC Cards

Communication Diagram (UML)

Exploration of the dynamic nature of complex object interactions

-

Class diagram

Component diagram

Deployment diagram

Robustness diagram

Source code

System use case

Usage scenario

User interface flow diagram

User interface prototype

User story

Hand-drawn sketch

CASE tool

Typically discarded after use

May be kept to show design of a complex portion of software

Very Low

Sequence Diagram

Interaction diagram

 UML DistilledUML Distilled The Object Primer 3rd Edition: Agile Model Driven Development (AMDD) with UML 2  

UML Communication diagram style guidelines

Component Diagram (UML) Logical business architecture modeling

Physical architectural modeling of a component-based software system

  Class diagram

Deployment diagram

Sequence diagram

Hand-drawn sketch

CASE tool

Often kept to depict high-level architecture High - - UML DistilledUML DistilledThe Object Primer 3rd Edition: Agile Model Driven Development (AMDD) with UML 2

UML Component diagram style guidelines

Constraint Definition

Definition of a business or technical constraint

Definition of a Business rule

Definition of a technical requirement

NOTE: There's a fuzzy line between constraints and business rules as well as with technical requirements

Change case

CRC model

Deployment diagram

Essential use case

System use case

Technical requirement

Usage scenario

Workflow diagram

Index card

Word processor

Kept as part of official definition of requirements

Medium

User Story

Shall statement

 XP in PracticeSoftware RequirementsThe Object Primer 3rd Edition: Agile Model Driven Development (AMDD) with UML 2

Data Flow Diagram (DFD)

Analysis of existing business processes

Design of new or updated business processes

Over specification of a system by "drilling down" into sub processes with more DFDs.

Significant effort to level balance between a DFD and its sub-DFDs

Change case

Constraint

Data model

Deployment diagram

Organization chart

Structure diagram

System Use case

Usage scenario

Use case diagram

User story

Workflow diagram

Hand-drawn sketch

Drawing tool

CASE tool

 

To communicate overall design of a process-intensive system

Low

Activity diagram

Workflow diagram

Process model

Modern System AnalysisThe Object Primer 3rd Edition: Agile Model Driven Development (AMDD) with UML 2

Data Model

Physical database design

Conceptual or domain modeling for a data warehouse

Explore relationships between a handful of entities

Conceptual modeling of OO software

Domain modeling for OO software

Exploration of structure of OO software

A primary driver of the structure of a Class diagram

Class diagram

Data flow diagram

Deployment diagram

Source code   

System use case

Usage scenario

User story

Workflow diagram

Hand-drawn sketch

CASE tool

To document physical database design

As a contract model between the database owners and other systems accessing the database 

Very High

-

Persistence Model

Entity-Relationship Diagram

Data Modeling Handbook Modern System AnalysisThe Object Primer 3rd Edition: Agile Model Driven Development (AMDD) with UML 2 Agile Database Techniques 

Data Modeling 101: An Agile Data Article

A UML Profile for Data Modeling

The Process of Database Refactoring

Catalog of Database Refactorings

Deployment Diagram (UML)

Identification of physical architecture for a system

Identification of how software components are and/or will be deployed to physical architecture

?

Activity diagram

Collaboration diagram

Component model

Constraint

Data model

External interface specification

Sequence diagram

Usage scenario

User story

Workflow diagram

Hand-drawn sketch

CASE tool

To document technical architecture of your system

Medium

Network Diagram

-

 UML DistilledUML Distilled The Object Primer 3rd Edition: Agile Model Driven Development (AMDD) with UML 2  

UML Deployment diagram style guidelines

Essential Use Case

Identification of usage requirements for a system

Identification of enterprise-level requirements for an organization

-

Change case

Constraint

Essential user interface flow prototype

Robustness diagram

System use case

Technical requirement

Word processor

CASE tool

Part of official requirements documentation for a system

Medium

Usage scenario

User Story 

Business use case

 Software For UseThe Object Primer 3rd Edition: Agile Model Driven Development (AMDD) with UML 2

Essential User Interface Prototype

Exploration of the requirements for the user interface of a system

-

Business rule

Constraint

Essential use case

User interface flow diagram

User interface prototype

Paper (including Post-It notes)

Hand-drawn sketch

Typically discarded

Very Low

-

Abstract prototype

Low-Fidelity Prototype

 Software For Use The Object Primer 3rd Edition: Agile Model Driven Development (AMDD) with UML 2

External Interface Specification (Contract Model) Definition of interface (via an API, data feed, ...) to an external system ? Data flow diagram

Data model

Deployment diagram

Workflow diagram

Word processor

CASE tool

As a contract model between your system and an external one Very High     ?
Features Exploration of requirements ?

Acceptance test case

Business rule definition

Class diagram

Class Responsibility Collaborator (CRC) model

Collaboration diagram

Constraint definition

Essential user interface prototype

Glossary

Source code

User interface prototype

Index card

Word processor

When you need a feature list describing your system Medium

Business rule

Constraint

Technical requirement

User story

Shall statement Java Modeling in Color The Object Primer 3rd Edition: Agile Model Driven Development (AMDD) with UML 2

Flow Chart

Definition of complex logic

Over specification of logic when source code or specification language would do just as well

Class diagram

Collaboration diagram

Sequence diagram

System use case

Usage scenario

User story

Hand-drawn sketch

Drawing tool

CASE tool

 

Typically discarded

Low

Activity diagram  

Specification language

-

  Modern System Analysis The Object Primer 3rd Edition: Agile Model Driven Development (AMDD) with UML 2

Glossary Definition of common terms To much focus on getting it perfect. Class diagram

Data model

System use case

Usage scneario

Word processor Official definitions of terms. Medium - Definitions The Object Primer 3rd Edition: Agile Model Driven Development (AMDD) with UML 2
Network Diagram Analysis of existing technical infrastructure

Design of proposed technical infrastructure

- Component diagram

System use case

Workflow diagram

Hand-drawn sketch

Drawing tool

CASE tool

Official description of technical infrastructure for your system or organization High Deployment diagram Technical Architecture Diagram The Object Primer 3rd Edition: Agile Model Driven Development (AMDD) with UML 2
Object Role Model (ORM) Diagram Exploring domain concepts with stakeholders

Conceptual modeling

- Data model

UML Class diagram

Hand-drawn sketch Official conceptual model for your system Low CRC model

Data model

UML Class Diagram

- Information Modeling and Relational DatabasesThe Object Primer 3rd Edition: Agile Model Driven Development (AMDD) with UML 2

www.orm.net

Object Role Model (ORM) Diagram Overview

Organization Chart Depiction of existing or proposed organization structure - Activity diagram

Class Responsibility Collaborator Model

Data flow diagram

Use case diagram

Workflow diagram

Index cards & string

Hand-drawn sketch

Drawing tool

Official description of the organization structure of your enterprise or portion thereof Medium None None ?
Package Diagram (UML) High-level overview diagram that depicts the logical organization of requirements or a domain model

High-level overview diagram depicting the physical organization of classes into packages

To organize work, such as the assignment of requirements to specific subteams

- Class diagram

Use case diagram

CASE tool

Index cards

Hand-drawn sketch

When a CASE tool diagram is used to generate code into specific packages

As an overview diagram depicting the organization of requirements

Medium Component diagram Logical Package Diagram UML Distilled UML Distilled The Object Primer 3rd Edition: Agile Model Driven Development (AMDD) with UML 2

Robert Martin's Papers on Granularity, Stability, and OO Quality Metrics.

Kirk Knoernschild's papers on package dependency and the Acyclic Dependency principle. 

Package diagram style guidelines

Physical Prototype Explore ergonomic issues of a system - Activity diagram

Deployment diagram

Network diagram

System use case

Usage scenario

User story

Workflow diagram

- Typically discarded Very low - - ?

Robustness Diagram

Analyze use cases to identify candidate classes and major user interface elements (screens, reports, ...)

To design user interface flow for a system

To design static structure of OO software

Collaboration diagram

Sequence diagram

System use case

Usage scenario

User interface flow diagram

User interface prototype

User story

Hand-drawn sketch

CASE tool

Typically discarded 

Low

-

-

 UC Driven Modeling The Object Primer 3rd Edition: Agile Model Driven Development (AMDD) with UML 2

www.iconixsw.com

Robustness Diagram Overview

Role Play Exploration of the usage requirements for a system

Verification that a system design will meet the needs of its users

- Business rule

Change case

Constraint

Essential use case

System use case

Technical requirement

Usage scenario

User interface flow diagram

User interface prototype

User story

- N/A N/A - Play acting ?

Sequence Diagram (UML)

Modeling the logic of a usage scenario or a path though one or more use cases (or part(s) thereof)

Modeling of the logic for every single path through all the usage requirements for your system

Class diagram

Robustness diagram

System use case

Usage scenario

User story

Hand-drawn sketch

CASE tool

Typically discarded

Very low

Collaboration Diagram

Interaction diagram

 UML DistilledUML Distilled The Object Primer 3rd Edition: Agile Model Driven Development (AMDD) with UML 2  

UML Sequence diagram style guidelines

Specification Language (e.g. OCL) Define precise logic of a process, operation, constraint, or business rule Over specification on diagrams

Detailed documentation for project stakeholders that likely don't understand the language

Business rule

Class diagram

Collaboration diagram

Component diagram

Dataflow diagram

Workflow diagram

CASE tool

Word processor

 
Part of your official definition of requirements Medium Activity diagram

Flow chart

-  

State Machine Diagram (UML)

Design the behavior of a complex class

Analyze a complex business process

Design the behavior of several classes

Model process flow

Design the behavior of a simple class and/or one without interesting behavior based on state

Business rule

Class diagram

Source code

System use case

Usage scenario

Table

Hand-drawn sketch

CASE tool

 

May be kept as part of your design documentation for complex class or process 

Low

-

State diagram

Statechart  

State transition diagram

Petri nets

 UML DistilledUML Distilled The Object Primer 3rd Edition: Agile Model Driven Development (AMDD) with UML 2  

UML State machine diagram style guidelines

Structure Diagram Explore the "call" hierarchy within the design of procedural software Design of object-oriented software Dataflow diagram

Source code

Hand-drawn sketch High-level design of structured software  Low Collaboration diagram

Sequence diagram

Call diagram

Structure chart

Jackson Structure Diagrams

System Use Case

Analysis of usage requirements

High-level design of implementation of usage requirements

Identification of usage requirements for a system