Artifacts for Agile Modeling: The UML and Beyond

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 DistilledThe 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 RequirementsThe 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 DistilledThe 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 DistilledThe 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 HandbookModern 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 DistilledThe 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 UseThe 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 DistilledThe 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 DistilledThe 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

The ONLY source of system specification for a system (e.g. you should avoid use-case driven [INSERT TERM HERE])

Collaboration diagram

Essential use case

Flow chart

Robustness diagram

Sequence diagram

State chart diagram

Usage scenario

Use case diagram

User interface prototype

Word processor

CASE tool

Part of your design documentation for your system

Low

Usage scenario

User Story

Traditional Use Case

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

Table

Definition of complex business rules, constraints, or technical requirements

?

See business rules, constraints, & technical requirements

Word processor

Part of your official requirements definition

Medium

-

-

?

Technical Requirement

Requirements identification

Identification of business requirements

Identification of "gold plate" requirements that the technical staff want to implement

Change case

Constraint

Deployment diagram

Network diagram

Workflow diagram

Index card

Word processor

Part of your official requirements definition

Medium

-

Non-Functional Requirement

Shall statement

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

Use Case Diagram (UML)

Overview diagram indicating major usage requirements

Analysis of usage requirements of an existing system

Process diagramming

Diagramming without supporting use cases

Activity diagram

Data flow diagram

Essential use case

Organization chart

System use case

Hand-drawn sketch

Drawing tool

CASE tool

Overview of your usage requirements

Medium

-

-

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

UML Use case diagram style guidelines

Usage Scenario

Exploration of the usage of a system

?

Activity diagram

Business rule

Constraint

Deployment diagram

Flow chart

Network diagram

System use case

Workflow diagram

Index card

Word processor

Typically discarded

Very low

System Use Case

User Story

Use case scenario

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

User Interface Flow Diagram

Exploration of user interface requirements

High-level design of an application's user interface

?

Essential use case

Robustness diagram

System use case

User interface prototype

User story

Hand-drawn sketch

Drawing tool

CASE tool

Part of official design documentation to provide overview of your user interface design

Medium

-

Interface flow diagram

User interface navigation diagram

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

User Interface Prototype

Detailed design of a user interface

ONLY source of system specification

Identification of user interface requirements

?

Business rule

Constraint

Essential use case

Robustness diagram

Source code

System use case

User interface flow diagram

Workflow diagram

Hand-drawn sketch

User interface prototyping tool

Typically discarded or evolved into working system

Low

-

-

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

User Story

Exploration of usage requirements

Reminder to have a conversation with a project stakeholder

?

CRC model

Collaboration diagram

Deployment diagram

Robustness diagram

Sequence diagram

Source code

Workflow diagram

Index card

Word processor

Typically discarded

Very Low

Business Rule

Constraint

Essential Use Case

System Use Case

Use Case Scenario

-

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

Workflow Diagram Analysis of existing business process

Design of new business process

ONLY source of system specification

?

Business rule

Change case

Constraint

Deployment diagram

Organization chart

System use case

Usage scenario

User story

Hand-drawn sketch

Drawing tool

CASE tool

Part of your design documentation describing the supported business processes Medium Activity diagram

Dataflow diagram

Control flow diagram

Coats-Mellon Notation ?

The Columns:

  1. Artifact. The name of the modeling artifact.
  2. Common Application. Common uses for the technique when developing business applications.
  3. Common Misapplication. Common misuses of the technique that often lead to busy work or rework because the concept could be better captured using another technique. This column also includes advice for when not to apply the technique.
  4. Iterate to. Suggested artifacts that are good choices to work on next from this one when following the practice Iterate To Another Artifact.
  5. Suggested Media. An ordered list media which can be used to support the technique. Note: A drawing tool is something along the lines of Visio whereas a CASE tool is more along the lines of Rational Rose or TogetherSoft's Together.
  6. When to Keep It. Advice for situations when it may make sense for this model to be a "keeper". However, never forget the principle of Travel Light.
  7. Likely Value as Keeper. A rating of the likeliness that keeping the artifact will actually prove of value to your future efforts if you do decide to keep it.
  8. Alternate/Similar Artifact. Modeling artifact(s) that are similar in nature to this one that could potentially be used as a replacement.
  9. Also known as. Common aliases for this artifact.
  10. References. Books or online resources describing the technique.