Abstract:
An automated system and method for producing a work breakdown structure for a project, such as a software development project. The resulting work breakdown structure provides a common framework for communicating cost, scope and schedule information relating to the project. The system includes a function point component list which identifies the files and tables which represent the product to be developed for the project or projects. The function point component list also contains information about the elementary transactions by which each file or table is modified or maintained. The system further includes a work breakdown structure template file, in which a list of identifiable tasks and resources required to accomplish a project is maintained. Using the function point component list and the work breakdown structure template file, the system generates an electronic work breakdown structure output file in which information about the total work required to accomplish the objectives of a project is stored. The information contained in the electronic work breakdown structure output file can be extracted in a user defined format and displayed for a user.

Description:
TECHNICAL FIELD 
     The present invention relates generally to project management systems and specifically to computerized systems for producing project management tools. 
     BACKGROUND OF THE INVENTION 
     A work breakdown structure (WBS) is a task oriented, hierarchical listing of activities which subdivides a project into manageable work packages, components or tasks which represent the total work to be accomplished in order to achieve the final objectives of a project. Each descending level of the hierarchy in the work breakdown structure represents an increasingly detailed definition of the project objective. 
     One type of project to which the present invention may be applied is a software development project. Software development projects typically have an overall objective of producing an application software package, such as an accounting or word processing application. Many tasks must be performed to accomplish the objective of developing such a software application package. One of these tasks is building the files which will contain the programs and data required to implement the application. The task of building a file can be further divided into sub tasks such as: designing the file, approving the file and building the file. Each of these tasks must be performed in a specified order and each may require project resources, such as computer programming personnel, to accomplish. 
     It is useful for a program manager to have available a tool for collecting and displaying information relating to the tasks which must be performed to accomplish the objectives of a project. A work breakdown structure provides such a tool. A work breakdown structure provides a common framework for communicating cost, scope and schedule information relating to a project. Work breakdown structures facilitate the management of a project by allowing responsibility for tasks to be allocated, work to be monitored and resources to be assigned. The technique of utilizing a work breakdown structure to assist in managing a project is well known to those skilled in the art of project management. 
     Function points are a measure of the size of computer applications and the projects that build them. The size is measured from a functional, or user, point of view and is independent of the computer language, development methodology, technology or capability of the project team used to develop the application. Function Points give software engineering researchers a way of sizing software through the analysis of the implemented functionality of a system from the user&#39;s point of view. 
     Release 4.0 of the International Function Point Users Group (IFPUG) &#34;Function Point Counting Practices Manual&#34; describes the technique of function point counting and is hereby incorporated by reference. U.S. Pat. No. 5,446,895 to White et al also describes function point analysis and discloses a system for performing function point analysis and creating a function point component file and is hereby incorporated by reference. 
     The present invention provides a means for combining and integrating function point information and project task information to produce a single work breakdown structure output file whose contents can be accessed, organized, and displayed by a user in a variety of user formats and records. 
     U.S. Pat. No. 5,414,843 to Nakamura et al. describes a method and system for generating a project schedule using weighted work processes. The described invention relies upon three primary files: a work procedure file which stores information about each required work process, or collection of tasks; a product file, which stores information about the product to be produced; and a schedule file. These files are used to automatically produce a schedule table for producing a product. However, this reference does not utilize the function point component technique. Further, it does not address the problem of consolidating common tasks between different products. 
     U.S. Pat. No. 5,303,170 provides for creation of tools for computerized process modeling and project planning. However, this reference requires extensive input from a computer operator to enter task information for each individual task. This system results in increased time, cost and potential for human error. 
     U.S. Pat. No. 5,414,843 discloses a method and system for generating a project schedule using weighted work processes. However, the disclosed method and system contain certain limitations. For example, common tasks cannot be consolidated. In addition, resources cannot be allocated to tasks. 
     SUMMARY OF THE INVENTION 
     Accordingly, it is a principal object of the invention to provide a system for generating a work breakdown structure for a project comprising in combination means for storing function point component information, means for storing work task information and processing means for combining the function point component information and the work task information. The system produces an output comprising combined function point component information and work task information, and includes means for storing the output. The system may also include means for displaying the output to an operator. 
     The means for storing work task information, function point component information and the output can be one or more files residing in the memory of a computer. The means for storing work task information and the means for storing function point component information can include means for storing information common to the work task information and the function point component information such as function point component type and function point component action. The work task information stored in the means for storing work task information can include resource information such as resource type and resource category. 
     It is a further object of the invention to provide a system directed by computer hardware for producing a work breakdown structure for a project comprising one or more files for storing project task information, one or more files for storing function point component information, processing means for combining project task information stored in the one or more files for storing project task information with function point component information stored in the one or more files for storing function point component information. 
     The system produces an output comprising combined project task information and function point component information. The processing means are coupled to the one or more files for storing project task information and the one or more files for storing function point component information. The system further comprises one or more files for storing the output and may include means for displaying the output to an operator. The processing means are coupled to the one or more files for storing the output. 
     The system may further include means for storing information at the application level. An application comprises a collection of automated procedures and data supporting business objectives. In this case, the files for storing the output are coupled to the means for storing information at the application level. 
     The processing means may include means for converting a format of the files for storing the output to a format of the means for storing information at the application level. 
     It is a further object of the invention to provide a method for producing a work breakdown structure for a project comprising the steps of: a) storing function point component information, b) storing project task information separately from the stored function point component information, c) combining the function point component information with the project task information to produce an output comprising combined function point component and project task information, and d) storing the output. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     For a further understanding of the invention, as well as its characterizing features, reference should now be made to the accompanying drawings wherein: 
     FIG. 1 is a block diagram illustrating a high level configuration of a system for producing a work breakdown structure in accordance with an embodiment of the present invention. 
     FIG. 1A shows typical contents of the means for storing information shown in FIG. 1. 
     FIG. 2 shows an example of a file structure for the Function Point Component file as it appears to a user. 
     FIG. 3 shows an example of a file structure of a WBS Template File as it appear to a user. 
     FIG. 4 shows an example of the file structure of a WBS Output File as it appears to a user. 
     FIG. 5 is a high level flow chart of the sequence of operations for the processing means of the present invention. 
     FIGS. 6, 6A &amp; 6B are detailed flow charts of the Process Task step in the sequence depicted in FIG. 5. 
    
    
     DESCRIPTION OF THE PREFERRED EMBODIMENTS 
     FIG. 1 diagrammatically illustrates the basic configuration of a system for producing a work breakdown structure for a project in accordance with the preferred embodiment of the present invention. The system 20 comprises processing means 23, means for storing information 30, display means 25 and input means 35 and 36. 
     Processing means 23 can be any type of data processor, or central processing unit (CPU) such as that provided by any commercially available personal computer, microcomputer, mainframe computer or a minicomputer running a corresponding operating system software program. Processing means 23 can also be of custom design and may run customized operating system software. The invention is not dependent on processor manufacturer, computer manufacturer or operating system software manufacturer and may be readily adapted by known means to run in any system. 
     In the preferred embodiment processing means 23 is provided by a commercially available IBM compatible personal computer comprising an Intel® 486 processor with a 66 MHZ clock speed, 8 MBYTES Random Access Memory (RAM),500 MByte hard disk drive, high density diskette drive, keyboard, mouse and super video graphics adapter. The commercially available computer employed in the preferred embodiment further includes Microsoft WINDOWS™ version 3.1 operating system software. Other commercially available operating systems, such as MS-DOS®, WINDOWS 95™, Unix, etc. may be employed in conjunction with a compatible processing means to comprise system 20. 
     Means for storing information 30 can be any computer readable storage means and may be comprised of any type of Random Access Memory (RAM), Read Only Memory (ROM), hard disk, floppy disk, magnetic, optical, charge coupled, or any other computer readable storage medium or device or devices, used singly or in combination. In the preferred embodiment means for storing information 30 includes a hard disk having a storage capacity of 500 Mbytes in combination with 16 Mbytes of random access memory, and a Read Only Memory (ROM) containing a Basic Input Output System (BIOS) program compatible with processing means 23. 
     The first and second input means 35 and 36 of the preferred embodiment are a standard personal computer keyboard and a mouse. Use of a mouse is recommended for ease of operator input but is not required. 
     FIG. 1A depicts the contents of means for storing information 30. The physical placement on the diagram of the components depicted in FIG. 1A, as well as their relationship to each other, is for illustrative purposes only and does not imply any particular physical or logical allocation of memory space. 
     Means for storing information 30 includes means for storing function point component (FPC) information 45. In the preferred embodiment means for storing function point component information 45 is a file designated as a Function Point Component File. For purposes of this specification the unmodified term file means an organized collection of data records stored on a computer readable device. 
     Means for storing information 30 further includes means for storing work task information 47. In the preferred embodiment means for storing work task information 47 comprises a file designated as a Work Breakdown Structure (WBS) Template File. 
     Means for storing information 30 further includes means for storing combined function point component information and work task information 49. In the preferred embodiment means for storing combined function point component information and work task information 49 is a file designated as WBS Output File or simply Output file. 
     Further included in means for storing information 30 are means for storing operating system files 44, means for storing information at the application level 43, and means for storing WBS program files 50. Files 44, 43, and 50 may include files having one or more of three general file definitions. The first definition is for the unmodified use of the term file as provided above. Further definitions include the modified term `data file` which is a file containing data representations other than records, and the modified term `program file` which is a file containing instructions to be executed by a processing means such as processing means 23. 
     Operating system files are those files which provide basic operating features and capabilities to a computer and are normally supplied as part of any commercially available computer. Operating system files can include files, data files and program files. For example, the MS-DOS® and Microsoft WINDOWS™ operating systems are comprised of operating system files. 
     Application level files are those files which comprise application level software. An application, and application level software, comprises a collection of automated procedures and data supporting business objectives. 
     In the preferred embodiment of the present invention the application level software Microsoft Project® is utilized to provide a means for a user to create and store work task information in means for storing work task information 47. Microsoft Project® is a readily available commercial software product and is accompanied by manufacturer&#39;s instructions for its use and application. However, the invention is not restricted to the use of Microsoft Project® to create and store work task information. Any application level software which allows a user to create work task information and store the work task information in means for storing work task information may be used in the present invention. 
     Further included in the preferred embodiment of the present invention is the application level software Productivity Manager™. Productivity Manager™ is a commercially available application which can be obtained from Productivity Management Group, Inc. Of Williamsville, N.Y., along with detailed instructions for its use. Productivity Manager™ provides a convenient means for a user to create function point component information and store the information in the means for storing function point component information 45. However, the invention is not limited to the use of Productivity Manager™. Any commercially available application which allows a user to create function point component information and store the information in means for storing function point component information 45 can be utilized in the present invention. 
     Means for storing WBS program files 50 contains the WBS program files which are instructions and data for directing processing means 23 to carry out the steps required to implement the present invention. In the preferred embodiment the WBS program files are developed using the commercially available, and well known Microsoft Foxpro® database application software and the Microsoft Foxpro® database programming language. However, the WBS program files may be developed using other programming languages and application level software while remaining within the scope of the present invention. 
     Returning to FIG. 1, display means 25 can be any commercially available display device, or a custom designed or proprietary display device which is compatible with the commercial computer system providing processing means 23. Display means 25 preferably is a computer monitor having as a minimum Video Graphics Adapter (VGA) capability and a resolution of at least 640×480 pixels per square inch. In the preferred embodiment display means 25 is a commercially available 21&#34; NEC MultiSync XE 21 monitor used in conjunction with a Diamond Video 2000 graphics adapter. 
     Input means 35 and 36 provide a means for a user to communicate with and enter data into system 20. In the preferred embodiment input means 35 comprises a keyboard and input means 36 comprises a mouse. Other input means including scanners, light pens, touch screens, modems, etc. may be utilized and remain within the scope of the present invention. 
     FIG. 2 shows an example of the file structure and content of a typical Function Point Component File 60 as it appears to a user. A function point component is defined to be a grouping of data or control information or a basic transaction in a system, which provides the lowest level of functionality in a system from the user&#39;s perspective. Function Point Component File 60 is a file in which a list of function point components, and information associated with each function point component, is stored. Function Point Component File 60 resides in means for storing function point component information 45. 
     In the preferred embodiment of the present invention Function Point Component File 60 is comprised of a list of function point component descriptions 65. Each function point component description in list 65 has further descriptive information associated with it. This descriptive information may include, but is not limited to the following: Prefix 66, Suffix 67, Description 65, Quantity 68, Type 69, Action 70, Field Type Referenced 1(FTR1) 71, Data Element Type 1(DET1) 72, and Rate 73. 
     Not all of these fields are required to implement the present invention. As a minimum requirement Function Point Component File 60 must also contain function point component Type field 69, and Action field 70. 
     In prefix field 66 an identifier for each function point component named in list 65 is provided. In suffix field 67 an identifier is provided for each function point component in list 65. Together, prefix 66 and suffix 67 provide a unique identifier for each function point component named in list 65. In description field 65 an alphanumeric description of the function point component is provided. Quantity field 68 contains an indication of the number of function point components of each description in list 65. 
     Type field 69 contains an indication of which of five function point component types: External Interface File (EIF), Internal Logical File (ILF), External Output (EO), External Input (EI), and External Inquiry (EQ) describes each entry in list 65. The definitions and functions of each of the five function point component types are provided in U.S. Pat. No. 5,446,895 to White et al. 
     Action field 70 contains information indicating whether the action to be performed on the function point component is Add, Change or Delete or No Action. File Types Referenced (FTR) field 71 indicates the number of file types referenced. The file types referenced are the number of internal logical files used during the processing of a transaction. 
     DET field 72 indicates the number of unique occurrences of data, which is also referred to as a data element type, or field. RATE field 73 indicates the relative size of the function point component. 
     Each of the above fields and their definitions are known in the art and described in U.S. Pat. No. 5,446,895 to White. 
     The Function Point Component List file is pre constructed by the user. As previously described, construction can be accomplished by means of any convenient database, productivity or project management software package such as Productivity Manager.™ 
     FIG. 3 shows an example of the file structure of a WBS Template File 100 as it appears to a user. WBS template file 100 contains work task information which can include the following: a list of work task names as appear in column 120; unique task identifiers for each work task as appear in column 110; an indication, which may be pictorial, of all predecessor and successor tasks as well as other schedule information associated with the task, as appears in column 143; an indication whether the task is static or dynamic as appears in column 130; and an indication of all of the function point component types that apply to the task, if any, as appears in columns 135-139; and an indication of each action to be performed as appears in columns 140-142. The WBS template file may further include names of resources assigned to each task, the initials of the resource assigned to the task and a description of any deliverable items associated with the task. 
     For purposes of this specification a predecessor task associated with a given work task is defined to be a task which must be started before the given work task is started. A successor task associated with a given work task is defined to be a task which cannot be started until the given work task is started. 
     A static task is defined to be a task which occurs once in the lifetime of a project regardless of the frequency of occurrence of its function point components. 
     FIG. 4 shows an example of the file structure of a WBS Output File 200 as it appears to the user. Column 210 of WBS Output File 200 contains a task identifier (ID). The task identifier is a unique numerical identifier assigned to each task in the WBS Output File. Column 220 contains the summary task name 226, i.e., the task name, such as BUILD FILE, as it appears in the WBS template file; the function point component prefix 221, e.g. INVOICE, as it appears in the function point component file; and the function point component suffix 222, as it appears in the function point component file. Column 220 also contains the name of the subtasks associated with the summary task, e.g. Design File, Approve Design, Build File, etc. 
     Column 223 of WBS Output File 200 contains an indication of the duration of each summary task and sub-task. For example an entry of 7d in column 223 indicates a task duration of 7 days. WBS Output File 200 also contains a graphical illustration of the predecessor and successor task relationship of each task in column 220 and may presented along with an indication of the month, year and day in which the tasks are scheduled. In the preferred embodiment summary tasks are indicated in column 224 by a heavy solid line 225 indicating duration of the summary task over months and days. Boxes in column 224 indicate tasks and arrows indicate the sequence in which the tasks are to be performed. Predecessor and successor relationship of tasks may be presented in alternate formats such as numerical or alphabetical. These alternate formats remain within the scope of the present invention. 
     FIG. 5 is a high level flow chart illustrating the sequence of operations by which processing means 23 creates the WBS Output File described above. Appendix A, attached hereto, includes a high level step by step description of the computer program which controls the sequence of operations for processing means 23. Appendix B includes a detailed code listing of the computer program which controls the sequence of operations for processing means 23. The program instructions are stored in the WBS program file which resides in means for storing program files 50. 
     The sequence is initiated by the user via user input to an application level program such as Productivity Manager™. This application level program then passes control of processing means 23 to the WBS Program. Once the process is initiated the process runs without user interaction. 
     After initiation step 10, the WBS template file is opened, if not already opened, and the system is prepared to read the task information in the WBS template file in sequential order, step 15. Next, the task information is read and processed, step 20. The detailed steps comprising step 20 for reading and processing tasks are shown in FIG. 6. and discussed hereinafter. 
     After the task is read and processed as in step 20, it is determined whether the task is the last task in the WBS Template File, step 50. If the answer is yes, the process terminates and control is returned to the application level program which called the WBS program, step 55. If the answer is no, the next task is selected from the WBS Template File, step 60. After the next task is selected in step 60, steps 20 and 50 are repeated until the last task has been read and processed. 
     FIG. 6 is a detailed flow chart of Read and Process step 20, in the sequence depicted in FIG. 5. Appendix B includes a code listing of the computer program which controls the read and process step. 
     First, the first task is read from the WBS template file, step 22. Next it is determined whether the task is static, step 24. If the answer is no, the next step is 25, to build a list of function point components which have the same function point component type and action as the task read from the WBS template file in step 22. These are the function point components associated with the task, i.e., associated function point components. Step 26 reads the first unique function point component identification number from the list of function point components built in step 25. 
     Next, the task information read in step 22 is combined with the function point component information from the first function point component in the associated function point component list, step 30. Execution of step 30 also results in converting the format of the combined information to the format of the WBS Output File. The format of the WBS Output File should be chosen to be compatible with the application software used to build the WBS Template File. Appendix C contains a computer program listing of the steps required to convert a file in Microsoft Project® format to the format of the WBS Output File. In the preferred embodiment the format of the WBS Output File is compatible with the Productivity Manager™ application software package. 
     Returning to step 24, if the task is static and thus the answer is yes, no associated function point component is built for that task and step 30 is executed next. 
     After the task information is converted to the proper format it is written to the WBS output file, step 32. Next, it is determined whether the successor list for this task is complete. It is not permissible to write the successor list for the task read in step 22 to the WBS Output File until the successor list is complete. If the successor list is complete, the successor list is written to the WBS Output File, step 36. Then, step 37--build the predecessor list for the task, is performed. If the answer is no, the successor list is not written to the WBS Output File. Instead step 37 is performed--build the predecessor list for the task. 
     The next step, 38, is to determine whether it is permissible to write the predecessor list to the WBS Output File. As with the successor list, it is not permissible to write the predecessor list to the WBS Output File until the predecessor list is complete. If the predecessor list is complete, the predecessor list is written to the WBS Output File, step 39. If the predecessor list is not complete then step 40 is performed after step 38. 
     Step 40 determines whether the task is a summary task. A summary task is one which comprises and summarizes lower level tasks, i.e., sub tasks. If the task is a summary task, then steps 22 through 40 are repeated until a non summary task, or sub task, is read. When steps 22 through 39 have been performed for a sub task, execution of step 40 will result in a &#34;no&#34; answer. In that case, the next step 41 is to determine if the task is static. If the task is static, i.e., performed only once during the lifetime of the project then the process of step 20 ends and control reverts to the main WBS program. 
     If the task is not static, i.e., it occurs more than once during the lifetime of the project, then execution of step 42 determines if there are any more function point components in the function point component list associated with this task. If there are no more function point components associated with the task, the step 20 ends and control reverts to the main WBS program. 
     If there are more function point components in the function point component list associated with this task then the next function point component identification is obtained, step 43. Then steps 30 through 42 are repeated until there are no more function point components in the function point component list associated with this task. At that point step 20 ends and control reverts to the main WBS program. 
     For purposes of this specification the process of creating a task in the WBS Output File for each function point component associated with a task in the WBS Template File is referred to as exploding and is represented by steps 25-44 of FIG. 6A and 6B. 
     While the invention has been described in conjunction with various embodiments, they are illustrative only. Accordingly, many alternatives, modifications and variations will be apparent to persons skilled in the art in light of the foregoing detailed description. The foregoing description is intended to embrace all such alternatives and variations falling within the spirit and broad scope of the appended claims. ##SPC1##