Analysis Modeling
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
Scenario-Based Modeling
Data Modeling
Flow-Oriented Modeling (Structured Analysis)
Object-Oriented Modeling
Behavioral Modeling
Books
Requirements Analysis - General
Requirements Templates
A set of requirements templates and checklists can be downloaded from this site.
A comprehensive requirement specification template (with detailed explanatory text) can be found here.
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.
Requirements Patterns
This paperdiscusses "how event/use case modelling 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 indepth tutorial (with slides) that discusses the requirements analysis process with special emphasis on third party developed systems in an IT environment. Recommended.
.
UML-Based Modeling
UML Resources - 1
Hundreds of links to everything UML. Highly recommended.
UML Resources - 2
Many links with specific emphasis on UML tools.
UML Concepts and Tutorial
An extensive tutorial and listing of of UML resources including tools, papers, examples and tutorials.
UML Resource Center
Sponsored by Rational Software Corp., this site contains a wide variety of information about the Unified Modeling Langaue and its application.
Software Development Magazine Design Center
Many useful articles on UML.
Tutorial - UML Notation
Introduction to basic OOA concepts and UML notation
Tutorial - OOA using UML
Brief Tutorial introducing basic concepts and notation. Also see another OOA/UML tutorial.
Tutorial - OOA/OOD with UML
Deatiled tutorial by the Rational Corp.
OOA/OOD with UML - 1
A detailed tutorial by the Ratio Group.
OOA/OOD with UML - 2
A discussion of many advanced topics by Conrad Bock.
Analysis model example using UML
A student project that is worth a look.
UML Bibliography
List of books that address OOA with UML (and related subjects).
Scenario-Based Modeling and Use-Cases
Use-Cases - History, application and problems
An excellent paper by Ed Berard that discusses history, application and potential problems with use-cases. Recommended.
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.
Use-Case Zone
Many useful resources and pointers.
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.
Structuring Use-Cases with Goals
An worthwhile paper by Alistair Cockburn.
Data Modeling
Datamodel.org
Focuses on data modeling and DBMS design issues.
Data Modeling Resources
A hotlist containing information sources and tools.
"The Role of Data Modeling"
An indepth 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?
Data Modeling
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.
Data Modeling Bibliography
Useful listing of books that address data modeling
Flow-Oriented Modeling - Structured Analysis (SA)
Introduction to Structured Methods
A useful white paper that emphasizes the Hatley-Pirbhai method.
Just Enough Structured Analysis
Ed Yourdon, one of the originator's of structured analysis, has Web published a book length treatment. Highly recommended for those interested in SA.
Structured Analysis Tutorial
A brief tutorial that can serve as a worthwhile introduction.
SA/SD Bibliography
A useful print bibliography of books dedicated to SA/SD.
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
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
Domain Analysis
A discussion of domain analysis (derived from de Champeaux et al).
Domain analysis slide presentation
A brief slide presentation on domain analysis.
The following resources focus on 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.
Annotated Bibliography for OOA
Contains over 200 print references.
Basic OOA/OOD Concepts
Short form explanations of important concepts.
OOA Overview
A brief paper developed by the SEI that discusses OOA
OOA with UML Lecture Notes
A useful collection of lecture notes by J.W. Schmidt.
OOA/OOD articles
Applying OOA/OOD in a Java environment
HOORA
HOORA is an analysis method that melds the best features of OOA and UML. Originally developed by the European Space agency.
An OOA Example
A complete analysis of an air traffic control system.
Class-responsibility-collaborator (CRC) modeling is a simple yet powerful approach for object-oriented analysis.
CRC Tutorial
A brief tutorial on the use of CRC cards for OOA is presented.
"CRC Modeling Bridging the Communication Gap Between Developers and Users"
A downloadable paper by Scott Ambler
Behavioral Modeling
Petri-Nets for Behavioral Modeling
Petri nets can be used for behavioral models of real-time systems. A comprehensive collection of information about Petri-Nets can be obtained here.
Behavioral Modeling Tutorial (pdf)
An excellent (downloadable) tutorial on behavioral modeling.
Books 
Dozens of books have been published on structured analysis. All cover the subject adequately, but only a few do a truly excellent job. DeMarco and Plauger (Structured Analysis and System Specification, Pearson, 1985) remains a good introduction to the basic notation. Books by Hoffer et al. (Modern Systems Analysis and Design, Addison-Wesley, 3rd edition., 2001), Kendall and Kendall (Systems Analysis and Design, 5th edition, Prentice-Hall, 2002), Davis and Yen (The Information System Consultant's Handbook: Systems Analysis and Design, CRC Press, 1998), and Modell (A Professional's Guide to Systems Analysis, 2nd ed., McGraw-Hill, 1996) are worthwhile references. Yourdon's book (Modern Structured Analysis, Yourdon-Press, 1989) on the subject remains among the most comprehensive coverage published to date.
Many variations on structured analysis have evolved over the last decade. Cutts (Structured Systems Analysis and Design Methodology, Van Nostrand-Reinhold, 1990) and Hares (SSADM for the Advanced Practitioner, Wiley, 1990) describe SSADM, a variation on structured analysis that is widely used in the United Kingdom and Europe.
Allen (Data Modeling for Everyone, Wrox Press, 2002), Simpson and Witt (Data Modeling Essentials, second edition, Coriolis Group, 2000) Reingruber and Gregory (Data Modeling Handbook, Wiley, 1995) present detailed tutorials for creating industry-quality data models. An interesting book by Hay (Data Modeling Patterns, Dorset House, 1995) presents typical data model patterns that are encountered in many different businesses. A detailed treatment of behavioral modeling can be found in Kowal (Behavior Models: Specifying Users Expectations, Prentice-Hall, 1992).
Use-cases form the foundation of object-oriented analysis, regardless of the OOA method that is chosen. Books by Bittner and Spence (Use Case Modeling, Addison-Wesley, 2002), Cockburn (Writing Effective Use Cases, Addison-Wesley, 2002), Armour and Miller (Advanced Use-Case Modeling: Software Systems, Addison-Wesley, 2000), Kulak and his colleagues (Use Cases: Requirements in Context, Addison-Wesley, 2000), Rosenberg and Scott (Use Case Driven Object Modeling with UML, Practical Approach, Addison-Wesley, 1999), and Schneider and Winters (Applying Use Cases, Addison-Addison-Wesley, 1998) provide worthwhile guidance in the creation and use of this important requirements elicitation and representation mechanism.
Worthwhile discussions of UML have been written by Arlow and Neustadt (UML and the Unified Process, Addison-Wesley, 2002), Schmuller (Teach Yourself UML in 24 Hours, second edition, SAMS Publishing, 2002), Fowler and Scott (UML Distilled, second edition, Addison-Wesley, 1999), Booch and his colleagues (The UML User Guide, Addison-Wesley, 1998) and Rumbaugh and his colleagues (The Unified Modeling Language Reference Manual, Addison-Wesley, 1998).
The underlying analysis and design methods that support the UP are discussed by Larman (Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and the Unified Process, second edition, Prentice-Hall, 2001), Dennis and his colleagues (System Analysis and Design: An Object-Oriented Approach with UML, Wiley, 2001), and Rosenberg and Scott (Use-Case Driven Object Modeling with UML, Addison-Wesley, 1999). Balcer and Mellor (Executable UML: A Foundation for Model Driven Architecture, Addison-Wesley, 2002) discuss the overall semantics of UML, the models that can be created, and a way to consider UML as an executable language. Starr (Executable UML: How to Build Class Models, Prentice-Hall, 2001) provides useful guidelines and detailed suggestions for creating effective analysis and design classes. A useful discussion of architecture and the methods that can be used to derive it is presented by Fontoura and his colleagues (The UML Profile for Framework Architectures, Addison-Wesley, 2001).
|