The written word is a wonderful vehicle for communication, but it isn't necessarily the best way to represent the requirements for computer software. Analysis modeling uses a combination of text and diagrammatic forms to depict requirements for data, function, and behavior in a way that is relatively easy to understand, and more important, straightforward to review for correctness, completeness and consistency. This section presents resources for conventional and object-oriented analysis (OOA) methods as well as resources for UML.
Analysis modeling is an extremely robust subject. This set of resources has been organized into the following topic areas:
Requirements Analysis - General
Flow-Oriented Modeling (Structured Analysis)
Requirements Analysis - General
A set of requirements templates and checklists can be downloaded from this site.
Requirements Modeling Examples
A discussion of a variety of different requirement modeling methods with examples.
Requirements Study Guides and Case Studies
Mark Ridley has developed a "distilled set of experiences and best practice techniques, applicable to most data processing environments" as ppt presentations.
This paper discusses "how event/use case modeling can be used to identify, define and access requirements patterns."
Agile Analysis Modeling
Scott Ambler discusses an agile approach to analysis modeling. Recommended.
Requirements Analysis Tutorial and Guidelines
Mark Ridley has developed an in-depth tutorial (with slides) that discusses the requirements analysis process with special emphasis on third party developed systems in an IT environment. Recommended.
Unified Modeling Language (UML)
An reasonably detailed discussion at Wikipedia.
UML Resource Page
Home of everything UML.
An extensive collection of resource links.
Pointers to tools, training, processes, publications and more.
UML Resource Center
Sponsored by Rational Software Corp., this site contains a wide variety of information about the Unified Modeling Langue and its application.
The UML Bibliography
Contains over 300 linked references.
Unified Modeling Language (UML) Tutorial-I
A indepth tutorial. Requires a lot of reading, but worthwhile.
Unified Modeling Language (UML) Tutorial-II
Another tutorial for UML.
Tutorial - UML Notation
Introduction to basic OOA concepts and UML notation
UML basics: An introduction to the Unified Modeling Language
A worthwhile introduction.
Modeling Style Guidelines
Guidleines for good UML style.
How to Draw Uml Diagrams
An in-depth tutorials. Recommended.
Introduction to the Diagrams of UML 2.0
Detailed discussion of UML 2.x diagrams.
Why Model With UML?
Discusses the benefits of UML modeling. Contains links to useful diagram tutorials.
UML Modelling Learning Trail
Pointers to tutorials, articles and Applications.
Software Development Magazine Design Center
Many useful articles on UML.
Tutorial - OOA/OOD with UML
Detailed tutorial by the Rational Corp.
OOA/OOD with UML - 1
A detailed tutorial by the Ratio Group.
Analysis model example using UML
A student project that is worth a look.
pdf: Using UML for Modeling Complex Real-Time Systems
The paper "describes a set of constructs that facilitate the design of software architectures in this domain."
Modeling Web Application Design with UML
Provides a reasonably detailed look at UML and WebApp modeling.
List of UML tools
An abbreviated list of tools.
Video: UML Fundamentals
A brief video that describes basic concepts (6:09)
Video: UML: Architecture, Domain and Class Diagrams 1 of 2
First of two parts that discusses a set of UML diagrams
Scenario-Based Modeling and Use-Cases
Use-Cases - Overview
A concise description of what a use case is, how you create one and what it describes.
Many useful resources and pointers.
Use-Cases - When are we finished?
A set of useful guidelines from Pete McBreem on comp.object.
Use-Cases - A survey of approaches
A detailed paper that discusses different approaches for developing use-cases.
Use-Cases - A comprehensive example
A comprehensive example of use-case realization of design documents. Recommended.
Use-Cases - Pros and cons
A discussion by Donald Firesmith of the pros and cons of use-cases. See also an editorial - Are use-cases the death of good UI design?
Use-Cases - Top 10 mistakes
A three-part tutorial (pointers to first 2 parts are included) that concludes with this article.
Constantine and Lockwood, Ltd.
Many useful papers of use-case methods and related subjects.
Functional Requirements and Use-Cases
A brief overview by Bredermeyer Consulting.
Unified Scenario-Based Design, Part 1: Methodological principles
"Unified Scenario-Based Design is an end-to-end methodology that addresses how to provide crisp requirements to system architects, designers, and developers?"
pdf: System Architecture: the Context for Scenario-based Model Synthesis
From the paper: "Our aim is to facilitate model construction. Scenarios provide simple, intuitive, example based descriptions of the behaviour of component instances in the context of a simplified architecture instance.
pdf: Modeling and Composing Scenario-Based Requirements with Aspects
This paper focuses on "on scenario-based requirements and show how to compose aspectual and non-aspectual scenarios so that they can be simulated as a whole."
pdf: Scenario-based design
A powerpoint presentation with examples.
pdf: Reusing Scenario Based Approaches in Requirement Engineering Methods
"In this paper we present a unified approach to using scenarios to support both the design, analysis and maintenance of software architectures, and examples from large-scale software development projects where we have applied the approach."
pdf: Scenario-Based Generation and Evaluation of Software Architectures
"This paper discusses an approach for generating architectures that can be evaluated with respect to functional and non-functional requirements.. It centers around a rich feature-solution graph which captures the evolving knowledge about requirements and solution fragments."
pdf: Toward a Discipline of Scenario-based Architectural Engineering
"The view developed in this paper is that scenario based approaches should be looked upon as reusable components."
Video: Creating UML Use Case Diagrams
Discusses the basics while introducing a drawing tool, called UModel (5:38)
"The primary purpose of DataModel.Org is to provide a means of communicating the needs and experiences of Data Modelers, Database Designers and Data Architects."
Data Modeling Resources
A hotlist containing information sources and tools.
Data Modeling Resource Center
A broad array of links to various DM resources is provided at this site.
A worthwhile introduction at Wikipedia.
Data Modeling 101
An in-depth introduction.
Data Modeling: Finding the Perfect Fit
An older, but still useful intro to data modeling.
A useful introduction with many examples.
How to read a data model
A simple tutorial.
Data Modeling Using Entity-Relationship Model
A useful tutorial for using the ERD.
"The Role of Data Modeling"
An in-depth paper discusses Why Model Data? What is a "Model"? What is Data Modeling? What are the benefits of Data Modeling? Where else to go from here?
A detailed paper that discusses most important aspects of data modeling and ERDs.
The Role of Data Modeling
A worthwhile paper that discusses basic concepts
Data Modeling Whitepapers
A collection of data modeling papers written by staff and associates of Rational Corp.
Data Modeling and UML
Scott Ambler discusses data modeling within the context of UML and agile methods.
A UML Profile for Data Modeling
This page summarizes a data modeling profile for UML Class Diagrams.
Physical Data Models (PDMs)
"Physical data modeling is conceptually similar to design class modeling, the goal being to design the internal schema of a database, depicting the data tables, the data columns of those tables, and the relationships between the tables."
Advanced Data Model Patterns
A description of advanced patterns presented in David Hay's book, Data Model Patterns (see below).
Video: Data Modeling and Conceptual Sketching in the Design Process
"This talk delves into 5 interrelated keys that Microsoft teams focus on to elevate the impact of "design research". Namely how to: team insightfully as project teams; observe our users holistically; broker user and design patterns proudly; distill fresh insights collectively; and envision design essence vividly." (1:25:00)
Video: ER Model to Relational Model Mapping
ER modeling and its relationship to DBMS.
Flow-Oriented Modeling - Structured Analysis (SA)
A reasonably comprehensive introduction at Wikipedia.
Another reasonably comprehensive description
SA Contributors and Work Products
An interesting diagram as well as general description.
Structured Analysis Wiki
The continuing evolution of Ed Yourdon's seminal text, Modern Structured Analysis.
Structured Analysis Links
List of sites that address Structured Analysis.
Introduction to Structured Methods
A useful white paper that emphasizes the Hatley-Pirbhai method.
Combining OOA and SA/SD
This downloadable paper discusses a process for combining elements of OOA with SA/SD.
Standards for SA Representations
Standards for all major SA diagrams and representation tools
Systems Analysis Methodology Sliding Backwards
A commentary on the state of system analysis.
Video: Process Modelling - DFD
Presents DFDs and their use in functional decomposition. (56:28)
Book: Just Enough Structured Analysis
A e-Book written by one of the fathers of SA, Ed Yourdon. Downloadable after free registration.
Object-Oriented Analysis Modeling
Before OOA can be conducted, it's a good idea to assess the application domain and identify objects that may be candidates for reuse across many applications within the domain.
Domain Analysis Tutorial
A worthwhile tutorial on domain analysis
A discussion of domain analysis (derived from de Champeaux et al).
Domain analysis slide presentation
A brief slide presentation on domain analysis.
OOA methods and concepts
The Object-Oriented Page
All things object-oriented. Introductory concepts to advanced topics.
OOA Resources - 1
A list of OOA hotlinks that addresses a variety of different OOA methods
OOA Resources - 2
CETUS links is the Web's most comprehensive collection of hotlinks for OOA/OOD.
Object-Oriented Modeling Resources
Links to a short list of OO modeling methods and literature.
Object-Oriented Modeling: A Roadmap
"This paper presents a list of requirements for an ideal object-oriented modeling language and compares it with the achievements of UML and other object-oriented modeling approaches."
Fundamentals of Object Oriented Modelling
A worthwhile introduction of basic techniques and terms.
Reasons for Object Oriented Business Modelling
A brief discussion of OO modeling in a business context.
Basic OOA/OOD Concepts
Short form explanations of important concepts.
A brief paper developed by the SEI that discusses OOA
"CRC Modeling Bridging the Communication Gap Between Developers and Users"
A downloadable paper by Scott Ambler
Introduction to Behavioral Modeling
A brief but useful discussion of concepts, terminology and diagrams.
Behavioral Modeling Guide
A reasonably detailed discussion of behavioral modeling.
Three Kinds of Behavior Model
Discusses the behavioral context of OO modeling.
The generic behavioral modeling diagram at Wikipedia.
State Diagram in UML
Basic concepts and a discussion of diagrammatic elements.
UML behavioral modeling
A brief Wiki introduction with links.
UML Collaboration Diagram, State Chart, Activity Diagram
An overview of these diagrammatic types.
State Transition Diagram
A description of this generic behavioral modeling notation.
pdf: Behavioral Modeling in an Object Modeling Context
A slide presentation of statecharts and activity diagrams.
Weaving With Statecharts
This paper shows show "how to model and interweave the different sub-models that represent different concerns using UML's Statecharts and Class Diagrams.
A Novel Method for Behavior Modeling in Uncertain Information Systems
This paper addresses situation in which behavioral requirements are "fuzzy."
pdf: Statecharts: A Visual Formalism for Complex Systems
David Harel's seminal paper on an alternative behavioral modeling format.
ppt: Software models and analysis Analysis pattern of Behavioral Modeling
A slide presentation that addresses behavioral model and the patterns that can be applied when creating behavioral models.
Video: Working with State Diagrams
A lecture. Heavy accent requires concentration. (45:56)
Dozens of books have been published on structured analysis. All cover the subject adequately, but only a few do a truly excellent job. Among them:
Structured Analysis and System Specification
Modern Systems Analysis and Design
Systems Analysis and Design
The Information System Consultant's Handbook
A Professional's Guide to Systems Analysis
Modern Structured Analysis remains among the most comprehensive coverage published to date.
Book: Just Enough Structured Analysis
Many variations on structured analysis have evolved over the last few decades. Among the more interesting:
Structured Systems Analysis and Design MethodologySSADM for the Advanced Practitioner describes SSADM, a variation on structured analysis that is widely used in the United Kingdom and Europe.
A number of books present detailed tutorials for creating industry-quality data models:
Data Modeling for Everyone
Data Modeling Essentials
Data Modeling Handbook
Data Modeling Patterns presents typical data model patterns that are encountered in many different businesses.
Behavior Models: Specifying Users Expectations presents a detailed treatment of behavioral modeling.
Use cases can serve as the foundation for all requirements modeling approaches. The following books provide worthwhile guidance in the creation and use of this important requirements elicitation and representation mechanism:
Use Case Driven Object Modeling with UML
Succeeding with Use Cases: Working Smart to Deliver Quality
Scenarios, Stories, Use Cases
Use Case Modeling
Writing Effective Use Cases
Advanced Use-Case Modeling: Software Systems
Use Cases: Requirements in Context
Use Case Driven Object Modeling with UML
Applying Use Cases
UML has become the modeling notation of choice for most applications and domains. Some of the books that cover UML in depth are:
UML and the Unified Process
Teach Yourself UML in 24 Hours
The UML User Guide
The Unified Modeling Language Reference Manual
The underlying analysis and design methods that support the Unified Process are discussed in:
Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and the Unified Process
System Analysis and Design: An Object-Oriented Approach with UML
Use-Case Driven Object Modeling with UML
Executable UML: A Foundation for Model Driven Architecture discusses the overall semantics of UML, the models that can be created, and a way to consider UML as an executable language
Executable UML: How to Build Class Models provides useful guidelines and detailed suggestions for creating effective analysis and design classes.
The UML Profile for Framework Architectures presents a useful discussion of architecture and the methods that can be used to derive it.
Behavioral modeling presents an important dynamic view of system behavior. The following books present thorough discussion of state diagrams and other behavioral representations:
Modeling Software with Finite State Machines: A Practical Approach
Abstract State Machines: A Method for High-Level System Design and Analysis