Software Models

Class Models Class Model - Class diagrams are fundamental to object-oriented analysis and design. These diagrams show the static structure of object classes and important relationships between them. The Unified Modeling Language (UML) is the industry standard notation for class diagrams. Data Models Data Model - An entity-relation diagram, called an ERD illustrates the data structure of an information system. A database can be designed using logical and physical data models that highlight primary and foreign keys. Martin's Information Engineering notation is typically used for data models.
Process Model - Process models, also called data flow diagrams (DFDs) start with a top level context diagram for a system. The system is represented as a named process with data flows in and out to the external world. The most popular notations are Yourdon/DeMarco for technical software and Gane & Sarson for business systems.

The system process explodes to a child diagram where its split into smaller processes connected by flows and stores to illustrate data flow and transformation. Flows in and out of the system process must balance with flows in and out of its child diagram. This diagram leveling process continues until primitive processes yield a short textual description.

State Models State Model - The essential behavior of systems can often be expressed with a state model. State diagrams show events, states and actions in various notations including Mealy, Moore and UML/Harel.

States and events can also be shown in various kinds of tables including the Hatley/Pirbhai Process Activation Table, Decision Table, State Transition Matrix, State Transition Table, Shlaer/Mellor State Transition Table and Event List.

Causal Loop diagrams show causal affects between system variables. Apply this model to any dynamic system to enable parameterization and time simulations.

Structure Models Structure Model - Structure Chart diagrams illustrate the organization of procedural programs. Each thread of execution begins with a root module at the top of an inverted tree of called modules.

When programs become large, functional branches of a tree get pushed down to a child diagram creating a linked stack of diagrams that highlight the program's structure.

Object Models Object Model - An object model shows object instances, their operations and messages between objects to document the mechanisms within an object-oriented design. Each diagram illustrates part of the design with a collection of communicating objects.

Popular notations include UML Sequence diagrams, UML Collaboration, Booch, Fusion and Shlaer/Mellor.

Task Models Task Model - The Task window is used to create diagrams showing system architecture and task interactions in a multi-tasking environment. The UML Deployment diagram is a type of task diagram that shows the configuration of run-time processing elements. Specifications Specification - The Specification window is used to create textual specifications of design elements and diagram objects. Click to the specification editor for a selected diagram object.
Code - The Code or Browse window is used to view or edit code. Click to associated source code for a selected diagram object. Use the integrated Browse window to navigate through classes, attributes and operations in an object-oriented development project. Test - The Test window is used to view or edit test designs and procedures. Click to the test editor for a selected diagram object or requirement entry. Test files can be edited with the built-in test editor or with a configured custom editor.
HTML - Popular web browsers like Netscape or Internet Explorer can be used to view HTML files linked to selected diagram objects. Scriptable HTML reports make your diagrams, specifications, requirements, dictionary and code or test files easily accessible to any web browser. Data Dictionary Dictionary - The Dictionary window is used to create textual specifications of design elements and diagram objects. Designers can work with dictionary information directly from the Dictionary window or indirectly by editing diagrams.
Requirements Requirements - The Requirement window is used to define the functional requirements of a system. Data is entered through a dialog controlled by a user-defined template of fields. The textual description of each use case is also defined here. Requirement entries can be linked to models, specifications or code files with two-way traceability. CRC Cards CRC Models - CRC cards are an agile technique for modeling each class in an object-oriented system. Each card identifies the class name, its attributes, responsibilities (operations) and collaborations with other classes. Design scenarios can be identified and simulated.
Charts Dynamic tables, charts and graphs present project statistics or simulation results.

Data files are used to drive system models during simulation or store generated results. Data items of type Variable, Array or List can be imported or exported to other applications like spreadsheets and databases.

Team Data Dictionary The Team Dictionary allows multi-user access to dictionary information. Use the Team window for viewing active users and change records.

Team Requirements The Team Requirements document allows multi-user access to requirement information.

Modeling Tools

MacA&D Box WinA&D Box MacA&D and WinA&D are integrated modeling tools designed for team development, distributed projects, multiple methods and large systems.

Get a complete solution for system modeling and simulation, requirements management, software design, code generation and flexible reports.


QuickUML Box QuickUML implements a core set of models from the Unified Modeling Language notation. This highly integrated UML design tool is easy to learn and well suited for Agile methods. QuickCRC Box QuickCRC implements responsibility-driven design with CRC cards.

Create CRC cards and design scenarios for an object-oriented software design project.

Goto Excel Software Home Page