Utilizing Modern Computer Development Tools In Implementing The Resource Consumption Model for Process Design (RCM) Richard Jerz St. Ambrose University1 Davenport, Iowa 52803 Abstract Industrial engineers need to understand and use modern computational tools in advanced research. The Resource Cost Model for Process Design (RCM) is the result of several years of research into better models for analyzing and selecting process design alternatives. RCM methodology was developed using a computer-based model that included several important programming technologies: object-based and object-oriented techniques, a relational database, and a third-party custom component. A comprehensive modeling of process alternatives would have been very difficult without these technologies. This paper focuses on the important computer-based technologies used to develop RCM. Research objectives, an RCM overview, an explanation of technologies, and conclusions are provided. Keywords Process design, cost analysis, object-oriented, SQL, relational databases, object linking. 1. Introduction and Research Objective Several varieties of production economic models (e.g., return on investment analysis, break-even analysis, cost estimating, and design for manufacture) aid production process design for product manufacture [1]. These models, however, fail to integrate sufficiently the concepts of cost, production cycle time, production capacity, and utilization. The methodologies typically rely upon these factors being separately analyzed, but do not guarantee that they are. Some methodologies use a narrow production volume range, or worse, one production volume in their calculations, which limits additional insight into economies of scale. 1 This research was completed as a student writing my doctoral dissertation in Industrial Engineering at The University of Iowa, Iowa City, Iowa. 1 The research objective was to develop a better methodology for analyzing process design alternatives. It was believed that the new methodology needed to incorporate not only cost analysis, but time and capacity analysis as well since these metrics affect each other. But industry has learned that the lowest cost alternative is not necessarily the best. Some companies may choose a more expensive process alternative because it provides a better time advantage (i.e., faster response). Some may choose a process because it provides greater reserve capacity (e.g., when anticipation of higher future product demand exists). RCM concentrates on thoroughly analyzing cost, time, and utilization factors, and clearly illustrating results. It does not attempt to resolve these conflicting criteria. A better analysis and representation of results, however, should lead to better process design decisions. RCM was designed to perform detailed calculations across a production volume range. Typically, when one chooses to develop a higher level of analysis, analysis time increases. It was believed that a computer-based model would be needed to perform calculations. Concern over the representation of numeric results led to using graphical results. This research provides both an analytical and a computer model. A brief overview of RCM is provided to better appreciate the application of the specific computer-based technologies. Discussion of RCM’s analytical model is provided in [2]. This paper focuses on several specific computer-model technologies used to develop RCM, since they represent significant changes in the way modern research can be conducted. 2. Overview of the Resource Consumption Model RCM is a decision-support methodology that provides greater understanding, fidelity and sensitivity analysis to process design analysis than do other traditional techniques. RCM’s foundational concept is that part production consumes resources that can be translated into cost, time, and utilization metrics. RCM accounts for all resources, which can be equipment, labor, energy, material, tooling, and other consumables used by process designs alternatives. It characterizes resources generically and avoids the need for terms such as “fixed costs,” “variable costs,” “overhead,” and so forth. Figure 1 shows most of the parameters used to describe resources grouped by function in RCM. Knowing details about individual resource consumption provides information on where improvement opportunity exists. A resource consumption perspective is not new; this is the perspective taken by activity-based costing proponents. However, RCM recognizes that resources can by consumed by production or the passage of time (i.e., they may spoil or become inert when not used fast enough.) Resource consumption is also affected by overall system behavior. For each resource, RCM performs quantity-based, time-based, and system-based calculations for many production volume points (in RCM, one-hundred points are used) to determine whether a resource’s life is controlled by its inherent productive capacity, by time, or by the system in which it is used. The results are plotted, as shown in Figure 2. On this unit cost graph, the controlling cost is the maximum of all individual lines. RCM can perform calculations and display results for any resource within an alternative. The user can begin to understand better the effect that an individual resource has within the alternative. RCM provides the ability to graph up to six resources on one graph, as shown in Figure 3. This representation of results provides a better understanding about an alternative's component costs at 2 various production volumes. Resource calculations can be accumulated to compare alternatives. Results are shown in both tabular and graphical formats. Figure 4 shows how RCM illustrates a cost comparison of alternatives. Figure 1. Model parameters by function Average Part Cost($) vs Production Volume Proj= P1, Alt= A1, Selected Res= R1 0.010 Quantity Constrained Time Constrained System Constrained 0.009 0.008 Average Part Cost($) 0.007 0.006 0.005 0.004 0.003 0.002 0.001 0.000 50000 100000 150000 200000 Production Volume 250000 300000 350000 Figure 2. RCM - cost analysis for an individual resource Figure 2, Figure 3, and Figure 4 provide cost results. Similar graphs are produced for time and utilization results. RCM has many ways in which resources and alternatives can be manipulated and displayed [2]. Only a few are illustrated in this paper. 3 Average Part Cost($) vs Production Volume Proj= P3, Selected Alt= Single Torch 8 SRS SPS SWG SWW SLW Sing 7 Average Part Cost($) 6 5 4 3 2 1 0 10000 20000 30000 40000 50000 60000 Production Volume 70000 80000 90000 100000 Figure 3. Alternative component costs Average Part Cost($) vs Production Volume Proj= Which printer should be purchased? , for Selected Alternatives 5.0 Purchase Cannon Purchase HP Purchase Epson 4.5 4.0 Average Part Cost($) 3.5 3.0 2.5 2.0 1.5 1.0 0.5 0.0 500 1000 1500 2000 2500 3000 Production Volume 3500 4000 4500 5000 Figure 4. RCM - cost comparison of alternatives 3. Computer Program Development Today, engineers need to be able to explore many process design scenarios in a timely manner. One of the greatest advantages of modeling RCM on a computer is that sensitivity analysis can be quickly performed. RCM is a computationally extensive methodology. The computer model 4 provides quick and easy access to all parameter values and results. Without powerful personal computers and software, the development and understanding of RCM would not have occurred. 3.1. Object-Based Programming Application The modern computing environment uses a graphical user interface (GUI) and a mouse or similar pointing device. It makes little sense to go back to the days of text-based programming environments, which were common over much of the last fifty years. RCM was developed on a personal computer running the Windows95 operating system. This graphical environment is characterized as object-based, meaning that the user directs a program's actions by clicking on different objects in the display window. For example, Windows programs provide a command button labeled “Exit” or “Quit” that needs simply to be pressed to exit the application. To create a program’s functionality, the programmer must master creating and using various visual objects, such as command buttons, pull-down menus, grids, and forms. This is called “object-based programming,” but should not be confused with object-oriented programming, described later. Many software development products were available for the development of RCM. After considering the specific needs for RCM and the direction of programming tools, Microsoft's Visual FoxPro® was selected. This product not only provided an object-based development environment, but also object-oriented programming and a database – both to be described below. Other products at the time this research commenced, such as Visual Basic® and Microsoft Access®, did not offer all of these capabilities. A challenge for RCM was to design the user interface so that it was easy finding and changing any model parameter values, and easy getting to various results. The solution was a tabbed-page approach called a “page frame,” which is analogous to having tabs within a notebook. By using this approach, the programmer can group similar information and the program’s work space is great. The user can quickly tab to a page of interest. RCM's page approach is shown in Figure 5. This figure shows only the “Data” page, which is one of six pages. The Plotting page gathers information on what is to be plotted; alternatives or resources; how it is to be plotted; the production volume range; and cost, time, and utilization axes ranges. “Cost,” “Time,” and “Utilization” pages display graphic results, and the “Summary” page provides tabulated results. The Data page contains three grids, called grid objects. Three grids were used because RCM data was organized in three relational database tables. Functionally, the user selects a problem to investigate in the “Projects” grid by clicking on it with the mouse. When this happens, all alternatives that the problem contains appear in the second grid. When an alternative in the “Alternative” grid is selected with the mouse, all resources that compose the alternative appear in the “Resources” grid. The three grids make it easy to “zoom in” and “zoom out” to different detail levels. Parameter values can also be changed within these grids. An example of the Cost page is shown in Figure 6. It becomes obvious from Figure 5 and Figure 6 that the graphics environment and the use of objects accomplishes the goal of making RCM easy to use and informative. 3.2. Object-Oriented Programming A discussion about object-oriented programming (OOP) is not complete without a discussion of three specific terms always associated with OOP: inheritance, encapsulation, and polymorphism. 5 Figure 5. Data page Figure 6. Cost page Inheritance allows one to create new objects that are similar to, but a little different from existing objects. For example, the programmer may want to define new command buttons that are similar to, yet a little different from the standard button. The programmer may want the button’s length and width to be sized specifically for the application. By “sub-classing” the standard button, a 6 programmer’s modification to the button’s size automatically changes all instances of the button throughout the application. Encapsulation, simply defined, is the ability to add properties (i.e., object features, such as value parameters) and methods (i.e., program code) to objects that become active only when a specific object is used, or “instantiated.” This is similar to declaring variables “local” or “private” within a subroutine, but encapsulation is better. Instead of having an application made up of module after module of spaghetti code, one object simply sends a message to another object, referencing that second object's properties or methods [3]. The programming burden to remember whether variable names are local or private is removed. Both data and code can be encapsulated within an object. For example, in RCM, a “form” method named RCMCalculations was created to do most of RCM's calculations and analysis. Being encapsulated within the form, the method is always available whenever the form is active. Different objects within the RCM application communicate their values and value changes with RCMCalculations automatically. RCMCalculations creates an array (known in database terminology as a cursor) whenever needed. The Cost, Time, Utilization, and Summary pages, when selected by the user, use this array in different ways to create their visual results. These result pages need not worry about the data structure of the array - they can simply use the array data as needed. Passing of data values is greatly simplified with encapsulation. Polymorphism is often thought to be a more difficult OOP concept than inheritance and encapsulation, but it is really quite simple. It means that different objects can have methods or properties with the same method name [4]. In other words, the programmer does not need to worry about coming up with unique names for methods encapsulated in different objects. For example, code that performs calculations for one command button can be called “Calculate,” while other code that performs different calculations for another object can also be called “Calculate.” Each object knows about its own “Calculate” routine. Code is executed by calling the method with commands similar to “ThisButton.Calculate” or “ThatButton.Calculate.” When properly implemented, OOP concepts improve the programmer's efficiency. However, it is a shift from the traditional programming paradigm. For the industrial engineer, the ability to use OOP techniques translates into faster application development. For example, at one point in the development of RCM, the Utilization page did not exist. When the need for this page emerged, it was added to RCM in approximately fifteen minutes of programming. Without OOP, this task might have taken several hours to accomplish. In its research form, RCM implements only a small subset of object-oriented programming. The development of RCM into a commercially viable product would take greater advantage of OOP. 3.3. Database Modeling Application and SQL RCM needed to capture cost, time, and capacity information for every resource. A generic characterization of parameters was believed to be beneficial for more efficient use and management of information. Eventually, it was determined that fifteen parameters could adequately define any resource. Since many resources can compose an alternative, and many alternatives can compose a problem, data that RCM must manage can become enormous. A database approach to the problem relieves the burden of information management [5]. A database approach for engineering process evaluation is not common to most traditional methodologies. Most engineering analyses deal with variables and equations, not databases. 7 However, as the quantity of data available to companies grows, there is a need to understand databases and information management concepts better. In 1970, E.F. Codd, then a member of the IBM Research Laboratory in San Jose, California, published a classic paper [6]: “A Relational Model of Data for Large Shared Data Banks.” It laid down a set of abstract principles for database management: the so-called relational model. The many advantages of the relational approach are too well known to need repeating here. Another particular aspect to relational database research was the development of a standard relational language to define, access, and manage databases. This language eventually became known as SQL, an abbreviation for “Structured Query Language.” SQL is now an American National Standards Institute (ANSI) standard [7]. SQL has been implemented in many database products. RCM uses both the relational database approach and SQL to efficiently organize and manage its data. The SQL SELECT command is used to retrieve information. The basic form of SELECT has three clauses: SELECT <attribute>, FROM <table>, and WHERE <condition>. The modifiers ( <> ) to the clauses can become very complex, and it often takes much practice to master all its features. Because grouping and aggregation are required in many database applications, SQL has included COUNT, SUM, MAX, MIN, and AVG functions. An example of SQL might help understand its benefits. RCM needed to calculate the overall controlling cycle time and the minimum availability for alternatives based upon the alternative resource’s use of time. RCM does consider that some resources’ cycle times can overlap with others, but the determination of overall cycle time and minimum availability is not as simple as one might think. In many traditional programming languages, the programmer would do these calculations using FOR/NEXT loops. In a database, a solution using the SQL SELECT statement becomes easier. The code associated with these calculations is shown in Figure 7 Although the code appears long and “wordy,” anyone who understands the SQL SELECT statement would see that the code is simple. Some wordiness in code is the result of descriptive object names that enhance readability. The advantage to using SQL over FOR/NEXT loops is speed – most databases are optimized to execute SQL commands. The ability to manipulate database information efficiently is not commonly considered a skill that industrial engineers should have. However, engineers who possess this skill can manage information more efficiently and make better decisions. 3.4. Object Linking and Embedding (OLE) RCM needed to generate specific graphs to represent results. However, Visual FoxPro’s graphing capability was very limited. Facing this problem, the author had to decide whether to develop a special purpose graphing routine, or to purchase a commercially available routine. Since one primary research goal is to complete the research in a timely fashion, developing one’s own code was an unattractive alternative. One of Microsoft’s strategies for its Windows operating system is the ability of discrete applications to talk to each other. Their vehicle to implement this ability is Object Linking and Embedding, or OLE. OLE is not one tool; rather, it consists of two similar, but different methods to allow applications to talk to each other. The first is the use of OLE controls in applications. 8 The idea is to be able to extend an application with third-party objects. These third party objects, called ActiveX controls, custom controls, or OCX’s can be placed in any application that supports the OLE standard. For instance, a graphics control written to the OLE standard could be placed in a Visual FoxPro form, or a Visual Basic form, or any other design tool that also conforms to the OLE specification. The second is OLE automation, or the ability of one application to run another application. RCM takes advantage of the first type of OLE function. * Calculate the overall controlling cycle time accounting for * all overlaps. * (used for system constraint calculations) * First, get the overall time for groups in series without overlap SELECT MAX(nresprodtime*(1-nrespcntover)/nresprodpcs) as ControlTime; FROM rcm!resources; WHERE Resources.cprojid = lcCurrentProjectID; AND Resources.caltid = lcCurrentAlternativeID; GROUP BY Resources.ngroup; into cursor lnControlTime * Combine the controlling sequence time and the largest individual * resource time for an alternative. select sum(controlTime); from lnControlTime; union; SELECT MAX(Resources.nresprodtime/nresprodpcs); FROM rcm!resources; WHERE Resources.cprojid = lcCurrentProjectID; AND Resources.caltid = lcCurrentAlternativeID; into cursor lnControlTime * Select the largest time between the sequential resource times and * the largest individual resource time. * This become the controlling cycle time. select max(sum_controltime) as CycleTime; from lnControlTime; into array lnControlTime * Now get the minimum resource availability for unit costs (not batch). SELECT MIN(Resources.nresavail) as MinAvail; FROM rcm!resources; WHERE Resources.cprojid = lcCurrentProjectID; AND Resources.caltid = lcCurrentAlternativeID ; AND Resources.lbatch = .F.; INTO array lnMinAvailability Note: the *’s in the code are only comment statements. Figure 7. SQL SELECT code For this research, a special graphing control produced by Gigasoft, Inc. called ProEssentials [8] was purchased. The cost graph shown above in Figure 6 is a ProEssentials object. Functionally, the graph control contains many properties that define its appearance. More important, data generated by RCM's methods are simply communicated to the graph object. The program code required to produce the cost lines in Figure 6 is shown below. 9 thisform.pgfMain.Page3.olegphCost.XData[k, thisform.pgfMain.Page3.olegphCost.YData[0, thisform.pgfMain.Page3.olegphCost.YData[1, thisform.pgfMain.Page3.olegphCost.YData[2, i-1] i-1] i-1] i-1] = = = = lnProdVolume lnCost[1],0 lnCost[2],0) lnCost[3],0) Table 1 provides an example of some ProEssentials property settings as they occur within RCM and a description of what they do. Table 1. Graph object properties and function in RCM ProEssentials Command .points = 100 .graphbackcolor = RGB(0,0,0) .subsetcolors(0) = RGB(255,255,0) .subsetpointtypes(0) = 3 .subsetLineTypes(5) = 1 .xaxislabel = “Production Volume” Function Plot 100 points Sets background to black Sets color of the first plotted line Sets first line point type to a solid circle Sets sixth line type to a dashed line X-axis label Only a small subset of ProEssentials capabilities was needed for this research. ProEssentials can also produce many other charts, including bar charts, logarithmic charts, pie charts, polar charts, Pareto charts, and real-time data tracking charts. It is a product that serves the engineering community well. It is important that industrial engineers be aware of third-party custom controls and OLE so that one does not reinvent the wheel, and so that applications can be developed more quickly. 4. Conclusions The programming environment and the set of tools engineers have available today have changed dramatically over the last fifty years. More complex research analysis and models can be developed and their results communicated more effectively. A comprehensive modeling of process alternatives for RCM would have been very difficult without these technologies. The graphical user interface is here to stay. It has replaced writing lines of codes with an objectdevelopment environment. Any engineer who programs computer applications should master graphical environment tools. There are many advantages to understanding databases and the SQL standard. Engineers will have greater access to and management of company information. Knowledge of SQL will allow one to move from one database environment to another without the need for expensive retraining. Applications written by engineers will have greater portability to different products, and the lifetime of applications will be longer. Engineers should be aware of third-party custom controls. Custom controls reduce programming time and improve the quality and reliability of the application. In the future, RCM may implement OLE automation. RCM may eventually communicate directly with other applications, such as computer-aided design (CAD), resource planning and scheduling, financial planning, and other computer-aided process planning systems. 10 5. Acknowledgments This work has been partially supported by a predoctoral fellowship from the United States Department of Energy (DOE) in “Integrated Manufacturing,” 1995. References [1] Vonderembse, M.A. and White, G.P., Operations Management: Concepts, Methods, and Strategies, 3rd ed., West Publishing Company, New York, 1996. [2] Jerz, R., “A Resource Consumption Model (RCM) for Process Design,” Ph.D. Dissertation, The University of Iowa, Iowa City, Iowa, December 1997. [3] Hentzen, W., Programming Visual FoxPro 3.0, Ziff-Davis Press, Emeryville, California, 1995. [4] Granor, T.E., and Roche, T., Hacker's Guide to Visual FoxPro 3.0, Addison-Wesley Developers Press, New York, 1996. [5] Elmasri, R. and Navathe, S.B., Fundamentals of Database Systems, 2nd ed., Addison-Wesley Publishing Company, Menlo Park, California, 1994. [6] Codd, E.F., “A Relational Model of Data for Large Shared Data Banks,” Communications of the ACM, Vol. 13, No. 6, June 1970. [7] Date, C.J. and Darwen, H., A Guide to The SQL Standard, 3rd ed., Addison-Wesley Publishing Company, New York, 1994. [8] Dede, R., GigaSoft ProEssentials User's Guide, Gigasoft, Inc., Keller, Texas, 1996. 11