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 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 be shown with 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.

A Flow Chart uses different named box styles connected by arrowed lines to show how an algorithm or process works.

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 shows system architecture and task interactions in a multi-tasking environment. The UML Deployment diagram shows the configuration of run-time processing elements.


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.


The Requirement window defines functional requirements of a system or product. 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.

Screen Models
Screen Model

Draw screen prototypes for Desktop applications, Mobile apps or websites. Connect screens, dialogs and popovers with buttons and menu commands. Add scripts for dynamic behavior.

Click Browse to navigate screens and demonstrate dynamic behavior.

Code, Browse & Test

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 project. Use the Test window to view or edit test designs and procedures linked to diagrams or requirements.

PERT Chart
PERT Charts

Use PERT charts to organize and schedule project activities and the people assigned to complete them. Coordinate personnel assignments across multiple projects with respect for holidays, weekends and vacations.


Popular web browsers like Safari, Chrome, Firefox 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.


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.


Dynamic tables, charts and graphs present project statistics or simulation results.

Data Files
Data Files

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
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
Team Requirements

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

MacA&D Box WinA&D Box

Modeling Tools

MacA&D and WinA&D provide a complete solution for system models and simulation, requirements management, software design, screen prototypes, code generation and flexible reports. They present an integrated modeling environment designed for team development, distributed projects, multiple methods and large systems.

Learn more about UML 2.2, BPMN 2.0 and Structured Analysis & Design.