WO1993012488A1 - Measurement analysis software system and method - Google Patents

Measurement analysis software system and method Download PDF

Info

Publication number
WO1993012488A1
WO1993012488A1 PCT/US1992/010905 US9210905W WO9312488A1 WO 1993012488 A1 WO1993012488 A1 WO 1993012488A1 US 9210905 W US9210905 W US 9210905W WO 9312488 A1 WO9312488 A1 WO 9312488A1
Authority
WO
WIPO (PCT)
Prior art keywords
application
project
data
information
component
Prior art date
Application number
PCT/US1992/010905
Other languages
French (fr)
Inventor
Leonard R. White
Caroline K. White
Original Assignee
White Leonard R
White Caroline K
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by White Leonard R, White Caroline K filed Critical White Leonard R
Publication of WO1993012488A1 publication Critical patent/WO1993012488A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/18Complex mathematical operations for evaluating statistical data, e.g. average values, frequency distributions, probability functions, regression analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q99/00Subject matter not provided for in other groups of this subclass

Definitions

  • This invention relates to measurement analysis software, and more particularly to a new and improved measurement analysis repository for software development and maintenance processes including new ways to automate a specific measurement analysis method.
  • the Process Model is a measurement analysis method that is flexible enough to be used for all organizations that employ knowledge workers. Some of the career fields that knowledge workers are employed include the legal profession, engineering, and software development, etc.
  • the present invention automates the process model analysis method for software development personnel.
  • Fig. 1 shows the process model, as it is automated by the present invention.
  • the process model contains three basic components of work analysis: input 1.1, process 1.2, and output 1.3.
  • Input and output are expressed in terms of types of measures that gauge the work effort exerted in the task and the result of that work effort. These measures be discussed in detail presently.
  • the input and output measures are combined to produce metrics, which are represented by the performance indicators box designated 1.4 in the model.
  • Performance Indicators are productivity ratios that indicate the rate of product delivery, support and quality. Metrics will be discussed in detail presently.
  • a process is a way in which tasks are completed for a project.
  • Process attribute data provides information about the people, work environment, tools, and techniques used to complete the work product.
  • the Process model of Fig. 1 operates in the following way: The input 1.1 and output 1.2 of the project are measured. The measures are combined to produce metrics 1.4. The metrics are examined and charted to determine how they compare with other project results in the organization. The project metric charts show the statistical groupings of the organization's projects. An analyst can then determine the upper and lower control limits with metric charts such as the upper and lower control limits graph, shown in Fig. 2. A project that is within the control limits 2.1, 2.2 can be considered an average project.
  • the analyst is interested in the projects that register outside the control limits. He or she compares the attributes of the projects to determine if there is a significant difference in team composition, work environment factors, tools used, or techniques used between the above average and below average projects. If there is, the analyst could recommend that attribute to be standardized for all projects in the organization.
  • the process model of Fig 1. identifies the ways in which the quality and productivity of processes can be improved internally.
  • measures comprise the input and output of a project. There are two input measures, time and cost, and two output measures, failure defects and function points. Each of these four measures now will be described in detail.
  • Time is work effort represented in hours, days, weeks, months, or years. Time measures are used to record project delivery, repair, enhancement or support durations. Time is calculated with output measures to determine project delivery, maintenance efficiency, and improvement efficiency metrics. Metrics will be described in detail presently. Cost is the monetary expenditures of the project. Costs are calculated with output measures to determine cost metrics. Failure defects occur when a product does not meet specifications. While a defective product is not deliverable, the effort that produced the defect still must be taken into account. Once defects are measured they are combined with input and output ratios to produce quality metrics.
  • Function points measure the functionality of software from the user's prospective, regardless of the development or maintenance technology involved. As an output measure, function points are the overall size measure for software applications and projects.
  • An internal logical file is a user identifiable group of logically related data or control information maintained and utilized within the boundary of the application.
  • An external interface file is a user
  • An external input process data or control information which enters, the application's external boundary, and through a unique logical process maintains an internal logical file and initiates or controls processing.
  • An external output processes data or control information that exits the application's boundary.
  • An external inquiry is a unique input/output combination, where an input causes an immediate output and an internal logical file is not maintained.
  • a function point counter tallies the number of record types and data element types for the files of the application, and the number of file types referenced and data element types for inputs, outputs, and inquiries.
  • a record type is unique record format within an internal logical or external interface file.
  • File types referenced are the number of internal logical files or external interface files read, created, or updated by a component.
  • a data element type is a unique occurrence of data, which is also referred to as a data element variable, or field. Once these are counted, the counter rates the component as low, average, or high according to a defined matrix.
  • Table I A sample of a matrix for external inputs is presented in Table I as follows:
  • the weighted component totals are then added to produce the unadjusted function point count.
  • the counter then rates the fourteen General System Characteristics, which account for the design characteristics of an application. These characteristics include factors that make the application unique, and ensure that the function point count that reflects the application is precise and not generic.
  • the counter rates each characteristic on a defined scale of 0 - 5.
  • the characteristics are totalled, multiplied by .01 and added to .65 to determine the value adjustment factor.
  • the value adjustment factor is multiplied by the unadjusted function point count to determine the final adjusted function point count.
  • the adjusted function point count is the function point measure listed on the output box on the process model, i.e. output 1.3 in Fig.1.
  • Function points are only a measure when analyzing the work effort for software development and maintenance.
  • the rules that regulate function point counting can be adapted to work as an appropriate measure reflecting a court's functionality.
  • the components can be changed to case types for a court system, and these case types can be assigned criteria to determine low, average, and high rating.
  • Appropriate general characteristics can be defined to relate to the unique aspects of different courts and then be rated. Similar formulas can than then be used to calculate unadjusted and adjusted "judicial points.” This measure can then be considered by work measurement analysts with the other measures in the process model to determine the productivity and quality metrics of the court system.
  • Metrics are the result of the combination of the measures listed in the process model.
  • the types of metrics that can be determined from the measures are inventory (i.e. total function points), quality (i.e. number of defects divided by function points), productivity (function points divided by time), and cost (dollars divided by function points).
  • Metrics are the flags for projects performing above average, average, or below average.
  • Attributes are tracked in the process model and describe the factors that affect the productivity and quality of a project.
  • the attributes comprise the process box of the process model and include teams, work environment, tools, and techniques.
  • Information such as the size of the team and team experience may explain why a project has above average, average, or below average metrics. For example, a team of just the right size that has good job experience and job knowledge would probably produce above average productivity and quality metrics.
  • Work Environment information characterizes a team's work surroundings. Ergonomics are an important factor in productivity and quality. For example, poor productivity and quality metrics may result from a project team that is placed in a noisy and cramped environment.
  • Tools are the utilities used to complete a project. They include both hardware (such as mainframes or personal computers) and software (such as databases and languages) instruments. Poor productivity and quality metrics may be caused by tools that are faulty or out bf date.
  • the present invention is a software package that includes all elements of the process model. It is the only software package for software development and maintenance
  • the present invention introduces a number of unique features.
  • the present invention is the only function point analysis software package that incorporates all elements of the process model. What is also unique about this invention is that it captures all process model information at the project and application level.
  • An application is a cohesive collection of automated procedures and data supporting a business objective.
  • An example of an application is a payroll computer program that logs hours, salary rates, tax rules, etc.
  • a project is a collection of work tasks with a time frame that creates new applications and maintains existing ones. Since projects create and maintain applications, an application, such as the payroll program, may have many projects related to it. For this reason it is important for a function point analysis tool to ensure that applications and projects be treated as separate, albeit related, entities.
  • Another unique feature of the present invention is accurate movement of data between application and projects. Since projects create and maintain applications, an application's function point count is the sum of the counts of its related projects. For this reason the present invention introduces five unique methods to move function point information between projects and applications: application update of a baseline or development project;
  • the movement of data protects the integrity of the function point counts for applications and projects. It is a feature that is unique to function point analysis software, as will be detailed presently.
  • Another unique feature of the present invention is component explosion.
  • the data entry of function point counts can be a time consuming task.
  • the present invention introduces a component explosion feature to function point software. This feature enables the data processor to enter multiple components with one entry as will be described presently.
  • Another unique feature of the present invention is report flagging for applications or projects that contain faulty data.
  • the present invention helps software development and maintenance managers to identify projects and applications that fall outside of defined upper and lower control limits of Fig. 2. If an application or project contains false data, the results of the control limit graph could be skewed. For this reason, the present invention contains a report flag that allows users to include or exclude projects and applications from reporting as will be described in detail presently. No other function point analysis software package includes this feature.
  • Fig. 1 is a schematic block diagram showing the process model as it is automated by the present invention
  • Fig. 2 is a metric chart in the form of a graph of upper and lower control limits
  • Fig. 3 is a schematic block diagram illustrating data organization relationships within the present invention.
  • Fig. 5 is a flow chart representing a sample information system showing use of the present invention to establish an enhancement project
  • Fig. 6 is a flow chart of the method for analysis that the present invention facilitates
  • Fig. 7 is an entity relationship diagram showing the integrated application data sets according to the present invention for the application level
  • Fig. 8 is an entity relationship diagram showing the integrated application data sets according to the present invention for the project level
  • Fig. 9 is a flow chart illustrating component explosion of the add type according to the present invention.
  • Fig.10 is a flow chart illustrating component explosion of the maintenance type according to the present invention.
  • Fig. 11 is an entity relationship diagram showing mapping of project information to the application according to the present invention.
  • Fig.12 is a flow chart of the process used by the present invention to update enhancement project information to the application;
  • Fig.14 is a flow chart of the process used by the present invention to create a
  • Fig. 15 is a flow chart of the process used by the present invention to create an enhancement project copying application that are to be modified
  • Fig. 16 is a flow chart of the method used by the present invention to reverse the effects for the last project update to the application;
  • Fig. 17 is a flow chart illustrating the project analysis flag according to the present invention.
  • Fig. 18 is a flow chart illustrating the application analysis flag according to the present invention.
  • Function Point Analysis is performed by creating metrics from measures, selecting key performance indicators, and evaluating attributes' roles in
  • the Value Adjustment Factor is applied to the Total Unadjusted Function points.
  • the result, Total Function Points represents the size of the application, as follows:
  • Total Function Points Unadjusted Function Points x Value Adjustment Factor Summary information about the other Output in the process model, Failure Defects, is taken from a problem tracking system. Using either paper forms or an electronic spreadsheet, the measurement totals outlined above are recorded and the metrics that are Performance Indicators within an organization are calculated. Data for each performance indicator must be plotted or ranked to detect trends and variations from the norm.
  • the measurement totals (time, cost, size, and failure defects) are recorded and the metrics that are Performance Indicators within an organization are calculated. Data for each performance indicator is plotted or ranked to observe trends and variations from the norm.
  • cost data is stored to the level of detail defined by the system administrator, and it is also stored in summary format.
  • project costs are stored to the level of detail defined by the system administrator, and summarized cost data also is stored.
  • defect data is stored to the level of detail defined by the system administrator, and this includes data about the nature and severity of the problem.
  • project defects details are stored to the level of detail defined by the system administrator.
  • the process block of the process model, Fig. 1 encompasses the people that produced output, the physical environment in which they worked, and the tools/techniques they used to perform their tasks.
  • the present invention stores application level information about people, environment, tools/techniques.
  • the present invention stores project level information about people, environment, tools/techniques, i.e. project attributes.
  • the invention can be used to support the Work Product, Quality, and Financial ratios presented by the International Function Point Users Group.
  • Use of process control methods in highlighting metrics that indicate exceptionally good or unusually poor performance that facilitates analysis is found only in the present invention.
  • integration of data within the invention in conjunction with the detail at which the data is captured provides more control of the function point data and better analysis capability.
  • the second unique feature, accurate movement of data is characterized by copying application detail to project, updating project detail to application and conflict resolution. This provides the mechanism for managing the process model data in the application support and project delivery environment.
  • the third unique feature, component explosion may be viewed as explosion of summary function point data and ensures the proper level of detail for capturing function point component information.
  • the fourth unique feature is report flagging.
  • the present invention provides a facility to exclude data that could produce misleading analysis results. It provides the only function point analysis software that has the process to exclude applications and exclude projects from reports.
  • the present invention is more than an electronic replacement for the manual tracking of process model information.
  • the functionality provided advances the prior art in that all process model information is made available for analysis. In addition, all the process data necessary for further investigation is available in the repository.
  • the present invention also introduces a mechanism for ensuring the integrity of the component data through the previously mentioned method of component explosion.
  • Fig. 3 illustrates data organization relationships within the present invention.
  • Data can be entered at the project or application levels.
  • Each Project 3.1, 3.2, 3.3, 3.4 is attached to an application 3.5, 3.6, 3.7.
  • Application records are linked to a Responsibility Center 3.8, 3.9, 3.10, 3.11.
  • Responsibility Centers report to Organizations 3.12, 3.13.
  • Organization level data rolls up into the Corporate Executive 14 structure. All performance indicator metrics, performance indicators and metrics having been described previously, calculated at the project and/or application levels are reported with average values, weighted average values, upper control limits, and lower control limits at all superior levels (control limits having been described).
  • Application data is the information about an installed solution to a business need.
  • a payroll application for example, provides the processes necessary to maintain employee salary information, generate pay checks, retain historical information and produce pay registers and documents for internal and external reporting.
  • the following are the process model elements and the type and use of data that is stored for the application:
  • Time represents the hours spent to keep the application performing to spec without changing its functionality. Data is used in calculation of Support Rate.
  • Cost is the money spent to keep the application performing to spec. It is used to calculate maintenance cost metrics.
  • Data is used in analysis to show the effects of factors such as climate, space, availability of quiet time.
  • the data is used in analysis to show effects of factors such as documentation, walk through, regression testing.
  • - Size is the functionality provided by the installed software.
  • the data is used in
  • Project data is the information about the work to define, refine or repair the software solution. As illustrated in Fig. 3, there are multiple projects types.
  • a development project is used to create the new application (initial payroll system).
  • Enhancement projects change the functionality of an existing application, usually causing a change in the size of the application (introducing files, screens and reports to accommodate labor union requirements).
  • Repair projects fix the application where it fails to meet user specifications or expectations (net pay is being incorrectly calculated).
  • Support projects keep the application in good business health (calculations are changed to accommodate changes in tax laws).
  • the following are the process model elements and the type and use of data that is stored for the project:
  • Time represents the hours spent to complete the project tasks. Data is used in
  • Cost is the money spent to perform project tasks. It is used to calculate development and maintenance cost metrics.
  • Team data provides information about the personnel performing project tasks. Data is used in analysis to show the effects of factors such as experience and training.
  • Data is used in analysis to show the effects of factors such as climate, space, availability of quiet time.
  • Data is used in analysis to show effects of factors such as programming languages, computer equipment, operating systems.
  • - Techniques data provides information about the methods used by project teams.
  • the data is used in analysis to show effects of factors such as Joint Application
  • the data is used in calculation of all project performance indicators.
  • FIG. 4 A business use of the present invention will be shown through the following case study.
  • the flow charts in pages Figs. 4, 5 and 6 demonstrate processes for capturing and integrating application and project data according to the present invention.
  • the case study uses a payroll system.
  • the initial development provided the functionality for maintaining basic employee information, generating weekly payroll checks and registers (time, pay, and deductions), and retaining historical information for monthly, quarterly and annual reporting.
  • the flow chart of Fig. 4 represents a sample Information System showing the use of the present invention to establish a new development project, i.e. to capture data about the development of a payroll application.
  • the present invention will have process model information stored about the development and the application. Analysis data will also be available in the organization of Fig. 3 at the Responsibility Center 3.8 - 3.11, Organization 3.12, 3.13 and Corporate Executive 3.14 Level.
  • FIG.4 Points in Fig.4 point to the next action to be taken after the current step is complete, rectangles indicate the action taken based on data or previous decision, and rectangles with concave sides indicate data stores.
  • the user enters the application overview information in operation 4.1 to create and validate the payroll application ID. All process model information about the payroll application will be related to this ID.
  • the user then enters the project overview information to create and validate the payroll application's development project, as indicated in block 4.2. Component information is then collected in operation 4.3.
  • the illustrative development project has 30 external inquiries, 60 external outputs, 50 external inputs, 1 external interface file, and 15 internal logical files 4.4a-e.
  • the project's general system characteristics are also included in the measurement calculations 4.5, and the specific characteristic, complexity, is determined in operation 4.6.
  • the user enters the project's process attributes at 4.7. These attributes include team information, work environment information, data about the tools and techniques used for the project 4.8a, 4.8b, and 4.8c, respectively.
  • the user adds information about time, cost, and defect incidents at the project level as indicated at 4.9 - 4.10c. This information is used with the size (function point) data to calculate the project performance indicators 4.11 and 4.12. i.e. project ratios.
  • the development project data is complete and is ready for the user to generate the payroll application installed base data.
  • the user initiates the update process, which moves project component, team, and environment information to the application level as indicated by operation 4.13 and data stores 4.14 a-f and 4.15a, 4.15b.
  • Application attribute
  • the flow chart of Fig. 5 illustrates a sample Information Systems showing the use of the present invention to establish an enhancement project, i.e. to capture data about enhancement of a payroll application.
  • the present invention will have process model information stored about the enhancement project and its effect on the payroll application base. Analysis data will also be available for the organization of Fig. 3 at the Responsibility Center 3.8 - 3.11, Organization 3.12, 3.13 and Corporate Executive 3.14 Levels.
  • FIG. 5 Points in Fig. 5 point to the next action to be taken after the current step is complete, rectangles indicate the action taken based on data or previous decision, rectangles with concave sides indicate data stores. The rectangles with curved lower sides indicate
  • the user receives a request to change the functionality of the payroll application as indicated in block 5.1. In order to provide the additional data needed, it is necessary to modify 15 screens, 3 reports, 1 file, and add files, screens and reports to support the expanded labor union reporting requirements, as illustrated by the requirements documents designated 5.2, 5.3, and 5.4.
  • the user creates an enhancement project overview attached to the payroll application in operation 5.5 which validates the project and is used to gather its process model information.
  • the user copies the existing application size data to the enhancement project as indicated in block 5.6. This includes external inputs, external inquiries, external outputs, external interface files, internal logical files and general system characteristics from data stores 5.8a - 5.8f which are copied into data stores 5.7a - 5.7f.
  • the user adds the new component details to the enhancement project and modifies components copied form the application level during the previous step in operations 5.9 and 5.10 respectively.
  • the user enters project attributes in operation 5.11, which include team, environment, tool, and technique data contained in data stores 5.12a-5.12c.
  • the user then enters other project measurement information in operation 5.13, such as time, cost, and defect failures contained in data stores 5.14a-5.14c.
  • the data is used with size data to calculate the enhancement project's performance indicators, as indicated in data stores 5.15 and 5.16.
  • the enhancement project is ready to be updated to the payroll application.
  • the changes made to the project contained in data stores 5.7a-5.7f and 5.14a-5.14c will be reflected at the application level.
  • the update by operation 5.17 revises the application process model data contained in data stores 5.8a - 5.8f.
  • the user now enters other application specific data during operation 5.18, including costs, attributes, and defect failures, which are placed in data stores 5.19a, 5.19b. This information is used with size information to calculate the application's performance indicators in operations 5.20 and 5.21.
  • Fig. 6 is a flow chart of the method used for analysis that the present invention facilitates, according to the sample business application. Arrows in Fig.6 point to the next action to be taken after the current step is complete, rectangles indicate the action taken based on data or previous decision, and diamonds illustrate decisions.
  • the first step in analyzing an application is to choose the level of analysis, as indicated by operation 6.1.
  • the invention has five levels of reporting: corporate executive,
  • a delivery report is analyzed, as indicated in block 6.2.
  • the invention reports the delivery times for the projects that update the application.
  • the invention helps the user identify the project or projects with the best delivery rates, by means of decision 6.3.
  • the user must verify that the measurement data is correct and ensure that the steps taken to produce the delivery rate did not compromise the quality of the project. This is illustrated by operations designated 6.4, 6.5 and 6.6. The user can accomplish this by examining the project's component and incident records. If the user discovers that the data is corrupt or that the quality of the project has been compromised, as indicated by decision block 6.7, corrective action must be taken and the project is re-evaluated in operation 6.8. On the other hand, if the project data proves to be true, and the quality of the project is preserved, the user identifies the cause of the good delivery rate by examining the project's team, environment, and tool and technique records in operation 6.9.
  • the user determines if the factors that resulted in the good delivery rate are repeatable. This is illustrated by operation 6.10 and decision 6.11. If they can be repeated, they are institutionalized for other projects and applications of the organization, as indicated in block 6.12.
  • the present invention is the most complete measurement analysis software currently available, in terms of the process model. To accomplish this, the present invention introduces several unique features to the measurement software environment, and those features now will be described in detail.
  • FIG. 7 is an entity relationship diagram showing the integrated application data sets according to the present invention. Each rectangle on Fig. 7 represents a logical collection of data.
  • the connecting lines indicate a relationship.
  • the marks at the extremes of the connecting line show the nature of the relationship, i.e. a single intersecting line at both ends denotes a one-to-one relationship between records, a "crow's foot" at both ends represents a many-to-many relationship, a single intersecting line at one end and a "crow's foot” at the other end shows that a one-to-many relationship exists.
  • an application's function point information is entered through its related projects. For this reason, function point information is not entered directly input into the application itself, rather it's count is updated by related projects.
  • the process that updates project information to related application is considered another unique aspect of the invention and is treated as such herein.
  • the fourteen functional characteristics 7.8 are also included in the information that the project updates to the application.
  • the sum of the application's related project function point counts are totaled to produce the application's unadjusted function point count, which is stored in component totals data set 7.7.
  • the application's unadjusted function point count is then multiplied by the function characteristics and produces the application's applications adjusted function point count, which is the size of the application.
  • FIG. 8 is an entity-relationship diagram showing the integrated application data sets according the present invention.
  • Each rectangle in Fig.8 represents a logical collection of data.
  • the connecting lines indicate a relationship.
  • the marks at the extremes of the connecting line show the nature of the relationship, i.e. a single intersecting line at both ends denotes a one-to-one relationship between records, a "crow's foot" at both ends represents a many-to-many relationship, a single intersecting line at one end and a "crow's foot” at the other end shows that a one-to-many relationship exists.
  • the present invention multiplies the unadjusted function point count by the value adjustment factor to determine the adjusted function point count, which is also stored in component totals 8.7.
  • projects in the present invention contain the following measures: time 8.13, cost 8.14, and failure incidents 8.15.
  • This measurement information is entered into the project record by the user.
  • Ratios are the performance indicator metrics for the project 8.16.
  • the present invention's project ratios are calculated from project measurement information. Metrics that are tracked for projects include: Delivery Rate, Duration Delivery Rate, Stability Ratio, Defect Detection Ratio, Defect Ratio, and Cost per function point.
  • the following project attributes are tracked for the project: teams 8.10, project work environment 8.11, and project tools and techniques
  • FIG. 9 is a flow chart of the technique used to refine summary level input for component information being added and generate detail component information according to the present invention.
  • Arrows Fig. 9 point to the next action to be taken after the current step is complete. Rectangles indicate the action taken based on data or previous decision. Squares show input of data, diamonds illustrate a decision, and the parallelogram indicates addition of a new record to the file.
  • the best known prior art approach captured and stored component detail with a quantity factor.
  • the newly constructed method introduced here takes such homogenous information and breaks it down to its smallest identifiable detail. The user enters the component ID 9.1 and quantity 9.5.
  • the component ID consists of a prefix (maximum 8 alpha-numeric characters) 9.1 and a suffix (6 numeric characters).
  • the suffix is the sequence code, and may be assigned by the invention or the user 9.2. For example, if the user assigns component ILF1 (prefix code) a quantity of 3, it is exploded by the invention as ILF1- 001000, ILF1-002000, and ILF1-003000 as indicated in block 9.13. Following explosions of ILF1 begin at the next available sequence code (e.g. ILF 1-004000). If the user defines the suffix sequence code, the component cannot be exploded 9.6. The invention then checks the application and project component records to determine the highest sequence number for that component ID 9.7.
  • the quantity that the user enters in then checked 9.9, and the invention determines if the quantity multiplied by 1,000 (the sequence code) is greater than 999,000 as indicated in block 9.10. If the sequence code is greater than 999,000, an error message if displayed and the user must enter a new quantity 9.8. If the sequence code is less than 999,000, after being multiplied by the quantity, the invention sets the highest sequence code for that component ID by adding 1,000 to the last component ID exploded 9.13. The component record is then written 9.14. The invention determines the number of components to explode and list by subtracting 1 from the quantity (if the user wants to explode one listing into four, the invention lists the original component and three components) 9.15. The component checks to ensure that the quantity is greater than zero and explodes the
  • Fig. 10 is a
  • FIG. 10 a flow chart for the technique used to refine summary level input for component information being modified and generate detailed component information according to the present invention.
  • Arrows in Fig. 10 point to the next action to be taken after the current step is complete. Rectangles indicate the action taken based on data or previous decision. Squares show input of data, diamonds illustrate a decision, and the parallelogram indicates addition of a new record to the file.
  • the best known prior art approach captured and stored component detail with a quantity factor.
  • the newly constructed method introduced here takes such homogenous information and breaks it down to its smallest identifiable detail for maintenance.
  • Maintenance occurs when an change is being made to an existing component.
  • the user selects the component ID 10.1 that he or she wants to modify.
  • the user modifies die quantity code 10.2 to re-explode the component.
  • the sequence code is numbered by tens (e.g. if ILF1-002000, which falls between ILF1-001000 and ILF1-003000, is entered with a factor of three, the records generated will have the following IDs: ILF1-002000, ILF1-002010, ILF1-002020).
  • Fig. 10 This action is illustrated in Fig. 10 by blocks 10.4 - 10.7.
  • the component record is then written 10.8, and the invention determines the number of exploded components to list by subtracting one from the quantity as indicated 10.9. If the quantity is greater than zero, the invention explodes the components 10.10.
  • the present invention directly relates project and application function point component information, as illustrated in project data stores 11.2 - 11.6 and application data stores 11.14 - 11.18. Project function point totals and application function point totals are provided as indicated in blocks 11.7 and 11.19, respectively. In addition to the component data, application and project general system characteristic data is related, as shown in blocks 11.8 and 11.20. Project cost and time data, data stores 11.10 and 11.11, update the application during an accurate movement of data action. The present invention also relates environment attribute information between an application and project as indicated by blocks 11.9 and 11.21.
  • Fig 12 is a detailed flow chart of the process used by the present invention to update the initial set of project information to the application.
  • Arrows in Fig. 12 point to the next action to be taken after the current step is complete. Rectangles indicate the action taken based on data or previous decision. Squares show input of data, diamonds illustrate a decision, and the parallelogram indicates addition of a new record to the file.
  • the user begins the process by selecting a standard implementation, where project data is tallied for the project record and then updated to the application, or a non standard implementation. If the implementation is not standard, the project data is tallied for the project record, but is not updated for the application 12.2.
  • the project transaction components which include external inputs, external outputs, and external inquiries, are updated to the application 12.3.
  • the project data components which include internal logical files and external interface files are then updated to the application 12.4, as are the project general system characteristics 12.5.
  • the only attribute information that is update to the application is work environment 12.6. Information about project tools, tools, and techniques are not carried to the application.
  • the project ratios are then calculated for before the update process is complete 12.7.
  • the user then has the option to add project and application general comments 12.8 - 12.11.
  • Fig. 13 is a flow chart of the process used by the present invention to update enhancement project information to the application.
  • Arrows Fig. 13 point to the next action to be taken after the current step is complete. Rectangles indicate the action taken based on data or previous decision. Squares show input of data, diamonds illustrate a decision, and the parallelogram indicates addition of a new record to the file.
  • the user indicates if the implementation of the project is a standard one (it will be calculated in the application's work product) or is a terminated one (the project's work product is calculated, but not included in the application's work product). This is indicated in blocks 13.1 and 13.2.
  • the user can generate a pre-update log. This report, displayed on the screen or printed, lists update conflicts resulting from data newly entered or modified 13.4 and 13.5. Conflicts occur when an action the user is trying to update was changed by a previous application update. If conflicts do exist, the user can choose to continue or terminate the update process as indicated by decision block 13.6. If the user continues an update, an application snapshot is taken 13.7. The user has the opportunity to update comments regarding the application and project 13.8 - 13.11.
  • the project transaction components, data components, and system characteristics are updated to the application (13.12 - 13.14).
  • the user can then update application and project comments 13.16 - 13.19.
  • a unique feature of this part of the invention is the conflict resolution opportunities presented to the user as illustrated by blocks 13.21 - 13.30.
  • the third type of movement of data is accurate movement of data - application copy to a baseline, development project.
  • Fig. 14 is a flow chart of the process used by the present invention to create a development project copying application details. Arrows in figure 14 point to the next action to be taken after the current step is complete. Rectangles indicate the action taken based on data or previous decision. Squares show input of data, diamonds illustrate a decision, and the parallelogram indicates addition of a new record to the file.
  • the invention of the Accurate Movement of Data Between Applications and Projects includes the Application Copy to a Baseline , Development Project. This action creates a project with information copied from and related application. The user selects the application he or she wants to copy 14.1. One invention validates the request 14.2, and if the application does not exist the request is refused 14.3 and the user is presented a list of valid applications 14.5.
  • the application components are copied to the project (external inputs 14.4, external outputs 14.6, external inquiries 14.7, internal logical files 14.8, and external interface files 14.8).
  • the application's general system characteristics are then copied to the project 14.9.
  • the application work environment characteristics are copied to the project 14.11.
  • the application's attributes are copied to and stored in the project record 14.12.
  • Fig. 15 is a flow chart of the process used by the present invention to create an enhancement project copying application details that are to be modified. Arrows in Fig.15 point to the next action to be taken after the current step is complete. Rectangles indicate the action taken based on data or previous decision. Squares show input of data, diamonds illustrate a decision, and the parallelogram indicates addition of a new record to the file.
  • This type of accurate movement of data is used to copy application information to an enhancement project for maintenance.
  • the user is presented with a list of application data choices that can be copied to the application.
  • Copy All Function Point and Attribute Data request 15.1 the application's external inputs, external outputs, external inquiries, internal logical files, external interface files, team data, and attribute data will be copied to the project 15.2.
  • Copy All Function Point Data 15.3 copies the application's external input, external output, external inquiry, internal logical file, and external logical file data to the project 15.4.
  • Copy External Inputs 15.5 there will be presented a list of the application's external input to select 15.6.
  • the selected components are copied to the project.
  • Copy External Outputs 15.7 he or she will be presented a list of the application's external output components to select 15.8.
  • the selected components are copied to the project.
  • Copy External Inquiries 15.9 there will be presented a list of the application's external output components to select 15.10.
  • the selected components are copied to the project.
  • Copy Files 15.11 there she will be presented a list of the application's internal logical file and external interface components to select 15.12.
  • the selected components are copied to the project.
  • the user selects Copy Application Teams to Project 15.13, the application team data is copied to the enhancement project 15.14.
  • the user selects Copy Application Attributes to Project 15.15, the application's attribute information is copied to the project.
  • Fig. 16 is a flow chart of the method used by the current invention to reverse the effects for the last project update on the application. Arrows in Fig. 16 point to the next action to be taken after the current step is complete. Rectangles indicate the action taken based on data or previous decision. Squares show input of data, diamonds illustrate a decision, and die parallelogram indicates addition of a new record to the file.
  • the invention enables the system
  • the project ID to be removed from the application 16.1.
  • the project can be backed out only if the application has not been updated by subsequent project 16.2 and 16.3.
  • a fourth unique feature of the present invention is report flagging for applications and projects.
  • the present invention also provides the user with unique capabilities for reporting measurement data for the organizational levels shown in Fig. 3.
  • the present invention enables the user to exclude certain projects and applications from reporting. There are times when adjustment projects are created to correct erroneous application or project size.
  • sample application and project records are generated to be used as patterns for data capture and modeling.
  • the present invention provides an analysis flag to give administrators the ability to exclude those applications or projects.
  • the project analysis flag illustrated in Figure 17 presents the user with the option to include or exclude a project from reporting and analysis 17.1. If the user decides to include the project, the project data will be included in project, application, responsibility center, organization, and corporate executive reports 17.2. If the user excludes the project, the project is not included in reporting 17.3.
  • the application analysis flag illustrated in Figure 18 presents die user with the option to include or exclude an application from reporting and analysis 18.1. If the user decides to include die application, the application data will be included in application, responsibility center, organization, and corporate executive reports 18.2. If the user excludes die application, the application is not included in reporting 18.3.
  • FIG. 2 Another unique reporting capability of the present invention is the calculating upper and lower control limits of Fig. 2.
  • the following Organization Portfolio shown report in Table Vi ⁇ lists the responsibility centers that comprise the organization, according to Fig. 3, the number of applications that comprise the responsibility center, the number of adjusted function points, the average number of function points per application which also may contain a "+" if the size is above the control limits or a "-" if the size is below the control limit, and die average application age. The average application size and average application age for the organization is then listed, followed by the upper and lower control limits for each.
  • one of die unique features of the present invention is the integration of measurement, metric and attribute data at both the application and project levels.
  • Fig. 7 and Fig 8. show the integration of measurement, metric and attribute data at the application and project levels, respectively.
  • Fig. 19, shows the integration method of application and measurement data for the present invention, in effect combining the application and project level presentations of Figs. 7 and 8, respectively.
  • Application related data is represented at the upper half of Fig. 19 and project related data is represented at die lower half.
  • the master application and project data stores are illustrated by blocks 19.1 and 19.2 respectively.
  • the application measurement information includes size in transaction 19.3 and data 19.4 function point counts.
  • An application snapshot is imtiated by die user to create a point in time view-only record of the application, which is stored block 19.18.
  • Application data is reported to the responsibility center 19.46, which is reported to the organization level 19.30, which in turn, is reported to die corporate executive level 19.31 of the organization.
  • Project size information is tracked in the transaction data store 19.33 and in the data store 19.34.
  • Transaction components include external inputs, external output, and external inquiry data.
  • Data components include internal logical file and external interface file data.
  • Other measures tracked for the project include time, 19.45, cost 19.27, and defects 19.44.
  • Project attribute information includes project teams 19.43, project environment 19.42, project tools and techniques 19.41.
  • a project snapshot may be taken by the user to create a point in time view-only record of me project, which is stored in block 19.40.
  • the present invention protects the integrity of its stored data with a user access security system 19.25.
  • Users are classified as system aJministrators, application managers, project managers, and non-manager users.
  • the system administrator may format the present invention and create and modify any stored application or project.
  • An application manager may create and modify an application and all of me application's related projects, and may also view all stored application and project information.
  • a project manager may create and modify a project and view all stored application and project information.
  • a non-manager user may view all stored application and project data.
  • the system administrator defines the present invention's repository to reflect an organization's terminology.
  • the system administrator defined repositories and a short description are included herein.
  • Application attributes 19.52 are defined application criteria that are rated by application managers to characterize their applications.
  • Environment 19.40 includes work environment factors that can be selected by application and project managers to characterize working conditions of applications and projects.
  • Team criteria 19.61 are criteria used to rate team performance by application and project managers.
  • Team definitions 19.62 are defined teams available to projects and applications.
  • Tool validation values 19.65 provide project managers criteria to rate project tools.
  • Tool sets available 19.10 are selected by project managers to reflect die utilities used to complete a project.
  • Tool definitions 19.60 define tool sets.
  • Tool types 19.51 classify tool sets into larger tool categories.
  • Cost codes 19.59 are used by application and project managers to track application and project costs.
  • Time codes 19.45 are used by project managers to record die time spent to complete a project.
  • Process codes 19.21 specify the different task groupings of an organization.
  • Project managers use process codes to organize the work assignments of a project.
  • Project categories 19.55 are used by project managers to categorize projects for reporting purposes.
  • Phase codes 19.32 are used by project managers to reflect the different time periods of a project's life cycle.
  • Project types 19.20 are used by die project manager to specify if the project is baseline, development, repair, enhancement, conversion, user-defined, or preventive maintenance. The system administrator may also define project types that are used by an organization, but not included on this list.
  • Project classes 19.56 are used by project managers to classify projects for reporting purposes.
  • Project group codes 19.57 are used by project managers to group projects for reporting purposes.
  • each module in the program according to me present invention is designed from a corresponding written specification used in generating the invention's operational code. To present all of these specifications would not be necessary to enable persons skilled in the art to make and use the invention.
  • the screen component module records and calculate the external input, external output, and external inquiry function point counts by screens of an application.
  • the screen component specification contains the detailed instruction used in programming the component explosion feature of the invention. The information given in this example, when taken with the remainder of the detailed description, is considered to be more man adequate to enable persons skilled in the art to design the other modules of the program according to the present invention.
  • PROCESSING Permit change of Component Description and Action Code on
  • Action code can neither be changed
  • Alt-F3 Delete. Block - delete a group of records.
  • Component ID or Description If an exact match is not found go to the record that most closely matches the given parameters.
  • PURPOSE Capture input quantities and ratings to be used in summary calculations.
  • Quantity fields(Qty) are display only.
  • Each component is identified by a Component Type. Whenever valid data is detected in any of the Screen's fields (Input, Inquiry, Output) then the corresponding type code will update PMptrans(33)->COMP_TYPE associated with that record.
  • PURPOSE Capture transaction quantities and ratings to be used in summary calculations.
  • SCREEN F1 Help - display PROJO40.5B-D-H (help screen)
  • PROCESSING refer to PROJ040.5B-R specs
  • the Qty field is the only field that is not stored. This value is used as a multiplier to store records. For example if the user entered this data:
  • PURPOSE Maintain input quantities and ratings to be used in summary calculations.
  • Comment field display message when cursor is active on field
  • NAME Change/Inquire/Delete - Detail Format
  • PURPOSE Maintain input quantities and ratings to be used in summary calculations.
  • SCREEN F1 Help - display PROJO40.5C-D-H (help screen)
  • F3 Delete - refer to PROJO40.5C-R for delete handling
  • F4 Save - refer to PROJO40.5C-R for save handling
  • F9 Locate - refer to PROJO40.5C-R for locate
  • PROCESSING refer to PROJO40.5C-R except for Rating inconsistencies(Because detail count override rating count)
  • NAME Selection Screen for Inquire Only
  • select - select a record for viewing
  • NAME Inquire Only - Rating Format
  • PROJO40.5A-I PROJO40.5C-R-I
  • SCREEN F1 Help - display PROJO40.5C-R-I-H (help screen)
  • NAME Inquire Only - Detail Format

Abstract

A measurement analysis computer sofware method and apparatus in which information is stored at the project level wherein a project comprises a collection of work tasks with a time frame and a work product to be delivered, information is stored at the application level wherein an application comprises a cohesive collection of automated procedures and data supporting an objective and one or more components, modules or sub-systems and a direct relationship is provided between information stored at the project level and information stored at the application level. There is also provided integration of measurement, metric and attribute data including data repositories for measurement, metric and attribute data at said project and application levels. The method and apparatus also performs a component explosion process to enable entering multiple components with one entry, provides accurate movement of data between projects and applications to protect the integrity of project and application data, and selectively includes and excludes applications and projects from analysis and reporting.

Description

Measurement Analysis Software System And Method
Background Of the Invention
This invention relates to measurement analysis software, and more particularly to a new and improved measurement analysis repository for software development and maintenance processes including new ways to automate a specific measurement analysis method.
Turning first to an overview of the Process Model Analysis Method, the Process Model is a measurement analysis method that is flexible enough to be used for all organizations that employ knowledge workers. Some of the career fields that knowledge workers are employed include the legal profession, engineering, and software development, etc. The present invention automates the process model analysis method for software development personnel.
Fig. 1 shows the process model, as it is automated by the present invention. The process model contains three basic components of work analysis: input 1.1, process 1.2, and output 1.3. Input and output are expressed in terms of types of measures that gauge the work effort exerted in the task and the result of that work effort. These measures be discussed in detail presently. The input and output measures are combined to produce metrics, which are represented by the performance indicators box designated 1.4 in the model. Performance Indicators are productivity ratios that indicate the rate of product delivery, support and quality. Metrics will be discussed in detail presently.
A process is a way in which tasks are completed for a project. Process attribute data provides information about the people, work environment, tools, and techniques used to complete the work product.
The Process model of Fig. 1 operates in the following way: The input 1.1 and output 1.2 of the project are measured. The measures are combined to produce metrics 1.4. The metrics are examined and charted to determine how they compare with other project results in the organization. The project metric charts show the statistical groupings of the organization's projects. An analyst can then determine the upper and lower control limits with metric charts such as the upper and lower control limits graph, shown in Fig. 2. A project that is within the control limits 2.1, 2.2 can be considered an average project.
Projects that register above the upper 2.1 control limit are considered above average.
Projects that fall below the lower control 2.2 limit is a below average project.
The analyst is interested in the projects that register outside the control limits. He or she compares the attributes of the projects to determine if there is a significant difference in team composition, work environment factors, tools used, or techniques used between the above average and below average projects. If there is, the analyst could recommend that attribute to be standardized for all projects in the organization. When used in the way that is outlined hereinabove, the process model of Fig 1. identifies the ways in which the quality and productivity of processes can be improved internally.
As stated in the description of the process model of Fig. 1, measures comprise the input and output of a project. There are two input measures, time and cost, and two output measures, failure defects and function points. Each of these four measures now will be described in detail.
Time is work effort represented in hours, days, weeks, months, or years. Time measures are used to record project delivery, repair, enhancement or support durations. Time is calculated with output measures to determine project delivery, maintenance efficiency, and improvement efficiency metrics. Metrics will be described in detail presently. Cost is the monetary expenditures of the project. Costs are calculated with output measures to determine cost metrics. Failure defects occur when a product does not meet specifications. While a defective product is not deliverable, the effort that produced the defect still must be taken into account. Once defects are measured they are combined with input and output ratios to produce quality metrics.
Function points measure the functionality of software from the user's prospective, regardless of the development or maintenance technology involved. As an output measure, function points are the overall size measure for software applications and projects.
There are five components of functionality. They are: internal logical files; external interface files; external inputs; external outputs; external inquiries. An internal logical file is a user identifiable group of logically related data or control information maintained and utilized within the boundary of the application. An external interface file is a user
identifiable group of logically related data or control information utilized by the application that is maintained by another application. An external input process data or control information which enters, the application's external boundary, and through a unique logical process maintains an internal logical file and initiates or controls processing. An external output processes data or control information that exits the application's boundary. An external inquiry is a unique input/output combination, where an input causes an immediate output and an internal logical file is not maintained. A function point counter tallies the number of record types and data element types for the files of the application, and the number of file types referenced and data element types for inputs, outputs, and inquiries. A record type is unique record format within an internal logical or external interface file. File types referenced are the number of internal logical files or external interface files read, created, or updated by a component. A data element type is a unique occurrence of data, which is also referred to as a data element variable, or field. Once these are counted, the counter rates the component as low, average, or high according to a defined matrix. A sample of a matrix for external inputs is presented in Table I as follows:
Figure imgf000005_0001
Each component group is then weighted according to the sum of its ratings, as shown in Table II:
Figure imgf000005_0002
The weighted component totals are then added to produce the unadjusted function point count. The counter then rates the fourteen General System Characteristics, which account for the design characteristics of an application. These characteristics include factors that make the application unique, and ensure that the function point count that reflects the application is precise and not generic. The counter rates each characteristic on a defined scale of 0 - 5. The characteristics are totalled, multiplied by .01 and added to .65 to determine the value adjustment factor. The value adjustment factor is multiplied by the unadjusted function point count to determine the final adjusted function point count. The adjusted function point count is the function point measure listed on the output box on the process model, i.e. output 1.3 in Fig.1.
It was previously noted that the process model works effectively as a measurement analysis method for knowledge workers. Function points are only a measure when analyzing the work effort for software development and maintenance. For example, if the area being analyzed was a court system, the rules that regulate function point counting can be adapted to work as an appropriate measure reflecting a court's functionality. In particular the components can be changed to case types for a court system, and these case types can be assigned criteria to determine low, average, and high rating. Appropriate general characteristics can be defined to relate to the unique aspects of different courts and then be rated. Similar formulas can than then be used to calculate unadjusted and adjusted "judicial points." This measure can then be considered by work measurement analysts with the other measures in the process model to determine the productivity and quality metrics of the court system.
The role of metrics in the process model now will be considered. Metrics are the result of the combination of the measures listed in the process model. The types of metrics that can be determined from the measures are inventory (i.e. total function points), quality (i.e. number of defects divided by function points), productivity (function points divided by time), and cost (dollars divided by function points). Metrics are the flags for projects performing above average, average, or below average.
Attributes are tracked in the process model and describe the factors that affect the productivity and quality of a project. The attributes comprise the process box of the process model and include teams, work environment, tools, and techniques.
Team information characterizes the composition of application and project teams.
Information such as the size of the team and team experience may explain why a project has above average, average, or below average metrics. For example, a team of just the right size that has good job experience and job knowledge would probably produce above average productivity and quality metrics. Work Environment information characterizes a team's work surroundings. Ergonomics are an important factor in productivity and quality. For example, poor productivity and quality metrics may result from a project team that is placed in a noisy and cramped environment.
Tools are the utilities used to complete a project. They include both hardware (such as mainframes or personal computers) and software (such as databases and languages) instruments. Poor productivity and quality metrics may be caused by tools that are faulty or out bf date.
Techniques are the methods followed while completing a project. For example, a software development and maintenance team may use structured programming for a project. If a team is using an outdated or unnecessary technique, the project's metrics could be below average.
Each of the attribute descriptions hereinabove show, in a very abbreviated manner, how process attributes affect productivity and quality. It is in this part of the process model that improvements are made. The measures and metrics identify and help to classify projects, but the attributes explain how to improve projects. Once an attribute is discovered to be outstanding, it can than be determined if that attribute can instituted in a project with below average metrics. If the attribute improves the substandard project, steps can be taken to standardize that attribute for all projects in the organization.
Summary of the Invention
The present invention is a software package that includes all elements of the process model. It is the only software package for software development and maintenance
management that accomplishes this. It combines a function point calculator, a metric calculator, and an attribute repository. To accomplish the automation of the process model for the software development and maintenance industry, the present invention introduces a number of unique features.
One is the integration of measurement, metric, and attribute data at the project and application levels. As stated previously in this document, the present invention is the only function point analysis software package that incorporates all elements of the process model. What is also unique about this invention is that it captures all process model information at the project and application level. An application is a cohesive collection of automated procedures and data supporting a business objective. An example of an application is a payroll computer program that logs hours, salary rates, tax rules, etc. A project is a collection of work tasks with a time frame that creates new applications and maintains existing ones. Since projects create and maintain applications, an application, such as the payroll program, may have many projects related to it. For this reason it is important for a function point analysis tool to ensure that applications and projects be treated as separate, albeit related, entities. A software development and maintenance manager will want to know the measure, metric, and attribute information for both an application, and all of its separate projects. As described in more detail presently, no other function point analysis software has the capability to track the all the process model information at both the application and project level.
Another unique feature of the present invention is accurate movement of data between application and projects. Since projects create and maintain applications, an application's function point count is the sum of the counts of its related projects. For this reason the present invention introduces five unique methods to move function point information between projects and applications: application update of a baseline or development project;
application copy to an enhancement project; application update of an enhancement project; application copy to a baseline or development project; application update backout.
The movement of data protects the integrity of the function point counts for applications and projects. It is a feature that is unique to function point analysis software, as will be detailed presently.
Another unique feature of the present invention is component explosion. The data entry of function point counts can be a time consuming task. To ease this process and reduce the number of errors that a data processor may make, the present invention introduces a component explosion feature to function point software. This feature enables the data processor to enter multiple components with one entry as will be described presently.
Another unique feature of the present invention is report flagging for applications or projects that contain faulty data. The present invention helps software development and maintenance managers to identify projects and applications that fall outside of defined upper and lower control limits of Fig. 2. If an application or project contains false data, the results of the control limit graph could be skewed. For this reason, the present invention contains a report flag that allows users to include or exclude projects and applications from reporting as will be described in detail presently. No other function point analysis software package includes this feature. The foregoing and additional advantages and characterizing features of the present invention will become clearly apparent from a reading of the ensuing detailed description together with the included drawings,
Brief Description of the Drawing Figures
Fig. 1 is a schematic block diagram showing the process model as it is automated by the present invention;
Fig. 2 is a metric chart in the form of a graph of upper and lower control limits;
Fig. 3 is a schematic block diagram illustrating data organization relationships within the present invention;
Fig. 4 is a flow chart representing a sample information system showing use of the present invention to establish a new development project;
Fig. 5 is a flow chart representing a sample information system showing use of the present invention to establish an enhancement project;
Fig. 6 is a flow chart of the method for analysis that the present invention facilitates;
Fig. 7 is an entity relationship diagram showing the integrated application data sets according to the present invention for the application level;
Fig. 8 is an entity relationship diagram showing the integrated application data sets according to the present invention for the project level;
Fig. 9 is a flow chart illustrating component explosion of the add type according to the present invention;
Fig.10 is a flow chart illustrating component explosion of the maintenance type according to the present invention;
Fig. 11 is an entity relationship diagram showing mapping of project information to the application according to the present invention;
Fig.12 is a flow chart of the process used by the present invention to update enhancement project information to the application;
Fig. 13 is a flow chart of the process used by the present invention to update
enhancement project information to the application;
Fig.14 is a flow chart of the process used by the present invention to create a
development project copying application details;
Fig. 15 is a flow chart of the process used by the present invention to create an enhancement project copying application that are to be modified; Fig. 16 is a flow chart of the method used by the present invention to reverse the effects for the last project update to the application;
Fig. 17 is a flow chart illustrating the project analysis flag according to the present invention;
Fig. 18 is a flow chart illustrating the application analysis flag according to the present invention; and
Fig. 19 is an entity relationship diagram further illustrating the present invention.
Detailed Description of the Illustrated Embodiment
Function Point Analysis, as previously outlined, is performed by creating metrics from measures, selecting key performance indicators, and evaluating attributes' roles in
performance change. The methods for performing the analysis range from manual systems, at one extreme, to the present invention, at the other, where data is input and stored at various levels of detail. Current methods for gathering and using the measures will be described for the purpose of facilitating the detailed description of the invention which will follow.
One illustrative current method is manual tracking of process model information, in which input information (time and cost) is obtained from, for example, the labor reporting and cost accounting systems. Process data is recorded on forms categorized by people (teams), environment, tools and techniques. Output represented by Function Point details is recorded on forms, such as the detail worksheet illustrated in Table III as follows.
Table III
Detail Worksheet
Figure imgf000011_0001
To determine the size of an existing application, the detailed component ratings are summarized and the component weights are applied giving the Unadjusted Function Point count, as illustrated in Table IV.
Table IV
Summary Worksheet
Figure imgf000012_0001
Function Point Analysis recognizes fourteen general processing characteristics of applications that affect productivity. Each of these General System Characteristics is evaluated on a scale from zero to five. The individual ratings are summed and used to calculate the Nalue Adjustment Factor, as illustrated in Table V as follows.
Table V
Figure imgf000012_0002
The Value Adjustment Factor is applied to the Total Unadjusted Function points. The result, Total Function Points, represents the size of the application, as follows:
Total Function Points = Unadjusted Function Points x Value Adjustment Factor Summary information about the other Output in the process model, Failure Defects, is taken from a problem tracking system. Using either paper forms or an electronic spreadsheet, the measurement totals outlined above are recorded and the metrics that are Performance Indicators within an organization are calculated. Data for each performance indicator must be plotted or ranked to detect trends and variations from the norm.
The forms described thus far provide the information to calculate an application size in function points for the first time. Ensuing project effort will be expended to enhance and maintain the installed product. Project size is determined by capturing and evaluating the details of functionality added, changed, or deleted. Using the form set forth in Table VI, detailed ratings are summarized for components added or deleted.
Table VI
Component Worksheet - Adds [] Deletes []
Figure imgf000013_0001
Components changed during the project are identified and summarized. An enhancement project will have a size (work product) of its own as well as cause a size change to the installed application. Keeping track of changed component ratings before the enhancement project began and after project completion provides the information necessary to calculate both project work product and revised application size. This is illustrated in Table VII. Table V II
Component Worksheet - Changes
Figure imgf000014_0001
The General System Characteristics, previously described, are reviewed and reevaluated if necessary. The calculation of project function points requires both the Value Adjustment Factor ofthe application before any changes were made and the Value Adjustment Factor resulting from the project's effects on the general functionality of the application. The formula for the revised application size uses only the "revised" Value Adjustment Factor.
The formula for calculating project function points is:
((Adds + Changes-After) x Value Adjustment Factor-After) +
(Deletions x Value Adjustment Factor-Before) = Project Function Points
The formula for revised application function points is
((Unadjusted Function Points-Before + Adds + Changes-After)
- (Deletes + Changes-Before)) x Value Adjustment Factor-After)
Again, the measurement totals (time, cost, size, and failure defects) are recorded and the metrics that are Performance Indicators within an organization are calculated. Data for each performance indicator is plotted or ranked to observe trends and variations from the norm.
The foregoing discussion of current methods was for the purpose of facilitating the ensuing detailed description of the invention. Turning now to that description, first will be a brief overview of the unique features of the invention. With respect to the feature integration of data, the present invention stores and uses application function point component details as a master list of its function point components and also stores summary information for the calculation of performance indicator metrics. Likewise, project function point component details are captured and the summary information is stored. As to application support time detail, time data is stored to the level of detail defined by the system administrator, and it is also stored in summary format. Similarly, project time is stored to the level of detail defined by the system administrator, and summary time data also is stored. With respect to application support cost detail, cost data is stored to the level of detail defined by the system administrator, and it is also stored in summary format. Likewise, as to project delivery cost detail, project costs are stored to the level of detail defined by the system administrator, and summarized cost data also is stored.
Considering application defects detail, defect data is stored to the level of detail defined by the system administrator, and this includes data about the nature and severity of the problem. Similarly, project defects details are stored to the level of detail defined by the system administrator. With respect to application attributes, the process block of the process model, Fig. 1, encompasses the people that produced output, the physical environment in which they worked, and the tools/techniques they used to perform their tasks. The present invention stores application level information about people, environment, tools/techniques. Similarly, the present invention stores project level information about people, environment, tools/techniques, i.e. project attributes. Using the data stored, the invention can be used to support the Work Product, Quality, and Financial ratios presented by the International Function Point Users Group. Use of process control methods in highlighting metrics that indicate exceptionally good or unusually poor performance that facilitates analysis is found only in the present invention. Thus, integration of data within the invention in conjunction with the detail at which the data is captured, provides more control of the function point data and better analysis capability.
The second unique feature, accurate movement of data, is characterized by copying application detail to project, updating project detail to application and conflict resolution. This provides the mechanism for managing the process model data in the application support and project delivery environment.
The third unique feature, component explosion, may be viewed as explosion of summary function point data and ensures the proper level of detail for capturing function point component information. The fourth unique feature is report flagging. The present invention provides a facility to exclude data that could produce misleading analysis results. It provides the only function point analysis software that has the process to exclude applications and exclude projects from reports. The present invention is more than an electronic replacement for the manual tracking of process model information. The functionality provided advances the prior art in that all process model information is made available for analysis. In addition, all the process data necessary for further investigation is available in the repository. The present invention also introduces a mechanism for ensuring the integrity of the component data through the previously mentioned method of component explosion. This technique, along with the previously mentioned conflict resolution routines built into the update process, ensures the granularity and accuracy necessary for proper management of detailed function point data. There are times when adjustment projects are created to correct an erroneous application size. Similarly, sample application and project records are generated to be used as patterns for data capture and modeling. In order to prevent these from distorting the metric analysis reports, the present invention uses an analysis flag to give the administrator the ability to exclude those applications or projects.
Having presented an overview of the unique features of the invention, the description now will concern the hierarchical structure of the data for analysis with particular attention paid to the relationship of and differences between application and project data. A case study outlining a business use of the present invention is also presented.
Fig. 3 illustrates data organization relationships within the present invention. Data can be entered at the project or application levels. Each Project 3.1, 3.2, 3.3, 3.4 is attached to an application 3.5, 3.6, 3.7. Application records are linked to a Responsibility Center 3.8, 3.9, 3.10, 3.11. Responsibility Centers report to Organizations 3.12, 3.13. Organization level data rolls up into the Corporate Executive 14 structure. All performance indicator metrics, performance indicators and metrics having been described previously, calculated at the project and/or application levels are reported with average values, weighted average values, upper control limits, and lower control limits at all superior levels (control limits having been described).
The difference between application and project data is important to an understanding of the invention. Application data is the information about an installed solution to a business need. A payroll application, for example, provides the processes necessary to maintain employee salary information, generate pay checks, retain historical information and produce pay registers and documents for internal and external reporting. The following are the process model elements and the type and use of data that is stored for the application:
Input
- Time represents the hours spent to keep the application performing to spec without changing its functionality. Data is used in calculation of Support Rate.
- Cost is the money spent to keep the application performing to spec. It is used to calculate maintenance cost metrics.
Process
- Team data provides information about the personnel performing support tasks. Data is used in analysis ιo show the effects of factors such as experience and training.
- Environment data provides information about the physical surroundings of the
personnel performing support tasks. Data is used in analysis to show the effects of factors such as climate, space, availability of quiet time.
- Tools data provides information about the hardware and software used to perform support tasks. Data is used in analysis to show effects of factors such as programming languages, computer equipment, operating systems.
- Techniques data provides information about the methods used by support personnel.
The data is used in analysis to show effects of factors such as documentation, walk through, regression testing.
Output
- Size is the functionality provided by the installed software. The data is used in
calculation of all application level performance indicators.
- Failure defects represent the instances where the installed software does not perform according to specification. The data is used in calculation of performance indicators used to monitor quality.
Project data is the information about the work to define, refine or repair the software solution. As illustrated in Fig. 3, there are multiple projects types. A development project is used to create the new application (initial payroll system). Enhancement projects change the functionality of an existing application, usually causing a change in the size of the application (introducing files, screens and reports to accommodate labor union requirements). Repair projects fix the application where it fails to meet user specifications or expectations (net pay is being incorrectly calculated). Support projects keep the application in good business health (calculations are changed to accommodate changes in tax laws). The following are the process model elements and the type and use of data that is stored for the project:
Input
- Time represents the hours spent to complete the project tasks. Data is used in
calculation of Delivery rate for Development and Enhancement Projects. Repair and Support project time rolls up into the application Support Rate.
- Cost is the money spent to perform project tasks. It is used to calculate development and maintenance cost metrics.
Process
- Team data provides information about the personnel performing project tasks. Data is used in analysis to show the effects of factors such as experience and training.
- Environment data provides information about the physical surroundings of the
personnel performing project tasks. Data is used in analysis to show the effects of factors such as climate, space, availability of quiet time.
- Tools data provides information about the hardware and software used to perform
project tasks. Data is used in analysis to show effects of factors such as programming languages, computer equipment, operating systems. - Techniques data provides information about the methods used by project teams. The data is used in analysis to show effects of factors such as Joint Application
Development, walk through, regression and stress testing.
Output
- Size represents the total functionality affected in the installed software (added,
modified, or deleted). The data is used in calculation of all project performance indicators.
- Failure defects represent the instances where the project deliverables do not perform according to specification. The data is used in calculation of project performance indicators used to monitor quality.
A business use of the present invention will be shown through the following case study. The flow charts in pages Figs. 4, 5 and 6 demonstrate processes for capturing and integrating application and project data according to the present invention. The case study uses a payroll system. The initial development provided the functionality for maintaining basic employee information, generating weekly payroll checks and registers (time, pay, and deductions), and retaining historical information for monthly, quarterly and annual reporting.
After the payroll system had been in production for two years, an enhancement was requested by the personnel department. When the payroll system was first installed, there was only one labor union in the corporation. Since then, multiple bargaining units have come into play and the deductions mechanism could not support the information necessary for effective administration of the related payroll functions. An enhancement project was initiated to provide the additional functionality to meet the new business needs.
The flow chart of Fig. 4 represents a sample Information System showing the use of the present invention to establish a new development project, i.e. to capture data about the development of a payroll application. A the end of the flow, the present invention will have process model information stored about the development and the application. Analysis data will also be available in the organization of Fig. 3 at the Responsibility Center 3.8 - 3.11, Organization 3.12, 3.13 and Corporate Executive 3.14 Level.
Arrows in Fig.4 point to the next action to be taken after the current step is complete, rectangles indicate the action taken based on data or previous decision, and rectangles with concave sides indicate data stores.
The user enters the application overview information in operation 4.1 to create and validate the payroll application ID. All process model information about the payroll application will be related to this ID. The user then enters the project overview information to create and validate the payroll application's development project, as indicated in block 4.2. Component information is then collected in operation 4.3. The illustrative development project has 30 external inquiries, 60 external outputs, 50 external inputs, 1 external interface file, and 15 internal logical files 4.4a-e. The project's general system characteristics are also included in the measurement calculations 4.5, and the specific characteristic, complexity, is determined in operation 4.6.
Once the size information is collected, the user enters the project's process attributes at 4.7. These attributes include team information, work environment information, data about the tools and techniques used for the project 4.8a, 4.8b, and 4.8c, respectively. The user adds information about time, cost, and defect incidents at the project level as indicated at 4.9 - 4.10c. This information is used with the size (function point) data to calculate the project performance indicators 4.11 and 4.12. i.e. project ratios.
The development project data is complete and is ready for the user to generate the payroll application installed base data. The user initiates the update process, which moves project component, team, and environment information to the application level as indicated by operation 4.13 and data stores 4.14 a-f and 4.15a, 4.15b. Application attribute
information regarding documentation, support tools, or customer satisfaction can now be added to the payroll application by the user, as indicated by operation 4.16 and data store 4.17. The user adds application cost 4.17a and defect incident 4.17c information. This information is used with component size information to calculate the application performance indicators 4.18 and 4.19.
The flow chart of Fig. 5 illustrates a sample Information Systems showing the use of the present invention to establish an enhancement project, i.e. to capture data about enhancement of a payroll application. At the end of the flow, the present invention will have process model information stored about the enhancement project and its effect on the payroll application base. Analysis data will also be available for the organization of Fig. 3 at the Responsibility Center 3.8 - 3.11, Organization 3.12, 3.13 and Corporate Executive 3.14 Levels.
Arrows in Fig. 5 point to the next action to be taken after the current step is complete, rectangles indicate the action taken based on data or previous decision, rectangles with concave sides indicate data stores. The rectangles with curved lower sides indicate
requirements documents. The user receives a request to change the functionality of the payroll application as indicated in block 5.1. In order to provide the additional data needed, it is necessary to modify 15 screens, 3 reports, 1 file, and add files, screens and reports to support the expanded labor union reporting requirements, as illustrated by the requirements documents designated 5.2, 5.3, and 5.4. The user creates an enhancement project overview attached to the payroll application in operation 5.5 which validates the project and is used to gather its process model information. The user then copies the existing application size data to the enhancement project as indicated in block 5.6. This includes external inputs, external inquiries, external outputs, external interface files, internal logical files and general system characteristics from data stores 5.8a - 5.8f which are copied into data stores 5.7a - 5.7f.
Next, the user adds the new component details to the enhancement project and modifies components copied form the application level during the previous step in operations 5.9 and 5.10 respectively. The user enters project attributes in operation 5.11, which include team, environment, tool, and technique data contained in data stores 5.12a-5.12c. The user then enters other project measurement information in operation 5.13, such as time, cost, and defect failures contained in data stores 5.14a-5.14c. The data is used with size data to calculate the enhancement project's performance indicators, as indicated in data stores 5.15 and 5.16. The enhancement project is ready to be updated to the payroll application. Thus, the changes made to the project contained in data stores 5.7a-5.7f and 5.14a-5.14c will be reflected at the application level. The update by operation 5.17 revises the application process model data contained in data stores 5.8a - 5.8f. The user now enters other application specific data during operation 5.18, including costs, attributes, and defect failures, which are placed in data stores 5.19a, 5.19b. This information is used with size information to calculate the application's performance indicators in operations 5.20 and 5.21.
Fig. 6 is a flow chart of the method used for analysis that the present invention facilitates, according to the sample business application. Arrows in Fig.6 point to the next action to be taken after the current step is complete, rectangles indicate the action taken based on data or previous decision, and diamonds illustrate decisions.
The first step in analyzing an application is to choose the level of analysis, as indicated by operation 6.1. The invention has five levels of reporting: corporate executive,
organization, responsibility center, application, and project, as previously described in connection with Fig.3. There are several types of reports that can be run concerning support, quality, and time. For the purpose of this example, a delivery report is analyzed, as indicated in block 6.2. The invention reports the delivery times for the projects that update the application. The invention helps the user identify the project or projects with the best delivery rates, by means of decision 6.3.
Once the project that has the best delivery rate for the application has been identified, the user must verify that the measurement data is correct and ensure that the steps taken to produce the delivery rate did not compromise the quality of the project. This is illustrated by operations designated 6.4, 6.5 and 6.6. The user can accomplish this by examining the project's component and incident records. If the user discovers that the data is corrupt or that the quality of the project has been compromised, as indicated by decision block 6.7, corrective action must be taken and the project is re-evaluated in operation 6.8. On the other hand, if the project data proves to be true, and the quality of the project is preserved, the user identifies the cause of the good delivery rate by examining the project's team, environment, and tool and technique records in operation 6.9.
The user then determines if the factors that resulted in the good delivery rate are repeatable. This is illustrated by operation 6.10 and decision 6.11. If they can be repeated, they are institutionalized for other projects and applications of the organization, as indicated in block 6.12.
To summarized briefly, the process model analysis method was outlined, the present invention was introduced as a software package that automates of elements of the model. Next, current manual and automated technology that exists to perform the measurement analysis was described in detail. After that the shortcomings of the current measurement software packages in automating the process model were pointed out. Finally the overall design of the present invention was described in detail.
The present invention is the most complete measurement analysis software currently available, in terms of the process model. To accomplish this, the present invention introduces several unique features to the measurement software environment, and those features now will be described in detail.
A first unique feature is integration of measurement, metric, and attribute data at both the application and project levels. Turning first to the application level, Fig. 7 is an entity relationship diagram showing the integrated application data sets according to the present invention. Each rectangle on Fig. 7 represents a logical collection of data. The connecting lines indicate a relationship. The marks at the extremes of the connecting line show the nature of the relationship, i.e. a single intersecting line at both ends denotes a one-to-one relationship between records, a "crow's foot" at both ends represents a many-to-many relationship, a single intersecting line at one end and a "crow's foot" at the other end shows that a one-to-many relationship exists.
The present invention automates all elements of the process model previously described herein. As explained earlier, the present invention distinguishes application information from project information to ensure the integrity of data. A first unique feature that the present invention introduces is the automation of the elements contained in the process, model at the application level. The measurement information that is stored for the application includes function points, cost, failure defects.
As previously described herein, an application's function point information is entered through its related projects. For this reason, function point information is not entered directly input into the application itself, rather it's count is updated by related projects. The process that updates project information to related application is considered another unique aspect of the invention and is treated as such herein. Once the information is updated to the application 7.1, it is stored according to component type, i.e. external inputs, external outputs, external inquiries, internal logical files, and external logical files designated 7.2-7.6 respectively. The fourteen functional characteristics 7.8 are also included in the information that the project updates to the application. The sum of the application's related project function point counts are totaled to produce the application's unadjusted function point count, which is stored in component totals data set 7.7. The application's unadjusted function point count is then multiplied by the function characteristics and produces the application's applications adjusted function point count, which is the size of the application.
Application costs are entered at the application level 7.13, as is the log of failure defects. Time, the fourth measure of the process models, is automatically tracked by the present invention. Application Ratios 7.15 tracks the application's metrics. The ratios that are calculated include Support Rate per Function Points, Application Reliability, Mean Time to Repair, Maintenance Cost per Function Point, and Repair Cost Ratio. The Application attributes that make up the processes in the process model tracked for the application include teams 7.10 and support work environment 7.11.
As explained in detail previously herein, no other measurement software integrates all the elements of the process model as the present invention does.
Turning now to the project level, Fig. 8 is an entity-relationship diagram showing the integrated application data sets according the present invention. Each rectangle in Fig.8 represents a logical collection of data. The connecting lines indicate a relationship. The marks at the extremes of the connecting line show the nature of the relationship, i.e. a single intersecting line at both ends denotes a one-to-one relationship between records, a "crow's foot" at both ends represents a many-to-many relationship, a single intersecting line at one end and a "crow's foot" at the other end shows that a one-to-many relationship exists.
The present invention automates the elements of process model, previously described herein, for the project level, project having been previously defined herein. The following function point measurement components are tracked for the project 8.1: external inputs 8.2, external outputs 8.3, external inquiries 8.4, internal logical file 8.5, and external logical files 8.6. The present invention performs the calculations outlined previously herein, to produce the unadjusted function point count, which is stored in component totals 8.7. The user then rates the fourteen General System Characteristics to determine the value adjustment factor
8.8. The present invention multiplies the unadjusted function point count by the value adjustment factor to determine the adjusted function point count, which is also stored in component totals 8.7.
In addition to function points, projects in the present invention contain the following measures: time 8.13, cost 8.14, and failure incidents 8.15. This measurement information is entered into the project record by the user. Ratios are the performance indicator metrics for the project 8.16. As in the process model, the present invention's project ratios are calculated from project measurement information. Metrics that are tracked for projects include: Delivery Rate, Duration Delivery Rate, Stability Ratio, Defect Detection Ratio, Defect Ratio, and Cost per function point. The following project attributes are tracked for the project: teams 8.10, project work environment 8.11, and project tools and techniques
8.9. In addition to these attributes, the user may record comments about the project 8.12.
As previously explained, no other measurement software integrates all the elements of the process model as the present invention does.
A second unique feature ofthe present invention is component explosion and it is of two basic types: add and maintenance. Fig. 9 is a flow chart of the technique used to refine summary level input for component information being added and generate detail component information according to the present invention. Arrows Fig. 9 point to the next action to be taken after the current step is complete. Rectangles indicate the action taken based on data or previous decision. Squares show input of data, diamonds illustrate a decision, and the parallelogram indicates addition of a new record to the file. The best known prior art approach captured and stored component detail with a quantity factor. The newly constructed method introduced here takes such homogenous information and breaks it down to its smallest identifiable detail. The user enters the component ID 9.1 and quantity 9.5. The component ID consists of a prefix (maximum 8 alpha-numeric characters) 9.1 and a suffix (6 numeric characters). The suffix is the sequence code, and may be assigned by the invention or the user 9.2. For example, if the user assigns component ILF1 (prefix code) a quantity of 3, it is exploded by the invention as ILF1- 001000, ILF1-002000, and ILF1-003000 as indicated in block 9.13. Following explosions of ILF1 begin at the next available sequence code (e.g. ILF 1-004000). If the user defines the suffix sequence code, the component cannot be exploded 9.6. The invention then checks the application and project component records to determine the highest sequence number for that component ID 9.7. The quantity that the user enters in then checked 9.9, and the invention determines if the quantity multiplied by 1,000 (the sequence code) is greater than 999,000 as indicated in block 9.10. If the sequence code is greater than 999,000, an error message if displayed and the user must enter a new quantity 9.8. If the sequence code is less than 999,000, after being multiplied by the quantity, the invention sets the highest sequence code for that component ID by adding 1,000 to the last component ID exploded 9.13. The component record is then written 9.14. The invention determines the number of components to explode and list by subtracting 1 from the quantity (if the user wants to explode one listing into four, the invention lists the original component and three components) 9.15. The component checks to ensure that the quantity is greater than zero and explodes the
component 9.16.
As discussed in detail previously, no other function point tracking software has this explosion feature. It is a considered a unique, distinguishing feature of the present invention.
Turning now to the maintenance type of the explosion feature, Fig. 10 is a
a flow chart for the technique used to refine summary level input for component information being modified and generate detailed component information according to the present invention. Arrows in Fig. 10 point to the next action to be taken after the current step is complete. Rectangles indicate the action taken based on data or previous decision. Squares show input of data, diamonds illustrate a decision, and the parallelogram indicates addition of a new record to the file.
The best known prior art approach captured and stored component detail with a quantity factor. The newly constructed method introduced here takes such homogenous information and breaks it down to its smallest identifiable detail for maintenance. Maintenance occurs when an change is being made to an existing component. The user selects the component ID 10.1 that he or she wants to modify. The user modifies die quantity code 10.2 to re-explode the component. When the user explodes a component from a maintenance screen and the new components fall between two existing components, the sequence code is numbered by tens (e.g. if ILF1-002000, which falls between ILF1-001000 and ILF1-003000, is entered with a factor of three, the records generated will have the following IDs: ILF1-002000, ILF1-002010, ILF1-002020). This action is illustrated in Fig. 10 by blocks 10.4 - 10.7. The component record is then written 10.8, and the invention determines the number of exploded components to list by subtracting one from the quantity as indicated 10.9. If the quantity is greater than zero, the invention explodes the components 10.10.
As discussed in detail previously, no other function point tracking software has this explosion feature. It is a considered a unique, distinguishing feature of the present invention.
A third unique feature of the present invention is accurate movement of data between applications and projects. The difference between application and project data, and the need to ensure the integrity of both for analysis has been discussed in detail previously. To automate the process model analysis method, the present invention introduces the accurate movement of data between projects and applications. There are five types of movement of data necessary to fully automate the process model; application update of a baseline or development project; application update of an enhancement project; application copy to an enhancement project; application copy to a baseline or development project; application update backout.
The provision of accurate movement of data according to the present invention enables the process model to be fully automated in a way that ensures the integrity of measurement information. As explained previously herein, no other measurement software accomplishes the accurate movement of data. This distinction applied to the five types of accurate movement of data listed herein above and which now will be described in detail.
Fig.11 shows the relationship in the present invention between application and project data. In particular Fig.11 is an entity relationship diagram showing mapping of project information to the application, according to the present invention. Each rectangle in Fig. 11 represents a logical collection of data. The connecting lines indicate a relationship as follows: a single intersecting line at both ends denotes a one-to-one relationship between records; a "crow's foot" at both ends represents a many-to-many relationship; a single intersecting line at one end and a "crow's foot" at the other end shows that a one-to-many relationship exists.
The structural relationship between applications and project according to the present invention enables the user to create and maintain applications 11.13 and projects 11.1 as separate, yet related entities. Information that has been entered by the user in a project data store modifies the corresponding application data store when the user selects an accurate movement of data action, which will be described presently. This structure makes the unique accurate movement of data possible.
The present invention directly relates project and application function point component information, as illustrated in project data stores 11.2 - 11.6 and application data stores 11.14 - 11.18. Project function point totals and application function point totals are provided as indicated in blocks 11.7 and 11.19, respectively. In addition to the component data, application and project general system characteristic data is related, as shown in blocks 11.8 and 11.20. Project cost and time data, data stores 11.10 and 11.11, update the application during an accurate movement of data action. The present invention also relates environment attribute information between an application and project as indicated by blocks 11.9 and 11.21.
Turning now to the five types of movement of data to fully automate the process model, the first is accurate movement of data - baseline, development project update to an application. Fig 12 is a detailed flow chart of the process used by the present invention to update the initial set of project information to the application. Arrows in Fig. 12 point to the next action to be taken after the current step is complete. Rectangles indicate the action taken based on data or previous decision. Squares show input of data, diamonds illustrate a decision, and the parallelogram indicates addition of a new record to the file.
Software applications are developed and maintained by projects. Application Update of a baseline or development project enables the user to move the recorded measurement, metric, and attribute data from the project to the application. This type of Update is used for baseline and development projects only.
The user begins the process by selecting a standard implementation, where project data is tallied for the project record and then updated to the application, or a non standard implementation. If the implementation is not standard, the project data is tallied for the project record, but is not updated for the application 12.2. The project transaction components, which include external inputs, external outputs, and external inquiries, are updated to the application 12.3. The project data components, which include internal logical files and external interface files are then updated to the application 12.4, as are the project general system characteristics 12.5. The only attribute information that is update to the application is work environment 12.6. Information about project tools, tools, and techniques are not carried to the application. The project ratios are then calculated for before the update process is complete 12.7. The user then has the option to add project and application general comments 12.8 - 12.11.
The second type of movement of data is accurate movement of data - application update of an enhancement project. Fig. 13 is a flow chart of the process used by the present invention to update enhancement project information to the application. Arrows Fig. 13 point to the next action to be taken after the current step is complete. Rectangles indicate the action taken based on data or previous decision. Squares show input of data, diamonds illustrate a decision, and the parallelogram indicates addition of a new record to the file.
The user indicates if the implementation of the project is a standard one (it will be calculated in the application's work product) or is a terminated one (the project's work product is calculated, but not included in the application's work product). This is indicated in blocks 13.1 and 13.2. The user can generate a pre-update log. This report, displayed on the screen or printed, lists update conflicts resulting from data newly entered or modified 13.4 and 13.5. Conflicts occur when an action the user is trying to update was changed by a previous application update. If conflicts do exist, the user can choose to continue or terminate the update process as indicated by decision block 13.6. If the user continues an update, an application snapshot is taken 13.7. The user has the opportunity to update comments regarding the application and project 13.8 - 13.11. The project transaction components, data components, and system characteristics are updated to the application (13.12 - 13.14). The user can then update application and project comments 13.16 - 13.19. A unique feature of this part of the invention is the conflict resolution opportunities presented to the user as illustrated by blocks 13.21 - 13.30.
The third type of movement of data is accurate movement of data - application copy to a baseline, development project. Fig. 14 is a flow chart of the process used by the present invention to create a development project copying application details. Arrows in figure 14 point to the next action to be taken after the current step is complete. Rectangles indicate the action taken based on data or previous decision. Squares show input of data, diamonds illustrate a decision, and the parallelogram indicates addition of a new record to the file. The invention of the Accurate Movement of Data Between Applications and Projects includes the Application Copy to a Baseline , Development Project. This action creates a project with information copied from and related application. The user selects the application he or she wants to copy 14.1. One invention validates the request 14.2, and if the application does not exist the request is refused 14.3 and the user is presented a list of valid applications 14.5.
Once a valid application is selected, the application components are copied to the project (external inputs 14.4, external outputs 14.6, external inquiries 14.7, internal logical files 14.8, and external interface files 14.8). The application's general system characteristics are then copied to the project 14.9. The application work environment characteristics are copied to the project 14.11. The application's attributes are copied to and stored in the project record 14.12.
The fourth type of movement of data is accurate movement of data - application copy to an enhancement project. Fig. 15 is a flow chart of the process used by the present invention to create an enhancement project copying application details that are to be modified. Arrows in Fig.15 point to the next action to be taken after the current step is complete. Rectangles indicate the action taken based on data or previous decision. Squares show input of data, diamonds illustrate a decision, and the parallelogram indicates addition of a new record to the file.
This type of accurate movement of data is used to copy application information to an enhancement project for maintenance. The user is presented with a list of application data choices that can be copied to the application. In particular, if the user answers yes to the Copy All Function Point and Attribute Data request 15.1, the application's external inputs, external outputs, external inquiries, internal logical files, external interface files, team data, and attribute data will be copied to the project 15.2. Copy All Function Point Data 15.3 copies the application's external input, external output, external inquiry, internal logical file, and external logical file data to the project 15.4.
If the user selects Copy External Inputs 15.5, there will be presented a list of the application's external input to select 15.6. When the user processes the copy request, the selected components are copied to the project. If the user selects Copy External Outputs 15.7, he or she will be presented a list of the application's external output components to select 15.8. When the user processes the copy request, the selected components are copied to the project. If the user selects Copy External Inquiries 15.9, there will be presented a list of the application's external output components to select 15.10. When the user processes the copy request, the selected components are copied to the project.
If the user selects Copy Files 15.11, there she will be presented a list of the application's internal logical file and external interface components to select 15.12. When the user processes the copy request, the selected components are copied to the project. If the user selects Copy Application Teams to Project 15.13, the application team data is copied to the enhancement project 15.14. If the user selects Copy Application Attributes to Project 15.15, the application's attribute information is copied to the project.
The fifth type of movement of data is accurate movement of data - application update backout. Fig. 16 is a flow chart of the method used by the current invention to reverse the effects for the last project update on the application. Arrows in Fig. 16 point to the next action to be taken after the current step is complete. Rectangles indicate the action taken based on data or previous decision. Squares show input of data, diamonds illustrate a decision, and die parallelogram indicates addition of a new record to the file.
By virtue of this fifth type of data movement, the invention enables the system
administrator to back out an update. The user enters the project ID to be removed from the application 16.1. The project can be backed out only if the application has not been updated by subsequent project 16.2 and 16.3. The project information withdrawn from the
application includes: transaction components, data components, complexities, totals, teams, function summary, and ratio calculations indicated in blocks 16.4 - 16.10, respectively.
A fourth unique feature of the present invention is report flagging for applications and projects. In particular, the present invention also provides the user with unique capabilities for reporting measurement data for the organizational levels shown in Fig. 3. The present invention enables the user to exclude certain projects and applications from reporting. There are times when adjustment projects are created to correct erroneous application or project size. Similarly, sample application and project records are generated to be used as patterns for data capture and modeling. In order to prevent these from distorting the metric analysis reports, the present invention provides an analysis flag to give administrators the ability to exclude those applications or projects.
The project analysis flag illustrated in Figure 17 presents the user with the option to include or exclude a project from reporting and analysis 17.1. If the user decides to include the project, the project data will be included in project, application, responsibility center, organization, and corporate executive reports 17.2. If the user excludes the project, the project is not included in reporting 17.3.
The application analysis flag illustrated in Figure 18 presents die user with the option to include or exclude an application from reporting and analysis 18.1. If the user decides to include die application, the application data will be included in application, responsibility center, organization, and corporate executive reports 18.2. If the user excludes die application, the application is not included in reporting 18.3.
Another unique reporting capability of the present invention is the calculating upper and lower control limits of Fig. 2. The following Organization Portfolio shown report in Table Viπ lists the responsibility centers that comprise the organization, according to Fig. 3, the number of applications that comprise the responsibility center, the number of adjusted function points, the average number of function points per application which also may contain a "+" if the size is above the control limits or a "-" if the size is below the control limit, and die average application age. The average application size and average application age for the organization is then listed, followed by the upper and lower control limits for each.
Table V Ill
Organization Portfolio Report
Adjusted Average Average
Number of Function Application Application
Responsibility Center Applications Points Size* Age**
Organization: ORGANIZATION ONE
RESP CENTER ONE 5 2500 500+ 4
RESP CENTER THREE 3 900 300- 7+
Totals . . . . . . . . . . 8 3400
* Average Application Size. . . . . . . . . . . . . 425.00
-Upper Control Limit. . . . . . . . . . . . . 475.00
Lower Conttol Limit. . . . . . . . . . . . . 375.00
** Average Application Age. . . . . . . . . . . . . 5.1
Upper Control Limit. . . . . . . . . . . . . 6.0
Lower Control Limit. . . . . . . . . . . . . 4.0
* Total Application FP / Number of Applications
** Total Application Age / Number of Applications
"+" at right of Age or Size indicates number above conttol limit
"-" at right of Age or Size indicates number below lower conttol limit The formulas for calculating the upper and lower control limits for all of the analysis reports according to me present invention follow:
UpperControlLimit=Ave. +3 *\
Figure imgf000032_0001
LowerControlLimit=Ave. -3 *y]
Figure imgf000032_0002
As previously described, one of die unique features of the present invention is the integration of measurement, metric and attribute data at both the application and project levels. In particular, Fig. 7 and Fig 8. show the integration of measurement, metric and attribute data at the application and project levels, respectively. Fig. 19, on the other hand, shows the integration method of application and measurement data for the present invention, in effect combining the application and project level presentations of Figs. 7 and 8, respectively.
Application related data is represented at the upper half of Fig. 19 and project related data is represented at die lower half. The master application and project data stores are illustrated by blocks 19.1 and 19.2 respectively. The application measurement information includes size in transaction 19.3 and data 19.4 function point counts. Transaction
components consist of external inputs, external outputs, and external inquiries. Data components consist of external interface files and external interface files. Also stored as application measurement information are costs 19.26 and defect incidents 19.10. Application metrics are calculated by application ratios 19.28. Application process attributes include teams 19.13, environment 19.12, and application attributes 19.53. An application snapshot is imtiated by die user to create a point in time view-only record of the application, which is stored block 19.18.
Application data is reported to the responsibility center 19.46, which is reported to the organization level 19.30, which in turn, is reported to die corporate executive level 19.31 of the organization. Project size information is tracked in the transaction data store 19.33 and in the data store 19.34. Transaction components include external inputs, external output, and external inquiry data. Data components include internal logical file and external interface file data. Other measures tracked for the project include time, 19.45, cost 19.27, and defects 19.44. Project attribute information includes project teams 19.43, project environment 19.42, project tools and techniques 19.41. A project snapshot may be taken by the user to create a point in time view-only record of me project, which is stored in block 19.40.
The present invention protects the integrity of its stored data with a user access security system 19.25. Users are classified as system aJministrators, application managers, project managers, and non-manager users. The system administrator may format the present invention and create and modify any stored application or project. An application manager may create and modify an application and all of me application's related projects, and may also view all stored application and project information. A project manager may create and modify a project and view all stored application and project information. A non-manager user may view all stored application and project data.
The system administrator defines the present invention's repository to reflect an organization's terminology. The system administrator defined repositories and a short description are included herein. Application attributes 19.52 are defined application criteria that are rated by application managers to characterize their applications. Environment 19.40 includes work environment factors that can be selected by application and project managers to characterize working conditions of applications and projects. Team criteria 19.61 are criteria used to rate team performance by application and project managers. Team definitions 19.62 are defined teams available to projects and applications. Tool validation values 19.65 provide project managers criteria to rate project tools. Tool sets available 19.10 are selected by project managers to reflect die utilities used to complete a project. Tool definitions 19.60 define tool sets. Tool types 19.51 classify tool sets into larger tool categories. Cost codes 19.59 are used by application and project managers to track application and project costs. Time codes 19.45 are used by project managers to record die time spent to complete a project. Process codes 19.21 specify the different task groupings of an organization. Project managers use process codes to organize the work assignments of a project. Project categories 19.55 are used by project managers to categorize projects for reporting purposes. Phase codes 19.32 are used by project managers to reflect the different time periods of a project's life cycle. Project types 19.20 are used by die project manager to specify if the project is baseline, development, repair, enhancement, conversion, user-defined, or preventive maintenance. The system administrator may also define project types that are used by an organization, but not included on this list. Project classes 19.56 are used by project managers to classify projects for reporting purposes. Project group codes 19.57 are used by project managers to group projects for reporting purposes.
Considering the present invention in its entirety, each module in the program according to me present invention is designed from a corresponding written specification used in generating the invention's operational code. To present all of these specifications would not be necessary to enable persons skilled in the art to make and use the invention.
Furthermore, presenting all of these specifications would result in a detailed description unduly large and cumbersome. However, an example of the written specifications for the screen component module is included herein as an appendix as an illustration of a typical module. The screen component module records and calculate the external input, external output, and external inquiry function point counts by screens of an application. In addition to providing an example of the subject matter used in programming the present invention, the screen component specification contains the detailed instruction used in programming the component explosion feature of the invention. The information given in this example, when taken with the remainder of the detailed description, is considered to be more man adequate to enable persons skilled in the art to design the other modules of the program according to the present invention.
While an embodiment of the present invention has been described in detail, that has been done for purposes of illustration, not limitation.
APPENDIX
SCREENS COMPONENT SPECIFICATIONS
NAME: Level 2 Main Menu
PURPOSE: Select a project component to process
ID: PROJ040.5
ACCESS LOGONO10,LOGONO20, (MAINO10{Project}{Existing} or {Project} PATH: {New}) or (MAINO15{Project}{Existing} or {Project}{New}),
MAINO20{Project}{Components...}{Screens}
CALLED PROJO40.5A ,PROJO40.5A-I, MAINO20-H
SCREENS:
FILES USED: PMptrans(33)
SCREEN F1=Help -display standard help MAINO20-H
FUNCTION: ESC=Exit - return to MAINO20{Project}{Components}
← -- |=Select - go to PROJO40.A OR PROJO40.A-I depending
on update access level
PROCESSING: For users with update access:
If no Screens Component exist for a selected project; check
PMptrans(33)->LINKED_SCR; if there are no records where
LINKED_SCR="Υ" then present screen PROJO40.5B-R
(Add screen).
If a component record for a selected project is found with LINKED_SCR="Y" display the appropriate screen:
Security:
Access Level Ownership Display Screen
1 n/a PROJ040.5A
2 Application/ PROJ040.5A
Project
2 no PROJO40.5A-I or standard message
3 Project PROJO40.5A
3 no PROJO40.5A-I or standard message
4 n/a PROJO40.5A-I or standard message
If PMptrans(33) is empty(No Component Type with LINKED_SCR=* Y" : Inquire only - clear status line
display standard error message
Screens Component
No Screens Components exist, for this project!
press any key...
MAINO20{Project}{Components}{Screens}
|
Figure imgf000037_0001
NAME : Selection Screen
PURPOSE: Select existing records for maintenance, add new records, delete records,
ID: PROJO40.5A
ACCESS LOGONO10,LOGONO20,(MAINO10{Project}{Existing} or {Project} PATH: {New}) or (MAINO15{Project}{Existing} or {Project}{New}),
MAINO20{Project}{Components...}{Screens}{Rating}/{Detail}, PROJO40.5A
CALLED PROJ04O.5A-H, PROJO40.5B-R,PROJO40.5B-D, PROJO40.5C-R, SCREENS: PROJO40.5C-D, PROJO40.S
FILES PMptrans{33), PMpsumm(39)
USED:
SCREEN F1=Help - display PROJO40.5A-H (help screen)
FUNCTION: Esc=Exit -return to MAINO20{Project}{Components}
←-- |=Select- select a record to maintain or view; goto
PROJO40.5B-R or PROJO40.5B-D
F3=Delete- delete a single record or group of records Alt-F3=Block Delete - Delete a group of records
F6=Add - add new records; goto PROJO40.5B-R or
PROJO40.5B-D
F8=Summary-display summary screen PROJO40.S F9=Locate- locate record with specified parameters;
component ID or description.
PROCESSING: Permit change of Component Description and Action Code on
Selection Window.
Permissible Action code changes:
Not -Blank to "C" or "D"
Included In { -"C" to "D" or blank
Version 1 -"D" to "C" or blank
-note that Action code can neither be changed
from "A" nor changed to "A".
If Component Description is the only change (Action code was not changed) update PMptrans(33) when cursor is moved off the record. If Action code was changed update PMptrans(33), PMpsumm(39), PMproj(2).
F3=Delete - delete the current record.
Clear status line.
Display standard deletion confirmation:
Delete Confirmation
Delete Input Component? No Yes
If "Yes" update Pmptrans(33), PMpsumm(39), PMproj(2)
Display standard confirmation:
Input Component successfully deleted ..."
goto next record
If eof() goto previous record.
If after a deletion there are no records where PMptrans(33)->LINKED_SCR="N"
.AND. C0MP_TYPE="1" for the selected project goto PROJO40.2B-R or PROJO40.2B-
D (Add Screen).
Alt-F3=Delete. Block - delete a group of records.
If Alt-F3=Delete Block is selected:
first record= current record
ending record=current record or selected
record.
If first record=current record and ending record= current record then allow for the deletion of a single record
clear status line
display standard delete confirmation External Input Component will be Deleted!
Delete Input Component {Component ID} No Yes
If Yes update PMptrans (33), PMpsumm(39), PMproj (2) after error handling
clear status line
display standard confirmation
"External Input Component successfully deleted..." return to PROJO40.2A
If No return to PROJO40.2A
If first record=current record and ending record= selected record then allow for the deletion of multiple records
clear status line
display standard delete confirmation
Delete External Input Components {Component ID} through {Component ID}? No Yes
If Yes update PMptrans (33), PMpsumm(39), PMproj (2) after error handling
clear status line
display standard confirmation
"External Input Components successfully deleted..." return to PROJO40.2A
If No return to PROJ040.2A
If after a deletion there are no records
where PMptrans (33)->LINKED_SCR="N" .AND.
COMP_TYPE="1" for a selected
project goto PROJO40.2B-R or PROJO40.2B-D (Add
Screen).
F9=Locate - Allow to locate a component record by either
Component ID or Description. If an exact match is not found go to the record that most closely matches the given parameters.
l l
Figure imgf000040_0001
NAME : Add Screen - Ratings Format
PURPOSE: Capture input quantities and ratings to be used in summary calculations.
ID: PROJO40.5B-R
ACCESS LOGONO10,LOGONO20, (MAIN010{Project}{Existing} or {Project} PATH: {New}) or (MAINO15{Project}{Existing} or {Project}{New}),
MAINO20{Project}{Components...}{Screens}{Rating},
PROJO40.5A,
PROJO40.5B-R
CALLED PROJO40.5B-R-H, POPUPO10, POPUPO20
SCREENS:
FILES PMptrans(33), PMpsumm(39), PMproj(2)
USED:
SCREEN F1=Help - display standard help PROJO40.5B-R-H (help screen) FUNCTION: ESC=Exit -return to PROJO40.5A
If record has not been saved
clear status line
display standard data detected confirmation
Data Detected
Save Screen Component? Yes No
If Yes update PMptrans (33)->LINKED_SCR="Y",
PMpsumm(39), PMproj(2) after error handling If Quantity(Qty) > 1 then present component description edit options - (see component description)
display standard save confirmation
"Screen Component successfully added..."
return to PROJO40.5A
If No return to PROJO40.5A
F5=Save/Add Another- update PMptrans(33)->LINKED_SCR="Y"
PMpsumm(39), PMproj (2) after error handling
If Quantity(Qty) > 1 then present component description edit options display standard save confirmation "Screen Component successfully
added..."
present a blank add screen
PROCESSING: Display only fields:
Application ID
Project ID
Project Type
Level
Action
Data Entry:
Action: Each new record added will contain the value of
"A" which will be display only.
Component ID:
field will require a user defined unique key up to 9 bytes(prefix). The other 6 bytes are reserved for a sequence code to be assigned after explosion or by the user(suffix).
Ex/ xxxxxxxxx-xxxxx
prefix - suffix
1. user enters first part of key only
IO50 multiple quantities are exploded into single record occurrences with the key and computer generated sequence codes by 1000's.
2. user enters the entire key
1050-01010
only one record can be added
Quantity fields(Qty) are display only.
check for:
Blank records: If a blank key is detected in Component ID (prefix)
clear status line
display standard error message
Invalid Component ID
Component Prefix cannot be blank!
press any key...
restore original screen function
Leading or Embedded spaces:
If there are leading or embedded spaces in the Component ID (prefix)
clear status line
display standard error message
Invalid Component ID
Component Prefix cannot contain leading or embedded spaces!
press any key...
restore original screen function
Description: will be up to 40 characters
This field is not required
1. Component Type:
1 = Input
2 = Inquiry
3 = Output
4 = Internal File
5 = External Interface File
Each component is identified by a Component Type. Whenever valid data is detected in any of the Screen's fields (Input, Inquiry, Output) then the corresponding type code will update PMptrans(33)->COMP_TYPE associated with that record.
Data Entry into Component fields
If explosion allowed:
Quantity field(Qty) will determine how many records will be exploded the default value is 1
Rating field(R) - when cursor is active on Input field display POPUPO10, Inquiry field display POPUPO10, POPUPO20, Output field display POPUPO20 The only valid values are (L,A,H)
Storage:
The Qty field is the only field that is not stored. This value is used as a multiplier to store records. For example, if the user entered this data:
Component ID. . SO10 - Description DRIVER SCREEN
Input Inquiry Output
Qty R Qty R Qty R
--- - --- - --- -
3 H 2 A
After F5=Save/Add Another is selected this data will be exploded and stored as single occurrences in PMptrans(33) with an associated memo field. The 9 byte Component ID (prefix) is assigned a 6 byte sequence code (suffix) for each unique ID (prefix). The first byte will be a "-" and the remaining 5 bytes will be a sequence code starting at 001000. The initial explosion of each unique ID will be by 1000's.
PMptrans (33 ) :
Action Comp Type Comp ID Description Rating Comment Linked Screen
A 1 S010-01000 Driver Screen H memo Y A 1 S010-02000 Driver Screen H memo Y A 1 S010-03000 Driver Screen H memo Y A 2 S020-04000 Driver Screen A memo Y A 2 S020-05000 Driver Screen A memo Y
========================= F5=Save/Add Another ======================================
Duplicate records: Check PMptrans(33), PMpdata(34) for duplicate records.
Xf a duplicate record exists:
clear status line
display standard error message (if conflict occurs in Pmptrans)
Invalid Component ID
Component ID already exists!
press any key...
display standard error message (if conflict occurs in Pmatrans and not in Pmptrans)
Invalid Component ID
Component {Component ID} already exists at the Application level! press any key...
restore original screen function
Update PMpsumm(39) using PMptrans(33)
Update PMproj (2) using PMpsumm(39)
Refer to "Project Ratings Summary" specifications.
Figure imgf000045_0001
NAME: Add Screen - Detail Format
PURPOSE: Capture transaction quantities and ratings to be used in summary calculations.
ID: PROJO40.5B-D
ACCESS LOGONO10,LOGONO20, (MAINO10{Project}{Existing} or {Project} PATH: {New}) or (MAINO15{Project}{Existing} or {Project}{New}),
MAINO20{Project}{Components...}{Screens}{Detail},
PROJO40.5A,
PROJO40.5B-D
CALLED PROJO40.5B-D-H
SCREENS:
FILES PMptrans(33), PMpsumm(39), PMproj (2)
USED:
SCREEN F1=Help - display PROJO40.5B-D-H (help screen)
FUNCTION: ESC=Exit -return to PROJO40.5A
If record has not been saved
clear status line
display standard data detected confirmation
Data Detected
Save Screen Component? Yes No
If Yes update PMptrans(33)->LINKED_SCR="Y", PMpsumm(39), PMproj (2)
If Quantity(Qty) > 1 then present component description edit options - (see component description)
display standard save confirmation
"Screen Component successfully added..." return to PROJO40.5A
If No return to PROJO40.5A
F5=Save/Add Another- refer to PROJO40.5B-R specs
PROCESSING: refer to PROJ040.5B-R specs
DET - For Output, Outputs, Inquiry, Screens
Action Qty Ftr DET Change
A 0 0 0 T Qty=1, Rating=' '
A 0 0 0 F Qty=1, Rating=' '
A 0 0 >0 T Qty=1, recalc rating
A 0 0 >0 F Qty=1
A 0 >0 0 T error #1
A 0 >0 0 F should not happen
A 0 >0 >0 T Qty=1, recalc rating
A 0 >0 >0 F Qty=1
A 1 0 0 T error #1
A 1 0 0 F Rating=beginning rating
A 1 0 >0 T recalc rating
A 1 0 >0 F do nothing
A 1 >0 0 T error≠1
A 1 >0 0 F should not happen
A 1 >0 >0 T recalc rating
A 1 >0 >0 F do nothing
C,' ' 0 0 0 T error #1
C,' ' 0 0 0 F Qty=1
C,' ' 0 0 >0 T Qty=1, recalc rating
C,' ' 0 0 >0 F Qty=1
C,' ' 0 >0 0 T error≠1
C,' ' 0 >0 0 F should not happen
C,' ' 0 >0 >0 T Qty=1, recalc rating
C,' ' 0 >0 >0 F Qty=1
C,' ' 1 0 0 T error≠1
C,' ' 1 0 0 F do nthing
C,' ' 1 0 >0 T recalc rating
C,' ' 1 0 >0 F do nothing
C,' ' 1 >0 0 T error≠1
C,' ' 1 >0 0 F should not happen
C,' ' 1 >0 >0 T recalc rating
C,' ' 1 >0 >0 F do nothing
In order to calculate a rating both an FTR and DET must be entered refer to reference card for calculation data
File Type Referenced(FTR)
Detail Element Type(DET)
If FTR is entered without corresponding DET or visa versa clear status line
display standard error message
Invalid Detail Count
FTR must have corresponding DET
press any key... Rating field(R) - display only and is generated by a combination of a valid FTR and DET.
Storage:
The Qty field is the only field that is not stored. This value is used as a multiplier to store records. For example if the user entered this data:
Component ID. . SO10 - Description DRIVER SCREEN
Input Inquiry Output
Qty FTR DET R Qty FTR DET R Qty FTR DET R
3 25 H 2 2 15 A
After F5=Save/Add Another is selected this data will be exploded and stored as single occurrences in PMptrans(33) with an associated memo field. The 9 byte Component ID (prefix) is assigned a 6 byte sequence code (suffix) for each unique ID (prefix). The first byte will be a "-" and the remaining 5 bytes will be a sequence code starting at 001000.
The initial explosion of each unique ID will be by 1000's.
PMptrans(33):
Action Comp Type Comp ID Description Rating Comment FTR DET
Figure imgf000048_0001
Duplicate records: Check PMptrans(33), PMpdata(34) for duplicate records.
If a duplicate record exists:
clear status line
display standard error message (if conflict occurs in Pmptrans)
Invalid Component ID
Component ID already exists!
press any key...
display standard error message (if conflict occurs in Pmatrans and not in
Pmptrans)
Invalid Component ID
Component {ComponentID} already exists at Application level! press any key...
restore original screen function
Update PMpsumm(39) using PMptrans (33)
Update PMproj(2) using PMpsumm(39)
Refer to "Project Ratings Summary" specifications.
Figure imgf000050_0001
NAME : Change/Inquire/Delete - Rating Format
PURPOSE: Maintain input quantities and ratings to be used in summary calculations.
ID: PROJO40.5C-R
ACCESS LOGONO10,LOGONO20, (MAINO10{Project}{Existing} or {Project} PATH: {New}) or (MAINO15{Project}{Existing} or {Project}{New}),
MAINO20{Project}{Components...}{Screens}{Rating}, PROJO40.5A, PROJO40.5C-R
CALLED PROJO40.5C-R-H, POPUP010, POPUPO20
SCREENS:
FILES PMptrans(33), PMpsumm(39), PMproj(2)
USED:
SCREEN F1=Help - display PROJO40.5C-R-H (help screen)
FUNCTION: ESC=Exit -return to PROJO40.5A
If record has been changed and not saved
clear status line
display standard change detected confirmation
Change Detected
Save Screen Component? Yes No
If Yes update PMptrans(33), PMpsumm(39), PMproj(2) If Quantity(Qty) > 1 then present component description edit options - (see component description PROJO40.5B-R specs
display standard save confirmation
"Screen Component successfully added..."
return to PROJO40.5A
If No return to PROJO40.5A
F3=Delete - allow for deletion of current record
clear status line
display standard deletion confirmation
Delete Confirmation
Delete Screen Component? No Yes
If Yes update PMptrans(33), PMpsumm(39),
PMproj(2)
display standard confirmation
"Screen Component successfully deleted " goto next record
If eof() goto previous record
If eof() and there are no records for selected project with LINKED_SCR="Y" then goto PROJ040.5B-R (Add Screen)
F4=Save - save changes made to current record and
re-explode if quantity >1
F9=Locate - refer to PROJO40.5A
PgUp=Previous - goto previous record
If record has been changed ask for save confirmation
clear status line
display standard change confirmation
Change Detected
Save Screen Component? Yes No
If Yes update PMptrans(33), PMpsumm(39),
PMproj(2)
display standard save confirmation
"Screen Component successfully updated..." goto previous record
If No goto previous record PgDn=Next - goto next record
If record has been changed ask for save confirmation
clear status line
display standard change confirmation
Change Detected
Save Screen Component? Yes No
If Yes update PMptrans(33), PMpsumm(39),
PMproj(2)
display standard save confirmation
"Screen Component successfully updated..." goto next record
If No goto next record
PROCESSING:
If PMproj(2)->PROJ_TYPE = B,D then the only valid Action field code is "A" - display only
If PMproj(2)->PROJ_TYPE .NOT EQUAL. B,D valid Action fields are
"A" - display only
"C" - user defined
"D" - user defined
" " - user defined
If a user enters anything other than C,D or ' 'in Action field clear status line
display standard error confirmation
Invalid Action
Valid Actions are "C" or "D" or Blank
press any key...
restore original screen functionality
Component ID: user may change component ID(suffix) of record that has an Action="A" only. All other component ID'S are display only.
Suffix: If component suffix is blank
clear status line
display standard error confirmation
Invalid Component ID
Component ID Suffix cannot be blank!
press any key...
restore original screen functionality
Re-explosions:
Once an explosion has taken place (records ordered by 1000's) the user may re-explode occurrences by entering a value in the Qty field. After F4=Save the new records will be ordered by 1000's if you are re-exploding the last record of a group or by 10's if you are re-exploding between two component suffixes.
PMptrans(33) :
Figure imgf000052_0001
Re-explode S010-01000
Action.
Component ID. . S010-01000
Description.. .Driver Screen Input
Qty R
3 H
PMptrans(33) :
Figure imgf000053_0001
If user tries to re-explode S010-01000 and there is not enough space to assign sequence codes then:
clear status line
display standard error message (if conflict occurs in Pmptrans)
Cannot Save Screen Components
Not enough room to explode!
press any key...
display standard error message (if conflict occurs in Pmatrans)
Cannot Save Screen Components
Component will conflict with Application Component {Component Id} press any key...
restore original screen functionality
If user tries to re-explode passed 999,990
clear status line
display standard error message (if conflict occurs in Pmptrans)
Cannot Save Screen Components
Not enough room to explode!
press any key...
display standard error message (if conflict occurs in Pmatrans)
Cannot Save Screen Components
Not enough room to explode after Application Component {Component Id} press any key...
restore original screen functionality
Comment field: display message when cursor is active on field
"(Ctrl-PgDn to open memo field)"
open memo window with standard functionality
If user hits Esc during an edit
clear status line
If memo field is empty
display standard data detected confirmation
Data Detected
Save Screen Component Comments? Yes No
If memo field is not empty
display standard change detected confirmation
Change Detected
Save Screen Component Comments? Yes No
If Yes save comments and update memo field from "memo" to "Memo" Rating Inconsistencies:
If current record contains a FTR and a DET, and a change is made to the rating field there will be an inconsistency between the detail rating format and the rating format. EX PROJO40.c-r user changes the value "H" to "L" in the rating field. The record contains a FTR=3 and FTR=25 with a corresponding rating of "H" which is not consistent with the entered value of "L". On PROJO40.5C-R display message after clearing status line.
Rating Inconsistency
"Override current Detail Count Rating of {Original}
FTR DET
3 25
(this will clear FTR and DET fields)
No Yes
If No restore original rating
If Yes replace with new rating and clear FTR and DET fields
See PROJO40.5B-R for Rating field(R), single delete, duplicate keys, blank keys, leading or embedded spaces
Figure imgf000055_0001
NAME: Change/Inquire/Delete - Detail Format
PURPOSE: Maintain input quantities and ratings to be used in summary calculations.
ID: PROJO40.5C-D
ACCESS LOGONO10,LOGONO20, (MAINO10{Project}{Existing} or {Project} PATH: {New}) or (MAINO15{Project}{Existing} or {Project}{New}),
MAINO20{Project}{Components...}{Screens}{Detail},
PROJO40.5A,
PROJO40.5C-D
CALLED PROJO40.5C-D-H
SCREENS:
FILES PMptrans(33), PMpsumm(39), PMproj(2)
USED:
SCREEN F1=Help - display PROJO40.5C-D-H (help screen)
FUNCTION: Esc=Exit -return to PROJO40.5A
refer to PROJO40.5C-R for escape handling
F3=Delete - refer to PROJO40.5C-R for delete handling F4=Save - refer to PROJO40.5C-R for save handling
F9=Locate - refer to PROJO40.5C-R for locate
PgUp=Previous - refer to PROJO40.5C-R
PgDn=Next - refer to PROJO40.5C-R
PROCESSING: refer to PROJO40.5C-R except for Rating inconsistencies(Because detail count override rating count)
refer to PROJO50.5B-D for DET processing
Figure imgf000057_0001
NAME: Selection Screen for Inquire Only
PURPOSE: select existing records to view for inquire only personnel
ID: PROJO40.5A-I
ACCESS LOGONO10,LOGONO20, (MAINO10{Project}{Existing} or {Project} PATH: {New}) or (MAINO15{Project}{Existing} or {Project}{New}),
MAINO20{Project}{Components...}{Screens}, PROJO40.5A-I
CALLED PROJO40.5A-I-H, PROJO40.5C-R-I,PROJO40.5C-D-I, PROJO40.S SCREENS:
FILES PMptrans(33), PMpsumm(39)
USED:
SCREEN F1=Help - display PROJO40.5D-H (help screen)
FUNCTIONS: ESC=Exit -return to MAINO20{Project}{Components}
F8=Summary-display summary screen PROJO40.S F9=Locate- locate record with specified parameters ←-- |=select - select a record for viewing
goto PROJO40.5C-R-I or PROJO40.5C-D-I
PROCESSING: All data is display only
Selection Screen for Inquire Only - Rating/Detail
Figure imgf000059_0001
NAME: Inquire Only - Rating Format
PURPOSE: View ratings to be used in summary calculations
ID: PROJO40.5C-R-I
ACCESS PATH: LOGONO10,LOGONO20,(MAINO10{Project}{Existing} or {Project}
{New}) or (MAINO15{Project}{Existing} or {Project}{New}), MAIN020{Project}{Components...}{Screens}{Rating},
PROJO40.5A-I, PROJO40.5C-R-I
CALLED PROJO40.5C-R-I-H
SCREENS:
FILES PMptrans(33), PMpsumm(39)
USED:
SCREEN F1=Help - display PROJO40.5C-R-I-H (help screen)
FUNCTIONS: ESC=Exit -return to PROJO40.5A-I
F9=Locate - find a specified record by specific parameters
PgUp=Previous - goto previous record
PgDn=Next - goto next record
PROCESSING: All data is display only
In uire Onl - Ratings Format
Figure imgf000061_0001
NAME: Inquire Only - Detail Format
PURPOSE: View ratings to be used in summary calculations
ID: PROJO40.5C-D-I
ACCESS LOGONO10,LOGONO20,(MAINO10{Project}{Existing} or {Project} PATH: {New}) or (MAINO15{Project}{Existing} or {Project}{New}),
MAINO20{Project}{Components...}{Screens}{Detail},
PROJO40.5A-I, PROJO40.5C-D-I
CALLED PROJO40.5C-D-I-H
SCREENS:
FILES PMptrans(33), PMpsumm(39)
USED:
SCREEN F1=Help - display PROJO40.5C-D-I-H (help screen)
FUNCTIONS: ESC=Exit -return to PROJO40.5A-I
F9=Locate - find a specified record by given parameters
PgUp=Previous - goto previous record
PgDn=Next - goto next record
PROCESSING: All data is display only
Figure imgf000063_0001

Claims

Claims
1. A measurement analysis computer software system for integration of measurement, metric and attribute data including data repositories for measurement, metric and attribute data at project and application levels comprising:
a) means for updating function point counts from a related project of an application; b) means for calculating the results of said updating;
c) means for entering summary application information;
d) means for calculating quality and support ratios for said application; and e) means for tracking data relating to said application.
2. A measurement analysis computer software method for integrating measurement, metric and attribute data wherein data repositories are provided for measurement, metric and attribute data at project and application levels comprising:
a) updating function point counts from a related project of an application;
b) calculating the results of said updating;
c) entering summary application information such as application cost and failure incident information;
d) calculating quality and support ratios for an application entered from said measures; and
e) tracking data relating to said application such as work teams, team environment and characteristics of said application.
3. A measurement analysis computer software system for integration of measurement, metric and attribute data including data repositories for measurement, metric and attribute data at project and application levels comprising:
a) means for calculating function point totals from inputted function point component counts;
b) means for entering summary project information;
c) means for calculating delivery and quality ratios for a project from said function point totals and said summary project information; and
d) means for tracking data related to said project.
4. A measurement analysis computer software method for integrating measurement, metric and attribute data wherein data repositories are provided for measurement, metric and attribute data at project and application levels comprising: a) calculating function point totals from inputted function point component counts; b) entering summary project information including project cost, time and failure incident information;
c) calculating delivery and quality ratios for a project from said function point totals and said summary project information; and
d) tracking data related to said project such as work teams, team environment and tools and techniques used.
5. In a measurement analysis computer software system:
a) means for storing information at the project level wherein a project comprises a collection of work tasks with a time frame and a work product to be delivered; b) means for storing information at the application level wherein an application comprises a cohesive collection of automated procedures and data supporting an objective and one or more components, modules or sub-systems; and c) means for supporting a direct relationship between information stored at the project level and information stored at the application level.
6. A system according to claim 5, wherein said means for supporting a direct relationship comprises means for directly relating application function point component information to function point component information of a project related to an application, said component comprising a unique process or data requirement of the project or application.
7. A system according to claim 5, wherein said means for supporting a direct relationship comprises means for directly relating functional characteristic information of an application to functional characteristic information of a project related to said application.
8. A measurement analysis computer software method for supporting a direct relationship between information stored at the project level and information stored at the application level, wherein a project comprises a collection of work tasks with a time frame and a work product to be delivered and an application comprises a cohesive collection of automated procedures and data supporting an objective and one or more components, modules or sub-systems, said method comprising: a) directly relating application function point component information to function point component information of a project related to an application, said component comprising a unique process or data requirement of the project or application; and
b) directly relating functional characteristic information of an application to functional characteristic information of a project related to said application.
9. A method according to claim 8 further comprising:
a) directly relating time information of an application to time information of a project related to the application;
b) directly relating project and application cost information; and
c) directly relating application and project team work environment information.
10. In a measurement analysis computer software system, component explosion means enabling the data processor to enter multiple components with one entry and comprising: a) means for enabling entry of project components by a component ID code and a quantity value; and
b) means for exploding the component into single occurrences with a new ID code if the quantity is greater than one;
c) said component comprising a unique process or data requirement of the project.
11. A system according to claim 10, wherein said component explosion means adds project components and comprises:
a) means for accessing a component selection screen;
b) means for accessing a component add screen;
c) means for entering a component ID value comprising a sequence code and a quantity value;
d) means for determining if said quantity is greater than one;
e) means operatively associated with said deteemining means for exploding the component into single occuπences for listing on a component selection screen if said quantity is greater than one; and
f) means for ordering the exploded component by renumbering the sequence code of each component.
12. A system according to claim 10, wherein said component explosion means maintains components and comprises:
a) means for accessing a component maintenance screen from a component selection screen;
b) means for modifying the component information;
c) means operatively associated with said modifying means for re-exploding the component if the quantity field is modified;
d) means for returning the component selection screen; and
e) means for renumbering the exploded component sequence codes for listing on a selection screen.
13. In a measurement analysis computer software method, a component explosion process enabling the data processor to enter multiple components with one entry and comprising: a) entering project components by a component ID code and a quantity value; and b) exploding the component into single occurrences with a new ID code if the quantity is greater than one;
c) said component comprising a unique process or data requirement of the project.
14. A method according to claim 13, wherein said component explosion process adds project components and comprises:
a) accessing a component selection screen;
b) accessing a component add screen;
c) entering a component ID value comprising a sequence code and a quantity value; d) determining if said quantity is greater than one;
e) if so, exploding the component into single occuπences for listing on a component selection screen; and
f) ordering the exploded component by renumbering the sequence code of each component.
15. A method according to claim 13, wherein said component explosion process maintains components and comprises:
a) accessing a component maintenance screen from a component selection screen; b) means for modifying the component information; c) re-exploding the component if the quantity field is modified;
d) returning the component selection screen; and
e) renumbering the exploded component sequence codes for listing on a selection screen.
16. A measurement analysis computer software system for providing accurate movement of data between projects and applications to protect the integrity of project and application data, wherein a project comprises a collection of work tasks with a time frame and a work product to be delivered and an application comprises a cohesive collection of automated procedures and data supporting an objective and one or more components, modules or sub-systems and wherein projects create and maintain applications, said system comprising means for automatically transferring information between an application and projects related to said application whereby information entered in a project data store modifies information entered in an application data store during said accurate movement of data.
17. A system according to claim 16, wherein said means for automatically transferring information moves function point information between projects and applications and includes means for providing baseline, development project update to an application wherein an application receives initial measurement and work environment information from a baseline or development project, said baseline or development project being the work effort which initiates and application.
18. A system according to claim 17, wherein said means for providing baseline, development project update to an application comprises:
a) means for presenting a list of project data for update to the application;
b) means for selecting desired project data to update the project to the application and for initiating an update process; and
c) means for updating the application with the project data.
19. A system according to claim 16, wherein said means for automatically transferring information moves function point information between projects and applications and includes means for providing maintenance project update so that changes are made to an application through maintenance and enhancement projects and information from said projects is updated to the application.
20. A system according to claim 19, wherein said means for providing maintenance project update comprises:
a) means for optionally generating a pre-update log to indicate the presence of any conflicts in update data caused by update of a previous update; b) means for listing project data which can be updated to the application;
c) means for updating the project to the application in response to a selection of project data; and
d) means for providing information as to the existence and nature of conflicts caused by the update and for providing information as to possible resolutions of such conflicts.
21. A system according to claim 16, wherein said means for automatically transferring information moves function point information between projects and applications and includes means for providing application copy to a baseline or development project to copy the data of one application to another by providing accurate movement of said data from an existing application to a new baseline or development project.
22. A system according to claim 21, wherein said means for providing application copy to a baseline or development project comprises:
a) means for accepting the application or application ID code to be copied to the project;
b) means for providing a selection list of application data that can be copied to the application; and
c) means for copying selected information from the application to the project.
23. A system according to claim 16, wherein said means for automatically transferring information moves function point information between projects and applications and includes means for providing application copy to a maintenance or enhancement project to create maintenance and enhancement projects by copying application details to be modified or deleted from the application to the project.
24. A system according to claim 23, wherein said means for providing application copy to a maintenance or enhancement project comprises:
a) means for providing a list of application information that can be copied from the application to the project; and
b) means for copying selected information from the application to the project.
25. A system according to claim 16, wherein said means for automatically transferring infornation moves function point information between projects and applications and includes means to backout from the application the effects of a project update.
26. A system according to claim 25, wherein said means to backout comprises:
a) means for providing a list of applications and the projects which updated said applications;
b) means for selecting an application and project;
c) means for determining if the selected project is the most recent project to update the application;
d) means operatively associated with said determining means to indicate that update cannot take place if the selected project is not the most recent project to update the application; and
e) means for withdrawing project data from the application.
27. A measurement analysis computer software method for providing accurate movement of data between projects and applications to protect the integrity of project and application data, wherein a project comprises a collection of work tasks with a time frame and a work product to be delivered and an application comprises a cohesive collection of automated procedures and data supporting an objective and one or more components, modules or subsystems and wherein projects create and maintain applications, said method comprising automatically transferring information between an application and projects related to said application whereby information entered in a project data store modifies information entered in an application data store during said accurate movement of data.
28. A method according to claim 27, wherein said automatically transferring information between an application and projects related to said application comprises moving function point information between projects and applications for providing baseline, development project update to an application wherein an application receives initial measurement and work environment information from a baseline or development project, said baseline or development project being the work effort which initiates an application.
29. A method according to claim 28, wherein said providing baseline, development project update to an application comprises:
a) presenting a list of project data for update to the application;
b) selecting desired project data to update the project to the application;
c) initiating an update process; and
d) updating the application with the project data.
30. A method according to claim 27, wherein said automatically transferring information between an application and projects related to said application comprises moving function point information between projects and applications for providing maintenance project update for making changes to an application through maintenance and enhancement projects and updating information from said projects to said application.
31. A method according to claim 30, wherein said providing maintenance project update comprises:
a) optionally generating a pre-update log to indicate the presence of any conflicts in update data caused by update of a previous update;
b) providing a list of project data that can be updated to the application;
c) selecting the project data;
d) updating the project to the application;
e) providing information as to any conflicts caused by the update including describing such conflicts; and
f) providing possible resolutions of such conflicts.
32. A method according to claim 27, wherein said automatically transferring information between an application and projects related to an application comprises moving function point information between projects and applications for providing application copy to baseline or development project to copy the data of one application to another by providing accurate movement of said data from an existing application to a new baseline or development project.
33. A method according to claim 32, wherein said providing application copy to a baseline or development project comprises:
a) accepting the application ID code or the application to be copied to the project; b) providing a selection list of application data that can be copied to the application; and
c) copying selected information from the application to the project.
34. A method according to claim 27, wherein said automatically transferring information between an application and projects related to an application comprises moving function point information between projects and applications for providing application copy to a maintenance or enhancement project to create maintenance and enhancement projects by copying application details to be modified or deleted from the application to the project.
35. A method according to claim 34, wherein said providing application copy to a maintenance or enhancement project comprises:
a) providing a list of application information that can be copied from the application to the project; and
b) copying selected information from the application to the project.
36. A method according to claim 27, wherein said automatically transferring information between an application and projects related to an application comprises moving function point information between projects and applications and includes backing out from the application the effects of a project update.
37. A method according to claim 36, wherein said backing out from the application the effects of a project update comprises:
a) providing a list of applications and the projects which updated said applications; b) selecting an application and project;
c) detennining if the selected project is the most recent project to update the application; d) indicating that update cannot take place if the selected project is not the most recent project to update the application; and
e) withdrawing project data from the application.
38. In a measurement analysis computer software system:
a) means for storing information at the project level wherein a project comprises a collection of work tasks with a time frame and a work product to be delivered; b) means for storing information at the application level wherein an application comprises a cohesive collection of automated procedures and data supporting an objective and one or more components, modules or sub-systems; and c) means to include and exclude selectively applications and projects from analysis and reporting so that adjustment applications or projects entered to mend previous data entry error s made during work on the other applications or projects can be excluded from analysis and reporting results of complete applications and projects which were recorded.
39. A system according to claim 38, wherein said means to include and exclude selectively applications and projects from analysis and reporting comprises:
a) means for inputting an include designation for a predetermined field on an overview screen of either a project or an application.
40. In a measurement analysis computer software system:
a) storing information at the project level wherein a project comprises a collection of work tasks with a time frame and a work product to be delivered;
b) storing information at the application level wherein an application comprises a cohesive collection of automated procedures and data supporting an objective and one or more components, modules or subsystems; and
c) selectively including and excluding applications and projects from analysis and reporting so that adjustment applications or projects entered to mend pervious data entry errors made during work on the other applications or projects can be excluded from analysis and reporting results of complete applications and projects which were recorded.
41. A method according to claim 40, wherein said selectively including and excluding applications and projects from analysis and reporting comprises:
a) inputting an include designation for a predetermined field on an overview screen of either a project or an application; and
b) inputting an exclude designation for a predetermined field on an overview screen of either a project or an application.
42. A measurement analysis computer software system comprising:
a) means for storing information at the project level wherein a project comprises a collection of work tasks with a time frame and a work product to be delivered; b) means for storing information at the application level wherein an application comprises a cohesive collection of automated procedures and data supporting an objective and one or more components, modules or sub-systems; c) means for supporting a direct relationship between information stored at the project level and information stored at the application level;
d) means for integrating measurement, metric and attribute data including data repositories for measurement, metric and attribute data at said project and application levels;
e) component explosion means enabling the data processor to enter multiple components with one entry;
f) means for providing accurate movement of data between projects and applications to protect the integrity of project and application data; and
g) means for selectively including and excluding applications and projects from analysis and reporting.
43. A measurement analysis computer software method comprising:
a) storing information at the project level wherein a project comprises a collection of work tasks with a time frame and a work product to be delivered;
b) storing information at the application level wherein an application comprises a cohesive collection of automated procedures and data supporting an objective and one or more components, modules or sub-systems;
c) providing a direct relationship between information stored at the project level and information stored at the application level; d) integrating measurement, metric and attribute data including data repositories for measurement, metric and attribute data at said project and application levels; e) performing a component explosion process to enable entering multiple components with one entry;
f) providing accurate movement of data between projects and applications to protect the integrity of project and application data; and
g) selectively including and excluding applications and projects from analysis and reporting.
PCT/US1992/010905 1991-12-13 1992-12-14 Measurement analysis software system and method WO1993012488A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US80802091A 1991-12-13 1991-12-13
US07/808,020 1991-12-13

