Micro Saint Sharp. Micro Saint Sharp is a general purpose discrete-event simulation and human performance modeling software tool developed by Alion Science and Technology. It is developed using C# and the .NET Framework. Micro Saint Sharp allows users to create discrete-event simulations as visual task networks with logic defined using the C# programming language.

Micro Saint Sharp uses a task network, a series of functions which decompose into tasks, to create stochastic models. Micro Saint Sharp has been used in the healthcare, manufacturing, supply chains, business process re-engineering, workstation design, call centers, transportation, and command and control areas.  It has also been used extensively to simulate human performance and workload.

History
Micro SAINT began as a "micro" computer implementation of the SAINT (Systems Analysis of Integrated Networks of Tasks) language in the 1980s.   SAINT was a FORTRAN based discrete event simulation language developed in the 1970s. SAINT evolved from 1) task analysis and 2) Monte Carlo simulation of operator performance under workload stress as represented by Siegel and Wolf. Micro SAINT was originally a DOS application developed by Micro Analysis and Design, Inc. (MA&D) and was first released in 1985. Since then the tool has undergone many changes and enhancements. Micro Saint Sharp's intuitive graphical user interface and flow chart approach to modeling make it a tool that can be used by generalists as well as simulation experts. In 2003 Micro SAINT was completely redesigned by MA&D to take advantage of the C# programming language and Microsoft .NET environment. This allowed it to be faster and more modular. The tool was renamed Micro Saint Sharp.

Discrete event simulation in Micro Saint Sharp
Micro Saint Sharp models contain a task network called a Network Diagram. The network diagram contains a series of tasks connected by paths which determine control flow. System objects called entities flow through the system to create a simulation. Micro Saint Sharp also includes more low level features such as global variables and subroutines called Functions.

Tasks
The task node is the primary element driving the simulation's outcome. Task nodes simulate system behavior by allowing programmer specified effects, task duration, and sequences. Task Effects are programmer-specified C# expressions where programmers can manipulate variables and data structures when a task is invoked. Task duration can be specified by the programmer as a specific value, through use of one of the 31 built-in probability distributions, or using a C# expression. Control flow and sequencing can also be specified by the programmer.

Entities
Entities are dynamic objects which arrive into the system and flow through the task network. Entities flow from one task to the next based on the task's path logic. When an entity enters a task, the task's effects are triggered. When the task concludes, the entity moves to the next task. One entity is generated by default at the beginning of the simulation. More entities can be generated at any point in the simulation based on programmer specified logic. When all entities reach the end node or are destroyed, the simulation concludes. Entities can be viewed as they flow through the system and where queues form.

Events
Events are occurrences that happen in an instant of simulated time within Micro Saint Sharp that can change the global state of the system. This can be the arrival or departure of an entity, the completion of a task, or some other occurrence. The events are stored in a master event log (called the Event Queue) which captures every event that will happen and the simulated time that the event occurred. Due to the stochastic nature of discrete-event simulation, an event will often trigger the generation of a random variate to determine the next time that same event will occur. Thus, as events occur, in the simulation, the event log is altered.

Flow sequencing
Once a task concludes, the invoking entity moves to another node which is directly connected to the current node in the task network. Nodes can connect to any number of other tasks, so Micro Saint Sharp provides a number of sequencing options to determine the task to which the entity moves.
 Probabilistic type paths allows the programmer to specify a percentage chance for an entity to be moved adjacent nodes by inputting probabilities or expressions that are evaluated for each node.
 Tactical type paths allows the programmer to use C# predicates to determine the sequencing of an entity to each adjacent node. If more than one expression evaluates to true, the entity will follow the first path with a true expression.
 Multiple type paths behaves exactly like tactical sequencing, but will path entities to all adjacent nodes where the expression evaluates to true.

Variables and functions
Micro Saint Sharp has a number of global variables used by the system throughout a simulation. Micro Saint Sharp provides the public global variable Clock which tracks the simulation's current time. Micro Saint Sharp also has private variables. Micro Saint Sharp allows the modeler to create custom global variables which can be accessed and modified in any task node. Variables can be of any type native to C#, but the software provides a list of suggested variable types including C# primitive data types and basic data structures.  Micro Saint Sharp also provides the programmer with the functionality to create globally accessible subroutines called functions. Functions work as C# functions and can specify parameters, manipulate data, and return data.

2D and 3D animation
Micro Saint Sharp has three different visual representations of the model that are available to users.  The first representation of the process is a flow diagram, or Task Network – users can visually track entities as they flow through the system, and can immediately identify where bottlenecks and queues are building up.  The second visual representation available is a two dimensional animation (Animator) which can show moving objects over floor plans, maps, photos or other 2D images.  Animator also provides the capability for charts, graphs, and text to all be displayed while the model is executing on one screen.  The third visual representation that can be developed is a three dimensional animation (Animator3D).  This gives a realistic picture of the modeled process with moving images. Animator3D includes features such as zooming in/out, rotating, panning around, and saving camera views.  Users can decide the level of detail they want to include.  Micro Saint Sharp also allows user to view individual pieces of a model with the use of dynamic real-time charting.  Over 20 different charts can be saved as files or printed out for analysis.

Optimization
OptTek's OptQuest optimization software is included in the Gold version of Micro Saint Sharp. OptQuest, through a sophisticated optimization technique, finds the right combination of variables that produces the best results possible. OptQuest works with Micro Saint Sharp by sharing variables. Users can directly choose the variables that will have an effect on the Micro Saint Sharp model results. This includes every aspect of an optimization model including constraints, decision variables, and the optimization problem itself.

External Communication
Micro Saint Sharp provides the capability for your model to communicate with files, databases, and web sites. There are currently six types of communication protocols that are used to customize protocols for models: (1) ADO.NET, (2) Console Command-line interface, (3) Microsoft Excel, (4) Network socket, (5) Text file, and (6) World Wide Web. The ADO.NET protocol connects to a database or any data source that .NET supports through OLE
(Object Linking and Embedding) or ODBC (Open Database Connectivity).  The console protocol allows Micro Saint Sharp to interact with command line applications. The Excel protocol connects to a Microsoft Excel® spreadsheet and allows the modeler the capability to do basic reading and writing of cells in workbooks. The Socket protocol connects to an address on the internet for low level communication. The Text protocol opens a file located on your computer for reading and writing. The Web protocol reads data from a URL.

Tools based on the Micro Saint Sharp engine
Micro Saint Sharp is a general purpose simulation tool.  However, several customized tools have been developed that use Micro Saint Sharp as the underlying simulation engine. Each tool was designed for a specific purpose. The table below lists some of the Micro Saint Sharp based tools that have been developed.

References

See also 
List of discrete event simulation software
Discrete-event simulation
IMPRINT (Improved Performance Research Integration Tool)
List of computer simulation software

Simulation software