Sie sind auf Seite 1von 444

User’s Manual

SIMPROCESS
Release 2.2.1
Copyright © 2000 CACI Products Company
August 2000

All rights reserved. No part of this publication may be reproduced by any


means without written permission from CACI.

The information in document is believed to be accurate in all respects.


However, CACI cannot assume the responsibility for any consequences
resulting from the use thereof. The information contained herein is subject
to change. Revisions to this publication or new editions of it may be issued
to incorporate such change.

SIMPROCESS is a registered trademark of CACI Products Company.


Table of Contents

Table of Contents
Organization of the SIMPROCESS Documentation Set .............. ix

Part A
SIMPROCESS Functions and Features .................................................... 1

CHAPTER 1
Process Modeling and Analysis with SIMPROCESS................... 3
What is Process Modeling?............................................................. 4
Why Dynamic Modeling?............................................................... 6
What is SIMPROCESS? ................................................................. 7
How Do You Use SIMPROCESS? ................................................ 8
SIMPROCESS Terminology .......................................................... 9
SIMPROCESS Menus .................................................................. 12

CHAPTER 2
SIMPROCESS Basics .................................................................. 49
SIMPROCESS Model Components ............................................. 50
Using the Palette Bar to Create Activities .................................... 55
Generate Activity .......................................................................... 61
Delay Activity............................................................................... 65
Dispose Activity ........................................................................... 68
Defining an Entity......................................................................... 69
Defining Resources....................................................................... 73
Defining a Process ........................................................................ 74
Simulation Setup........................................................................... 77
Running a Simulation ................................................................... 81
Standard Output Report ................................................................ 83

SIMPROCESS User’s Manual i


Table of Contents

CHAPTER 3
Statistical Modeling Constructs ................................................... 85
Why use a statistical approach? .................................................... 86
Random Number Generation ........................................................ 87
Standard Distributions .................................................................. 88
User Defined Distributions ........................................................... 90
Run Settings .................................................................................. 94

CHAPTER 4
Activity Modeling Constructs....................................................... 97
Entity Related Activities ............................................................... 99
Assemble Activity....................................................................... 100
Batch Activity ............................................................................. 103
Unbatch Activity......................................................................... 105
Gate Activity............................................................................... 106
Synchronize Activity .................................................................. 109
Entity Control Activities ............................................................. 110
Assign Activity ........................................................................... 111
Transform Activity ..................................................................... 113
Branch Activity........................................................................... 116
Branch Connectors...................................................................... 119
Merge Activity ............................................................................ 123
Copy Activity.............................................................................. 124
Split and Join Activities .............................................................. 125
Defining a Split Activity............................................................. 127
Defining a Join Activity.............................................................. 132

CHAPTER 5
Resource Modeling Constructs .................................................. 135
Resources and Simulation........................................................... 137
Defining Resources..................................................................... 138
Defining Resource Requirements for Activities ......................... 142

ii SIMPROCESS User’s Manual


Table of Contents

Explicitly Getting and Freeing Resources .................................. 146


Replenishing Consumable Resources ......................................... 153

CHAPTER 6
Graphical Modeling Constructs................................................. 157
Background Text......................................................................... 158
Background Graphics ................................................................. 160
Importing Bitmap Graphics ........................................................ 161

CHAPTER 7
Activity-Based Costing ............................................................... 163
Introduction to Acitivity-Based Costing..................................... 164
Why ABC?.................................................................................. 165
What is ABC? ............................................................................. 166
How Does SIMPROCESS Implement ABC?............................. 167
Benefits of ABC with SIMPROCESS ........................................ 168
How to Use ABC in SIMPROCESS........................................... 169
Setting Up Cost Periods .............................................................. 170
Setting Up Resource Costs ......................................................... 172
Cost Calculations ........................................................................ 175
Displaying ABC Reports ............................................................ 177

CHAPTER 8
Output Reports............................................................................ 181
Standard Output Report .............................................................. 182
Custom Statistics......................................................................... 185
Simulation Results File ............................................................... 195

SIMPROCESS User’s Manual iii


Table of Contents

Part B
Advanced SIMPROCESS Functions and Features.............................. 197

CHAPTER 9
Reusable Templates and Libraries............................................. 199
Library Concepts......................................................................... 200
Defining and Editing Templates ................................................. 202
Editing Templates ....................................................................... 203
Saving a Resource for Reuse ...................................................... 208
Importing Bitmap Graphics For Use As Palette Icons ............... 212

CHAPTER 10
Customizing a Model with Attributes and Expressions ............ 213
Introduction to Attributes and Expressions ................................ 215
Using Attributes in SIMPROCESS ............................................ 218
User Defined Attributes .............................................................. 220
Assign Activity ........................................................................... 230
Variable Resource Usage............................................................ 232
Writing Expressions.................................................................... 234
Evaluate (Evl) Function .............................................................. 240
Expression Activation Events ..................................................... 241
Attribute Value Initialization ...................................................... 246
Example: Batching Entities Based on Weight ............................ 247
User-Defined Functions .............................................................. 257
Dynamic Labels .......................................................................... 258
Summary..................................................................................... 262

CHAPTER 11
More Advanced Model Building................................................ 263
Defining a More Complex Generate Activity............................. 264
Downtime Schedule of Resources .............................................. 280

iv SIMPROCESS User’s Manual


Table of Contents

Event Logs .................................................................................. 291

Part C
Advanced SIMPROCESS Tools............................................................. 299

CHAPTER 12
Advanced Data Analysis............................................................. 301
An Introduction to Data Analysis and Modeling........................ 303
Why Statistical Simulation
Experiments? .............................................................................. 306
SIMPROCESS Statistical Distributions ..................................... 308

CHAPTER 13
SIMPROCESS Database ............................................................311
Commiting Results To The Database ......................................... 312
System, Design, And Scenario ................................................... 313
Database Table Relationships ..................................................... 316
Database Queries ........................................................................ 317
Forms (Graphs) And Reports...................................................... 319
Launch Database Application ..................................................... 321

CHAPTER 14
Graphics Editor Tool .................................................................. 323
Running SIMDRAW .................................................................. 324
Using the Image Editor ............................................................... 327

SIMPROCESS User’s Manual v


Table of Contents

CHAPTER 15
Experiment Manager ................................................................. 339
Defining Experiments ................................................................. 340
Running Experiments ................................................................. 348

Appendices ............................................................................................... 355

Appendix A
Activity Summary Table ............................................................ 357

Appendix B
SIMPROCESS File Structure .................................................. 361

Appendix C
Statistical Distributions ............................................................. 369
Uniform Distribution .................................................................. 370
Normal Distribution .................................................................... 371
Triangular Distribution ............................................................... 372
Exponential Distribution............................................................. 373
Gamma Distribution ................................................................... 374
Beta Distribution......................................................................... 375
Erlang Distribution ..................................................................... 376
Weibull Distribution ................................................................... 377
Lognormal Distribution .............................................................. 378
Poisson Distribution.................................................................... 379
Hyper Exponential ...................................................................... 380
Uniform Integer .......................................................................... 381
Geometric.................................................................................... 382
Hyperbolic .................................................................................. 383

vi SIMPROCESS User’s Manual


Table of Contents

Appendix D
Statistical Tools Glossary .......................................................... 385

Appendix E
SIMPROCESS System Methods and Examples ...................... 393
System Attributes........................................................................ 393
SIMPROCESS System Methods ................................................ 399
System Method Examples .......................................................... 403
SIMPROCESS Color Table........................................................ 410

Appendix F
Simulation Results File............................................................. 411
Format of the Simulation Results File ........................................ 412

Appendix G
External Event Files.................................................................. 419
General Rules for Event Files ..................................................... 419
Event Record Description ........................................................... 421
Examples..................................................................................... 424

Index ......................................................................................................... 425

SIMPROCESS User’s Manual vii


Table of Contents

viii SIMPROCESS User’s Manual


Organization of the
SIMPROCESS Documentation
Set

The SIMPROCESS documentation set consists of two


manuals:

• Getting Started With SIMPROCESS


• SIMPROCESS User’s Manual

Getting Started
The Getting Started With SIMPROCESS manual is a must for
first time SIMPROCESS users. This manual can also be used
for evaluation purposes. Chapter 1 provides an overview of
Process Modeling and Analysis and the SIMPROCESS
product. Chapter 2 provides system requirements and
installation instructions. Chapters 3 and 4 of the Getting
Started With SIMPROCESS manual provides a tutorial and
Chapter 5 provides a description of the demonstration and
reference models.

SIMPROCESS User’s Manual ix


Organization of the SIMPROCESS Documentation Set

User’s Manual
The User’s Manual is distributed in electronic format with
SIMPROCESS. It can be opened directly from the SIMPROCESS
Installation CD, or from the Help/On-line Documentation menubar
option.

The User’s Manual is divided into three parts. Part A is an excellent


reference for beginners and casual users. This part contains a detailed
documentation of the basic and intermediate functions of
SIMPROCESS. Chapters 1 and 2 provide SIMPROCESS
terminology and basics. Chapter 3 provides a detailed description of
SIMPROCESS Statistical Constructs and their use. Chapter 4
describes in detail how the SIMPROCESS Activity Modeling blocks
are used. Chapter 5 describes the use of Resources. Graphical
Modeling Constructs are covered in Chapter 6. Chapter 7 is dedicated
to Activity-based Costing. Chapter 8 covers the Output Reports for
analysis.

Part B is a reference intended for advanced users of SIMPROCESS.


This part contains a detailed documentation of the programming and
library management functions in SIMPROCESS Professional.
Chapter 9 provides documentation of the Reusable Templates and
Library Management. Chapter 10 covers the Advanced
SIMPROCESS constructs such as attributes, expressions, and
timestamps. Chapter 11 wraps-up the advanced features of
SIMPROCESS with descriptions of the complex features of the
Generate activity and Downtime Schedules for Resources.

Part C describes the integrated statistical and drawing tools included


with SIMPROCESS Professional. Chapter 12 of this manual provides
an introduction to data analysis and Stat::Fit. Chapter 13 covers using
the SIMPROCESS Database, while Chapter 14 discusses using the
graphics editor tool, SimDraw. The Experiment Manager is described
in Chapter 15.

x SIMPROCESS User’s Manual


Part A
SIMPROCESS Functions and Features

The chapters in Part A describe the basic functions and features of


SIMPROCESS.

SIMPROCESS User’s Manual 1


2 SIMPROCESS User’s Manual


CHAPTER 1

Process Modeling and Analysis


with SIMPROCESS

SIMPROCESS User’s Manual 3


CHAPTER 1–Process Modeling and Analysis with SIMPROCESS

What is Process Modeling?


The goal of Process Modeling is to create a simplified but useful model
of a business enterprise. The enterprise can be a small work group or
development team, a particular division, a related set of departments,
or even an entire company. The model allows an analyst to study the
processes in a business in order to:

• Determine any bottlenecks or wasted effort


• Devise revisions to the process to correct performance
problems
• Select process designs that give the best results
• Provide cost justification to planned alternatives
• Establish performance targets in the new process
implementation

Many types of tools and techniques are available for Process


Modeling. Frequently, a simple diagram or flowchart can expose the
obvious redundancies, unnecessary work, and inefficiencies in a given
process. Tools which provide simple diagramming of a process are
called static modeling tools. However, to expose less obvious
bottlenecks and costs intrinsic to the process requires information
about the resources employed in the process, measurements of the
processing capacity of the resources, and some measure of the
expected workflow through the process.

Unfortunately, many process modeling tools today do not allow a


quantified analysis of the process under study. And those that do, do
not take into account the:

• Time varying nature of many processes


• Non-linear interactions among elements of a process
• Randomness in the behavior of most real processes
• Unexpected events which can occur in the business
environment.

The bottom line is that most processes are not well characterized by
deterministic, mathematical models. For a quantified analysis of the
time varying business process, you need a dynamic business process

4 SIMPROCESS User’s Manual


What is Process Modeling?

modeling tool, which can simulate the behavior of the process as it


responds to the events occurring in the business environment.

SIMPROCESS User’s Manual 5


CHAPTER 1–Process Modeling and Analysis with SIMPROCESS

Why Dynamic Modeling?


In a dynamic model, a computer simulates the flow of materials and
information through the process. The dynamic model accounts for the
random variations in how work is done and the way materials (and
information) flow through the real world. Simulation offers several
advantages over a simple pictorial abstraction of a business process.
SIMPROCESS employs discrete event simulation to capture the time
varying nature of the process under study.

SIMPROCESS advantages include:


• First, the analyst can correlate the data produced by the model
with measurements taken from the real processes to gain a
good degree of certainty that the model has adequately
captured the essential features of the real process.
• Second, the model will generate quantified process
measurements such as: excess capacity or bottlenecks, the
time it takes work items to flow through the process, and the
percentage of time in value-adding processes versus non-
value-adding processes.
• Third, the model allows the analyst to estimate, in quantified
terms, the effects of reengineering the process.

6 SIMPROCESS User’s Manual


What is SIMPROCESS?

What is SIMPROCESS?
SIMPROCESS is a hierarchical and integrated process simulation tool
that radically improves your productivity for process modeling and
analysis. SIMPROCESS is designed for BPR and IT professionals of
industrial and service enterprises who need to reduce the time and risk
it takes to service customers, fulfill demand, and develop new
products.

Process Event-driven Activity-based


Mapping Simulation Costing

SIMPROCESS

Unlike other tools, SIMPROCESS integrates process mapping,


hierarchical event-driven simulation, and activity-based costing
(ABC) into a single tool. The architecture of SIMPROCESS provides
an integrating framework for ABC. The building blocks of
SIMPROCESS are processes, resources, and entities (flow objects),
bridges, ABC and dynamic process analysis. ABC embodies the
concept that a business is a series of inter-related processes, and that
these processes consist of activities that convert inputs to outputs. The
modeling approach in SIMPROCESS manifests this concept, and
builds on it by organizing and analyzing cost information on an activity
basis.

SIMPROCESS User’s Manual 7


CHAPTER 1–Process Modeling and Analysis with SIMPROCESS

How Do You Use SIMPROCESS?


SIMPROCESS allows you, as a consultant or analyst, to create an
abstract model of a process under study. With it, you produce a
computer model of a business process from which documentation
(diagrams and descriptions) can be printed. While the functionality of
most business process modeling tools ends at that point, the value of
SIMPROCESS has just begun.

Because SIMPROCESS is a dynamic modeling tool, it also allows you


to simulate the flow of entities through the defined process. Entities
could be:

• proposals
• orders
• invoices
• customers
• work-in-process
• patients

In fact, many things that a process receives, acts upon, or produces


should be included in the definition of the business process. Items flow
from one process step to the next and at each step some task is
performed. The Resources, such as people, machines, or information
required to complete the tasks are also included in the business model.
SIMPROCESS employs simple elements to construct a business
model: Processes, Resources, and Entities.

During a simulation, SIMPROCESS generates valuable information


about the Activities, Entities, and Resources in the model. From this
data, you can make sure that the process has been accurately captured.
Next, you can use the generated statistics and reports to determine
where the process needs to be improved. Finally, SIMPROCESS
allows you to try out proposed alternatives and different management
policies. To sum it up, SIMPROCESS helps a team decide which
changes to the structure and operational policies in a business process
will provide the most benefits.

8 SIMPROCESS User’s Manual


SIMPROCESS Terminology

SIMPROCESS Terminology
This manual uses the following words and meanings in its description
of SIMPROCESS.

Activities
An Activity is a basic step in a model where an operation is performed
on a entity, possibly using Resources. Examples of activities are
Generate, Delay, and Dispose. An activity may or may not involve
passage of time.

Attributes
Attributes are system and user-defined variables of model elements
whose value can change during the course of a simulation run.
Attributes may be used to:

• Alter the behavior of a process by changing the value of an


attribute during a simulation. They can also be used to:
• Communicate information (such as attribute values)
between two processes in a model. Or,
• Store data collected during a simulation run.

Connectors
Connectors link Activities and Processes together and are paths used
by entities to flow through the model.

Cycle time
A Entity’s cycle time is the sum of the processing times and delays
it encounters as it travels across the model.

SIMPROCESS User’s Manual 9


CHAPTER 1–Process Modeling and Analysis with SIMPROCESS

Entities
An entity represents people, goods or information. Most are produced
as a result of a process or activity. Prior to introducing instances of an
entity into the model, an entity type must be defined from the menu.

Most frequently, instances of a predefined entity type are created at


the Generate activity, although other activities (e.g. Batch, Assemble)
may produce entity instances as well. Entities must be disposed to
ensure statistics collection

Hierarchical Processes
The concept of Process provides hierarchical modeling capabilities.
A Process is a collection of Activities and sub-Processes organized as
a model network.

Layout
The layout contains graphical representations of the activities,
processes, and connectors that make up your SIMPROCESS model.
The entities only appear on the layout while the simulation is running.
The layout can be made to resemble the physical layout of a system
or it can be closer in appearance to a flow diagram. It is only the
topology that matters.

Model
A SIMPROCESS model is a representation of the system being
studied. It is not intended to be an exact duplicate of the system, but
rather a simplified version that just captures the relevant features.

Pads
Pads are small triangular graphic objects located along the border of
an Activity/Process. Pads are used for connecting connectors to the

10 SIMPROCESS User’s Manual


SIMPROCESS Terminology

inputs and outputs of the Activity/Process. Entities enter and exit


activities through input and output pads.

Sub-Process (Alternative)
Alternative Processes define alternative behaviors of a Process. Any
number of alternatives can be associated with a Process, but only one
can be active at any point in time.

Resources
The agents required to perform an Activity are known as Resources.
People, computers, and trucks are all examples of Resources.
Resources may be consumable or reusable.

Simulation
Simulation is defined as the reproduction of the dynamic and random
behavior of a business process with the goal of quantifying some key
characteristics of the business process.

Templates
Templates of Activities, Processes, and Resources can be stored in a
library for reuse.

SIMPROCESS User’s Manual 11


CHAPTER 1–Process Modeling and Analysis with SIMPROCESS

SIMPROCESS Menus

File Menu

New

File/New creates a new model file. If you already have a model open,
you will be prompted on whether or not you wish to save any changes
to the open model. You can only have one model open at a time.

Open

File/Open loads a previously saved model. If you already have a model


open and you have made changes since your last save, you will be
prompted on whether or not you wish to save any changes to the open
model. You can only have one model open at a time.

Save

Saves the model. It is a good idea to save a model any time you make
changes to it, and to save a model under a different name any time you
extensively change a model. SIMPROCESS saves your models with
the extension.spm and at the same time also saves a backup with the
extension .bck. To save a new model or to save an existing model

12 SIMPROCESS User’s Manual


SIMPROCESS Menus

under a new name, use File/Save As…. For information on automatic


saving, see “Other Preferences” on page 22

Save As…

Used to save a model for the first time, or to save a model with a new
name. If you plan on making extensive revisions to an existing model,
it is a good idea to load the model and then give it a new name using
Save As…. You should do this even if you do not think you will be
going back and using the old model. You will often find that after
making revisions to a model you may decide that you have proceeded
down a “blind alley,” and wish that you could go back to your original
model. If you save copies of your models as you make changes it will
give you a way to backtrack, if necessary.

Import

Bitmap File…

This command lets you import a bitmap to use as a SIMPROCESS


icon or background. The file type is the standard bitmap file type for
the windowing environment you are using. For example, on Microsoft
Windows systems, the file type used is the Windows Bitmap (.BMP);
on X-Window systems, the file type is the X-Windows bitmap
(.XWD). You must give the imported bitmap a unique name.

SA/BPR File...

This command lets you import a file from SA/BPR System Architect
from POPKIN Software. See the SA/SIMULATOR documentation
for more information on this feature.

Export

ASCII Model File…

Outputs the model to a file in text format for the purpose of portability
between platforms.

SIMPROCESS User’s Manual 13


CHAPTER 1–Process Modeling and Analysis with SIMPROCESS

Bitmap File…

Creates a bitmap image of the current layout. The bitmap file type will
be the default for the platform you are using: on Windows machines,
it will be a .BMP file; on X-Windows platforms, it will be an .XWD file.

Encapsulated Postscript…

Creates an encapsulated PostScript image of the current layout.


Encapsulated PostScript files can easily be imported into a word
processor or other program. A preview bitmap is not included with
the EPS file, so that you will not see an image of the file in your
application, just a sizing box.

InConcert Workflow File

Outputs your model file in a format that can be read by the InConcert
Workflow tool. See the InConcert documentation for more
information on this feature.

Simulation Results...

Exports the results of the current model to a tab-delimited file. The


data from all reports selected for the current model will be written to
this file. The file can be opened with a text editor or spreadsheet.

Activity List...

Outputs the process and activity hierarchy to an ASCII file.

14 SIMPROCESS User’s Manual


SIMPROCESS Menus

You can set various options for the EPS file.

Print All will write all levels of the model hierarchy to the EPS file.

PS fonts will use actual PostScript fonts instead of the SIMPROCESS


fonts. We recommend that you use this option for readability.

If Show border is enabled, a border will be drawn around the EPS


graphic and it will be labeled with the name of the model.

Normally you leave the Number of Copies set to 1.

Although you can resize an EPS graphic in an application, it is often


convenient to set the Width and Height to be close to the size you will
be printing them at. This will make the default size in your application
to be your chosen size.

You can change the Background Color (%) for you intended final use.
For most applications its probably best not to make the Background
Color either white (R=100, G = 100, B= 100) or completely black (R=0,

SIMPROCESS User’s Manual 15


CHAPTER 1–Process Modeling and Analysis with SIMPROCESS

G=0, B=0). The default values produce a pale gray when printed on
a black and white printer. See the EPS graphic above.

You can shift the EPS image around by entering an Offset From Lower
Left.You might want to do this if you are capturing an image that is
not centered on the layout.

You can change the Orientation of the EPS image. Portrait is the default;
Landscape will rotate the image of the layout 90 degrees in the EPS file.

Print

Print Layout…

This command prints a picture of the current model layout to the


system printer. Background icons will be printed, but the layout color
will not be.

Process Documentation…

Creates a text file with a description of a selected process. The file,


with a .doc extension, contains the information entered into the
description created when the Document command button was used, as
well as the path to each subprocess and their descriptions. The
following is a sample process documentation file.
Process Name: Process2
Process Path: Process2
Process Comment: AS-IS Process with 3 Service and 4 Sales
Reps

Process Name: Alt1


Process Path: Process2:Alt1
Process Comment:

Process Name: Route Calls


Process Path: Process2:Alt1:Route Calls
Process Comment:

Process Name: Customer Service


Process Path: Process2:Alt1:Customer Service
Process Comment:

Process Name: Sales


Process Path: Process2:Alt1:Sales
Process Comment:

16 SIMPROCESS User’s Manual


SIMPROCESS Menus

Model Documentation…

This command creates a file with a .doc extension which contains


a description of all elements of the model. This includes Name, Path
and Comment field entries of all Activities/Processes, Entities, and
Resources in the model. Any information you have added using the
Document command button is also included in this file. The following
is a sample model documentation file.
Printing Model Documentation on Wed Jan 17 13:50:16 1996
_________________________________________________________
Process Section
_________________________________________________________

Process Name: Process1


Process Path: Process1
Process Comment: This process generates 2 types of calls

Process Name: Process2


Process Path: Process2
Process Comment: AS-IS Process with 3 Service and 4 Sales
Reps

Process Name: Process3


Process Path: Process3
Process Comment:

Process Name: Alt1


Process Path: Process1:Alt1
Process Comment:

Process Name: Alt1


Process Path: Process2:Alt1
Process Comment:

Process Name: Alt1


Process Path: Process3:Alt1
Process Comment:

Process Name: Generate Service Calls


Process Path: Process1:Alt1:Generate Service Calls
Process Comment:

Process Name: Generate Sales Calls


Process Path: Process1:Alt1:Generate Sales Calls
Process Comment:

Process Name: Route Calls


Process Path: Process2:Alt1:Route Calls
Process Comment:

SIMPROCESS User’s Manual 17


CHAPTER 1–Process Modeling and Analysis with SIMPROCESS

Process Name: Customer Service


Process Path: Process2:Alt1:Customer Service
Process Comment:

Process Name: Sales


Process Path: Process2:Alt1:Sales
Process Comment:

Process Name: Dispose9


Process Path: Process3:Alt1:Dispose9
Process Comment:

_________________________________________________________
Entity Section
_________________________________________________________

Entity Service Calls


Entity priority

Entity Sales Calls


Entity priority

Entity dummyentity
Entity priority

_________________________________________________________
Resource Section
_________________________________________________________

Process Name: Sales Rep


Process Comment:

Process Name: Service Rep


Process Comment:

List of Most Recently Used Models

The File menu contains a list of the most recently used models. You
can load any of these models by clicking on its name, without going
through File/Open….

Exit

Quits SIMPROCESS. If you have made edits since you last saved the
current model, you will be prompted to save your model before exiting.

18 SIMPROCESS User’s Manual


SIMPROCESS Menus

Edit Menu

Cut

Cuts the selected object from the model layout. The cut object is copied
to a temporary storage area and the object may be pasted onto a
different part of the layout using Edit/Paste. Certain objects, such as
Connectors, can only be cleared and cannot be cut.

Copy

Copy places a copy of the selected object in a temporary storage area.


It will remain there until replaced by another object that is cut or
copied. Once a copy is made, it can be pasted on the layout by using
the Edit/Paste command.

Paste

Edit/Paste makes a copy of the object in the temporary storage area and
pastes it onto the layout. If you want to make multiple copies of an
object, you can Paste again and again, without having to make another
copy of the original object.

SIMPROCESS User’s Manual 19


CHAPTER 1–Process Modeling and Analysis with SIMPROCESS

Duplicate…

Duplicate is a shortcut that copies a selected object from the layout and
then does a paste to a position selected on the layout. This combines
the two preceding commands into one command. This is useful when
you want to quickly copy something on the layout and paste it
somewhere else.

Clear

Deletes a selected object without copying it to the clipboard. Certain


objects, such as Connectors, can only be cleared and cannot be cut.

Select All

Selects all objects on the model layout.

Resize

Lets you resize a layout object. You can resize the horizontal and
vertical directions separately if you wish to resize the icon in a non-
proportional way.

20 SIMPROCESS User’s Manual


SIMPROCESS Menus

Preferences

This menu item lets you set personal preferences for various options
in SIMPROCESS. These preferences take effect after the dialog is
closed. They do not affect items that are already on the layout.

Toolbars

This item lets you turn the Toolbar, Palette, or Colorbar, on or off. You
may wish to turn one or more of them off, if you need more space in
the work area.

Activities

Show Name lets you specify whether you want the name to show on
the layout by default when a new activity is created.

If Confirm Delete is checked, SIMPROCESS will ask for confirmation


when you delete an Activity.

If Show Text Block is turned on, the text blocks for the activities will
be displayed on the layout.

Icon Scale lets you set the default size for new activities. If you are
only going to have a few activities on screen you might set this to a
large value, or if you are going to have many activities you might set
it to a small value.

Pads

Show Name lets you specify whether you want the name to show on the
layout.

If Confirm Delete is checked, SIMPROCESS will ask for confirmation


when you delete a Pad.

Icon Scale lets you set the default size for new pads.

Connectors

Show Name lets you specify whether you want the name to show on
the layout.

If Confirm Delete is checked then SIMPROCESS will ask for


confirmation when you delete a Connector.

SIMPROCESS User’s Manual 21


CHAPTER 1–Process Modeling and Analysis with SIMPROCESS

Line Width lets you specify the default line width for new connectors.

If line width is zero, Line Style will be active, and the default line style
for new connectors can be set.

Other Preferences

Show Graphic Handles lets you specify whether the resize handles will
be visible when an activity or process is selected.

Time Between Auto Saves determines the approximate amount of time


between automatic saves of your model. The automatic save feature
creates a file with the same name as your current model, except with
the extension .tmp. If your current model is new and you have not
saved your work to a .spm file, the name of the temporary file will
be default.tmp and will be located in the Spuser directory. The
time is approximate because the automatic save feature is only active
when a model is being built or modified. The feature does not activate
during simulation runs, during Experiment Manager operation, or
during periods of inactivity.

NOTE
The automatic save does not affect the .bck file. The
.bck file is created or updated when you initiate a save.
See “Save” on page 12 for information on the backup file.

Documentation editor lets you specify the text editor for


documentation. The default is Notepad, but programs like MS Word
can be used. Chapter 2–SIMPROCESS Basics, on page 59 describes
documenting your model.

22 SIMPROCESS User’s Manual


SIMPROCESS Menus

Activity Browser…
The Activity Browser is a handy feature for navigating among and
editing activities. A dialog box lists all the activities and processes
contained in your model. Any name followed by a (+) signifies a
hierarchical process. Double-clicking on the name will expand the
tree diagram, displaying activities and processes underneath. If the
name is followed by (E) then the activity has an expression, and if the
name is followed by (R) then the activity has a resource.

You can select an activity and either Edit the properties of that activity

SIMPROCESS User’s Manual 23


CHAPTER 1–Process Modeling and Analysis with SIMPROCESS

or Go To the layer in the model layout where that activity resides. Also,
you can search for a specific activity by name, display only the
activities with expressions, expand the complete model hierarchy, and
contract to the highest level of the model.

Properties…
Selecting Edit/Properties… will bring up the Properties dialog box for
the selected item. For an activity this has the same effect as double-
clicking on it (on Windows platforms). You will use this menu item
most often when you want to edit Hierarchical Processes, since
double-clicking on them will show their internal structure, and not
bring up their dialog box.

24 SIMPROCESS User’s Manual


SIMPROCESS Menus

View Menu

Descend

Descend will take you down one level in the model hierarchy.

Ascend

Ascend will take you one level up in the process hierarchy.

Go To Top

Go To Top takes you to the top of the process hierarchy.

SIMPROCESS User’s Manual 25


CHAPTER 1–Process Modeling and Analysis with SIMPROCESS

Activities

Hide
Hides the selected activity. The activity and its connectors to it will
not be visible on the layout.

Show All
Makes all Activities and their connectors visible.

Show Attached
Makes all the Activities that are connected to a selected Activity visible.

Resources

By Activity
View or edit resource usage by activity. The activities with resources
are displayed first. Other activities can be displayed by expanding the
processes.

Activity Names
These menu items only affect the display of activity names. The
changes are not saved with the model.

Show All
Show All makes all activity names visible throughout your model.

Hide All
Hide All makes all activity names invisible throughout your model.

Local
Local shows or hides activity names based on their individual
properties (set with the Properties dialog Show name checkbox). This
is the default setting when you open a model.

26 SIMPROCESS User’s Manual


SIMPROCESS Menus

Connector Names

Show All

Show All makes all connector names visible throughout your model.

Hide All

Hide All makes all connector names invisible throughout your model.

Local

Local shows or hides connector names based on their individual


properties (set with the Properties dialog Show name checkbox). This
is the default setting when you open a model.

Pad Names

Show All

Show makes all pad names visible throughout your model.

Hide All

Hide makes all pad names invisible throughout your model.

Local

Local shows or hides pad names based on their individual properties


(set with the properties dialog Show name checkbox). This is the
default setting when you open a model.

Zoom In

Zoom In allows you to magnify a section of the layout to see more detail.
After choosing Zoom In, select the area you wish to see in detail by
clicking and dragging the mouse to define a rectangle on the layout.

SIMPROCESS User’s Manual 27


CHAPTER 1–Process Modeling and Analysis with SIMPROCESS

Zoom Out

Zoom Out is the reverse of Zoom In. It lets you see a larger portion of
the screen layout.

View (1:1)

Returns the layout window to its original size.

Fit to Window

Zooms to a size at which the entire model layout, that is, the number
of screens specified in Layout/Size, is visible at one time.

Refresh

Redraws the current screen.

28 SIMPROCESS User’s Manual


SIMPROCESS Menus

Layout Menu

Size…

Sets the size of the work area in terms of the number of “screens.” For
example, if the view were set at 1:1 and the size is two screens, then
there is twice as much work area as is visible.

Background Color

Changes the background color of the layout to the selected color. If


the color bar is not visible, the new color of the background may be
a surprise!

SIMPROCESS User’s Manual 29


CHAPTER 1–Process Modeling and Analysis with SIMPROCESS

Align…

With this command you can align a number of selected objects


according to various criteria.

Top will align the tops of the selected objects.

Bottom will align the bottoms of the selected objects.

Left will align the left sides of the selected objects

Right will align the right sides of the selected objects

Center (Vertical) will align the centers of the selected objects along a
vertical line.

Center (Horizontal) will align the centers of the selected objects along
a horizontal line.

The screen shots below show the effect of using Align.

30 SIMPROCESS User’s Manual


SIMPROCESS Menus

Before aligning the horizontal centers:

After aligning the horizontal centers:

SIMPROCESS User’s Manual 31


CHAPTER 1–Process Modeling and Analysis with SIMPROCESS

Distribute…

This will distribute three or more selected objects so that they are
equally spaced, either in a vertical direction, a horizontal direction, or
about a circle.

The screen shots below show the results of using Distribute on some
unequally spaced objects.

Before using Distribute:

32 SIMPROCESS User’s Manual


SIMPROCESS Menus

After using Distribute:

Distribute Pads

If you have added pads to a Hierarchical Process, you can space them
evenly by selecting Distribute Pads.

Group

Combines multiple objects into a group. Once objects are grouped,


all normal editing operations that can be done on an individual object
can be done on the group. This can be useful when your model is
divided into logical sections. You may be happy with the way each
section appears, but not with their relation to one another. You can
group a section, and then move it with respect to the other sections.
You could also cut the group from the layout, or copy and paste it to
create an identical group.

If you wish to edit individual components of a group, use Ungroup.

Ungroup

Breaks up a group into the original components that went into making
the group.

SIMPROCESS User’s Manual 33


CHAPTER 1–Process Modeling and Analysis with SIMPROCESS

Bring to Front

Brings an object that is behind another on the layout to the front so


that it can be edited.

Send to Back

Sends an object that is at the front of the model layout to the back, to
allow editing of objects that were behind it, so that you can hide the
object behind the other objects.

Snap To Grid

If Snap To Grid is turned on, you can only place objects on the layout
at grid intersections.

Grid Lines

Places a grid on the model layout as a convenience in aligning objects.


The grid has no significance to your model.

Grid Spacing

Changes the spacing of the grid. Three levels are offered: Fine,
Medium, and Coarse.

Grid Color

Changes the color of the grid to the color selected on the color pallette.

Create Menu

Activities

This command provides an alternative way of creating Activities,


rather than graphically dragging and dropping them from the palette.

34 SIMPROCESS User’s Manual


SIMPROCESS Menus

When you add new Activities to the library, they will be added to this
menu even if you do not add them to the palette.

Processes

This command provides an alternative way of creating processes,


rather than graphically dragging and dropping them from the palette.

When you add new processes to the library, they will be added to this
menu even if you do not add them to the palette.

Define Menu

SIMPROCESS User’s Manual 35


CHAPTER 1–Process Modeling and Analysis with SIMPROCESS

Entities…

Used for adding, editing, copying and removing Entities to the model.

Resources…

Used for adding, editing, copying and removing Resources to the


model.

36 SIMPROCESS User’s Manual


SIMPROCESS Menus

Distributions

Used for adding, editing, copying and removing customized Standard


and Tabular Distributions to the model. Once a Distribution is defined,
it can be used throughout the model without the need to redefine the
parameters of the distribution.

SIMPROCESS User’s Manual 37


CHAPTER 1–Process Modeling and Analysis with SIMPROCESS

Functions…

Used for adding, editing, copying and removing Functions to the


model. If you have a mathematical function which you would like to
use in several places in your model you can define it here.

Seeds…

Used for viewing the random number stream seeds.

Attributes

Used for globally defining attributes for entities, resources, activities,


and the model.

38 SIMPROCESS User’s Manual


SIMPROCESS Menus

Time Stamps…

Used for adding, editing, copying and removing Time Stamps to the
model. Time Stamps can be used as event logs.

Templates

Used for defining and editing Templates. This option also allows
saving templates to a library or loading a new library.

Model Description…

This feature is useful for providing an overview of your model so users


can quickly familiarize themselves with your model.

SIMPROCESS User’s Manual 39


CHAPTER 1–Process Modeling and Analysis with SIMPROCESS

Simulate Menu

Run Settings…

Simulation Period

The Simulation Period determines how long your simulation will run.
It is given in calendar and time format. Choose an appropriate time
span to see all aspects of your system.

40 SIMPROCESS User’s Manual


SIMPROCESS Menus

Warmup Every Replication

Sets whether or not you wish to have a warmup period for every
replication. If this box is not checked, there will only be a warmup
period before the first replication.

Reset Random Number Streams

Resets the random number streams between replications.

Reset System

Resets the system to the initial conditions before each replication.

Number of Replications

Since statistical variation is built into SIMPROCESS, it is a good idea


to run the simulation more than once for statistical accuracy. The
Number of Replications is the number of times the simulation will be run.

Warmup Length

The Warmup Length is the amount of simulation time that will elapse
before statistical data is collected. You might want to have a warmup
period if you are worried about transient effects, and wish the
simulation to reach a steady state before collecting data.

Timescale

This option has the effect of allowing you to set a timescale so that
events that are too close to each other and events that are too far apart
can be differentiated. Animation time will be lengthened by this value.
The larger the number the farther apart the events.

If you use the default value of 0, no real clock time is spent between
two consecutive simulation events. The simulation clock jumps from
the time of one event to the time of the next event.

By setting Timescale to a value between 0 and 1, you cause


SIMPROCESS to wait for some period of real time to elapse before
moving on to the next event. This has the effect of slowing down the
animation of a simulation, making it easier for you to see what is
occurring at each moment.

SIMPROCESS User’s Manual 41


CHAPTER 1–Process Modeling and Analysis with SIMPROCESS

For example, if you set Timescale to 0.16, approximately one second


of real clock time elapses for each minute of simulation time. Set
Timescale to higher numbers to achieve a greater ratio of clock time
to simulation time. If animation is turned off, set Timescale to zero.

Define Cost Periods…

Helps you define cost periods for activity based costing calculations.

Animation Settings…

Show Clock

Turns on or off a clock which displays simulation time while the


simulation is running.

Show Counts

If Show Counts is turned on, each activity or process will display a


number above its icon. Counts for Generate activities show the
number of entities generated. Counts for Dispose activities show how
many entities have been disposed. Counts for all other activities and
processes show how many entities are in that process or activity.

Show Entities

Show Entities turns the display of entities on or off during the


animation. Showing entities helps you visualize the workflow.

42 SIMPROCESS User’s Manual


SIMPROCESS Menus

Update Dynamic Labels

Update Dynamic Labels turns the display of dynamic labels on or off


during the animation.

Animation Speed

You can change the Animation Speed to speed up or slow down the
simulation. The fastest value is 5000, and the default is 1000. You
may wish to set this to a smaller value while you are debugging your
model. The smallest value allowed is 1.

Run

Verifies the model and then starts the simulation running.

Pause

Pauses the simulation.

Resume

Resumes running a paused simulation.

Stop

Stops the simulation and ends the collection of statistics. You may
choose to save reports from partial runs.

Animation On

Turns on animation that has been turned off with Animation Off, but
does not turn on animation that is turned off in the Animation Settings.

Animation Off

Turns all animation off, regardless of the individual settings (clock,


counts, entities).

SIMPROCESS User’s Manual 43


CHAPTER 1–Process Modeling and Analysis with SIMPROCESS

Verify Model

Checks the model to see whether or not all the activities are connected
properly and whether the model can be simulated. If, for example, a
Generate activity is left unconnected, the verification process will alert
you to this.

Report Menu

Define Global Statistics Collection

Define Global Statistics Collection is where you set which statistics you
wish to collect during the model execution. It is described in detail in
Chapter 8–Output Reports, on page 181.

Define Real-Time Plots

Define Real-Time Plots is where you set which real-time plots you wish
to view during the simulation run. It is described in detail in Chapter
8–Output Reports, on page 181.

44 SIMPROCESS User’s Manual


SIMPROCESS Menus

Display Standard Report

Display Standard Report is where you view the results from the
simulation run either in a text editor or a spreadsheet. It is described
in detail in Chapter 8–Output Reports, on page 181.

Display ABC Reports

Displays the Activity-Based Costing reports. Described in detail in


Chapter 7–Activity-Based Costing, on page 163.

Commit to Database

is where you send simulation results to the


Commit to Database
SIMPROCESS database (SimProcDB). Described in detail in
Chapter 13–SIMPROCESS Database, on page 311.

Launch Database Application

Launch Database Application allows you to start your database


application from within SIMPROCESS. The Manage Results form
launches automatically when launching MS Access from this menu
item. The Manage Results form is described in detail in Chapter 13–
SIMPROCESS Database, on page 311.

Experiment Menu

Define Experiments

Define Experiments is where you setup the experiments you wish to run.
The Access database opens to the Experiment Setup form. It is described
in detail in Chapter 15–Experiment Manager, on page 339.

SIMPROCESS User’s Manual 45


CHAPTER 1–Process Modeling and Analysis with SIMPROCESS

Run All Experiments

Run All Experiments attempts to run every experiment defined in the


SIMPROCESS database. It is described in detail in Chapter 15–
Experiment Manager, on page 339.

Run Selected Experiments

Run Selected Experiments attempts to run experiments defined in the


database for which the Selected field is checked. It is described in
detail in Chapter 15–Experiment Manager, on page 339.

Run Specific Experiment

Run Specific Experiment allows you to enter an experiment name that


SIMPROCESS will attempt to run. It is described in detail in Chapter
15–Experiment Manager, on page 339.

Tools Menu
The items on the Tool menu are additional features available in
SIMPROCESS Professional.

SimDraw

This item brings up SimDraw. SimDraw is a graphics editor that can


be used to create graphics for use with SIMPROCESS models.

Stat::Fit

This item brings up Stat::Fit. Stat::Fit can analyze data to determine


the best fit with one of the standard statistical distributions.

46 SIMPROCESS User’s Manual


SIMPROCESS Menus

Help Menu

SIMPROCESS Help

Displays a list of main help topics, from which you can gain access
to other parts of the SIMPROCESS Help System.

SIMPROCESS Books Online

Opens either the SIMPROCESS Getting Started or User’s Manual.


This contains the complete documentation set for SIMPROCESS. To
view the documentation, you must load the Adobe Acrobat Reader
which can be found on the SIMPROCESS Installation CD.

About SIMPROCESS

Displays information about SIMPROCESS, including the version, the


copyright, and information about how to obtain technical support for
SIMPROCESS.

SIMPROCESS User’s Manual 47


CHAPTER 1–Process Modeling and Analysis with SIMPROCESS

48 SIMPROCESS User’s Manual


CHAPTER 2

SIMPROCESS Basics

SIMPROCESS User’s Manual 49


CHAPTER 2–SIMPROCESS Basics

SIMPROCESS Model Components


A SIMPROCESS model contains the following components:

• Processes

• Activities

• Entities

• Resources

• Connectors

• Pads
Processes and Activities represent business operations in a
SIMPROCESS model. SIMPROCESS models can be arranged in a
hierarchy, with processes typically encompassing other processes and
activities.

Processes
A set of processes can represent the operation of a business at a
very high level. At this level of the model, you see only an outline
of the business process.

Activities represent the details of business operations. For example,


in a mail order fulfillment operation, when a customer order is
received, processing steps might include:
1. Identifying the customer.
2. Creating or accessing a customer profile.
3. Verifying the customer profile against information contained
in the customer’s order.

Each of these steps can be modeled as an activity. Collectively, they


could comprise a single process that might be called “Access/Create
Customer Profile.”

The Process construct allows you to break down a business process


into successively more detailed layers.

50 SIMPROCESS User’s Manual


SIMPROCESS Model Components

A Process can be (and usually is) composed of other Processes and


Activities. Activities cannot be decomposed.

Activities
SIMPROCESS contains a suite of Activities, each reflecting a
different type of action. Actions can be physical or logical.

The most frequently used SIMPROCESS activity is the Delay, a


general-purpose activity that can be used to represent almost any
task requiring some period of time to accomplish.

For example, when a new customer places an order, the clerk


handling the call needs to gather customer information and enter it
into a database. Then the clerk verifies the information with the
customer. These tasks can be represented by Delay activities.

Entities
Entities are objects that circulate through the model. They represent
things (e.g., parts, deliveries, people) and information (orders, service
requests, etc.) that flow from activity to activity. In the order fulfillment
process, the customer order is an Entity.

Unlike processes and activities, which appear as icons in the model


layout, SIMPROCESS entities aren’t visible until you run a simulation.
During the simulation, they emerge as icons flowing through the model,
if animation is turned on. Most entities originate at Generate activities.

Resources
Resources are the agents that add value to entities, or perform work
at activities. For example:

• A customer calls in an order, which requires a clerk to handle


it. Order entry is the Activity, the order is an Entity, and the
clerk is a Resource.

SIMPROCESS User’s Manual 51


CHAPTER 2–SIMPROCESS Basics

• When an order is filled, a truck is required to deliver


merchandise to the customer; the truck is a Resource.

The way to minimize cycle time and activity costs in your business process
is by experimenting with different levels of resources and different costs.

For instance, the availability of a resource affects the amount of


time it takes an Entity to flow through the process. Lack of
resources can be a cause of bottlenecks in a business process. If you
have two clerks and a customer order arrives while both clerks are
busy handling other tasks, order fulfillment is delayed until a clerk
becomes available. The amount of time the customer order spends
waiting for an available clerk is shown in the Entity Cycle Time by
State output report as Wait for Resource. Another way to describe
this situation, is that the order waited in a queue for the available
resource.

On the other hand, if a clerk is always available to handle an


incoming order, it might mean that you have more clerks than you
need. In either event, knowing how resources are used is a key
factor in understanding and improving upon the way a business
operates.

Connectors
Connectors link activities and processes together and are the paths
used by entities to flow through the model.

Pads
Pads are small triangular objects attached to activities and
processes which serve as attachment points for connectors. A single
pad can connect one or (possibly) more connectors. Entities flow in
one direction, entering nodes at input pads and exiting at output
pads.

Pads also connect one level of a process hierarchy to another. Pads


can be queueing areas for entities waiting for a resource or
condition.

52 SIMPROCESS User’s Manual


SIMPROCESS Model Components

Putting it Together
When you put it all together, a SIMPROCESS model shows a
business process as a set of Nodes (Processes and Activities)
connected by Connectors. Entities are generated from one or more
Generate Activities, traverse the model, and finally proceed to a
Dispose activity, where they are disposed of. Along the way,
entities pass through other activities, such as Delays and Branches.

When you build a model, you supply numeric and symbolic


attributes to the various activities and the entities that are processed
at these activities. You also define the resources needed to process
the entities.

The end result is a dynamic model of the business process. By


running simulations on this model, you can see bottlenecks as they
occur. You can generate reports and statistics describing the flow of
people, materials and information and quantifying how resources
are used. And you can continue to modify the model in order to
experiment with different scenarios.

You can build a simple model with just three activity objects: the
Generate, Delay, and Dispose activities.

All models require a Generate activity to generate Entities and a


Dispose activity to end the processing of entities. Delay activities
are used to represent value adding and non-value adding activities.

There are some things that are common to most activities, such as
the activity name and resources required by the activity. This
chapter begins with a discussion of the input fields and command
buttons used to define these items. The remainder of the chapter
describes the core SIMPROCESS activities in detail, with
particular attention devoted to the powerful Generate activity and
the entities that it generates.

SIMPROCESS User’s Manual 53


CHAPTER 2–SIMPROCESS Basics

The remaining SIMPROCESS activities are described in Chapter


4–Activity Modeling Constructs, beginning on page 97, and in
“Explicitly Getting and Freeing Resources” on page 146.

54 SIMPROCESS User’s Manual


Using the Palette Bar to Create Activities

Using the Palette Bar to Create


Activities
The Palette bar is the two columns of buttons running down the left
margin of the SIMPROCESS window. You can use these buttons to
place model building blocks on the SIMPROCESS layout — the
central region of the SIMPROCESS window.

Begin by adding a Generate activity to the model. Click once on the


Generate activity Palette bar button. Once selected, the button
appears pressed in, with the inside edges shaded.

SIMPROCESS User’s Manual 55


CHAPTER 2–SIMPROCESS Basics

Next, point and click on the SIMPROCESS layout. A Generate


activity icon is added at the location you point to.

After you click on the layout, the Generate button is deselected. If


you need to add several activities of the same type, press and hold
the Shift key while clicking on the layout.

For example, click on the Generate button, point at an area on the


layout, and then press and hold Shift before clicking. Continue to
hold down the Shift key and point and click at different spots on the
layout. Each time you click, a Generate icon is added to the layout.
Release the Shift key before dropping the last icon or click once on
the Generate button to deactivate the Generate button.

Removing Objects from the Layout


To remove an object such as an activity icon from the layout, select
it, then press the Delete key. To remove several items at one time,
you can select the items by either:

• Pressing and holding the Shift key while you point and click
on each item.

• Drawing a rectangle around the objects you are selecting. To


draw a rectangle, press and hold the left mouse button while
dragging the mouse.

When you have selected the items you want to delete, press Delete,
or select Edit/Clear from the menu.

Common Activity Input Fields


Activity Properties dialog boxes have the following common input
fields:

• Name is the name you choose to identify the activity you are
creating. This name appears below the activity and it can be
moved on the layout.

• Icon identifies the graphic icon representing the Activity.

56 SIMPROCESS User’s Manual


Using the Palette Bar to Create Activities

• Comment is a one line comment about the activity. This


comment appears in the status bar when the activity is
selected.

• Document opens an edit window for adding descriptive text


about the activity.

• Attributes define custom attributes that the activity requires.


This topic is covered extensively in Chapter 10,
”Customizing a Model with Attributes and Expressions,”
beginning on page 213.

• Expressions allows you to define customized processing for


the activity at various points during a simulation. This topic
is covered in detail in Chapter 10, ”Customizing a Model
with Attributes and Expressions,” beginning on page 213.

• Event Logs are used for defining timestamps and recorders.

• Text Block is a three line description that appears within the


Activity’s icon on the layout.

• Help displays information about the activity.

The following command buttons and fields are found on most


Activity Properties dialog boxes:

• Resources defines the resources required to process entities


arriving at the activity. If one or more of these resources are
unavailable, the entity waits in a queue until the resource can
be obtained.

• Duration/Value is the amount of time it takes the activity to


process an entity, once the required resources are obtained.
Time can be defined as a constant, or as a statistical
distribution.

• Duration/Time Units determines if the Duration entered is


measured as Seconds, Minutes, Hours, Days, or Weeks.

For some activities, you can specify either Delay Before Activity
or Delay After Activity. This tells SIMPROCESS whether to
attribute the delay time to the entity when it arrives or after it is
ready to be released.

SIMPROCESS User’s Manual 57


CHAPTER 2–SIMPROCESS Basics

Naming Activities
Use the Name field to assign a name to the activity you are creating.
This name is shown below the activity icon in the model if you
select the Show Name checkbox.

When you create an activity, SIMPROCESS assigns it a default


name. It is a good idea to change this to a name that is meaningful
to you; one that indicates what occurs at this activity. You can name
an activity just about anything, as long as you do not use the same
name twice in the same level of the model hierarchy.

To change the name of an existing activity, click in the Name field


and type the new name.

Choosing an Icon
The Icon field identifies the graphical icon used to represent the
Activity in the model layout.

Every Activity has several icons that you can choose from. The
names of the standard icons differ slightly for each activity, because
they include the name of the activity.

To select an icon, point and click on its name, then click on OK to


view the icon. You can import bitmaps and use them as custom
icons for your activities. With the SimDraw Graphic Editor tool,
you can create your own icons or edit the icons included with
SIMPROCESS.

Adding a Comment
Use the Comment field to add a brief comment describing the
purpose of this activity. This field is optional; you do not have to
enter anything. If you type in a comment and later print Process
Documentation or Model Documentation, the comment will be
included in the document. Also, when the activity is selected, the
comment will appear on the status bar.

58 SIMPROCESS User’s Manual


Using the Palette Bar to Create Activities

Documenting the Activity


The Document button opens a file in which you can add information
describing the activity. SIMPROCESS uses a text editor such as the
Notepad to edit the Document file. You can specify the text editor
by selecting Preferences on the Edit menu. The Document file is
displayed with a preformatted template which you can fill in:

Description:

Inputs:

Output:

Type: (VA/NVA)

Owner:

_____________________________________________________

Documentation Template

The template is defined in a file named Nod, which is in the


SIMPROCESS Template directory. You can edit this file and
customize the template as you wish.

When you have entered all the information you want in the
Document file, save the file before closing the editor. Do not
change the name of the file. SIMPROCESS takes care of file
naming for you.

You can print Document text using the SIMPROCESS Print facility.

Labeling with Text Blocks


The Text Block button opens a dialog box for adding text to the
inside of the icon on the layout. Up to three lines of text can be
added.

SIMPROCESS User’s Manual 59


CHAPTER 2–SIMPROCESS Basics

Text Block labels facilitate understanding of the activity or process


in relation to the model as a whole.

To add descriptive labels to a node icon:

1. Click on Text Block:

2. Fill in one to three lines of text.


3. Make sure the Show Text Box is checked. If this box is not
checked, the text you entered is not displayed in the model.
4. Click on OK.

Note: The Text Block is best used with blank box icons. Icons with a
bitmap picture on them will not show the Text Block properly.

Getting Help
The Help button displays information about the purpose of the
Activity and the fields and buttons on the current dialog box.

60 SIMPROCESS User’s Manual


Generate Activity

Generate Activity
Generate activities create entities for a model during a
SIMPROCESS simulation. Generally, the first activity you define
in your model is a Generate.

SIMPROCESS generates entities at the rate you specify when you


define the Generate activity. You can specify a constant number and
rate, such as a specified interval of time, or tell SIMPROCESS to
produce entities according to a statistical distribution. The schedule
of generation can be as simple as one constant rate, or as complex
as dozens of different rates depending on the hour of the day, day of
the week, season of the year, etc.

A Generate activity can generate one type of entity or several


different types of entity, depending on how you define the activity.

Defining a Basic Generate Activity

Click on the Entity pull-down arrow to select the type of entity to be


generated by this Generate activity.

SIMPROCESS User’s Manual 61


CHAPTER 2–SIMPROCESS Basics

If you have not yet defined any entities in your model, you can do
so using the New Entity command button on this dialog box.

Use the Quantity field to specify the number of entities to be


generated each time entities are released. You can enter a specific
number or probability distribution in the Quantity field, or make a
selection from the Quantity pull-down list.

The Interval field defines the time between entity generation events.
You can enter a constant value or a statistical distribution. Entities
are generated at the end of each interval:

As an example, say that you expect Customer Orders to arrive at an


exponential rate, with an average of 20 arrivals per hour. Click on
the Interval pull-down arrow and scroll through the list until you
find the definition for Exponential distributions. It reads:
Exp(10.0)

Select the distribution. Then, click on the button to the right of the
pull-down arrow.

This displays a dialog box for defining the parameters of the


distribution:

62 SIMPROCESS User’s Manual


Generate Activity

You need to set the Mean value to indicate an average entity


generation rate of 20 per hour.

Assume that Quantity is 1, meaning that only one entity is produced


at each entity generation event:

• To get 20 entities in an hour (60 minutes), you need to


generate an entity every 3 minutes.

Depending on which you select from the Time Unit field, time can be
entered as Seconds, Minutes, Hours, Days or Weeks.

The View button displays a graphical representation of the


distribution:

SIMPROCESS User’s Manual 63


CHAPTER 2–SIMPROCESS Basics

Stream identifies the random number stream used to seed the


distribution.

You can learn more about statistical distributions and random


number streams in Chapter 3–Statistical Modeling Constructs,
beginning on page 85.

64 SIMPROCESS User’s Manual


Delay Activity

Delay Activity
Delay activities, common building blocks found in most models,
have two functions: they represent the passage of time during
simulation, and define the resources required to perform a task. The
cycle time of an entity traversing the model is the sum of the delays
it encounters, i.e., the time spent at the activities in its path, plus any
hold time for a condition to be met, and the wait time for any
resources.

The Resources button opens a dialog box for specifying the


resources required to perform an Activity. For instructions on
defining resource requirements for an activity, see Chapter 5–
Resource Modeling Constructs, beginning on page 135.

Specifying Delay Duration

Value represents the amount of time required to perform an activity.


This delay time can be expressed as either a constant value or a
statistical distribution in units of hours.

Time Units determines if the Duration entered is measured as


Seconds, Minutes, Hours, Days, or Weeks.

SIMPROCESS User’s Manual 65


CHAPTER 2–SIMPROCESS Basics

If you know precisely what you want to specify for the duration of
the delay, you can type the value directly in the field. Alternatively,
you can select a value from a pull-down list.

For example, say you define a Delay activity to represent the task of
processing an order. This task takes an average of 30 minutes to
perform, though it may take as little as 15 minutes, or as much as
one hour.

A Triangular distribution is often used to represent the time required


to complete a task, so that is what we will use here.

1. Click on the arrow to the right of the Value field to display a


list of distributions:

2. Scroll through the list until you find the default definition for
Triangular distributions. It reads:

Tri(0.0,5.0,10.0)

Select the distribution.


3. Click on the box to the right of the Value field. Fill in the
following values:

• Minimum of 15, Mode of 30 and a Maximum of 60.

66 SIMPROCESS User’s Manual


Delay Activity

• Select Minutes from the Units field.

4. Click on View to see what the curve looks like.

5. To learn more about these parameters and the topic of


statistical distributions, see Chapter 3–Statistical Modeling
Constructs, beginning on page 85.

6. Click on OK to accept the definition.

SIMPROCESS User’s Manual 67


CHAPTER 2–SIMPROCESS Basics

Dispose Activity
A Dispose activity disposes of entities when they are no longer
needed in the simulation. For example, when an order is fulfilled,
its entity is sent to a Dispose.

The Dispose marks the end of an entity’s cycle time for the purpose
of statistic collection (e.g., cycle times and counts).

Dispose Activity Properties

The Dispose Activity Properties dialog box contains only one unique
field: Maximum Entity Count. You can use this field to set a limit to
the number of entities that can be disposed of at the Dispose during
a simulation. If this limit is reached, the simulation ends. So if you
want to end a simulation after, say, 1000 customer orders are
processed, set Maximum Entity Count to 1000.

Leaving Maximum Entity Count undefined or setting a value of 0 or


“none” indicates that there is no limit.

68 SIMPROCESS User’s Manual


Defining an Entity

Defining an Entity
In your model, you can refer to a particular type of entity or a
particular instance of an entity. When you refer to an entity type,
you are referring to all entities of a particular type, e.g., customer
orders. An entity instance refers to an individual entity (a single
customer order).

When you define entities in SIMPROCESS, you are defining a


type; SIMPROCESS generates instances of that entity during a
simulation run. To define entities:

1. Click on Define on the SIMPROCESS menu, and then


select Entities... from the pull-down menu.
2. Click on Add to define a new entity.

3. In the Entity Type Properties dialog box, specify:

• Entity Name to identify the type of entity you are


creating. Name can be anything you want, as long as it
has not already been used to define an entity elsewhere
in your model.

For this example, double-click on the default name


supplied by SIMPROCESS, and enter Customer
Order as the entity Name.

SIMPROCESS User’s Manual 69


CHAPTER 2–SIMPROCESS Basics

• Entity Icon is the icon which will represent this entity


during a simulation run. The icon appears during
simulation if the Animation option is on.

If you click on the downward-pointing arrowhead next


to the Entity Icon field, you get a list of different icons
to choose from.

• Priorityvalues range from 1 to 100. When entities


contend for the same resource, the entity with the highest
priority gets precedence.

• Define Attributes or Expressions For is used in association


with any attributes defined for this entity. You can
choose to create a new copy of an attribute or evaluate
an expression every time an instance of an entity is
created. Alternatively, you can create one copy of an
attribute or evaluate an expression once for an entity
type and have all instances refer to this value. You will
learn about attributes and expressions in Chapter 10–
Customizing a Model with Attributes and Expressions,
beginning on page 213.

• Document opens a text file into which you can place


extensive comments about the entity and your model.
This is optional.

• Comment is used to enter brief text describing the


purpose of this entity, if you wish.
4. When you finish entering the data, click on OK. The entity you
have just defined is added to the list box in the Entities dialog.

70 SIMPROCESS User’s Manual


Defining an Entity

5. Add another entity and name it Shipment. Click on the pull-


down arrow next to the Icon field to get a list of entity icons.

The list may be a lot longer than it first appears. Try


clicking near the top of the scroll bar to see more list items.
Select Truck. Then click on OK.

We will use the Batch Shipment entity to liven things up at


simulation time.

If you want to copy the properties of an existing entity (such as the


one you just defined), select the entity in the list box and click on
the Copy button. On the Entity Type Properties screen, enter a

SIMPROCESS User’s Manual 71


CHAPTER 2–SIMPROCESS Basics

different Entity Name and make any other changes you want, and
then click on OK.

To remove an existing entity, select the entity and click on the


Remove button.

When you are finished defining entities, click on Close.

72 SIMPROCESS User’s Manual


Defining Resources

Defining Resources
The next thing we will define in our model are the resources
required to process Customer Order entities. To keep things simple,
we will just define one resource, the clerks needed to process
customer orders.

1. From the Define pull-down menu, select Resources...


2. Select Add to define a new resource.

For an explanation of the remaining options and commands, and for


more details on defining resources, including pre-defined resource
types, see Chapter 5–Resource Modeling Constructs, beginning on
page 135.

SIMPROCESS User’s Manual 73


CHAPTER 2–SIMPROCESS Basics

Defining a Process
A SIMPROCESS Process allows you to define processes
hierarchically. In this example, we will define a process that indicates
how customer orders are handled.

To create a Process, select the Process button from the Palette bar,
and then click on the layout.

With the Process icon on the layout, display a dialog box for
defining the Process. Do this by either:

• Clicking on the Process icon to select it, and then pressing


Alt+Enter.

• Selecting the Process icon, and then selecting Edit from the
menu bar, followed by Properties...

Alternative Sub-Processes
A Process may consist of a set of alternative sub-processes. Each
subprocess can represent an alternative implementation of the
process. This allows you to create many variations of a process and
keep them organized in one place.

74 SIMPROCESS User’s Manual


Defining a Process

Only one subprocess can be active at any point in time. For


example, you may run an experiment with Alternative subprocess 1
active, and measure the overall performance of the model. Then
you can switch to Alternative subprocess 2 and compare the results.

SIMPROCESS defines a single default subprocess when you create


a process. If you want to rename the subprocess to something more
meaningful for your model:

1. Select it from the Alternative Sub-Processes list on the


Process dialog box.

2. Click Edit to modify the sub-process definition.


3. Highlight the existing name and type over it. For this example,
call the sub-process Main.
4. Click on OK.

The new name you specified appears in the Alternative Sub-


Processes list
and becomes the sub-process.

You can add more sub-processes to the process by clicking on Add


and naming the new sub-process. To activate a different sub-
process, select it from the Alternative Sub-processes list.

Sub-processes can be deleted with the Remove command button,


and copied using the Copy button.

Click on OK when you have finished defining the Process.

Adding Detail to a Process


Once you’ve defined a Process, you can begin to define the activities
and processes that make up the Process.

Double-click on the Process icon. This opens the layout of the


currently active subprocess.

What you see is a blank layout, except for two pads, an input pad on
the left, and an output pad on the right:

SIMPROCESS User’s Manual 75


CHAPTER 2–SIMPROCESS Basics

These pads connect any processes and activities (nodes) at this


level of the subprocess to the nodes at the next higher level. Once
the input and output pad are connected by connectors, entities flow
from level to level.

Within the subprocess, you can add activities (and processes) to


detail the tasks being performed. We will not go into that level of
detail here, but you do need to connect the input and output pads of
the subprocess. If you neglect to do this, entities will have no path
to follow across the process node: entities entering the process will
never emerge again.

NOTE
Make sure you connect the Input and Output pads on all
Sub-Processes.

76 SIMPROCESS User’s Manual


Simulation Setup

Simulation Setup
There are two steps you need to take before running a simulation:

• Set the run time parameters for the simulation, e.g., start and
end dates, number of times to repeat the simulation, etc.

• Set animation parameters. These determine what you see on


your screen while the simulation is running.

Run Settings
To set run time options for a simulation, select Simulate from the
SIMPROCESS menu, and then click on Run Settings…:

Setting the Start and End Dates

The values you choose for the Start and End fields determine how long
your simulation runs, in calendar time. For example, if you want to
simulate a month of processing, you can specify:

Start: 1/1/2000 00:00:00

End: 2/1/2000 00:00:00

This indicates a starting date of January 1, 2000, at midnight, and


an end date of February 1, 2000, at midnight. The simulation

SIMPROCESS User’s Manual 77


CHAPTER 2–SIMPROCESS Basics

terminates as soon as the clock strikes midnight at the end of


January 31.

If you do not enter a time, the hours, minutes and seconds fields
default to zero. So in the example above, we could have omitted the
time of day.

NOTE
Remember that if you set Start and End dates for objects in
your model, you must coordinate those dates with the
simulation run dates.

For example, a Generate activity with Start and End dates


that fall outside of the simulation Start and End dates will not
generate entities during the simulation. Or, a Resource
Downtime with Start and End dates outside of the simulation
Start and End dates will not be applied.

Run Dates and the Real Calendar


SIMPROCESS allows you to model varying levels of demand by
specifying different entity generation rates in a Generate activity.
You can specify different start and end dates for different entity
generation events. You can also specify unique schedules for each
day of the week.

SIMPROCESS knows what day of the week it is, as well as the


month, year, and time of day, at any moment in a simulation. It
maps the simulation dates to the real calendar. For example, if you
look at a calendar for 2000, you will see that the year begins on a
Saturday.

78 SIMPROCESS User’s Manual


Simulation Setup

Animation Settings

Show Clock

Turns on or off a clock which displays simulation time while the


simulation is running.

Show Counts

If Show Counts is turned on, each activity or process will display a


number above its icon. Counts for Generate activities show the
number of entities generated. Counts for Dispose activities show how
many entities have been disposed. Counts for all other activities and
processes show how many entities are in that process or activity.

Show Entities

Show Entities turns the display of entities on or off during the


animation. Showing entities helps you visualize the workflow.

Update Dynamic Labels

Update Dynamic Labels turns the display of dynamic labels on or off


during the animation.

Animation Speed

You can change the Animation Speed to speed up or slow down the

SIMPROCESS User’s Manual 79


CHAPTER 2–SIMPROCESS Basics

simulation. The fastest value is 5000, and the default is 1000. You
may wish to set this to a smaller value while you are debugging your
model. The smallest value allowed is 1.

80 SIMPROCESS User’s Manual


Running a Simulation

Running a Simulation
To start the simulation running, either click the blue runner icon on
the tool bar, or select Simulate from the SIMPROCESS menu bar,
followed by Run.

Before starting the simulation, SIMPROCESS does two things:

1. Asks you if you want to save the latest changes to the model.
2. Checks your model for errors.

If SIMPROCESS finds errors, it issues informational messages and


aborts the simulation.

If you want to check your model for errors before you try to run a
simulation, choose Verify Model from the Simulate menu, before
running.

Running a Simulation with Model Parameters


If your model has User-defined Attributes which were selected as
Model Parameters, when you start the simulation run, you will be
prompted to enter initial values for those Model Parameters.

The Model Parameters are displayed in a table. The column under


Description gives you the name of the User-defined Attribute or a
descriptive comment. The Value column shows the current initial
value the attribute will have at the start of the simulation run.

To change the value of a Model Parameter, select it in the table. The


Description of the selected parameter will be displayed below the
table along with its default value and the mode of its value (integer,
real, etc.)

The next step is to enter the desired value of the Model Parameter
in the Current Value field. Press the Update button and the new value
will entered in the Value column next to the corresponding
description. If you press Reset, the selected Model Parameter will
return to its default value. The Reset All button, under the Help
button, will set the value of all the Model Parameters back to their
defaults.

SIMPROCESS User’s Manual 81


CHAPTER 2–SIMPROCESS Basics

Creating Model Parameters from User-defined Attributes is


covered in Chapter 10, ”Customizing a Model with Attributes and
Expressions,” beginning on page 213

What You Can Do During a Simulation


While a simulation is running, you can double-click on a Process to
view entity movement within the process’ hierarchy.

Double-click on any blank area of the model layout to ascend back


to a higher level of the model hierarchy.

Using the Simulate option on the menu bar, you can:

• Pause the simulation.


• Resume simulation after a pause.
• Stop the simulation before its scheduled end.
• Click on Animation Settings to change animation options. The
simulation pauses while you reset these options.
• You can double click on an Activity icon to bring up its
properties dialog. The simulation will be paused. Some
fields—most notably Duration/Value—can be changed in the
middle of the run. When the dialog is closed and the
simulation resumes the new value will take effect.

82 SIMPROCESS User’s Manual


Standard Output Report

Standard Output Report


After the simulation run has completed, you can display the
Standard Report to view output statistics for your model. From the
Report menu bar, choose Display Standard Report.

This will open the Standard Report Dialog. In the Report


Replications list box, (if your model ran for multiple replications)
you can select which individual Replications, the Average of All
Replications run, or the Sum of All Replications run, that you want to
see performance measures for. Typically, you will want to look at
the Average of All Replications report. Next, select whether you want
to view the Standard Report with a text editor (Notepad by default)
or with a spreadsheet. Now, press the Display Report button to open
the report.

To view the Standard Report with a spreadsheet, use the Browse


button to point to its executable, i.e., Excel.exe.

For more detail on the Standard Report see Chapter 8, ”Output


Reports,” beginning on page 181.

SIMPROCESS User’s Manual 83


CHAPTER 2–SIMPROCESS Basics

84 SIMPROCESS User’s Manual


CHAPTER 3

Statistical Modeling Constructs

SIMPROCESS User’s Manual 85


CHAPTER 3–Statistical Modeling Constructs

Why use a statistical approach?


SIMPROCESS lets you analyze your processes using discrete event
simulation. This means that SIMPROCESS models systems by taking
the processes that happen in the real world and breaking them down
into the key events that occur. In a factory parts move to a station, are
processed, and then move to the next station. If one part goes into a
station and one part comes out, then the most important aspect of mod-
eling the station would be to represent the processing time (which, in
the real world, will vary due to any number of factors) by a statistical
distribution.

A statistical distribution is used to give the model the randomness that


always occurs in the real world. Of course, if things in the real world
never varied, you would not need simulation! You could perform
mean-value analysis on your system. That's a simple way of predicting
system performance by looking only at average rates. Unfortunately
the real world almost never matches the performance predicted by
mean-value analysis, because statistical fluctuations almost always
need to be taken into account.

You don't need to be an expert in statistics or modeling to use


SIMPROCESS, though; just having some idea of how things vary is
enough. If you know that it usually only takes 5 minutes for a clerk
to process some paperwork, but it can take as long as 15, you're well
on your way to having a statistical model of that clerk. You're not
looking for exact answers, but general behavior. Introducing a small
amount of randomness through simulation can be all that is needed
to transform a simplistic mean-value analysis into a realistic model.

In addition to being able to model processes' statistical nature,


SIMPROCESS also gives you a picture of flow through your system.
It is very difficult to know how people, machinery, deliveries and
resources are going to interact in a proposed system. SIMPROCESS
lets you see how things work, while still in the planning stage.
Animation gives valuable insight into how things work, and how they
could work.

86 SIMPROCESS User’s Manual


Random Number Generation

Random Number Generation


SIMPROCESS contains one hundred random number streams, each
having a different random number seed. You can view the seeds
available from Seeds on the Define menu bar.

The purpose of using different random number streams in your


model is to control variance. This is an advanced topic well beyond
the scope of this manual. Please refer to texts on statistics and ran-
domness, including Simulation Modeling and Analysis by Law and
Kelton (McGraw-Hill).

SIMPROCESS User’s Manual 87


CHAPTER 3–Statistical Modeling Constructs

Standard Distributions
SIMPROCESS comes with many standard probability distributions
built-in. You can also create empirical distributions from your own
data. The following pages give brief descriptions of the standard
distributions.

Choosing the Right Distribution for Your Data


For a particular model, it is not always clear which of the standard
distributions you should use. Fortunately, simulation results are
usually not too strongly dependent on the choice of distributions: a
distribution with approximately the right shape should be adequate.
Here are some guidelines which can help you choose the right
distribution.

If you are using the Professional version of SIMPROCESS, and have


experimental data, use Stat::Fit to determine the best distribution.
Stat::Fit uses sophisticated statistical tests to determine the best fit
distribution to a set of experimental data, so if you have the data, use
Stat::Fit. Use of Stat::Fit is covered in the Stat::Fit documentation.

Poisson distributions are good models for arrivals, or for any process
in which you know the average number that will happen in a time
period. If you are modeling events that are independent, but you know
on average how many will happen, then use a Poisson distribution.
There is both theoretical and experimental basis for this. The only
parameter you need to know is the mean.

If you are concerned with the time between arrivals, you should use
an exponential distribution, for it can be shown that if arrivals are
Poisson distributed, the times between arrivals are exponentially
distributed. The only parameter you need to specify is the mean.

If you are modeling a random process whose value is not too close
to zero, you might use the normal distribution. This generates the
familiar “bell-shaped curve.” You need to specify the mean and
standard deviation.

If you would like a bell-shaped curve that is restricted to the inter-

88 SIMPROCESS User’s Manual


Standard Distributions

val between 0 and 1, choose a Beta distribution.

If you have a distribution that is skewed, you might choose the log-
normal distribution.

The Weibull and Gamma distributions are useful when you want to
be able to widely vary the shape of the distribution by varying the
parameters you specify. This might be the case if you are using a
SIMPROCESS Expression to implement the distribution.

The simplest distribution to use is a Triangular distribution. If you


know the least amount of time it takes to perform a task, the aver-
age time and the most time, you have the minimum, mean and max-
imum. This can be useful as a starting point when you don’t have
much data on the process being studied.

For a more complete listing of the statistical distributions available


in SIMPROCESS, see Appendix C.

SIMPROCESS User’s Manual 89


CHAPTER 3–Statistical Modeling Constructs

User Defined Distributions


There are two methods for creating User Defined Distributions.
Both are listed on the Define pull-down menu. The first, Standard…,
customizes an existing SIMPROCESS distribution. The second,
Tabular…, creates a statistical distribution from discrete data points
using a table format. These User Defined Distributions can be used
anywhere in the model where a statistical distribution is specified,
such as a duration field on an activity dialog.

User Defined Distributions Procedures


1. Using the Define Distributions pull-down menu, select
Standard.... Use this dialog box to Add, Edit, Copy, or Remove
User Defined Distributions found in the list box.

2. Choosing the Add or Edit button brings up another dialog box


as shown below where you type in the:
Name is any unique non-blank user distribution name.
Sample select a distribution for modification.

90 SIMPROCESS User’s Manual


User Defined Distributions

3. Using the Sample text box, either change the parameters of the
distribution within the parentheses or select the triple dot but-
ton. This button opens a dialog box containing the parameter
descriptions, e.g., Erlang parameters.

4. To see the PDF (Probability Distribution Function) and CDF


(Cumulative Distribution Function) plotted, choose the View
button from the dialog box shown in Step 3. The PDF is
labeled on the left y-axis, the CDF on the right y-axis.
5. The graph can be printed to a file. To continue, select Return
from the graph’s Option pull-down menu.
6. Once you are finished entering the data, choose OK and the
User Distribution you have just defined is added to the list box.
This User Defined Distribution can now be used anywhere in
the model where a statistical distribution is specified.
7. If you wish to copy an existing User Distribution, select the
distribution, choose the Copy button and you can enter another
Name for the distribution.
8. If you wish to remove an existing User Distribution, select the
distribution, and choose the Remove button.
9. Once you are finished with the User Distributions, choose the
Close button.

SIMPROCESS User’s Manual 91


CHAPTER 3–Statistical Modeling Constructs

Tabular Distributions
Tabular Distributions help you create a statistical distribution from
a table of discrete data points.

1. Using the Define Distributions pull-down menu, select Tabular...


Use this dialog box to Add, Edit, Copy, or Remove Tabular
Distributions in the list box.
2. Choosing the Add or Edit button brings up another dialog box
shown below:

3. Type in the Name as any unique non-blank User Distribution


name.
4. Type is selected from the list box. Choose either a discrete or
continuous probability distribution function. If you choose
discrete, only the exact values you indicated in the right column
will be chosen when the distribution is sampled. If you choose
continuous, SIMPROCESS will interpolate from the Values you
specified and the probabilities associated with them.
5. To update the table, point and click on the cell you wish to modify.
The Value text box under Type will switch between probability and
value depending on which column you have clicked on.
Type the number in the text box or in the table cell directly.

92 SIMPROCESS User’s Manual


User Defined Distributions

You can add and delete rows by clicking on a cell and then
choosing the appropriate button on the right. The row will be
added above the one selected. If you choose the Erase Row but-
ton, entries in the selected row will be erased but cells will not
be shifted up.
You can also populate a table by importing data from a text file
using the Import button.

• The first row of the text file should contain an inte-


ger whose value is the number of records that follow.
• Value means a random variable value (x)
Prob: means the Cumulative Distribution Function.
CDF = P(X ≤ x).
• Specify both columns in ascending order. In other
words, the cell below should always have a larger
number than the cell above it. Otherwise, when you
try to View, an error message appears.
• The Probability of the last cell should always equal
1.
• Unless specified in the table, P(X ≤ 0) = zero.

To see the PDF (Probability Distribution Function) and CDF


(Cumulative Distribution Function) plotted, choose the View
button. The graph can be printed to a file.The PDF is labelled
on the left y-axis, the CDF on the right y-axis.
6. To continue, select Return from the graph’s Option pull-down
menu.
7. Once you are finished entering the data, choose OK and the
Tabular Distribution you have just defined is added to the list
box. This Tabular Distribution can now be used anywhere in
the model where a statistical distribution is specified.
8. If you wish to copy an existing Tabular Distribution, select the
distribution, choose the Copy button and you can enter another
Name for the distribution.
9. If you wish to remove an existing Tabular Distribution, select
the distribution, and choose the Remove button.
10. Once you are finished with the Tabular Distributions, choose
the Close button.

SIMPROCESS User’s Manual 93


CHAPTER 3–Statistical Modeling Constructs

Run Settings

Simulation Time
Here you will enter the calendar date and time for the start and end
time of your simulation run.

Warmup Every Replication


If this option is selected, and you have entered values greater than 0
for both the Number of Replication and Warmup Length, SIMPROCESS
will start collecting statistics after the Warmup Length has expired for
each replication.

Warmup Length
If a Warmup Length is entered (in hours) SIMPROCESS will start the
collection of statistics for the model run, after the end of the Warmup
Length. This allows you to only gather information on your system
after it has reached "Steady State".

Number of Replications
When your model contains randomness (represented by statistical
distributions) you will want to run the model for multiple replications.
This allows you to average the results and gives you a more accurate
picture of “most likely” outcome of your scenario.

Reports are gathered for each replication and the Total and Average
of all runs.

94 SIMPROCESS User’s Manual


Run Settings

Reset Random Number Streams


This option will reset the Random Number Stream before starting each
new replication. Typically, you will leave this turned off. In general
terms, the reason for running your model for multiple replications is
to test how randomness affects your system. Turning this option on
negates that test.

Timescale
Timescale connects the animation with the simulation clock. If
Timescale is set to 0, the animation will run at its fastest, from event
to event. If Timescale has any value greater than 0, the animation will
pause between events to show the amount of time between them. If
100 is entered here, the animation clock will run approximately 1:1
with real-time. The smaller the number entered, the faster the
animation will run. This feature is useful if you want the animation
to show "bursty" behavior in your model.

Cost Periods...
This option allows you to set the frequency over which the ABC
Reports will be collected. You can also set the name of the currency
that the ABC Reports will use.

SIMPROCESS User’s Manual 95


CHAPTER 3–Statistical Modeling Constructs

96 SIMPROCESS User’s Manual


CHAPTER 4

Activity Modeling Constructs

The SIMPROCESS activities that were not covered in Chapter 2,


”SIMPROCESS Basics,” beginning on page 49, can be divided into two
categories:

Entity Related
These activities coordinate groups of Entities. This category includes:
• Assemble. Receives two or more entities and assembles
them, as specified, into a single entity and releases the entity.
• Branch. Routes entities through different connectors of the
model network.
• Merge. Routes entities from different connectors onto one
connector.
• Batch. Stores entities until conditions set by the user are met,
and then releases the entities in one batch. The entities
emerge as a single unit, but retain their individual identity.
• Unbatch. Separates a batched entity into its constituent parts
(entities).

SIMPROCESS User’s Manual 97


CHAPTER 4–Activity Modeling Constructs

• Split. Divides an entity into parent and child entities that can
undergo parallel processing.
• Join. Reunites families of entities that were created in Split
activities
• Transform. Transforms an arriving entity into a different
entity type, and releases one or more entities of the new type.
• Copy. Makes duplicate copies of entities.
• Gate. Accumulates entities until a condition is met, and then
releases a specified number of them. Entities are not
assembled into a single entity.
• Assign. Assigns values to global entity and model attributes
and sets entity priorities.
• Synchronize. Coordinates the release of various entities,
which may be of different types, from different paths.

Resource Related
Unlike other SIMPROCESS activities, these activities affect
resources, not entities:

• Replenish Resource. Adds capacity to consumable


resources.
• Get Resource. Obtains a resource and holds on to it across
several processes and activities.
• Free Resource. Releases resources obtained by Get Resource
activities.

Resource related activities are described in Chapter 5–Resource


Modeling Constructs, beginning on page 135. The Entity Related
activities are covered in this chapter.

98 SIMPROCESS User’s Manual


Entity Related Activities

Entity Related Activities


This section deals with activities that are used to coordinate grouping
of Entities. The type of coordination to be done is specified at the
activity. Entities are queued up in these activities (except for unbatch,
split) until the conditions specified on the activity are met. This
queueing time is reported as “Hold for Condition” in the reports. This
is reported separately from the “Wait for Resource” queueing time
which can accumulate at any activity that a resource requirement has
been specified for.

• Assemble Activity
• Batch Activity
• Unbatch Activity
• Gate Activity
• Synchronize Activity
• Split Activity
• Join Activity

SIMPROCESS User’s Manual 99


CHAPTER 4–Activity Modeling Constructs

Assemble Activity
The Assemble activity is used to build several entities into a single
output entity. For example, if two approvals and a check are required
to form one “approved loan,” you can use the Assemble activity to
model this process.

Assemble has two input pads, Component and Trigger, and two output
pads, Out and NoMatch, that determine Entity behavior. The
Component pad places incoming entities into a queue until all entities
to be assembled have arrived. If an entity entering the Component pad
is not on the component entity list, it will immediately leave the
Assemble activity through the No Match pad.

The Trigger pad is only relevant if Hold for Trigger is selected as one
of the activity’s options. Entities entering the Trigger pad can trigger
the release of the assembled entities. This way, assembled entities are
only released when an entity, such as a Customer Order, arrives.

100 SIMPROCESS User’s Manual


Assemble Activity

Dialog Box Field Definitions

Component Entities
A list of component entities to be converted to assembled entities.
Entities on the list are queued until the specified quantity of each entity
type has entered the Assemble activity.

• Add: Opens a dialog to define component entities.


• Edit: Opens a dialog to modify the component entity
definition.
• Remove: Removes the selected component entity.
• Batch Components: Releases the assembled entity as soon
as all component entities are available for assembly.
• Hold for Trigger: Holds output entities until an entity enters
the Trigger pad.

Assembled Entity
The entity type to be released after all component entities have entered
the activity. A combo box provides a list of defined entity types.

Duration
Where you specify the delay time of the activity. The time specified
in the Duration will be applied after the activity. In other words, it will
be reflected in the Cycle Time of the Assembled Entity.

SIMPROCESS User’s Manual 101


CHAPTER 4–Activity Modeling Constructs

• Value: The amount of time required to perform this activity.


Use the combo box to select a statistical distribution or enter
a constant value directly in this field.
• Units:
Determines if the Duration entered is measured as
Seconds, Minutes, Hours, Days, or Weeks.

Resources
This command button opens a dialog for specifying the set of
Resources that are required to perform this activity. Refer to Chapter
5–Resource Modeling Constructs, beginning on page 135 for
information on defining resources.

102 SIMPROCESS User’s Manual


Batch Activity

Batch Activity
The Batch activity combines several entities into one entity while
retaining the identity of the original entities. The resultant entity
travels throughout the process as a single entity. At some later time
it can be disassembled into its constituent entities using an Unbatch
activity.

The Batch activity is useful, for example, when combining several


entities (e.g., merchandise ordered by various customers) into a parent
entity for transportation. Then after the transportation activities the
parent entity can be broken down into the entities that comprised it.
Statistics can be collected for the batched entity separately from its
constituent members.

SIMPROCESS User’s Manual 103


CHAPTER 4–Activity Modeling Constructs

Dialog Box Field Definitions


• Batched Entity: The type of entity that will serve as the
container or parent entity. An entity of this type is created and
all other entities become children of the parent.
• Quantity to Batch: The maximum number of entities that fit
in one batch.
• Maximum Hold Time: The maximum amount of time to hold
before a batch which has met the Minimum Quantity
requirement is released.
• Minimum Quantity: The minimum number of entities that
must be in a batch before it can be released.

When setting the Duration for a Batch activity, the time specified will
be applied after the activity. In other words, it will be reflected in the
Cycle Time of the Batched Entity.

104 SIMPROCESS User’s Manual


Unbatch Activity

Unbatch Activity
An Unbatch activity separates a batch entity into its constituents
(children) and then destroys (Disposes) the parent entity. Many levels
of batching are possible. That is, batches can be composed of batches.
The Unbatch activity only disaggregates one level of batch at a time.

When you set the Delay time for an Unbatch activity, the time specified
in the Duration will be applied before the activity. In other words, it
will be reflected in the Cycle Time of the Batched Entity. The time
specified in the Duration will be applied after the activity. In other
words, it will be reflected in the Cycle Time of the Assembled Entity.

SIMPROCESS User’s Manual 105


CHAPTER 4–Activity Modeling Constructs

Gate Activity
The Gate activity accumulates entities until some number of entities
have been received or until a signal is received from another activity
to release entities. It then sends a designated number of entities out
into the model. Entities are not batched in a Gate activity.

A Gate activity has two pads that determine entity behavior, the Hold
pad and the Trigger pad. The Hold pad, located on the lower left of
the Gate icon, is a queue for incoming entities. Entities that arrive at
that pad are stored here. The Trigger pad, located on the upper left of
the Gate icon, disposes of incoming entities and causes any entities
stored on the Hold pad to be released.

A Gate activity has two gating policies that can be effective


concurrently. The first gating policy is called Trigger Release. When
an entity arrives at a Trigger pad, it is disposed of, and it triggers the
release of the number of entities as specified in the Trigger Release
Quantity field. A Trigger pad can synchronize the flow of entities
between different activities.

The Gate activity can be used as a buffer or queue to hold material from
one section of the model, until a condition is met in another part of
the model. When that condition is met, a trigger entity is sent to the
Trigger pad of the Gate Activity.

For example, say that customer orders are printed out and sent on to
the shipping department on an hourly basis. This could be reflected
in the model by a Gate activity, which is triggered when it receives
an entity that is generated hourly by a Generate activity.

The second gating policy is called Threshold Release. It allows the


release of some number of entities once a threshold number of entities
have arrived. This policy is useful for example, in cases where a truck
must wait until it is full before it departs.

Gating policies can be effective concurrently, so this activity can


implement a truck leaving when it is full or on the hour, even if it is
not full.

106 SIMPROCESS User’s Manual


Gate Activity

Dialog Box Field Definitions

Rank Method:
• Ranked As: Determines how the entities in queue will be
sorted. LIFO, FIFO, first and last created, high and low
priority, as well as high and low attribute values are
supported.
• Attribute: The User-defined Attribute type used to rank
entities at the gate. This field is only active when Highest or
Lowest Attribute Value First is selected in the Ranked As field.

Threshold Release:
• On/Off: Enables/disables the Threshold Release feature.
Threshold Release is on when the check box is selected.
• Threshold Quantity: The threshold number of entities to
accumulate and release when the Threshold Release is
checked on.

SIMPROCESS User’s Manual 107


CHAPTER 4–Activity Modeling Constructs

Trigger Release:
• Release All: Release all the accumulated entities when a
trigger entity has been received on the Trigger Pad.
• Quantity: The number of entities to release when a trigger
entity has been received on the Trigger pad. This is used with
the Trigger Release policy. The value can be a constant
integer or can be derived from a statistical distribution.

108 SIMPROCESS User’s Manual


Synchronize Activity

Synchronize Activity
A Synchronize activity coordinates the release of many entities, which
may be of various types. You specify the number of input/output pads
for a Synchronize activity. Entities arriving at each pad are stored in
separate queues. When each queue has at least one entity, each queue
releases one entity to its corresponding output pad.

For example, a project may require four jobs to be done in parallel,


with the work kept in step at various tasks within the process. Before
work can proceed on one job, all others must be at the same stage of
completion. You can use a Synchronize activity with four pads to
model the wait time and release of the parallel tasks.

Dialog Box Field Definitions


• Number of Pads: The number of pairs of input and output Pads
required by this activity.

SIMPROCESS User’s Manual 109


CHAPTER 4–Activity Modeling Constructs

Entity Control Activities


This section discusses activities that are used in the control of entities
through the process model:

• Assign activity
• Transform activity
• Branch activity
• Merge activity
• Copy activity

110 SIMPROCESS User’s Manual


Assign Activity

Assign Activity
The Assign activity is one method you can use to provide values to
globally defined attributes. You can also use Assign to change the
priority of an entity.

Setting of Attribute values using the Assign activity is covered in


Chapter 10, ”Customizing a Model with Attributes and Expressions,”
beginning on page 213.

Dialog Box Field Definitions and Buttons


• Set Entity Priority sets or changes the Priority of an entity as
it passes through this activity.

SIMPROCESS User’s Manual 111


CHAPTER 4–Activity Modeling Constructs

NOTE
When Entities are contending for Resources, Entities with a higher
priority get to use available Resources first. The higher the number,
the higher the Entity’s priority.

Set Attributes lists any existing attribute assignments:

• Use Add… to set values for entity attributes.


• Use Edit… to modify existing assignments. Select the
attribute assignment you want to modify from the Set
Attributes list.

• Use Remove to delete a previously defined assignment.

Resources and Duration, are used as they are in other


SIMPROCESS activities.

112 SIMPROCESS User’s Manual


Transform Activity

Transform Activity
The Transform activity changes one type of entity into another type.
A single arriving entity can be changed into many output entities (all
of the same type.)

Dialog Box Field Definitions and Buttons

Output Entities
• Quantity. The number of new entities to create. This number
of entities will be generated for every connector emanating
from the activity.
• Entity Type. The type of entity to be released. You can enter
the name of the entity type or select a type from a pull-down
list.

SIMPROCESS User’s Manual 113


CHAPTER 4–Activity Modeling Constructs

• If you define a Duration for the activity, the time specified in


the Duration will be applied before the activity. In other
words, it will be reflected in the Cycle Time of the incoming
entities.
• Copy Attributes opens a dialog box where you can select the
attributes of the arriving entity to be transferred to the new
output entity. Examples of attributes you can copy include
User Defined Attribute values, creation time, etc. Time
Stamps and Entity Priority can also be copied.

Specifying Attributes to Copy


When you select the Copy Attributes command button, the following
dialog box appears:

You can select the following options on the Copy Entity Fields and
Attributes dialog box:

• Copy Creation Time copies the simulation creation time of the


original entity to the transformed entities.
• Copy Time Stamps duplicates the list of predefined
timestamps carried by the arriving entity to transformed
entities.

114 SIMPROCESS User’s Manual


Transform Activity

• Copy Entity Priority duplicates the priority of the arriving


entity to transformed entities.

If you do not copy the arriving entity’s Priority, the transformed entity
receives the default Priority value defined in the Entity Library. The
initial setting is 1.

You may also wish to copy User Defined Entity Attribute values
associated with the entity. During simulation, different variable types
(Integer, Real, Boolean, and String) can be added to an entity. You can
copy the User Attribute values using any of the usual list box selection
techniques.

Once you are finished entering data, click on OK to leave the dialog
box, confirming your current selections. The Cancel button cancels the
current dialog selections.

SIMPROCESS User’s Manual 115


CHAPTER 4–Activity Modeling Constructs

Branch Activity
A Branch activity routes entities through different paths of the process
model. It allows you to model a step in your process where a decision
is reached and alternative pathways are selected depending on the
decision.

In the Branch Activity detail dialog, you select the type of branching
criteria to use, such as Probability, Entity Type, and globally defined
Attribute value. But you specify the precise criteria on the Connectors
associated with the Branch.

For example, say the order fulfillment process for new customers
requires a step that is not needed for repeat customers, such as creating
a customer profile. You might use different entities for new customers
and repeat customers and branch on Entity Type. Or you can use a single
Customer Order entity and assume that a certain percentage of
customers are new and a certain percentage are repeats. In that case,
you select Branch Type Probability and then set the probability of each
event on the connectors leading from the Branch output pad:

Figure 1. Branching on Probability

116 SIMPROCESS User’s Manual


Branch Activity

Dialog Box Field Definitions and Buttons

Select Branch Type


• Probability tells SIMPROCESS to route entities based on a
probability that you specify on each connector leading from
the Branch. All probabilities must sum to 1.0 and at least one
of the connector’s should have its Otherwise field set to True.
• Attribute. Route entities that have matching User Defined
Attributes and value along the appropriate Connector.
• Entity Type. Route entities based on its type, e.g., send Orders
one way and Bills another. Set the entity type on the
Connectors emanating from the Branch.
• Priority. Enter the entity priority number to branch on. Values
can range from 1 to 100.

SIMPROCESS User’s Manual 117


CHAPTER 4–Activity Modeling Constructs

NOTE
When Entities are contending for Resources, Entities with a higher
priority get to use available Resources first. The higher the number,
the higher the Entity’s priority.

Resources
This command button opens a dialog for specifying the set of
Resources that are required to perform Branch activity. Refer to
Chapter 5–Resource Modeling Constructs, beginning on page 135.

118 SIMPROCESS User’s Manual


Branch Connectors

Branch Connectors
Connectors link Activities and Processes together and are paths used
by Entities to flow through the model. They are objects in their own
right with information such as selection probability, user defined
attributes, etc. Connector names can assist in labeling your model, e.g.
the Entity type that can flow across it. If selected, SIMPROCESS will
automatically label Connectors emanating from Branch Activities,
see “Connectors and Branch Activities” on page 120 for details.

You can change the Name of the Connector, type in a Comment,


Document your Connector, change the Line Style, and set Branching
Parameters using the Branch Connector Properties dialog box.

To display the Connector Properties box either: double-click on the


Connector; or click to select the Connector and choose Properties on
the Edit pull-down menu.

Connector Names
The System always assigns a default Connector name, e.g. Conn44.

SIMPROCESS User’s Manual 119


CHAPTER 4–Activity Modeling Constructs

You should change the Connector name to one that you can identify
later. To change the Connector Name double-click on the current name
in the Name field and type a new one. The AutoLabel check box is
discussed below.

Displaying Connector Names


The Edit Preferences option, on the Edit pull-down menu, determines
if Connector names are displayed in the model. However, individual
Connector dialog boxes have Show Name check boxes that will
override the model default.

If Show Name is selected, the Name field is displayed on the longest


horizontal portion of Bent Connectors. Straight Connector labels are
displayed across the middle of the Connector.

If this check box is unselected, the Name is NOT displayed.

The Auto Label check box applies only to Connectors emanating from
Branch Activities. If selected, the Name will be generated by
SIMPROCESS. SIMPROCESS uses entries in the Connector Detail
dialog box depending on the Entity Type. Table 1, “Connector
Names Using Auto Label,” on page 122 shows the fields used for
each Entity Type and provides an example of the label displayed.

Connectors and Branch Activities


There are additional fields that appear in the Connector detail dialog
box depending whether or not the Connector is connecting a Branch
Activity to another Activity or Process. When a Connector emanates
from a Branch Activity, use the Branch Connector Properties dialog box
to specify the branching parameters.

Depending on the type of Branch you selected in the Branch Activity


Properties dialog box, you will see the corresponding branch in the
Connector Properties dialog box.

120 SIMPROCESS User’s Manual


Branch Connectors

Entity Type —Select the type of the Entities you wish to flow along this
connector from the combo box.

Probability —Enter the probability (a number between 0 and 1.0) that


the Entity will flow on this Connector.

Priority — Enter the Entity priority number to branch on. Values are
from 1 to 100.

When Entities are contending for Resources, Entities with


a higher priority get to use available Resources first. The
higher the number, the higher the Entity’s priority.

Attribute —The first line shows the name and type of the attribute you
selected in the Branch Properties box. Using the next two lines, you
can branch on the equality of numbers, strings, booleans, or branch
on ranges of numbers.

Otherwise —If you select Otherwise, this Connector becomes the


default branching Connector. This means all entities pass through this
Connector if none of the criteria in any other Connectors are satisfied.

SIMPROCESS User’s Manual 121


CHAPTER 4–Activity Modeling Constructs

TABLE 1. Connector Names Using Auto Label

Branch
Activity
Type Connector Properties Used Display Example

Probability Probability (between 0 and 1.0) 0.75

Otherwise (True or False) Otherwise

Attribute Branch If Attribute Is (value) Displays User Defined Attribute


Name on Connector with IF or
AND conditions, e.g.
My Attr1 = 5, or
4 < My Attr1<7

Otherwise, (True or False) Otherwise

Entity Type Type (from Entity type combo Request for Quote
box)

Otherwise (True or False) Otherwise

Priority Priority (Entity Priority 1


1-100)

Otherwise (True or False) Otherwise

122 SIMPROCESS User’s Manual


Merge Activity

Merge Activity
A Merge activity routes entities from different connectors into one
connector. Merge can be used to TimeStamp all entities or to reduce
the number of “to and from” Connectors to create a more visually
appealing model.

SIMPROCESS User’s Manual 123


CHAPTER 4–Activity Modeling Constructs

Copy Activity
The Copy activity generates duplicate entities. This is useful when two
different activities require the same information. For example, an
Order may need to go to Accounting and Manufacturing at the same
time.

Dialog Box Field Definitions


• Number of Copies per Connector is the number of entities that
will come out the Copies pad into each connector.
• If you define a Duration for the activity, the time specified in
the Duration will be applied before the activity. In other
words, it will be reflected in the Cycle Time of the incoming
entities.
• If you have defined Time Stamps for the incoming Entity,
those values can be passed to the Copies by selecting Copy
Time Stamps.

124 SIMPROCESS User’s Manual


Split and Join Activities

Split and Join Activities


The Split and Join activities work together to temporarily split the
processing of an entity among parallel activities.

At the Split activity, an entity is converted into two or more entities,


each of which follows a different path before reuniting at a Join
activity.

The Split activity generates child entities from the parent entity. The
children and the parent entity are said to belong to the same family.
After going their separate ways, the family is reunited at the Join
activity, where a single entity exits for continued processing.

In the order fulfillment process, Split and Join might come into play
in the handling of rush orders. To speed up processing of rush orders,
you might divide the work among several clerks at some point:

SIMPROCESS User’s Manual 125


CHAPTER 4–Activity Modeling Constructs

Figure 2. Rush Order

In the figure above, a Split activity takes a customer order entity and
releases three entities, the original and two children. Each entity goes
to a different activity, where a different task is performed on the order.

126 SIMPROCESS User’s Manual


Defining a Split Activity

Defining a Split Activity


When you add a Split activity to the SIMPROCESS layout, its icon
is displayed with one input pad and two output pads attached:

The upper output pad is named Clones; the lower pad is named
Original (if you double-click on the pads, you will see their names in
the Pad Detail dialog box).

Use the Original pad to route the original entity to the next activity
in its path. Use the Clones pad to route each of the split entities to their
next activities. You can release an unlimited number of split entities
of different entity types at a Split activity, but all entities emerge from
the same pad; you cannot add a third output pad.

To define the process shown in Figure 2, begin by placing a Split


activity and three Delay activities on the SIMPROCESS layout.

Open the Split Activity Properties dialog box by double-clicking on the


Split icon:

SIMPROCESS User’s Manual 127


CHAPTER 4–Activity Modeling Constructs

Dialog Box Field Definitions


The unique attributes of the Split Activity are:

• Family Name. This names the family of entities you are


creating. The original entity and its children can be identified
by their common family name. Family Name is used at a Join
activity to identify the entities to be joined.

In this example, enter Rush Order for Family Name.

Click on OK when you are done.

Identifying Split Entities


Split entities are connector attributes: you define a Split entity for each
connector linking a Split activity to a connecting activity.

You first draw a single connector from the Original output pad to an
adjoining activity’s input pad. Then, connect the Split output pad to
the other adjoining activities.

128 SIMPROCESS User’s Manual


Defining a Split Activity

As an example, Figure 2 shows the distribution of rush order


processing into three simultaneous activities: paper work, retrieval of
an item from inventory, and updating of the inventory database.

The Original pad of the Split activity is connected to the input pad of
the Update Database activity, so the original customer order entity
flows through Update Database.

Double-click on one of the connectors emanating from the Split pad:

Dialog Box Field Definitions


The unique attributes of the Split Connector are:
• Entity Type is the field where you will select the split entity
that will flow along this connector.
• Quantity allows you to specify how many of the split entities
will flow along this connector for each original entity that
enters the Split activity.

SIMPROCESS User’s Manual 129


CHAPTER 4–Activity Modeling Constructs

• Copy Attributes opens a dialog box where you can specify


which Global Entity Instance attributes to copy from the
original entity to each of the split entities. Entity Priority and
Time Stamps can also be copied from the original entity to
each of the split entities.

Click on the Entity Type pull-down box for a list of the entities in your
model. Select the entity that you want to flow along this connector.

For analysis purposes, consider using a different name for the children.
For example, if you use a Customer Order entity for each of the paths
leading from the Split activity, and all split entities meet again at the
Join activity, the two split entities are destroyed at the Join, while the
original entity continues on. When total cycle time for customer order
entities is calculated at the end of a simulation, those split entities skew
the statistics.

Cycle times for the split entities are measured from generation in the
Split activity to termination in the Join activity, while the original
entity’s cycle is measured from a Generate to a Dispose activity.

In the case of Rush Order Processing, we do not want to skew the cycle
time or entity count statistics for Customer Order entities, so we define
an entity named Temp and use it on the Split connectors.

130 SIMPROCESS User’s Manual


Defining a Split Activity

Note that using an entity named Temp for split entities is adequate if
you are not interested in any simulation statistics of these entities. If
you are interested in the number of each split entity generated during
a simulation, or any other entity statistic, define a different entity type
for each Split path.

If you want SIMPROCESS to display the entity name on the


connector, select the Auto Label option. The name will be displayed
unless Show Name on the Connector is turned off.

Click on OK when you finish defining the connector.

SIMPROCESS User’s Manual 131


CHAPTER 4–Activity Modeling Constructs

Defining a Join Activity


Entities released from a Split activity are reunited at a Join activity.

Like the Split activity, the Join activity icon has one input pad and two
output pads. The upper output pad is named Joined; entities that are
reunited with their family exit through this pad. The lower pad is
named NoMatch; entities that are not members of the Join family leave
through this pad.

What happens if an entity that is not a member of the Rush Order family
enters the Join activity? It will simply pass through the Join activity
and exit through the NoMatch pad.

Double-click on the Join activity to define its properties:

132 SIMPROCESS User’s Manual


Defining a Join Activity

On the Join Activity Properties dialog box:

Family Name identifies the entity family to be joined. The pull-down


list for Family Name contains the names of all families that you have
defined in your model.

In this example, Rush Order is the family to be joined.

Batch Family Members tells SIMPROCESS to batch the child entities


with the original entity. The entity can be separated into its components
at an Unbatch activity. Otherwise, all the child entities are disposed
of by the Join Activity.

In the Rush Order example, child entities are no longer needed after
the Join.

By default, SIMPROCESS releases the original entity through the


Joined pad. If the original entity enters a Dispose activity or is
otherwise destroyed before it reaches a Join, SIMPROCESS releases
one of the child entities at the Join activity. You cannot specify which
child entity is released in this case; SIMPROCESS selects it for you.

Note that if you delete any child entities before they reach their Join
activity, the rest of the family still reunites at the Join; if the rest of
the family is already at the Join activity at the moment the child entity
is destroyed, SIMPROCESS releases them.

SIMPROCESS User’s Manual 133


CHAPTER 4–Activity Modeling Constructs

134 SIMPROCESS User’s Manual


CHAPTER 5

Resource Modeling Constructs

A resource is an agent that is required to perform the tasks associated


with an activity. People, equipment, vehicles, money, and space can
be modeled as resources. The limited availability of resources is an
important constraining factor in business processes.

For example, a bank customer requires the help of a loan officer in


order to submit a loan application. On a manufacturing line, a
computer board cannot be populated with chips unless both an
operator and a surface mounting tool are available. In these examples,
the loan officer, the operator, and the surface mounting tools are
resources whose availability affects the activity.

The unavailability of critical resources creates bottlenecks in a


business process. Simulation is a very effective tool for identifying
resource bottlenecks. SIMPROCESS provides the means for
modeling resources and for measuring the impact they have on the
performance of a business process. In addition, variable and fixed
costs associated with resources may be used to measure process costs
and activity costs. See Chapter 7, ”Activity-Based Costing,”
beginning on page 163 for more details.

SIMPROCESS User’s Manual 135


CHAPTER 5–Resource Modeling Constructs

This chapter describes how to:


• Define resources.
• Define groups of resources for complex resource
requirements.
• Define the resource requirements of activities.
• Use resource related activities such as: Get Resource, Free
Resource, and Replenish Resource.

First, though, we will begin by describing how SIMPROCESS


allocates resources during a simulation.

136 SIMPROCESS User’s Manual


Resources and Simulation

Resources and Simulation


When an entity arrives at an activity, SIMPROCESS checks to see if
any resources are required to process it. If resources are required,
SIMPROCESS attempts to obtain them. Once an activity gains control
of a resource, that resource is unavailable to any other activity that
requests it. The activity retains control of the resource until it finishes
processing the entity.

Resource Allocation Policy


During simulation, many activities may simultaneously contend for
the same resource. If a required resource is not available when an entity
arrives at an activity, the entity waits for that resource in a queue. This
state is defined as "Wait for Resource" in the SIMPROCESS output
reports.

If an activity requires two resources and only one is available,


SIMPROCESS may or may not obtain the resource that is available.
It depends on the rules you have defined for your model. Any resource
an activity holds is unavailable to other activities.

SIMPROCESS attempts to satisfy resource requirements in the order


of the priority of Entities queued for the resource. Priority is an entity
attribute assigned when the entity is defined. All entities with the same
priority are treated on a first-come, first-served basis.

SIMPROCESS User’s Manual 137


CHAPTER 5–Resource Modeling Constructs

Defining Resources
Use the Resource option from the Define pull-down menu, to define
resources in a model.

In the following discussion, we will use as examples resources for an


order distribution process: salesclerks to process the orders, trucks to
deliver merchandise, and fuel to power the trucks.

1. On the Define pull-down menu, select Resources...

From the Resources dialog box you can define new resources,
modify existing resource definitions, copy resource
definitions, or delete resources:

The Add function creates a new resource definition.

The Edit, Remove, and Copy functions are only active if there
are existing resource definitions. These functions operate on
the resource selected in the list box:

Edit modifies an existing resource definition.


Remove deletes a resource definition.
Copy creates a new resource based on the definition of an
existing one.
Type specifies the resource template that will be used to
create a new resource definition.

138 SIMPROCESS User’s Manual


Defining Resources

SIMPROCESS comes with three Resource types defined. You can


choose any one of the three when you define a new Resource from the
Type field at the top of the Resources list box. When you push the Add
button, a new Resource with the characteristics of the Type you
selected will be created. The three types of Resources are
characterized by their Downtime Schedules as follows:

• Resource - Default Resource, with no Downtime scheduled.


Available 24 hours a day, every day.
• Standard Shift- Same as the Resource, except with a
Downtime schedule that has the Day Shift Resource only
available from 8 am to 5 pm, Monday through Friday. Also
down for one hour from 12 noon to 1 pm.
• Night Shift - Same as the Resource, except with a Downtime
schedule that has the Night Shift Resource only available
from 11 pm to 8 am, Monday through Friday. Also down for
one hour from 3am to 4 am.

For more information on Resource Templates, see Chapter 9–


Reusable Templates and Libraries. This topic begins on page 199. For
more information on Resource Downtime, see Chapter 11–More
Advanced Model Building. This topic begins on page 263.

2. Click on Add to define a new resource:

SIMPROCESS User’s Manual 139


CHAPTER 5–Resource Modeling Constructs

On the Resource dialog box:

Name is any unique name identifying the resource. A default


name is provided, but you should change this to something
meaningful.

For this example, define the sales clerk staff, and name the
resource Clerks.
NOTE
Special characters, such as "/", "+", or "-", should not be
used in the Name of a resource. This may cause
SIMPROCESS to not collect statistics for the ABC
Reports.
Units identifies how much of the resource is available.
In this example, assume that there are five clerks on the staff.
Enter the number 5 in the Units field.
Defining all clerks as a single resource implies that the clerks
are interchangeable: each clerk can perform the same tasks as
any other clerk.
If any clerks on the staff have unique capabilities, define those
clerks as separate resources. For instance, say one of your five
clerks is particularly adept at handling irate customers. This
is the clerk you want to handle customer complaints. You can
define that person as a separate resource, named Diplomatic
Clerk, with 1 Unit. Then specify 4 Units for the
interchangeable Clerks resource.
Then number of Units of a Resource can also be specified with
a single line Expression, or a User-defined Attribute. For
more information on these topics, see Chapter 10–
Customizing a Model with Attributes and Expressions,
beginning on page 213.
Fractional Usage indicates whether or not you can allocate
fractional units of the resource. If you check off this box, you
can define a non-integer value for Units (e.g., 2.5, 10.2). It also
means that an activity can acquire a fractional part of the resource.

Whether or not to allow fractional usage depends on how the


resource is used in your model. For human resources such as

140 SIMPROCESS User’s Manual


Defining Resources

Clerks, allow fractional capacity if clerks can work on more


than one task at a time. If you assume that a clerk can only attend
to one task at a time, leave the Fractional Usage box blank.
Consumable indicates whether a resource loses a portion of
its units when it is allocated to an activity.
Fuel and money are examples of consumable resources. Say
you define a Fuel resource, with a capacity of 1000 gallons.
Some activity requires 50 gallons of fuel. Once the activity
uses 50 gallons of fuel, those 50 gallons are gone.
You can use the Replenish Resource activity to add units to
consumable resources during a simulation.
Clerks are reusable, so do not check Consumable.
The Cost function allows you to assign cost values to
resources and keep track of the expense involved in using
resources. This function is described in detail in Chapter 7–
Activity-Based Costing, beginning on page 163.
Expressions provide you with the means of writing your own
specialized processing instructions. Attributes are
customized variables you define for a resource. Typically,
expressions include processing of attributes. These topics are
discussed in depth in Chapter 10–Customizing a Model with
Attributes and Expressions, beginning on page 213.
The Document function is used the same way it is for
Activities, to store descriptive text about the resource.
Comment is a brief sentence about the resource. This field is
optional.

The Add Template command lets you save the resource you
have defined for re-use. Resource templates are discussed in
in Chapter 9–Reusable Templates and Libraries. This topic
begins on page 199.
The Downtime command lets you define the periods when the
resource will not be available in the model. Resource
downtimes are described in Chapter 11–More Advanced
Model Building. This topic begins on page 263.

SIMPROCESS User’s Manual 141


CHAPTER 5–Resource Modeling Constructs

Defining Resource Requirements for


Activities
Most processing tasks require one or more resources. For example,
completing an application for a patent claim may require a full-time
researcher, a part-time lawyer, and a part-time clerk. In this case, the
activity needs more than one resource, with some resources used at
less than their maximum capacity.

In some situations, one set of resources may be interchangeable with


another set. For example, shipping furniture from a factory to a
warehouse may require either three medium-size trucks or two large
trailers.

This activity requires a truck to transport the merchandise, and diesel


fuel to power the truck.

To define the resource requirements for the activity, start by double-


clicking on the activity’s icon to display the Activity Properties dialog
box. On the dialog box, click on the Resources button:

142 SIMPROCESS User’s Manual


Defining Resource Requirements for Activities

On the Resource Usage dialog box:

Add Resource adds an individual resource requirement for the


activity.

Use Edit to modify an existing requirement definition.

Any existing requirements will be listed under the Requirements


heading. Highlight the requirement you want to modify, and then
press Edit. Resource requirements can be variable by using User-
defined Attributes. See “Variable Resource Usage” on page 232.

Remove deletes the requirement highlighted in the Requirements


box.

Once you have chosen a list of resources for the activity, you can
specify the combination of these resources in the Requires radio
box.

Requires defines the combination of resources required to


perform this activity:
• Any One Member — any one of the resources listed is
sufficient to perform the task.

SIMPROCESS User’s Manual 143


CHAPTER 5–Resource Modeling Constructs

• All Members — all members in the Requirements list are


needed in order for this activity to process an entity.
SIMPROCESS does not obtain any member until all the
required resources are available.
• Reserve As Available — all listed resources are required and
will be reserved as they become available.
• Any __ Members — Any number or members of the list are
needed to process an entity. Enter the value of number in the
box.

Reserve As Available may pose a risk of deadlock.

For example, say activities A and B are both defined as


requiring resources 1 & 2, using Reserve As Available logic. An
entity arrives at activity A, which obtains resource 1. Resource
2 is not available, so A waits for it.

Now an entity with higher priority arrives at Activity B.


Activity B waits for resources 1 and 2. Then resource 2
becomes available. Although Activity A has been waiting for
Resource 2 longer than Activity B has, B gets the resource
because the entity it is processing has a higher priority than
Activity A’s entity. A deadlock develops since neither activity
will release the reserved resource. If you decide to use Reserve
As Available logic, make sure this situation cannot develop.

Defining Individual Resource Requirements


On the Resource Usage dialog box, click on the down arrow of the
combo box next to the Add Resource button to display the list of
available resources. Select Truck from the pull-down list and click on
the Add Resource button to add one Truck to the Requirements list. In
this case we only need a single truck, so we are not going to edit its
Usage Rate.

144 SIMPROCESS User’s Manual


Defining Resource Requirements for Activities

Repeat the same steps for Diesel Fuel, but edit its Usage Rate once it
has been added to the Requirements list. Specify a Usage Rate of 100.

For this activity, we need to define two resource requirements: a truck,


and fuel to power the truck.

SIMPROCESS User’s Manual 145


CHAPTER 5–Resource Modeling Constructs

Explicitly Getting and Freeing


Resources
During a simulation, allocation of resources is handled by
SIMPROCESS according to the requirements and priorities you have
defined.

When an entity arrives at an activity, if a resource is listed in the


resource requirements list for the activity, SIMPROCESS attempts to
obtain the resource required to process the entity. If the required
resource or resources are not available, the entity waits until the
resources become available. When processing is completed, the
activity releases the entity and frees the resources.This is an implicit
way to get and free a resource.

Sometimes, you want to hold on to a resource over the course of several


activities or processes. For example, Figure 3 represents some of the
steps performed in a mail order fulfillment process when a customer
order is received:

Figure 3. Tasks Handled by the Same Clerk

This processing is performed by a clerk. In the model, clerk is defined


as a resource, and each activity is defined as requiring a clerk.

In a SIMPROCESS simulation, each activity obtains the specified


quantity of resources when it receives an entity, and then releases the
resources when it finishes processing the entity. So it is possible that

146 SIMPROCESS User’s Manual


Explicitly Getting and Freeing Resources

between Identify Customer and Create Customer Profile, for example,


some other activity in the model could grab the clerk and delay this
entity’s processing.

In the real world, one clerk actually takes the order from the customer
and handles it through much of the distribution process.

Figure 4. Order Distribution Process Overview

To model this in SIMPROCESS, use a Get Resource activity to obtain


the resource, and a Free Resource activity to free the resource when
it is no longer needed. Figure 5 is an example of explicitly obtaining
a resource.

SIMPROCESS User’s Manual 147


CHAPTER 5–Resource Modeling Constructs

Get Resource Activity


Use the Get Resource activity to obtain a resource and hold on to it
across multiple processes and activities.

Be sure to assign a unique Tag to each Get Resource activity. Although


it is possible to use the same Tag twice at different levels of the model
hierarchy, it can lead to confusion when it comes time to release
allocated resources.

In the Get Resource Activity Properties dialog box, click on Resources


to specify the resources to be allocated. Fill out the Resources Usage
dialog box as specified in “Defining Resource Requirements for
Activities” on page 142.

Here is the process shown in Figure 3 on page 146 with a Get Resource
activity added:

148 SIMPROCESS User’s Manual


Explicitly Getting and Freeing Resources

Keep in mind that you are using Get Resource to obtain resources that
you would otherwise obtain in each of the ensuing activities. This
means that you do not define the same resource requirement in those
activities as well.

For example, you need a clerk to process the entity in the Identify
Customer, Create Customer Profile and Access Customer Profile
activities. You account for this resource requirement in the Get
Resource activity. Do not define the same requirement in the Properties
dialog box of each activity.

Free Resource Activity


Use the Free Resource activity to free resources obtained at a Get
Resource activity. In the order distribution model represented by
Figure 4 on page 147, the last task handled by a clerk is arranging for
payment of the ordered merchandise. When that process is complete,
the order is passed to the shipping department to be filled.

SIMPROCESS User’s Manual 149


CHAPTER 5–Resource Modeling Constructs

Figure 5. Processing Payment for an Order

Add a Free Resource activity after the activity labeled Create Bill.
Double-click on the activity to view its properties dialog box:

You can free all resources that have been allocated for this entity by
clicking on the Release all Allocated Resources box. Often, though, you
will want to specify exactly which resources are to be released.

150 SIMPROCESS User’s Manual


Explicitly Getting and Freeing Resources

To define the set of resources to be freed, click on the Add button in


the Free Resource Activity Properties dialog box.

Assign a Name to the action you are defining. This name will be
displayed in the List of actions field of the Release Activity Properties
dialog box when you finish defining the action.

The Tag and Resource fields work together in defining free resource
actions:

1. Tag indicates the Get Resource activities whose resources will


be released. The pull-down list for this field lists all the Get
Resource activities’ tags in your model.

You can select a tag from the listbox, or specify any tag!, in
which case SIMPROCESS may free resources obtained in
any activity the entity has visited.

SIMPROCESS User’s Manual 151


CHAPTER 5–Resource Modeling Constructs

If you want to free resources allocated at two or more


activities, but not all of the listed activities, you need to define
a separate free action for each activity.
2. Use the Resource pull-down list to specify the resource you
are freeing, or select all resource! to free all resources allocated
for the entity. Resources are only freed if they were obtained
in the activities you specified in the Tag field.

If you want to release more than one resource, but not all the
listed resources, create a separate action for each resource.

3. Click on OK to accept your definition. The action now appears


in the List of Actions schedule.

You can add additional actions to the list by clicking on Add and
defining the action.

To modify the definition for an action item, highlight it in the listbox


and click on Edit. To remove the action, click on Remove.

SIMPROCESS provides you with the option of whether or not to


deduct the amount acquired from consumable resources when those
resources are freed. Click on the Consumable resources will be
consumed check box in order to decrement consumable resources.

For example, you define a Get Resource activity that obtains 50 gallons
of Diesel Fuel in anticipation of shipping merchandise to a customer.
Before reaching the shipping activity, the entity enters a branch node
in which the merchandise order is canceled. In this situation, one
branch of the path leads to a Free Resource activity where the
consumable resource is not consumed, since it was not used. The other
path continues on to the shipping activity, and then to a Free Resource
activity in which the fuel resource is consumed.

152 SIMPROCESS User’s Manual


Replenishing Consumable Resources

Replenishing Consumable Resources


Use the Replenish Resource activity to replenish a consumable
resource during a simulation.

For example, diesel fuel powers the trucks your company uses to ship
merchandise. When you define the activity in which merchandise is
shipped to customers, you define both a truck and some quantity of
diesel fuel as resource requirements.

Every morning, fuel is delivered to the truck depot by a fuel distributor.


To reflect this in a model, define a Replenish Resource activity to add
units to the diesel fuel resource. Double-click on the Replenish
Resource icon to define the resource you are replenishing:

SIMPROCESS User’s Manual 153


CHAPTER 5–Resource Modeling Constructs

On the Replenish Resource Activity Properties dialog box, click on Add


to define a replenish action:

The Resource field identifies the resource to be replenished.


The pull-down list shows all the resources defined in the
model. In this example, Diesel Fuel is the resource we want
to replenish.

Note that only consumable resources can be allocated in a


Replenish Resource activity. Specifying
a non-consumable
resource results in an error message.

154 SIMPROCESS User’s Manual


Replenishing Consumable Resources

Units indicates the amount of the resource to be added. You


can specify either a real number or a statistical distribution.
The distribution can be selected from the pull-down list of
the Units field.
• The Replenish to Capacity box indicates that a resource should
be replenished up to the value specified in its Units field when
the resource was defined.

In this example, the number 1000.0 was entered.

After you press OK, the resource definition appears on the list of
Replenishment Actions.

SIMPROCESS User’s Manual 155


CHAPTER 5–Resource Modeling Constructs

156 SIMPROCESS User’s Manual


CHAPTER 6

Graphical Modeling Constructs

SIMPROCESS User’s Manual 157


CHAPTER 6–Graphical Modeling Constructs

Background Text
There are two types of background text in SIMPROCESS: static text
and dynamic labels. Static text is used for annotating the model layout
and does not change during simulation. Dynamic labels, as their name
implies, are updated during simulation and are used to display
information about changing properties of model elements.

Dynamic labels are an advanced feature found in SIMPROCESS


Professional. They are covered in Chapter 10–Customizing a Model
with Attributes and Expressions. This topic begins on page 213.

Properties of both kinds of text are specified in the Background Text


dialog. The dialog is invoked by selecting a text tool from the palette
(marked by a capital T) and clicking on the background in the location
where text is to be placed. Text can be moved afterwards by clicking
and dragging just like any icon.

Below the Static Label field, the dialog is divided into two sections:
the top group of controls, designated as Dynamic Label Properties is
only applicable to dynamic text, the bottom group — Font Attributes
— is used to specify properties of both kinds of text.

158 SIMPROCESS User’s Manual


Background Text

SIMPROCESS provides two types of fonts: native and system. Native


fonts are supplied by the operating system on which you are running.
In order to choose a native font, select Native in the Font combo box
and click on the Set… button. Native font properties are specified in
an operating system’s Fonts dialog. For example, in Microsoft
Windows you can choose font name, style and point size. The preview
of the text will appear in the Sample box to help you quickly choose
the desired attributes. Once the font is chosen and the Fonts dialog
is closed, you can specify text color and angle in the Background Text
dialog. For native fonts, only 90 degree rotations of the text are
allowed. Note that once the text is placed on the layout, the selection
box around it has no handles. You can move the text, edit its properties
and group it with other objects on the layout, but you cannot resize
the text by dragging its selection box. The only way to resize native
font text is to change its point size in the Fonts dialog.

SIMPROCESS system fonts are vector fonts, which means they can
be scaled on the layout by dragging the handles that appear on the
selection box around the text. Vector fonts are created by choosing
anything other than Native in the Font combo box. The Set… button
will become disabled, but you can still set the color and angle of the
text. Note that vector fonts can be rotated by all angles defined in the
combo box.

Several text labels can be grouped together on the layout and their
horizontal and vertical alignment can be set in the H. Align and
V. Align combo boxes.

SIMPROCESS User’s Manual 159


CHAPTER 6–Graphical Modeling Constructs

Background Graphics
To place a background graphic on the model layout, select the
Background Graphic icon from the palette and move it to the layout.
The Select background dialog will open. Select the icon you wish to
use and select OK to close the dialog. Once the graphic is on the layout,
it can be resized the same as any other icon on the SIMPROCESS
layout.

When you edit the properties of the Background Graphic, you find two
options on the properties dialog, Locked and On Top.

Turning the Locked option on locks the Background Graphic to its


current position on the layout. This will prevent you from
inadvertently moving the Background Graphic when you are
intending to edit some other SIMPROCESS construct, or navigate a
model hierarchy.

Turning the On Top option on, brings the Background Graphic to the
front of the layout display. In other words, any other SIMPROCESS
constructs you place on the Background Graphic will be hidden behind
it. Typically this option is left off, so that the Process, Activities and
Connectors that you place on the screen will appear on top of the
Background Graphic.

160 SIMPROCESS User’s Manual


Importing Bitmap Graphics

Importing Bitmap Graphics


You can import a bitmap graphic into SIMPROCESS for a number of
different uses on the layout of your model. A bitmap can be used as
a Background Graphic, as an icon representing a Process or Activity,
or as an icon representing an Entity. Regardless of which you wish
to use the bitmap for, the process of importing a bitmap is the same.

From the File menu, select Import Bitmap File. This will open the Import
Bitmap dialog box.

From the Type field, choose which SIMPROCESS construct:


processes, activities, entities or background that the graphic will be
used for. SIMPROCESS will look for the bitmap file in the
SIMPROCESS working directory (by default, the C:\SPUSER
directory). If your bitmap file is not stored there, select the Browse
button. This will allow you to direct SIMPROCESS to the location
of your bitmap file. SIMPROCESS will fill in the Icon Name field with
the name of the bitmap file, or you can type in any name you wish.
Select OK to import the bitmap file for use in SIMPROCESS.

If you imported the bitmap file for use as a Process, Activity, or


Background Graphic, when you open the properties dialog of that type
of construct, the icon name will be in the list of the Icon field. Select
the icon name from the list, select the OK button to close the properties
dialog, and your icon will be displayed. The icon can be resized in
the same manner as any SIMPROCESS icon.

If the bitmap file was imported for use as an entity icon, it will be on
the list for the Icon field in the Entity Type Properties dialog box. As

SIMPROCESS User’s Manual 161


CHAPTER 6–Graphical Modeling Constructs

with other SIMPROCESS entity icons, you will not be able to resize
the graphic once you have imported it.

Note

When you import a bitmap graphic into SIMPROCESS, a copy


of the bitmap file is placed by SIMPROCESS in the SG2LIBS
directory under the SIMPROCESS working directory (by
default, C:\SPUSER\SG2LIBS). Do not delete this bitmap
file as SIMPROCESS will refer to it whenever the graphic is
used.

162 SIMPROCESS User’s Manual


CHAPTER 7

Activity-Based Costing

SIMPROCESS User’s Manual 163


CHAPTER 7–Activity-Based Costing

Introduction to Activity-Based Costing


The purpose of this introduction to Activity-Based Costing is to
summarize the basic principles of ABC and describe the benefits of
the integration provided with SIMPROCESS. If you are not familiar
with ABC, a list of references is provided in the back of the chapter
for further reading.

164 SIMPROCESS User’s Manual


Why ABC?

Why ABC?
The goal of ABC is to mimic the causal relationships among resources,
activities, and entities in assigning overhead costs. “The fundamental
belief behind this costing approach is that cost is caused and causes
of cost can be managed. The closer you can come to relating the costs
to their causes, the more helpful your accounting information will be
in guiding the management decisions of your business.” states the
Ernst & Young Guide to Total Cost Management (Ernst & Young,
1992).

Enterprises use resources to conduct activities. Resources perform


activities to add value to products and services. The key to
understanding cost dynamics in any enterprise is modeling the
relationship between activities and their causes; and the relationship
between activities and costs. If cost dynamics are not modeled (which
is usually the case with traditional management accounting
information systems), the performance information provided is
incomplete or misleading.

SIMPROCESS User’s Manual 165


CHAPTER 7–Activity-Based Costing

What is ABC?
Activity Based Costing is a technique for accumulating cost for a given
cost object (i.e. product, service, customer) that represents the total
and true economic resources required or consumed by the object.

Activity Based Costing occurs in two phases. First, cost data is


organized into activity cost pools. In other words, the costs of
significant activities are determined. This first phase is sometimes
referred to as activity based process costing. Then, the amounts in the
cost pools are assigned to products, services or other cost objects. The
second phase is referred to as activity based object costing.

166 SIMPROCESS User’s Manual


How Does SIMPROCESS Implement ABC?

How Does SIMPROCESS Implement


ABC?
The architecture of SIMPROCESS provides an integrating
framework for ABC. The building blocks of SIMPROCESS are
processes, resources, and entities, bridge ABC and dynamic process
analysis. ABC embodies the concept that a business is a series of inter-
related processes, and that these processes consist of activities that
convert inputs to outputs. The modeling approach in SIMPROCESS
manifests this concept, and builds on it by organizing and analyzing
cost information on an activity basis.

One of the major challenges in successful implementation of ABC is


finding the appropriate level of detail for the business process analysis.
The organization of business processes is critical to reorganizing the
cost data into activity pools. The hierarchical modeling approach of
SIMPROCESS facilitates this organization and accommodates
varying levels of detail for ABC analysis.

Another significant value of the ABC analysis in SIMPROCESS


comes from the dynamic analysis of costs based on the event-driven
simulation. Because SIMPROCESS keeps track of resource
interdependencies and captures the random nature of processes, the
cost statistics provided by SIMPROCESS are far more accurate than
results obtained from static analysis.

SIMPROCESS User’s Manual 167


CHAPTER 7–Activity-Based Costing

Benefits of ABC with SIMPROCESS

Focus on Cost Drivers


One of the most important benefits of ABC is the focus it provides for
estimating the key causes of costs. Executives can use these estimates
to prioritize and monitor improvement efforts. For example,
understanding the cost of poor quality can justify the investment in
a quality program. Likewise, understanding the cost of complex or
diverse products and services can help streamline the product and
service offerings.

Strategic Pricing
Life cycles of product and services are becoming shorter and shorter.
The up-front costs of developing, testing, and marketing are not
recouped until revenue is generated. Understanding the cost trade-off
between life cycle stages is critical to strategically pricing the
products. That is, understanding when the total investment in product
development can be recouped is valuable information for strategic
pricing. ABC with SIMPROCESS allows simulation of the process
changes during the life cycle of a product/service for strategic or time-
based pricing.

Evaluation of Capital Investments


Reengineering business processes requires a trade-off between the
benefits and costs of making process improvement changes. Without
the trade-off, executives and managers are faced with making large
investment decisions based on gut feel.

168 SIMPROCESS User’s Manual


How to Use ABC in SIMPROCESS

How to Use ABC in SIMPROCESS


To get process cost information from a SIMPROCESS model, you
need first to define the costs of the model's resources and the cost
periods to be analyzed. SIMPROCESS will distribute these costs to
activities and to entities as the simulation proceeds and provide
extensive reporting of the results based on user specified cost reporting
periods.

In order to provide you with a comprehensive cost analysis,


SIMPROCESS differentiates between fixed costs and several types
of variable costs that can be assigned to a resource. SIMPROCESS
allows multiple cost periods to be analyzed simultaneously and allows
model level definition of costing periods. These features help to bridge
the gap between an accountant's view and a manager's view of a
business process, provide an effective communication vehicle for the
participants in a process reengineering project and make
SIMPROCESS a complete business process analysis tool.

SIMPROCESS' costing facility is very simple to use. Prior to running


a simulation, you may define the cost periods for cost calculation
purposes or accept SIMPROCESS' default cost periods, which are
based on calendar quarters (3 months each). You must also define costs
for at least some of the resources in your model, presumably those that
represent the most significant costs in your business process (hourly
payroll, salaries, capital equipment depreciation, etc.). The following
describes how to complete these two steps.

SIMPROCESS User’s Manual 169


CHAPTER 7–Activity-Based Costing

Setting Up Cost Periods


You should pick the cost periods that are most suitable for the system
under study. SIMPROCESS selects quarterly cost periods as the
default but allows weekly, monthly, half yearly, and yearly cost
periods, too. For example, let us assume that you have a simulation
that will run for one year. That is, the simulation start date is 1/1/96
at 00:00:00 (12:00 o'clock midnight) and the end date 1/1/97 at
00:00:00. Let us further suppose that you wish the simulation to
generate cost reports for each calendar quarter during the simulated
year 1996.

To define Cost Periods, select Simulation/Run Settings from the main


menu.

Then, click on the Cost Periods button. This will display the Cost
Periods definition dialog as shown below.

170 SIMPROCESS User’s Manual


Setting Up Cost Periods

The list in the upper left of this dialog shows the currently defined cost
periods. The default periods are Quarter1, Quarter2, Quarter3, and
Quarter4. At the bottom of the dialog, is the Period Frequency selection
list with the default Quarterly selected. Click the down arrow button
to see all of the Period Frequencies that SIMPROCESS offers: Weekly,
Monthly, Quarterly, Half Yearly, and Yearly. Notice that if you select a
new Period Frequency, SIMPROCESS will create a new set of periods
in the period list and assign each a default name (Week1, Week2, ...,
or Quarter1, Quarter2, ...). Notice also that SIMPROCESS will
automatically create and name enough cost periods to span the
currently specified run length. (The simulation Start Time and End Time
are set from the Simulate/Run Parameters option on the menu bar.)

This dialog also allows you to set the name of the Currency used on
the cost reports. This is a simple label used in the reports.
SIMPROCESS provides no currency conversion facilities and
assumes that all cost amounts are in the same currency (dollars,
pounds, deutschemarks, lire, etc.).

If you select a particular cost period and click the View... button,
SIMPROCESS will display the Cost Period detail dialog which shows
the start and end dates and times for the cost period and the name of
the period. You can change the name of each cost period to be more
descriptive in the context of your cost report. For example, you may
wish the cost periods to be called Spring, Summer, Fall, and Winter
rather than Quarter1, Quarter2, etc. Click the OK button to alter the
cost period name or the Cancel button to discard your changes.

SIMPROCESS User’s Manual 171


CHAPTER 7–Activity-Based Costing

Setting Up Resource Costs


SIMPROCESS allows you to specify the costs of each resource in the
model. You do not have to specify costs for all resources;
SIMPROCESS will generate cost reports only for those resources that
have costs specified. You can specify both fixed and variable costs
for non-consumable resources and variable costs for consumable
resources. These costs are specified as part of defining each resource.

To see the Resource Costs definition dialog, first select the Define/
Resource option from the menu bar. Then pick a previously defined
resource from the list for editing or add a new one using the Edit or
Add buttons. This will display the Resource Properties dialog as shown
below:

Click the Cost... button to display the Resource Costs dialog for this
resource. It looks like the following:

172 SIMPROCESS User’s Manual


Setting Up Resource Costs

The box at the top of this dialog shows the Variable Costs and the box
below shows the Fixed Costs.

The check box at the bottom left-hand corner of the dialog, Collect cost
statistics, is turned on by default whenever cost information is entered.
It is important that you leave this checked on. Otherwise, cost statistics
used in the ABC Reports will not be gathered.

Variable Cost
Three types of variable costs can be specified for non-consumable
resources:

Usage Cost per Entity


This cost is applied to each entity that is processed by the resource.
It is used to represent "flat fee" type charging schemes. The same cost
is assigned regardless of the amount of the resource's units that is used
or the duration of the activity. Example: Often administrative charges
or service call charges are based on this kind of charging scheme.

Cost Per Unit


This cost is applied to each entity that is processed based only on the
amount of the resource's capacity that is used to process the entity. The
cost is not calculated based on the time that the activity takes to
complete. Example: Fuel may be defined as a consumable resource

SIMPROCESS User’s Manual 173


CHAPTER 7–Activity-Based Costing

and cost per unit may be 1.50 dollars per gallon. Every time a gallon
of fuel is consumed, it will cost 1.50 dollars.

Hourly Cost per Unit


This cost is calculated based on the amount of resource capacity used
and the time used. Example: Machine rental charges or hourly salary
paid to employees are a common example of this type of cost.

Fixed Costs
Fixed Costs are defined in the box below the Variable Costs box. You
enter the fixed cost amount in the Per Unit value box and select the time
basis for the cost from the selection list to the right. Machine
depreciation or fixed salaries are common examples of this type of
cost. Let's assume that you want to specify the fully burdened cost
of a set of salaried employees which are represented by this resource
and the cost per employee is $50,000.00 per year. You should enter
50000 in the Per Unit box and select Yearly from the list on the right.
You can see the items on the list by clicking the down arrow to the right
of the list. You will notice that the list contains the same time intervals
that are available for the Cost Period Frequency. These do not have to
be the same in both places. SIMPROCESS will perform all the
necessary conversions automatically.

For example, you can specify annual salaries and run a simulation for
weekly cost periods. SIMPROCESS will convert the annual salary
costs to weekly costs when generating your cost data. After a
simulation is completed, you can see reports of the costs. By choosing
Display ABC Reports from the Reports menu, SIMPROCESS allows
you to specify that fixed costs be fully absorbed for the cost period
(absorption costing) or that the idle time costs be kept out of the
reported costs (capacity costing).

174 SIMPROCESS User’s Manual


Cost Calculations

Cost Calculations
When you run a simulation, SIMPROCESS will pause at the end of
each cost period to calculate the period costs. SIMPROCESS tracks
all the activities that used the resource and all of the types of entities
processed in those activities. For each resource that has specified costs
and that is set to calculate costs, SIMPROCESS will distribute the
resource's fixed and variable costs for the period to all of the activities
that made use of the resource during the period. This distribution is
based on the amount of the available capacity used by the activity
during the period. For example, suppose that a resource is used evenly
by two activities and was busy 50% of the time for the cost period.
Further, suppose that during the period each activity processed five
entities, two of type A and three of type B. SIMPROCESS will
calculate the costs for this period as follows:

1. Calculate the variable costs for each resource based on the


number of entities processed and the processing times as
described.
2. For each of the two resources, calculate the portion of fixed
cost represented by idle time. Then calculate both the fully
absorbed and capacity based fixed costs. (In this case, the fully
absorbed costs should be twice the capacity costs since the
resource was 50% idle during the period.)
3. Add the variable costs to the fully absorbed costs and the
capacity based costs, creating two period costs for each
resource.
4. Divide the period costs for the resource based on the usage
by activities. (In this case, the period costs will be split evenly
between the two activities.)

In general, these steps are completed for all resources in the model that
are set to calculate costs. In this manner, each activity accumulates its
period costs from all of the resources that it actually made use of during
the period. Next, SIMPROCESS will calculate the entity costs based on
these activity costs. After all resource costs are distributed to the activities,
the activity costs are then distributed to each type of entity processed by
the activity, based on the total number of entities processed. These
calculations proceed as follows:

SIMPROCESS User’s Manual 175


CHAPTER 7–Activity-Based Costing

1. The activity determines the total number of entities processed


for the period and the portion of this total represented by each
type.
2. The activity costs are apportioned to the entities based on
the number of each entity type divided by the total number
of entities.

In other words, the pool of activity cost is broken out to each entity
type based on the entity usage of that activity. In the cost report, the
activity cost is displayed for the total number of each entity type, not
for each entity instance. To calculate the entity instance cost, you can
divide the cost for that entity type (the cost number displayed in the
report) by the total number of entities of that type processed (available
in the Standard Report).

Upon completion of these calculations, SIMPROCESS will resume


the simulation for the next cost period.

176 SIMPROCESS User’s Manual


Displaying ABC Reports

Displaying ABC Reports


From the Reports pull-down menu, select Display ABC Reports for
Entities, Resources, or Activities. The cost reports for Entities,
Resources, and Activities are defined using a common dialog format.
The dialogs consist of list boxes, buttons, and replication options.

List Boxes

Model Elements List


Depending on the cost reports selected from the Display ABC Reports
menu, this list box will contain the list of the Entities, Resources, or
Activities that are in the model.

Cost Periods List


Cost periods defined under Simulation Run Settings.

Cost Objects List


The objects for which cost reports will be displayed. For example, if
you selected Display ABC Reports for Entities, then, the cost objects
list will contain Resources or Activities.

SIMPROCESS User’s Manual 177


CHAPTER 7–Activity-Based Costing

Buttons

Display Reports
This button displays the reports for the selected cost objects. Reports
can be displayed as “Sum” or “Detailed”.

Options

Capacity Cost vs. Absorption Cost


These options allow you to display cost reports with the fixed costs
allocated using either Absorption or Capacity Costing. Capacity Cost
calculation takes the unit hours used by the activity, and divides that
by the total available unit hours of the resource, for the cost period.
Absorption Cost calculation takes the unit hours used by the activity,
and divides that amount by the unit hours of the resource used by all
activities for the cost period.

Replications
This option allows you to display the cost report for the replication
number selected in the For Replication field.

To Define a Cost Report:


1. Select the model elements for which you want to display
reports (i.e. Entities, Resources, or Activities). Click on the
desired radio button for Sum or Detail.
2. Select the cost period. Click on the radio button for Sum or
Detail.

3. Select the cost objects. Click on the radio button for Sum or
Detail.

4. Click on Display Reports button.

178 SIMPROCESS User’s Manual


Displaying ABC Reports

References
Michael R. Ostrenga, Terrence Ozan, Robert Mc Ilhattan, Marcus
Harwood, The Ernst & Young Guide to Total Cost Management, John
Wiley & Sons, New York, 1992.

Douglas Webster, Activity Based Costing: A Tool for Reengineering


the Enterprise, Enterprise Reengineering, April/May 1995, pp. 18-23.

SIMPROCESS User’s Manual 179


CHAPTER 7–Activity-Based Costing

180 SIMPROCESS User’s Manual


CHAPTER 8

Output Reports

SIMPROCESS defaults to collect statistics for all entities and all resources for
the Standard Report. This default set of statistical measures will be gathered
for every model you run unless you change the statistics selections. In addition,
SIMPROCESS allows you to define custom statistics to gather more specific
information about your model. The entity and resource statistics gathered for
the Standard Report will usually be sufficient when you start working with your
model. As you sharpen the focus of your analysis and your model becomes
detailed, you will add custom statistics to narrow in on the performance
measures you are most interested in.

Further, you can export a Simulation Results file containing all the statistics
gathered from your model in a tab-delimited format, and in SIMPROCESS
Professional you can export your results to a database.

SIMPROCESS User’s Manual 181


CHAPTER 8–Output Reports

Standard Output Report


After the simulation run has completed, you can display the Standard
Report to view output statistics for your model. From the Report menu
bar, choose Display Standard Report.

This will open the Display Standard Report dialog. In the Report
Replications list box, (if your model ran for multiple replications) you
can select which individual Replications, the Average of All
Replications run, or the Sum of All Replications run you want to see
performance measures for. Typically, you will want to look at the
Average of All Replications report. Next, select whether you want to
view the Standard Report with a Text Editor (Notepad by default) or
with a Spread Sheet. Now, press the Display Report button to open the
report.

To view the Standard Report with a spread sheet, use the Browse button
to point to its executable, i.e., Excel.exe. Once you have the spread
sheet open, the Standard Report data is best viewed in the left justified
mode and with AutoFit checked for the columns.

182 SIMPROCESS User’s Manual


Standard Output Report

Default Performance Measures


By default, SIMPROCESS will collect the following performance on
Entities and Resources:

• For each Entity defined in the model, Cycle Time and Count
statistics are displayed.
• For each Resource defined in the model, average and
maximum number of units busy is measured and shown as
a percent of capacity.
• ABC (Activity-Based Costing) reports for each Entity
defined in the model include: Total Cost of Processing and
Average Cost per Entity using both Absorption and Capacity
Costing to allocate fixed resource costs.
• ABC reports for each Resource defined in the model include;
Total Cost of Use and Average Cost per Resource using both
Absorption and Capacity Costing to allocate fixed resource
costs. For more detail on Activity Based-Costing see,
Chapter 7–Activity-Based Costing, beginning on page 163.

Attributes are handled differently for the Standard Report. For one
thing, you must turn on the Post Simulation Reports check box on the
Attribute Properties dialog for each attribute that you want statistics
kept. The report will display either Time-weighted or Observation
based statistics depending on which option you choose. Statistics can
be kept for all types of attributes, except Entity Instance Attributes.
Lastly, if the value of an attribute does not change during the simulation
run, its statistics will not be displayed in the Standard Report, even if
Post Simulation Reports is checked on.

• For each Attribute, other than Entity Instance attributes,


defined in the model, either Observation or Time-weighted
statistics will be displayed. You choose which one will be
displayed when the attribute is defined. Statistics are not kept
on Entity Instance attributes.

Additional Performance Measures


You can also define additional performance measures, custom
statistics collection, to be gathered as well. Any additional measures

SIMPROCESS User’s Manual 183


CHAPTER 8–Output Reports

that you define will be added to the Standard Report the next time you
run the model. Custom statistics are covered in the next section.

Note
Any models built with SIMPROCESS prior to Release 2.0 will not have
the default performance measures defined on them. The performance
measures displayed on the Standard Report will be those set through the
Define Global Statistics Collection.

184 SIMPROCESS User’s Manual


Custom Statistics

Custom Statistics
SIMPROCESS provides you with the ability to add custom statistics
to the Standard Report for analyzing the performance of your business
processes. Such performance measures as cycle time, activity costs,
and resource utilization can be calculated by SIMPROCESS. This
chapter describes the types of statistics available, and how to define,
display, print, and export them.

The following sections describe the types of statistics generated by


SIMPROCESS and provide examples of each statistic type.

Entity Statistics
Entity statistics provide detailed information about the numbers of
entities existing in the model during a simulation and the amount of
simulation time (cycle time) that entities require to pass through the
model. SIMPROCESS provides four types of entity statistical reports:
(1) Total Count, (2) Real-time Plots, (3) Entity Count by State, (4)
Entity Cycle Time by State, and (5) Attribute Value. Total Count,
Entity Count by State, and Entity Cycle Time by State are selected
either from the Define Global Statistics Collection dialog by choosing
Collect Entity Statistics or by choosing Collect Entity Statistics when
each entity is defined. If Collect Entity Statistics on the Define Global
Statistics Collection dialog is selected, then the above statistics (other
than Real-time Plots and Attribute Value) will be in the Standard
Report for every entity defined. If only statistics for selected entities
are desired, then the global Collect Entity Statistics should not be
selected, and the Collect Entity Statistics on the Entity Definition
dialog should be selected for the desired entities.

SIMPROCESS User’s Manual 185


CHAPTER 8–Output Reports

Total Count Statistics


These statistics show the total number of entities that have been
generated during the simulation, how many remain in the system at
the end of the simulation, and how many have exited the system
throughout the simulation. Total Count will not be collected unless
Collect Entity Statistics (either global or individual) is selected prior
to running the simulation. The results are not available until the
simulation is complete.

Real-time Plots
If selected, real-time plots display statistics while the simulation is
running. This may slow the simulation but gives you a running view
of the performance metrics during the simulation. If multiple real-time
plots are selected, they will be stacked on top of each other. You may
minimize, maximize, move or resize the real-time plots while the
simulation is running. Real-time plots are selected under the Report
menu item Define Real-Time Plots/Entities.

Cycle Times Plot — This report shows the individual cycle time
measurements for each entity of a given type. One chart is generated
for each entity type that is selected. The chart is updated as each entity
of the given type completes its cycle time. This occurs when the entity
is transformed or disposed in the model. The observation points on the
chart are connected only to improve their visibility and are not meant
to suggest continuity.

186 SIMPROCESS User’s Manual


Custom Statistics

Entities in System Plot — This chart shows the individual entity count
measurements (that is, the number of entities that exist in the model)
for each entity type. One chart is generated for each entity type that
is selected. The chart is updated as each entity of the given type is
created and disposed in the model.

Wait for Resource Plot — This chart shows the current number of
entities that are in the waiting for resource state.

Hold for Condition Plot — This chart shows the current number of
entities that are in the holding for condition state that may be associated
with activities such as assemble, gate, and batch.

Entities In Process Plot — This chart shows the current number of


entities that are in the process.

Entity Count By State Statistics


These statistics present the simulation generated entity count statistics
for selected entity types. Statistics are time-weighted for entity counts.
These statistics show the average number of entities in the system

SIMPROCESS User’s Manual 187


CHAPTER 8–Output Reports

broken down by three states, namely, waiting for resource, holding for
condition, and in-process. Entity Count will not be collected unless
Collect Entity Statistics (either global or individual) is selected prior
to running the simulation. The results are not available until the
simulation is complete.

Cycle Time By State Statistics


Cycle Time statistics present the simulation generated cycle time
statistics for selected entity types. The cycle time calculations are
based on the number of entities that were processed at the end of the
simulation. These statistics show the breakdown of the Cycle Time
by state. The three states that an entity may be in are waiting for
resource, holding for condition, and in-process. Cycle Time will not
be collected unless Collect Entity Statistics (either global or
individual) is selected prior to running the simulation. The results are
not available until the simulation is complete.

Attribute Value Statistics


The attribute value statistics must be specified in the dialogs where
attributes themselves are defined. If the attributes are defined while
entity types are being defined, then the statistics must be selected
where those attributes are defined.

Time Weighted Average — This report shows the time-weighted


statistics for entity attributes.

Observation-based Average — This report shows the observation based


statistics for entity attributes.

Resource Statistics
Resource statistics provide detailed information about the amount of
time resources spend in possible states during a simulation.
SIMPROCESS provides three types of statistics which show various
summaries of the state information for a Resource: (1) Utilization by
State Statistics, (2) Utilization by Activity Statistics, (3) Real-time
Plots, and (4) Attribute Value Statistics. Utilization by State is selected
either from the Define Global Statistics Collection dialog by choosing
Collect Resource Statistics or by choosing Collect Resource Statistics

188 SIMPROCESS User’s Manual


Custom Statistics

when each resource is defined. If Collect Resource Statistics on the


Define Global Statistics Collection dialog is selected, then the
Utilization by State statistics will be in the Standard Report for every
resource defined. If only statistics for selected resources are desired,
then the global Collect Resource Statistics should not be selected, and
the Collect Resource Statistics on the Resource Definition dialog
should be selected for the desired resources. Similarly, Utilization by
Activity is selected either from the Define Global Statistics Collection
dialog by choosing Collect Resource by Activity Statistics or by
choosing Collect Resource by Activity Statistics when each resource
is defined.

Utilization by State Statistics


These statistics present summaries of the simulation generated
statistics for the time that the number of units of the selected Resources
spent in each state. The average number of units and percentages that
were idle, busy, planned downtime, unplanned downtime, and
reserved are shown in the Standard Report. Also included in the
Standard Report are the percentages that a resource was idle, busy, or
reserved given the resource was available. That is, downtime (planned
or unplanned) is not included. The time available is considered to be
the total time for the resource. Thus, if a resource has no downtime
defined, then the percentages for idle, busy, and reserved will be the
same for the calculations including downtime and the calculations not
including downtime.

SIMPROCESS User’s Manual 189


CHAPTER 8–Output Reports

Utilization by Activity Statistics


These statistics show the average number of units that were busy by
activity.

Real-time Plots
These reports present the simulation generated, instantaneous
capacity allocations for each of the five resource states. The reports
present their data while the simulation is running. This may slow the
simulation but gives you a running view of the resource behavior
throughout the simulation. Real-time plots are selected under the
Report menu item Define Real-Time Plots/Resources.

All report data is shown on an X-Y plot where the (horizontal) X-Axis
represents simulation time and the (vertical) Y-Axis shows the
resource's units. One chart is produced for each selected Resource.

Units Idle Plot—This report shows the amount of a resource's units


which is left idle during the simulation.

Units Busy Plot—This report shows the amount of a resource's units


which is busy during the simulation.

Planned Downtime Plot—This report shows the amount of a resource's


units which is not available due to planned downtime during the
simulation.

Unplanned Downtime Plot—This report shows the amount of a


resource's units which is not available due to unplanned downtime
during the simulation.

Units Reserved Plot—This report shows the amount of a resource's


units which is in reserved state during the simulation.

Attribute Value Statistics


The attribute value statistics must be specified in the dialogs where
attributes themselves are defined. If the attributes are defined while
resources are being defined, then the statistics must be selected where
those attributes are defined.

Time Weighted Average — This report shows the time-weighted


statistics for resource attributes.

190 SIMPROCESS User’s Manual


Custom Statistics

Observation-based Average — This report shows the observation based


statistics for resource attributes.

Process/Activity Statistics
Process/Activity Statistics provide detailed information about the
numbers of entities entering and leaving particular Processes/Activities
during a simulation. SIMPROCESS provides seven types of activity
statistics: (1) Cycle Time by State, (2) Real-time Plots, (3) Total Entity
Counts, (4) Entity Count by State, (5) Cycle Time by State by Entity,
(6) Entity Count by State by Entity, and (7) Attribute Values. The
Process/Activity statistics are limited in scope to specific Processes/
Activities in contrast to entity statistics which encompass the entire
model. Cycle Time by State, Total Entity Counts, and Entity Count
by State are selected either from the Define Global Statistics
Collection dialog by choosing Collect Activity Statistics or by
choosing Collect Activity Statistics on the individual activity
properties dialog. If Collect Activity Statistics on the Define Global
Statistics Collection dialog is selected, then the activity statistics will
be in the Standard Report for every activity defined. If only statistics
for selected activities are desired, then the global Collect Activity
Statistics should not be selected, and the Collect Activity Statistics on
the activity properties dialog should be selected for the desired
activities. Similarly, Cycle Time by State by Entity and Entity Count
by State by Entity are selected either from the Define Global Statistics
Collection dialog by choosing Collect Activity by Entity Statistics or
by choosing Collect Activity by Entity Statistics on the appropriate
activity. Collect Activity Statistics must be selected if Collect Activity
by Entity Statistics is selected. If Collect Activity by Entity Statistics
is selected (global or individual), then Collect Activity Statistics will
be selected automatically by SIMPROCESS.
WARNING
Collect Activity Statistics and Collect Activity by Entity Statistics
should NOT be selected from the Global Statistics Collection dialog for
large models. This could cause memory problems, and would lead to
much unneeded information. It is recommended that activity statistics
always be selected at the appropriate activity.

SIMPROCESS User’s Manual 191


CHAPTER 8–Output Reports

Cycle Time by State Statistics


These statistics present the simulation generated cycle time statistics
for the selected Process/Activity. These statistics are calculated based
on the entity counts for the selected Processes/Activities.
Cycle Time statistics present the simulation generated cycle time
statistics for entity types that processed at the selected activities or
processes. The cycle time calculations are based on the number of
entities that were processed at the end of the simulation. These
statistics show the breakdown of the Cycle Time by state. The three
states that an entity may be in are waiting for resource, holding for
condition, and in-process. Cycle Time will not be collected unless
Collect Activity Statistics (either global or individual) is selected prior
to running the simulation. The results are not available until the
simulation is complete.

Real-time Plots
Real-time Plots display statistics while the simulation is running. This
may slow the simulation but shows a running view of the entity count

192 SIMPROCESS User’s Manual


Custom Statistics

throughout the simulation.

Cycle Times Plot—This chart shows the individual cycle time


measurements for each Process/Activity. One chart is generated for
each Process/Activity selected. The chart is updated as each entity
departs the Process/Activity. The observation points on the chart are
connected only to improve their visibility and are not meant to suggest
continuity.

Entity Counts Plot—This chart shows the individual entity count


measurements for each Process/Activity. One chart is generated for
each Process/Activity that is selected. The chart is updated as each
entity of the given type enters or departs the Process/Activity.

Entity Count Reports


These reports present the simulation generated entity count statistics
for selected Processes/Activities. Entity Count will not be collected
unless Collect Activity Statistics (either global or individual) is
selected prior to running the simulation. Count by Entity Type will
not be collected unless Collect Activity by Entity Statistics (either
global or individual) is selected prior to running the simulation. The
results are not available until the simulation is complete.

Total Entity Count—This report shows the total number of entities that
(1) have arrived at the Process/Activity, (2) are remaining in the
Process/Activity at the end of the simulation, and (3) have been
processed by the Process/Activity.

Count By Entity Type—This report shows the average and maximum


entity counts broken down by entity states, that were processed by the
selected Process/Activity. That is, how many were in the Process/
Activity, Wait For Resource, In Process, and Hold for Condition states.

Attribute Value Reports


The attribute value reports must be specified in the dialogs where the
attributes themselves are defined. If the attributes are defined locally
for a Process/Activity, then the reports must be selected where those
attributes are defined.

Time Weighted Average—This report shows the time-weighted


statistics for the selected Process/Activity attributes.

SIMPROCESS User’s Manual 193


CHAPTER 8–Output Reports

Observation based Average—This report shows the observation based


statistics for the selected Process/Activity attributes.

194 SIMPROCESS User’s Manual


Simulation Results File

Simulation Results File


The Simulation Results file is generated from the File menu. Select
File/Export/Simulation Results to open the Save Statistics dialog box.
The Simulation Results file will, by default have a .xpt file extension
and be saved to the current model directory. This file is tab-delimited,
and can be opened using a text editor or spreadsheet.

The file will contain the complete statistical measures corresponding


to the reports selected for the current model. This file gives you raw
statistical data that is displayed in the Standard and Custom Reports,
in a standard format that can be opened by many different applications.

For a complete listing of the format of the Simulation Results file, see
“Simulation Results File,” beginning on page 411

SIMPROCESS User’s Manual 195


CHAPTER 8–Output Reports

196 SIMPROCESS User’s Manual


Part B
Advanced SIMPROCESS Functions
and Features

The chapters in this section describe the advanced functions and


features available in SIMPROCESS Professional.

SIMPROCESS User’s Manual 197


198 SIMPROCESS User’s Manual


CHAPTER 9

Reusable Templates and Libraries

One of the most powerful features of SIMPROCESS is the Reusable


Template. A template is an activity, hierarchical process, or resource
that is defined and reused over and over. A library is a collection of
templates that can be saved as a file and loaded before starting a
modeling session. The SIMPROCESS Template Library facility
offers many model building and analysis support features. A standard
set of Templates, such as Activities, Processes, and Resources, are
provided by the system. For example, you may define in the Resource
Library specialized Resources like Tellers, Loan Officers, Branch
Managers, and so on for business process modeling in a financial
services business. A Library could also contain templates that may
represent competing models of the business processes that are under
scrutiny. Templates also provide the ability for you to set default
parameters for system provided items.

You can create many different Templates and load them into the system
when they are needed. You can populate the Palette bar with
customized Processes/Activities (for easy reuse) and/or organize them
into Templates selected from the Create pull down menu.

SIMPROCESS User’s Manual 199


CHAPTER 9–Reusable Templates and Libraries

Library Concepts
The SIMPROCESS Template and Library facilities support the reuse
and organization of the various constructs used in building models.
The Library is organized by category of constructs, such as Activities,
Processes, and Resources.

Each category can have many elements and can be thought of as a


Library on its own. For example, the Activities Library contains all
the Activities templates that are found on the Palette Bar (Generate,
Dispose, etc.) and others you have customized. A standard set of
Templates, such as Activities, Processes, and Resources, are provided
by the system.

We encourage you to develop your own objects and organize them into
libraries. Over time, your libraries of objects will grow. With a large
set of libraries of reusable model building blocks, you are able to build
new models faster. For example, you may develop a set of Processes
(Warehouse, Manufacture, Transport) and Resources (Trucks, People,
etc.) relevant to the Distribution domain, save them to a library named
Distribution and use them to quickly build distribution models.

The libraries that you build can be saved to disk and loaded during the
modeling session as they are needed. This enables you to share
templates with your colleagues and increases the building blocks
available for model construction.

In addition to providing a repository for storing categories of modeling


constructs, you can use the Library Management facilities to
customize defaults for model elements that are built into
SIMPROCESS (statistical distribution and activity parameters,
connector line width, etc.) You can even reorganize the layout of your
Palette bar. You can keep Processes and Activities that you use
frequently at one convenient location on the Palette bar for quick
access. Processes and Activities that are less frequently used can be
stored at the other end of the Palette bar or accessed through the Create
pull-down menu.

In summary, Templates:

• Are repositories for model building constructs you


manipulate or create.

200 SIMPROCESS User’s Manual


Library Concepts

• Allow customizing of model elements through parameter


settings.
• Facilitate reuse of Processes, Activities and Resources.
• Allow customized placement of Processes and Activities on
the Palette bar and the Create pull-down menu.
• Allow the grouping of Processes and Activities in user-
defined templates.
• Facilitate saving and loading of customized model elements
onto disk for use in other models or by colleagues.

SIMPROCESS User’s Manual 201


CHAPTER 9–Reusable Templates and Libraries

Defining and Editing Templates


The Define/Templates pull down menu provides access to various
methods for manipulating templates. The four functions available
under this pull down menu are:

Add allows you to add the selected Process or Activity from the
workspace to the library. It will appear in its respective category
(Activities or Process.) You also can define and add the Process or
Activity to a user specified template that is available under the Create
menu bar option.

Edit allows you to view template elements, change default parameter


settings, set up your Palette bar, and create copies of existing elements
that can be customized.

Load allows you to bring a library that has been saved to disk previously
into your current SIMPROCESS session and use the template
elements to build models. Simply specify the file name containing the
saved template in the dialog box presented. Once the OK button has
been selected, the library is loaded and is available for use.

Save allows you to save a template library to disk for future use. This
function saves the elements in each of the system templates
(Activities, Processes, Resources, etc.) into one library file. The Load
command allows you to load this library in the future.

NOTE

The Resource Properties dialog contains an Add Template


command button. For more information, see “Resource
Modeling Constructs,” beginning on page 135.

202 SIMPROCESS User’s Manual


Editing Templates

Editing Templates
Edit allows you to view template elements, change default parameter
settings, set up your Palette bar, and create copies of existing elements
that can be customized.

Using the Edit Feature


1. Select Edit found under the Define/Templates pull down menu.
2. The dialog box that appears contains a list box. Each entry
in the list box is a library. Select the Close button when
finished editing the templates.

This dialog provides access to all the system templates in


SIMPROCESS. If, for example, you wish to edit an Activity,
select Activities in the list box and choose the Edit button.

3. A new dialog appears with a list of all the standard predefined


Activities and the ones that you may have defined, as shown
below. Choose the Close button when finished with this dialog
box.

SIMPROCESS User’s Manual 203


CHAPTER 9–Reusable Templates and Libraries

4. The three command buttons to edit library elements are:

• Copy…

• Properties… (Edit Model Element Parameters)


• Preferences… (Edit Template Parameters)

The Copy command button lets you create a copy of an existing


Process/Activity, modify its defaults and put it back in the
library. For example, if you use a Delay with a particular delay
time, you can create one with those characteristics, and put it in
the library and on the Palette bar. Then you can just drag it out
and use it.

Change Default Parameter Settings (Properties)


Use this facility to maintain the default settings for all model elements
in the Library.

1. Select a library by following the procedures on page 203.


2. Choose the Properties button. It displays the dialog used to
define the model element selected in the list box. For example,
if you select Batch and choose the Properties button, the
following detail dialog for Batch Activity is displayed:

204 SIMPROCESS User’s Manual


Editing Templates

3. Change any of the values in this dialog. Use the Help button
for an explanation of field definitions or see page 103 in this
guide.

The new value settings will appear in the dialog the next time
you create another instance of that type of model element
(Batch Activity). The Properties field appears on all library-
editing dialogs (Activities, Connectors, Entities...).

4. Select the OK or Cancel button when you are finished with this
dialog box.
5. Select the Close button when finished editing the templates.

You must save the library to disk and reload it every time you restart
SIMPROCESS to retrieve the customizations you have made.
SIMPROCESS loads a default library every time it is restarted.

SIMPROCESS User’s Manual 205


CHAPTER 9–Reusable Templates and Libraries

Edit Library Parameters


Using this facility you can place Activities/Processes on the Palette
bar or on the Process/Activity option of the Create pull down menu.

1. Select a library by following the procedures on page 203.


2. Choose the Preferences button. It displays a dialog box. The
example shown is for a Batch Activity.

3. Place an Activity/Process on the Palette bar by selecting the


On/Off check box and selecting the Row and Column where you
want it to appear. This lets you arrange the Palette bar in a
manner you find convenient. In the default Palette, there are
13 rows and 2 columns. So, if you wish to add a new template
to the current palette, you should use Row 14 and Column 1
or 2. You can change the appearance of the button on the
Palette bar by making a selection in the Palette Icon combo
box. You can also change the appearance of the layout icon
by making a selection in the Layout Icon combo box. You can
type in your own descriptive name in the Palette Label. This
name appears as a tool tip when the cursor is on top of the
button.

206 SIMPROCESS User’s Manual


Editing Templates

4. The Menu Owner text box allows you to place this Process/
Activity under the Create pull down menu. The On/Off check
box must be selected for this Process/Activity to appear in that
menu.
5. Choose the OK or Cancel button when you are finished with
this dialog box.
6. Select the Close button when finished editing the templates.

SIMPROCESS User’s Manual 207


CHAPTER 9–Reusable Templates and Libraries

Saving a Resource for Reuse


The Add Template command on the Resource Properties dialog stores
a copy of your resource definition as a re-usable template in
SIMPROCESS’s Resource Library.

Add Template allows you to create a new resource template using


parameters you specify. Once you have created a resource template,
a combo box will appear at the top of the Resource dialog box. Your
template can be selected from this list in the current model.

The default resource template (aptly named Resource) sets properties


of a new resource as follows:

Name is the template name, plus a number.


Comment is blank.
Units is 1.
Fractional Usage and Consumable check boxes are unchecked.

Suppose you define a resource named Diesel Fuel. If you then need
to define other resources with attributes similar to Diesel Fuel, you
could use the Copy function to copy the definition. But this only works
within the same model. If you think you will need the same or a similar
resource in other models, you can define a template modeled after
Diesel Fuel:

1. Start by adding a resource using the Resource Properties


dialog. Modify the dialog box as shown below:

208 SIMPROCESS User’s Manual


Saving a Resource for Reuse

The resource named Diesel Fuel is defined as a consumable


resource with an initial Units of 1000. It can be allocated in
fractional quantities.
2. Click on Add Template:

3. Enter a name for the template in the Template Name field. For
this example, call it Fuel Oil.
4. Click on OK to save the template definition.
5. Click on OK to accept the resource definition for Diesel Fuel.

If you click on Cancel instead of OK, the resource definition is not


accepted, but the template is.

After the first resource template is created, there will be a Type field
near the top of the Resource dialog box whenever this dialog box is
reopened. The Type field identifies the template defining default
parameters for the resource you are creating. If you click on the down
arrow of the Type combo box, you will see the templates you have
created.

SIMPROCESS User’s Manual 209


CHAPTER 9–Reusable Templates and Libraries

Now close the Resource dialog box and select Define Resources again.
The template you just created is included in the list:

Select Fuel Oil from the Type list box, and then click on Add. Notice
the initial settings of the Resource Properties dialog box are displayed:

210 SIMPROCESS User’s Manual


Saving a Resource for Reuse

Note that at this point, the template only


exists in the current SIMPROCESS
session. If you exit SIMPROCESS and
then start it again, the template is gone. To
save the template for future sessions, you
must use the Save option under Templates.

SIMPROCESS User’s Manual 211


CHAPTER 9–Reusable Templates and Libraries

Importing Bitmap Graphics For Use As


Palette Icons
The Palette Icon field lets you customize the look of the SIMPROCESS
palette.

If you have a bitmap file that you wish to use on the Palette, place the
file in the SIMPROCESS working directory (by default,
c:\SPUSER\). Your bitmap graphic should be 16 by 16 pixels. The
name of the bitmap graphic file should be <icon name>_s.bmp.
When you add your Activity or Process template, the icon name will
be in the Palette Icon field.

212 SIMPROCESS User’s Manual


CHAPTER 10

Customizing a Model with


Attributes and Expressions

SIMPROCESS provides a wide range of predefined model elements


and statistical options, but every business process is unique in some
way. There will be times when you need flexibility to model complex
situations and the built-in functions of SIMPROCESS may be
inadequate. In those cases, you may define your own attributes and
expressions.

For example, a typical SIMPROCESS model for an appliance


manufacturer’s distribution process might include a batch activity
where customer orders are collected for shipment. Products may be
shipped on a predetermined schedule, or when the total number of
pending orders reaches a certain number. The SIMPROCESS Batch
activity readily handles these scenarios with the Quantity to Batch and
Release Threshold options.

But suppose you need to model a process where the dispatching of a


shipment depends on the total weight of the appliances that have been
accumulated. How would you model this situation?

SIMPROCESS User’s Manual 213


CHAPTER 10–Customizing a Model with Attributes and Expressions

Add weight of current


order item to total
weight of all orders
received.

Is total weight over


Yes Release Shipment
the max allowed?

No

Another area where you might need flexibility is in customizing


reports. SIMPROCESS provides you with several reports that track
the flow of entities through a model. You can see how many entities
of a particular type (each customer order, for example) are processed
during simulation, or the average amount of time each type of entity
takes to make its way through the simulation.

But suppose you want to determine the percentage of orders that are
shipped by a promised delivery date (service level), so that you can
measure your success in attaining service goals.

Two advanced SIMPROCESS features, Attributes and Expressions,


provide you with the ability to handle these and many other situations.

214 SIMPROCESS User’s Manual


Introduction to Attributes and Expressions

Introduction to Attributes and


Expressions

Attributes
Attributes are user-defined and built-in variables of model elements
whose values can change during the course of a simulation run. For
example, in the case of a Batch process where entity release depends
on the weight of entities received, an attribute is the total weight of
the items accumulated in the batch activity.

To determine the percentage of orders processed within a specified


period of time, the attributes you need to track include the processing
time for each order, the number of orders that meet the promised
delivery date, and the total number of orders processed.

Attributes may be used to:

• Alter the behavior of a process by changing the value of an


attribute during a simulation.
• Communicate information (such as attribute values)
between two processes in a model.
• Store data collected during a simulation run.

There are two categories of SIMPROCESS attributes: Built-in System


Attributes, which SIMPROCESS automatically creates and updates,
and User Defined Attributes, which you create. For example, the
number of entities generated for each entity type (e.g., number of
orders) is automatically tracked and stored in a built-in system
attribute named NumberCreated. To track an attribute such as
weight, which SIMPROCESS does not know about, you would create
an attribute called applianceWeight.

Some system attributes can be modified by users. These are called


"Get-Set" type System Attributes. Generally, these are variables that
control process parameters such as the number of entities to batch or
amount of time of the next delay. By modifying these system attributes,
you can affect the behavior of your simulation.

SIMPROCESS User’s Manual 215


CHAPTER 10–Customizing a Model with Attributes and Expressions

System Attributes that you cannot change include those that monitor
statistics, such as the number of entities generated during the
simulation. These are called "Get-only" type system attributes.
Information on the status of a simulation, such as which activity is
processing an entity or what type of entity is being processed, is also
available through get-only system attributes.

For a complete list of system attributes, see “SIMPROCESS System


Methods and Examples,” beginning on page 393.

Expressions
The ability to create and set attributes is a powerful simulation feature
when used in conjunction with SIMPROCESS Expressions.
Expressions are user-written statements that SIMPROCESS executes
during a simulation run. When you define an Expression, you select
the point at which you want the Expression to be evaluated; for
example, at the beginning of the simulation, or at the moment an entity
(e.g., a customer order) is received by an Activity (e.g., order
distribution).

In the case of the model where releasing of shipments depends on the


total weight of orders such as appliances, you could do the following:

1. Define an Attribute called applianceWeight and set its value


whenever an appliance-order entity is generated by
SIMPROCESS. You determine what value to assign
applianceWeight by checking the name of the entity type (e.g.,
dishwasher-order, television-order). This information is
available from a system Attribute, Name.
2. When an entity is received at the Batch Activity, add the
entity’s applianceWeight value to the total weight of all orders
waiting to be shipped (another User Attribute). Then check
the total weight, and if it exceeds a certain value, do something
to cause the Batch Activity to release a shipment.

One way to force a shipment to be released is to change the batch size


to a value equal to the current number of entities in the Batch Activity.
These values are available in System Attributes.

You will see actual code for this later in the chapter.

216 SIMPROCESS User’s Manual


Introduction to Attributes and Expressions

This chapter describes:

• Built-in System Attributes.


• User Defined Attributes.
• How to write an Expression which uses User Defined
Attributes and System Attributes.

The examples in this chapter refer to a Batch Activity, so familiarity


with this Activity will help you follow the examples.

SIMPROCESS User’s Manual 217


CHAPTER 10–Customizing a Model with Attributes and Expressions

Using Attributes in SIMPROCESS


This section contains a closer look at attributes and how they can be
used in SIMPROCESS. It starts with a look at the system Attributes
built into SIMPROCESS, and then goes on to a detailed discussion
of User Defined Attributes and how to define them.

System Attributes
SIMPROCESS provides access to the state of a simulation through
a set of built-in variables. These System Attributes provide
information such as:

• The type of entity currently in an activity.


• The number of entities of a particular type that have been
allocated thus far in the simulation.
• The name of the activity holding a particular entity.
• The type of entity being generated by a Generate activity.

A complete list of System Attributes is given in “SIMPROCESS


System Methods and Examples,” beginning on page 393. Let us look
at the table entries below for the attributes accessible from Batch
Activities:

218 SIMPROCESS User’s Manual


Using Attributes in SIMPROCESS

Object Name Type Get/ Description


Set
Batch MaxBatchSize INTEGER Both Number of entities to
Activities batch.
MinBatchSize INTEGER Both Number of entities
must be in a batch
before it can be
released.
MaxWaitTime REAL Both Time to wait before
releasing an under-
sized batch.

1. The MaxBatchSize attribute is an integer value representing


the maximum number of entities to batch at a Batch activity.
You can get the current value of the attribute and change it,
if you wish.
2. The MinBatchSize attribute is an integer value containing the
minimum number of entities a Batch activity must hold before
it can release a batched entity.
3. The attribute MaxWaitTime specifies the maximum amount
of time to wait before releasing the batched entity which have
met the Activity’s MinBatchSize. The value is a real number
(e.g., 1.0, 7.5, etc.) representing hours. You can get and set the
value of this attribute.

An object type attribute has a special purpose. Unlike other attributes,


you are not interested in the value of the object itself. Rather, you use
the object to direct SIMPROCESS’s attention to the model element
you are interested in. The best way to understand this is by examining
an object attribute in use. See “Using Object Attributes in
Expressions” on page 252.

SIMPROCESS User’s Manual 219


CHAPTER 10–Customizing a Model with Attributes and Expressions

User Defined Attributes


By defining your own set of attributes, you can begin customizing your
model. These attributes can represent model element attributes that are
not built into SIMPROCESS, such as entity weight or size, skill level
of a resource, or service level.

You define attributes in association with:

• Entity types, or Entity instances


• Processes or Activities.
• Resources.
• The Model.

When you define an attribute, you either tell SIMPROCESS to create


an instance of that attribute for every model element of the same type
(e.g.,Entities, Resources), or to just create the attribute for a particular
type of model element (Customer Order entities, Truck resources). In
SIMPROCESS terminology, we say that attributes are either globally-
defined or locally-defined. Model attributes are only globally-defined.

When you define an attribute globally, an instance of that attribute is


automatically created for each model element of that class. For
example, if your model contains entities for different types of
appliances (refrigerators, televisions, toasters, etc.) and you want to
assign a weight value to each entity, you could globally define an entity
attribute called applianceWeight. SIMPROCESS creates an instance
of that attribute for every entity in your model, so every entity has an
appliance weight attribute which you can reference.

On the other hand, the only Activity in which you are interested in weight
is the Activity where entities are batched. In this case, it makes sense
to locally define an attribute for that particular Activity. When that’s
done, no other activity will have a weight attribute automatically created
for it.

Note that you can define attributes with the same name for different
model elements. For example, you could also define a global attribute
called applianceWeight for Resources. It can have a completely
different meaning and data type. You cannot define a global and a local
attribute with the same name for the same model element.

220 SIMPROCESS User’s Manual


User Defined Attributes

Creating a User Defined Attribute


Global attributes can be defined from the SIMPROCESS menu bar,
or from the dialog box of a model element. Local attributes can only
be defined from the dialog box of a model element.

A couple of examples will illustrate this. Let us look at two activities


of an appliance manufacturer’s distribution model. There is a Generate
Activity named RECEIVE-ORDERS, in which customer orders are
generated, and a Batch Activity named DISTRIBUTE-ORDERS, in
which the ordered appliances are shipped to customers.

The model contains entity definitions for each type of appliance that
a customer can order. They are named refrigerator-order, television-
order, toaster-order, etc. To track the weight of each appliance, you
need to define an attribute in which to store the weight. You can
globally define the attribute, that is, create an attribute for every entity
in the model.

You also need to keep track of the weight of all orders received at the
DISTRIBUTE-ORDERS Batch Activity. But you do not need to track
weight at any other Activity. You can define a local attribute for the
DISTRIBUTE-ORDERS Activity.

Globally Defining an Attribute from the Menu Bar


To globally define an attribute from the SIMPROCESS menu:

1. From the Define pull-down menu, select Attributes.


2. Select Entities.

SIMPROCESS User’s Manual 221


CHAPTER 10–Customizing a Model with Attributes and Expressions

If you select Entity Types instead, you will only define one weight
attribute for all refrigerator-order entities, one attribute for all
television-order entities, etc. You want an attribute for each order, i.e.,
each entity instance.1

The following dialog box appears:

The Global Attribute Definitions dialog box is used to add a


new attribute or to change, copy, or delete attributes.

The list box shows the names of all attributes previously


defined. If you have not created any attributes yet, the list
box will be empty and the Edit, Copy, and Remove buttons
will be inactive.

1. You can make this model work by defining the attribute for entity categories
instead of entity instances. See “An Alternative Method Using Entity
Types” on page 256.

222 SIMPROCESS User’s Manual


User Defined Attributes

3. Click on Add to create a new attribute.

In the Attribute Properties dialog box:

Name can be anything you want (except as noted below), as


long as you have not previously used it for another attribute
of the same class of model element. Although not a system
attribute, Size may not be used as an attribute name. Size
is a reserved word in SIMPROCESS.

If you are creating a new attribute, SIMPROCESS


initializes the field with a default name that you should
highlight and change.

For this example, type applianceWeight.

Value is the default initial value of this attribute. The value


must correspond to the data type you specify in the Mode
field. For instance, you cannot enter 1.0 if Mode is Integer.

If the Mode is Object, the Default value is undefined. An


Object attribute’s value can only be set during a simulation
run. Anything you enter in the Default field is ignored.

Mode is the data type of the User Attribute. Click on the


arrow button to select either Integer, Real, String, Boolean, or
Object:

SIMPROCESS User’s Manual 223


CHAPTER 10–Customizing a Model with Attributes and Expressions

Integer values are numbers without fractional or decimal


parts.
Real values can contain a fractional part.
A String is any series of alphanumeric characters.
Boolean values can be either TRUE or FALSE.
An Object is a reference to another model element in your
model. For example, during a simulation run you might
use an Object Attribute to point to the Generate Activity
that generated an entity.

Model Parameter when checked, means that every time the


model is run, a dialog box will open, prompting you to either
accept the default value of the attribute, or enter a new initial
value of the attribute. Only Global, User-defined attributes
can be set as Model Parameters. If a Comment is entered for
the attribute, this will appear in the Description field of the
Model Parameters dialog box when the model is run. If nothing
is entered in the Comment field, the Name of the attribute will
appear instead.

Statistics Properties refer to statistics collected for attributes


during a simulation run. These statistics are used in
SIMPROCESS reports. Note that no statistics can be
collected for entity instance attributes.

Observation Based, Time-Weighted, and None refer to the way


statistics are collected:

Observation Based tells SIMPROCESS to collect


statistical data without considering the amount of time
an attribute maintains a particular level. Each time the
value of an attribute changes, the new value is added to
a running total.
Time-Weighted provides time-weighted statistics. That
is, the length of time an attribute remains at a particular
value is factored into the statistical data when the
average value is calculated.
None tells SIMPROCESS not to collect statistics for the
attribute.

224 SIMPROCESS User’s Manual


User Defined Attributes

Real Time Plot and Post Simulation tell SIMPROCESS


whether to plot the attribute value changes as they occur dur-
ing the simulation run (Real Time Plot) or to save the statistics
in a file and summarize the data at the end of the simulation
run.

For this example, accept the defaults for all options except
Name.

4. Click on OK to accept the options you selected, or click on


Cancel to exit without setting/resetting any options.

As a result, an attribute named applianceWeight is created for each


entity generated during a simulation run. Any time you refer to that
entity in your model, you can reference or update its applianceWeight
attribute.

Any attribute defined from the SIMPROCESS menu bar is globally-


defined. Because applianceWeight was defined globally, any new
entities generated in your model will automatically have an attribute
of applianceWeight created for it.

You can copy an existing User Attribute by selecting the attribute in


the list box, and then clicking on the Copy button. The User Attribute
dialog box is displayed with the options and Default set to the values
of the attribute you copied. Give the new attribute a name and change
any options that you want to change.

To remove an existing User Attribute, select the attribute from the list
box, and then click on the Remove button.

Before you delete an attribute, be sure that the attribute is not


used by activities. Once you click on Remove, you will not have
a chance to change your mind.

When you are finished defining or modifying User Attributes, click


on Close.

SIMPROCESS User’s Manual 225


CHAPTER 10–Customizing a Model with Attributes and Expressions

Globally Defining Attributes from Dialog Boxes


We noted earlier that you can globally define a User Attribute from
either the menu bar or from a model element’s properties dialog box.
They both accomplish the same thing. Here is how you do it from a
dialog box.

Begin by editing the definition for any model element of the class you
are interested in. In the example on page 221 defining the attribute
applianceWeight, the model element was an entity. To create the same
attribute from a dialog box, do the following:

1. From the Entity pull-down menu, select Define Entities...

2. Select any of the entities listed. It does not matter which one,
since the attribute you are going to define will apply to all
entities.

Click on Edit and the Entity Type Properties dialog box will
appear.
3. In the Define Attributes or Expressions For section, select Entity
Instance and click on the Attribute button. By default, the Local
Attribute Definition dialog will appear.

226 SIMPROCESS User’s Manual


User Defined Attributes

4. Click on the Globals… button.

If you click on Add instead of Globals…, you end up defining


a local attribute, as you will see in the next section.

5. The User Attribute Definitions dialog box already contains the


name of an attribute in its list box. This is the global attribute
that was defined earlier using the SIMPROCESS menu bar.

From this point on, follow the instructions beginning with step 3 on
page 221.

SIMPROCESS User’s Manual 227


CHAPTER 10–Customizing a Model with Attributes and Expressions

Defining a Local Attribute for a Model Element


A local attribute is defined for a single model element. In the model
described here, the model element is a Batch Activity named
DISTRIBUTE-ORDERS:

1. Double-click on the DISTRIBUTE-ORDERS Activity.

2. In the Batch Activity Properties detail dialog, change the


Quantity to Batch to 100000 (we will discuss why later). Then
click on the Attributes… button.

The Properties dialog box of every SIMPROCESS model


element (Activity, Entity, etc.) contains an Attributes…
button.

228 SIMPROCESS User’s Manual


User Defined Attributes

3. The Attribute Definitions dialog box for locally defined


attributes is almost the same as the one for globally defined
attributes. The only difference is that the dialog box for
locally defined attributes contains a Globals button.

Click on Add.
4. The Attribute Properties dialog box is identical to the one used
for defining global attributes.

For name, type batchWeight.


5. Click on OK, and then Close when you are finished defining
your local attributes.

Now that you have seen how to define User Attributes, let us see how
you can put them to use.

SIMPROCESS User’s Manual 229


CHAPTER 10–Customizing a Model with Attributes and Expressions

Assign Activity
The Assign activity is one method you can use to provide values to
globally defined attributes. You can also use Assign to change the
priority of an entity.

Changing an Attribute Value with the Assign Activity


Using the Set Attribute list box of the Assign Activity, you can change
the value of any Global Attribute (except globally-defined Resource
attributes) and Local Activity Attributes of that Assign activity.
Clicking on the Add button will open up the Assign Attribute Properties
dialog box.

The combo box in the Set Attribute field contains the names
of all the Global Attributes that the Assign Activity can access.

The Operation field contains the operators that can the used
to change the value of the selected attribute. The supported
operators are; =, +, -, *, and /.

230 SIMPROCESS User’s Manual


Assign Activity

The Value field is where you enter the value you want the
attribute to become. This can take the form of a constant,
a Statistical Distribution, a User-defined Function, or an
Evaluate (Evl) Function. User-defined Functions can be
found on page 257 of this chapter. The Evaluate Function
is covered on page 240.

Each time an entity enters the Assign Activity, the Set


Attribute command you have entered will be performed.

SIMPROCESS User’s Manual 231


CHAPTER 10–Customizing a Model with Attributes and Expressions

Variable Resource Usage


User-defined attributes can be used to request units of resources.
Using an attribute allows you to vary the units of resource required
by each entity. For instance, in the example from Chapter 5 (page 142)
an entity needed 1 unit of the Service Rep resource to process in that
activity.

Thus, every entity will get 1 and only one unit of the resource.
However, there may be instances where the amount of resource needed
would be different for each entity. This is true many times when using
consumable resources (such as fuel). Any type of attribute may be
used: Entity, Entity.Type, Resource, Activity, or Model. Use Edit to
modify the existing requirement definition. Enter the attribute that
will have the unit information. The attribute must be of type real or
integer. During the simulation run, if the units of resource requested
is larger than the resource capacity, an error will occur that will stop
the simulation. This error will not occur when using consumable
resources. If the resource is consumable, the entity will wait until more
resource units are available. Also, if a fractional number of units are
requested and fractional usage was not selected for the resource, an
error will occur.

232 SIMPROCESS User’s Manual


Variable Resource Usage

SIMPROCESS User’s Manual 233


CHAPTER 10–Customizing a Model with Attributes and Expressions

Writing Expressions
In the previous section, you learned how to define User Attributes and
what you might use them for. In this section, you learn how to use them.

For attributes to be useful, you must be able to refer to them and change
them during a simulation run. SIMPROCESS provides opportunities
to do this at many points during a simulation. The instructions that you
write to process attributes and SIMPROCESS model elements are
called Expressions.

An Expression is a user-defined routine that runs within the larger


SIMPROCESS program. In effect, SIMPROCESS checks at various
points during a simulation run to see if you have written any special
instructions for it. If you have, it runs the code you have written.
Expressions accomplish simulation and modeling requirements that
standard SIMPROCESS processing does not provide for.

At the beginning of this chapter, we mentioned two examples of


modeling logic you can accomplish by using attributes and writing
Expressions. Then we defined attributes needed to accomplish these
modeling tasks. Next, we will look at how to use these attributes in
Expressions.

We will begin by introducing you to elements of the SIMPROCESS


Expression language needed to fulfill the examples in this section.
Then we will explain how Expressions are implemented, and show
you some examples.

SIMPROCESS Expression Language Basics


The SIMPROCESS Expression language is a subset of the MODSIM
programming language. You can write complex Expressions in this
language, but the coding required for the examples in this section
require just a few language elements.

In the definitions that follow, the word expression with a lower case
"e" refers to a mathematical expression. Expression with a capital "E"
refers to the SIMPROCESS Expressions feature.

234 SIMPROCESS User’s Manual


Writing Expressions

Operators

• Assignment Operator
The assignment operator is used to assign a value to an
attribute:
:=

For example:

x := 15;
assignWeight := 1000;

The colon (:) preceding the equal sign (=) is required. You
receive an error message if you omit it.

Note that an equal sign without a preceding colon is used


when comparing two values. Thus, the statement beginning:

IF assignWeight = 1000...

compares the value of attribute assignWeight to the number


1000.
• Arithmetic Operators used in the SIMPROCESS Expression
language are +, -, * (multiplication), /, DIV (integer
division), and MOD (modulus).
• Relational Operators include: =, <> (not equal), <,
<=, >, >=.

Literals
• A string of printable characters on a single line is enclosed
in quotation marks:
"The plain in Spain looks lovely in
the rain.";

System Methods
• System methods are commands which result in a system
action or return a value from the underlying system. One
commonly-used function is SimTime, which returns a Real
number containing the current simulation time.

SIMPROCESS User’s Manual 235


CHAPTER 10–Customizing a Model with Attributes and Expressions

• For a list of System Methods available in SIMPROCESS,


refer to page 393.

Expression Language Statements:

• IF condition
{ELSIF condition}
ELSE condition
END IF;

• WHILE condition
END WHILE;
• FOR expression TO|DOWNTO expression [BY
expression]
END FOR;
• RETURN (possible return value)
• EXIT (with WHILE or FOR loops)
• OUTPUT

In order to put a SIMPROCESS Expression together, you need to know


the following about the language’s syntax:

1. The SIMPROCESS Expression language is case sensitive.


An attribute named Applianceweight is not the same
entity as the attribute referred to as applianceWeight.
2. All built-in language elements are in capital letters (IF, END,
WHILE, etc.).
3. Each Expression language statement ends with a semicolon
(;).
4. You can include comments in your Expressions by enclosing
them in curly brackets ({ }). For example:

{This is a comment}

Do not end a comment line with a semicolon.

5. Basic conditional logic has the form:

236 SIMPROCESS User’s Manual


Writing Expressions

IF a < b
x := c;
ELSIF a < c
x := d;
END IF;

For example:

IF batchweight > 2000


maxBatchSize := 100;
batchWeight := 0;
ELSIF batchweight > 1800
maxBatchSize := 110;
END IF;

You can display messages in the SIMPROCESS message


window with the OUTPUT statement. This is useful for
tracking the value of attributes as a simulation proceeds. The
OUTPUT statement has the form:

OUTPUT(expression);

For example:

OUTPUT("Just assigned a weight to


entity");
OUTPUT("Current batch weight ",
batchWeight);

In the second example, the value of attribute batchWeight is


displayed following the text "Current batch weight ".
The literal string and attribute name are separated by a comma.

Using Attributes in Expressions


The value of a attribute may be useful in the calculation of
an expression on a construct of a different type than the
attribute was defined for. For instance, you may want the
duration of a Delay Activity to take the value of an attribute
on the Entity currently at the Delay Activity. To do so, the

SIMPROCESS User’s Manual 237


CHAPTER 10–Customizing a Model with Attributes and Expressions

expression on the activity must access the value of the


attribute on the entity. This is accomplished by referring to
the entity attribute with the prefix "Entity." followed by
the name of the entity attribute.

Using the duration example above, for an entity attribute


called "TimeFactor", we can set the duration that each
entity (that carries the TimeFactor attribute) will spend
at a Delay Activity with the following statement:

NextDelay := Entity.TimeFactor;

By placing the above statement in the "Accept Entity"


activation event (for a listing of activation events, see
“Expression Activation Events,” beginning on page 241)
on the Delay Activity, the value of the system attribute,
NextDelay, will take the value of the TimeFactor
attribute. The result is, for each instance of an entity
reaching this activity, its processing time at that activity is
determined by the value of the entity attribute,
TimeFactor, that each instance of the entity carries.

Similarly, you could use the Evaluate function in the


Duration Value field on the Delay Activity to return the value
of the attribute TimeFactor. This method is preferable, as
the fact that the Duration of each Entity at the Delay Activity
is calculated from the TimeFactor attribute is visible on the
Properties dialog of the Delay rather than in an expression.
For more detail, see the “Evaluate (Evl) Function” on
page 240.

If you are referencing an Entity Type Attribute, the format


would be similar. If the attribute to be referenced was named
"TypeTime", it would be used in the expression of a
construct other than an entity as:

Entity.Type.TypeTime

The same holds true for attributes of other SIMPROCESS


constructs as well. An Activity Attribute called
"ActivAttr" that is referenced in an expression on a
construct other than an activity, would be referred as:

238 SIMPROCESS User’s Manual


Writing Expressions

Activity.ActivAttr

A Model Attribute called ModAttr would be referred to as:

Model.ModAttr

User-defined Resource Attributes are accessed by an


expression from any other construct in SIMPROCESS. You
can, however, in the expression on a Resource, assign values
to attributes of other SIMPROCESS constructs using the
syntax described above. You also have access to Resource
System Attributes using the Resource System Method. This
can be used to access the Resource System Attributes from
the expression of another SIMPROCESS construct.

For instance, to reference the number of units currently busy


of a resource called, Resource1, use:

Resource("Resource1").UnitsBusy

These are just some basics of the SIMPROCESS Expression language.


For more detail, see “SIMPROCESS System Methods and Examples”
on page 393.

SIMPROCESS User’s Manual 239


CHAPTER 10–Customizing a Model with Attributes and Expressions

Evaluate (Evl) Function


The simplest use of an expression is with the Evl function. This
function supports a single line expression. That expression can
contain any of the System Methods, System Attributes, User-defined
Attributes and Operators that are supported at the Activation Events
level described in the next section. The Evl function can be found on
any of the combo boxes where you find the standard distributions and
User-defined Functions.

An example of where you would use the Evaluate function, is a system


with a processing time (Delay) that is a function of an Entity Attribute.
From the Delay activity’s Properties dialog, select the Evl(1.0)
function on the Hours field. Clicking the Detail button will open an
Evaluate dialog where you enter the expression describing the
processing time

240 SIMPROCESS User’s Manual


Expression Activation Events

Expression Activation Events


SIMPROCESS has a set of activation points at which it checks for the
existence of Expressions and runs those that it finds. You assign your
Expression to an activation point at the time you define the Expression.

Each activation point corresponds to a simulation event, and has a


name identifying it to SIMPROCESS. For example, the start of a
simulation run is referred to as the Start Experiment event. The
Start Trial event marks the beginning of a single trial within a
simulation.

Total Simulation Time

Replication 1 Replication 2 Replication 3

InitSim TermSim

Warm-up Period Steady State Period

StartSim InitTrial TermTrial


StopSim

Some events can occur many times during a simulation. The Start
Trial and End Trial events occur once during each trial of a
multi-trial simulation. If the simulation contains only a single trial,
these events occur just once. The Start Simulation and End
Simulation events occur once during each replication of a multi-
replication simulation if Reset System is selected in the Simulation Run
Setting dialog box. Otherwise, the Start Simulation event
occurs just once at the beginning of the first replication. The End
Simulation event occurs at the end of the last replication. You
specify these in the User Expressions dialog box.

SIMPROCESS User’s Manual 241


CHAPTER 10–Customizing a Model with Attributes and Expressions

Events related to entities and resources can occur numerous times


throughout a simulation trial. For example, an entity’s arrival at an
Activity is a simulation event called Accept Entity (so-called
because the entity is being accepted into the Activity). This can occur
thousands of times during a long simulation, once for each entity that
arrives at the Activity.

Activity Process Time

Accept Entity GrabResource ReleaseResource


ReleaseEntity

Every Expression is associated with a specific SIMPROCESS model


element. You select the model element that requires customized
processing, specify the event at which you want this processing to
occur, and then write the Expression to do the processing. “Example:
Batching Entities Based on Weight” on page 247, describes this
process in detail.

Not every event is available as an activation point for every model


element. For example, if you need to set the initial value of an attribute
for an entity, you can do this when the entity is first generated

242 SIMPROCESS User’s Manual


Expression Activation Events

(Initialize Entity) or when the entity is released from a


Generate Activity (Release Entity). But you cannot set an entity
attribute when the simulation first begins to run (Start
Experiment), because no entities have been generated at that point.

Table 2, “Expression Activation Events,” on page 244, contains a


complete list of activation events.

SIMPROCESS User’s Manual 243


CHAPTER 10–Customizing a Model with Attributes and Expressions

Table 2: Expression Activation Events

Model Elements Active


Event Name Activation Point (and Comments) For
Start Simulation The beginning of the first replication, before All Activities.
the warm-up period (if any). If Reset Resources.
System is selected, it occurs at the begin- Entity Types.
ning of each replication.

Start Trial Beginning of a trial within the simulation, All Activities.


after the warm-up period (if any). Entity Types.

Initialize Entity Creation (allocation) of an entity. Entity Types.


Entity Instances.
This typically occurs in a Generate Activity,
but may also occur in the Batch, Transform,
Copy, Split, and Assemble Activities.

Accept Entity Arrival of an entity at an Activity. All Activities except


Generate.
Entity Instances.

Get Resource Obtainment of a Resource by an Activity. All Activities except


Generate & Dispose.
Resources.
Free Resource Release of a Resource by an Activity. All Activities except Gener-
ate & Dispose.
Resources.

Release Entity Release of an entity from an Activity. All Activities except Dis-
pose.
Entity Instances.

Dispose of Dispose of an entity. Entity Types.


Entity Entity Instances.

End Trial End of a simulation trial. All Activities.


Entity Types.

244 SIMPROCESS User’s Manual


Expression Activation Events

Table 2: Expression Activation Events

Model Elements Active


Event Name Activation Point (and Comments) For
End Simulation The end of a simulation trial. All Activities.
Resources.
Statistic collection for the trial ends at this
Entity Types.
point.

SIMPROCESS User’s Manual 245


CHAPTER 10–Customizing a Model with Attributes and Expressions

Attribute Value Initialization


User-defined Attributes can be initialized at several places in a
SIMPROCESS model. The following procedure shows how
SIMPROCESS sets attribute values along the simulation timeline.

When the simulation is started, SIMPROCESS will :

1. Initialize attributes to the values that are specified in the


Attribute Definition dialog box;
2. Execute any Start Experiment expressions (attributes can be
set to different values in these expressions if the Reset System
option is not selected);
3. Execute the reset system mechanism if the Reset System
option is selected (reset attribute to the values specified in
the Attribute Definition dialog box);
4. Execute any Start Simulation expressions (attributes can be
set to different values in these expressions);

After a replication is complete, SIMPROCESS may reset attribute


values for the next replication. If the Reset System option is selected
in Run Settings, SIMPROCESS will continue on the next replication
starting from item 3, as listed above. Otherwise, it will start from item
4.

246 SIMPROCESS User’s Manual


Example: Batching Entities Based on Weight

Example: Batching Entities Based on


Weight
This example describes a method of releasing entities based on weight,
an attribute that SIMPROCESS is not inherently aware of. The model
depicts the product distribution process of an appliance manufacturer.
Here is a simplified view of the model:

1. Appliance orders are received from customers.

This is the Generate activity. Each appliance order is an


entity.
2. The orders are processed, and eventually make their way to
a distribution center in the form of appliances.

This takes place within a subprocess. The details are


irrelevant for this example.
3. Appliances are shipped to customers from the distribution
center, a Batch Activity.

Shipments are released when the total weight of all


appliances awaiting delivery reaches 5000 kilograms.

In order to accomplish the objective of releasing the batch when a


certain weight is accumulated, you perform the following in your
model:

1. Define attributes to represent the weight attribute of entities.


2. Assign values to the weight attributes.
3. Accumulate and track the weight of entities received at the
Batch Activity.

SIMPROCESS User’s Manual 247


CHAPTER 10–Customizing a Model with Attributes and Expressions

4. Trigger the release of entities if a specified weight is reached,


and prevent the release of entities otherwise.

Earlier in this chapter, we listed the steps required to define two


attributes that can be used in this model:

• applianceWeight contains the weight of an entity (see


page 221).
• batchWeight holds the accumulated weight of the entities
received at the Batch activity (page 228).

With these attributes defined, you can start writing the Expressions
you need.

Initializing Entity Attributes


First, you need to assign a value to the applianceWeight of each entity
generated during a simulation. This can be done as soon as the entity
is created. Then, when the entity reaches the Batch Activity, you add
its weight to a running total and compare this total to the maximum
allowable weight. The points at which you need to activate your
Expressions are:

• Entity initialization
• Receipt of the entity by an Activity

Entities are initialized by SIMPROCESS at the Initialize


Entity event. Entities are received by an Activity at the Accept
Entity event.

Initialize Entity Accept Entity

248 SIMPROCESS User’s Manual


Example: Batching Entities Based on Weight

Defining the Expression at Entity Initialization


To assign an initial value to an entity’s applianceWeight, you can
define an Expression for each type of entity in your model. The
Expression is a single assignment statement (e.g.,
applianceWeight := 1000) to be executed when the entity is
first generated (the Initialize Entity event):

1. From the Define pull-down menu, select Entities.

2. This model contains three entity types. You must define an


Expression for each entity. Start by selecting the first entity
on the list, and then press Edit.

SIMPROCESS User’s Manual 249


CHAPTER 10–Customizing a Model with Attributes and Expressions

3. You need to initialize every refrigerator-order entity that is


generated, so under Define Attributes or Expressions For select
Entity Instance. Then click on Expressions.

4. Four simulation events are listed in the User Expressions list


box. These are the points during the simulation at which
SIMPROCESS checks for Expressions which apply to entity
instances.

The event for which you’re defining an Expression is


Initialize Entity, which is the point at which an
entity is first generated (initialized). Highlight
Initialize Entity and click on Edit.
5. SIMPROCESS invokes your editor and opens a new file. You
need to add just one line to the file:

applianceWeight := 1000;

This assigns a value of 1000 to applianceWeight.


6. Close the editor. SIMPROCESS assigns a name to the file
when it saves it.
7. Follow the same procedure for each of the entities in your
model, but assign them different weights. Assign a weight of
100 to television-order and 10 to toaster-order.
8. When you are finished, click on Close, and then OK.

250 SIMPROCESS User’s Manual


Example: Batching Entities Based on Weight

Defining the Expression When an Entity Is Released


The method described above works fine to initialize the
applianceWeight attribute of entities. It’s fairly simple, too; it
requires only a single statement in each Expression. But it is redundant.
You need to define Expressions for each type of entity. You could have
many different types of entities, and defining an Expression for each
is tedious and time-consuming.

There are other options. You do not need to assign a weight to your
entities as soon as they are created. You just have to make sure a weight
is assigned before the entity reaches the Batch Activity where
appliances are distributed (DISTRIBUTE-ORDERS).

In this model, all entities are generated by a single Generate Activity.


So you can define an Expression in the Generate Activity, activating
it whenever an entity is released (Release Entity event). This
is the most efficient way to proceed. One Expression handles the
initialization of any entity’s applianceWeight.

1. Double-click on the RECEIVE-ORDERS Activity.


2. In the Generate Activity Properties dialog box, click on
Expressions.

Seven simulation events are listed in the User Expressions list


box. The first three, Start Experiment, Start Simulation, and

SIMPROCESS User’s Manual 251


CHAPTER 10–Customizing a Model with Attributes and Expressions

Start Trial all occur before any entities are generated. Release
Entity serves our purpose, so highlight it and click on Edit.
3. Enter the following lines in your text file:

IF Entity.Name = "refrigerator-
order"
Entity.applianceWeight := 5000;
ELSIF Entity.Name = "television-
order"
Entity.applianceWeight := 100;
ELSE
Entity.applianceWeight := 10;
END IF;

These instructions check the name of the entity being


released at the activity. The name identifies the type of entity.
A value is assigned to applianceWeight based on the
entity type.
4. Close the editor. SIMPROCESS names the file before saving
it.
5. Click on Close, and then OK.

Using Object Attributes in Expressions


The code in the previous example uses an Expression language
construct we refer to as a qualified reference. For instance:

Entity.Name

refers to an object, named Entity, and an attribute, Name.

An object attribute leads SIMPROCESS to the model element whose


attributes you are interested in. Unlike other attributes, you are not
interested in the value of the object, you only use it to obtain the value
of its system or user attributes.

In step 3, you needed to identify the type of entity being released by


the Generate activity. The System Attribute Name identifies the entity
type. But a Name attribute also identifies resources and activities. So

252 SIMPROCESS User’s Manual


Example: Batching Entities Based on Weight

referring to Name alone is ambiguous. In fact, SIMPROCESS


assumes you are referring to the model element that called the
Expression (the RECEIVE-ORDERS Activity).

That is where object attributes come in. They identify the model
element you are interested in.

• The Entity object attribute tells SIMPROCESS to look


at the entity being processed in the current activity.
• An attribute called Self points at the current model element;
that is, the model element the expression has been invoked
from.

So Entity.Name returns the type name of the entity instance being


processed at the RECEIVE-ORDERS activity, while Self.Name
returns the name "RECEIVE-ORDERS."

A qualified reference is also employed to set the User Defined


Attribute applianceWeight:

Entity.applianceWeight := 5000;

Now, applianceWeight was specifically defined as an attribute


of entities. So you might think that any reference to this attribute would
be unmistakable; that it can only refer to one thing.

But in fact, you must use an object attribute to qualify your reference
to applianceWeight. That is because without specifying a
qualifier, SIMPROCESS assumes you are referring to an attribute of
the current model element. In this case, the current model element is
the Generate Activity, RECEIVE-ORDERS: it is the model element
which invoked the expression. There is no attribute named
applianceWeight associated with this activity, and an
unqualified reference to applianceWeight results in an error.

Note that an unqualified reference to the attribute Name refers to the


name of the current model element, RECEIVE-ORDERS. If that is
the attribute you are interested in, you do not have to qualify the
attribute.

SIMPROCESS User’s Manual 253


CHAPTER 10–Customizing a Model with Attributes and Expressions

Releasing Entities Based on Weight


You need to write two more Expressions to complete the model. In the
first Expression, you check the weight of the entities received at the
batch activity, and trigger their release if the weight reaches a certain
number:

1. Double-click on the DISTRIBUTE-ORDERS Activity.


2. In the Batch Activity Properties dialog box, click on
Expressions.

3. There are ten activation events listed in the User Expressions


list box for a Batch Activity. Accept Entity occurs when
an entity arrives at the activity, so highlight this event and
click on Edit.
4. Insert the following code:
batchWeight:=batchWeight+
Entity.applianceWeight;
IF batchWeight>=5000
MaxBatchSize := NumberIn;
OUTPUT("Batch weight is ",
batchWeight);
batchWeight := 0;
END IF;

254 SIMPROCESS User’s Manual


Example: Batching Entities Based on Weight

In this Expression, the weight of the just-received entity is


added to the total weight of all entities received. If the total
weight exceeds 5000, a batch release is triggered by resetting
MaxBatchSize, the attribute that sets the maximum
number of entities that can be held in the batch. With the
Activity about to be emptied of entities, the batchWeight
attribute is reset to zero.

The OUTPUT statement in the Expression is there as an


example of displaying information in the message dialog. It
is not needed by the model. You can intersperse OUTPUT
statements in your Expressions in order to trace events during
a simulation. By displaying the value of batchWeight, for
instance, you can verify that the batch is really released when
the weight exceeds 5000.
5. Close your editor.

There is one more thing this model needs. The maximum batch size
must be reset again after the entities are released. You do not want
entities to be released when the DISTRIBUTE-ORDER batch reaches
a certain number. Only accumulating 5000 kilos of weight should
trigger release.

As it stands now, MaxBatchSize is set to the size of the previous


batch accumulated at the activity. This was done to force a release of
entities when batchWeight reached 5000 kilos. You could easily
reach the current MaxBatchSize again, so to prevent that, reset this
attribute to a number you can not possibly reach before accumulating
5000 kilos of weight:

1. In the User Expressions dialog box, select Release Entity. This


is the event where the entities are released from the batch
activity.

Press Edit.
2. Enter the following statement:

MaxBatchSize := 100000;
3. Close the editor.

The model should now be ready to run.

SIMPROCESS User’s Manual 255


CHAPTER 10–Customizing a Model with Attributes and Expressions

An Alternative Method Using Entity Types


This example works fine, but there are alternative approaches you can
take, as there often are when building models in SIMPROCESS.

You already saw a couple of alternatives described for initializing the


value of the applianceWeight attribute (“Defining the
Expression at Entity Initialization” on page 249 versus “Defining the
Expression When an Entity Is Released” on page 251). Another
alternative involves defining the applianceWeight attribute for
entity types instead of entity instances.

In this example, we defined a weight attribute for every entity instance


in the model. Every refrigerator-order was assigned a weight of 5000,
every television-order, 100, etc. The assigned weights remained
unchanged during the course of the simulation.

We could have just as easily defined an applianceWeight


attribute for each entity type, and initialized it at the Start
Experiment event. Then, in the Expression defined at Accept
Entity for the DISTRIBUTE-ORDERS Activity, the entity’s
weight would be referenced as:

Entity.Type.applianceWeight

This would have worked fine in the model we built. But suppose that
the weight of an order could be affected by some step in the process
being modeled, and you needed to reflect this. For example, a customer
order could include accessories for an appliance (e.g., cables and
remote control for a television), adding to the weight of the order. In
that case, attaching the applianceWeight attribute to each entity
instance allows you to vary the weight of each television-order, which
you cannot do if the attribute belongs to the entity’s type.

256 SIMPROCESS User’s Manual


User-Defined Functions

User-Defined Functions
A User-defined Function will return the value of an expression each
time it is called from within the model. This lets you re-use a single
function in multiple places in your model.

To create a User-defined Function, go to the Define menu, and select


Functions. This opens a list box displaying any previously defined
functions. If you Add a new function, or Edit an existing one, the
Function Definition dialog box will open. Here you can type in a
meaningful Name for the function. The Expression button will open
up Notepad as you would for any SIMPROCESS Expression. Type
in your expression here. The final line of the expression should be a
RETURN statement such as:

RETURN (Entity.Time * Activity.Factor);

where Entity.Time and Activity.Factor are attributes.


Each time this function is called, it will return the value of the multiple
of the two attributes.

The Name that you chose for the User-defined Function will appear
in every combo box of every activity in your model that a statistical
distribution can be entered.

SIMPROCESS User’s Manual 257


CHAPTER 10–Customizing a Model with Attributes and Expressions

Dynamic Labels
There are two types of background text in SIMPROCESS: static text
and dynamic labels. Static text is used for annotating the model layout
and does not change during simulation. Dynamic labels, as their name
implies, are updated during simulation and are used to display
information about changing properties of model elements. The way
to update dynamic labels is through an UpdateDynamicLabel
method in the expression builder.

Properties of both kinds of text are specified in the Background Text


dialog. The dialog is invoked by selecting a text tool from the Palette
(marked by a capital T) and then clicking on the background in the
location where text is to be placed (text can be moved afterwards by
clicking and dragging just like any icon).

The dialog is divided into two sections: the top group of controls,
designated as Dynamic Label Properties is only applicable to dynamic
text, the bottom group — Font Attributes — is used to specify properties
of both kinds of text.

258 SIMPROCESS User’s Manual


Dynamic Labels

SIMPROCESS provides two types of fonts: native and system. Native


fonts are supplied by the operating system on which you are running.
In order to choose a native font, select Native in the Font combo box
and click on the Set… button. Native font properties are specified in
an operating system’s Fonts dialog. For example, in Microsoft
Windows you can choose font name, style and point size. The preview
of the text will appear in the Sample box to help you quickly choose
the desired attributes. Once the font is chosen and the Fonts dialog
is closed, you can specify text color and angle in the Background Text
dialog. For native fonts, only 90 degree rotations of the text are
allowed. Note that once the text is placed on the layout, the selection
box around it has no handles. You can move the text, edit its properties
and group it with other objects on the layout, but you cannot resize
the text by dragging its selection box. The only way to resize native
font text is to change its point size in the Fonts dialog.

SIMPROCESS system fonts are vector fonts, which means they can be
scaled on the layout by dragging the handles that appear on the selection
box around the text. Vector fonts are created by choosing anything other
than Native in the Font combo box. The Set… button will become
disabled, but you can still set the color and angle of the text. Note that
vector fonts can be rotated by all angles defined in the combo box.

Several text labels can be grouped together on the layout and their
horizontal and vertical alignment can be set in the H. Align and
V. Align combo boxes.

If you are placing a dynamic label on the layout, in addition to its font
attributes, appropriate information needs to be entered in the Dynamic
Label Properties group. Each dynamic label must have a unique
combination of Name and Id number. Usually, Id number will be 0,
unless two dynamic labels have the same name. The name typed into
the Name text box will not appear on the layout. It will only be used
to reference the label from the expression builder. You also need to
choose the type of value with which the dynamic label will be updated.
The choice between string, integer and real is made in the Mode combo
box. If the value of the dynamic label is real, you also need to specify
Width and Precision in the corresponding value boxes. Width is the total
number of digits that will be shown for the displayed value (including
the decimal point), Precision specifies the number of digits after the
decimal point that will be displayed. If the Width is greater than the
valued being displayed, it will be padded with spaces on the left side.

SIMPROCESS User’s Manual 259


CHAPTER 10–Customizing a Model with Attributes and Expressions

Although it is not necessary, we suggest that you add a static label to


the dynamic label definition. If you do not, there will be no place holder
for the dynamic label on the layout after you close the dialog. You
can still find this label by dragging a rubber band box in the selection
mode around the area where you placed it. A very small selection box
may appear at the location of the label. You can then edit its properties
by choosing Edit/Properties off the menu. Static label makes it simpler
to find the dynamic label location and provides a description of the
value being updated. The static label is not replaced when dynamic
value is updated: dynamic label appears to the right of the static.

Once the dynamic label is defined, it can be updated by making a


function call to UpdateDynamicLabelMethod in the expression
builder. This method requires the following five arguments in this
order:

MasterEditor — (typed as shown), reference to the main layout


window.

name — a string (in quotes) you used to designate the dynamic label
in the Name text box of Background Text dialog. Make sure letter case
is the same in both places.

ID number — an integer you designated in the Id box of the


Background Text dialog.

text color — a string (in quotes) of the color in which you want
the text to appear. A list of color names is found in “SIMPROCESS
System Methods and Examples,” beginning on page 393. As with
name, letter case must be as shown in the table.

value — integer, real or string value that you want to display; type
must correspond to what you chose in the Mode combo box of the
Background Text dialog.

For example, if you would like to display a string showing the name
of the entity leaving a delay activity, as well as a real value showing
the amount of time this instance of an entity spent at the activity and
an integer showing number of entities currently at that activity, you
can enter the following three commands in the expression builder of
the delay activity at the Release Entity entry point:

260 SIMPROCESS User’s Manual


Dynamic Labels

UpdateDynamicLabel
(MasterEditor,"num",0,"Orange",
NumberIn);

UpdateDynamicLabel(MasterEditor,"name",0,
"Aquamarine",Entity.Name);

UpdateDynamicLabel(MasterEditor,
"lastdelay",0,"IndianRed",LastDelay);

For more information on expression builder terminology and syntax,


see “SIMPROCESS System Methods and Examples,” beginning on
page 393.

Note that both dynamic and static text font attributes can be changed
during simulation by selecting the text and editing its properties. The
change will take effect immediately after the Background Text dialog
is closed and the simulation is resumed.

SIMPROCESS User’s Manual 261


CHAPTER 10–Customizing a Model with Attributes and Expressions

Summary
This chapter described how attributes are used in SIMPROCESS, and
introduced Expression processing with a step-by-step example. You
learned the following:

• Attributes are variables of model elements whose value


can change during a simulation run.
• System attributes are those built-in to SIMPROCESS.
User Defined Attributes are custom-defined by users.
• Object attributes identify the model element whose
attribute you are referencing.
• Globally-defined user attributes are created for every
model element of the same class (activities, resources,
etc.).
Locally-defined attributes apply only to a single type of an
model element.
• Expressions are user-written procedures which are invoked
by SIMPROCESS at various events during a simulation run.
The language used to code Expressions is a subset of the
MODSIM simulation language. An introduction to the
basics of this language begin on page 234.
• Object attributes are used in Expressions to qualify
attribute references.
• Numerous System Methods are available to add functions
to your Expressions.

262 SIMPROCESS User’s Manual


CHAPTER 11

More Advanced Model Building

SIMPROCESS User’s Manual 263


CHAPTER 11–More Advanced Model Building

Defining a More Complex Generate


Activity
A Generate activity generates different types of entities, or it can vary
the schedule of entity generation for a single entity type.

Specifying the Active Period of Entity Release


You can limit the period that your entity release schedule is in effect
by specifying Release Start and End dates. To do this, click on the Start/
End button and specify the Start and End dates in the dialog.

If you specify Start and End dates, the Generate activity will not
produce entities outside of that time period.

The Start and End dates work in conjunction with the Start Date and
End Date of a simulation run. So keep in mind that, if the simulation
run dates are entirely outside of the period defined for the Generate
release schedule, no entities are generated during that simulation.

If you do not specify a Generation Start date, SIMPROCESS sets the


Start time to correspond to simulation start time. Similarly, if
Generation End date is blank, it defaults to the simulation end time.
So leaving the Generation Start/End fields blank insures that the
schedule is in effect for the entire simulation run.

264 SIMPROCESS User’s Manual


Defining a More Complex Generate Activity

Defining Schedules for a Generate Activity


The Generate schedule identifies the entity-generation pattern defined
for an activity. When you define a new schedule item, it is added to
the Schedule list box:

Each Schedule identifies an entity generation pattern of a specific type:

• Periodic: A periodic schedule generates a specified quantity


of entities at the end of a specified time period.
• Calendar: Generates entities according to a calendar
schedule; weekly, monthly, etc.
• Cyclical: A detailed pattern of when entities are generated.
• File: A schedule defined in an external file.

The basic Generate Activity that we saw earlier was just a simple case
of a periodic schedule. For such simple cases, the Interval, Quantity,
and Entity Type can be specified on the main dialog. The Interval field
on the main dialog is not available if you have more than one schedule
or a schedule that is not periodic.

Schedules are processed in parallel. If you define two schedules that


overlap in time, SIMPROCESS processes both simultaneously.

Click on Add to define a new schedule, or Edit to change the definition


of the item highlighted in the schedules list box. When adding a new
schedule, first identify the type of entity generation pattern by
selecting from the Schedule Type combo box.

SIMPROCESS User’s Manual 265


CHAPTER 11–More Advanced Model Building

Copy duplicates the definition of the item highlighted in the Schedule


list box. Use this when you need to define two or more similar
schedules.

Remove deletes the highlighted schedule.

Adding a Periodic Schedule


The periodic schedule defines a constant or statistical distribution of
entity generation events per period:

The Periodic Schedule dialog box contains the following items:

Schedule Assign a meaningful name to the entity generation


schedule you are defining. The default name assigned by
SIMPROCESS is the same as the schedule type; in this case,
Periodic1. For this example, we will define a generation schedule
based on an exponential distribution of entities and name the item
Exponential.

Entity specifies the type of entity to be generated by this schedule.


Use default tells SIMPROCESS to generate the type of entity
indicated in the Generate Activity Properties dialog box. To specify
a different type, click on the pull-down arrow for a list of entity
types to choose from.

Quantity is the number of entities to be produced at each entity


generation by this schedule. Again, use default refers back to the
value in the Generate Activity Properties dialog box. See page 62

266 SIMPROCESS User’s Manual


Defining a More Complex Generate Activity

of the SIMPROCESS User’s Manual for additional details on this


field.

Interval defines the time between entity-generation events for this


schedule. Use default refers back to the value in the Generate
dialog box.
Activity Properties

Schedule Start and End define the effective period for this schedule.

The times in the Start and End fields apply just to this schedule and
supersede the Start and End dates specified on the Generate Activity
Properties dialog box. If you do not enter a date for either Start or End,
the corresponding value in the Generate Activity Properties applies.

Count Limit sets the maximum number of entities that can be generated
by this schedule. A Count Limit value of 0 indicates that there is no limit.

If the Count Limit is reached, the Generate activity may stop generating
entities for this schedule. This depends on the setting of the Both must
be reached and Generation End fields.

Both must be reached, if marked, specifies that both the Count Limit and
Release End date must be attained in order to terminate entity
generation for this schedule. If the Both must be reached field is not
marked, then reaching either Generation End or Count Limit terminates
the schedule.

Adding a Calendar Schedule


To add a schedule that generates entities based on the calendar, select
Calendar under Schedule Type on the Generate Activity Properties dialog
box, and then click on Add:

SIMPROCESS User’s Manual 267


CHAPTER 11–More Advanced Model Building

You can specify the following types of entity-generation schedules in


the Calendar Schedule dialog box:

• Yearly - Entities are generated once every year, on a particular


date.
• Monthly - Entities are generated on a specific day in each
month (e.g., 1st of the month).
• Weekly - A certain time of day, on the specified day of the
week (e.g., Monday, Tuesday...)
• Daily - Every day, generated at the specified time.
• Date - A specific date and time.

The Calendar Schedule dialog box changes in appearance depending


on the Type of schedule selected:

• If Calendar Type is Weekly, a list of the days of the week is


activated to let you select a day from the list.
• The heading above the Date and Time field changes to prompt
you for the information required for the Type schedule you
selected.

268 SIMPROCESS User’s Manual


Defining a More Complex Generate Activity

For example, if you specify a Daily entity generation schedule, you


must enter a time of day in the Date and Time field.

Any information that does not apply to a Daily schedule, such as the
date and year, is ignored.

As with all schedules, you can use the Generation Start and Generation
End dates to further define the effective period for a Calendar
generation schedule.

Defining Cyclical Schedules


Use the cyclical schedule to define a detailed pattern of entity
generation cycles. For example, you might describe a week, day by
day, or a year, month by month. You can define a unique period such
as the holiday rush leading up to Christmas, where entity generation
behavior differs markedly from the rest of the year.

A cyclical schedule is defined as a series of cycles. Each cycle


describes a different entity generation pattern. In a sense, the cycle
series is like an a schedule of its own. But unlike the schedules defined
for the Generate Activity as a whole, cycle events are processed
sequentially, not in parallel. It is up to you to schedule the cycles so
that one follows another. You can elect to have SIMPROCESS repeat
cycles as often as you want.

You can define the following types of cycles:

• Periodic. A constant or statistical distribution defining the


time interval between events.
• Calendar.Entity generation events scheduled at intervals
based on the calendar, i.e., weekly, monthly, etc.
• Single Event. A one-time entity generation event.
• No Event. A period where no entities are generated.
• Cyclical. A cycle within a cycle; that is, a more detailed
breakdown within a schedule (e.g., the various periods
within a single day — breakfast, meeting, coffee break, lunch
— within a workweek described day-by-day).

SIMPROCESS User’s Manual 269


CHAPTER 11–More Advanced Model Building

Cycles are added to and modified from the Cyclical Schedule dialog
box.

The Sequence of Events dialog box lists the cycle events defined for
this cyclical schedule. The events are listed in the order in which
SIMPROCESS will execute them. When you add a cycle,
SIMPROCESS places it at the end of the list. But you can rearrange
the pattern using the Move command.

270 SIMPROCESS User’s Manual


Defining a More Complex Generate Activity

For example, here is a list of cycles defined out of sequence:

To move the April cycle to the end of the list, highlight April and click
on the Move button three times. Each click of Move shifts the item down
a row.

You can also move cycles up in the list by checking off the Upwards
option before clicking the Move button.

Repeat Sequence tells SIMPROCESS how many times to repeat


execution of the Pattern of cycles. If you check the box labeled Infinite,
SIMPROCESS will keep repeating the cycle pattern until Generation
End is reached.

Note about Repeat Sequence


A value of 0 in the Repeat Sequence field tells SIMPROCESS
to run through the list a single time, without repeating it. A
value of 1 results in two passes through the Sequence of Events:
the initial run-through and one repetition.

Do not confuse the number of repetitions with the number of


passes through the list.

SIMPROCESS User’s Manual 271


CHAPTER 11–More Advanced Model Building

Refer to page 267 for descriptions of the Generation Start and Release
End, Count Limit, and Both must be reached options.

Defining a Periodic Cycle


A periodic cycle defines a constant or statistical distribution of entity
generation events. To define a periodic cycle in a cyclical schedule,
select Periodic from the list of Schedule types, and then click on Add:

Defining a periodic cycle is similar to defining a periodic schedule (see


page 266). The major difference is that you do not define the duration
of the cycle in terms of start and end dates. That is because the start
time is under the control of the cyclical schedule of which the cycle
is a part:

Duration is how long this cycle is in effect. You can enter the number
of hours or select a value from the pull-down list for this field.

The starting time of the event is determined by the following factors:

• The Generation Start date of the cyclical schedule.


• The position of this cycle in the Schedule of Events in the
Cyclical Schedule detail dialog box.

• The Duration of the cycles that precede this one.

272 SIMPROCESS User’s Manual


Defining a More Complex Generate Activity

Count Limit sets a maximum number of entities that may be generated


during this cycle. A value of 0 indicates no limit.

The Both must be reached checkbox, if marked, specifies that both the
Duration and Count Limit must be reached before the cycle completes.

Note that selecting Both must be reached can result in a cycle of


unknown duration. This happens if the Count Limit is not reached
before the end of the Duration period. In that event, the cycle continues
until either the Count Limit is attained, or the Generate Activity
Generation End is reached.

Repeat Event tells SIMPROCESS how many times to repeat execution


of this cycle. If you check off the box labeled Infinite, SIMPROCESS
will keep repeating the cycle until the schedule’s Generation End date
is reached.

To reiterate a point made earlier about a Repeat field: do not confuse


the number of repetitions with the number of passes through this item.
A Repeat Event value of 0 results in one pass through the cycle and
zero repetitions of that pass. A value of 1 indicates two passes (one
repetition in addition to the initial execution of the cycle).

• The Entity, Quantity, and Interval fields are used the same way
they are in the Periodic Schedule detail dialog (see page 266).

Defining a Calendar Cycle


A calendar cycle defines entity generation events that repeat on either
a daily, weekly, monthly, or yearly basis:

SIMPROCESS User’s Manual 273


CHAPTER 11–More Advanced Model Building

The dialog box above shows a calendar cycle representing four days
leading up to a festive holiday, when people are rushing to buy gifts
for their loved ones. It’s a daily schedule, beginning at 9 a.m. and each
iteration will last 24 hours.

As with the periodic cycle, the start time of a calendrical event is


determined by the cyclical schedule in which the cycle is defined.
However, entity generation is not triggered until the time you indicate
in the Date and Time field. If the trigger point is not reached while the
cycle is in effect, no entities are generated. For a further explanation,
see “SIMPROCESS’ Scheduling of Event Cycles” on page 275.

The Date and Time value you need to supply depends on the Calendar
Type schedule selected:

• Yearly. Enter a date and time of day, but do not specify a year.
Entity generation begins if the simulation reaches the
specified date and time during this cycle.
• Monthly. Specify a day of the month and time of day, e.g., the
first of the month, at noon. Entity generation begins if the
simulation reaches the specified day and time while the cycle
is in effect.

274 SIMPROCESS User’s Manual


Defining a More Complex Generate Activity

• Weekly. Select a day of the week (from a list that appears when
Weekly is checked off), and a time of day. Entity generation
begins if the simulation reaches that day and time during the
cycle.
• Daily.
Specify a time of day. Entities are released if the
simulation reaches this time of day while the cycle is in effect.

SIMPROCESS’ Scheduling of Event Cycles


Calendar cycles must be carefully placed within the Sequence of
Events. If the trigger time you specify in the Date and Time field has
already passed when SIMPROCESS invokes a cycle, entity
generation may not occur.

For example, say you define a cyclical schedule, with a Generation Start
date of January 1, 1995, and a Generation End date of March 31, 1995.
The schedule contains the following Schedule of Events cycles:

• A periodic cycle event beginning on January 1, with a


duration of 48 hours.
• A calendar cycle which is triggered monthly, on the 2nd of
the month, for a duration of one week.

Then you run a simulation which begins at midnight, January 1. The


periodic cycle starts right away and lasts for 48 hours. At this point
it is midnight, January 3rd, and the calendar cycle is implemented.
What happens during this period?

No entities are generated during the calendrical event. Here is why:

1. On January 3rd of simulation time, SIMPROCESS acts on the


calendrical cycle. It checks the Date and Time value (which is
set to the 2nd of the month, at midnight) and compares it to
the current date. SIMPROCESS determines that the trigger
date has already passed, and bypasses entity generation. The
next possible trigger point is on February 2nd.
2. The calendar cycle lasts for a week, ending on January 10th.
Since the next possible trigger point is not reached during
this period, no entities are generated by this cycle.
3. SIMPROCESS invokes the next item in the Schedule of
Events cycles.

SIMPROCESS User’s Manual 275


CHAPTER 11–More Advanced Model Building

If the duration of the calendar cycle were set to one month, the event
would still be in effect on February 2nd and entities would be released
at that point.

Defining a Single Event cycle


A Single Event cycle describes a one-time entity generation event:

You specify the same parameters for a single event as you do for a
calendar cycle, except that you cannot specify when the event begins.
A single event’s starting date and time is dependent on the cycles that
precede it in the Pattern of cycles.

Defining Inactive Time Periods


The No Event cycle defines a period of time during which no entities
are generated (for example, a holiday or weekend). The period of
inactivity begins at whatever time SIMPROCESS invokes the No
Event cycle.

Defining Specific Entity Generation Events in a File


You can tell SIMPROCESS to release entities by defining specific
entity generation events in an event file. An event file is one that you
create with a text editor or some other means independent of
SIMPROCESS (such as a program that you or someone else has
written). With an event file, you can run a simulation using data that
you have captured outside of SIMPROCESS.

276 SIMPROCESS User’s Manual


Defining a More Complex Generate Activity

For example, most mail order businesses use computer systems to


track customer sales information. This information is stored in some
kind of data base. You can extract the information from the database
and define a series of entity generation events that precisely matches
customer activity for an actual day, week, month, etc.

Each record in an event file defines one entity generation event. To


learn how to define entity generation events, see Appendix G–
External Event Files, on page 419.

Use the External File schedule to identify an event input file to


SIMPROCESS:

To identify the event file, click on the Browse button to the right of
the Event File box. Use the resulting dialog box to find and select your
file.

The Read Event File button causes SIMPROCESS to read the event file,
checking for syntax errors and building a list of the entity types referred
to in the file. You must click on the Read Event File button to complete
the definition of the event file.

Identifying Entity Types to be Generated


An event file can contain records referring to many different entity
types. An event record can even refer to a type of entity that has not

SIMPROCESS User’s Manual 277


CHAPTER 11–More Advanced Model Building

yet been defined in the model. Using the External File Schedule
Properties dialog, you can specify precisely which entity types you
want SIMPROCESS to generate during simulation.

Select the Generate Entities option that indicates which of the entity
types referenced in the event file are to be generated:

• Defined in the model tells SIMPROCESS to generate entities


for every event record that specifies an entity type already
defined in the model.
• Selected in the list tells SIMPROCESS to generate entities
only for the types highlighted in the entity type list.

• If the event file refers to an entity type that is not defined in


the model, it flags the type name. For example:

New Entity (add: type)

• If you select this type, SIMPROCESS will add the entity type
to your model when you run a simulation.

To select the entity types to be used:

• Highlight the listed type name. To highlight several types,


press and hold the Ctrl key while you click on each item.
• To deselect a type, click on it again while pressing the Ctrl key.

Generate Activity Summary


The Generate activity generates the entities that are processed in a
SIMPROCESS simulation:

The number of entities generated at each generation event, and the


frequency of entity generation events, may be expressed as either
constant numbers or statistical distributions.

You can define a schedule of discrete entity generation events.

278 SIMPROCESS User’s Manual


Defining a More Complex Generate Activity

Schedules are classified as:

• Periodic: A constant or statistical distribution of generation


events per hour.
• Calendar: Weekly, monthly, etc. events.
• Cyclical: A detailed pattern of generation events.
• File: A schedule defined in an external file.

Cyclical schedules are further broken down into cycles, each of which
describes a different entity generation event. Cycle events are
processed sequentially. This differs from other Generate schedules,
which are processed in parallel.

SIMPROCESS User’s Manual 279


CHAPTER 11–More Advanced Model Building

Downtime Schedule of Resources


The Downtime option manages a resource’s schedule of unavailability.

All schedules in the Schedule list box are active only between the times
specified in the Start and End fields.

Dialog Box Field Definitions


• Start specifies the earliest time that the resource’s downtime
schedules are in effect. This field uses a MM/DD/YY
HH:MM:SS format.
• End is the time beyond which the downtime schedules are not
applicable. The MM/DD/YY HH:MM:SS format is used.
After this time, the resource is available.
• The Schedules list box identifies the downtime periods
defined for this resource. When you define a new downtime
period, it is added to this list.
Next to the Add button for the Schedule list box is a combo box
containing the available downtime schedule types.

• Schedule Type. A Periodic schedule of downtime is one that


occurs at intervals of time, specified in hours. The interval
may be fixed (every n hours) or random (sampled from a
statistical distribution).

280 SIMPROCESS User’s Manual


Downtime Schedule of Resources

The remaining Schedule Types are calendar-based, with


downtime occurring on particular dates or days of the week, time
of day, etc. Types are:

Yearly - Every year, on a particular date and time.


Monthly - A specific day in each month (e.g., 1st of the
month).
Weekly - A certain time of day, on the specified day of the
week (e.g., Monday, Tuesday...)
Daily - Every day, beginning at the specified time.
Hourly - Every hour, beginning at n minutes past the hour.
Dates - A specific date, in a specific year.

When you add a new downtime schedule or edit an existing


one, you will enter a dialog that contains the parameters for
that downtime schedule type.

The Downtime Schedule dialog box changes in appearance


depending on the Schedule Type selected:

• If Schedule Type is periodic, the downtime occurs at


intervals of time indicated in the Time Between
Downtimes field.

• The field labeled Time Between Downtimes changes to


Downtime Start for all schedule types other than Periodic.
For Time Between Downtimes, you specify a statistical
distribution or constant. For Downtime Start, you specify
a date and/or time.
• If Schedule Type is Weekly, a list of the days of the week
appears. You select a day from this list.

SIMPROCESS User’s Manual 281


CHAPTER 11–More Advanced Model Building

• Schedule Name is the name assigned to the downtime period.


This name appears in the Downtime list box.
• Downtime Start or Time Between Downtimes defines the time
at which the resource becomes unavailable.

For Periodic schedules, this field is labeled Time Between


Downtimes and contains either a statistical distribution or a
constant. If you specify a distribution, the resource will be
unavailable at random intervals based on the distribution
sampling. If you specify a constant, the resource enters a
period of Downtime every n hours. For example, if you want
to model a dayshift that works from 9 am to 5 pm and is off
the rest of the day, you would specify 24 in this field. This
means that every 24 hours (i.e., every day at 5 pm) the
resource becomes unavailable.

For all other schedules this field is labeled Downtime Start and
contains a date and/or time. Date is specified as a 2-digit
month, 2-digit day, and 4-digit year. Time-of-day ranges
from 0 to 2400 hours. Downtime of the resource begins at
the time specified.

• Number of Units Down is the amount of capacity units to be


made unavailable.
• Downtime Duration is the length of time, expressed in hours,
that the resource is unavailable. In the above daytime shift
example you would specify 16 in this field.

282 SIMPROCESS User’s Manual


Downtime Schedule of Resources

• Planned specifies that the period of unavailability is planned.


For example, a vacation may be planned, whereas sick time
is not planned.

Creating a Downtime Schedule


To demonstrate the creation of a downtime schedule, we will define
some of the periods during which a sales clerk is not available for work.
We will account for:

• Daily off-hours (the 16 hours of each 24-hour day that a


person is not scheduled to work).
• Weekends.
• Sick days.

In a complete model, you would also account for lunch hours, vacation
time and unplanned time off (jury duty, personal days, acts of nature,
etc.).

For this example, assume that sales clerks operate in two shifts. The
first shift, composed of 3 clerks, works from 9 to 5. The second shift,
consisting of 2 clerks, works from 2 to 10.

1. If you do not already have a Resource dialog box displayed,


click on the Define menu bar item, and then select Resources...
Select Clerks from the list of resources, and then click on Edit.

Click on Downtime.

SIMPROCESS User’s Manual 283


CHAPTER 11–More Advanced Model Building

2. Set the Start and End dates. These dates indicate the period
during which the Downtime schedule applies. We will
define the period to include the entire month of January in
1995:

The Start and End dates are used in conjunction with the Start Date
and End Date of a simulation run (see “Run Settings” on page 77).
In this example:

If the Start and End dates are the same as the Start and End simulation
run dates, the downtime schedule will be in effect for the entire
duration of the simulation run.

If the Start date for the simulation run is January 1, 1995, and the End
date is February 28, 1995, the downtime schedule is only in effect for
part of the simulation (January 1 through January 31).

Keep in mind that, if the simulation run dates are entirely outside of
the period defined for the downtime schedule, the downtime schedule
will not apply to that simulation.

284 SIMPROCESS User’s Manual


Downtime Schedule of Resources

3. Define the daily hours during which Shift 1 workers do not


work. Their weekday work shift is from 9 to 5, so they are
unavailable from 5:00 p.m. to 9:00 a.m. the following day:

Schedule Name can be anything you want to call this


period of time. We will call it OffShift1.
For Schedule Type, select Daily and then select Add.
For Downtime Starts (the starting time of the downtime
period), enter 17 under HH (1700 hours; 5 p.m.), and 0
under MM and SS.
In the Number of Units Down field, enter the number 3.
This is the number of clerks on Shift 1.

Remember that the resource Units of Clerks is 5, so 3 of the


5 will be unavailable during the period we are identifying.

Downtime Duration is 16.0, the number of hours


between the end of one work day and the beginning of
the next.
Unavailability occurs at regularly scheduled times, so
select Planned.

Click on OK when you complete this definition; OffShift1 is


added to the Schedule list.

SIMPROCESS User’s Manual 285


CHAPTER 11–More Advanced Model Building

4. Define the off-shift period for the two Shift 2 workers. Add
another daily downtime schedule. Change Downtime Starts
to 22:00, Number of Units Down to 2, and name the schedule
OffShift2. Then click on OK.
5. Define downtime periods to account for the weekend.
Begin with Shift 1:

For Schedule Name, call it WeekendShift1.


Schedule Type is Weekly. A weekend occurs once every
week.
When you add a Weekly schedule, a list box with the days
of the week is on the Weekly Downtime Schedule dialog
box.
Day of Week is Saturday.
For Downtime Starts, enter 9 under HH and 0 under MM
and SS.

If you are thinking that a typical weekend begins after work


on Friday, remember that you have already accounted for the
time between 5 p.m. Friday and 9 a.m. Saturday in the
OffShift1 period.

In the Number of Units Down, enter the number 3. This is


the number of clerks on Shift 1.

Downtime Duration is 48.0.

286 SIMPROCESS User’s Manual


Downtime Schedule of Resources

Select the Planned check box.

Figure 6. Weekend Downtime Period for Shift 1 Clerks

Click on OK when you complete the definition.


6. Add the weekend Downtime period for Shift 2. Change
Downtime to 14:00, Number of Units Down to 2, and name
the schedule WeekendShift2.
7. Finally, we will define time unavailable due to illness. Illness
is more complex to model than weekends or overnights,
because it occurs randomly. Random downtime is handled by
specifying a frequency distribution instead of a fixed interval
of time. We will introduce frequency distributions here to
complete our example.

Defining a Random Downtime


Illness is unplanned. You know that employees are going to get sick,
but you do not know when it will happen, who it will happen to, or
how long they will be out. You can, however, make reasonable
estimates based on past experience.

To define the Downtime schedule for sick days:

1. Add a Periodic Schedule Type.

SIMPROCESS User’s Manual 287


CHAPTER 11–More Advanced Model Building

A Periodic schedule is used to describe events that occur at


varying intervals of time.
2. Time between Downtimes describes the interval period.
Let us assume that, in a typical month, one of the five
employees comprising the Clerks group will be out sick
for a period of time. Moreover, we will assume that while
a month is typical, the time between bouts of illness can be
as little as three days or as much as a year. To reflect this,
specify a triangular distribution:

Click on the arrow next to the Time Between Downtimes


field to display a list of statistical distributions.

Scroll through the list until you find the default definition
for Triangular distributions. It reads:

Tri(0.0,5.0,10,0)

There are three parameters in this definition: Minimum


value, most frequent value (Mode), and Maximum value.
Values are in units of hours (e.g., 24.0 represents 24 hours,
or one day).

Select Tri... from the list.

Click on the box to the right of the arrowhead next to the


Time Between Downtimes field.

This displays a dialog box for defining the parameters of


your distribution:

We’ve made the following assumptions:

288 SIMPROCESS User’s Manual


Downtime Schedule of Resources

Typically, there is a clerk out sick every 28 days. We will use


this as our most likely estimate.

The minimum period between illnesses is 3 days.

The maximum period between illnesses is 1 year (365 days).

Convert days to hours by multiplying by 24; enter the


results in the dialog box:

Click on OK.

3. Set Units Down to 1.

The Units (number of clerks) of this resource is 5. The


frequency of downtime applies to one clerk at a time, not all
five.

4. Downtime Duration is another variable, random event.

For this model, assume that a clerk is unavailable for at least


24 hours (one sick day), and no more than 10 days at a time,
with most absences lasting two days. Following the
procedure described in step 2, define a triangular distribution
with these parameters:

5. Set the Schedule Name to SickTime.

SIMPROCESS User’s Manual 289


CHAPTER 11–More Advanced Model Building

6. The downtime is not planned, so leave the Planned check


box blank.
7. Click on Add to add the definition to the Schedule list.

Click on OK to accept the entire Downtime Schedule.

Modifying a Downtime Schedule


Removing existing Schedule items from a Downtime Schedule is
simple: open the Downtime Schedule for the resource, highlight the
Schedule item you want to delete, and click on Remove.

To change an Schedule item, select it from the Schedule list, click on


Edit and then modify the parameters you want to change on the
Downtime Schedule dialog box. Click on OK to accept the changes.

The Add button updates the Schedule list box to include the schedule
you have just defined.

The OK button finalizes the changes you have made to the Downtime
Schedule.

The Cancel button exits the Downtime Schedule dialog box without
accepting any schedule changes you have made.

290 SIMPROCESS User’s Manual


Event Logs

Event Logs
Time Stamps and Recorders are Event logs supported in
SIMPROCESS.

Time Stamping is a facility that SIMPROCESS offers for monitoring


times between any two events. For example, start to finish time. The
three steps for using Time Stamps are:

• Defining Time Stamps


• Adding Entry/Exit Event Logs to Processes/Activities
• Viewing Time Stamp Reports

Defining Time Stamps


A Time Stamp can be thought of as a label or key that contains the
current simulation time. This key is added to an entity by an Event Log
when it either enters or leaves a Process or Activity. Pairs of keys can
be specified and Entity cycle times can be computed between them.

Time Stamping can be performed upon entry (and/or) exit from an


Activity. Time Stamp specifications can be defined between two
stamp keys enabling the monitoring of cycle time & counts between
two Time Stamps.

1. Select Time Stamps… from the Define pull-down menu.


2. Select Add to define Time Stamp requirements.
3. Define Start and Stop keys and press the OK button.
4. Define as many Start and End keys as you desire reporting
on. Press the Close button when finished.

Entry and Exit Event Logs to Processes/Activities


Once Time Stamps have been defined you must specify the Process or
Activity where they will be attached to the Entity. The Time Stamp can
be added to the Entity upon entry into and/or exit from the Process/
Activity. Time stamps are then added to Entities that traverse this
process during simulation execution. To add a time stamp:

SIMPROCESS User’s Manual 291


CHAPTER 11–More Advanced Model Building

1. A Time Stamp must first be defined using the procedures


starting on page 291.
2. Using an Activities/Process Properties dialog box, select the
Event Logs command button.

3. Using the Type combo box, select Time Stamp and press the
Add button. The Time Stamp Properties dialog box appears,
as shown below.

4. Select either one or more individual Entities or a range of


Entities from the list box. If you want to stamp every entity
in your model, check the All Entities box.
5. Choose either the On Entry or On Exit check boxes for the Time
Stamp.

6. Select a Time Stamp Key in the combo box which contains your
predefined time stamp labels.
7. Press the OK command button and notice the Time Stamp
report name in the Event Logs list box.

Collecting Statistics on Time Stamps


The Statistic Requests dialog box specifies whether or not the
collection of statistics is activated by the words (ON) or (OFF) at the
end of the request type.

1. Select Time Stamps… from the Define pull-down menu.


2. Select the key pair you wish to collect statistics on from
the list box.

292 SIMPROCESS User’s Manual


Event Logs

3. Click on the Edit button.


4. Click on the Statistics… button found on the Time Stamp
Definition dialog. This opens a Statistics Requests dialog.

5. Select either real-time delay for a real-time plot during


simulation execution or delay for post simulation reports.
6. Choose Edit.
7. If you selected real-time delay for an entity time stamp, a real-
time plot will be shown during simulation. The real-time delay
dialog appears as shown below:

8. Complete the real-time delay dialog to define the X and Y Axis


Minimum and Maximums for real-time plotting.
9. To activate the collection of this statistic, choose the Collect
Statisticscheck box.

SIMPROCESS User’s Manual 293


CHAPTER 11–More Advanced Model Building

10. Once you are finished entering the data, choose OK.
11. The word (On) appears after real-time delay on the Statistics
Request dialog box.

12. If you selected delay from the list box, post-simulation Entity
Delay reports can be enabled. Complete the delay dialog
which appears.

13. Choose the Collect Statistics check box for Mean, Standard
Deviation, Min, Max and Count data collection.
14. Once you are finished entering the data, choose OK.
15. Select the Close button when you have completed
Statistics Requests.

Viewing Time Stamp Reports After Simulation


If you selected Real-Time Delay Reports you will get a trace plot that
shows the cycle time values of key pairs during simulation execution.
If you asked for Delay statistics you can view these reports following
simulation. To view these reports:

1. Select Time Stamps… from the Define pull-down menu.


2. Select the key pair you wish to view from the list box.
3. Click on the Edit button.
4. Click on the Statistics... button.
5. Select the type of delay from the list box.
6. Click on the View Button. This will present the summary
statistics in tabular form.

294 SIMPROCESS User’s Manual


Event Logs

Passing Time Stamps Between Entities


When an entity enters a Copy, Split, or Transform activity, a new
instance of an entity type leaves that activity. The Original entity, when
it leaves a Copy or Split activity, will continue to carry Time Stamps
that were defined on the entity, upstream. The Copy or Clone entities
will not, by default, carry those Time Stamps defined on the Original
entity. You can specify that the Copy or Clone entities will also inherit
the Time Stamps of the Original entity.

On the Properties dialog of the Copy activity, simply click on the Copy
Time Stamps check box. This will cause each instance of the Copy
entities to carry the Time Stamp information inherited from the
Original entity.

To specify that the Clone entities resulting from a Split activity inherit
Time Stamp information from the Original entity, edit the Properties
of the connector(s) emanating from the Clone pad. Now, click on the
Copy Attributes button. This will open the Copy Entity Fields and
Attributes dialog. This dialog contains the same Copy Time Stamps
check box described above.

The Properties dialog of the Transform activity also carries a Copy


Attributesbutton, which opens the Copy Entity Fields and Attributes
dialog box. To specify that the Output entities inherit the Time Stamps
of the Input entity, turn on the Copy Time Stamps check box.

SIMPROCESS User’s Manual 295


CHAPTER 11–More Advanced Model Building

When an entity, carrying a Time Stamp, is Batched or Assembled, the


output entity will not be aware of the Time Stamp. You must Unbatch
the output entity in order to register the endpoint of the Time Stamp
(to do this for an Assembled entity, you must turn on the Batch
Component Entities check box on the Properties dialog of the Assemble
activity).

Differences Between Time Stamps and Recorder


Objects
Time Stamps measure time delays during a simulation. How much
time an entity spends at one or more Processes/Activities is captured
using Time Stamp keys.

Recorder Objects measure arrival/departure rates at Processes/


Activities by recording how many Entities arrive/depart a Process/
Activity over time. The time between arrivals and departures can also
be calculated using Recorders.

Recorders
In addition to Time Stamps, Recorders will write the arrival or
departure time of an entity at a Process/Activity into a file called
recorder.msg. You can then examine the file after simulation and
observe the actual times a specific Entity arrived or departed from
specific Processes/Activities.

1. Using an Activities/Process Properties dialog box, press the


Event Logs command button. The Event Logs dialog box lists
the currently defined Time Stamps and Recorder objects
(either On Entry or On Exit).

296 SIMPROCESS User’s Manual


Event Logs

2. Using the Type combo box, select Recorder and choose the Add
button. The Recorder Properties dialog box appears, as shown
below.

3. Choose whether you want to record arrival times (On Entry)


or departing times (On Exit) of the Entities in this Process/
Activity.
4. Select the entities you want recorded. If you use the All
Entitiescheck box above the list box, all entities in the list
box will be selected and highlighted.
5. Once you are finished entering data, choose OK to leave the
dialog box confirming your current selections. The Cancel
button rejects the current dialog selections.

SIMPROCESS User’s Manual 297


CHAPTER 11–More Advanced Model Building

6. The Event Logs list box shows the defined Recorders (either
On Entry or On Exit) along with current Time Stamps. Choose
the Close button to exit this dialog box.

298 SIMPROCESS User’s Manual


Part C
Advanced SIMPROCESS Tools

The chapters in this section describe the advanced tools and the
database included with SIMPROCESS Professional.

SIMPROCESS User’s Manual 299


300 SIMPROCESS User’s Manual


CHAPTER 12

Advanced Data Analysis

SIMPROCESS comes with a data analysis tool that extends your


ability to conduct statistical data analysis: Stat::Fit. The Stat::Fit tool:

• Increases the accuracy of your experiment


• Decreases the time to find the solution to your problem
• Provides a statistical software tool tailored to the statistical
simulation environment
• Interacts with you through a unique graphical user interface
• Performs data analysis
• Models random processes

SIMPROCESS User’s Manual 301


CHAPTER 12–Advanced Data Analysis

Model
Development

Verification &
Validation

Statistical
Experimentation &
Analysis

Results

Figure 5. Statistical Simulation Experiment Process

Stat::Fit is used to analyze data and construct a data model of the


random process that generated the data. An introduction to the
statistical background for data analysis and data modeling is provided
in the following paragraph, “An Introduction to Data Analysis and
Modeling.”

302 SIMPROCESS User’s Manual


An Introduction to Data Analysis and Modeling

An Introduction to Data Analysis and


Modeling

Introduction
Probability distributions are a way of describing the random variations
that occur in the real world. Although we call the variations random,
there are different degrees of randomness, and the different
distributions correspond to how the variations occur. Consequently,
different distributions are used for different purposes.

Probability distributions are represented by probability density


functions. Probability density functions show how likely a certain
value is. The more likely the value, the larger the probability density
function at that point. The total probability at all points should sum
to 100%, so the area under a probability density function is equal to
one.

Cumulative density functions give the probability of a selecting a


number at or below that value. For example, if the cumulative density
function value at 1.7 was equal to .75, then 75% of the time, selecting
from that distribution would give a number less than 1.7. The value
of a cumulative density function at a point is the area under the
corresponding probability density curve to the left of that value. Since
the total area under the probability density function curve is equal to
one, cumulative density functions approach one as you move toward
more positive values.

You do not need to know all these details to effectively model your
situation. You just need to know which distribution best fits your data.
The curve fitting capabilities of Stat::Fit make it easy to find the correct
distribution for your data.

In addition, you can see what the standard distributions look like for
your combination of input parameters.

SIMPROCESS User’s Manual 303


CHAPTER 12–Advanced Data Analysis

Standard Statistical Indicators


There are several statistical indicators that can tell a lot about the
distribution of random values. If you are not familiar with these you
should probably consult an introductory statistics textbook. Here we
just remind you of their meanings and some of their implications.
More definitions can be found in the “Statistical Tools Glossary,”
beginning on page 385 at the end of this manual.

The mean is the most important characteristic of a data sample. If you


are representing a time to complete some task or the number of arrivals
in a certain time period, always try to get a good value for the mean
(from actual data, if possible).

The mode is the most likely value in a set of data. Consider the
following list of numbers:

2, 3, 3, 3, 9, 10

The mode for this set of data is 3, since it occurs most frequently. The
mean for this set of data is 5. If a distribution is symmetric about the
mean, and singly-peaked, then the mode and the mean will be equal.
In this case, the distribution contains a couple of large values which
shift the mean away from the mode.

As we will see later, the mode is an important parameter for specifying


a triangular distribution.

The standard deviation is a simple measure of the spread in the data.


It is calculated by finding the mean, summing the squares of all the
differences between the mean and the data points, taking the square
root of this value, and then dividing by the square root of the number
of data points. Loosely, it is the average difference from the mean.
You might wonder why the square and square root are taken, why not
just sum all the differences? If you do that, they will sum to zero!

The standard deviation is a measure of how much spread there is in


the data. If the standard deviation is large, there is a wide variation
in the data. If it is small, the data are tightly clustered around the mean.

The standard deviation is a necessary piece of information for many


standard distributions.

304 SIMPROCESS User’s Manual


An Introduction to Data Analysis and Modeling

The variance is the standard deviation squared.

A probability density function is a representation of a statistical


distribution. The probability density function is large for likely values
sampled from a distribution, and is small for unlikely values. The
maximum value for the probability density function is equal to the
mode for that distribution. The area under the probability density
function curve within a certain range of values gives the probability
of sampling from that distribution and getting a number within that
range. Of course, the total area under the curve must be equal to one,
since you must get some number from the distribution.

A confidence interval is the range of values you would expect a certain


percentage of the population to fall into if the sample were drawn from
a normal distribution. Plus or minus one standard deviation
corresponds to about a 68% confidence interval; plus or minus two
standard deviations corresponds to about a 95% confidence interval;
and plus or minus three standard deviations corresponds to about a
99.7% confidence interval.

SIMPROCESS User’s Manual 305


CHAPTER 12–Advanced Data Analysis

Why Statistical Simulation


Experiments?

Mean-Value Analysis
Mean-value analysis is a simple, although often quite useful, approach
to modeling. The basic philosophy is to model processes by their
average output.

For example, suppose you have a station that can process five parts
per hour, and on average four parts arrive every hour. Mean-value
analysis tells you that the station should be able to handle the expected
load.

However, in the real world you might find that some hours the station
may process only three parts, and other hours it may process seven.
Likewise, there may not be a perfectly steady flow of four parts into
the station every hour. Sometimes there may be more and sometimes
less.

This statistical nature of the real world will lead to a diminished


throughput, for there will be times when the station is idle, and other
times when it is backed up, disrupting the flow to and from it in the
rest of the factory. This is the limitation of mean-value analysis, and
the reason that simulation is necessary for accurate predictions.

The Importance of Experimental Data


It is very important to have experimental data as the basis of your
model. This may seem like a paradox: If I am modeling something
that does not exist, where will I get the experimental data?

This is not as big a problem as it sounds. The individual components


of a similar existing system will probably be close enough to ones in
the proposed system to be useful in your model. The data do not have
to be exhaustive, any data is much better than no data.

306 SIMPROCESS User’s Manual


Why Statistical Simulation Experiments?

In fact, a good test of the model building process is to build a model


of an existing system and check how closely the model and the system
match up. This can often be a key to convincing others of the validity
of the simulation modeling approach.

SIMPROCESS User’s Manual 307


CHAPTER 12–Advanced Data Analysis

SIMPROCESS Statistical Distributions


The following table contains the statistical distributions available in
SIMPROCESS. Other distributions can be created from these using
the Define Distributions function.

308 SIMPROCESS User’s Manual


SIMPROCESS Statistical Distributions

Beta Distribution BET(shape1, shape2, minimum,


maximum, stream)
Erlang Distribution ERL(mean, shape, stream)
Exponential Distribution EXP(mean, stream)
Gamma Distribution GAM(mean, shape, stream)
Geometric Distribution GEO(minimum, mean, stream)
Hyper Exponential Distribution HEX(mean1, mean2, probability of
mean1, stream)
Hyperbolic Distribution HYP(position, shape, offset, stream)
Uniform Integer INT(minimum, maximum, stream)
Lognormal Distribution LOG(mean, standard deviation,
stream)
Normal Distribution NOR(mean, standard deviation,
stream)
Poisson Distribution POI(mean, stream)
Triangular Distribution TRI(minimum, mode, maximum)
Uniform Distribution UNI(minimum, maximum, stream)
Weibull Distribution WEI(shape, scale, stream)

SIMPROCESS User’s Manual 309


CHAPTER 12–Advanced Data Analysis

310 SIMPROCESS User’s Manual


CHAPTER 13

SIMPROCESS Database

SIMPROCESS Professional comes with a MS Access database


(SimProcDB.mdb) designed to hold simulation results from
simulation runs. The database comes with predefined queries, graphs
(forms), and reports. Each can be modified to tailor the database for
your output analysis. The procedures for connecting the database to
SIMPROCESS using ODBC are explained in the Getting Started
Manual.

SIMPROCESS User’s Manual 311


CHAPTER 13–SIMPROCESS Database

Commiting Results To The Database


To commit simulation results to the database, select Commit to
Database from the Report menu. The menu item will not be active until
a simulation run is complete, or if stopped early, the option to save the
data was selected. If the database is not found an error dialog will
appear. If this occurs recheck your database connection through the
ODBC control panel. Normally, the Commit To Database dialog will
appear. You must enter a design name and scenario name. The design
and scenario comments are optional. What constitutes a design will
be discussed in the next section.

Once you have entered the information click on Commit. At this point
SIMPROCESS verifys that the design name and scenario name you
have are allowable. If so, the results are sent to the database. When
finished, the status bar shows Commit Complete. Once a successful
commit has been completed, the menu item Commit to Database is
inactive until another successful run has been accomplished. This is
to preclude commiting the same results more than once.

312 SIMPROCESS User’s Manual


System, Design, And Scenario

System, Design, And Scenario


Three tables in SimProcDB.mdb control the results you have placed
in the database: System, Design, and Scenario. The System table is
the highest level table and contains the model name. Therefore, the
database is designed to allow you to hold results from more than one
model. If a record is deleted from the System table, all records releated
to that model are deleted from the database. The Design table allows
you to hold data from different versions of the same model. A model
design consists of the following:
• Number of entities
• Entity names
• Number of resources
• Resource names
• Resoure costs
• Number of activities, processes, and process alternatives
• Names of activities, processes, and process alternatives
• Activity/Process structure
• Start and End date
• Start and End time
• Number of replications
• Output time units.

If any of the above change, then a new design name is required. For
instance, assume you have commited results to the database with a
design name of Design 1. Following that you add a process alternative
to your model and run the model again. If you attempt to use the same
design name as before, SIMPROCESS will prompt you for a new
design name because the number and names of process alternatives
have changed.

SIMPROCESS User’s Manual 313


CHAPTER 13–SIMPROCESS Database

Note that you will not be prompted for a new design name if you simply
run a different alternative that was already in the model. If you run
another alternative you may change design names if you wish or
simply use a different scenario name. When a design is deleted from
the Design table, all records associated with that design are removed
from the database. Therefore, if you would like to reuse a design name
for the same model name (and there has been a design change), you
must delete the design.

A scenario is used to track various runs of the same system (model)


and design. For example, one run might have a certain resource level
at 3 while another run has the same resource level at 4. Differentiating
those runs in the database is done through the scenario name. The
scenario comment field is a good place to document the important
settings for that scenario. Again, if you delete a scenario, all records
associated with that scenario will be deleted from the database.

The Manage Results form should be used to delete results for a Model
(System), Design, or Scenario. DO NOT modify the tables directly.
Using the Manage Results form ensures the tables do not become
corrupted. This form can be run from the Forms tab in Access. Also,
when using Launch Database Application from the Report menu, the
Manage Results form launches automatically. If the form is blank,
then there are no run results in the database.

314 SIMPROCESS User’s Manual


System, Design, And Scenario

IMPORTANT: It is good practice to regularly compact the database,


particularly after deleting records. This can be done from the Tools
menu of Access by choosing Database Utilities.

SIMPROCESS User’s Manual 315


CHAPTER 13–SIMPROCESS Database

Database Table Relationships


If you need to view all the tables and the relationships between them,
select Relationships... from the Tools menu in Access.This is helpful
in understanding how the queries were constructed. The Experiment,
Model Setup, Design Setup, Scenario Setup, Parameter, and Process
tables are used in the Experiment Manager. These tables are not used
to store run results.

316 SIMPROCESS User’s Manual


Database Queries

Database Queries
The predefined queries in the SIMPROCESS database are designed
to offer the same information provided in the Standard Report. The
queries can be used as-is or copied and modified. The queries are not
restricted by system, design, or scenario. So if you run the Entity Cycle
Time query all entity cycle times without restriction will be displayed.
Copying a query and restricting its search is one example of tailoring
a query for your analysis.

All of the queries were created in Access’ Design View rather than
SQL. Show below is the Design View of the Entity Count query.

SIMPROCESS User’s Manual 317


CHAPTER 13–SIMPROCESS Database

Even though you cannot see the whole criteria, note that the StatType
field from the Statistics Table is restricted by "Total entities generated"
Or "Entities remaining in system" Or "Total entities disposed". These
are the statistics types that make up Entity Count. Other fields could
be restricted as well. For instance, you could restrict the SystemName
field from the System table so only one model’s results would be
available. In the example below we restrict the query to the
demonstration model CallCtr by placing "CallCtr" in the Criteria row
of the query under SystemName.

The queries that generate results across replications were developed


using the queries that give results by replication. So if you restrict the
Entity Count query to CallCtr, then the Entity Count Across
Replications query will also be restricted to CallCtr. Looking at the
Design View for Entity Count Across Replications the only data
source for the query is the Entity Count query.

The average, standard deviation, minimum, and maximum were


determined by selecting the appropriate statistic in the Total row for
the field from the Entity Count query that was to be summarized across
replications. This was accomplished by not including the Replication
field from the Entity Count query.

318 SIMPROCESS User’s Manual


Forms (Graphs) And Reports

Forms (Graphs) And Reports


The Forms tab contains the predefined graphs plus the Manage Results
and Experiment Setup forms. These graphs are based on the
predefined queries. Therefore, the Entity Count Across Replications
form (or graph) is based on the Entity Count Across Replications
query. In order to restrict the graph to only certain records you would
go to the original query (in this case Entity Count since Entity Count
Across Replications is based on it) and restrict it.

The Reports tab contains the predefined reports. Like the graphs, the
reports are based on the predefined queries. Therefore, the Entity

SIMPROCESS User’s Manual 319


CHAPTER 13–SIMPROCESS Database

Count report is based on the Entity Count query. In order to restrict


the report to only certain records you would go to the original query
(in this case Entity Count) and restrict it.

320 SIMPROCESS User’s Manual


Launch Database Application

Launch Database Application


This menu item on the Report menu brings up a dialog that allows you
to select the database and database application you wish to use.
SimProcDB.mdb and MS Access are the default. (The remaining
portion of these instructions assume MS Access is the database
application.) If the database field is blank, then Access will start and
prompt you to open a database. If only a database is in the field (with
no path), SIMPROCESS assumes the database is in
C:\SIMPROCESS\Spuser. If this is not the case, Access will start
and prompt for a database. When the database desired is not in
Spuser, enter the full path and Access will open with that database.

If SimProcDB.mdb is entered in the database name field, the Manage


Results form will launch automatically when the database opens. If
other actions are desired, simply close the form and continue. Always
use the Manage Results form to delete records from SimProcDB. If
you edit the tables directly, they could become corrupted and you
would lose the run results you have placed in the database. The
Manage Results form can be launched from the Forms tab. Copies
of SimProcDB.mdb may be used for your results. However, the
Manage Results form will not launch automatically.

SIMPROCESS User’s Manual 321


CHAPTER 13–SIMPROCESS Database

322 SIMPROCESS User’s Manual


CHAPTER 14

Graphics Editor Tool

SIMDRAW is an interactive menu based program for creating and


editing SIMGRAPHICS II objects. These objects are used in
SIMPROCESS for creating the layout and animation of your
model. These objects are saved to and loaded from
SIMGRAPHICS II ".sg2" files that are accessed by
SIMPROCESS.

Icons, or graphic images can are built by drawing lines, circles,


polygons, arcs, sectors, bitmaps, and text. These primitives can be
grouped together to form more complex images containing parts
that can be manipulated independently by the application program.
You can also edit the existing images (icons) supplied with
SIMPROCESS.

SIMPROCESS User’s Manual 323


CHAPTER 14–Graphics Editor Tool

Running SIMDRAW
SIMDRAW is started from the Tools menu bar of SIMPROCESS.
Once started, a window containing a Palette and tool bar is dis-
played. The window will contain a listing in the currently loaded
SIMGRAPHICS II library. The Palette on the left is used to add
new objects to the library.

Graphic Libraries in SIMPROCESS


There are two set of graphics libraries (*.SG2) distributed with
SIMPROCESS. The libraries in the SG2LIBS sub-directory under
the User directory are for you to store the images (icons) that you
create with SIMDRAW. By default, you will find these in the
C:\SIMPROCESS\SPUSER\SG2LIBS directory. The following
is a listing of the User graphics libraries:

Library Contents
Usr.sg2 Background
Usrnode.sg2 Activities

324 SIMPROCESS User’s Manual


Running SIMDRAW

Usrproc.sg2 Processes
Usrtokn.sg2 Entities

Those in the SG2LIBS sub-directory under the System directory


(by default C:\SIMPROCESS\SPSYSTEM\SG2LIBS) are read-
only and should never be changed. You can open these libraries,
make changes to an image and then save the new image to the
appropriate library in the User directory. The system libraries
contain the images (icons) supplied with SIMPROCESS. The fol-
lowing is a listing of the system graphics libraries that contain the
icons you can copy:

Library Contents
User.sg2 Background
Spnode.sg2 Activities
Spproc.sg2 Processes
Simtoken.sg2 Entities
The other SIMGRAPHICS II libraries in this directory are system
libraries that you cannot edit.

Loading and Saving SIMGRAPHICS II Files.


The File/Open... menu option will load an existing SIMGRAPHICS
II library file and show its objects in the list window. By default, it
will look to the SG2LIBS sub-directory under your user directory
(by default C:\SPUSER\SG2LIBS). Use the File/Save or File/
Save As menu option to save all objects shown in the list window,
(including objects being edited).

Editing an Existing Object


To edit one of these images, load the appropriate library. Click on
the Image icon to get a listing of the images in that library. Select
the name of the image you want to edit in the listing, and then use
the Edit/Properties menu option or the Properties tool bar option to
open it. At this time, a new window containing the Image Editor will
appear showing its graphical representation. After moving, resiz-
ing, or changing attributes of the object and its sub-components,
select the File/Save or File/Save As menu option to write this object
to its SIMGRAPHICS II library file. To end the editing of this
object, close its editor's window using the "go away" button in the

SIMPROCESS User’s Manual 325


CHAPTER 14–Graphics Editor Tool

top left corner of the window's header bar.

Adding an Image to the Library


Images can be added to this library file by clicking on one of the
"create" buttons on the left palette, or by using the File/InsertCreate
menu option. Creating an object will automatically invoke the
editor for that object.

Removing an Object from the Library


To remove an unwanted object from the current library, select the
object's name in the listing, and then use the Edit/Clear menu option.
The library must be saved using File/Save before this change is per-
manent.

Making a Duplicate of an Object


Any graphical object in the library can be duplicated by selecting
its name in the main list and then using the Edit/Duplicate menu
option. The library must be saved using File/Save before this change
is permanent.

Changing the Name of an Object


To change the name of an object shown in the main list, select it and
use the Edit/Properties menu option to bring up its editor. Use the
Edit/Properties menu option of this editor to obtain a dialog box
showing the object's attributes. Change the Library Name text field
to the new name, and then save the object with the File/Save menu
option.

Adding an Object from Another Library


If you want to add object(s) contained in a different
SIMGRAPHICS II file, use the File/Merge... menu option. Once a
file is selected, a list box containing the names of all objects in this
source library will be displayed. Choose the objects you wish to
copy to your library. (The Shift and Ctrl keys can be used in
conjunction with the mouse to select multiple objects.)

326 SIMPROCESS User’s Manual


Using the Image Editor

Using the Image Editor


The Image Editor is used to create and edit primitives such as lines,
polygons, circular objects, and bitmaps. Primitives can be grouped
hierarchically into images. The editor window contains three pal-
ettes: Mode, Style, and Color. The Mode palette on the left side of the
window is used for adding primitives.

Mode, Style, and Color Palettes


The Style palette contains the set of dash styles, hatch styles, line
widths, and text fonts that can be applied to the primitives. The
Color palette contains 64 colors that can also be applied to the prim-
itives. When a primitive is selected, the Style palette and Color pal-
ettes will be updated to reflect the style and color of that primitive.
At this time, Style and Color palette changes will also be applied to
the selected primitive.

The Mode palette is shown on the left hand side of the Image Editor
window. Use it to add primitives to your drawing.

SIMPROCESS User’s Manual 327


CHAPTER 14–Graphics Editor Tool

Selecting, Moving, and Resizing


Shapes are selected by clicking the mouse button over the desired
shape. (For example, polylines must be selected by clicking on the
line itself, NOT in the line's bounding box.) Multiple shapes are
selected by holding down the Shift key and clicking on several
shapes. Multiple shapes may also be selected by clicking in the
background of the window and dragging the mouse over the shapes
you want to select.

A group of shapes (or images) is selected by clicking on one of the


objects in the group. Subsequent clicks over the group will select
shapes within that group. Primitives inside a group can be selected
directly by holding down the Ctrl key and clicking on the shape.
Using the Ctrl key, subsequent clicks will select the groups contain-
ing the currently selected shape.

Selected shapes are marked by a bordering green or cyan box. Sides


and corners of this box contain eight small square resize handles.
Resizing is performed by clicking down and dragging a resize han-
dle.

To move a shape, click down on it and drag the shape to move it to


the desired position. Be careful not to click on the resize handles.

Using the Clipboard (Cut, Copy, Paste Commands)

The Image Editor supports the standard Cut, Copy, and Paste opera-
tions found under the Edit menu. The Cut option command deletes
selected shapes and places them in the clipboard. The deleted item
remains on the clipboard until the next time a Cut or Copy is per-
formed. You can use the Paste option to paste as many copies as
desired from the clipboard into the image. Shapes can be deleted
without changing the clipboard by using the Delete option.

The clipboard is shared among all active Image Editor sessions. You

328 SIMPROCESS User’s Manual


Using the Image Editor

can copy graphics from one image into another by activating the
source edit window, using the Copy command, and then activating
the destination editor and using the Paste command.

Creating Primitives
The Image Editor supports creating and editing seven different prim-
itive types. The primitives are polygons, polylines, circles, arcs,
sectors, text, and bitmaps.

Polylines

Polylines are created by clicking either the freehand or polyline


buttons on the Mode palette. To create a polyline, select the polyline
button on the Mode palette. Then point to where you want to start
the line and drag to draw a line segment. Continue pointing and
clicking until all but the last line segment has been defined. Double
click to create the last vertex and return to Select mode.

To create a freehand polyline press the freehand line button on the


Mode palette. Drag the mouse around the canvas area to draw the
line. Releasing the mouse button will return you to Select mode.

Use the Style palette to define dash style and line width. There are
eight dash styles and six line widths to choose from.

Another attribute of the polyline is rounding. Corners defined by


intersecting line segments can be given a rounded edge by selecting
the polyline, and using the Edit/Properties... menu option. The
Round Corners By value box contains the length of segment adja-
cent to each vertex to be replaced by a rounded corner. This value is
specified with respect to the real world coordinate space or dimen-
sion of the editor (the default dimension is [0, 0, 32767, 32767]). A
value of 1000.0 is reasonable for rounding corners.

SIMPROCESS User’s Manual 329


CHAPTER 14–Graphics Editor Tool

Polygons

Polygons are created by clicking either the freehand, polygon, or


rectangle buttons on the Mode palette. To create a polygon, select
the Polygon button on the Mode palette. Point and click in the win-
dow to define vertices. Double click to create the last vertex and
return to Select mode.

To create a freehand polygon press the Freehand fill button on the


Mode palette. Drag the mouse around the canvas area to draw the
shape. Releasing the mouse button will return to Select mode.

To create a simple rectangle press the Rectangle button on the Mode


palette. Point to where you want the lower left-hand corner of the
rectangle to start, and drag the mouse to the desired top-right cor-
ner. Release the mouse button to return to Select mode.

Use the Style palette to define a hatch pattern. There are eight pat-
terns to choose from.

Circles

Circles are added by pressing the Circle button on the Mode palette.
In Circle mode, point to where you want the center of the circle to
go and drag the mouse to define the radius. Release the mouse but-
ton to draw the circle and return to the Select mode.

Use the Style palette to give the circle a hatch pattern. There are
eight patterns to choose from.

330 SIMPROCESS User’s Manual


Using the Image Editor

Sectors

A Sector is a filled semicircular shape similar to a pie slice. Sectors


are composed of a center point, a starting point and an ending point,
and are drawn counter clock-wise from the starting point to the end-
ing point. To draw a sector, first press the Sector button on the Mode
palette. Point to where you want the center point of the sector to go,
and drag the mouse. Release the mouse over where you want the
starting point of the arc to go. Drag the mouse to where you want
the sector to end and release to return to Select mode.

Use the Style palette to give the sector a hatch pattern. There are
eight patterns to choose from.

Arcs

An Arc is a curved line contained on the circumference of a circle.


Arcs are composed by a center point, a starting point and an ending
point, and are drawn counter clock-wise from the starting point to
the ending point. To draw an arc, first press the Arc button on the
Mode palette. Point to where you want the center point of the arc to
go, and drag the mouse. Release the mouse over where you want
the starting point of the arc to go. Drag the mouse to where you
want the arc to end and release to return to Select mode.

Use the Style palette to define dash style and line width. There are
eight dash styles and six line widths to choose from.

Text

Single line text primitives can be created and added to your image.

SIMPROCESS User’s Manual 331


CHAPTER 14–Graphics Editor Tool

To create a text primitive, press the Text button on the Mode palette.
Point to where you want the center of the text to go and click the
mouse button. Use the Edit/Properties... menu option to define the
text string to be displayed.

There are two different types of text, vector text and system text.
Vector text fonts are fully scalable in any dimension and are porta-
ble between MS Windows and X Windows platforms. A vector text
font can be assigned to a primitive by pressing any of the eight Style
palette buttons showing Ab.

System text fonts are "built -in" to the tool kit on which your server
is running. Text defined using a system font is non-scalable and can
only be resized by changing the font. A system font is defined by
font name, point size, and whether or not its uses italic and/or bold-
face calligraphy. To assign a system font to a text primitive select
the primitive, and then press the Dialog Box button on the lower
right-hand corner of the Style palette. The resulting Font box will
display all fonts, point sizes, and calligraphy styles loaded on your
server. The font you select will be applied to the selected text prim-
itive. This same font can now be applied to other primitives using
the ST button at the lower-left corner of the Style palette.

Text alignment with respect to the image can also be defined. For
example, if you wanted a text primitive defined with a system font
to remain centered as an image is scaled, its alignment should be
centered horizontally and vertically using the Edit/Properties... menu
option.

Bitmaps

Bitmaps (or "snap shots") are not created directly by the Image
Editor,but can be created using another drawing tool and can then
be imported. On MS Windows systems, "Windows Bitmap" files
with the ".bmp" extension can be imported and added to your
image. On X Windows systems, "X Windows dump" file formats
ending in ".xwd" can be imported.

332 SIMPROCESS User’s Manual


Using the Image Editor

To add a raster file, import your image using the Edit/Import... menu
option. Select a ".bmp" or ".xwd" file from the dialog box and
press the OK button to import the bitmap.

Once in the Image Editor, bitmaps can be resizeable or non-resize-


able. To change the scalability, select the bitmap and use the Edit/
Properties... menu option. (Remember that resizeable bitmaps may
take longer to render the first time, and can loose meaningful picto-
rial information if made smaller.)

Alignment can be applied to bitmaps as well as text primitives. For


example, if you wanted a non-scalable bitmap to remain centered as
an image is scaled, its alignment should be centered horizontally
and vertically from the Properties dialog.

Creating Images

An image represents a grouping of primitives and/or other images.


Images can contain other images forming a hierarchy. To create an
image, select the shapes to be grouped using the Shift key, and then
select the Layout/Group menu option. The resulting group will be
shown bounded by the green selection box. Use the Layout/Ungroup
menu option to destroy an image.

An image is selected by clicking on one of the primitives within it.


Repeated selections of an image will select the shapes within it.
You can select primitives directly by clicking on them while hold-
ing down the Ctrl key.

Shapes can be removed from an image by selecting the shape and


using the Layout/Remove from Group menu option. You can also add
shapes to an existing image by selecting first the shapes, then an
image, and then using the Layout/Add to Group menu option.

SIMPROCESS User’s Manual 333


CHAPTER 14–Graphics Editor Tool

Editing the Root Image

The editor's window shows all objects contained by the image


being edited or the root image. To change properties of this image
(such as its name), de-select all shapes and use the Edit/Properties
menu option.

To resize the root image, use Edit/Select All to select all of its shapes,
and then use Layout/Group to make a group. The image can be
resized by dragging the square resize handles on the green selection
box. When the root image is appropriately sized, use Layout/
Ungroup to eliminate the grouping.

To reset the center point of the root image, deselect all shapes by
clicking in the background, and use the Edit/Recenter menu option.
Select a new center point for the image and then select the OK but-
ton on the Recenter dialog.

Editing Points on a Primitive

The vertices defining a primitive can be moved, added and deleted


using the Image Editor. Clicking on a selected primitive will enable
point editing for that primitive. A primitive in point edit contains a
green skeleton which connects its vertices. Representing each ver-
tex point is a hollow green square or point handle. The currently
selected point is shown by a blue point handle.

To move a point, select and drag the appropriate point handle. To


delete a point, select its point handle and use the Edit/Delete menu
option (or press the Delete key). To add a new point to the primitive,
click on the green skeleton and drag the mouse. When the mouse
button is released, a new point is inserted between the indicated
vertices.

To leave Point Edit mode, click on the background or another shape.

334 SIMPROCESS User’s Manual


Using the Image Editor

Defining Stacking Order or Priority

You can specify how shapes are stacked when they overlap and can
specify their stacking order. To move shapes in front of or behind
other shapes, use the Bring to Front or Send to Back options from the
Layout menu.

Stacking order is with respect only to other shapes in the same


group or image. In other words, the Bring to Front menu option will
bring the selected shape to the front of all other shapes in that
group, but not necessarily to the front of all shapes in the window.

Defining the Center Point of a Shape

The center point, of any image or primitive can be changed by


selecting the shape, and then using the Edit/Recenter menu option. A
set of green cross-hairs will appear showing the current center
point. Point to where you want the center point of the object to be,
and click. To leave the Recenter mode, press either the OK or Cancel
buttons on the dialog box.

You can reset the center point of the entire drawing (root image) by
de-selecting all shapes and then using the Edit/Recenter menu
option.

Using the Flip and Rotate Tools

Any selected shape can be rotated about its center point by any
amount. To do this, select the shape(s) and then use the Edit/
Rotation/Clockwise or the Edit/Rotation/Counter-Clockwise menu
option. If you want to set the angle by which an object is rotated,

SIMPROCESS User’s Manual 335


CHAPTER 14–Graphics Editor Tool

use to Edit/Rotation/Set Angle menu option.

To flip an object about its x-axis use the Edit/Flip/Horizontal menu


option. To flip an object about the y-axis use Edit/Flip/Vertical menu
option. Remember that the intersection of the x-axis and y-axis of a
shape is its center point (defined using the Edit/Recenter menu
option). Before flipping or rotating a shape, first make sure that its
center point is defined appropriately.

Align and Distribute


Multiple shapes can be aligned and distributed, either vertically or
horizontally to the primary selection (shown enclosed by green
selection handles). They can be aligned vertically with respect to
either their left edge, right edge or center. Shapes can be aligned
horizontally with respect to their top edge, bottom edge, or center.
To align, first select multiple objects using the Shift key, and then
use the Layout/Align menu option. Select an alignment scheme from
the resulting dialog box.

The Layout/Distribute menu option allows you to distribute three or


more shapes in relation to each other. Shapes can be distributed
horizontally so that the same space exists between left and right
edges of adjacent shapes. Distributing vertically will reposition the
shapes so that the same space exists between bottom and top edges
of adjacent shapes. Shapes can be distributed uniformly along the
circumference of a circle.

Using Grid Lines

A grid can be used to perform precise positioning and sizing of


shapes by breaking the editor window up into divisions. You can
show (or hide) grid lines by toggling the View/Grid menu option.

You can change the color of the grid by selecting a color from the
Colorpalette and then using the View/Grid Color menu option. The
granularity of the grid can be adjusted using the View/Grid Spacing
menu option. Granularity can be Fine, Medium, or Coarse. The dis-

336 SIMPROCESS User’s Manual


Using the Image Editor

tance between grid lines for Fine graduation is 500.0, for Medium is
1500.0, and for Coarse is 4500.0.

By toggling the View/Snap menu option, you can restrain position-


ing and resizing of shapes to the intersections of the grid.

If the Snap mode is active, the View/Snap From menu option allows
you to specify which corner of a shape's bounding box will be
aligned to the grid intersections during repositioning. If View/Snap
from/Center is selected, a repositioned shape's center point will be
glued to the grid intersections.

Changing Views (Panning and Zooming)

If working on a highly detailed portion of the image, you may want


to magnify a portion of the window. To zoom in to some area of the
window, first select the View/Zoom In menu option. Then, drag out a
rectangle with the mouse over the area of detail. When the mouse
button is released, the area inside the rectangle will be expanded to
encompass the entire window. To zoom back out, use the View/Zoom
Out menu option.

When zoomed in, you can pan to other areas of the window using
the horizontal and vertical scroll bars.

You can return to the default view by using the View/View [1:1] or Fit
to window menu options. Unless the window is square, the top or
bottom portion of the view may not be visible. To see the entire
coordinate space, use the View/Fit in Window or View [1:1] menu
option. This viewing mode will leave dead space off to the right of
the window, but guarantee the entire coordinate space will be seen.

Changing the Layout Size and Color


To change the editor window's background color, select the desired

SIMPROCESS User’s Manual 337


CHAPTER 14–Graphics Editor Tool

color from the Color palette and then use the Layout/Layout Color
menu option.

If you want to increase the size of the editing area beyond what is
defined by the boundaries of the world coordinate system, use the
Layout/Layout Size menu option. A dialog will be displayed allow-
ing you to increase the number of "screens" thereby adding space to
the right and bottom sides of the editing area. This new space can
be "scrolled to" using the right and bottom scroll bars.

338 SIMPROCESS User’s Manual


CHAPTER 15

Experiment Manager

The Experiment Manager allows you to set up model runs that


SIMPROCESS will run automatically, and after each run, place the
results in the database. This is accomplished by defining
experiments in the database (SimProcDB.mdb). SIMPROCESS
reads the information from the database, loads the appropriate
model, runs the model, then commits the results to the database.

The four items on the Experiment menu control the operation of the
Experiment Manager.

• Define Experiments
• Run All Experiments
• Run Selected Experiments
• Run Specific Experiment

SIMPROCESS User’s Manual 339


CHAPTER 15–Experiment Manager

Defining Experiments
Selecting Define Experiments brings up a dialog that allows you to
select the database and database application to use. Sim-
ProcDB.mdb and MS Access are the default. (The remaining por-
tions of these instructions assume MS Access is the database
application.) When defining experiments you must use Sim-
ProcDB.mdb or a copy of SimProcDB.mdb. If the database name
you enter is in C:\SIMPROCESS\Spuser, then no path is
required. If this is not the case, you must enter the full path for
Access to start and open the database. If you desire to open Access
from SIMPROCESS with a database that is not SimProcDB.mdb or
is not a copy of SimProcDB.mdb, use Launch Database Application
under the Report menu.

If SimProcDB.mdb is entered in the database name field, the


Experiment Setup form will launch automatically when the database
opens. The Experiment Setup form will not launch automatically if
a copy of SimProcDB is used. However, the form is located on the
Forms tab and can be launched from there once the database has been
opened.

Experiment Manager Database Tables


Six database tables are used to define experiments.

• Experiment
• Model Setup
• Design Setup
• Scenario Setup

340 SIMPROCESS User’s Manual


Defining Experiments

• Parameter
• Process

The relationship diagram shows the relationships between the


database tables, and the table below gives a description of the fields
in each of the database tables. An experiment can have multiple
models, a model can have multiple designs, a design can have mul-
tiple scenarios and a scenario can (optionally) have multiple Model
Parameters and Process Alternatives.

Table Field Description Required


Experiment ExperimentID ID number for each record Automatic
ExperimentName User entered Experiment name Yes
Selected Selects Experiment for running (default is selected) Yes
DisplayErrorAlerts Option to display error alert dialogs (default is No) Yes
Model Setup ModelSetupID ID number for each record Automatic
ExperimentID ID of Experiment this model is associated with Automatic
ModelName Name of Model to run (with full path) Yes
Design Setup DesignSetupID ID number for each record Automatic
ModelSetupID ID of Model this Design is associated with Automatic
Design Name of Design Yes
DesignComment Comment concerning Design No
Scenario Setup ScenarioSetupID ID number for each record Automatic
DesignSetupID ID of Design this Scenario is associated with Automatic
Scenario Name of Scenario Yes
ScenarioComment Comment concerning Scenario No
Parameter ParameterID ID number for each record Automatic
ScenarioSetupID ID of Scenario this Parameter is associated with Automatic
AttributeType Entity, Entity.Type, Activity, Resource, Model No
AttributeName Name of Attribute No
AttributeValue Value of Attribute for Model run No
Process ProcessAlternativeID ID number for each record Automatic
ScenarioSetupID ID of Scenario this Parameter is associated with Automatic
Process Process name for Alternative No
Alternative Alternative of Process to run No

SIMPROCESS User’s Manual 341


CHAPTER 15–Experiment Manager

The Parameter and Process tables are optional. The Parameter table
allows you to change values for attributes you have declared to be
Model Parameters. The Process table allows you to change Process
Alternatives for a scenario.

Experiment Setup Form


The Experiment Setup form is used to enter experiments into and
delete experiments from the Experiment Manager. The six database
tables should not be edited directly. The form has the Experiment table
fields listed on top with five tabs containing forms for each of the other
tables.

Entering Experiment Information


There are three fields that require entries for each experiment:
Experiment Name, Selected, and Display Error Alerts. This shows an
example experiment called Purchasing.

342 SIMPROCESS User’s Manual


Defining Experiments

Once you’ve given your experiment a name, then you check or


uncheck Selected. The default is checked. This allows you the
option of having experiments defined that you may not wish to run.
Display Error Alerts defaults to No. If No is chosen, then SIMPRO-
CESS will run the experiment without stopping to notify of errors.
This means SIMPROCESS will run every combination of model,
design, and scenario that it can. Those with errors will be skipped
over. If Yes is entered, then when SIMPROCESS encounters an
error when running the experiment, an error dialog will display that
will stop the experiment until the error has been acknowledged by
the user.

Entering Model Information


The Experiment Setup form has five tabs. The first is Model Setup.
This tab has the sub form to enter and delete models from
experiments.

The complete path and model name with extension must be entered.
In this example one model is entered for the experiment
Purchasing. Although multiple models can be entered before

SIMPROCESS User’s Manual 343


CHAPTER 15–Experiment Manager

entering design and scenario information, it is recommended that


you enter all the design and scenario information (along with
parameter and process information if needed) before entering the
next model.

Entering Design Information


The Design Setup tab contains the form for entering information
into and deleting information from the Design Setup table. One
design called “5 Reps” is entered for the model “C:\SIMPRO-
CESS\Spuser\Purchasing.spm”.

At least one design name is required on this sub form. The Design
Comment and Reps fields are optional. If no value is entered for
Reps, the last saved model value will be used for each scenario in
this design unless there was a previous design for the same model.
As with the Model Parameters and Process Alternatives, if there was
a previous design for the same model with a different number of
replications, the previous design’s number of replications will be
the number for the current design if Reps is left blank.

344 SIMPROCESS User’s Manual


Defining Experiments

Entering Scenario Information


The Scenario Setup tab contains the sub form for entering scenar-
ios. At least one scenario must be entered for each design. In this
example there are five scenarios for the design “5 Reps”.

The Scenario Comment field is optional. At this point no more


information is required to run a scenario. As stated earlier, entering
Model Parameters and Process Alternatives is optional. Scenarios
may have no Model Parameters or Process Alternatives, may have
just Model Parameters or just Process Alternatives, or may have both.

Entering Model Parameter Information

The next tab is Parameter Setup. This sub form enters information
into and deletes information from the Parameter table. You must
declare the type of the attribute, the name of the attribute, and the
value for the attribute. The Attribute Type field corresponds to the
types of attributes that can be defined in SIMPROCESS.

• Entity
• Entity Type
• Resource
• Activity
• Model

SIMPROCESS User’s Manual 345


CHAPTER 15–Experiment Manager

The attribute name is case sensitive, so it must match exactly the


attribute name in your SIMPROCESS model. Also the value must
be of the appropriate type for the attribute. For example, if the
attribute is an integer attribute, then the value entered must of type
integer. In this example there are three Model attributes to be
changed for a scenario.

NOTE
If no Model Parameter information is entered for a scenario,
then the model will run with the last saved values for the
Model Parameters. If a parameter has been changed for a
scenario, and the next scenario uses the same model (that is,
a new model is not loaded), then the Model Parameter will
have the same value as the previous scenario. It will not
reset to its default value.

Entering Process Alternative Information


The final tab is the Process Setup tab. The sub form on this tab
enters information into and deletes information from the Process
table. You enter the process name and the alternative that you wish
to be active for the scenario. Do not enter the process hierarchy,
only the process name. Thus, if you have duplicate process names
in various parts of your model, this will cause problems.
SIMPROCESS will stop searching for the process entered with the
first process in the model that matches. Again, process names and
alternative names are case sensitive. Process names and alternative

346 SIMPROCESS User’s Manual


Defining Experiments

names entered in the Experiment Manger must match those in the


model exactly.

In this example the Centralized, Functional alternative for the


Purchasing process will be active for the current scenario.

NOTE
If no process/alternative information is entered for a
scenario, then the model will run with the last saved active
alternative for each process. If an alternative has been
changed for a scenario, and the next scenario uses the same
model (that is, a new model is not loaded), then the active
alternative for a process will be the same as the previous
scenario unless a different alternative is specified in the
Experiment Manager.

SIMPROCESS User’s Manual 347


CHAPTER 15–Experiment Manager

Running Experiments
Once the experiments have been defined using the Experiment
Setup form, you ready to run your experiments. We will discuss
starting experiments, the operation of experiments, how to interact
with experiments, and how to generate standard reports from
experiments.

Starting Experiments
There are three options for running your experiments.

• Run All Experiments


• Run Selected Experiments
• Run Specific Experiment

Run All Experiments

The menu item Run All Experiments causes SIMPROCESS to attempt


to run every experiment defined. This option ignores the Selected field
in the Experiment table.

Run Selected Experiments

When this menu item is selected, SIMPROCESS attempts to run the


experiments in which the Selected field is checked.

Run Specific Experiment

This menu item allows you to specify one experiment to run. When
selected, a dialog appears that allows you to enter an experiment name.

The experiment name’s spelling must match the spelling of the name
in the database. However, since MS Access is not case sensitive, if

348 SIMPROCESS User’s Manual


Running Experiments

“purchasing” was entered, MS Access would match that entry with


the “Purchasing” experiment in the database. If no match occurs, an
error message appears stating the experiment could not be found in
the database.

Experiment Operation
The Experiment Manager operates as follows when running
experiments:

Once you choose to begin an experiment, SIMPROCESS begins a


sequence of steps. Each step occurs if the previous completes
successfully. The steps to running experiments are

1. Contact the database.


2. Prompt to save current work if necessary.
3. Enter a loop with sub loops.
Query Experiment table.
Query Model Setup table.
Query Design Setup table.
Query Scenario Setup table.
Query Parameter table.
Query Process table.
Load Model.
Verify Design.
Run Model.
Commit results to database.
End loop.
End loop.
End loop.
End loop.
4. Display status message on success of experiments.

Experiment Trace

During experiment execution, the Experiment Manager displays a

SIMPROCESS User’s Manual 349


CHAPTER 15–Experiment Manager

trace showing the steps that have been completed and the current step.
The trace includes the date, time, and a message. The trace is displayed
using the SIMPROCESS Messages window.

It is important to examine the Experiment Manager trace, since it will


give the complete status of your experiments. The trace can be saved
by selecting the Save button. The above example shows you the
experiment, alert dialog status (see below), model, design, and
scenario. Also, it shows the Process Alternative that was active and
the values of the Model Parameters for the scenario. Note that the
Process Alternative message appears before the “running scenario”
message, and the Model Parameter updates are shown after the “running
scenario” message. This is because Process Alternatives must be set
before the run begins, and Model Parameters are set when the run
begins.

Experiment Errors

As explained in the instructions for defining experiments, when the


Display Error Alerts field is set to No, interactive error messages are
suppressed. However, error messages will appear in the Experiment
Manager trace. This allows you to know which experiments
completed successfully and which encountered errors. Especially
important are the messages that show errors with your Process
Alternatives and Model Parameters.

350 SIMPROCESS User’s Manual


Running Experiments

When the Display Error Alerts field is set to Yes, error dialogs will
appear that pause the Experiment until you acknowledge the error.

Also, after the error displays, if there are more experiments to be


run a dialog appears with the option to stop all experiment runs.

SIMPROCESS User’s Manual 351


CHAPTER 15–Experiment Manager

If you want to run experiments over night, we recommend setting the


Display Error Alerts field to No for every experiment you wish to run.
That way SIMPROCESS will run every combination of Experiment,
Model, Design, and Scenario that it can. Otherwise, if an error occurs,
processing stops until you acknowledge the error.

Interacting With Experiments


When the Experiment Manager starts a model run, you have the same
ability to interact with the model as you do when starting a model run
yourself. This means you can turn animation on or off, change the
animation settings, descend into processes, change duration values for
delays, etc.
NOTE
When the Experiment Manager loads a model, it will run
with the last saved settings for animation. Therefore, if you
do not want to have to turn the animation off after the
experiment has started, make sure the model has been saved
with animation disabled.

Experiments can be stopped early by stopping a model run. An


experiment cannot be stopped while querying the database, loading
a model, or committing results to the database. If the Display Error
Alerts field is set to Yes, you will have the option to stop completely.
Otherwise you must stop every run to stop all experiment, model,
design, and scenario combinations.

352 SIMPROCESS User’s Manual


Running Experiments

Generating Standard Reports From Experiments


The Experiment Manager automatically commits your run results to
the database. If you would also like the ASCII version of the Standard
Report, go to Define Global Statistics Collection on the Report menu.
Select Generate Standard Report after batch runs. This will create a file
in your model directory that will contain the report for every
replication, the sum of the replications, and the average of the
replications. The Standard Report files are named Std.txt,
Std1.txt, and so on.

SIMPROCESS User’s Manual 353


CHAPTER 15–Experiment Manager

354 SIMPROCESS User’s Manual


Appendices

SIMPROCESS User’s Manual 355


356 SIMPROCESS User’s Manual


APPENDIX A

Activity Summary Table

Required Parameters Non-standard Options


Assemble Receives 2 or more entities Component Entity Resources
and assembles them into a Assembled Entity Delay
single entity for release.
Batch Components

Assign Assigns values to entity Entity Attributes Resources


attributes. Delay
Set Entity Priority

Batch Stores entities until a condi- Quantity to Batch Resources


tion is met, then releases Min Batch Size Delay
them as one, while retaining
Max Hold Time
their individual identity.
Batch Entity Type

Branch Routes entities to different Branch Type Resources


paths in the model network. Delay
Copy Copies entities. Number of Entities Resources
Delay

SIMPROCESS User’s Manual 357


Appendix A - SIMPROCESS Activity Summary

Required Parameters Non-standard Options


Delay General-purpose activity. Hours of Delay Time Resources

Dispose Disposes of entities. Maximum entity Count

Free Releases resources obtained Release actions Release all allocated


Resource by Get Resource activities. resources

Gate Accumulates entities until a Threshold Release ON/OFF Resources


condition is met, then Threshold Release Quantity Delay
releases a specified number (if Threshold Release ON)
of them.
Trigger Release Quantity (if
Trigger Release on)
Generate Generates entities. Entity type Start and End dates)
Quantity Schedule Type
Interval Schedule Items

Get Obtains resources to be held Resources


Resource during several activities. Tag attached to allocation

Join Reunites entities divided at a Family Name Batch family members


Split activity. Resources
Delay
Merge Merges entities and routes
them in a single stream.

Replenish Adds units to consumable Replenish actions (Resource


Resource resources. and Units)

Split Divides one entity into sev- Family name Copy Priority
eral to model the division of Resources
processing among several
Delay
activities.
Synchronize Coordinates the release of Number of Pads Resources
various entities. Delay

358 SIMPROCESS User’s Manual


Appendix A - SIMPROCESS Activity Summary

Required Parameters Non-standard Options


Transform Transforms arriving entities Number of Output Entities Copy Attributes
from one type to another, and Output Entity type Resource
releases one or more of the
Delay
new type.

Unbatch Separates a batched entity Resource


into its constituent parts. Delay

SIMPROCESS User’s Manual 359


Appendix A - SIMPROCESS Activity Summary

360 SIMPROCESS User’s Manual


APPENDIX B

SIMPROCESS File Structure

The SIMPROCESS installation program creates a directory under


the system Root Directory. This directory is called SIMPROCESS.
Under the SIMPROCESS directory are two subdirectories. One is
the SIMPROCESS System Directory, by default it is named as
SPSYSTEM, and the other is the User Working Directory, named
SPUSER. This appendix briefly describes the structures and
contents of these two directories. Here is the basic directory
structure:
SIMPROCESS
SPSYSTEM
SG2LIBS
OBJLIBS
SIMDRAW
TEMPLATES
HELP
WIN32_LICENSE
DRIVERS
SPUSER
DEFAULT
DEMOS
OBJLIBS
SG2LIBS

SIMPROCESS User’s Manual 361


Appendix B-SIMPROCESS File Structure

[ModelName]
DATA
PS

Under the SPSYSTEM directory, there are:


basic.edi ( READ ONLY; image editor configuration file )
caci32-6.dll ( READ ONLY; SIMPROCESS dynamic link library )
caci32.dll ( READ ONLY; SIMPROCESS dynamic link library )
cacilm32.dll ( READ ONLY; SIMPROCESS dynamic link library )
cacilmd.dll ( READ ONLY; SIMPROCESS dynamic link library )
cacia-6.dll ( READ ONLY; SIMPROCESS dynamic link library )
caciu-6.dll ( READ ONLY; SIMPROCESS dynamic link library )
caciuser.dll ( READ ONLY; SIMPROCESS dynamic link library )
cfg.edi ( READ ONLY; experiment manager tool configuration file )
control.edi ( READ ONLY; experiment manager tool configuration file )
data.edi ( READ ONLY; data analysis tool editor configuration file )
domain.edi ( READ ONLY; domain editor configuration file )
domain.txt ( READ ONLY; SIMPROCESS specific domain definition )
editor.dat ( READ ONLY; default editor configuration and preferences )
elmid32.dll ( READ ONLY; SIMPROCESS dynamic link library )
getstart.pdf ( READ ONLY; on-line documentation file )
mspole.dll ( READ ONLY; SIMPROCESS dynamic link library )
mulstats.edi ( READ ONLY; statistics editor configuration file )
readme.txt ( SIMPROCESS last minute documentation )
reports.cfg ( READ ONLY; report manager configuration file )
sample.edi ( READ ONLY; distributions plot configuration file )
seeds.dat ( READ ONLY; default random stream seeds values )
simdrw32.exe ( READ ONLY; SIMDRAW graphic editor executable )
simproc.cfg ( READ ONLY; SIMPROCESS configuration file )
simproc.cnt ( READ ONLY; SIMPROCESS on-line help file contents )
simproc.exe ( READ ONLY; SIMPROCESS executable )
simproc.hlp ( READ ONLY; SIMPROCESS on-line help file )
spuser.pdf ( READ ONLY; on-line documentation file )
stats.edi ( READ ONLY; statistics editor configuration file )

OBJLIBS subdirectory
This directory contains all the distributed model template libraries.
Users can load any of these libraries and use the pre-defined model-
element templates to build models.
simproc.lib ( SIMPROCESS standard modeling template
library )

SG2LIBS subdirectory
This directory contains all the distributed graphic files, i.e. *.SG2
and *.BMP. They are dialog boxes definitions, menu options, and
icon graphics. All of these files are set to read only.

362 SIMPROCESS User’s Manual


APPENDIX B-SIMPROCESS File Structure

allocate.bmp release.bmp

allocn.sg2 releasen.sg2

assemble.bmp repgrfmn.sg2

assembn.sg2 simdlg.sg2

assign.bmp simplot.sg2

assignn.sg2 simsys.sg2

batch.bmp simtoken.sg2

batchn.sg2 sink.bmp

branch.bmp sinkn.sg2

branchn.sg2 source.bmp

clone.bmp sourcen.sg2

clonen.sg2 splash.bmp

colorpal.sg2 split.bmp

create.bmp splitn.sg2

createn.sg2 spnode.sg2

delay.bmp spproc.sg2

delayn.sg2 spsappl.sg2

expmgr.sg2 ssnsrc.bmp

gate.bmp syncro.bmp

gaten.sg2 syncron.sg2

ibmplot.sg2 system.sg2

join.bmp unbatch.bmp

joinn.sg2 unbatchn.sg2

merge.bmp user.sg2

mergen.sg2 userpal.sg2

pndetail.sg2 xform.bmp

process.bmp xformn.sg2

processn.sg2

SIMPROCESS User’s Manual 363


Appendix B-SIMPROCESS File Structure

SIMDRAW sub-directory
This directory contains all the configuration files and on-line help
file required by the Graphics Editor - SIMDRAW.

colorpal.sg2 ( SIMDRAW graphics file )


simdraw.cfg ( SIMDRAW configuration file )
simdraw.cnt ( SIMDRAW configuration file )
simdraw.fnt ( SIMDRAW text fonts file )
simdraw.hlp ( SIMDRAW on-line help file )
simdraw.ini ( SIMDRAW configuration file )
simdraw.sg2 ( SIMDRAW grahphics file )
system.sg2 ( SIMDRAW graphics file )

TEMPLATES subdirectory
This directory contains all the distributed documentation template
files. They are default forms and templates used in documenting
models and model elements. All of these files are set to read only.

token ( Entity description form )


resr ( Resource description form )
nod ( Activity/Process description form )
pad ( Pad description form )
arc ( Connector description form )
mod ( Model description form )

token.tpl ( Entity documentation template )


res.tpl ( Resource documentation template )
node.tpl ( Activity/Process documentation
template )
model.tpl ( model documentation template )

HELP subdirectory
This directory contains the SIMPROCESS help files.

simproc.hlp ( SIMPROCESS help file )


simproc.cnt ( help configuration file )

Win32_License subdirectory
This directory contains the license manger files.

364 SIMPROCESS User’s Manual


APPENDIX B-SIMPROCESS File Structure

lic_w32.exe ( license manager application )


Odbctrac.dll ( odbc dll )

Drivers subdirectory
This directory contains the dongle drivers for DOS, 95 & 98, and
NT. Each are in their own subdirectories. The driver in the
Win_95 directory is used for Windows 98.

Under the SPUSER directory, there are:


simproc.ini (editor configuration from the last session)
simprocdb.mdb(MS Access database)
mnymny.bmp (bitmap file for project.lib palette icon)
mnyone.bmp (bitmap file for project.lib palette icon)
oneone.bmp (bitmap file for project.lib palette icon)
onemny.bmp (bitmap file for project.lib palette icon)
*.spm (SIMPROCESS model file)
*.bck (the previously saved model file of the current *.spm )
*.bmp (exported bitmap file of the working area; the file exten-
sion is fixed to bmp and will overwrite whatever user
specified)
*.eps ( encapsulated postscript file of the working area )

DEFAULT subdirectory
This directory is created by SIMPROCESS to temporarily collect
the model’s documentation and output files. When building a
model, SIMPROCESS will call this model default.spm before
the user explicitly assigns a name to it. Any file (e.g.
documentation files) that needs to be saved to the disk in this
period, will be saved under this directory temporarily. Once a name
is assigned, SIMPROCESS will then create a directory using the
assigned name and move all its related files to the newly created
directory.

DEMOS subdirectory
This directory contains demonstration and reference models, as
well as their supplemental directories. Initially, all these supple-
mental directories, except EXPMGR, contain only a model docu-
mentation file, i.e. mod.doc. The EXPMGR subdirectory contains
the examples of experiment designs.

SIMPROCESS User’s Manual 365


Appendix B-SIMPROCESS File Structure

as-is.spm ( tutorial’s reference model )


assemble.spm ( reference model describes Assemble
activity )
assign.spm ( reference model describes Assign
activity )
batch.spm ( reference model describes Batch/
Unbatch activities )
callctr.spm ( demonstration model )
cashier.spm ( demonstration model )
cnfgmgmt.spm ( demonstration model )
credit.spm ( demonstration model )
fullfill.spm ( demonstration model )
helpdesk.spm ( demonstration model )
invntory.spm ( demonstration model )
newacct.spm ( demonstration model )
project.spm ( demonstration model )
purchas.spm ( demonstration model )
spltjoin.spm ( reference model describes Split and
Join activities )
supply.spm ( demonstration model )
to-be.spm ( tutorial’s reference model )
wafer.spm ( demonstration model )

OBJLIBS subdirectory
This directory contains user created libraries that collect user
defined model-element templates. Users can load any of these
libraries and reuse the templates to build models. Currently, there
is one library created for demonstration purposes.

project.lib ( Reusable template library for the


demo model - project.spm )

SG2LIBS subdirectory
This directory contains the graphic files that users have imported or
created with SIMDRAW for future usage.

usr.sg2 ( User created background images )


usrnode.sg2 ( User created activity icons )
usrproc.sg2 ( User created process icons )
usrtokn.sg2 ( User created entity icons )

366 SIMPROCESS User’s Manual


APPENDIX B-SIMPROCESS File Structure

[ModelName] subdirectory
For each model, there will be a supplemental directory named as
the model’s name and created by SIMPROCESS. This supplemen-
tal directory is to collect the model’s documentation and output
files. It will contain:

Arc[n].doc ( Connector documentation files )


Model.doc ( model’s full documentation )
Node.doc ( full documentation of a selected
Process/Activity )
Nod[n].doc ( Activity documentation files )
Resr[n].doc ( Resource documentation files )
Token[n].doc ( Entity documentation files )
dbdata ( database design and scenario info)
recorder.msg ( recorder output messages file )
resource.nod ( simulation output data file )
otherwise.nod ( simulation output data file )
costdata ( simulation output data file )
costdata.idx ( simulation output data file )
stat1.mon ( simulation statistical results )
stat1.ndx ( simulation statistical results )
stat1.trc ( simulation statistical results )

Under this supplemental directory, there may be other files com-


posed of database system and design names. These contain design
information for design verification. Also, there may be two subdi-
rectories. They contain exported text format data files and post-
script files from the model.

DATA
Exported report data in text format which can be space delimited
file(*.TXT) and comma delimited file(*.CSV).

PS
Exported postscript files from report graphics, i.e. *.PS.

SIMPROCESS User’s Manual 367


Appendix B-SIMPROCESS File Structure

368 SIMPROCESS User’s Manual


APPENDIX C

Statistical Distributions

The following pages give a brief description of the standard statistical


distributions available in SIMPROCESS, as well as their required
parameters.

SIMPROCESS User’s Manual 369


Appendix C - Statistical Distributions

Uniform Distribution

Uniform(3, 7, x)

0.25

0.2

0.15

0.1

0.05

0
0 1 2 3 4 5 6 7 8

Probability density function for a uniform distribution


Syntax: UNI (minimum, maximum, stream)

A uniform distribution is one where the probability is constant over


some range, and zero outside that range. You use a uniform
distribution function when all values in the range are equally likely.

To specify a uniform distribution you give the minimum and


maximum values of its range.

370 SIMPROCESS User’s Manual


Appendix C - Statistical Distributions

Normal Distribution

Normal(1, standard deviation, x

2.00

1.80
std. dev. = 0.2
1.60

1.40

1.20

1.00

0.80
std. dev. = 0.4
0.60

0.40

std. dev. = 0.6


0.20

0.00
0.00 0.50 1.00 1.50 2.00 2.50 3.00 3.50 4.00

Probability density function for several normal distribution functions with


means = 1.

Syntax: NOR (mean, standard deviation, stream)

A normal distribution (sometimes called a Gaussian distribution)


produces the bell-shaped curve that is so commonly found in the real
world. You would not want to use a normal distribution if you are
modeling a distribution with a large standard deviation and a peak
close to the origin. The problem then is that normal distributions
usually do not have any restriction that keeps them from ranging to
negative values. This would be a problem if you were modeling
something that was always positive, such as time to complete a task.
SIMPROCESS truncates the distribution so this problem does not
occur. Two parameters characterize a normal distribution: the mean
and standard deviation. The standard deviation tells how much things
vary around the mean: if the standard deviation is large, the variation
is large, if the standard deviation is small, the variation is small.

SIMPROCESS User’s Manual 371


Appendix C - Statistical Distributions

Triangular Distribution

0.35 Triangular(2.0, 6.0, 8.0)

0.30

0.25

0.20
p
0.15

0.10

0.05

0.00
0 1 2 3 4 5 6 7 8 9 10

Probability density function for a triangular distribution function

Syntax: TRI(minimum, mode, maximum, stream)

A triangular distribution is very simple: it is peaked somewhere in the


middle and has a finite range. To specify a triangular distribution, you
give its minimum, maximum, and mode. The mode is where the peak
of the distribution occurs—it is the most likely value in the range. It
is not usually equal to the mean unless the distribution is symmetric.
A triangular distribution is useful when you have only a vague idea
about the shape of the distribution, perhaps you only know the range
and where the peak occurs.

372 SIMPROCESS User’s Manual


Appendix C - Statistical Distributions

Exponential Distribution

Exponential(1, x)

0.9

0.8

0.7

0.6

0.5

0.4

0.3

0.2

0.1

0
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5

Probability density function for an exponential distribution function

Syntax: EXP(mean, stream)

The exponential distribution function is commonly used to model


interarrival times. It is related to the Poisson distribution function—
if the number of arrivals in a given time are represented by the Poisson
distribution, then the distribution of interarrival times is an
exponential distribution function. The only number needed to
characterize the exponential distribution function is the mean. The
standard deviation is the same as the mean for an exponential
distribution.

SIMPROCESS User’s Manual 373


Appendix C - Statistical Distributions

Gamma Distribution

shape = 15
shape = 0.5

shape = 9

shape = 3

shape = 1

0 0.5 1 1.5 2 2.5 3


X
Probability density curves for a gamma distribution function with mean = 1

Syntax: GAM(mean, shape, stream)

Gamma distributions are based on the gamma function, which is


sometimes known as the generalized factorial function. Like
exponential distributions, they are often used for times to complete a
task, such as service time. Gamma functions have a smaller variance
than exponential functions and they also have two shape parameters,
which gives more control over their shape than exponential
distributions.

You can see from the graph above that when shape = 1 the Gamma
distribution is peaked at 0 (like the exponential distribution), and when
shape > 1 the distribution becomes peaked away from the origin.

374 SIMPROCESS User’s Manual


Appendix C - Statistical Distributions

Beta Distribution

3
shape1 =1.5, shape2 shape1 = 5, shape2 =

shape1 = 5, shape2
2.5

2
shape1 = 1.5, shape2 shape1 = 3, shape2 =

Beta(shape1, shape2, m
1.5
max)

0.5

0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2


X

Probability density curves for various beta distribution functions

Syntax: BET(shape1, shape2, minimum, maximum, stream)

Beta distributions are similar to triangular distributions—they are


singly peaked with a finite range. Their range is from minimum to
maximum. They are also often used when there is not much data
available. Beta distributions are characterized by two shape
parameters: shape1 and shape2. As beta distributions are normally
used, both shape parameters are greater than one.

If the first parameter is larger, the peak falls toward the right side of
the range, if the second parameter is larger, the peak falls toward the
left side of the range.

SIMPROCESS User’s Manual 375


Appendix C - Statistical Distributions

Erlang Distribution

Erlang(1, shape, x)
(Mean = 1 for all curves)
1.4
shape = 10

1.2

1 shape = 1
shape = 4
0.8
shape = 2
0.6

0.4

0.2

0
0 0.5 1 1.5 2 2.5 3
X

Probability density function for an Erlang distribution function

Syntax: ERL(mean, shape, stream)

The Erlang distribution is a special case of the gamma distribution.


It is sometimes used for modeling a time to do a certain task, when
that time depends upon the sum of the times for a number of
independent tasks.

376 SIMPROCESS User’s Manual


Appendix C - Statistical Distributions

Weibull Distribution

Weibull (shape, 1, x)

2.5

shape = 8
2

1.5

shape = 2
0.5

0
0 0.5 1 1.5 2 2.5 3

Probability density function for two Weibull distribution functions

Syntax: WEI(shape, scale, stream)

Weibull distributions are nice smooth distributions whose shapes can


be varied widely depending on the shape and scale parameters. For
this reason it may be a good distribution to use if you are using it in
code, where you wish to change the shape of the distribution
appropriately for different situations, but you do not want to switch
distributions.

SIMPROCESS User’s Manual 377


Appendix C - Statistical Distributions

Lognormal Distribution

Lognormal (1, standard deviation, x)


(Mean = 1 for all curves)
4.50

4.00 s.d. = 4

3.50
s.d. = 0.1
3.00

2.50

2.00
s.d. = 3

1.50

s.d. = 1
1.00 s.d. = 0.5

0.50

0.00
0.00 0.50 1.00 1.50 2.00 2.50 3.00 3.50 4.00 4.50 5.00

Probability density functions for a lognormal distribution function

Syntax: LOG(mean, stream)

The lognormal distribution is similar to a normal distribution skewed


toward zero. It is useful for modeling skewed data sets.

378 SIMPROCESS User’s Manual


Appendix C - Statistical Distributions

Poisson Distribution

Poisson(Mean, Number)
0.7

0.6

0.5

Mean = 0.5
0.4
Mean = 1
0.3 Mean = 2
Mean = 6
0.2

0.1

0
0 1 2 3 4 5 6 7 8 9 10

Number of Occurrences

Poisson distribution for various mean values

Syntax: POI(mean, stream)

If we know on average how many statistically independent events


occur in a certain time period, the Poisson Distribution tells you what
the probability is for a number occurring. Poisson distributions are
very good for modeling arrivals, for example, the arrival of phone calls
to a switchboard. We may have a very good idea how many occur on
average, but have no way to predict exactly when each call will arrive.

SIMPROCESS User’s Manual 379


Appendix C - Statistical Distributions

Hyper Exponential Distribution

Hyperexponential(1, 5, p)
0.9

0.8 p = 1.

0.7 p = 0.

0.6
p = 0.

0.5

p = 0.
0.4

0.3
p = 0.

0.2

p = 0

0.1

0 1 2 3 4 5 6 7 8 9 10
X

Syntax: HEX(mean1, mean2, probability of mean, stream)

The Hyper Exponential distribution function takes three positive real


numbers: mean1, mean2 and probability of mean. It returns a positive,
real number. The stream parameter specifies which random number
stream will be used to provide the sample.

380 SIMPROCESS User’s Manual


Appendix C - Statistical Distributions

Uniform Integer Distribution

0.15

Integer(7, 16)

0.1

0.05

0
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

Syntax: INT(minimum, maximum, stream)

The Uniform Integer distribution function takes two positive, real


numbers: lower bound & upper bound. It returns a positive, real
integer between these bounds inclusive. The stream parameter
specifies which random number stream will be used to provide the
sample.

SIMPROCESS User’s Manual 381


Appendix C - Statistical Distributions

Geometric Distribution

Syntax: GEO(minimum, mean, stream)

The Geometric Distribution takes two parameters: minimum and


mean. This distribution returns a positive real integer. The stream
parameter specifies which random number stream will be used to
provide the sample.

382 SIMPROCESS User’s Manual


Appendix C - Statistical Distributions

Hyperbolic Distribution

1.6
Hyperbolic Distribution
(offset = 0)

1.4 position=1, shape=1.5


Hyperbolic(position, shape, offset, x)

1.2

position=1, shape=0.95

0.8

0.6

0.4

0.2
position=5, shape=0.95

0
0 2 4 6 8 10 12 14
X

Syntax: HYP(position, shape, offset, stream)

The Hyperbolic Distribution is a simple power law type distribution


that is useful for modeling bursty sources. The distribution is heavily
peaked but the tail falls off relatively slowly. It takes three parameters:
position, shape, and offset. The position specifies where the
distribution starts, the shape specifies how quickly the tail falls off,
and the offset shifts the distribution. Because of the heavy tail, the
Hyperbolic distribution can have infinite mean and variance. It the
shape parameter is greater than 2, both the mean and variance are finite.
If the shape parameter is greater than 1 but less than or equal to 2, the
mean is finite but then variance is infinite. If the shape parameter is
less than or equal to 1, both the mean and variance are infinite.

SIMPROCESS User’s Manual 383


Appendix C - Statistical Distributions

384 SIMPROCESS User’s Manual


APPENDIX D

Statistical Tools Glossary

Absolute Deviation
The average deviation of the data set from the mean. It is computed
using the absolute value of the difference between a data point and the
mean rather than squared differences used in computing the variance.

Alpha
The probability that an estimate of a parameter does not contain the
true value. In statistics, this is referred to as Type I error.

Alternate Hypothesis
The complement of the null hypothesis.

Cdf
Cumulative distribution function.

SIMPROCESS User’s Manual 385


Appendix D-Statistical Tools Glossary

χ2 goodness of fit test


A goodness of fit test that uses a χ2 statistic to evaluate the goodness
of fit. The χ2 goodness of fit test creates an empirical distribution for
the data. The empirical distribution used is a histogram. The height of
each bin of the histogram is equal to the number of points in the data
set that fall between the lower and upper bounds of the bin. The χ2
statistic is computed as the sum of squared differences of the values
observed for each bin of the histogram to the number of observations
expected from the probability distribution over the same range as the bin.

Confidence Interval
An interval that contains the true value of a parameter with a given
probability.

Continuous Domain
A domain whose variables can take on any value in an interval real
numbers. Integer domains are sometimes interpreted as continuous
domains with the implicit assumption that the integers represent an
underlying continuous domain.

Data Set
A vector (or equivalently an array or column) of data points that are
the realization of a random process.

Degrees of Freedom
The number of independent elements in a statistical computation. The
degrees of freedom must be known to compute the probability of a test
statistic such as the χ2 statistic.

386 SIMPROCESS User’s Manual


Appendix D-Statistical Tools Glossary

Dof
Acronym for degrees of freedom.

Enumeration Domain
A domain whose range is the set of elements in the enumeration.

Goodness of fit test


A statistical test used to determine the probability that an observed data
set came from a probability distribution. The null hypothesis is that the
data set is drawn from the probability distribution. The alternate hypothesis
is that the data set is not drawn from the probability distribution. A test
statistic is computed to evaluate the hypothesis. If the probability of
observing the test statistic is small (less than alpha), the fit is rejected.

IID
Identically and independently distributed. In simulation, identical
means that observations are made from a hypothesized distribution of
values that does not change over simulated time. Independent means
that observations of one replication are not correlated with other
observations, i.e. if one observation has a value of x, then the next
observation is probably close to x.

Image Editor
An editor that contains graphs, tables, or text for viewing the results
of a statistical analysis.

Integer-valued Domain
A domain whose range is the set of integer numbers.

SIMPROCESS User’s Manual 387


Appendix D-Statistical Tools Glossary

KS
Acronym for Kolmogorov-Smirnov.

KS goodness of fit test


A goodness of fit test that uses the D statistic to evaluate the goodness
of fit. The KS goodness of fit test creates an empirical distribution for
the data. The empirical distribution assigns a probability of 1/N to each
data point where N is number of data points in the data set. The D
statistic is computed as the maximum difference between the
cumulative distribution function of the empirical distribution and the
cumulative distribution function of the probability distribution being
tested.

Kurtosis
Characterizes the relative peakedness or flatness of a distribution
relative to the normal distribution. A data set with positive kurtosis
has a sharper peak than a normal distribution while a data set with
negative kurtosis has a flatter peak than the normal distribution.

Maximum Likelihood Estimate


A statistical technique for estimating the parameters of a hypothesized
distribution of a data set.

Mean
Average value of a data set.

MLE
Acronym for maximum likelihood estimate.

388 SIMPROCESS User’s Manual


Appendix D-Statistical Tools Glossary

Mode
The mode of a probability distribution is the value of x where it takes
on its maximum value. If the distribution is multiply-peaked, there
may not be a unique mode.

Model Element.
A named object in the simulation model that has one or more
simulation input variables that can be designated as factors for an
experiment. The model elements include activities, resources, and
entity types.

Pdf
Probability distribution function.

Performance Measure.
An output statistic that quantifies some behavior of the model.

Percentiles
In a data set ranked by value of the data points, a percentile refers to
the data point at the relative position by rank of the data point in the
data set. For example, in a data set of a hundred points, the 75th
percentile (75%) point is the data point that is in the 75th position when
ranked by value.

Quartile Range
Difference between the 25th percentile value and 75th percentile value
of the data set.

SIMPROCESS User’s Manual 389


Appendix D-Statistical Tools Glossary

Range
Difference between the minimum and maximum values of a data set.

Real-valued Domain
A domain whose range is the set of real numbers.

Residuals
The differences between the actual values observed and the expected
values as computed by a statistical test.

Sample Domain
A domain whose range is the set of probability distributions supported
by SIMPROCESS.

Skewness
Characterizes the degree of asymmetry of a distribution around its
mean. A data set with positive skewness has a long tail to the right of
its mean. A data set with negative skewness has a long tail to the left
of its mean.

Standard Deviation
Square root of the variance.

Standard Error
A measure of the spread of the data set about the mean. Typically,
standard error is the one sigma error about the mean of the data set
computed as the standard deviation divided by the square root of the
number of data points.

390 SIMPROCESS User’s Manual


Appendix D-Statistical Tools Glossary

Variance
Variability of data set about the mean.

SIMPROCESS User’s Manual 391


Appendix D-Statistical Tools Glossary

392 SIMPROCESS User’s Manual


APPENDIX E

SIMPROCESS System Methods


and Examples

System Attributes
This section lists all the SIMPROCESS system attributes in a table and
provides examples of system methods.

SIMPROCESS System Attributes

Model Elements Attribute Namea Get/ Attribute Description


Set Type

System Levelb Model Get OBJECT Reference of the Model being simu-
lated.
Self Get OBJECT Reference of the Model Element
itself.
Replication Get INTEGER Current replication number.
Entity Type Name Get STRING Name of the entity.
Priority Both INTEGER Default priority for entity instances of
this type.

SIMPROCESS User’s Manual 393


Appendix E-System Methods and Examples

SIMPROCESS System Attributes

Model Elements Attribute Namea Get/ Attribute Description


Set Type
NumberIn Get INTEGER Number of entity instances of this
type currently in the system.
NumberCreated Get INTEGER Number of entities instances gener-
ated for this type.
NumberDisposed Get INTEGER Number of disposed entities instances
of this type.

Entity (instance) Name Get STRING Name of this entity.


Activity Get OBJECT Reference of Activity this entity
instance resides in.
CreateTime Get REAL Time the entity instance was created.
EndWait Both BOOLEAN TRUE if entity wait for resources was
interrupted by MaxWait time
EnterTime Get REAL Time the entity instance entered the
current activity.
MaxWait Both REAL Maximum time entity will wait for
resource allocation. Default is 0.0
(unlimited).
NumberIn Get INTEGER Number of entity instances of the
same type currently in the system.
NumberCreated Get INTEGER Number of entity instances of the
same type has generated.
NumberDisposed Get INTEGER Number of entity instances of the
same type has disposed.
Priority Both INTEGER Priority of this entity instance.
SequenceNum Get INTEGER A number given sequentially to each
entity as it is created.
Type Get OBJECT Reference of Entity Type of this
entity instance.

394 SIMPROCESS User’s Manual


System Attributes

SIMPROCESS System Attributes

Model Elements Attribute Namea Get/ Attribute Description


Set Type
Resource Name Get STRING Name of the resource.
Activity Get OBJECT Reference of Activity currently hold-
ing this resource (if any).
Capacity Get REAL Resource capacity.
Entity Get OBJECT Reference of Entity instance currently
using this resource (if any).
UnitsBusy Get REAL Number of units of the resource in
busy state.
UnitsDown Get REAL Number of units of the resource not
available because of the application
of a downtime.
UnitsIdle Get REAL Number of units of the resource in
idle state.

Activity’s Group Name Get STRING Name of this activity.


I
Parent Get OBJECT Reference of this activity’s parent
process.
Entity Get OBJECT Reference of the current Entity.
Sibling(name : Get OBJECT It returns the reference to the activity
STRING) or process with the specified name in
the same hierarchical level.

Activity’s Group NumberAccepted Get INTEGER Number of entities so far entered this
II activity.
NumberReleased Get INTEGER Number of entities so far exited this
activity.
NumberIn Get INTEGER Number of entities currently at this
activity.

Activity’s Group LastDelay Get REAL The value of the last delay.
III

SIMPROCESS User’s Manual 395


Appendix E-System Methods and Examples

SIMPROCESS System Attributes

Model Elements Attribute Namea Get/ Attribute Description


Set Type
NextDelay Set REAL Change the value of the next delay
ONLY.
AllFutureDelays Set REAL, Change the value of all future delays
INTEGER, henceforth.
STRING
Assemble Group I, II, & III
Activated- Get BOOLEAN Checks if the expression is activated
ByNoMatch by an entity exiting through the
NoMatch pad.
ActivatedByTrig- Get BOOLEAN Checks if the expression is activated
ger by an entity entering from the Trigger
pad.

Assign Group I, II, & III

Batch Group I, II, & III


MaxBatchSize Both INTEGER Number of entities to batch.
MinBatchSize Both INTEGER Number of entities must be in a batch
before it can be released.
MaxWaitTime Both REAL Time to wait before releasing under-
size batch.
Branch Group I, II, & III
BranchName Set STRING Name of the connector to be taken by
the next entity.

Copy Group I, II, & III


NumOutEntities Both INTEGER Number of entities to output per con-
nector.

Delay Group I, II, & III

Dispose Group I

396 SIMPROCESS User’s Manual


System Attributes

SIMPROCESS System Attributes

Model Elements Attribute Namea Get/ Attribute Description


Set Type
MaxCount Both INTEGER Number of entities disposed to signal
End Simulation event.
NumberDisposed Get INTEGER Number of entities so far disposed at
this activity.
Free Resource Group I & II

Gate Group I, II, & III


ActivatedByTrig- Get BOOLEAN Checks if the expression is activated
ger by an entity entering from the Trigger
pad.
AutoRelCount Both INTEGER Number of entities for threshold
release.
AutoRelease Both BOOLEAN Whether threshold release is on or
not.
LastRelCount Get INTEGER Number of entities released in the
previous threshold/trigger release.
TrigNextRel- Both INTEGER Value of the trigger release quantity at
Count the next trigger.
TrigFutureRel- Set REAL, Change the trigger release quantity
Count INTEGER, for all future triggered release hence-
STRING forth.

Generate Group I
NumberGener- Get INTEGER Number of entities so far generated at
ated this activity.
Get Resource Group I & II

Join Group I, II, & III

Merge Group I & II

SIMPROCESS User’s Manual 397


Appendix E-System Methods and Examples

SIMPROCESS System Attributes

Model Elements Attribute Namea Get/ Attribute Description


Set Type
Process Group I & II
Child Get OBJECT For hierarchical processes ONLY. It
returns the reference to the child
activity or process with the specified
name.
Replenish Group I & II
Resource

Split Group I, II, & III

Synchronize Group I, II, & III

Transform Group I, II, & III


NumOutEntities Both INTEGER Number of output entities.
OutEntityType Get OBJECT Reference of output Entity Type.

Unbatch Group I, II, & III

a. System attributes’ names must be input as shown. They are case sensitive.
b. Attributes in this category can be referenced in any expression.

398 SIMPROCESS User’s Manual


SIMPROCESS System Methods

SIMPROCESS System Methods

SIMPROCESS System Methods

Method Namea Arguments Return Description

Alert MasterEditorb, NONE Display a message in the Alert di-


Message : STRING alog box and wait for the user to
close this dialog box.

Beep MasterEditorb NONE Make a beep sound.

ChangeColor ActOrEnt : OBJECT, NONE Change the color of the specified


Color : STRING activity or entity.

CloseFile File stream: OBJECT NONE Close the specified file.

Confirm MasterEditorb, BOOL- Display a message in the Confirm


Message: STRING EAN dialog box and wait for the user to
respond; OK returns TRUE,
CANCEL returns FALSE.

DrawIntegerSample Statistical Distribution: INTE- Draw a sample of type integer


STRING GER from the specified statistical dis-
tribution.

DrawRealSample Statistical Distribution: REAL Draw a sample of type real from


STRING the specified statistical distribu-
tion.
FLOAT number: INTEGER REAL convert the argument to REAL
type.

INTTOSTR number: INTEGER STRING Convert an integer number to a


string.

SIMPROCESS User’s Manual 399


Appendix E-System Methods and Examples

SIMPROCESS System Methods

Method Namea Arguments Return Description


MAXOF list of numbers: REAL/INTE- REAL or Return the maximum number in
GER INTE- the given list, return type is the
(all the numbers in list must GER same as the input list.
be of the same type)

MINOF list of numbers: REAL/INTE- REAL or Return the minimum number in


GER INTE- the given list, return type is the
(all the numbers in list must GER same as the input list.
be of the same type)

OpenFile Mode: STRING OBJECT Open the specified file and return
File Name: STRING the file stream object. Mode can
be “input“ or “output”.

OUTPUT Takes zero or more arguments. NONE Display the specified arguments
Type can be REAL, INTE- in the Output dialog.
GER, CHAR, STRING

POSITION String1 : STRING INTE- This method returns the starting


String2 : STRING GER position of String2 in String1. If
String2 is not completely con-
tained in String1, it returns 0.

ReadFromFile File stream: OBJECT NONE Read values for the listed vari-
list of variables ables from the specified input
file.

REALTOSTR number: REAL STRING Convert a real number to a string.


REPLACE String1 : STRING STRING Returns a string that is in String1
position1, position2 : INTE- with part of String1 from position
GER 1 to position 2 replaced with
String2 : STRING String2.

Resource resourceName : STRING OBJECT Returns the reference to the spec-


ified Resource.

ROUND number: REAL INTE- Round the argument and return


GER the closest integer value.

400 SIMPROCESS User’s Manual


SIMPROCESS System Methods

SIMPROCESS System Methods

Method Namea Arguments Return Description


ShowSystemAt- None NONE Display all the System Defined
tributesc Attributes of the calling element
in the Output dialog .

ShowUserAttributesc None NONE Display all the User Defined At-


tributes evaluated for the calling
element since start.

SimTimec None REAL Return current simulation time in


hours.

STATUS Same as OUTPUT NONE Display the specified arguments


in status bar.

STRLEN inString : STRING INTE- Retuns the length of the string, in-
GER String.

SUBSTR position1, position2 : INTE- STRING Returns the substring of String


GER from position1 to position2, in-
String : STRING clusive.

TRUNC number: REAL INTE- Return the integer part of the


GER number

UpdateDynamicLa- MasterEditorb, NONE Update the specified dynamic la-


bel Label Name: STRING, bel with the given value.
Label ID: INTEGER,
Font Color: STRING,
Value: Same as Label’s Mode

WriteToFile File stream: OBJECT NONE Write the values of the listed vari-
list of variables ables to the specified output file.

a. System methods’ names must be input as shown. They are case sensitive.
b. This argument (i.e. MasterEditor) must be the first argument inside the parentheses of this method. It is required by
the method and must be input as shown. It is case sensitive.
c. Since this method does not require any argument, do not include empty parentheses when using this method.

SIMPROCESS User’s Manual 401


Appendix E-System Methods and Examples

402 SIMPROCESS User’s Manual


System Method Examples

System Method Examples

Method Alert and Beep:


For example, to display a message and sound alarm when an entity
enter an activity, put the following lines in the activity’s Accept
Entity event:

Beep(MasterEditor);
Alert(MasterEditor, “Press OK to continue!”);

Method Confirm, DrawRealSample, MINOF, MAXOF,


and REALTOSTR:
This example demonstrates the syntax and usage of the listed methods.
It draws a number from an Uniform distribution whose minimum and
maximum parameters are results from an Exponential distribution
with a mean of 30. The result is displayed in a message box with OK
and Cancel buttons. Pressing OK will continue this process again,
while Cancel will end the process.

fContinue : BOOLEAN;
value1, value2, maxval, minval : REAL;

fContinue := TRUE;
WHILE fContinue
value1 := DrawRealSample(“Exp(30.0)”);
value2 := DrawRealSample(“Exp(30.0)”);
maxval := MAXOF(value1, value2);
minval := MINOF(value1, value2);
value1 := DrawRealSample(“Uni(“+REAL-
TOSTR(minval)+”,” +REALTOSTR(max-
val)+”)”);
Beep(MasterEditor);
fContinue := Confirm(MasterEditor, “The
value is “+ REALTOSTR(value1));
END WHILE;

SIMPROCESS User’s Manual 403


Appendix E-System Methods and Examples

Method ChangeColor:
This method changes the color of a non-bitmap icon. Currently,
activity icon “RectangleIcon”, process icon “Process”, and all the
provided entity icons can use this method to change their color. The
Table , “SIMPROCESS Color Table,” contains the 64 colors
available in SIMPROCESS.
For example, to change an activity to red whenever an entity enters,
in the activity’s Accept Entity event add:

ChangeColor(Self, “Red”);
To change the color of all entities that leave the activity to brown, and
change the activity icon to green if there is no entity in it, in the
activity’s Release Entity event add:

IF (NumberIn = 0)
ChangeColor(Self, “Green”);
END IF;
ChangeColor(Entity, “Brown”);

Method ShowSystemAttributes and


ShowUserAttributes:
These methods display all the system defined and user defined
attributes with their current values of the calling element in the
standard output window. For example, to display the system defined
attributes of an activity when an entity enters, in the activity’s Accept
Entity event put:

ShowSystemAttributes;

All the system defined attributes and values are listed in the standard
output window.

404 SIMPROCESS User’s Manual


System Method Examples

Method SimTime:
This method returns the current simulation time in hours. The return
value is REAL type. For example:

Entity.StartTime := SimTime; { StartTime


is a REAL global entity instance
attribute. }

Method OUTPUT and STATUS:


To display a message in the standard output window:

OUTPUT(“Number of orders currently held in


Gate10 is : “, NumberIn);

Or, to display it in the status bar:

STATUS(“Number of orders currently held in


Gate10 is : “, NumberIn);

where the expressions above are placed on the activity, Gate10.

Method UpdateDynamicLabel:
To use this method, you need to define a dynamic label in the work
area first. To define a dynamic label, refer to Chapter 10–Customizing
a Model with Attributes and Expressions, beginning on page 213.
Five arguments are required for this method. The first one is
MasterEditor. This is the key word that must be there and input
as shown. The next two arguments are the Name and ID of the dynamic
label defined in the Background Text Properties dialog box. The forth
argument is the color to be used in displaying this label. The last
argument is the value to be displayed. It can be a constant or an
attribute, but the data type must match the Mode defined in Background
Text Properties.

For example, you want to display the number of entities generated at


a Generate activity. Assume you have already defined a dynamic label

SIMPROCESS User’s Manual 405


Appendix E-System Methods and Examples

with the name ”total”, ID of 0, and data type of INTEGER. In the


Release Entity event of the Generate activity add the following line:

UpdateDynamicLabel(MasterEditor, “total”,
0, “DarkBlue”, NumberGenerated);

The first parameter of this method must be MasterEditor and


input as shown.

Method OpenFile, CloseFile, ReadFromFile, and


WriteToFile:
OpenFile opens the file specified in the Filename field for either
input or output. The mode must be either “input” or “output” (not case-
sensitive). “Input” opens a file to read, while “output” opens a file
to write. Any other specifications will lead to an error message. Both
arguments are STRING type, i.e. they must be surrounded by “ “.
OpenFile returns an Object type value which is required in
CloseFile, ReadFromFile, and WriteToFile methods.

OpenFile(Mode, Filename) : OBJECT;

By default, SIMPROCESS will look for either input or output files in


the directory of the active model. Either file can be placed elsewhere
as long as the path is specified in the OpenFile statement.
The following example opens a file (myoutput.dat) for output.
First, define a Model Attribute MyOutStream that is type Object.
Then, type the following statement in one of the expressions. It is the
best to put the statement in the Start Trial expression, so the file will
not be opened more than once.

Model.MyOutStream := OpenFile(“Output”,
“myoutput.dat”);

The next example opens a file (myinput.dat) for input and keeps
the return value in the model attribute MyInStream.

Model.MyInStream := OpenFile(“input”,
“myinput.dat”);

406 SIMPROCESS User’s Manual


System Method Examples

ReadFromFile reads the specified numbers of values from a file


that is open for input. The first argument is the input stream, from a
previous OpenFile call (the file must be open for input). From the
previous example, the model attribute, Model.MyInStream
would be the input stream. Following the stream argument is a list
of variables whose values are going to be read in from the file.
ReadFromFile(Input Stream, List of
variables);

In the input file, values should be separated by one or more white


spaces (i.e. space, tab, or new line characters). There is also a pre-
defined special delimiter “|” in SIMPROCESS. You can use “|” to
separate values. This delimiter is very useful to separate values
(strings) that contain any white space. You can surround the whole
string with a pair of “|” and ReadFromFile will read in whatever
is inbetween as one value.
The type of value to be read in is dependent on the specified variable
type. A mismatch will cause an error. The following table shows the
valid types for different value types. Integer and real are any valid
numerical values. ReadFromFile will either truncate a real value
to integer for an Integer type variable, or float an integer value to real
for a Real type variable. String is a sequence of characters. If spaces
are included, surround the whole string with “|”. Boolean can only
be either TRUE or FALSE. Any other value will cause an error.
Boolean values are not case sensitive.

Value Types in File


Variable Types Integer Real String Boolean
Integer OK Truncated Error Error
Real FLOATed OK Error Error
String OK OK OK OK
Boolean Error Error Error OK
Object Error Error Error Error

SIMPROCESS User’s Manual 407


Appendix E-System Methods and Examples

Example:
The input file contains:

|This is a test for ReadFromFile.|

123 67.89 TRUE


The expression reads as:

StrVal : STRING;
IntVal : INTEGER;
RealVal : REAL;
BoolVal : BOOLEAN;
ReadFromFile(Model.MyInStream, StrVal,
IntVal);
ReadFromFile(Model.MyInStream, RealVal,
BoolVal);
The expression will read in the following:
StrVal has the value “This is a test for
ReadFromFile.”.
IntVal has the value 123.
RealVal has the value 67.89.
BoolVal has the value TRUE.
WriteToFile writes the values of the specified variables to a file
that is open for output. The first argument is the output stream, that
is the returned value from a previously OpenFile call (must be open
for output). Following the stream argument is a list of variables whose
values are going to be written to a file.

WriteToFile(Output Stream, List of


variables);

The output values will be written to the file consecutively. Any kind
of format or spacing has to be output explicitly by the user. There are
two special characters that can be used in formatting outputs: “^” will
write a tab to the file, while “/” will advance to a new line. For these
to work correctly, they must be written individually and be surrounded
by “”.

408 SIMPROCESS User’s Manual


System Method Examples

For example:
Following the prior example of ReadFromFile, an expression has:
WriteToFile(Model.MyOutStream, StrVal, “/
”, IntVal, “^”);
WriteToFile(Model.MyOutStream, RealVal,
“^”, BoolVal);
Write to the file as:
This is a test for ReadFromFile.

123 67.89 TRUE

CloseFile closes the file the IOStream pointed to.

CloseFile(IOStream);
For example:

CloseFile(Model.MyOutStream);

CloseFile(Model.MyInStream);
Close the files myoutput.dat and myinput.dat, respectively.

Typically, you will place CloseFile in the End Trial Expression,


especially if you put OpenFile in the Start Trial Expression.

SIMPROCESS User’s Manual 409


Appendix E-System Methods and Examples

SIMPROCESS Color Table

0 Black (Default) 33 SandyBrown


1 White 34 Gold
2 Red 35 Goldenrod
3 Green 36 LightGrey
4 Blue 37 MediumGoldenrod
5 Yellow 38 DarkOliveGreen
6 Cyan 39 ForestGreen
7 Magenta 40 LimeGreen
8 DarkGrey 41 MediumForestGreen
9 Grey 42 MediumSpringGreen
10 DarkRed 43 PaleGreen
11 DarkGreen 44 SeaGreen
12 DarkBlue 45 YellowGreen
13 DarkYellow 46 DarkSlateGrey
14 DarkCyan 47 DimGrey
15 DarkMagenta 48 Khaki
16 Aquamarine 49 Maroon
17 MediumAquamarine 50 Orange
18 CadetBlue 51 Orchid
19 CornflowerBlue 52 DarkOrchid
20 DarkSlateBlue 53 Pink
21 LightBlue 54 Plum
22 LightSteelBlue 55 IndianRed
23 MediumBlue 56 OrangeRed
24 MediumSlateBlue 57 VioletRed
25 MidnightBlue 58 Sienna
26 NavyBlue 59 Tan
27 SkyBlue 60 Turquoise
28 SlateBlue 61 DarkTurquoise
29 SteelBlue 62 Violet
30 Coral 63 Wheat
31 Firebrick 64 GreenYellow
32 Brown

410 SIMPROCESS User’s Manual


APPENDIX F

Simulation Results File

The Simulation Results file is generated from the File menu. Select
File/Export/Simulation Results to open the Save Statistics dialog box.
The Simulation Results file will, by default have a .xpt file extension
and be saved to the current model directory. This file is tab-delimited,
and can be opened using a text editor or spreadsheet.

The file will contain the complete statistical measures corresponding


to the reports selected for the current model. This file give you raw
statistical data that is displayed in the Standard and Custom Reports,
in a standard format that can be opened by many different applications.

SIMPROCESS User’s Manual 411


Appendix G- External Event Files

Format of the Simulation Results File


Each line of the exported simulation results file is a statistic recorded
for objects such as Entity Types, Activities, or Resources. Each record
contains the following fields or columns:

Owner Type
This is the type of the object that owns this statistic record. The four
types are:

• Entity: representing an Entity Type


• Activity: representing an Activity
• Resource: representing a Resource
• TimeStamp: representing a Time Stamp
• Attribute: representing an Attribute

Owner Name
This is the full hierarchical name of the specific object that owns this
statistic record.

Name
This is the name of the specific object that owns this statistic record.

Stat Type
This is the type of statistic displayed. Contained in the third column
from the left, the Stat Type is an abbreviation for the name of the
performance measure whose parameters follow to the right. See
Table 5, “Simulation Results - Stat Types,” on page 414 for a complete
description of the types of statistics.

412 SIMPROCESS User’s Manual


Appendix G-External Event Files

Replication
This number is the replication that the statistic was collected from.
Any number, 1 or greater, refers to a specific replication.

If the replication number is 0, the statistics are sum of all replications.


An -1 means that this statistic is the average of all replications.

Minimum
This is the smallest value that has been recorded for this statistic.

Maximum
This is the largest value that has been recorded for this statistic.

Sum
It is the total of all observed values for the statistic (i.e. Xi), if this is
observation based.

For time weighted, it is the total of each observed value multiplied by


the time that this value has persisted in (i.e. Xi * ∆T).

Sum of Squares
It is the summation of the square of each observed values (i.e. ∑(Xi2)),
if this is observation based.

For time weighted, it is the summation of the square of each observed


value multiplied by the time that this value has persisted in (i.e.
∑(Xi*∆T)2).

SIMPROCESS User’s Manual 413


Appendix G- External Event Files

Count
This is the number of observations recorded when the statistic was
collected.

Average
This is the average of the statistic.

Std Deviation
This is the standard deviation of the statistic.

TABLE 5. Simulation Results - Stat Types

Type of
Labels Statistics Descriptions
Entities :
tokendelay Observation Total cycle time (i.e. sum
based of wait, hold, and pro-
cess)
tokenwaitdelay Observation Time waiting for avail-
based able resource
tokenholddelay Observation Time waiting for condi-
based tion to be reached
tokenprocessdelay Observation Time processing (i.e. at
based specified duration)
tokenlevel Time-weighted Number of entities in
system
tokenwaitlevel Time-weighted Number of entities wait-
ing for available resource
tokenholdlevel Time-weighted Number of entities wait-
ing for condition to be
reached

414 SIMPROCESS User’s Manual


Appendix G-External Event Files

TABLE 5. Simulation Results - Stat Types

Type of
Labels Statistics Descriptions
tokenprocesslevel Time-weighted Number of entities in
process (i.e. at duration)
tokentotalborn Only the last Number of entities being
value is generated
recorded
tokentotalalive Only the last Number of entities still
value is residing in the system
recorded
tokentotalkilled Only the last Number of entities
value is detroyed
recorded
UDV.delay Observation Statistic of the specified
based attribute
UDV.level Time-weighted Statistic of the specified
attribute
Resources :
resrccap Time-weighted Units of resources (i.e.
capacity)
resrcidle Time-weighted Units of idle resources
resrcbusy Time-weighted Units of busy resources
resrcmaintenance Time-weighted Units of resources not
available (Unplanned
Downtime)
resrcdown Time-weighted Units of resources not
available (Planned
Downtime)
resrcreserved Time-weighted Units of resevered
resources

SIMPROCESS User’s Manual 415


Appendix G- External Event Files

TABLE 5. Simulation Results - Stat Types

Type of
Labels Statistics Descriptions
byactivitybusy.level Time-weighted Units of busy resources
at the specified activity
Activities :
tokentotalin Only the last Number of entities
value is entered this activity
recorded
tokentotalhere Only the last Number of entities still
value is residing in this activity
recorded
tokentotalout Only the last Number of entities that
value is have left this activity
recorded
tokendelay Observation Total cycle time (i.e. sum
based of wait, hold, and pro-
cess) at this activity
tokenwaitdelay Observation Time waiting for avail-
based able resource at this
activity
tokenholddelay Observation Time waiting for condi-
based tion to be reached at this
activity
tokenprocessdelay Observation Time processing entities
based (i.e. in the specified dura-
tions) at this activity
bytoken.delay Observation Total cycle time (i.e. sum
based of wait, hold, and pro-
cess) for the specified
entity type at this activity

416 SIMPROCESS User’s Manual


Appendix G-External Event Files

TABLE 5. Simulation Results - Stat Types

Type of
Labels Statistics Descriptions
bytokenwait.delay Observation Time waiting for avail-
based able resource for the
specified entity type at
this activity
bytokenhold.delay Observation Time waiting for condi-
based tion to be reached for the
specified entity type at
this activity
bytokenprocess.delay Observation Time processing entities
based (i.e. in the specified dura-
tions) for the specified
entity type at this activity
tokenlevel Time-weighted Number of entities at this
activity
tokenwaitlevel Time-weighted Number of entities wait-
ing for available resource
at this activity
tokenholdlevel Time-weighted Number of entities wait-
ing for condition to be
reached at this activity
tokenprocesslevel Time-weighted Number of entities in
process (i.e.at duration)
at this activity
bytoken.level Time-weighted Number of entities of the
specified type at this
activity
bytokenwait.level Time-weighted Number of entities of the
specified type waiting for
available resource at this
activity

SIMPROCESS User’s Manual 417


Appendix G- External Event Files

TABLE 5. Simulation Results - Stat Types

Type of
Labels Statistics Descriptions
bytokenhold.level Time-weighted Number of entities of
specified type waiting for
condition to be reached at
this activity
bytokenprocess.level Time-weighted Number of entities of the
specified type in process
(i.e.at duration) at this
activity
UDV.delay Observation Statistic of the specified
based attribute
UDV.level Time-weighted Statistic of the specified
attribute
Time Stamps :
tokendelay Observation Time elapsed between
based Time Stamps

418 SIMPROCESS User’s Manual


APPENDIX G

External Event Files

General Rules for Event Files


External event files define entity generation events. If event files are
referred to in a Generate activity, SIMPROCESS reads the file at the
beginning of a simulation run and schedules the generation of Entities
as defined in the file.

Each record (line) in an event file must adhere to certain syntax rules,
which are defined in the following section. Records must also adhere
to these general rules:

• Each record in the file defines one generation event. There


is no way to continue a record on the following line.
• Records must be ordered by entity create time.
SIMPROCESS will not generate entities for any event record
whose entity create time is earlier than that of the previously
processed event. For example, in the following sequence of
creation dates:

1. 01/02/1995
2. 01/04/1995
3. 09/11/1994

SIMPROCESS User’s Manual 419


Appendix F- External Event Files

4. 10/30/1994
5. 01/12/1995

Records 1 and 2 are processed. Record 3 is bypassed, because its


creation date is earlier than that of record 2. Record 4 is also bypassed,
because its date is earlier than that of record 2, the last record for which
entities were generated.

• Entity create time must be the first field in the event record.
The remaining keyword parameters may be entered in any
order.
• The entity type you specify in an event record must be defined
to the model before it can be generated.

However, you can refer to a new type in the event file and select the
Selected in the list option in the External File Schedule dialog box.
SIMPROCESS will automatically add it to the model.

• Any literal values with imbedded blanks must be enclosed


in quotation marks (" ") when included in event records.
• Real numbers must include a decimal point.
• Records beginning with an asterisk (*) are considered
comments and are ignored by SIMPROCESS.

420 SIMPROCESS User’s Manual


Appendix F-External Event Files

Event Record Description


In the following syntax diagram:

• Items in BOLD face must be entered exactly as shown.


• Items in italic face represent variables for which you must
substitute a value.
• Items enclosed in brackets ([]) are optional.

Syntax
[+]time [QUANTITY:value] [ENTITY: type] [ATTR: name=value...]

Parameters

+
Indicates that the ensuing value is to be added to the time of the last
event processed.

time
The time at which entities are to be created for this event record.
Specify either a specific date and time or a relative value. Use the
following format for a specific date and time:

mm/dd/yyyy hh:mm:ss

Where, for example, January 15, 1997, at noon is represented as:

01/15/1997 12:00:00

You can enter either real numbers or integers to indicate relative


values: real numbers are assumed to refer to hours, while integers refer
to days. Forty-eight hours after the start of simulation is shown as:

48.0

SIMPROCESS User’s Manual 421


Appendix F- External Event Files

Which is the same as two days after the start of the simulation:

Forty-eight hours after the previous entity generation event:

+48.0 or +48:00 or +2

Notes on specifying event time:

• You can omit seconds when specifying the time.


SIMPROCESS assumes a zero for the omitted parameter.
• Do not specify a time in hh:mm without a date, unless you
precede it with a plus sign (+). Although SIMPROCESS will
accept this value, its interpretation is unpredictable. For
example, acceptable formats are:

48.0 48 hours after the start of simulation


+48:00 48 hours after previous generation event

• SIMPROCESS will accept a 2-digit value for the year, It


assumes that values over 49 refer to years in the 20th century,
and values under 50 refer to the 21st century.

QUANTITY:value
The number of entities to generate at the entity generation event. Enter
a number in place of value.

If QUANTITY is omitted, SIMPROCESS uses the default Quantity


value in the Generate Activity Properties dialog box.

ENTITY: type
The type of entity to generate.

For Type, enter an entity type name. If the name includes blanks,
enclose the entire string in quotes.

422 SIMPROCESS User’s Manual


Appendix F-External Event Files

If ENTITY is not specified, SIMPROCESS uses the default Entity


value in the Generate Activity Properties dialog box.

ATTR: name=value...
Assigns values to globally defined attributes for entity instances.

You can assign values to any number of attributes in the VARS


argument.

The value you specify must be consistent with the data type defined
for the attribute.

Note that if you specify an attribute name that has not been defined
in your model, you can select the Selected in the list option in the
External File Schedule dialog box. SIMPROCESS will add it to the
model.

If a record contains any syntax error or undefined model element


(without using Selected in the list option), the entire event record is
considered invalid and is bypassed.

SIMPROCESS User’s Manual 423


Appendix F- External Event Files

Examples
1. Generate GreenDot entities at 3 a.m. on January 1, 1995. Generate the
number of entities defined in the Generate Activity Properties dialog box.

01/01/1995 03:00:00 ENTITY:GreenDot

2. Generate six RedDot entities 7 hours after the simulation begins.

7.0 QUANTITY:6 ENTITY:RedDot

3. Generate four RedDot entities 7 hours after the previous entity generation.

+7:00 QUANTITY:4 ENTITY:RedDot

4. Generate a Truck entity at 2 a.m. on January 3, 1995. Assign a value of 50,000


to user attribute Weight, and the string "Yo, Heavy" to user attribute Tag:

01/03/1995 2:00 ENTITY:Truck


ATTR:Weight=50000 Tag="Yo, Heavy"

5. Generate more Truck entities 4 hours after the previous event. Generate
the number of entities defined in the Generate Activity
Properties dialog box:

+4.0 ENTITY:Truck

6. Generate two RedDot entities at 4 a.m. on January 3, 1995:

01/03/1995 04:00:00 ENTITY:RedDot QUANTITY:2

Notes on the Examples


If the examples are processed during a simulation which begins at midnight,
January 1, 1995, the events occur at the following times:

1. January 1, 1995, 3:00 a.m.


2. January 1, 1995, 7:00 a.m.
3. January 1, 1995, 2:00 p.m. (14:00)
4. January 3, 1995, 2:00 a.m.
5. January 3, 1995, 6:00 a.m.
6. Never. The specified time is earlier than the time of the previous
event, so the record is discarded.

424 SIMPROCESS User’s Manual


Index

Symbols Unbatch 105


.doc extension 16, 17 using activity attributes in an expression 239
Activity Properties dialog fields 56–60
A Activity-Based Costing 164–176
activities Cost Calculations 175
adding to model 55–56 Cost Periods 170
Assemble 100–102 Reports 177–179
Assign 111–112, 230 Resource Costs 172–174
Batch 103–104 adding objects to a model 55–56
See also Batch Activity animation
Batch, system attributes of 218 changing during simulation 82
Branch 116–119 settings 82
Comment (dialog field) 58 Application
commenting 58 Default Parameter Setting 204
connecting 52 Assemble Activity 100–102
definition of 9, 50, 51 batch component entities 101
Delay 51 Assemble component entities pad 100
delay time, defining 57, 65–67 Assign Activity 111–112, 230
displaying name under icon 58 Entity Priority 111
Document command 59 User Defined Attributes 111
documenting 59 Attribute Value Initialization 246
entity processing time 57 Attributes
Gate 106–108 Model Parameter 224
entity release policies 106 Model Paramters 81
gating policies 106 System 218
Generate 264–279 User Defined 220
Generate. See Generate Activity Automatic saving 22
icons, choosing 58
B
icons, labeling 59
icons, showing name under 58 Background Graphics 160
icons, types 58 Batch Activity 103–104
linking 52 Batched Entity 104
Local Attributes 228 Maximum Batch Size 104
Name field 58 maximum number of entities 104
Properties dialog 56–60 Maximum Wait Time 104
removing from model 56 Minimum Batch Size 104
resources needed by, defining 57 parent entity 104
Synchronize 109 Batched Entity, of Batch activity 104
Text Block 60 Both must be reached, Generate schedule field 267
time required to perform 65 bottlenecks
Transform 113–115 sources of 52

SIMPROCESS User’s Manual 425


Index

Branch Activity 116–119 Commit to Database 45


Branch Connectors 119 database graphs 319
C Database Queries 317
database reports 319
calendar dates Date field in calendar events 274
effect on simulation 78 Delay Activity 51, 65, 65–67
calendar event. See events, calendar
Delay Duration
calendar schedule 267
for Assemble activities 102
changing entity type 113
for Batch activities 104
Clipboard 328
for Unbatch activities 105
Color palette 327
Delay Time field 65
Comment field 57, 58
delay time, specifying 65–67
Commit to Database 312
deleting objects 56
Connectors
Display Error Alerts 350
and Branch Activities 120
Display Error Alerts Field 343
definition of 9
Displaying ABC Reports 177
connectors
Dispose Activity 68
Auto Label 120
Distribution
Branch Activities and 116, 120
Beta 375
changing attributes 119
Erlang 376
defined 52
Exponential 373
definition of 9
Gamma 374
names, displaying 119
Geometric 382
Properties dialog box 119
Hyper Exponential 380
converting entities from one type to another 113
Hyperbolic 383
Copy Activity 99
Lognormal 378
Copy Attributes, option of Transform activity 114–
Normal 371
115 Poisson 379
Count Limit, of entity release 267
Triangular 372
Create Process/Activity From Menu 206 Uniform 370
cycle time
Uniform Integer 381
definition of 9
Weibull 377
Dispose activity and 68
distributions
ending 68
viewing graphically 63
reports 188, 192
Document command
cyclical schedules 269–272
template for 59
defining 269–272
text editor for 59
See also sequence of events
Downtime Schedule 280
types 269
Duration
D for Assemble activities 102
Database for Batch activities 104

426 SIMPROCESS User’s Manual


Index

Duration field 272 generation schedule in event file 276


E none generated, reasons for 264
Recorder 296
Edit Element Parameters (Edit Ele Parm) 204 Time Stamps vs. Recorder Objects 292
Edit Library Parameters (Edit Lib Parms) 206 tracking arrival and departure times 296
editor, specifying 59 using entity attributes in an expresssion 238
Entities
Entities, accumulating 106
adding 69–72
Entities, batching. See Batch Activity
assembling 100–102
Entities, limiting number in Dispose 68
branching on priority 117
entity count 186
branching on type of 117
event cycles
changing type of (Transform Activity) 113
Repeat Sequence 271
combining 100–102
repeating 271
coordinating release of 109
scheduling of 275–276
copying 71
types 269–270
creation of 51
event files 276
cycle time 68
all defined option 278
defined 51
checking syntax of 277
defining 62, 69–72
entity types, selecting 278
deleting 72
identifying to SIMPROCESS 277
destruction of 68, 105
new entities specified in 278
disposal of 68, 105
Event Logs 291, 292, 296
duplicate (Copy Activity) 124
Recorders 296
Generate activity and 62
Time Stamps 291
icon, selecting 69, 70, 71
events
input to Gate Activity 106
calendar 267–276
instance (defined) 69
Date field 274
origination of 51
trigger point 274
parent entities 103, 104
changing sequence of 270–271
priority 70, 117, 121
Count Limit 273
changing 111
Duration 272
in Assign Activity 111
duration of 272–273
of transformed entity 115
inactive periods 276
released by Gate Activity 106
Move 270
removing 72
moving 270
reports 185
No event 276
Transform Activity and 113
number of times executed 271
type (defined) 69
Repeat Event 273
entities
repeating 271
cyclical generation 269
scheduling of 276
generation 264
sequence of 270

SIMPROCESS User’s Manual 427


Index

single event 276 active period of entity release 264


upwards option 271 Both must be reached 267
Experiment Manager 339 calendar schedule, defining 267
Database Tables 340 complex, defining 264–279
Define Experiments 45, 340 Count Limit 267
Experiment Errors 350 cyclical schedule, defining 269–272
Experiment Operation 349 Daily schedule 268
Experiment Setup Form 342 Date schedule 268
Experiment Trace 349 Define Entity 62
Generating Standard Reports 353 defining 61–64
Interacting With Experiments 352 defining complex 264–279
Run All Experiments 46, 348 entities generated 61–63, 266
Run Selected Experiments 46, 348 entity release begin and end dates 264
Run Specific Experiment 46, 348 events. See sequence of events
Experiments external event file 276
Defining Experiments 340 inactive periods 276
Entering Design Information 344 Interval 62–64, 267
Entering Experiment Information 342 limiting number of entities generated 267
Entering Model Information 343 Monthly schedule item 268
Entering Model Parameter Information 345 periodic schedule, defining 266
Entering Process Alternative Information 346 Quantity 62
Entering Scenario Information 345 Release Begin 264
Running Experiments 348 release dates and simulation dates 264
Starting Experiments 348 Release End 264
Expressions 234–256 schedule
Language Basics 234 calendar 268
Using Attributes in 237 Daily 268
external data, using 276 Date 268
external files 276 defaults 266
F file input 276
number of entities at each release 266
file, input to Generate activity
Use default 266
See event files
Weekly 268
G schedule items
Gate Activity 106–108 adding 265
entity release policies 106 Both must be reached 267
gating policies 106 copying 266
Threshold Release 107 Count 266
Trigger Release Quantity 108 Count Limit 267
used as a buffer 106 defining 265–269
Generate Activity 55, 61–64, 264–279 deleting 266

428 SIMPROCESS User’s Manual


Index

editing 265 L
entity categories 266 Launch Database Application 45, 314, 321, 340
Interval 267 Library
limiting number of entities 267 Concepts 200
modifying 265 Default Parameter Settings 204
Monthly 268 Management 202
periodic 266 limiting entities in Dispose activity 68
removing 266 Local Attributes
Yearly 268 defining 228
Summary 278
M
time between entity generation events 62–64,
267 Manage Results form 314, 321
Weekly schdedule 268 Maximum Batch Size, of Batch activity 104
Yearly schedule item 268 Maximum Entity Count, Dispose activity
Global Attributes parameter 68
defining 221 Maximum Wait Time, of Batch activity 104
Minimum Batch Size, of Batch activity 104
H
model
help, getting adding objects to 55–56
help topics 47 checking for errors 81
online help 60 components 50–52
hierarchical models 50–51 hierarchical structure 50–51, 52
hierarchy, ascending 82 removing objects from 56
historical data selecting objects in 56
See also event files using Model Attributes in an expression 239
historical data, using 276 Verify Model 81
Hold pad, of Gate activity 106 verifying 81
Hyperexponential Distribution 380 Model Attributes
I defined 220
Icon dialog field 58 using in an expression 239
icons model design 313
activity icons 58 Model Parameter 224
adding text to 59–60 Model Parameters 81
entities, listing 71 Move command, events 270–271
labeling 59–60 moving up a level in hierarchy 82
showing object name under 58 N
Image Editor 328, 329 Name (dialog field) 58
Initializing attribute values 246 naming
Integer Distribution 381 activities 58
interval between entity generations 62 no entities generated, reasons 264
Interval dialog field 62 No Event schedule 276

SIMPROCESS User’s Manual 429


Index

Nod file 59 definition of 10, 50


Number of Pads, in Synchronize activity 109 modifying 74
O sub-processes 74–76
activating 75
objects active 75
adding to draw space 55–56 alternatives 75
deleting 56
connecting to higher levels 76
removing from draw space 56
copying 75
selecting several 56
deleting 75
Output Entity, Assemble activity 101 modifying 75
P moving up a level 76
pads Q
Assemble and Release (Assemble Activity) 100
Queue
connecting input and output 76
Gate activity 106
connecting levels in model hierarchy 75
hold for condition 99
defined 52
wait for resource 52, 99
definition of 12
Hold and Trigger pads (Gate Activity) 106 R
input pads 109 random distributions
number of in Synchronize activity 109 specifying 62–64
Synchronize Activity 109 random number stream 64
Palette bar Recorder Objects
contents 55 output file (recorder.msg) 296
using 55–56 Recorders
palette icons 212 Definition of 296
Parameter Setting in Library 204 Release Begin 264, 267
parent entities 103 Release End 264, 267
parent entity 104 Release pad (of Assemble) 100
PDF manuals 47 removing objects 56
periodic schedule 266 Repeat Sequence, events 271
priority Reports
of transformed entity 115 ABC 177
priority, of entities 70, 111 activities 191–194
branching on 117 attributes 190
probability Costs 177
branching on 117 default 182
Probability distributions 303 entities 185–188
processes resources 188–190
and model hierarchy 50–51 Standard 182
connecting sub-processes 76 Resources
defining 74–76 activities and 51

430 SIMPROCESS User’s Manual


Index

adding 73 changing animation options 82


allocation policy 137 duration of 68, 77
availability of 52 End Date 77
defining 73 ending 68
definition of 11 length of, in calendar time 77
Downtime Schedule 280–290 Max Count and 68
entities and 51 options, run time 42, 77
variable usage 232 Pause 82
root image 334 pausing 82
Run Settings 40, 77 ratio of real time to simulation time 41
running a simulation 81 restart after pause 82
Running a Simulation with Model Parameters 81 resuming after pause 82
S run dates 77
run time settings 42, 77
scenario 314
running 77–83
Schedule of events 270
slowing down 41
schedule, of Generate activity 265
Start Date 77
Selected Field 343
starting 81
sequence of events
stopping 68
Both must be reached 273
stopping temporarily 82
calendar 273
Simulation (menu item) 82
entity generation start time 274
Simulation Output
entity generation, start of 275
Display ABC Reports 177
start time 274
Display Standard Report 182
definition
single event 276
periodic 272–273
Standard Output Report 182
Both must be reached 273
StatFit 46, 301
start time 272
Statistical Distributions 369
Set Entity Priority To, on Assign activity 111
statistical distributions 308
Set Entity User Attributes, on Assign activity 112
specifying 62–64
Show Name checkbox 58
Statistical Output
Show Text checkbox 60
Define Global Statistics Collection 44
SimDraw 46
Define Real-Time Plots 44
Simluation Output
Display ABC Reports 45
Display ABC Reports 174
Display Standard Report 45, 83
simulation
Entity Statistics 185
animation
Process/Activity Statistics 191
options 82
Resource Statisitcs 188
settings 82
Simlation Results File 195
showing entities 70
Time Stamps 294
slowing 41
using spreadsheet 83

SIMPROCESS User’s Manual 431


Index

Statistical Simulation Experiment 306–307 Trigger Release Quantity, of Gate activity 108
Experimental Data 306 Triggered Release, Gate activity policy 106, 108
Mean-Value Analysis 306 U
Stream 64
Style palette 327 Unbatch Activity 105, 105
Sub-Processes 74–76 Use default 266
User Defined Attributes 220
definition of 11
and Assign Activity 111, 230
See also processes, sub-processes
assigning values to 111, 230
Synchronize Activity 109
Branch On 117
System Attributes 218
copying in Transform activity 115
T globally defining 221–227
Tabular Distributions initializing values 246
Procedures 92 locally defining 228–229
Template User Defined Distributions
Under Definepull down menu 206 Procedures 90
Template file directory 59 Two methods of creation 90
template, for Document file 59 User Defined Functions 257
Templates V
Defining and Editing Templates 202
Verify Model command 81
Editing 202
View function 63
Text Block 60
viewing higher levels 82
Show Text 60
Threshold Quantity, of Gate activity 107
Threshold Release, option of Gate activity 107
Time Series Report 186
Time Stamps
Assembled Entities 295
Batched 295
Definition of 291
passing to an output entity 295
Transformed Entities 295
Viewing Reports 294
Transform Activity 113–115
Copy Attributes 114–115
Number of Entities Output 113
Output Entity Type 113
Trigger Assemble, option of Assemble
activity 100, 101
Trigger pad, of Gate activity 106
trigger point, of calendar event 274, 275–276

432 SIMPROCESS User’s Manual

Das könnte Ihnen auch gefallen