Agile Models: Potential Agile Modeling Artifacts
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
Specification language Workflow diagram |
– |
Business Rule Definition | Requirements identification | Documentation of technical requirements | Source code
Business use case 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
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 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 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 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
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 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 Responsibility Collaborator (CRC) model Collaboration diagram Constraint definition Essential user interface prototype 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
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
Collaboration diagram Component diagram Dataflow diagram Workflow diagram |
CASE tool
Word processor |
Part of your official definition of requirements | Medium | Activity diagram | – |
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
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 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
Constraint Deployment diagram 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
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 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 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:
- Artifact. The name of the modeling artifact.
- Common Application. Common uses for the technique when developing business applications.
- 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.
- Iterate to. Suggested artifacts that are good choices to work on next from this one when following the practice Iterate To Another Artifact.
- 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.
- 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.
- 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.
- Alternate/Similar Artifact. Modeling artifact(s) that are similar in nature to this one that could potentially be used as a replacement.
- Also known as. Common aliases for this artifact.
- References. Books or online resources describing the technique.