Managing Resources in a Program Model

In the past couple of weeks I have assisted several customers exploring and using the Resource class in the development and analysis of program plans.

The basic question posed to me was this: How can I manage and set the use of resources without looking at each individual program activity’s property page?

To review a bit before getting to the solution…  [more]

When you are putting together a program plan or a test plan, you will be using elements from the Program Activity or Test Activity classes to develop the plan. Resources may be used in the planning effort to ensure that you have sufficient people, equipment, or other support material needed to execute the plan.

A resource is something (e.g. power, MIPS, interceptors, etc.) that a system or project uses, captures, or generates while it is operating. Resources can be related to elements in the Function, Program Activity, or Test Activity classes. In this particular case we are focusing on program activities used in the development of the program or project plan.

A program activity (or test activity) can consume, capture, or produce a resource. Consuming a resource means that the resource is used up (completely) in the process of completing the program activity. For example, if we are conducting a live fire test activity, the test may consume (or use completely) a fixed amount of a munition.

Capturing a resource means that the resource is used during the process of completing the program activity but then returned to the resource stock and may be used in another activity. For example, completing a particular program activity may require the assistance of a system engineer from the pool of engineers. When the program activity is completed, the system engineer is freed up to perform other tasks. Another example is the use of facilities. I may need to use a particular test bench or piece of test equipment to assemble and test a configuration item.

When producing a resource, the activity adds to the resource level. For example, at the end of a test activity the activity will produce the final / completed test report. Or, an activity that is performing a component integration and acceptance test, at the end of the activity, produces a completed part.

Now let’s return to the question: How can I manage and set the use of resources without looking at each individual program activity’s property page? The solution does not require scripting. Instead, we can use the ability to export and update information from the model using Excel®. Regardless of the toolset being used (CORE™ or GENESYS™), we know that we can extract information from the system design repository into an Excel spreadsheet. And, we know that we can use the Excel spreadsheet interface to update information in the system design model. The trick is in knowing where the resource amounts consumed, captured, and produced are stored in the model and how to get these values in the Excel interface. 

A resource has relationships consumed by, captured by, and produced by. Each of these has a relationship attribute Amount. Expanding the relationship in the Targets and Attribute window displays the amount of the resource consumed, captured, or produced.

There is an additional relationship attribute Acquire Available which takes a Boolean value True or False. If True and the amount of a resource currently available is insufficient when compared to the Amount required, then the amount available is reserved for the function / activity and when additional resources become available they are allocated to the function / activity. Think of this similar to placing a book on reserve at the library. If you reserve a book (equivalent to Acquire Available = True), when the book is returned, the library allocates the book to your account. If False and the amount of a resource currently unavailable is insufficient, the available resource is not reserved which allows other activities dependent upon that resource to proceed.

In order to answer our question and manage the resource information, we can pull the resource relationship attributes into the Excel spreadsheet for quick review and manipulation. The example below is an Excel spreadsheet showing the resource and its amount; the captured by, consumed by, and produced by relationships; and the corresponding relationship attribute Amount. When doing this, be sure to specify the type as relationship (not targets) when querying the resource so that you can also pull in the associated attribute value for the relationship.

By inspecting this table, we can now easily modify the amounts on the spreadsheet and “push” or update the values in the model. This allows us to quickly manage and update the use of resources across the project, adjusting our plan and even simulating it to evaluate the overall effectiveness in meeting the program constraints.

Leave a Reply