Publications (1)

Publication Number Publication Date
WO1993012488A1 true WO1993012488A1 (en) 1993-06-24

Family

ID=25197672

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US1992/010905 WO1993012488A1 (en) 1991-12-13 1992-12-14 Measurement analysis software system and method

Country Status (2)

Country Link
US (2) US5446895A (en)
WO (1) WO1993012488A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004008159A2 (en) * 2002-07-15 2004-01-22 Zircon Corporation Conductor tracing system

Families Citing this family (110)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1993012488A1 (en) * 1991-12-13 1993-06-24 White Leonard R Measurement analysis software system and method
US5903453A (en) * 1996-01-19 1999-05-11 Texas Instruments Incorporated Method for estimating software operation and performance using a goal-question-metric paradigm
US6110214A (en) * 1996-05-03 2000-08-29 Aspen Technology, Inc. Analyzer for modeling and optimizing maintenance operations
US6938007B1 (en) * 1996-06-06 2005-08-30 Electronics Data Systems Corporation Method of pricing application software
US6246972B1 (en) 1996-08-23 2001-06-12 Aspen Technology, Inc. Analyzer for modeling and optimizing maintenance operations
US5848394A (en) * 1996-09-18 1998-12-08 Leonard & Caroline White Method and system for producing a work breakdown structure for a project
US5960196A (en) * 1996-12-18 1999-09-28 Alcatel Usa Sourcing, L.P. Software release metric reporting system and method
JPH1115646A (en) * 1997-06-25 1999-01-22 Fujitsu Ltd Technique information managing system
US6519763B1 (en) * 1998-03-30 2003-02-11 Compuware Corporation Time management and task completion and prediction software
JP2000028393A (en) * 1998-07-08 2000-01-28 Canon Inc Measurement unit, control unit, drive unit, drive system, and measuring device
US6715130B1 (en) 1998-10-05 2004-03-30 Lockheed Martin Corporation Software requirements metrics and evaluation process
GB2349243A (en) * 1999-04-21 2000-10-25 Int Computers Ltd Time estimator
US6546506B1 (en) * 1999-09-10 2003-04-08 International Business Machines Corporation Technique for automatically generating a software test plan
WO2001026014A1 (en) * 1999-10-06 2001-04-12 Accenture Llp Method and estimator for providing service control
US7020621B1 (en) 1999-10-06 2006-03-28 Accenture Llp Method for determining total cost of ownership
US20060143252A1 (en) * 2000-03-09 2006-06-29 Pkware, Inc. System and method for manipulating and managing computer archive files
US7844579B2 (en) 2000-03-09 2010-11-30 Pkware, Inc. System and method for manipulating and managing computer archive files
US20060155731A1 (en) * 2000-03-09 2006-07-13 Pkware, Inc. System and method for manipulating and managing computer archive files
US20060143714A1 (en) * 2000-03-09 2006-06-29 Pkware, Inc. System and method for manipulating and managing computer archive files
US8230482B2 (en) * 2000-03-09 2012-07-24 Pkware, Inc. System and method for manipulating and managing computer archive files
US20060143249A1 (en) * 2000-03-09 2006-06-29 Pkware, Inc. System and method for manipulating and managing computer archive files
US8959582B2 (en) 2000-03-09 2015-02-17 Pkware, Inc. System and method for manipulating and managing computer archive files
US20050015608A1 (en) 2003-07-16 2005-01-20 Pkware, Inc. Method for strongly encrypting .ZIP files
US20060143250A1 (en) * 2000-03-09 2006-06-29 Pkware, Inc. System and method for manipulating and managing computer archive files
US6879988B2 (en) 2000-03-09 2005-04-12 Pkware System and method for manipulating and managing computer archive files
US20060173848A1 (en) * 2000-03-09 2006-08-03 Pkware, Inc. System and method for manipulating and managing computer archive files
US20010047287A1 (en) * 2000-03-31 2001-11-29 Simon Jacobs Finding technique for a scheduling system
US6578004B1 (en) * 2000-04-27 2003-06-10 Prosight, Ltd. Method and apparatus for facilitating management of information technology investment
JP4184582B2 (en) * 2000-07-26 2008-11-19 ビジテック株式会社 Reward calculation method, reward calculation device, and recording medium
US20030061330A1 (en) * 2000-09-29 2003-03-27 Frisco Lynn A. Web-based collaborative project and process management solution
US20020087962A1 (en) * 2000-12-29 2002-07-04 Hudson Charles A. System and process for migrating enhancements to a system
US6681197B2 (en) 2001-01-05 2004-01-20 The Quaker Oats Company Automated data collection reporting and analysis system for industrial production
US7159207B2 (en) * 2001-04-09 2007-01-02 Sun Microsystems, Inc. Method and apparatus for accessing related computer objects
US8234156B2 (en) * 2001-06-28 2012-07-31 Jpmorgan Chase Bank, N.A. System and method for characterizing and selecting technology transition options
WO2003025775A1 (en) * 2001-09-20 2003-03-27 Wellogix Inc. Process and system for managing field documentation data in a complex project workflow system
US20030070157A1 (en) * 2001-09-28 2003-04-10 Adams John R. Method and system for estimating software maintenance
US20030069773A1 (en) * 2001-10-05 2003-04-10 Hladik William J. Performance reporting
US20040003374A1 (en) * 2002-06-28 2004-01-01 Van De Vanter Michael L. Efficient computation of character offsets for token-oriented representation of program code
US20040006763A1 (en) * 2002-06-28 2004-01-08 Van De Vanter Michael L. Undo/redo technique with insertion point state handling for token-oriented representation of program code
US7386834B2 (en) * 2002-06-28 2008-06-10 Sun Microsystems, Inc. Undo/redo technique for token-oriented representation of program code
US20040049436A1 (en) * 2002-09-09 2004-03-11 Adp, Inc. Payroll automation system
US20040054562A1 (en) * 2002-09-16 2004-03-18 Motoo Tanaka Multi-perspective enterprise management tool
US7548930B2 (en) * 2002-10-18 2009-06-16 Neighborhood America Platform for management of internet based public communications and public comment
US20040083116A1 (en) * 2002-10-25 2004-04-29 Joyce Derek J. Methods for identifying or predicting capacity problems
US7340650B2 (en) 2002-10-30 2008-03-04 Jp Morgan Chase & Co. Method to measure stored procedure execution statistics
US6917894B2 (en) * 2002-12-05 2005-07-12 Brian Inge Tire plus-sizing software program
US7360201B2 (en) * 2002-12-09 2008-04-15 International Business Machines Corporation Automated analysis and identification of options in project management
US7401156B2 (en) 2003-02-03 2008-07-15 Jp Morgan Chase Bank Method using control interface to suspend software network environment running on network devices for loading and executing another software network environment
US7484087B2 (en) * 2003-02-24 2009-01-27 Jp Morgan Chase Bank Systems, methods, and software for preventing redundant processing of transmissions sent to a remote host computer
US20040225620A1 (en) * 2003-05-09 2004-11-11 Faustino Alfred L. Systems and methods for valuing professional services
US7739661B2 (en) * 2003-05-14 2010-06-15 Microsoft Corporation Methods and systems for planning and tracking software reliability and availability
US20070112788A1 (en) * 2003-05-30 2007-05-17 Kobza Kim P Development management system
US7840933B2 (en) * 2003-08-06 2010-11-23 International Business Machines Corporation Software application management for distributing resources and resource modeling
US20050071807A1 (en) * 2003-09-29 2005-03-31 Aura Yanavi Methods and systems for predicting software defects in an upcoming software release
US7702767B2 (en) * 2004-03-09 2010-04-20 Jp Morgan Chase Bank User connectivity process management system
US7640531B1 (en) * 2004-06-14 2009-12-29 Sprint Communications Company L.P. Productivity measurement and management tool
US7669180B2 (en) * 2004-06-18 2010-02-23 International Business Machines Corporation Method and apparatus for automated risk assessment in software projects
ZA200700562B (en) * 2004-06-21 2008-08-27 Equestron Llc Method and apparatus for evaluating animals' health and performance
US7665127B1 (en) 2004-06-30 2010-02-16 Jp Morgan Chase Bank System and method for providing access to protected services
US20060026053A1 (en) * 2004-07-30 2006-02-02 Rockwell Electronic Commerce Technologies Llc Goal tender system and method
US20060085492A1 (en) * 2004-10-14 2006-04-20 Singh Arun K System and method for modifying process navigation
US7526751B2 (en) * 2005-01-28 2009-04-28 Alcatel-Lucent Usa Inc. Macroscopic model for large scale software system and its behavior
US8275793B2 (en) * 2005-04-29 2012-09-25 Microsoft Corporation Transaction transforms
US8418132B2 (en) * 2005-04-29 2013-04-09 Microsoft Corporation Application description language
US8046737B2 (en) * 2005-04-29 2011-10-25 Microsoft Corporation XML application framework
US20060245096A1 (en) * 2005-04-29 2006-11-02 Microsoft Corporation Application framework phasing model
US8132148B2 (en) 2005-04-29 2012-03-06 Microsoft Corporation XML application framework
EP1899902B1 (en) * 2005-05-30 2011-12-28 Semiconductor Energy Laboratory Co., Ltd. Semiconductor device and driving method thereof
WO2006130846A2 (en) * 2005-06-02 2006-12-07 United States Postal Service Methods and systems for evaluating the compliance of software to a quality benchmark
US7743369B1 (en) 2005-07-29 2010-06-22 Sprint Communications Company L.P. Enhanced function point analysis
US8572516B1 (en) 2005-08-24 2013-10-29 Jpmorgan Chase Bank, N.A. System and method for controlling a screen saver
US20070074151A1 (en) * 2005-09-28 2007-03-29 Rivera Theodore F Business process to predict quality of software using objective and subjective criteria
US8181016B1 (en) 2005-12-01 2012-05-15 Jpmorgan Chase Bank, N.A. Applications access re-certification system
US20070185792A1 (en) * 2006-02-09 2007-08-09 Sap Method and system for assisting in compiling employee tax deduction
US7913249B1 (en) 2006-03-07 2011-03-22 Jpmorgan Chase Bank, N.A. Software installation checker
US7895565B1 (en) 2006-03-15 2011-02-22 Jp Morgan Chase Bank, N.A. Integrated system and method for validating the functionality and performance of software applications
US8805919B1 (en) * 2006-04-21 2014-08-12 Fredric L. Plotnick Multi-hierarchical reporting methodology
US20070276712A1 (en) * 2006-05-24 2007-11-29 Kolanchery Renjeev V Project size estimation tool
US8381180B2 (en) * 2006-09-08 2013-02-19 Sap Ag Visually exposing data services to analysts
US20080294504A1 (en) * 2007-05-23 2008-11-27 Mortensen William A Method of Evaluating a Project Manager of a Project of a Provider
US20090228315A1 (en) * 2008-03-06 2009-09-10 International Business Machines Corporation Project Assessment Using Project Yield Determination
US20090241026A1 (en) * 2008-03-21 2009-09-24 Augustine Nancy L Systems and methods for displaying rolling sequences
US20090241053A1 (en) * 2008-03-21 2009-09-24 Augustine Nancy L Systems and methods for displaying rolling sequences
US20090241048A1 (en) * 2008-03-21 2009-09-24 Augustine Nancy L Systems and methods for displaying a data modification timeline
US20090240611A1 (en) * 2008-03-21 2009-09-24 Augustine Nancy L Systems and methods for displaying a data modification timeline
US20090241055A1 (en) * 2008-03-21 2009-09-24 Augustine Nancy L Systems and methods for side by side display of data modification
US20090241056A1 (en) * 2008-03-21 2009-09-24 Augustine Nancy L Systems and methods for display and modification of information related to multiple businesses
US8091033B2 (en) * 2008-04-08 2012-01-03 Cisco Technology, Inc. System for displaying search results along a timeline
US20100131322A1 (en) * 2008-11-21 2010-05-27 Computer Associates Think, Inc. System and Method for Managing Resources that Affect a Service
JP5432286B2 (en) 2008-12-19 2014-03-05 ユニバーシティ オブ ノース カロライナ アット シャルロット System and method for sterilizing fluid using a point source
US20100211485A1 (en) * 2009-02-17 2010-08-19 Augustine Nancy L Systems and methods of time period comparisons
US20100269087A1 (en) * 2009-04-20 2010-10-21 Vidya Abhijit Kabra Software tools usage framework based on tools effective usage index
US20100318409A1 (en) * 2009-06-12 2010-12-16 Accenture Global Services Gmbh Component Based Productivity Measurement
CN102023983B (en) * 2009-09-11 2013-03-13 首都师范大学 Managing method of statistical space-time database
US20110314449A1 (en) * 2010-06-18 2011-12-22 Infosys Technologies Limited Method and system for estimating effort for maintenance of software
BR112013028967A2 (en) 2011-05-10 2019-09-24 Dante Consulting Inc enterprise product management system and method
US8538792B1 (en) 2012-04-26 2013-09-17 Jpmorgan Chase Bank, N.A. Method and system for determining total cost of ownership
US9727835B2 (en) * 2012-11-30 2017-08-08 International Business Machines Corporation Business systems management mobile administration
US11338048B2 (en) 2012-12-11 2022-05-24 Aquisense Technologies Llc Apparatus for irradiation
US9720655B1 (en) 2013-02-01 2017-08-01 Jpmorgan Chase Bank, N.A. User interface event orchestration
US10002041B1 (en) 2013-02-01 2018-06-19 Jpmorgan Chase Bank, N.A. System and method for maintaining the health of a machine
US9088459B1 (en) 2013-02-22 2015-07-21 Jpmorgan Chase Bank, N.A. Breadth-first resource allocation system and methods
US9619410B1 (en) 2013-10-03 2017-04-11 Jpmorgan Chase Bank, N.A. Systems and methods for packet switching
US9542259B1 (en) 2013-12-23 2017-01-10 Jpmorgan Chase Bank, N.A. Automated incident resolution system and method
US9868054B1 (en) 2014-02-10 2018-01-16 Jpmorgan Chase Bank, N.A. Dynamic game deployment
CN104111837A (en) * 2014-07-15 2014-10-22 国家电网公司 Provincial electric power measurement center production early-warning and monitoring method
JP6263282B2 (en) * 2015-01-16 2018-01-17 株式会社野村総合研究所 Development support system
US20160217405A1 (en) * 2015-01-28 2016-07-28 Jochen Steinbach Change Requests
US10331437B2 (en) * 2017-07-05 2019-06-25 International Business Machines Corporation Providing customized and targeted performance improvement recommendations for software development teams
US10423916B1 (en) * 2018-03-14 2019-09-24 Deepcoding Ltd. Method for generating developer performance ratings

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4631664A (en) * 1983-07-19 1986-12-23 Bachman Information Systems, Inc. Partnership data base management system and method
US5146591A (en) * 1990-04-27 1992-09-08 Bachman Information Systems, Inc. Dynamic information management system utilizing entity-relationship information model in which the attribute is independent of an entity
US5179698A (en) * 1990-04-27 1993-01-12 Bachman Information Systems, Inc. System for transforming user data in accordance with an algorithm defined by design data and for evaluating the transformed data against logical criteria

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5067107A (en) * 1988-08-05 1991-11-19 Hewlett-Packard Company Continuous computer performance measurement tool that reduces operating system produced performance data for logging into global, process, and workload files
WO1993012488A1 (en) * 1991-12-13 1993-06-24 White Leonard R Measurement analysis software system and method

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4631664A (en) * 1983-07-19 1986-12-23 Bachman Information Systems, Inc. Partnership data base management system and method
US5146591A (en) * 1990-04-27 1992-09-08 Bachman Information Systems, Inc. Dynamic information management system utilizing entity-relationship information model in which the attribute is independent of an entity
US5179698A (en) * 1990-04-27 1993-01-12 Bachman Information Systems, Inc. System for transforming user data in accordance with an algorithm defined by design data and for evaluating the transformed data against logical criteria

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004008159A2 (en) * 2002-07-15 2004-01-22 Zircon Corporation Conductor tracing system
WO2004008159A3 (en) * 2002-07-15 2004-10-28 Zircon Corp Conductor tracing system
US6933712B2 (en) 2002-07-15 2005-08-23 Zircon Corporation Electrical circuit tracing and identifying apparatus and method

