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
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
|
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
|
|
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
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
|
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
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
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
|
|
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
|
|
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 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
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 |
|
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
|
|
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
|
|
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
|
-
|
|
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 |
|
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 |
|
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 |
- |
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
|
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
|
-
|
-
|
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
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
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
|
|
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
|
|
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
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
|
|
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
|
|
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
|
-
|
-
|
|
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
|
-
|
|
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
|
?
|