The Agile Modeling (AM) Method

Agile Models: Potential Agile Modeling Artifacts

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 initiative, 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 Modelsadvises 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
Activity Diagram (UML) Analysis or design of a business process or business rule

Design of the logic flow of a complex operation

Class diagram

Business use case

Organization chart

Source code

System use case

Usage scenario

Use case diagram

User story

Hand-drawn sketchDrawing 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

Business Rule Definition Requirements identification Documentation of technical requirements Source code

Class diagram

CRC model

Business use case

Flow chart

System use case

Usage scenario

Workflow diagram

Index cardWord processor When exact definition of business rules are required in a stakeholder-readable format. Medium User story

Source code

Shall statement
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 cardWord processor When you need to justify design or architecture decisions to stakeholders AND they require documentation Low Future requirements

Architectural requirements

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 sketchCASE tool You need to communicate the internal structure of your software to others. Low Class Responsibility Collaborator (CRC) Model Object model
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

Business 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

CommunicationDiagram (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 sketchCASE tool Typically discarded after use

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

Very Low Sequence Diagram Interaction diagram
Component Diagram (UML) Logical business architecture modelingPhysical architectural modeling of a component-based software system Class diagramDeployment diagram

Sequence diagram

Hand-drawn sketchCASE tool Often kept to depict high-level architecture High
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

Business use case

System use case

Technical requirement

Usage scenario

Workflow diagram

Index cardWord processor Kept as part of official definition of requirements Medium User Story Shall statement
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 sketchDrawing tool

CASE tool

To communicate overall design of a process-intensive system Low Activity diagram

Workflow diagram

Process model
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 sketchCASE 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

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 sketchCASE tool To document technical architecture of your system Medium Network Diagram
Business Use Case Identification of usage requirements for a system

Identification of enterprise-level requirements for an organization

Change case

Constraint

Low-fidelity interface flow prototype

Robustness diagram

System use case

Technical requirement

Word processorCASE tool Part of official requirements documentation for a system Medium Usage scenario

User Story

Low-Fidelity Interface Prototype Exploration of the requirements for the user interface of a system Business rule

Constraint

Business 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

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

Deployment diagram

Workflow diagram

Word processorCASE 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
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 sketchDrawing tool

CASE tool

Typically discarded Low Activity diagram

Specification language

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

System use case

Usage scneario

Word processor Official definitions of terms. Medium Definitions
Network Diagram Analysis of existing technical infrastructureDesign of proposed technical infrastructure Component diagramSystem use case

Workflow diagram

Hand-drawn sketchDrawing tool

CASE tool

Official description of technical infrastructure for your system or organization High Deployment diagram Technical Architecture Diagram
Object Role Model (ORM) Diagram Exploring domain concepts with stakeholdersConceptual modeling Data modelUML Class diagram Hand-drawn sketch Official conceptual model for your system Low CRC model

Data model

UML Class Diagram

Organization Chart Depiction of existing or proposed organization structure Activity diagramClass Responsibility Collaborator Model

Data flow diagram

Use case diagram

Workflow diagram

Index cards & stringHand-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 modelHigh-level overview diagram depicting the physical organization of classes into packages

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

Class diagramUse case diagram CASE toolIndex cards

Hand-drawn sketch

When a CASE tool diagram is used to generate code into specific packagesAs an overview diagram depicting the organization of requirements Medium Component diagram Logical Package Diagram
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 sketchCASE tool Typically discarded Low
Role Play Exploration of the usage requirements for a systemVerification that a system design will meet the needs of its users Business rule

Change case

Constraint

Business 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 sketchCASE tool Typically discarded Very low Collaboration Diagram Interaction diagram
Specification Language (e.g. OCL) Define precise logic of a process, operation, constraint, or business rule Over specification on diagramsDetailed documentation for 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 sketchCASE tool May be kept as part of your design documentation for complex class or process Low State diagram

Statechart

State transition diagram

Petri nets

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

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

Business use case

Flow chart

Robustness diagram

Sequence diagram

State chart diagram

Usage scenario

Use case diagram

User interface prototype

Word processorCASE tool Part of your design documentation for your system Low Usage scenario

User Story

Traditional Use Case
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 cardWord processor Part of your official requirements definition Medium Non-Functional Requirement

Shall statement

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

Business use case

Organization chart

System use case

Hand-drawn sketchDrawing tool

CASE tool

Overview of your usage requirements Medium
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 cardWord processor Typically discarded Very low System Use Case

User Story

Use case scenario
User Interface Flow Diagram Exploration of user interface requirements

High-level design of an application’s user interface

? Business use case

Robustness diagram

System use case

User interface prototype

User story

Hand-drawn sketchDrawing tool

CASE tool

Part of official design documentation to provide overview of your user interface design Medium Interface flow diagram

User interface navigation diagram

User Interface Prototype Detailed design of a user interface ONLY source of system specification

Identification of user interface requirements

?

Business rule

Constraint

Business use case

Robustness diagram

Source code

System use case

User interface flow diagram

Workflow diagram

Hand-drawn sketchUser interface prototyping tool Typically discarded or evolved into working system Low
User Story Exploration of usage requirements

Reminder to have a conversation with a stakeholder

? CRC model

Collaboration diagram

Deployment diagram

Robustness diagram

Sequence diagram

Source code

Workflow diagram

Index cardWord processor Typically discarded Very Low Business Rule

Constraint

Essential Use Case

System Use Case

Use Case Scenario

Workflow Diagram Analysis of existing business processDesign 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 sketchDrawing 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.