Also Published As

Publication number Publication date
US5446895A (en) 1995-08-29
US5771179A (en) 1998-06-23

Similar Documents

Publication Publication Date Title
US5771179A (en) Measurement analysis software system and method
US5845285A (en) Computer system and method of data analysis
US20030135481A1 (en) Rules based method and system for project performance monitoring
US5404509A (en) Conducting and managing sampled information audits for the determination of database accuracy
US7761316B2 (en) System and method for determining performance level capabilities in view of predetermined model criteria
US20020123945A1 (en) Cost and performance system accessible on an electronic network
US20020184133A1 (en) Method and system for verifying the integrity of data in a data warehouse and applying warehoused data to a plurality of predefined analysis models
US20110238710A1 (en) Software Product Inventory and Usage Information Correlated with License Agreement Information
US11763380B2 (en) Ensuring the accurateness and currentness of information provided by the submitter of an electronic invoice throughout the life of a matter
US6993505B1 (en) Method and system for performing CRA, HMDA, and fair lending analysis and reporting for a financial institution
CN110728422A (en) Building information model, method, device and settlement system for construction project
US8473389B2 (en) Methods and systems of purchase contract price adjustment calculation tools
Li Data quality and data cleaning in database applications
US20100145748A1 (en) Information technology planning based on enterprise architecture
CN115630113A (en) Account flow checking method and device
RU2736851C1 (en) Enterprise information system control method
JPH08147381A (en) Examination job support system
KR101903530B1 (en) Optimization diagnostic system of business and IT system
DURDU et al. Utilization of Information Systems to Enhance the Efficiency of Internal Audit Activity Management and Audit Testing Processes
EP2069964A2 (en) Contextually analyzing data in tabular and graphical reports
Boffa Analytics Case Studies
EA044801B1 (en) METHOD FOR MANAGING ENTERPRISE INFORMATION SYSTEM
Mathieson et al. Improving the effectiveness and efficiency of appraisal reviews: an information systems approach
Scheer et al. Operational, Tool-Supported Corporate Performance Management with the ARIS Process Performance Manager
Little et al. Auditing for database integrity

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): CA

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH DE DK ES FR GB GR IE IT LU MC NL PT SE

DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: CA