AN ON LINE PRODUCTION PLANNING SYSTEM by WILLIAM CHARLES MICHELS S.B., Massachusetts Institute of Technology (1970) SUBMITTED IN PARTIAL FULFILLMENT OF THE REQUIREMENTS FOR THE DEGREE OF MASTER OF SCIENCE at the MASSACHUSETTS INSTITUTE OF TECHNOLOGY February, 1972 Signiture of Author fA C?n~i4g )-v3 Alfred P. Sloan School of Management, January 21, 1972 Certified by Thesis Supervisor, Alfred P. Sloan School of Management Accepted by Chairman, tepartmental tommitte on Graduate Students Certified byThesis per sor, De artment of Electrical Engineering Accepted by Chairman, Departmental Comnfttee on Graduate Students Archves MAR 21-1972 1-1@RARI -2AN ON LINE PRODUCTION PLANNING SYSTEM by WILLIAM CHARLES MICHELS Submitted to the Alfred P. Sloan School of Management and the Department of Electrical Engineering on January 21, 1972 in partial fulfillment of the requirements for the degrees of Master of Science. ABSTRACT Current production planning research emphasizes particular techniques for solving specific problems within large companies. Less emphasis has been placed on integrating these' tools economically into small companies. This thesis describes an integrated production planning an system designed to help small custom job shops on interactive, time-shared basis. The heart of the system is an on-line data base which coordinates the engineering, marketing and production areas of the firm. This complex network type data base consists of 11 multi-chained files. A specialized data management system maintains these files and provides access to them. It permits the user to operate on the data using only knowledge of its logical structure thereby freeing physical him from any need, to understand its internal representation. The primary functions of this On-Line Production Planning (OLPP) system are bill of materials processing, order entry, time phased requirements generation, due date scheduling, leveling, loading, interactive load finite capacity and report generation. generation, order manufacturing Production is scheduled from actual customer orders and not from forecasts of demand. This reflects the environment of many small companies and requires the system to be very It must be capable of undoing old schedules and flexible. and Loading making new ones quickly and economically. order to manner in scheduling are implemented in a heuristic provide low cost efficiency within a volitile environment. When weekly work center capacities are reached in the loading or scheduling process, the system notifies the user of the problem and of possible solutions to it. It then works with him to find an acceptable solution. THESIS SUPERVISOR: David N. Ness TITLE: Associate Professor of Management THESIS SUPERVISOR: John J. Donovan TITLE: Associate Professor of Electrical Engineering -3CONTENTS CHAPTER ONE - A PRODUCTION PLANNING SYSTEM 1.1 - Introduction to the OLPP System 4 1.2 - Goals of a Master Scheduling System 1.3 - Elements of a Production Planning System 1.4 - Current Developments in Production Planning 8 11 20 1.5 - OLPP System Design Strategy 1.6 - User Command Language 24 27 CHAPTER 2.1 2.2 2.3 2.4 TWO - THE OLPP DATA MANAGEMENT SYSTEM - A Centralized Information System - The OLPP Data Management System - Preliminary Design of the OLPP Data Structures - Final Design of the OLPP Data Structures 30 32 35 44 2.5 - Accessing Considerations 55 2.6 - File System Primitives and Utilities 58 2.7 - User File Commands 61 CHAPTER 3.1 3.2 3.3 3.4 THREE - LOADING - Introduction to Loading - Order Entry - Feasibility Checking - Load Leveling CHAPTER FOUR - SCHEDULING 4.1 - Scheduling Strategy 4.2 - Scheduling Algorithm 64 68 71 76 83 86 4.3 - Generation of Manufacturing Orders 92 4.4 - Updating 95 CHAPTER FIVE - SUMMARY 5.1 - OLPP Capabilities 5.2 - Necessary Implementation Considerations 5.3 - Potential Additions to the OLPP System BIBLIOGRAPHY 100 103 105 108 -4- CHAPTER ONE 1.1 - A PRODUCTION PLANNING SYSTEM Introduction to the OLPP System Production Planning the varies in complexity type and size of the company involved. according to This thesis deals only with the production planning problems of small custom job shops. I chose to concentrate on small companies because their problems have been largely ignored by current research. Larger companies have more Tinferesting' problems and have the ability to support their own This efforts. has analysis systems and quite naturally led to the present state where little modern computer technology has been use by small production research companies. Custom problems planning adapted for job shops have a class of which make information systems very attractive to them. computerized They fabricate a large number of possibly complex parts in small lots to meet a demand which varies in technological requirements. jungles out of their terms Such of variety production creates planning Continuous manufacturing firms may handle a higher production, style design, and paperwork departments. volume of but their products are generally standardized and used to maintain inventory levels rather than to meet specific orders. Their larger volume also tends to be more capable of -5- supporting sophisticated planning systems. The basic OLPP system is a planning production system is practical and economical for most small job shops to which This target user population must use. than rather general of discrete system can suitability and types not ina small and easily distinguishable states. be contracted for companies or which may exactly not broadens This its increase to extended fit the 'typical small job shop' mold as defined in this thesis. flexibility a specific classification since firms a exist in a continuum of sizes and number as interpreted be This the spectrum of potential system users. A more accurate definition of'fhe user potential population would be all those for whom it would be more economical to use the OLPP system as is, or with slight modifications, would be to than it design, implement and maintain their own system thereby gai ning the benefits of more precise tailoring. Before we can define the capabilities whi ch a planning system should provide for this type of firm, we must examine the general area of production plannin g Planning is the preparing of process estimating the resources that will company's goals. Control activities as they occur, plans be is the comparing for and the control. future by to fulfill process of monitoring them to the pertinent and taking any corrective action deemed necessary. becomes a subset of a a needed OLPP system is a planning system, but by generating also production company's entire plans The it production -6planning and control system. The area of production planning can be divided into three considering by parts time the horizon and level of detail being reviewed: - yearly plant production 1) Long Range Planning 2) Medium Range Scheduling- weekly work center production - daily man/machine production 3) Short Term Scheduling These three areas involve a progressively time an increasing level of detail. and period shorter of In various parts of the literature the exact definitions of each may vary slightly and may they be known different set of names such as Stra tegic Planning, Master or Aggregate Job and Scheduling Shop Scheduling. Scheduling Range Medium has a level of complexity that makes it difficult for small companies to hand le A maste r system. commitments while resources. The schedules are schedule must providing necessary meet efficient information a no in smal 1 history companies from any these which file S. on which to project the futur e. existing estimates by key its Long Range cannot be formalized as easily are more established, custom demand and of util ization since such companies are often new ventures that or sales firm's developed already exists in most companies and is economically transferable to computer Planning is capabilities of an inexpens ive computerized the within well yet and sales forecasts personel. Being Even if they is poten tially are small usually little have unstable subjective it is often more -7economical rely to them for on other sources such as the future. government or research organizations for views of the relies upon the Master Schedule for a Scheduling Term Short global view of the commitments which it must meet. more much minute by level of data to consider the detailed man. and minute status of every manufacturing order, machine such schedules accurate and useful requires the rapid Keeping discovery and correction of implies This a It uses a It also may imply all from deviations plan. the large amount of data processing and storage. time real a or real nearly data time Both of these may make Job Shop Scheduling collection system. a prohibitively expensive venture for small firms. This thesis only concerned with Master is an important problem for many small it since Scheduling, be will custom manufacturing companies and is a relatively inexpensive first towards computerized planning and control. step use the terms production system master planning scheduling, to describe as I have developed them apologize ahead aggregate the I will scheduling and functions of the OLPP in this section. I will of time for the inevitable conflict this may cause for those who rely on other definitions of these terms. -81.2 Goals of a Master Scheduling System Before we can design a master scheduling system examine the functions it should be capable of performing. help define these we will first examine the that we currently arise various must To problems in manual production planning systems. These trouble spots affect many different areas of the company and all parts of the production planning data base. following list of problems is sorted by the areas affect primarily and which The they should help us define the scope of the OLPP system. Marketing - late deliveries of customer orders - stockouts of fin'ish'ed products - inconsistent use of engineering changes - lack of competitive due dates or prices - no timely feedback of order status - no idea of possible or probable delivery dates Production Planning - sales commitments beyond plant capacity - poor estimates of future workloads - no timely feedback on order progress - lack of clear criteria for make/buy decisions Production Control - frantic search for order status material stockout or unavailibility schedules in permanent crisis too much expediting necessary - supervisers too busy firefighting to supervise - decisions made without proper guidance thrashing of setup and move operations simultaneous over and under loading uneven production rate Financial - high inventory costs - high production costs poor cost breakdown poor cash management - In analysising gathering and these problems dissemination of we can discover information that the is in itself a -9Data critical problem for manufacturing companies. and scattered voluminous, hard to is often This creates a obtain. problem area which should be analysed in its own right to help rectify the problems of all the other areas. Information - high storage costs - conflicting indexing policies - erroneous data - data not available until after it is needed - different interpretations of same data - lost information - redundant or useless data - no formalized information policies in The goals terms of of a production planning system can be stated solving machines,materials problems. these and Costs of men, information must be controlled in the face of increasingly complex and voluminous operations. of Bills material must be updated to reflect the latest engineering competitive prices within Schedules must customer. varying must Competitive quality products changes. with demand resources. the be Management must provided at time period demanded by the generated efficient be will which of utilization the the coordinate satisfy firm's individual departments which recognize only their own limited objectives. For example the sales customer service department and high concentrates levels department about utilization of its primarily on of sales, the production own resources the and finance department about costs. An integrated production planning system must solve all these problems in a manner beneficial to the company as a -10Too whole. often companies give priority to only one or two of these areas and must suffer from the neglect of the others. example For their marketing oriented firms may promise anything to customers at the cost of inefficient production department. having a chaotic and Engineering or financially conscious companies may stress their own strengths so much as in the market place. An to lose the ability integrated system to compete will coordinate these and produce a more profitable enterprise. various activities -111.3 Elements of a Production Planning System may Companies schedule from production future sales, from customer o rders o r from a forecasts of combination of In large continuous m anufact uring firms, production is both. Thi s often based on sales forecast s. there a exists is the case either well define d histo ry of a product's sales or when inventory is required to buffer the production rate in variations the sales or distrib ution rate. organized on a functional they produce often larg e a because numb er of low volume or custom The same potential ly rand om predicate a generalized that production demand factors which physical layout of a plant may also be on based In small companies forecasts. from Job shops are rat her tha n a product basis products. dictate when sales rather than the 1ow volume of sales and the smallness of the market often permit effective forecasts to be made subjectively and informally by top managemant. I do not consider forecasting to be an integral planning production firms. for process Instead the OLPP part of the small custom manufacturing wi 11 system Therefore plan production from actual demand as it occurs. This section will planning production suitability of these introduce the common elements of modern definition and tools problems of small job shops. further It will systems. of description will not occur until discuss the techniques for solving the Althou gh this the also OL PP will system, lat er chapters. comprise the a complete -12its The initial step in producing a product is defining Products can be either standard, custom or bill of materials. pre-defined of bill of number some standard with materials a for each However, of sale engineering each for specifications marketing, finance and production materials data base be Although system. planning must . and records use the The production. departments and the them for Consequently a bill of heart of volume and the the product these production and costing pricing, its in step creates department same the describe in a used part each of structure the product must custom of material bills These from before any price can be quoted or a detailed bill of material accepted. it can be A product must always have include a seperate product design. sale a is a there product, times designed once and produced innumerable blueprint. When options. any production complexity of products varies between companies, this is a potentially large data base. Inventory is an area that is closely related to control both forecasting and the production rate. Reorder points, levels of service, safety stock and other methods of inventory control of finished products are based on predicted sales during the restocking period. The rates of inherent uncertainty of demand rates for our type of firm rules out the inclusion of formal forecasting models in the OLPP system. also reduces the usefulness of the various types of It inventory -13The alternate concept of control which are dependent on them. for time phased requirements planning is far more suited OLPP inventory levels, but quantity of method This environment. parts rather and to ties actual production sales. the not The to exact subassemblies that will be needed in future periods to meet sales commitments is determined through the of due date scheduling of detailed requirements. process and End prod uct requirements specify only t he quantities dates Detail c f items which have been ordered by a customer are part and subassembly requirements level by material s. level of explosion product's by bill a of offset due date, accordi ng to the level the time to produce the final product from this poi nt. This an item occurs within process is most levels end These requirements are assigned due dates, backward s from the product's necessar y an calculat d are due the produ ct appropriate structure where products and have multiple of assembly, high cost co nponents, long lead times and or multi ply used assemblies and parts. This does not preclude the use of various other inventory control schemes for parts whose use predicted and whose inventory costs are can low. be more easily In fact, OLPP system recognizes three seperate classes of parts. are assigned to these classes by what is commonly ABC analysis of part usage versus cost. items, such Parts call d Class A items as airplanes, are low in volume and high in cost, while C the an such class as bolts, are high in volume and low in cost. -14- of inventory costs are centered in class A items and most of system OLPP The items. C class in volume inventory most Usually Class B items are in the middle of both ranges. concentrates primarily on the critical high cost class A items for class B items it keeps track of time For items. these Class put not does phased requirements but process. schedules weekly and by generating time phased requirements scheduling the them C parts are recognized by the system, but do level attention of time either not rate the high requirements planning nor weekly scheduling. phased In this way the system leaves the inventory control of class B & C parts up to the desirable is This user. since class C items are best suited for the low cost bin tag and Other control. methods stock safety the OLPP or system of of inventory control have been well researched (see ref. #5) and could be easily in method in the included either manual procedures of stock control used by the company for these items. The system manufactured also recognizes and purchased parts. the distinction The former is what we have been discussing up to this point and the later fits ABC classification scheme but Instead purchase requirements are department early into the does not require scheduling. output to the purchasing enough to ensure the ordering and delivery of the part by the date the requirement was needed. this between Most of thesis is concerned with class A manufactured items, but appropriate mention of the other classes will be made when -15- necessary. With time planning step that This entry. requirements planning, the production phased product follows an forms production planning marketing department. specification indirect and system it the is order interface between the customer through the entails orders entering or modifications to them into the central data base and accepting them if they are feasible. Small firms are often so hungry for orders that they do not bother to check if they and capacity and time the that are required to fill an order. resources They also avoid feasibility checking because complicated have consuming process. it is often a Consequently, many delivery dates are missed, customer relations suffer and so do the relations departments. production the between A centralized system simplifies and marketing this task and provides benefits to the whole company. The next generation. gross step in the planning process is requirements This is the conversion of the order elements into product requirements. It involves the recursive explosion of an end product's requirements through each of its Levels correspond to simultaneous product structure. assembly of one part from its components. the final product The point at up this stage which is completely assembled is referred to as the zero level of the product structure. The make level are called numbers keep rising until the most level components 1 items. elementary that The level component is -16The described. of levels is dependent on the number total The higher the complexity of the end product. earlier the Explosion is the level process of the end product. procedure of assembly by component multiplying the each requirement requirements component for that that usage by level within assembly. an These are then offset from the assembly due date by the lead time by which a precede number, is required in the manufacturing component the level of its assembly. component's due date must This lead time represents the average setup, assembly and move times for an average size lot of that particular part. The resulting plan consists of the exact quantities of each detail part, subassembly and end product which are needed to meet sales commitments. The next step is necessary to achieve these center is capacity manufacturing data base. standards specific of the to Each objectives. work period. Time standards for the each part are kept in the bill of materials obtain the load on This loading can be by these each work center in each done in either of two the infinite capacity loading scheme, work centers In are loaded without any consideration of their total Potential resources Time phased requirements are multiplied weekly period. ways. time each of reserving with the claims on its labor and machine 'loaded' for the under or over loads are ignored. implement and bottlenecks. may be later used to capacity. This is simple to focous attention on Production scheduled in this fashion often has a -17low variation in lead time if the shop itself is proficient at leveling the load as it occurs. In and relationship between the load being scheduled center's ability to handle that load. monitors loading capacity finite contrast, each work Overloads may influence overtime, the user to modify capacity through a commitment to This decision or to change the due date or size of the order. of what to change is difficult to implement since there possible solutions to each overload condition. many the are The OLPP system uses finite capacity loading because it forms the basis Defining the for a more realistic and useful production plan. criteria for alleviating overloads forces a firm to decision this This process. to is preferable by overloads to be handled in an ad hoc basis formalize an allowing overworked and under-informed supervisor. The final step in production planning is the scheduling of net requirements economic batch manner in a quantities that the considers for each part. This involves the setting of start and finish dates, and of quantities manufacturing combined or manufacturing load seperately, handled when converted on the OLPP into dates, the the work centers may differ slightly from the load estimated from initial requirements. reason, all Since all requirements within the same orders. placed for Time phased requirements may be split, orders. manufacturing order must have the same completion actual most For this system uses two different load estimates. -18The first is based on initial time phased requirements and the general feasibility of a sales order. determine to used is The second is based on actual manufacturing orders and is used to genera te a more realistic load estimate on which to base cannot manufacturing orders into converted scheduling the of other In sales have been made for a given period. until all words be practically requirements because Two must be used production schedules. orders is postponed manufacturing until ther e is a high probability that the schedule will not have to be revised by a future sales order. The final schedule reflects a balanced and efficient use of the firm's resources, which will meet all promised delivery dates. such scheduling, detailed More orders to particular men and mach ines, job shop scheduling. of the individual become more work efficient This will the assignment of falls into the realm of be left up to the supervisors cen ters. whe n it as can rely on a production plan which has considered average 1ead times, work center and plant load. The enough A production weekly plan leeway in it to abso rb so me day to day problems. may not be sufficient since subject capacity o f any schedule depends on how val ue closely it mirrors reality. should dispatching Their has This a co mplex production facility is to many random occu rance s such as machine breakdowns, material shortages and perso nel absences. cancelled, modified or entered Sales orders may be at Consequently, any planning a lgorithm must be the last flexible minute. enough -19to react swiftly and efficiently to a dynamic environment. must some include performance of its feedback mechanism that monitors It the schedules, so that future schedules will continue to be realistic. -20Current Developments in Production Planning 1.4 Computers have openned many new opportunities in the area of the awesome of burden maintaining operational areas such as production planning. charts and other graphical methods factory could not handle complex voluminous impetus has shifted to more the Lately records. financial In world, initial computer applications were aimed business at reducing into unfeasible. techniques that were previously economically the research stimulating by processing information Early Gannt of production planning By environments. 1971 a of computerized integrated production planning systems number were operating as effective day to day tools in progressively managed from firms. These companies employ techniques which vary optimization sophisticated models heuristic to algorithms. These systems are found primarily in larger companies who can afford expensive research and large scale data systems. Although some of these systems are in job shops, few are in small ones. variable demand Small custom job shops suffer from a than do larger production planning systems must be capable processing of adjusting rapidly ones and more therfore flexible and more their more to short term fluctuations in orders. The most complex scheduling techniques search for are those which a mathematically optimal solution, such as linear programming, dynamic programming or the linear decision rule. -21methods are restricted to the solution of very specific These or known and the appropriateness of both function. assumptions on depends models and the objective the Because of their complexity these models are costly Either the high cost or the assumption to develop and to run. of these of usefulness a The function. they must maximize or minimize some objective validity on based To achieve optimality level of demand. forecasted are today The ones which are common problems. is demand known sufficient to make models these inappropriate for small custom job shops. Simulation models are also widely They are models mathematical which system's response to various inputs. complex less used alternative shop Simulation models Simulation strategies. in large companies implications who factory data collection system. can afford the The major drawback is orders require the entire model to be modifications to This is a viable rerun. of is widely used for job with using regular simulation models for master scheduling that are than optimizing ones and consequently they cost scheduling necessary scheduling. attempt to duplicate a They allow management to test out the less. for technique only when changes are infrequent or where frequent model runs can be afforded. The least scheduling technique is A heuristic is basically a complex heuristic scheduling. that of nonproven aid to decision making or, more colloquially, a rule of thumb. While heuristics do not necessarily lead to optimal solutions, -22has proven their general usefulness time over experience rapidly finding good solutions to recurr ng problems with minimum of effort. This may be preferred to finding an optimal one after a long and costly search. also to attempts Their consistently. not even mathematical ones. They can inexpensive. it but processes logical approach be simple depends value costs of finding it. This small Heuristics necessarily on benefits of a more precise solution do planning area of heuristic improve a recurring human decision process by formalizing it and apply ing are The and rigorous relatively the premise that the not merit the extra is generally true in the production companies who can not absorb the overhead of more complex solutions. This simplicity is doubly important in 'make to order' because firms of its implied relative reversibility and flexibility. The heuristic approach is therefore the most appropriate scheduling technique for companies who have been to afford computerized production planning. unable previously The order entry and requirements generation phases in most systems today are pretty standard. loading or planning Several firms have implemented heuristic scheduling systems, but phases within integrated the OLPP system is probably unique in that it is also interactive and time-shared. capability is a means production of creating The interactive a man-machine decision system where the experience of the human compliments the speed data processing capability of the machine. high Availablity -23on a commercial time-sharing system can free a from footing the maintainance costs the of system. company and hardware development software total small Interactive production planning systems are rare and primarily exist within companies who are system. big enough to afford their own multiprogramming I do not know of any time-shared production planning systems, however some commercial time-sharing offer interactive bill of materials processors. companies do OLPP System Design Strategv 1.5 The primary design goal of the OLPP system is to solve the production planning problems of small The system custom job is an application of current computer technology which aids this particular class of small firms who of this technology. financial. limitations First, have These missing resources The OLPP system are reduces both the human resource of computerized production planning in two ways. by being an externally developed package, it permits a company, which does not to specialists, have utilize or can not afford sophisticated software. being available on a time-shared basis, it permits pay not had the resources necessary to obtain the benefits previously and shops. only for the hardware resources which they use. technical Second, by firms to This may be a level of expenditure which would not support the purchase or leasing of high performance hardware. The system's first order of responsibility is to solving the problems of the ultimate user in a manner which is optimal for him. Business users are concerned with the following criteria: 1) Is OLPP more efficient than a manual system? 2) Is it based on standard production procedures? 3) Does it cost less in time and money than a self developed package? 4) Does It have flexible I/0, files and programs? As has been mentioned previously, efficiency integrating a is obtained by company's information system and by drawing on the vast data proceesing power of the computer. The standard -25procedures which the system provides are information retrieval The information retrieval facility and master scheduling. The it. which he desires data desired by a user in the form the providing to geared is algorithm scheduling master is heuristic in nature and is based on the accepted techniques of time phased requirements planning, finite capacity loading and due Cost involves not only the hardware and date scheduling. were software economies of scale which previous This includes the efficient programs and files, and the A heuristics. particularly of use important stake high relatively low environments has goal oriented use of on-line are various additions to the file system which would take up space but relatively of consideration is the tradeoff between the use of CPU time and the At definition be provided, the designing of flexible and to functions storage. the paragraph, but also every level of the system design and implementation process. the in out brought cost cost of of CPU reduce time on-line processing when storage compared in The time. time to the shared caused the OLPP system to freely substitute storage space for program complexity. development In order to facilitate both its initial its future evolution, the relatively autonomous modules. OLPP system was In particular, designed three Interfaces were set up: 1) User/System interface - (User Command Language) 2) Processing programs/File system interface (File System Utilities) and in modular -263) File system/Operating system interface (File System Primitives) These interfaces allow easy adaptation of different environments or to perform different the system to fit functions. Each of them will be discussed later in seperate sections. The initial OLPP system was developed on the MULTICS system at MIT and not on a contains features several development. commercial time-sharing which Most importantly, it were system. very useful supported PL/1 MULTICS in system's which is a powerful and relatively machine independent higher level language with an excellent MULTICS also repertoire provides of data types valuable text editing and structures. and debugging facilities. In addition to these features, MULTICS is a good example the type would have of to of environment which a commercial time-sharing system provide to actual OLPP users. Some of its desirable attributes are: 1) Users share the benefits and costs of a powerful hardware system. 2) Turnaround time is minimized and the user receives nearly immediate interactive service. 3) The user is constantly aware of the progress of his job and can terminate it whenever he desires to. 4) Files and programs are shareable and yet protected against accidental or malicious damage through the MULTICS back-up and protection facilities. 5) The system is up most of the time. This should actually approach all of the time in order to be relied on by a commercial enterprise. -271.6 User Command Language The major considerations in design of the OLPP user the command language are the power of the commands and their ease use. The rationale behind the function of each command will be explained later However the when ease the of commands use users themselves are presented. of the command language is a general criterion which applies equally to which of all The commands. way in communicate with the sytem must be simple enough to allow non-programmers to take advantage of computer technology. Their are four ways in which OLPP acheives this goal: 1) The physical medium is easy to use. Most users are already familar with the conventional typewriter and thus can adjust easily to a console. 2) The way in which a terminal user defines his work is uncomplicated. He enters commands which resemble English words to describe the function he wishes to accomplish. 3) If the user is unfamilar with the system he can type '?' or '<command name> ? ', which will list either all the legal OLPP commands or all the legal formats of a specific command. In some cases he need not provide detailed parameters since the system can either provide default values or ask for the missing critical details. 4) The system always keeps the user aware of what is happening, so that he knows what to do next. He converses with it on a step-by-step basis. The system lets him know when it is ready to accept OLPP command level input by printing out 'INPUT'. It prints out diagnostics when errors or important events occur. He even has two modes of receiving this information. The default verbose mode uses uncomplicated language to explain events. When the messages become familar to him, he may issue the 'set briefmode' command which tells the user to use an abbreviated and faster form for its messages. At any subsequent time he may issue the 'set verbosemode' command to restore the educational and diagnostic messages to their full form. These system characteristics help new users become accustomed to the system, while at the same time providing flexible environment for more experienced users. a powerful and -28OLPP system is designed to be invoked by any authorized The level user who issues the 'olpp' command from the command commercial time-sharing . system environment commands. The name to a table of the OLPP legal OLPP command occurs on this list and serves as a '?' means of accessing all the currently implemented OLPP commands. legal command names cause the proper processing routine to These procedures parse the rest of the command be invoked. and for It parses the first word of all command lines issued to it and compares this command Other a This routine opens the file system and becomes the command level system. of carry out any other Input or output which may be associated with the command. legal options Each of these commands also has a table of its which includes a This option causes the '?'. When listing of each legal form of the command. return to line OLPP which types finished they out 'INPUT' and waits for another command line. Most commands have several basic formats. Each of these exists to serve a specific function more efficiently than would a single multi-purpose format. multiple line Often there formats of a command. efficient input in either high volume allowed single and This is to permit fast and or low. Arguements In this way data their pairing with a are parameter can be entered either into an entire record or just selected portions of it. Furthermore all names line to be either implicitly defined by their position on the command line or explicitly by name. are command and options can be truncated to any length which preserves -29their uniqueness. This allows experienced users to type less and enjoy faster response from the system. -30CHAPTER TWO 2.1 - THE OLPP DATA MANAGEMENT SYSTEM A Centralized information System Production Planning Systems are based on large volumes of data which are often kept seperately by different departments. For there example plans production interdependent and are engineering blueprints, sales orders, and cost reports. highly are These The often redundant and or incons istent. heart of the OLPP system will be a centralized information system which collects the entire production planni ng data base It will into a single internally consistent unit. within a computerized departments which must information stored be file system and made avai lable to the or maintain access it. the Since will be easier to access when it is stored in one place, it will be also be easier to group it into reports of any desired level of detail. Consolidation of common data base is not a trivial process, necessary into a files from several departments however it is a Data which is redundant or out and profitable one. of date may be discovered and and discarded. Inconsistencies and corrected. After consolidation only one set of archives must be updated. This and inaccuracies greatly reduces may both also the be cost found of maintainance and the -31opportunity for error. production planning data base A centralized the This within a manufacturing company. functions various coordinates integration may be more beneficial to the the than company, efficiency added to the other parts of the production planning system. New information is made available to all In addition computer it becomes known to any one of them. whenever simultaneously the potential large intuitive allows available capacity to be accurate This estimates. all of levels more with availability firm. higher efficiently of The more timely and increased volumes the value initial accuracy. with capacity for to than is presently possible. be These of life information to any system depends on its of Although the chance of error is lowered the reduction of manual transcription of data, it is not eliminated. commonly be This reliance referred phenomenon. not making business of and detailed more computer based benefits must not overshadow the fact that the approximations of factors such as replaced the information also allows handled of capacity storage improves the quality of decision accurate information at departments to of a system on its inputs is as the 'Garbage In-Garbage Out' (GIGO) If work center capacity or product lead time can estimated correctly, then the schedules based on them are not likely to be any more accurate or useful. -32The OLPP Data Management System 2.2 The OLPP system data base exists within a specialized data management system, which consists of three parts: 1) File definitions and contents - The OLPP contains a system production planning data base. entire company's file This includes both information which the user inputs and which ystem this def in ons are da ta externally variable one. the Instead OLPP incl udes meets the or a needs system tailoring programmers part file oif the system and not an The user does not have to go through process of designing his own reco rd formats. complicated which the managemenit system, inte gral an Since inputs. create s from these external dedicated a that can by be comprehensive collection files of of most small custom job shops. done either by OLPP the system a user emp loyed computer specialist. system is designe d so that the user does not have to Any The incur this overhead unl ess he chooses to do so. Accessin g 2) routines - In order to facilitate the evolution of the OLPP system, two interfaces we re file system. the within primitive system file between the file commands The first of these i s the interface and the fil e file system utili ty file system the loca lize inner core of the file system. between constructed operating sytem. These machine de pendence to the The second is the interface system and the processing p rograms. routines centralize the co de functions and consequently for These common localize the reliance -33- operations basic maintainance. as such chain or searching chain perform utilities These on certain file system conventions. Generalized commands and standard file formats were chosen to reduce the complexity of the file system. additional users clarity helps both system designers and to learn the system. want This who Since these fil e system i nterf aces s peed system, are the most heavily used routines in the and efficiency of execution were critical desig n factors. User file commands - This portion of the user command 3) user language forms the interface between the and file It allows him to manipulate the f i- es without regard system. to their internal physical structure. he must know is the All interrelationships among the data. logical The commands give the user the ability to create, m odify , delete c r record the of any file. de signed ar e They output fc r any simplicity, efficiency of operation and usefu 1ness to the us er. This file marketing system and will engineering be on-li ne of area s they enjoy immediate access critical for the data to be scheduling to data the upda ted production, h ave This does not imply base must be maintained on a real time basis. may th e the comp any. instantaneous access to any files whic h right to maintain or query. to in real deals with orders in futur e weeks. Each has have the that the data Each department bL t it til le. is not as Master As we will see in later chapters, the usefulness of this generalized level of detail is rarely degraded by updates which occur as frequently -34- as hourly or several times a day. In a more such as short term scheduling this is not necessarily true. detailed arena -35Preliminary Design of the OLPP Data Structures 2.3 a file system, four basic levels of detail designing In must be considered: 1) FIELD - elementary data item such as part number, cost or lead time. set of potentially dissimilar 2) RECORD to some single pertain which (attributes) fields part and lead of cost number, part as such object part. produce to time necessary Files 3) FILE - collection of similar records. file part a such units basic either may represent a as such relationships or part per with one record per record one with file Structure Product component/assembly pair. FILE SYSTEM - collection of all 4) files within a particular data base. a file system, we must examine both design properly To exist. will it which The structure of a file system is the grouping of fields into records and records into is structure most effective when file a system the for each file. design of the This the natural The environment consists of the type and frequency of the queries to which it will be subjected. determine files. it mirrors relationships within a company's data base. of within environment the natural structure of the data and the characteristics These accessing methods which will be most efficient will section This OLPP data develop the preliminary Later sections will structures. describe the final design of the file system and the accessing methods which will be used with it. Our starting point for the structures will be a global view of data base: design the of the OLPP data production planning -36Per Manufacturing Order: - manufacturing order number - quantity, part number - start date, finish date Per Work Center: - work center number, description - capacity (regular and maximum) per period - load (estimated and scheduled) per period Per Customer: - customer number - name, address, phone number - orders from this customer Per Sales Order: - sales order number - customer information - due date - parts, quantities and costs Per Part: - part number, description cost, lead time etc. class A/B/C type buy/make order strategy time phased requirements components (for assemblies) routing (operations, work centers, t ime standards) We will now examine these groups more carefully determine their natural in order to This will help inter-relationships. us find the best representation for them. The most simple of order one. these groups is Its basic unit is the manufacturing order, each of which has a similar set of attributes. order manufacturing file records with file of fixed length implemented as a sequential first and last records, w ill So we correspondence with manufacturing orders. level manufacturing the records. predecessor and one successor. one The a in a one-to-one is This a single It wil 1 be initially Except list of orders. each create will have following for the exactly one diagram shows -37the format of a record in the Manufacturing Order file. Aacana Nt *06A 1 0 Fie 14 0104f13 .. The work center 5TART W FIAJ.$H I DATe. 'u' " I DT-W data has very similar characteristics. This data is a set of descriptions of each of the plant's work centers. Although the load per period and capacity per period attributes involve many data items, they can be represented by a standard number of fixed length fields. Since this is another very simple collection of data, we will again use most simple representation sequential Work Center file, for it. We of whose each will our define fixed a length records will have the following format: Fie I A "it K LQAD NRN (.%,own- IUftmes The next group which we will examine is the sales data. Some sample orders will help us illustrate the structure the data in this area: C%-Yae: Adare4 -. 0s41 9t VATe. ACM MM. - C*T#AE: 5ak CosvNam-- 61aMP'EX iden 101 dopg g er 01061t 7/0 -0 7- 5. 43 /oo-o II f6:12 0:/ Dow 1j~rh7Ai .MS C-1., 4O.o0 CO.8o /(0.0 :* - - - - - on* " 16 b 1o 006MTE -, I/a I W IY /0 MF . ----- I 3 PArr: a/l Iv4vr 2 tVf7 tqis /6-Y #V,Do /$.co ( (/?443 0 of -38Here we have three seperate types of data, each with their own attributes: 1) A variable number of customers 2) A variable number of orders per customer 3) A variable number of items per order partner By examining order# 101, we can see that it is a in the following relationships: 1) It is a child in the parent-child relationship between the Acme Mfg Co. and its orders. 2) It is a brother in the brother-sister relationship between order 101 and order 102. 3) It is the parent in the parent-child relationship between the order and its component items. Consequently, th is is a th ree level tree where orders have one parent, a variab le number of brothers and a variable number of children. can We either represent this tree with a complex system of variab le length records or by three types length records, one for and processin g time. OLPP users wou ld processing varia ble length length ones. probab y records G iven that OLPP uses we still have two alternative methods data. We inexpensive than for on-line pay more for have .to storing fixed nly fixed length records, for representing this can either insert the chi ld records in between the parental ones in header-trailer fashi on or use contiguous program ince time-sharing systems usually have lar ge amounts of relati ely storage, of expense fixed Variable le el of the tree. each length records tend to sav e space at the complexity of par ental seperate children files. records Once to again contiguous the from pointers lists second within method is -39and less costly in terms of processing time, so OLPP simplier has separate contain contiguous, while parents child. and and order customer Brothers files. requirements name, customer are sisters pointers to order physically their first Each of these files represents one level of the tree. The next diagram shows how the records in these three files represent the three sample orders. o 90 Am Oaats Conot COST. WaNSas COV - D., " "e ca.eR !Rej' c.,r e . 50.'e 10 100.10 toM3 / X1Y. /01 2q7 3 u/,V 10/ IoS /0| 3 N -8 WOWW NONMW 9/0 11Y9 - / - final and It is its class, clear its used the parts in the manufacturing that we need at least a Master Parts file to hold the description of time, #643 3_ 4.oo most complex portion of the data base is that pertaining to all process. 49W.o . 10v The 2 cost each etc. part, its total lead However, the related time phased requirements, routing and product structure information adds a great deal of complexity to this one area. phased requirements are the each time gross product period in the planning horizon. The time requirements for Since this number of periods is constant these requirements can be contained in -40- a fixed number of fixed length fields within the Master Parts record. The routing data is the sequence of operations part must go through while being manufactured. per which period this manufacturing of this part. to that of the sales operation of in the take data, in that it forms a three level Therefore OLPP will similar The Master manufactured part will have a operations will number This data has a structure similar multi-branched tree. fashion. to for list the in the time of P4o ourimca File - Jo ATime its in requirements The following diagram records in the Master Parts, Routing and Time files. ?ft4rS Fde a each Each Routing record will, of this operation within the Time file. shows the relationships between both record Parts pointer in the Routing file. handle turn, contain a pointer to the time phased Ma,-rS a Each operation has associated with it a work center and the total hours which Tim* Fide OP ± NA..b UouAS a 2 3 I /df# 1 _____ 4? -41- The product structure data describes all of each level of assembly of every part. complicated than This any we have handled so far. the components is more data Our previously most complex structures were the three level sales and routing hierarchies. diagram represents a typical bill of next The materials. Product/Assembly A Level 0 I D Level 2 End items F F E From this diagram we can see Subassembly C E B Level 1 that a part can either multiple parents (E) or multiple children (A,B,C). the bill of materials data a network represented the file). second Each is a relationship Product component/assembly pair. Structure is made Parts (Master the component possible part. file) file (Product Structure record one contains The generality of by a network pointers within the Product Structure records which point back to the Master Parts for be Each Master Part record contains a pointer to its first component. structure can by a minimum of two highly inter-dependent files. The first is the basic description file and This makes It structure. have record The diagram on the next page shows the Master Parts and Product Structure records which would needed to represent the previous sample product structure. be -'42MHsTEa ?fPATs FIle File ONcT STROCTURE . R5 10 PAAT* Ab C p E F C . P I in order to make it impossible for an infinite loop to occur within a product structure, a part (and may one never component. master include itself or of its To help the file system avoid this parts record will contain a its components) parents as problem, each low 1evel code, which indicates the lowest level at which this part is ever used a component. a Whenever it generates a Produc t Structure, as the file system checks that all assemblies have a larger low level code than any of their components. It als o raises the low level code of a part whenever it is used at a lower level than it previously was. When cons istent manner ithin loop, it rejects . it can a product set low level codes in a structure, because of a The previous diagram incl udes the proper low level codes for the sample structure. The preliminary file system which we have developed up to -43this point is summarized section we will develop a examining the in the next diagram. more detailed In the next version various uses of the data. of it by In the rest of this thesis all files, records and fields will be referred to by the abbreviations listed in this diagram and the one following section 2.5. Field names will rely on PL/1 structure, subscript and underscore notation. 4ASTER PMTs (P) AT {MP A 40 MP TV ~~~ Cs ceA 0 D4 Dr PT LT h % M PS PT. UCT STMOCTUO(Ps3) fA ?~ * r ATI TIMEF PTA.. 1* P1 RcJ IUT/A)G (RT ) (eom Wvfa sye * Cp ALT. 4Dg AT I W.C. C ITM pre co5ToMER AAkg CCos) CoT C sT AJA#46 CWSTO M0 R o0lt 11 CA o4DER fo (j, co,r. oR1e0 a 4,+Y COS P#A06 O AT S 'I, MATS 0 P- 9 cCo PT4 sa : Woo ANow *3.t 'TR o ~ TIME (TM) MFG. OADERS (NO) Coware a Olt iu tWo , Pikle ?u I - 00T O I, cAsaDs g$c AiTER (CWc) ae s ps 2.4 Final Design of the OLPP Data Structure Up this point the sole criterion for structuring the to OLLP files has been the 'mirroring of reality'. sufficient Is not This it does not take into account the potential since In particular, we have Ignored three uses of the data. basic problems: 1) How are individual records located within a file? Most computer files are sorted according to the value of a gains Sorting particular field, known as the primary key. us two important performance characteristics: A) In a sorted file a record can usually be retrieved or deemed absent more rapidly than in an unsorted file. In unsorted files, records are found by whose performance linear search, exhaustive an The processing size. with file directly deteriorates speed and efficiency we can gain by sorting Is critical to the OLPP system because it lowers cost and Improves the interactive performance of the system. B) Any reports generated by the system will be used by people and people usually require information to be sorted before they can make effective use of it. The system OLPP Therefore environment. degraded is designed its to operate performance by changes to the file contents. in a should dynamic not be If the files are to remain sequentially organized and sorted, they would have to be resorted after the addition or deletion of any record. Resorting is a time consuming and costly operation. 2) Although our preliminary design includes most of the information which OLPP will require, it does not take into consideration the possibility of wanting to access a by more than one key. record In particular a complete system -45- should include: file by A) Accessing the Product Structure of an components component part number within a list of a list of assemby and by assembly part number within assemblies using this component. B) Accessing the Routing file by an operation for a list sequence number within the routing particular part and by part number within a list of parts manufactured in a particular work center. C) Accessing the Customer Order or Manufacturing Order file by customer order number or manufacturing order number to respond to inquiries, and accessing the Customer Order file by due date within a list of a customer's orders, and accessing the manufacturing order file by due date within a list of manufacturing orders for a part. D) Accessing the Customer Name file by customer name or by customer number depending on which is known at a given time. and The first two of these are called where-used lists are used to respond to actual or possible changes of work center All four cases involve organizing a file by or part status. Sequential organization has the value of more than one key. only one dimension and by only files making can thus a multi-dimensional handle the of copy seperate file or resorting it by each potential key. 3) Since example, the Customer of use file, Order may values key by references is critical speed the to customer would be not inter-file OLPP, acceptable. number require field For in the the searching of the Customer Name file before the information within the desired record could be used. This puts a relatively hiph cost on inter-file references. 4) The environment, OLPP so system any is decisions destined which for a it makes dynamic must be completely reversible. manufacturing In particular, orders, and pegged work center requirements loads, must be capable of being dissassembled and reconfigured in the light of new information. This is not possible in the preliminary design since there is no record kept of the components of these various gross figures. We will now improve the correcting these problems. coded design of the OLPP file system by For reference, a complete color diagram of the final file system is located on the last page of this section. The first change is the abandonment organization. Although chained on it files. all list allows the logical constraints of elements list point to or out suitable for a list be 'chain' processing of records to their successors. freed from the are This physical of chains patch indicated by records without having to move any records. Heads of chains are indicated by anchor pointers and chains by the storage medium. -The problem of resorting an entire file is eliminated by the ability to into file Chaining Is a method of using pointers to create a logical list or having sequential is not Instead, OLPP employs volitile environment. techniques simple, of a special (NIL) ends pointer of in the successor field of the last record. To further improve bi-directional chaining. processing efficiency OLPP uses This requires each record in a chain to contain two pointers, one (PRV) pointing to its predecessor -47- and another (NXT) pointing to its successor. From this extra pointer we gain the ability to traverse the chain in either forward or a backward In addition direction. a all chain maintainance can be controlled from the contents of the record currently being processed and broken chains can be more easily reconstructed. Bi-directional chaining is a tradeoff between the storage cost of one field per chain and the time necessary to process uni-directional chains. Assuming once again that the marginal cost of storage is less than the marginal cost of CPU time, OLPP has adopted bi-directional chaining. In the file system diagrams, chains are represented by a three field subrecord containing: Name Of Chain Key NXT PRV Name in colored diagrams the entire in blue. indicating pointers are subrecord This and the arrows subrecord forms a standard header on every record In every file. The use of restriction from physical chaining the file also removes the one dimensional structure because has Any number contiguousity from logical connectivity. of chains can be threaded through a record chain it seperates its forward and backward determine its position within the chain. as long as each pointers and a key to Each chain allows the record to have a unique position in a sorted list which is independent of its position in any other chained list. This would not be possible in a sequential organization unless the file was duplicated and sorted for each allows deceptively simple fashion. the product structure be to relationships complex key. Multi-chaining represented The following diagram from section will in a show 2.3 in a multi-chained format. M A5-r ?es F, P-aUpoc e One feature of this diagram which is not in our cr LE previous version of the file system is the inclusion of anchor pointers Some anchor pointers such to the heads of the various chains. as one MP.PS_anchorptr and MP.WHERE_anchor_ptr fit directly Into of the MP_anchor ptr existing must files. this others such as be directly accessable by the file system and not embedded within a handle However problem, record of some other file. OLPP has a single record control To (CTL) -49- file which holds the various anchor pointers required system. Anchor pointers are named (source by the file>.<chain name>_anchor pointer and are green in the colored diagrams. The folowing list reviews all the OLPP chains, keys and anchor pointers: FILE CHAIN KEY ANCHOR PS PS WHERE RT WHERE CUS# CNAME CO# CO OR MO# MO MP TM ComponentPart_# AssemblyPart_# OperationSeq_# Part_# Customer_# CustomerName CustomerOrder_# DueDate Part_# Mfg_Order_# DueDate Part_# Period_# MP.PS_anchorptr MP.WHEREanchor_ptr MP.RTanchor~ptr WC.WHEREanchorptr CTL.CIS#_anchor_ptr CTL.CNAME_anchor_ptr CTL.CO#_anchor-ptr CUS.CO_anchor ptr CO.OR_anchorptr CTL.MO#_anchor-ptr MP.MOanchor-ptr CTL.MPanchor_ptr RT.TIME(n).TM_anchor_ptr RT CUS CO REQ MO MP TM These chains are maintained in a sorted order by the file Deleted system. not returned to the operating are records system but rather added to a chain of This file. All file. particular method the minimizes of number free chains keeping of free records for the are anchored in the CTL records unused exchanges (ALLOCATE statements) between the OLPP system and the operating available and FREE system, thus saving overhead time and expense. Inter-file references pointers in place of key values speeded within up by records. provlding These so home-pointers are the fastest way of accessing another called record. cost are of Key values are maintained only for output, an when the extra field in a record is less than the cost of -50value accessing another record just to get the field. are pointers These in file>.<qualifier>_home_<parent file>_ptr and are pink colored the is an optional description qualifier The diagram. single <source as to refered a of following which is used to make the name more meaningful. The home pointers will be added to the file system: FILE HOME POINTER REASON PS PS.Comp_home MP ptr PS.Asshome_MPptr RT.home_WC_ptr CO.home_CUJS_ptr REQ.home_COptr MO.home_MP_ptr Speeds Speeds Speeds Speeds Speeds Speeds RT CO REQ MO is decsions of reversibility of problem The explosion WC to MP traverses MP to WC traverses CO to CUS traverses REQ to CO traverses VO to MP traverses tied intimately to the REQ file because this file is the nucleus of the entire variable system they cause a CO record and a to records generation of time center orders, actual schedules. center time These manufacturing orders are for product structure of and of number REQ immediate the work estimated eventual generation of manufacturing the work cause also requirements phased and loads, They created. be orders enter the When process. decision OLPP the phased parts items production weekly and loads requirements, every in which Reversibility implies connecting loads to loads and of the level have been ordered. the manufacturing orders which caused them, manufacturing orders to the specific requirements which caused them and every time requirement to the order requirement which caused it. phased -51- solution The of this complex introduction of the new concept of time phased particular requirement time part#/quantity is a period. pair A which problem pegged part#/quantity pegged can requirements. switch be pair requirement in a Is a is tied both to a particular time thought A time phased of as an aggregation of pegged To make the system completely flexible we must to the more powerful and detailed pegged the requirement, period and to a particular order requirement. requirement involves requirements. Irreversibility This which representation, by method of recording removes is Inherent establishing a the in obstacle an vehicle of aggregated for various linkages. A possible way of representing pegged requirements would be to replace MP.TimePhasedREQ(n) with where PR would be a chain of records in a seperate Pegged An Requirements(PR) file. MP.PRanchorptr(n), alternative scheme would be to combine the REQ and the PR files into one file with two chains running through it. These can be combined because the current REQ file Is essentially a subset of the new PR file. also desire requirements to expand caused the by cancel or modify an order. OR chain to contain We might all the an order, so that we can efficiently This combined scheme centralizes the requirements information and eliminates the need for both two seperate files and any references between them. Consequently the OLPP system has a single REO file with PR and -52- OR chains running through it. This structure still a allow pegged to it (REQ.imedhomeREQptr) To rectify this and (REQ.Endhome_REQptr) ommission end use pointers immediately requirement product structure. in the not be traced back to its order pegged the requirement, or even to superior to requirement does included are immediate use in the REQ reversing the record. This still leaves us with the problem of centers and the scheduling of manufacturing work loading of orders. To accomplish this the work center and data bases to back references include must manufacturing specific REQ Manufacturing orders can records, which contain home_C0_ptrs. easily be linked back to the proper requirement records by the of creation requirements a through chain third REQ the contributing to a single manufacturing order are connected by this Manufacturing Requirements (MR) chain is ordered which anchored by The key for this last chain was chosen more uniqueness its and RFQ.Imedhome_REQ~ptr by MO.MRanchorptr. for All file. within a single manufacturing order than for any significant meaning. Linking requirements individual which components load caused them problem, since a given requirement centers In several periods. to the is a slightly more complex may effect several work This can not be handled just by threading another chain through the REQ file. is needed back Instead, what is a seperate file called the LOAD (LD) file, with -53one for record load each period by each requirement. item placed on each work center This new file the have will following two chains in it: CHAIN KEY ANCHOR LD RL Priority Work Center_# WC.LOAD(n).LDanchor_ptr REQ.RLanchorptr center The LD chain connects all the load elements on a work period, thereby The removed if necessary. caused elements a by record LD the all from both work a center homeWCjptr home_REQOptr to speed traverses between the WC and REQ Its primary fields the are load requirement, thus allowing a removed includes also to be analysed and links chain RL single requirement's load to be Each elements load allowing number of priority of the requirement, and the work hours center totals. and a files. needed, the number and period which are being loaded. file system. product, make the REQ file the heart of the OLPP additions These among the center and scheduling data bases. REQ it forms the dynamic interconnection sales, work records are directly accessible from the CO, MP, WC, LD and MO files. When a purpose of going Complete REQ record is examined it is usually for the from communication without the addition of fields. one of through these files to the other. the REQ file is not possible REQ.homeMP-ptr and REQ.homeMO ptr The diagram on the next page represents the the final design of the OLPP file system: 0*a CT'L FREE CHA)AISOl) 1t04t l e| l | lc M10 II- IT T IT P ->CSO|l| c, l -552.5 Accessing Considerations no The final OLPP file system has direct access to particular records. chained they determine must the be searched contents or provision for finding one sequentially existence record rapid Since all the files are in a in order entire long list. lists but The OLPP environment requires both sequential and direct access to files. This to of a specific record. This is an efficient scheme for processing not for Its combination is often acheived by providing some type of index into the lists. Three potential methods of indexing a file are: 1) A sorted index, such as one containing every tenth key value and the address of their with the corresponding records. 2) A multi-level index highest containing every hundredth key value and the subindex for this portion of the file. the would then contain every tenth key value of these specific records level address of The subindex and the address within the range covered by this subindex. 3) A hash table containing the address of each record at a location within the table which Is determined by applying the hashing function to the key values. The first of these schemes speeds up the search reducing the maximum find a specific record. number process by of keys which must be examined to Its only drawback is that the index must -56- necessary so that the key values in the Index are so file, the over out This is when records are added to-the f-ile system, modified be that spread evenly all parts of the file will enjoy The second approximately the same accessing times. reduces the access time even farther but increases the complexity of maximum the index which must be maintained. accessing The hashing method provides the fastest all maximum the reducing by of of records which must be number uniformly provides It also accessed to find a record to two. time fast access for all key values while the indexing methods provide of benefit additional the in the are keys whose fast access only to those Index. An scheme is that it does not hashing require an index to be maintained in a manner. sorted A hash table requires modification to only one location when a record is added to or deleted from the file. cost potential three of the necessary to hash compared the with unnecessary records. a key time These advantages come at value, used by becomes the the time insignificant when first, The drawbacks. the other schemes to access The impact of the second cost, the need for large hash table, depends on the environment of the particular OLPP system. well worth In most time sharing systems, this extra the speed it gains for interactive users. space is Finally, this method does entail either the creation of a hashing function and table which results in unique locations for each key value or the inclusion of an overflow which handles non-unique without seriously degrading system performance. mappings Particular hashing functions, table sizes and overflow methods depend heavily on the range of keys being considered the amount of space available. In fact, for the and limited requirements of the experimental OLPP system, hashing was totally specific hashing algorithms will be Consequently, unnecessary. omitted from this thesis and from the current version of the OLPP system. algorithms This is a reasonably well explored area with many such in use (such as in MULTICS directories). The definition and implementation of specific hashing methods will be postponed until the OLPP system is tailored for particular users. 2.6 File System Primitives and Utilities As was earlier in this chapter, the file system mentioned contains two modular interfaces, one between it and the operating system (Primitives) and These interfaces exist to localize machine programs (Utilities). on one hand and file system conventions on the other. dependence together serve They also a as tool for processing freeing from the need to get deeply involved either in the file routines system between It and the processing another with or the system. operating This makes any modifications to the system, easier to implement. design The of these is critical subroutines performance of the entire OLPP system because all the primary design criterion. the of the Efficiency thereby becomes file very often. the access system parts to However other considerations must also be taken into account before these routines become practical many or functions Should development. aids for system specialized ther be The ones? a and against the What is desirable is a small number of efficient routines which are general enough to on many all or rather files than only one. to dividing both primitives records information into important and a utilities. standardized operate This in turn influences a general design for files which makes them same general simplicity development advantages of the first must be weighed operating efficiency of the second. few look the This can be done by header containing to the file system and a non-standardized trailer containing the rest of the data. In the OLPP environment -59this led to the adoption of a standardized format for chains and the placement of all chains in the beginning of each record. The primitive functions of the OLPP file system are: 1) fread - reads a record from a given file. 2) fstate - tests If a user has a previously saved version of the file system. 3) fwrite - writes a record into a given file. 4) fclose - closes a file. The function explanatory. of these These utilities are based. will are primitive the commands blocks building be on self which The precise construction of these the routines not be described any further, since their structure depends solely on MULTICS. They (ignoring potential differences are the to a only part of the system in PL/1 compilers) which would have to be re-programmed if and when moved should the system OLPP is ever different machine and operating system environment. fread routine. They are all implemented as entries In the The functions performed by the OLPP file system utilities are: system. 1) opn_fs - open file 2) clsfs - close file system. 3) 4) 5) 6) 7) 8) 9) The gen - generate a record in a given file and chain(s). get-a - get a record given a pointer to It. fnd - find a record given a key value and chain. nxt - get the next record on a given chain. put a - put a record given a key value and chain. del-entry - delete a record given a key value & chain. del entry2 - delete an entry from a given chain. functions evident. necessary of these commands should Basically they perform the mundane for list processing. also be pretty self standard functions They were chosen because they were the largest set of utilities which were general enough to be -60to useful system. this any almost routine desired to use the file All file accesses by the processing routines go interface. They through These are the only routines in the system which are dependent on the chain system. which are all system (opnfs) routine. structure conventions of the file implemented as entries in the open file -612.7 User File Commands The direct interface between the user and the file system is the file command portion of the The user command language. formats and functions of these commands are designed to match the abilities and needs of the OLPP users. These commands exist in two groups, one for input and one for output. The input commands are designed to provide of all, or part of, one, or more, and pointers commands and mainataining They the in the static portion of a company's data base (MP, PS, RT, TM, WC and CUS files). these input records in a given file. are the routines responsible for creating chains efficient The exact formats of can be determined by typing out the command name desired followed by the single '?' arguement. The input commands are: 1) build - This command accepts deta fled descriptions It then asks the of part s and creates MP records from them. user to supply the bill of materials fo r each assembly so that it can construct the necessary PS recor ds. The build rout Ine is the one which checks and maIntal ns low level Finally, it asks the user to supply codes automatically. the information necessary for it to bull d th e RT and TM records for each manufactured part. 2) new - This command creates new WC a nd CUS records. 3) entinfo - This command enters new or modified information into any user accessible field of any record. 4) order - This command enters custome r orders into the file system. This involves the generation of one CO and as many REQ records as are necessary, It may also cause a new CUS record to be created. This command invokes the load module and will be discussed more fully in chapter 3. 5) schedule - This command invokes the schedule module, which creates MO records. It will be dis cussed more fully In chapter 4. 6) slide - This command invokes the sl Ide modul e, which regular and maximum cap acities for the new requests It will be initialization of the last (26th) perio d. discussed more fully in chapter 4. -627) remove - This command removes any single record from any file. In an actual implementation of the would probably have to be OLPP modified system these commands to also accept data from devices which are more capable of high volume input. The output commands are designed to output contained within the alternative needs. forms, which Each of either these commands has change the amount of detail in a report or change the way in which Exact formats can information file system in formats which are directly related to specific user various the it is arranged. be obtained once again by typing the command name followed by a '?'. The output commands are: 1) explode - Explodes a gross part requirement into gross requirements for all its components. The possible options are single level, indented, cross sectional and summarized explosions. 2) where - Implodes a part showing how many times and at what levels it appears as a component in any other assemblies. The possible options are single level, indented, cross sectional and summarized. 3) mlist - lists all parts which belong to a specific subset of the MP file. The possible groups are end products, assemblies, subassemblies and detail parts. 4) disinfo - prints out the contents of any record in any file. 5) colist - prints out the contents of the CUS, CO and REQ files associated with a given customer order. Can provide detailed information or a condensation of it. 6) wcprofile - prints out the current load status of one or more work centers in one or more weekly periods. Can also provide regular and maximum capacities, estimated and actual loads, and just those work centers which are loaded beyond a specified point. In an actual OLPP implementation, these commands have would probably to be extended to provide for output to other devices which are more capable of high volume output. Consoles are primarily -63useful for their interactive capability. They are the only device supported by the current OLPP implementation, because they are the main I/0 device of the MULTICS environment and because they are excellent tools for system development. -64CHAPTER THREE LOADING - Introduction to Loading 3.1 The initial step in an creating OLPP system is the routing, generation of a company's master, product structure, work center and customer name files. time, loading, system is primed to begin the three part and updating cycle. At this point the scheduling customer orders enter the system , As they are translated into pegged requirements, which are in turn used to build up an estimated load on the work centers in specific time requirements reverse are chronological requirements in generated generation order relies a from on order's an Originally periods. pegged critical path sequence in its due each This date. product structure which record to contain not only the number of each component is required for an assembly, but also the lead time by which the component's completion must precede the completion of assembly. the This lead time may differ for each component and is the amount the component's due date is offset from that of its assembly. Requirements critical path sequence may be moved ahead of their original if they cause an overload in one period, but can either fit into a preceding period of the same work center or into an alternate work center (specified in the -65RT record) in the same period. standard the to necessary capacity commitments. The estimated loads represent sales manufacture give a timely approximation of the growth They of actual work center loads. Detailed scheduling of manufacturing work center loads is a complex process which is delayed until there is a high probability that no new orders will alter the combination of economic order quantities and start dates which best satisfies the pegged requirements of any part. figures, which Although the actual load are based on manufacturing orders, may differ slightly from the estimated load, the total load on each center shift will be the same. of the quantities sizes. basis load are The only difference will be a minor into padded These scheduled work to periods earlier reach minimum manufacturing as requirement or multiple order orders can form the for weekly production only if they are updated with the status of previous schedules. This feedback is necessary because schedules are at best approximations of reality. They contain enough slack to absorb the effects of minor deviations from what was predicted on the basis of past performances. However, some random occurances may have effects which be absorbed in a weekly schedule. taken into account by the system, all become progressively useless. is completed, completed and cannot If these errors are not future schedules will So after each weeks production the sys tem must be informed of which orders were which weren't. Incomplete orders must be fit -66into succeeding schedules, presumably as soon as possible. The OLPP order entry routine be can used three for purposes: 1) Entering a customer order 2) Costing an order 3) Testing the feasibility of producing an order 4) Finding the earliest possible order delivery date The primary objective of this phase of the OLPP system is the entering of a customer order. of validation the This process customer name or number if they exist, or the generation of a new CUS record if the calculates order. automatic causes they It don't. also cost of each order item and total cost of the After this preliminary bookeeping is accomplished, the producing the order before the due date is is feasibiltiy of determined. When the manufacturing of order this in its critical path sequence causes the overload of one or more work centers, user is notified solution to the the potential of problem. production departments can then work the The scope, cause and marketing and or interactively system to obtain a mutually agreeable solution. with the Once an order has been accepted by the system, the loading routine generates PR chains, updates the estimated work center loads, and generates LD records and chains them into the proper LD and RL chains. The second and third versions of the order command exist so that the user can obtain information generated by one of the order entry part process without incurring the delay and overhead of the functions which he does not want. Feasibility -67checking possible time. possible potential illuminates This gives chance everyone rev ising their for most of the opportunit ies at the earliest bottlenecks the concerned plans and for making the presented to them. The fourth option all ows the user to rely on to calculate the earli est It order the next possible items period. delivery on the plant, it the system possible del ivery date for an order. considers both the tota l the greatest lead times in the MP records of and the feasibility of starting an order in W hen it finds that the theoretically da te i s infeasible due to the current load keeps recursively period until a feasible date is found. trying the next later -68Order Entry 3.2 The order command is designed to be used by the marketing entry. order actual and negotiation customer department for both It has the following three formats: 1) orde <customer name or number> 2) orde r cost 3) orde r -test 4) The orde r -date option -cost be can combined with either the -test or -date option s by placing it on the same command line as In all c ommand fou r cases the wh ich routine, the calls arguement to it. them. name is recognized by the OLPP routine order and passes the If an actual order is being entered, the CUS file is exam ined to veri f y that the specified customer exists. If no such The user generated. information, c an customer is asked found, to a CUS record is new supply the all d CO chain. The missing After the CUS such as ad ress and phone number. record has been settl ed, user's be a new CO record is chained into system this asks for the following order header information and fills it into this record: - date of order - due date priority - discount percentage The last two of these are optio nal. is used by the marketing discount to an entire order. The department This discount percentage give a specific to discount overrides the -69- (1-5) priority The discount. be overriden by the item is the priority in the part's MP record (1-5) and that to added record, but can, in turn, found in the CUS discount customer if the copany does not want ratings Priority basis. to distinguish orders on that are only used by the load leveling instructed are they when routines requirements Any one or all of these may be zero each other. to relative and orders rank to (1-5) record in the CUS low bump to priority requirements from overloaded work centers. In two, options three and four the order routine omits the generation of CUS and CO records and starts immediately to accept order the items. body of the order is entered The in information following the input after the system asks the user to item the columns under the headings printed out on the console: Item Discount Quantity Part# A blank line in the input stream causes the system to ask a new If order#. this is NULL, no more data is read in. Otherwise multiple orders can be read in at the time. same The item discount is needed only in options one and two. information is immediately translated into a chain of REQ This records. chain is the temporary representation of the order and is not inserted into file nor linked to any other files. as an independent working copy primarily by the for of This 'dummy' internal the REQ Instead, it is maintained the order. It is used feasibility checking module as a mechanism -70and for the efficient summarized explosion of the order items as a means of determining the loads which will be placed on In options one and two, it is also used the work centers . help to calculate the cost of each item and of the entire order. The item costs a re retrieved them. to appli ed discounts from the This MP records and the cost information is then output to the us er and stored in either the CO or REQ records. Once an actual order has been accepted by the system, into the REQ file dummy records are moved these and patched into the proper OR and PR chains. In options one and three, control passes from the order entry module to the feasibility checking two, the cost returns to the feasibility information OLPP checking that is tried. command module module. In option is shown to the user and control level. In option four, the is called once for each due date -71Feasibility Checking 3.3 Feasibility checking is center work regular preceding of comparing to produce an order with the periods The system will not accept an it it can guarantee that the center work proper will be available in the proper materials raw the in available capacities order due date. the order until process necessary capacity standard the the capacity and periods. The first step in this process is the comparison the total lead necessary to purchase raw materials or time date detail parts with the amount of time between the current and of This total the order due date. lead time figure is found the in the MP record of every product and represents minimum necessary for the purchasing and manufacturing cycles of time each part. Once this must requirements requirements. simplified by be noting that a products in system could use several the same order. were known the first time a in more times subassembly was within exploded, the the information it learns in the explosion of of the exact same product structure. the be If all these occurrences rather than exploding parts randomly in discovered pegged can process process for each one and save itself the trouble re-explosions their order subassembly may occur several times within a given product and other of all recursive complex This into exploded the completed, is check preliminary explosion of each the order multiple Therefore they are order item, the OLPP -72system explodes assemblies in the order in which they occur on the previosly mentioned dummy REQ chain. This chain is ordered first by low level code and then by part number within groups having the same low level Then as Initially only product requirements are on the chain. each is assembly offsets exploded, the necessary code. quantities and each component are determined and and a new dummy of REQ record generated and patched into the chain for each one. The fact that each component must have a larger low level code than its parent assembly, guarantees that each new record will be inserted farther exploded itself. requirements down chain and will eventually be the Grouping by part for the same part number insures that all can be handled by only one explosion. The overall purpose of this exercise is to compare loads to available capacity, so we must explosion process to determine the total load plant by this order. also load the However the order loaded onto the order. this on the If we knew ahead of time that this order we could actual work centers and look for overloads. is being system, work centers is created on this use placed would fit or if we were committed to this due date, simply order evaluated and not necessarily so a separate unloaded copy of the which to aggregate the load The system also realizes that at a later time it may either have to generate LD chains or modify this order some way to from make it more feasibile. in Consequently, it also -73generates dummy LD chains off the dummy the explosion process. of the file working system of an the to provide order information can either be discarded, into centers during The existence of this separate subset is necessary representation work and an its modified efficient loads. or This integrated file system, according to the user's evaluation of the desirability of the order. The explosion routine examines each part in the order which it appears on the dummy REQ chain by traversing first its RT-TM chains and then its PS chain. three in Each record on these chains is used once for each requirement with this part number and then the next record on fetched. the particular chain is The RT-TM chains are used to claim capacity for each requirement by providing the information necessary to update the estimated load and the LD chains in the proper work center periods. Each RT record represents one operation to be done in one work center while assembling a part. pointer to the TM records which list which this the manufacturing of capacity This file is used both to list the operations which go into a part and to indicate the work center capacity hours necessary to To hours operation will require in periods relative to the due date of this assembly. part. It also contains a speed up manufacture this the loading process, all TM records are aggregated into the first occurrence of a work center in a chain. RT Later occurrences of this same WC in in this RT chain will have neither a WC.WHERE chain nor TM information. This -74- is only to heuristic a speed has no and processing up conceptual significance. The PS chain is used to determine both the and quantity It is time period in which a component part will be required. the potential uniqueness of these quantity/date which pairs a separate REQ record to be generated for each separate cause use of a component the are assemblies, part. chain are examined. cause any items do Therefore, new not Class A, items are also only parts for which both a RT and a PS Detail pa rts and class REQ records add which any depending load on C items not do to be generated and class B & C to the centers. work dummy the class of the part, either none, one or two chains are searched from the MP record. Once the entire dummy REQ chain has been exploded to lowest level requ rements, th e dummy work center records will be loaded wit h the These its loads available can estimated be ca pacities manufacturing this easily load factory order by its feasible and the user requests the this the with compared determine to of order. currently fea sibi 1 ity the due date. system to of When orde r is l oad it, the dummy REQ rec ords can be easily chained into the proper OR and PR chains in the permanent REQ file. as home poi nters must be filled Additional fields in at this point. requirements will be used by the system for scheduling or possible user retrieval. such These for The dummy LD records can be easily inserted into the existing LD chains in the LD file and the -75estimated loads from the estimated loads in the WC file. and REQ records WC dummy records added to the The RL chains in the dummy LD can be moved directly as is into the actual file system. As will be explained more fully in the next chapter, load routine must also build a list of all must be scheduled requirements, the If immediately. load routine must procedure and pass this list to it. the requirements which there are any such invoke the scheduling -763.4 Load Leveling The system outputs a detailed report to the user whenever current plant loads or lead insufficient its infeasible for an order to be produced in sequence terminating at its due date. times make critical path Multiple orders input with the same command cause one summarized report to be given The first part of to the user rather than one for each order. these reports is it a problem description: - which lead times are insufficient and by how much - which work centers are overloaded and by how much - what the capacities of these work centers are To make this listing even more useful the to contributed have system also shows this overload and by how which orders much. This includes both being considered and all other orders already accepted by the the requirements the from order system. When the feasible system is asked to calculate the earliest due date, it prints out both the date which it found and a list of those dates which were tried and discarded. For each unfeasible date it lists the number of work centers which were over loaded overloaded. This the and each percentage average was allows the user to estimate how worthwhile it would be to try to level the loads enough to make an earlier date feasible. The final part of the problem report is an ordered list of potential solutions: 1) Raise the regular capacity of the overloaded work -77center(s) by a specified amount. This represents a commitment or manpower additional either to overtime or to mechanical resources. Try moving requirements to the alternate work centers 2) on depends simple which solution and availability of suitability existence, the a This is listed in the RT records. capacity in another work center in the proper period. This 3) Move certain requirements into earlier periods. is a good solution because it allows the order due date to be This type met a t slightly in :reased inventory carrying costs. of Solution if only is offered per iod. capac ity in this work center in a previous of some available is there Movement a requirement is not a simple process since both its loads and a 11 moved its requirements within stru cture product So it is in an y one of the work centers affected by it. to pr edict whether or not this 'nice' solution will Shift be In addition this movement may cause overloads with it. 4) must the order due date back. all the loads in the dummy work work. entai ls sliding This centers hard over one or more periods and trying again. 5) Decrease the order quantity of one or more items. This requires re-explosion to modify some or all of the dummy REQ, WC and LD records. 6) to a Bump other orders which use an overloaded work center later co-ordination Changes period. with the to customers the se orders require invo ived and some complex -78unloading and reloading. It may also involve the even more troublesome process of unschedul ng and rescheduling. This report should give the user the opportunity to get a feel for the problem and its potentia At this point working out the user has several problem. the the of which command s the special 1oad feasibility out. of give him a better user examine the work center load profile or the t A user may also invoke one of eveling commandszwhich are worked out in the Then files. would For example he could invoke one of the details of some o t her orders. dummy ways situation or he could try one or more of the above solutio ns. file alternative He can either execute any of the regular user file commands picture solutions. and On the basi trial this is solution a regular overload problem report s of this report the user for tested is is printed given the to d scard the solution, save its results as part i of an eventua 1 so ution or finally to load the order and the opportunity saved previously modifications, by permanent por tion of the file system. can simul ate vari 0 us inserting them into the In this way the user solutions on a trial and error basis. can also test the aggregated effect of the most He effective trial sol utions by saving them in a second set of dummy files. This is a 11 made possible because the load separate cop ies of module has three the WC, REQ and LD files within which it These three distinct environments are necessary to: can work. - work out the net effects of some trial -79modification to an order or requirement. - of some number save the combined effects us er of approved solutions. state of the file syst em fou nd. be can until a final solution - original the preserve has user The new set of load leveling commands which the at his disposal to manipulate these envir onments are: exec 1) This is an entry to the - OLPP command> <any OLPP routine which bypasses the initia lization or shutdown the system file called it. This can commands be and is the by mechanism invoked to the procedure whi ch returns which of OLPP regular which from within the environment of the load routine with out losing any of the trial solutions. 2) newcap (WC#> (period#> command <new regular capacity> replaces the regular capacity of a work center pe riod under con sideration. the of with a new value and then reviews the new feasibility order This - new value greater than the Any maximum capacity of the work center is rejected. 3) modify <o ptional order#> -date <new date> This - command modifies the due date of either the specified orde r or Othe order being reviewed (default due date of the order condition). merely en t ails its requirements and sl ding bei ng incrementing the due date of all the Modifying reviewed i its loads forw ard. Other order s must first be exploded and occupy and their loads subt racted from the periods they added to the new period (all 4) modify <optional now within dummy work centers). order#> -item <item list> - This -80command provides new quantities for all parts on the item list Once again the quantity pairs s seperated by commas). (part# order being tested is the default order if no order number must item Each given. is re-exploded and its requirement be quanties and loads modified to reflect the change. - 5) modify -any command modify the of This version requests the system to start bumping low priority orders until earlier As was mentioned all overloads are alleviated. this is a complex process because the REQ records may be in several chains and may involve both estimated and actual until of the most overloaded period and moves it forward feasible first REQ and loads rescheduling of requirements are the date which does not use this work center due This process includes movement period. The with the lowest priority order in the LD chain starts system loads. LD qnd records. move by call the scheduled previously special a order's the This may also involve whose parts any all of to the schedule routine. 6) move -any the - routine load This version of to the instructs command to remove overloads either by attempt moving some of the trial order's requirements to earlier periods or work center. period provide original may time by moving one of its requirements to an alternate Any movement of also components a requirement include the movement of either requirement. This directly or to an earlier requirements which indirectly to the is because the requirements have -81been originally scheduled in necessary to manufacture them. sequence path critical the Changes to the due date of any requirement within a product structure can never be allowed to this violate sequence by finishing a component requirement However, after it is needed by an assembly. component a allow always can it to be finished earlier than it is needed. process, Since the movement of a requirement may be a complex the system employs the heuristic of never trying to relieve an is overload on a work center by this fashion unless there enough least capacity in earlier periods of this available the overload. This does not attempted movements will succed but it which are obviously infeasible. all overload. list single is that all guarantee does those eliminate The system first goes through the dummy LD chain for an overloaded work finds which requirement work center to accept the needs of the causing at period center and requirements whose movement can remove the These are then ordered according to This cost. is searched in order until a feasible movement is found. enough If no single requirements are either feasible or large to remove the overload, the system searchs for any combination of requirements including the first element of whose movement is both feasible and will the LD chain remove the overload. If this doesn't work it ignores the first and tries with the second etc. The initial part of this strategy is in some sense optimal but the second is just looking for the first that works. solution This reflects the overall heuristic nature of the -82If a simple optimizing OLPP system. it exists solution is used , otherwise satisfising heuristics are used. 7) <requirement#> move This command tries to move a - the the requirements which supply components to of movement cause may This specific requirement into an earlier period. The this requirement. requirement# to refers a reference which is printed out in the load diagnostic report and number only which has meaning movement first is made the within load The environment. and then the feasiblity of this new environment is reviewed and reported to the user. move 8) move -alt <requirement#> - This command tries to all operations in the RT chain of this requirement's home MP record to alternate work centers. made All feasible movements are within the dummy WC and LD files and a new status report is output to the user. 9) save - This command adds the WC.LOAD REQ and LD records from environment into the temporary 10) the temporary totals single and the command 'save' environment. load - This commands integrates the WC.LOAD totals and the REQ and LD records from the temporary save environment into the permanent file system. -83CH*TER FOUR - SCHEDULING Scheduling Strategy 4.1 The job of the scheduling module is to convert the A class pegged requirements which were generated by the load module into a schedule of manufacturing The orders. load module considers only the feasible manufacturing sequence of a single part which is closest to scheduling module its operates critical on a provides the user with four potential more path sequence. The global strategy and levels of flexibility: This 1) A seperate 'order strategy' for each part. defines the most economical lot size for each of its manufacturing orders. 'scheduling window' for each part. 2) A seperate periods whose requirements can of This is the number last manufacturing order in the the of size influence the period. primary scheduling 3) A seperate 'product lead time' for each part. This reflects how long the purchasing and manufacturing its components and cycle is for this part and all of period. critical the is period consequently which A standard 'planning horizon' for a given 4) schedule. This describes how many periods the primary planning period will precede the critical period which is the last period in which an order can be scheduled and levels of flexibility These still produced on time. is schedule which a produce to enable the OLPP system and part each of characteristics attuned to the different their producing of means efficient an yet is requirements. The order strategy parameters in each MP record determine the proper number, sizes and dates of manufacturing orders which -84- minimize Generally speaking the is optimal for it and it alone. scheduling algorithm tries to the find fashion distinct a in They allow each part to be scheduled which for each part. and inventory carrying costs set-up of number smallest orders with the maximum economical lot size which fullfill all the requirements remaining the Whenever within includes which many as of order requirements other to insufficient are requirements warrant a maximum size order, it builds one last size period. scheduling primary the in a the scheduling window as possible and as little extra inventory as The scheduling window is a figure which represents possible. the trade-off between costs. It reflects inventory the relative desirability of generating adjoining two small manufacturing orders for the same part in periods that versus set-up and costs carrying of larger one generating one in the earlier period. As we have mentioned scheduling postpones until the previously, there is a very low probability that any new order will make the schedule obsolete. we must purchased and delivered before and they raw materials are proper time to schedule a part is at least the first production. and However, generate the schedule of actual manufacturing orders early enough for all detail parts the system OLPP of to be needed. So the period before its components must be ordered or started into If we waited any longer, the component's due date consequently the order's due date couldn't be met. This -85last fact makes the critical period both the last one in which an order could be accepted for this part and the first one in which we should requirements one know lead the final time into profile the of this future. part's The OLPP scheduler determines which period it should be scheduling each part record. of by for examining the total lead time field in each MP This is a very flexible scheme since the constraints one part are not forced onto any others by the restriction to a common lead time. The scheduler adds a standard planning part's total lead time in order horizon would like. This may order relatively early or where more than one period ahead. each to permit the company to generate its schedule as far ahead of the critical they to period as be appropriate where customers this information is needed -86Scheduling Algorithm 4.2 invoked Is module scheduling The following the by command: 's chedule <standard planning horizon>' 's chedule <list of part#'s and periods>' The first thes e of scheduling by is the recognized by the production routine OLPP calls which have which benn moved sceduling the to reschedule out of a previously or into It is The second command is called direc tly by the load and update modules parts weekly regular department. planning and passes the arguement to it. module for used one the scheduled wo rk cent er period. a process which is done one part at a time, Schedul ing is so it logical is to assume that the weekly scheduler can do However its job In one pass over the MP file. problem makes which ability to move scheduling window into from any period within one the This the primary scheduling period. causes the related movement of all requirements components is The scheduler has the this infeasible. requirements there supply which either directly or indirectly to this requirement. If any of these requirements have a part number less than that of the assembly which already past them. level code sequence is moved, system scheduler will have It must either scan the MP file in low or make repeated passes over the entire file until there is no more shuffling OLPP the of requirements. The has chosen the low lev1 code sequence because it -87avoids having to reschedule scheme which was proportional numbering part used If a company any parts. a to a part's low level code this could be done in one pass over the MP file and any sorted by low level code could rely on part number lists instead. The scheduling list of parts routine by the and to the command the scheduler which of a part's PR periods is the primary period by decides lead time increment is horizon. planning adding its total lead time to the standard The passed other modules is already in this In the regular version of the order. periods because necessary the pegged In requirements are stored by due date and not by start date. the other version, there is no primary period. order scheduler reviews the entire manufacturing the parts Instead the profile of on its list by comparing their MO records with the current status of their pegged requirements. The scheduling module uses five are: order fields which parameters code, scrap percentage, and maximum, minimum, and multiple order size. other order will The order code field determines how be interpreted. the Currently, there is only one order strategy implemented but the inclusion of this field allows the smooth insertion of any other be desired at defines the a later date. The strategies which may scrap percentage field percentage that must be added to orders for this part to insure the completion of the proper number of items. This field is not examined until scheduling time because it it is more efficient for the scheduling routine to add a single -88to increment routine to add it delay This requirement. every to it is for the load than orders manufacturing also simplifies the explosion and load leveling routines since they do not have to worry about adding in or subtracting away scrap Since factors. not reflected in every is percentage this in level of an assembly, they must be roughly This will each parts low level code. enough components to at to insure the completion of proper the start least proportion number of assemblies. parameters are used as their names imply. remaining The be evenl y divisible. a number by which the lot size must algorithm scheduling jp the pegged requirements totals part in its primary scheduling period an d checks of there sufficient inventory available from the previous period. there is any requiremen ts it claime d is be filled, it creates as necessary to fill them. and th e total If there are still decremented. many maximum size is examined. in use unfilled of requirements to orders the to as are scheduling bring the primary period up to maxi mum size. are made b y the invoking of <immediate If As many of these requirements are moved into the primary period as are necessary order is When the unfil led total becomes less than the s ize of a maximum ord er, the rest of window of The multiple field contains lot sizes for this part. economic limits respective The maximum and minimum fields are the pointer> the 'move <distance>' -t the These moves <part#> command. last <period> This command -89specifies a that requirements are and requirement to be moved all value boolean indicates whether which its routine to return feasibili ty determines module by The aborted. length planning hor izon This critical period is period. necessary time lead the components. produce to this a period primary total the and all of its requirement for the multiple and preced ing period minimum fields examined are determine the smallest possible lot siz e which fills requirements unfilled now in the size period. are is made available as all period. primary production necessary to pad the lot siz e up to multiple an can never cause any of its moved into the primary period to create one last maximum order, of If eno ugh requirements can not be primary period. own from part component requirements to be moved into any their length the critical beyond calcula ted Therefore the movement of a into assembly lead does not move req uirements except into scheduler of for total part's primary periods, which, by definiti on, must be the the The both checking available capacity and for violatio n of a time. a the move was feasible and completed or whether it was infeasibl e and move component cert ain number of periods a The '-t' arguement tells the move ahead. of a minimum s ize to the Any or inventory in the next In all cases the only requ irements manufactured ea rl y those for whom there is avail able capacity and which are necessary to round up the remaining originally in the primary period. requirements which were -90When called by the user the scheduler makes one pass over It the MP file for every low level code value. finished is it reaches the maximum low level code which is stored in when the CTL file. modules When called by the load and update it considers onl y parts on its arguement list. Each pair in this list defines a part number and a previ ously scheduled period in which PR chain has been modi fied. the Since peri ods are scheduled seq uentially, with out any reference to past per iods, the schedule r knows that any changes which will have to be specified made to manuf acturing orders will occur only i n the period in or the will requirement manufacturing ones entail orders in following the it. reduction The of of a removal one more or the original requ irement period and possibly the restructuring of orders in fol lowing periods. a new requirement into a period m ay affect the last Inserting manufactu r ing order in that period and the one s in This periods. allows the any ignore to scheduler subsequent they manufactu ring orders which occur before the ch ange since can be not affected by it. The schedul er examines the PR chain containing the change and the first MO part's change. MO chain which could It then proceeds down possibly the MO be chain record this on affected by the the comparing existing orders with the new state of the pert inent PR chains. If anything deviates from what ordinarily is policy for the best order this part, the MO chain is rebuil t from the point of the deviation. This entails creation of the proper MO -91records and scheduler updating reaches Rescheduling in the this of the RFQ,LD and WC files. end manner reflect whatever changes have loading or assumption purchasing that of certain capacity and raw materials. u pdate will occured, decisions it list its whi ch cancelled but is the it were When the finished. schedule to cannot made requirements undo on the needed -92Generation of Manufacturing Orders the scheduling algorithm has decided on the precise Once number, sizes an d dates for needed actual a of particular MO record s and make base. and chain orders which it proceeds to generate the part, ther related changes to the the onto is generated and chained into end of the proper MO chain. record is then supplied with the proper part#, orde r and homeMP-ptr. I ts finish date is lead level data time. the This quan t ity the due date of earliest requi rement and its sta rt date, this date single are a new man facturing order is required, a new Whenever MO record wiith a unique MO# MO# manufacturing minus its the Its status represents that it has been scheduled but no t started o r completed. The most complex part of the MO is the MR which includes each REQ record which is bein g fulfilled chain by this MO. less information W hen the individual pegged requirement sizes or equal than are to the size of the MO, this is a straight forward process of chaining the REQ records onto the proper MR serves an as been padded a indication that this req th inventory to meet rement must be spl specific orde r been size or between two or more MO's. Inventory is handled by generating a separate REQ chaining has requirement This process become s more complex when the MO has schedul ed. when presence of the MR chain pointers wit in a record The chain. record and this new record into the head of the PR chain in the next period and into a MR chain. This record will be examined -93by the scheduler in future periods and eventually replaced by It can be identified as an actual requirement. inventory an imed_homeREQ_ptr and home_COptr fields. record by its null Split requirements are more difficult to handle because a more single REQ record can not be chained into one than The need for split requirements will arise either when chain. a requirement quantity is larger than the maximum lot size or only part of it is needed to complete a maximum lot size when necessary. as into many the of splitting parts as is Each split requirement will have a unique quantity However, each will have be on a seperate MR chain. will and will also occur in adjoining records They EndhomeREQ_ptr. ImedhomeREQptr date, due part#, same the requirement pegged original the by This situation is handled order. and MR on their OR and PR chains, so they can easily be recognized as part of the same original requirement. the same time the MO records are being generated, the At WC and LD files must be reviewed and updated. for loads actual requirements the The loads. necessary to do home_WC-ptr, actual any record REQ spliced into which seperate hour MO must be changed to and period fields LD records must be created for each which load totals updated. reqiurement this are found in the LD records on the RL this chain of each requiremnt. inventory in estimated All has been created and the proper The LD records on the RL chain of has been split must also be split and RL chains for each of the split -94- requirements. Also the LD records must be moved load hours for each of the original into the decremented from the estimated ones. actual load totals and -954.4 Updating When the weekly scheduling run is finished, the user may invoke any of the user file commands to get such reports as: - a profile of each work center capacity and the current actual and estimated load on it. - a summary of all manufacturing orders which are scheduled for future periods. a detailed report of the load facing each work center in any period. - detailed manufacturing orders, with appropriate routing and material requisitions for use as factory paper. These type of reports form the feedback from the system to the user. The production planning department either can accept these as the scheduler has prepared them 'level' which command, or can wish to level the gives access to the interactive load leveling commands discussed in section 3.4. may invoke loads Different users to accomplish goals which are not recognized by the scheduler such as leveling of under capacity manpower requirements. No matter whether the schedules are done solely by the system or interactively with the user, they are approximations of In reality, what should happen under ideal circumstances. purchase orders will be delivered late, workers will get and machines will break down. A weekly schedule may absorb some but not all of these random fluctuations. system still needs is sick What the OLPP a means of updating its knowledge of manufacturing order status to conform with events as they have actually transpired. Unless this is knowledge of the world will not conform to done the reality system's nor will -96its schedules. The by vehi cle which information to the user the user communicates is the 'update' command col umn following the which this causes headings to be printed out to aid user input: MO# Status The system then accepts lines of input until line. Since the update module assumes a majority of orders will be finished on schedule, it has its default status. one. To 'completed' adopted as This allows t he user to list all the MO's whic h have been compl eted without each blank it finds a spe cifying a ease the load of syst em input, for status completed MO's can be reported to the system dail y as they are finished. a weekl y period, or at t he beginn ing of the next the end one, the system must also be notif ied of whic h of weren't prec ise status calc ulate orders. the At finis hed of total on these The time orders impact the sc MO's scheduled user must state the that the system can these delays will have on other The possible status options are: -completed -not started -quantity <Quantity completed> -operation <Last operation sequence# to be completed> The completed status causes the status field of the MO to updated accordingly. be The completed status causes each REQ record on the MO's MR chain to be deleted. will be the sign that the record requirement has This deletion been met and -97consequently is no longer needed by the system in PR, OR or MR chains. sh ifted MO to be This call. the next period. 'move -now <part#> <Imedhome_REQptr>' This movement all requirements which rely on it either directly or indirectly as a component, and all of their moved be must is tells the move module that a specific requirement, wi th together a the The notstarted status causes the entire to by accomplished either arguements are from period# to necessary one to uniquely period# loads two. identify The pegged a requirement. ot her The two representi ng the In order. status degree of options are alternative ways of completion of a manufacturing case one, the existing MO is marke d completed but its quanti ty is reduced to the amount that was A new MO is generated for the next period with the finished. remaining quantity and with a RL chain containi ng for partially marked load. remaining the but quantity, In completed only case and a and new MO %ith to this same In both period number This is again accomplished with a 'move -now <part#> <limedhomeREQptr> call. case, the the remaining load, is cr eated. given the new RL chains. not_started records LD two, the existing MO is cases, the requirements must be moved back two actaully As in the implies the shifting of any superior requirements and all their loads. When weekly updating is finished, the user gets a automatically report of all work centers which have been overloaded -98- as a load invoking for basis After ones. and situation will the of future plans. twenty-five only include one period of past history and periods plant actual However the file system leveled. reasonably load leveling, the with tune in most the implementing additional this system's schedules will be commands, testing leveling various combinations of solutions and effective report He can then use this by the shifting of requirements. To maintain pace withthe passing of old of itself purging of time, the system must be capable periods and initializing new ones. movement This of time is done through the invocation of dead purges information, slides existing periods and initializes new periods. with history, past summarizes the 'slide' command, which of Its first task is to check the status finish dates this MO's all If they are completed (ie. period. have NULL MRanchor-ptr fields) they are included in an end of week manufacturing summary and deleted from the system. they have not been completed, the user is asked to supply When their status and it is acted on as in the update module. system the current period's MO's are all deleted, the all the CO's which have due dates in this period. chains are also null, they are included in a summary and deleted from the system. included in an overdue order number two. report and If checks If their OR completed order Incomplete orders are moved into period This will only occur if the order is delayed by a snag in this weeks production. Other delays are realized by -99a manufacturing order is reported late. whenever system the notified The marketing department is requirements, whic h moved are MO's, cause an orde r due updat e will system become marketing depa rtmen t to warn the c The unrealistic. by itself and remind the da te due the to compensate for Ilate back to date whenever immediately ustomer. After the CO and MO files have been purged, the PR(1) chains are checked to see these chains advice as to Finally, all is how the in the error in on is reported to the user fo r and requireme r t rec ords remaining record Any if they contai n any requirements. should disposed be of. WC.LOAD(1).LD chains are the deleted, since they are no longer needed. At this point all can system the s 1 ide dead information has initializes twenty-five. Then the use r is and LOAD the the they we terms period He has in the prev s week, last of explicitly. It totals to asked to specify how he woul d like the regular and maximum work center capacities to in so the anchor pointers to the LD and PR ch ains in the twenty-sixth per iod to NULL zero. purged, periods two through twenty-six in the LOAD and PR fields into periods one through then been be initialized the options of leaving them as expressing new capacities in a percentage of the last ones or of specifying each When this ent ire slide and updating process has the latest production results and has successfully re-initia lized itself been completed, for another week. the sys tem is in tune with -100- CHAPTER FIVE 5.1 SUMMARY OLPP Capabilities The OLPP system is a production planning tool which is suitable for small custom job shops. It performs eight major functions for this class of user: 1) Data Management - The OLPP engineering, marketing and production data base. system integrates the areas of a company's It maintains this data in a co-ordinated fashion for the user and can provide on-line real time access to any portion of it. Bill 2) system is the descriptions Materials Processor - The heart of the OLPP of portion of all of its also provides system which contains parts used by a company, their bills of material and the operations system file necessary to produce them. The various routines to explode or implode these product structures and to trace all the parts using a common work center. 3) A/B/C Flexible Inventory Control - The OLPP system uses an classification controlled in system which permits parts to be a manner which reflects their cost and volume. It also recognizes the distinction between parts which must be purchased and those which must be manufactured. This allows -101Finally, each part may have each to be handled seperately. its unique cost reflects which strategy ordering distinct a structure. 4) Requirements Generation exploding for facility system OLPP The into requirements order the has detailed requirements for every single component which will be required to This product. a manufacture the permits system make detailed plans which insure that all necessary component parts will be manufactured or purchased. dates for all order average lead times as offsets from the item's and manufacturing all due This critical path sequence co-ordinates the timing due date. of - The OLPP system assigns requirements which are components of some using by item Scheduling Date Due 5) purchasing that requirements so This arrive neither too early nor too late. minimizes both work-in-process inventory and carrying costs on one hand both and missed due dates,confusion and expediting on the other. 6) Load Leveling on placed - By monitoring both sales and the work centers by these commitments, the system all plant gives management a. reasonable estimation of what will be load in like loads The system also compares future periods. these loads with the stated capacities of the work centers and does not allow capabilities. commands the work centers Through a large to be beyond loaded repertoire of load their leveling manager can try a wide variety of load leveling techniques and implement only the most effective ones. The -102- leveling paperwork thereby solutions, and implications of the various load the all calculates system the saving laborious user which would allowing him to test alternatives otherwise be too complex to try. 7) Generation of ordering strategy Orders Manufacturing which exists for each manufacturing orders to be generated in lot economical for it and it alone. these manufacturin'g orders in a - flexible The part sizes allows its which are The system can also output factory paper form which includes routing and material requisition information. 8) Report Generation - The availability comprehensive centralized data base makes it possible for of a the system to provide reports of any level of detail for any level of management. user The system is designed modularly so that the may define commands which generate reports in the format which will be most useful to him. -1035.2 Ngcessary Implement ation Considerations The current version of include all the available the completed, for not yet the resources which and the priority I placed on design Fven when this design in an academic to that rather than a commercial A comm ercial version of OLPP would environment. is sys tem wil 1 not necessarily be a commercially developed transfered does Its pr imary 1 imitations stem from the fact viable tool. it was it, project, implementatio n. than rather system of the design features described in this thesis. This reflects the size of t he were OLPP have to be a commercia 1 time-sharing system and subjected to various shakedown tests. Moving a large software system from is another a machine independent, no two machines or compilers environment and soon moved to written for that MULTICS. either one one these routines. of to try the package but there is no require modification Since the system will probably never be various should system, it made little cost and performance tests which should precede a marketing effort. software routines the environments or the OLPP commercially available on a MULTICS sense Conversion ago year system itself haven't changed enough to to in the transfer of these programs between the IBM 360/65 and the HIS 645 guarantee operate The system was started in an OS/360 exactly the same fashion. were to Although PL/1 is relatively problem. complex environment one be In addition, a generalized developed with the active -104participation of several test users. to be tested performance. within extensively Since this for thesis This allows algorithms consistency, sensitivity and was an academic exercise an academic environment, the more commercially viable, but time consuming and costly, user tests were not feasible. The OLPP system was designed as a part time project, rather than as a full time commercial one. that it represents a sound foundation for becoming production planning tool for small custom job shops. academic I believe a viable -105Future Extensions 5.3 The OLPP system was production planning system. were chosen for experience for be an The functions which would small tc integrated it performs importance to a low cost production their planning system which designed the constitute custom first computer This criterion was job shops. chosen so that the OLPP system would be a well integrated and efficient production planning system, whic :h would constitute a realistic alternative to the manual methodIs of used in many small companies. a it could weigh me?' or 'How will adopt to company it. Instead, far heavier the questioris 'What will it increase my profits?' enterprise could not risk using to implement only the the OLPF such it cost Unless these be answered positivel y with concrete facts , a samll choose clearly manual system, but this alc ne is not sufficient criteria for a small companies now Being a computerized system based on standard man ufacturing practices, outperform planning can low margin system. So OLPP smallest and most economical subset of production planning functions. Once the basic system is operating are several added to it. inventory poten tial ly The control stock maintainance. first worthwhile of these techniques, This capable of more internal is opt ions is a there operat ing, whi ch could be wider variety of such as order point or safety will make system more inventory control. flexible and A second addition might be the addition of report generator which could accept -106, inputs individual to critical Although this is not companies, it would make the adaption of the OLPP system to different would require the addition of purchase order and very integrate would manufacturing orders. and vendors choose with cleanly the files vendor but present control of The system could have the capability to sizes lot which the job of preparation of would optimum take also It could advantage of various price structures. handle the actual purchase orders and might and even automatically remind vendors of future due dates overdue shipments. be This would of purchase orders. control and generation could Another straightforward addition companies easier. the control the formating of new reports. would which of Finally, it could also have the capability of monitoring vendor performance. Two additional features which would the enlarge drastically scope of the system would be financial accounting and job cost reports and even accounts receivable or shop scheduling. accounts payable co-ordinated integrated or system, which The OLPP system could even be information. might with include a such computerized accounting functions as payroll, or shop Job generation of income statements and balance sheets. scheduling involves large amounts of data handling but it is a logical extension to any master scheduling system. two possibilities would drastically change the role of the OLPP system and yet they demonstrate that OLPP first step towards an These last might interactive computer utility be the geared -107toward small manufacturing companies. The potential of computerized systems such as these is vast and in future years our understanding of them should increase, while technological costs should decrease and make them a more widely used tool. -108BIBLIOGRAPHY 1. Baker, C. T., "Fabrication and Assembly Operations" IBM Systems Journal, 4, April 1965, pp 86-136 2. Beard, "Practical Approach for Job Shop Planning and Control", Automation, 15, March 1968, pp 80-88 3. Bill of Materials Processor, White Plains, N.Y., GE20-0114-1,o 1969 4. IBM Booz, Allen and Hamilton, "The Computer's Role in the Manufacturing Industry", Computers and Automation, 15, Dec. 1966 5. Buffa, Elwood , "Production - Inventory Systems - Planning and Control, HomewoodIllinois, Richard Irwin & Co., 1968 6. Byrd, J and Siemans, N., "Production Control Based on the Bil of Materials Processor", industrial Engineering, 3, July 1971, pp 22-33 7. Canning, Richard, Application Packages Coming into their Own", EDP Analyser, 6, July 1967 8. "Creating the Corporate Data Base", EDP Analyser, 8, Feb. 1970 9. "Data Management: File Organization", EDP Analyser, 5, Dec. 19 67 10. "Fast , EDP Analyser, 6, Sept. 11. , "New Management Reporting System", EDP Analyser, 5, Jan. 1967 12. Dimensions _, "New -, "Organizing EDP Analyser, 6, Feb. 13. Response System at Rohr", 1968 in Management Control", 1968 the Corporate Data Base", EDP Analyser, 8, March 1970 14. , "Trends in Data Management", EDP Analyser , "Using Shared Data Files", 9, May 1971 15. 8, Nov. 1970 EDP Analyser, -10916. Church, F. L., "Requirements Generation, Explosions and Bills of Material", IBM Systems Journal, 2, Oct. 1963 pp 268-287 17. Clements, D., "Information Flow, Control Systems and Management", Management International Review,1, Aug. 1968, pp 19-31 18. Dicky, "EUREKA, A Unique Approach to Scheduling", Industrial Engineering, 2, May 1970, pp 59-61 19. Dodd, G., "Elements of Data Management Systems", Computing Surveys, June 1969 20. "EDP Hustles the Huffies out of Hoffman", Business Automation, May 1970 21. Johanson, H., and Gargiulo, G., "Maximizing Production from Existing Capacity", Management Services, 7, Jan. 1970 pp 23-30 22. Gere, W., "Heuristics in Job Shop Scheduling", Management Science, 12, Nov. 1966 23. Grossman, "Using a Computer to Control Automation, 15, Oct. 1968, pp 60-65 Production", 24. Hammerton, "Cost Determinents in Designing Production Control", Automation, 14, Nov. 1967, pp 92-97 25. Holstein, W., "Production Planning and Control Integrated" Harvard Business Review, 46, May 1968, pp 121-140 26. Hurst, E. G., and Mc Namara A., "Heuristic Scheduling in a Wollen Mill", Management Science, 14, Dec. 1967, pp B182-B203 27. Jordan, H., "Check List for Production & Inventory Control", Management Review, 59, Aug. 1970, pp 38-43 28. Korn, K., and Lamb J., "Production & Inventory Control by Computer - A Universal Model", Computers and Automation, 16, May 1967, p 23 29. Malloy, J. P., "Computerizing the Management Cost System in a Small Production Shop", Computers and Automation, 16, July 1967, pp 18-21 30. Modie and Novotny, "Computer Scheduling & Control Systems for Discrete Part Production", Journal of Industrial Engineering, 19, July 1968, -110pp 336-341 31. Nathan, R. V., "Due Date Scheduling by Computer", Data and Control Systems, 4, Oct. 1966, pp 34-40 32. Nicholson, T., and Pullen, R., Production Scheduling Program", Nov. 1970, pp 381-386 " The Design of the SPUR The Computer Bulletin, 33. Opler, A., "Information Retrieval", Business Management, 28, June 1965, pp 36-40 34. Pelham, R., "Putting Information Systems into the Company Control Structure", Data Processing Magazine, July 1970, p 23 35. "Planning and Scheduling Steelworks", Journal of the Iron and Steel Institute, Aug. 1967 36. "Planning for Production Control", Journal of Accountancy, 128, Aug. 1969, pp 82-84 37. "Production and Inventory Control Outlook", Systems, Sept. 1967, pp 12-45 38. The Production and Inventory Control System, White Plains, N.Y., IBM, GE20-0280-2, 1969 39. "Totality and Particularity in Production Planning", Journal of Accountancy, 130, Aug. 1970, pp 82-83 40. Umstead, D., "Are You Overlooking a Cool Million in Your Factory?", Business Management, 39, Dec. 1970, pp 17-19 41. Van De Mark, R. L., "Controlling Production & Inventory in Small Plants", Foundry, May 214, 1967, p195 J., "Heuristic Programs for Decision Making", 42. Wiest, 43. Willis, C., "Computers in Production Control", The Tool and Manufacturing Engineer, Aug. 1968 he ool Harvard Business Review, 44, Sept. - Oct. 1966