A METHOD AND APPARATUS FOR PRESENT ATION OF INTEGRATED PROJECT PLANNING AND COMPUTER AIDED DESIGN
FIELD OF THE INVENTION
The present invention relates to planning, and more specifically, to a method and apparatus for presentation of integrated project planning and computer aided design.
BACKGROUND
Project management tools have been used for many years. Project management tools generally require a user to define a project, and define the steps needed to complete the project. Each of the steps may have multiple levels of sub-steps as well. After the steps are defined, the user can enter the various available resources, such as computer systems, employees, etc. These resources may further be weighted, by cost or time availability. The project management tool then helps the user allocate these resources, in order to have every resource used to the fullest, to accomplish the project goals.
In order to use a prior art project management tool, to reflect a design or manufacturing process, the user must continuously cross-enter information, into the design tool and the project management tool Furthermore, in order to use such a project planning tool, the user must know all of the steps of the project, or update the project plan as further steps are found. Additionally, the project planning tool does not reflect historical states of the project. This is disadvantageous because the precise context of the current situation is not readily available to the user.
SUMMARY OF THE INVENTION
A method and apparatus for the presentation of an integrated project planning and computer aided design system is described. The system includes a plan for displaying to the user a list of tasks in the current plan, a planning
technology including at least one template, the current plan being based on a template from the at least one template. The planning tool further includes a design tool for displaying to the user and permitting the user to perform tasks set forth in the current plan. The planning technology updates the current plan based on a result from the design tool. For one embodiment, the current plan is displayed to the user in an integrated system with the current task being performed by the design tool.
For one embodiment, the current plan and the current task in the design tool are presented in a single view to the user, such that the user can see the current plan, including the history of the project, while executing the current task. Furthermore, for one embodiment, the system presenting the current plan to the user can present the plan at various levels of granularity. For one embodiment, the level of granularity is consistent with the granularity of the design tasks the user performs. Additionally, for one embodiment, the current plan is a deterministic, simplified view of a complex stochastic decision process. The deterministic view of the current plan permits a user to perform tasks without uncertainty as to the appropriateness of the task.
The current plan, for one embodiment, also includes a problem definition such that a non-expert can easily specify complex control problems. For another embodiment, the problem definition may be adjusted to the knowledge level of the user.
BRIEF DESCRIPTION OF THE DRAWINGS
The present invention is illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings and in which like reference numerals refer to similar elements and in which:
Figure 1 is a block diagram of one embodiment of the computer system on which the present system may be implemented.
Figure 2 is a block diagram showing one embodiment of the interaction between the elements of the system.
Figure 3 is a block diagram showing in more detail the elements of the system. Figure 4A is a flowchart of one embodiment of establishing a plan.
Figure 4B is a flowchart of one embodiment of performing a plan.
Figure 5 is a screen shot of one embodiment of the system, during the step approval phase.
Figure 6 is a screen shot of one embodiment of the system during the definition stage.
Figure 7 is a chart showing the progression of a sample project, as steps are performed.
DETAILED DESCRIPTION A method and apparatus for the presentation of integrated project planning and computer aided design is described. The tools and presentation, usually completely separate, are unified into a single system, which permits a perfect reflection of actual project progress and project history. The project plan, project management technology, and computer aided design tools are integrated into a single system which is presented as a unified tool to the user.
Results from the computer aided design tools are automatically reflected in the project plans. Similarly, as the project planning technology determines that the project has changed, because of a result from the computer aided design tool, the project plan is automatically updated to reflect this changed plan. This integration leads to a cohesive project planning and design tool, that permits a non-specialized person to manage a project step-by-step, and keep an accurate project plan and project history. The project technology provides adaptive
project planning and decision support to the user, permitting a non-technical user to use the system.
Figure 1 is one embodiment of a computer system on which the present invention may be implemented. It will be apparent to those of ordinary skill in the art, however that other alternative systems of various system architectures may also be used.
The data processing system illustrated in Figure 1 includes a bus or other internal communication means 145 for communicating information, and a processor 140 coupled to the bus 145 for processing information. The system further comprises a random access memory (RAM) or other volatile storage device 150 (referred to as memory), coupled to bus 145 for storing information and instructions to be executed by processor 140. Main memory 150 also may be used for storing temporary variables or other intermediate information during execution of instructions by processor 140. The system also comprises a read only memory (ROM) and/or static storage device 120 coupled to bus 140 for storing static information and instructions for processor 140, and a data storage device 125 such as a magnetic disk or optical disk and its corresponding disk drive. Data storage device 125 is coupled to bus 145 for storing information and instructions. The system may further be coupled to a display device 170, such as a cathode ray tube (CRT) or a liquid crystal display (LCD) coupled to bus 145 through bus 165 for displaying information to a computer user. An alphanumeric input device 175, including alphanumeric and other keys, may also be coupled to bus 145 through bus 165 for communicating information and command selections to processor 140. An additional user input device is cursor control device 180, such as a mouse, a trackball, stylus, or cursor direction keys coupled to bus 145 through bus 165 for communicating direction information and command selections to processor 140, and for controlling cursor movement on display
device 170. Another device which may optionally be coupled to bus 145 thorough bus 165 is a communication device 190 for accessing other nodes of a distributed system via a network. The communication device 190 may include any of a number of commercially available networking peripheral devices such as those used for coupling to an Ethernet, token ring, Internet, or wide area network. Note that any or all of the components of this system illustrated in Figure 1 and associated hardware may be used in various embodiments of the present invention.
For one embodiment, the planning technology and project plan are implemented in computer software that may be run on the processor 140. For one embodiment, the computer aided design tool may also be software running on the processor 140. For another embodiment the computer aided design tool may be coupled to the computer system 100 via the communication device 190. For one embodiment, the computer aided design tools include tools used for computer-based design, testing, verification and implementation of a system or components of a system. Examples of systems and system components include, but are not limited to, process and equipment controllers, signal processing equipment, communication devices, process monitors, fault detection systems, and computer hardware and software. It will be appreciated by those of ordinary skill in the art that any configuration of the system may be used for various purposes according to the particular implementation. The control logic or software implementing the present invention can be stored in main memory 150, mass storage device 125, or other storage medium locally or remotely accessible to processor 140. Other storage media may include floppy disks, memory cards, flash memory, or CD- ROM drives.
Figure 2 is a block diagram showing one embodiment of the interaction between the elements of the system, which enables a unified presentation of the
system. Presentation encompasses the full interaction of the user and the tool, including, but not limited to, the layout of the display, text and figures presented on the display, instructions and guidance given to the user, input required from the user, response of the tool to user actions, and use of input and output devices by the tool.
The system includes the project plan 220, planning technology 210, and computer aided design tool 230. The planning technology 210 is a system that integrates information provided by a user to create a project plan. The planning technology 210, for one embodiment, also provides continuous updating of the project plan, based on the output of the design tool 230.
For one embodiment, the planning technology 210 uses influence diagrams, cost balancing, and other tools to create an optimal plan based on the input parameters. For another embodiment, the planning technology 210 may use a static plan. For another embodiment, the planning technology 210 uses the technique taught in U.S. Patent No. 5,880,959, entitled "Method for Computer- Aided Design of a Product or Process," issued March 9, 1999, incorporated herein by reference. For another embodiment, the planning technology 210 uses the techniques described in Serial No. , entitled " ," filed concurrently herewith. For another embodiment, another planning technology may be used.
The project plan 220 displays the current project plan, including historical states, to the user. The project plan 220, for one embodiment may be displayed in multiple forms, such as a task tree, pert or Gantt chart, or other format. The project plan 220 is updated by the planning technology 210, to indicate the current "optimal" plan.
For one embodiment, the optimal plan is presented as a single, deterministic view of a complex sequence of uncertain outcomes of the design tasks. For one embodiment, the optimal plan is the single plan that results in the
best design given the most likely unfolding of uncertain events. This plan is determined by considering each design decision in the sequence of future design decisions and identifying all uncertain outcomes whose observation is required to make the decision. The identified outcomes are then made certain by selecting the most probable outcome and assuming that it has occurred, i.e., by assigning it a probability of one. Then, the decision is made that gives the optimal total design cost. This is repeated for each future design decision.
By presenting a single, deterministic, optimal plan, the complexity of presentation and user uncertainty are reduced. The design tool 230 permits the user to perform design tasks. For one embodiment, the design tool 230 uses dialogs and graphs to interface with the user. This permits a relatively non-technical user to understand the design steps and perform them. The results of the design steps performed in the design tool 230 is communicated to the project technology 210. The project technology 210 updates the ι*-oject plan 230, and may alter the plan, based on the results from the design tool 230.
The user 240 interacts directly with the design tool 230, to perform design steps. The user 240 also receives information from the project plan, as to the current state of the plan. The user 240 performs the steps indicated in the design tool 230.
The user 240 may further decide to step back to a previous stage, or "redo" a step. A "redo" does not change the previous results, but permits the user to re-execute the design in a different way, starting from a particular point. Figure 3 is a block diagram showing in more detail the elements of the system. The system described in Figure 3 permits a unified presentation of the current plan and the design step to the user.
The planning technology 210 includes templates 310 for various projects. A template is a description of a particular type of project including the design
steps. The template is a basic starting point and is designed to be optimized by the plan generator 320.
The plan generator 320 takes the template 310, and parameters from the parameter input logic 330, and generates an optimal plan for the purposes of the project , as defined by the user. For one embodiment, the parameter input logic 330 takes input information, such as the user's goals, the user's available resources, etc., and from that, the plan generator 320 generates an optimized plan for the user. The plan generator 320 passes the plan on to the project plan 220. The project plan 220 maintains a current project plan 340. For one embodiment, the current project plan 340 also maintains historical states 350. Historical states 350 are a record of the project plan from the start of the project. This may include states that are no longer current, i.e. steps that have been redone by the user. Thus, for example, if the user, after having finished steps 1-4, goes back and redoes step 3, traditionally the information about the previously performed steps 3 and 4 would disappear. However, in reality, the money and time expended in performing steps 3 and 4 initially does not reappear. Therefore, maintaining historical states 350 provides a more accurate view of the actual progression of the project. The project plan 220 also includes a project display generator 360, which can use different project planning formats to display information to the user. For one embodiment, the user can set his or her preferred display format. For one embodiment, the default display format is a project tree. The current project plan 340 is passed to the design tool 370 in the design tool 230.
The design tool 370 displays the steps to be performed for the current stage of the plan. The user can perform the steps. For one embodiment, the design tool 370 may alternatively display dialog requesting input from sources outside the design tool.
The design tool 230 further includes a dialog and graph generator 380, which displays the dialogs and graphs to the user. The historical states 385 maintains historical states of the design tool 230. This permits a user to review the past results of the plan. The problem formulation logic 395 makes the system accessible to a nonexpert. The problem formulation logic 395 receives the project input from the user, and based on the project definition, with the planning technology 210 step the user through the details of the problem definition. For example, if the user decides to build an actuator, the project formulation logic 395 determines each of the parameters for the actuator, and steps the user through the definition of how and what the actuator should accomplish.
After the user performs the current step within the design tool 370, the result evaluation tool 390 evaluates the result of the current step. The design tool 370 passes this information to the parameter input logic 330. The parameter input logic 330 incorporates this information, and determines if the plan needs to be updated based on this result. If the plan needs to be updated, the parameter input logic 330 passes the data to the plan generator 320, which updates the current project plans 340. In this way, the user simply interacts with the design tool 230, but the project plan is automatically up-to-date and an accurate reflection of the current and past states of the project.
Figure 4A is a flowchart of one embodiment of establishing a plan. The present system steps a user through the definition process. The process starts at block 405, when the user indicates that he or she wishes to start a new project. At block 410, the system receives a project selection from the user. For one embodiment, the user can chose one of a set of projects which have corresponding templates in the project technology.
At block 415, a plan including the rules for planning and design of the select project is loaded by the system. This plan is only a preliminary plan, since
no specific information has been received about the project at this stage. For one embodiment, if the user has previously used this system, and entered parameters that are "global" such as the materials, people, and other resources available for the plan, these are incorporated into the preliminary plan that is loaded. At block 420, the user is guided through the problem definition step. For one embodiment, the problem definition step may include multiple intermediate steps. For example, for defining an actuator, the steps may be defining the baseline recipe and defining a control variable. At this point, the user is guided to through a first step of the problem definition. The presentation to the user presents a decision at a time to the user. This provides decision support to the user, and removes confusion.
At block 425, the process determines whether the problem definition is valid. For example, the user may define a baseline recipe that can not work for the control objective defined. In that instance, the process would determine that the problem definition is not valid, and the process would continue to block 430. At block 430, the user is informed that the project definition is not valid, and the user is prompted for a valid problem definition. For one embodiment, a full explanation is provided, as to why the problem definition is not valid. The process then returns to block 420, to guide the user through the problem definition step again.
If at block 425, the problem definition was found valid, the process continues to block 435. At block 435, the process determines whether there are any remaining problem definition steps. If there are steps remaining, the process returns to block 420, guiding the user through the next problem definition step. If there are no remaining problem definition steps, the process continues to block 440. At block 440, based on the problem definition performed above, the project technology redefines the project plan and generates an optimal project plan based on the problem definition. The project plan displays it to the user.
This project path may include multiple steps, to be performed by different people. The project definition phase ends at block 445.
Figure 4B is a flowchart of one embodiment of the presentation and performance of the plan. The process starts at block 450, when the user starts performing the plan. For one embodiment, the user may put a plan on hold, after having partially performed the plan. When a plan that has been on hold is opened, its previous states are restored. For one embodiment, multiple users may cooperate on a plan, and changes in state are reflected to all users.
At block 453, the current project plan is displayed to the user. The current project plan includes steps that have been previously performed, marked as "done", the current step to be performed, marked "current", and projected future steps. The user can only influence the current step to be performed.
At block 456, the process determines is the user has selected a past task to change. For one embodiment, the user may redo tasks. For example, if the user reaches a point at which the design can not perform as the user wishes, or if the user decides to redesign a stage, the user can chose to do so. This block is placed here, however, for one embodiment, the user, at any stage, may decide to "redo."
If the user has selected a past task to redo, the process continues to block 460. At block 460, the current state is saved. The project plan is updated to show the done tasks, and to display the task selected for a "redo" by the user as the current task. The previous design tool states are restored. The process then returns to block 453, to display the current project plan, as updated.
If at block 456, the user did not chose to select a past task to change, the process continues to block 463.
At block 463, the design function to be performed for the current task is displayed to the user. For one embodiment, this may be done in graphical or dialog form. The user is permitted to execute the current task, or perform the
current design step. For one embodiment, the design function is presented on a right hand side of the user's screen, while the project plan is still shown on a left hand side. This permits the user to see how the current design step links to the overall project plan. At block 467, the results of the just executed task are calculated, and any notices generated are displayed. Such notices may include information regarding warnings, errors, internal errors, or other useful data. The states corresponding to the just executed task are saved as historical states.
At block 470, the process determines whether the user has accepted the task. The user is permitted to accept or reject the just executed task. For one embodiment, the system may provide a suggestion as well. The suggestion, based on the results calculated at block 467, suggests to either reject the task or accept the task.
If the user rejects the task, the process continues to block 473. At block 473, the current state is saved as a historical state, and the task is redisplayed to the user. The process then returns to block 453.
If the user accepts the task, the process continue to block 476. At block 476, the current task is marked done. The task is marked as done on the project plan as well. At block 480, the process determines whether there are any more tasks remaining in the project. If no more tasks remain, the process continues to block 483, where the project ends. The user can at this stage performed an analysis of the project, including review an automatically generated project report, annotate the historical states ~ which the user can do during the project as well — do a project analysis, etc. For one embodiment, since this project saves historical states of the project, it is self-documenting. For one embodiment, this means that using the current system provides an ISO 9000 compliant process.
If there are tasks remaining at block 480, the process continues to block 486.
At block 486, the process determines whether the results of the task just executed by the user changes the predicted tasks for the project. This evaluation is done in the project technology. If the results caused a change in the projected plan, the process continues to block 490.
At block 490, the new predicted tasks are calculated and displayed to the user as projected tasks, in light of the results. As discussed above, this is done in the project technology portion of the system. The process then returns to block 493. If the results did not cause a change, the process continues directly to block 493.
At block 493, the next predicted task is advanced to be the current task. The process then returns to block 453, where the current project plan, as updated, is displayed to the user. In this way, a simple project plan having only one path is displayed to the user, while the complex processing that determines the optimal next step is hidden. This reduces user uncertainty, and simplifies the apparent project.
Figure 5 is a screen shot of one embodiment of the system, during the step approval phase. The screen is showing two portions, the project plan portion 510 and the design portion 520. The project plan portion 510 shows a project tree 550, for project L62. The project tree 550 includes definitions 555, which is the project definition step. The project tree 550 further includes steps that have been performed already 560, marked "done", a current task 570, marked "current", and projected tasks 575. The user can only interact with the current task 570. The project tree 550 includes multiple granularities, or levels of detail. The granularity, for example in Figure 5, includes a high level — definitions, qualification, objective, local model, local design, local validation, diagnosis, etc. — and a lower level — under qualification, choose test, generate recipe, load results,
and analyze. For one embodiment, the user can chose the level of granularity to be displayed. For one embodiment, the granularity of the project plan is consistent with the granularity of the design tasks the user performs. Allowing multiple levels of granularity permits an overview of the entire project, while also permitting a view of the individual tasks to be performed.
The design portion of the screen 520 is displaying a historical task, "validate" shown as done, and highlighted on the task tree 550. Because the task is historical, the user can not redo the task. The user can use the log 535, to add comments to the historical state. T e user selects the done button 540, when a task is completed.
The system provides the user some options 525. For one embodiment, the system may further provide a merit evaluation 530, for each option. The merit evaluation 530 indicates which course the system considers optimal. For one embodiment, the merit split may be any percentage ratio. In this instance, one option is considered optimal, while the other is considered in effect useless. Figure 6 is a screen shot of one embodiment of the system during the definition stage. The project tree 550 still shows project L62. The design portion of the screen 515 shows a current baseline recipe 650, which is selected on the task tree as the current task. A graph 610 is shown. The user can alter the data line 615 on the graph, to appropriately define the baseline recipe for the actuator being currently done. After the user has selected the appropriate data line 615, the user can select the "done" option, and proceed to the next stage, which shows an evaluation of the baseline selected, and permits the user to reject or accept the baseline. Figure 7 is a chart showing the progression of a sample project, as steps are performed. The current project 710 is displayed to the user. The project 710 includes five (5) steps. The user then performs Step A. For one embodiment, the performance of Step A is within a window adjacent to the project plan window,
and shows the project plan. After the user has performed Step A, the updated project 720 is displayed. The updated project 720 indicates that Step A has been done and therefore is a historical state that the user can not influence. Updated project 720 also shows that the current step is Step B. The user then performs Step B.
The updated project 730 indicates that steps A and B are done, and step C is the current step. The user performs step C, and the updated project 740 indicates that steps A-C are done, and the current step is step D.
At this point, the user decides to reject step D, and return to Step B. The updated project 750 indicates that steps A-C have been done, step D has been aborted, and that the current step is Step B'. The previous executed steps do not "disappear" because the user has decided to redo them. In fact, step B' may be identical to step B. The user then performs step B'.
The updated project 760 indicates that step B' is done, and that step C is the current step. For one embodiment, step C may be different from step C, if the user in some way changed step B' from step B. For example, if the user, at step B' defines the actuator differently, the predicted tasks C'-E' may be changed. As the user performs each subsequent step, the project plan is updated continuously. In this way, the user can easily see his or her current status, as well as the historical state of the project. At project plan 790, it is shown that the entire project is done. This system further provides a unified presentation of computer aided design and project planning to form a system that permits a non-technical user to be stepped through the planning and design process.
In this way, the computer aided design and implementation of the project is integrated with a project plan and project planning technology, to form a unified whole that permits a non-expert user to easily execute an entire project, and track the various stages of the project.
In the foregoing specification, the invention has been described with reference to specific exemplary embodiments thereof. It will, however, be evident that various modifications and changes may be made thereto without departing from the broader spirit and scope of the invention as set forth in the appended claims. The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense.