Object-oriented software implementation for manufacturing systems.
Sunday, March 1 1998
1. Introduction
Traditional simulation approaches do not provide for explicit representation of data, information, knowledge, and decisions (control) in a simulation model. A modeling formalism has been proposed [1,2] to overcome this shortcoming of conventional modeling approaches. There is a natural link between the developed formalism and the object-oriented programming (OOP) approach. The work presented in this paper is an effort to show how to integrate a science base for simulation, object-oriented modeling, and artificial intelligence techniques under a unified framework. The first two sections give a brief overview of the proposed discrete event simulation formalism and object-oriented programming concepts. The reader should refer to [1] and [3], respectively, for detailed information on the material introduced in these two sections. The next section gives an overview of the software implementation of these concepts in the Smalltalk language, explaining how the constructs of the formalism are used to define software object classes that are directly utilized to develop a simulation model. Because the main emphasis of the study is on modeling manufacturing systems, object classes are designed within the context of manufacturing. Furthermore, a made-to-order type of system is assumed to test the software's ability to represent real-time dynamic interactions between system elements.
2. Object-oriented programming
In object-oriented programming, a software system is composed of interacting 'objects'. Objects are the combination of the attributes of both data and procedures of traditional computer programming. In OOP, data is active in the form of an object and performs operations on itself. Each object represents some abstract or physical entity in the problem being solved and is a complete description of the entity, including the data structures to define its structure and state, and procedures to define its behavior. An object is an instance of a 'class'. The class object provides all the information necessary to construct and use objects of a particular kind. In other words, objects that have things in common are abstracted into a class. Each object instance is a member of a class and a class may have multiple instances. In addition to the data and the way in which it is stored, a class also provides storage for the methods that are simply procedures (similar to functions/subroutines in procedural programming) that are shared by all instances of the class and are invoked by sending messages (similar to function/subroutine calls in procedural programming). For example, in the object-oriented world view, adding two numbers such as 2 + 3 is viewed as sending a '+' message from an instance of number class (2) to another instance of number class (3).


