JACK YURKIEWICZ, Feature Editor, Lubin School of Business, Pace University
Robert Marsh (Michigan State University) gives us his review of Extend, a powerful simulation program. A long-time user of the software, Prof. Marsh has used the product for research and in the classroom. Extend users who would like to contact him about the software can e-mail him at the address below.
A Review of Extendby Robert Marsh, Department of Management, Michigan State University
Extend is a graphically based continuous and discrete events simulation package for Windows and Macintosh computers. Its publisher is Imagine That, Inc. of San Jose, California. Extend is one of several relatively new products on the market that allows for the design and execution of simulation models in a visually appealing and intuitive graphical environment. This allows for rapid development of models without mastering the intricacies of programming code.
I have found Extend to be suitable for advanced research as well as being an effective teaching tool for undergraduate operations management courses. Its overall layout is quite logical and easy to understand, and it offers some very nice features to the simulation researcher. However, as invariably happens, I have experienced some problems with the product, as will be discussed later.
Extend can be thought of in one respect as an object-oriented program. It employs "blocks," represented by icons, that contain both pre-defined and user-defined data, as well as execution instructions. Each block can be accessed on the basic user level, where data are entered or parameters set, or on the structural level, where changes can be made to the underlying code to significantly alter the behavior of a block. Examples of blocks include tangible items, such as queues, activities (process delays) or machines, as well as less tangible entities, such as input random distributions.
Blocks within Extend are classified in libraries according to their functionality. The basic libraries include Discrete Events, Generic (continuous) and Plotter (for data recording and reporting). Add-on libraries from Imagine That include Manufacturing and Business Process Reengineering. Third-party suppliers have made additional libraries available for neural networks and further refinements to the basic blocks. All libraries I have used are fairly extensive and have numerous very creative blocks.
Extend's capabilities are best shown by demonstration. Suppose we have some jobs being introduced to a shop with both parallel and serial processors. The first step is to define the interarrival times (IAT) of incoming jobs. This can be done with the Generator block in Extend. As shown in Figure 1, the user dialog window for the block (accessed by double clicking) allows the selection of the IAT distribution from a standard list. In addition, the "General" distribution table allows the entry of empirical IAT data.
Building a model in Extend involves simply pointing and clicking to connect the various blocks, as shown in Figure 2. Note that there are two parallel processors and one serial, each with their own queue. Queues can be FIFO, Priority, based on an item's attribute or custom designed, such as for a dynamic slack rule.
Processing times can be specified as a constant in the Activity block or input as a variable value, as shown with the "Rand" Delay Time block. This block, from the Generic library, provides the same choice of distributions as the Generation block. Additionally, an attribute of the item can be designated as the processing time with a Set Attribute block as shown in Figure 3. An Activity-Attribute block is then used as the processor with the proper attribute noted in its dialog window. The delay will then be the value of the attribute.
In addition to what could be thought of as "standard" job shop blocks (processors and queues), Extend also provides other functions. Figure 4 shows that, following the third processor, the items are to be moved by AGV to exit the shop.
The speed and/or time of transit for the AGV can be specified in its dialog window. This block requires the addition of an upstream queue to provide a waiting station while the AGV is in transit.
As models grow in size, blocks can be combined and collapsed into hierarchical blocks as defined by the user. This acts to combine functional areas of the model as well as reduce its size on the screen, for increased readability. This also allows the user to easily duplicate various sub-parts of the model and copy them to other areas. A hierarchical block can even be added to an existing library or into a new user-created library. The standard cut/copy and paste or duplicate commands work on any portion of the model.
It is relatively easy to report standard performance measures with Extend. For example, each queue block automatically records and reports mean and maximum queue length. A Plotter block can be attached to the "L" output connector to continuously record the queue's length. Similarly, time in system or job tardiness can be easily derived.
I have found that about 95% of all that I need for modeling can be obtained from Extend's pre-packaged library blocks. The libraries are completely sufficient for undergraduate or MBA demonstrations or assignments. However, in doing more in-depth research problems I have encountered situations where some customization of existing blocks is necessary. This has ranged from modifying a queue for special prioritizing to introducing fairly complex routing rules.
The underlying code of Extend is written in ModL, which is very much like C. In fact, in lieu of previous experience, a text on C is highly recommended and probably sufficient if changes are made to any block's code. The code of each block is easily accessed and can be modified at will; there is no write protection. However, one must take care that changes made are saved to a new block, rather than the existing one, as all such changes are posted to the library from which the block originates.
Revising the code, assuming some knowledge of C, is fairly straightforward, up to a point. What becomes more difficult is assuring that you have installed all the necessary "hooks" from the code to the block's icon. Extend executes with the blocks "calling" each other as needed. Progress in the model is marked by items passing through various blocks, adding, removing or revising attributes. Passage can be immediate, can be delayed (as with a processing delay) or can be a function of a job release rule, such as in a queue. This can get confusing, particularly when you have to assure that the code you've written is consistent with the block's dialog window information and its graphical representation. Although revising blocks' code is covered in the manual, not many examples are provided. More would be useful to help deal with what can be quite a shift in programming paradigm.
Another vexing problem is debugging models in which rather extensive revisions have been made to the blocks' code. Since, by design, the user is writing very little programming code, he or she is not likely to be very familiar with it. Therefore, when problems arise that cannot be solved by examining the graphical interface, they can be difficult to identify. I have struggled with such "bugs" for quite some time before they could be resolved. A code-based language, such as SIMAN or GPSS/H, is much more transparent, with all the code being written by the user. Thus there are minimal hidden surprises. With Extend, the graphical-code interface can be difficult to master, hence compounding problems of debugging. It should be emphasized, though, that such bugs are rare and most can be quickly found. Extend does have an adequate Trace feature, and any block's trace statements of information can be customized.
No doubt in response to academic requests, Imagine That has incorporated more statistical analysis and variance reduction techniques into recent releases of Extend. The model will allow you to record and clear statistics at points throughout the model's run, to eliminate initialization bias. Also, its ability to implement Common Random Numbers has been greatly improved. If a great deal of data is being generated, virtually any points within the model can be linked through reporting blocks to text files that will accumulate the information. Storage is limited only by hard disk size. Despite the added features, however, Extend still may not fulfill all the requirements of a demanding researcher. Some distributions, such as beta or Pearson types V and VI, are not available. And, as mentioned previously, customizing a model for special operating conditions can be tricky.
Technical support is available at no cost from Imagine That. This is without a doubt one of the strongest points of this package. Technical support is invariably prompt, courteous and, above all, highly competent. Questions that cannot be answered immediately and require some work by the staff are responded to as soon as possible. In some cases, the support staff has provided some custom code programming for particularly knotty problems, all as part of their service.
In summary, I feel Extend is a good package. It allows for the quick and intuitive building of models of essentially any configuration. While it may not satisfy the needs of all researchers and does some have some shortcomings, particularly when the code of blocks is being extensively revised, its strengths outweigh its weaknesses. Currently the Windows version substantially outperforms that for the Macintosh. However, a PowerPC Macintosh version is undergoing beta testing at this time and should be available by mid-1996. Imagine That expects that this version will provide a 8-10 fold increase in improvement over the current Mac version and will at least equal that of the Windows version. The Windows and Macintosh versions are completely compatible and can be interchanged with standard file exchange software. For installation, 8MB of RAM is recommended; 16MB is better. There is no effective limit on model size other than processor or hard disk memory. The list price for either version of Extend+ Manufacturing is $990 with academic pricing (50% discount) and site licenses available.
Robert Marsh, marsho1.@pilot.mse.edu, is a Ph.D. candidate in operations management in the Department of Management at Michigan State University. He is currently working on his dissertation, which involves the use of Extend to model shop floor information systems. He holds bachelor degrees in mechanical engineering and mathematics from the University of California and a MBA from Lake Superior State University. He has had extensive experience as an engineering and computer consultant in industry.
mentioned in this article,
contact the Managing Editor
If you are interested in writing a software review, please contact:
Dr. Jack Yurkiewicz