3SL: Requirements management and model driven systems engineering from concept to creation.
Cradle®
Login:
Username:
Password:
 
Search:  
Visitor not logged in, You are: Home > News > 3SL web based newsletter
 

 

3SL Web-based newsletter for January 2006 [Cradle 5.3]

Multi-Value Category Codes

A project can define any number of category codes. Each category code can optionally have a list of pre-defined values. Category codes are defined once and assigned to types of item in the database. When a user specifies a category value for a database item, any pre-defined values defined for the category’s category code are presented as a pick-list for the user to choose from.

Category codes are used to define small attributes for database items, such as:

  • Types
  • Subtypes
  • Statuses in an item’s lifecycle
  • Test results
  • Verification methods
  • Levels of detail (such as system, subsystem, equipment, component, assembly, part)
  • Responsible groups or organisations

Most projects created pre-defined lists of pick-list values for their category codes.

Prior to Cradle-5.3, items’ categories were held one value, which was either free-format (if the category’s category code did not have a picklist), or a value from the pick-list.

From Cradle-5.3, category code can be defined to be either single-value or multi-value. Single value category codes behave in the same way as category codes before Cradle-5.3. Multi-value categories are new in Cradle-5.3.

When a category code is defined to be multi-value:

  • Up to 320 alternate values can be defined for the category code
  • Each value is a string of up to 40 characters that occupies a specific position or slot in the list of 320 possible values
  • There are always 320 slots available for values in each multi-value category, but you can use 0, 1, 2 … 10 … or all 320 of them
  • Values do not have to occupy consecutive slots, you can leave gaps

When a multi-value category has been defined and assigned to a type of item, items of that type can have multiple values for the category. An item’s value for the category can be none, some or all of the values that have been defined for the category’s category code.

For example, we could define a category code called Inspection with values:

  • Inspection
  • Analysis
  • Demonstration
  • Test

If have an item type VERIFICATION defined in our schema and we assign the Inspection category code to VERIFICATION items, then we could create VERIFICATION items whose Inspection category could have the value:

  • Nothing, empty
  • Analysis (or any other single value)
  • Inspection and Analysis (or any other pair of values)
  • Inspection, Demonstration and Test (or any other triplet of values)
  • Inspection, Analysis, Demonstration and Test

That is, the value of each VERIFICATION item can be zero, one or more of the values that have been defined for the Inspection category. If you want items to have one or more values for the category code, then define it to be mandatory.

The flexibility of the implementation of this new mechanism means that you can add values to the multi-value category code at any time, and can then add these values to items of types that use it. You can also delete values from the category code without affecting the validity of the other values defined in items that use the category code.

For example, you could add a new value Formal Proof to the above Inspection category code and then individually add this new value to the existing single or multiple-values in any of the VERIFICATION items. The previous values of these items’ Inspection categories are not affected by your addition of the Formal Proof to the category code definition.

Furthermore, if a VERIFICATION item has an Inspection value of:

  • Inspection and Analysis

and you modify the Inspection category code to delete the value Analysis, then when you subsequently look at this same VERIFICATION item, its value will be:

  • Inspection

That is, the rest of the Inspection category’s value is not affected.

We expect that these multi-value category codes will be enormously useful to all projects. They are ideal in all situations where you want an attribute to hold zero, one or more values from a pre-defined list.

  • Some common applications will be:
  • Responsibilities (user, developer, maintainer and so on)
  • Types and subtypes
  • Project(s) to which a requirement applies
  • Customer(s) to which a requirement applies
  • Module(s) to which a test applies

Cradle-5.3 provides support for multi-value categories throughout the product, including all clients and utilities.

In particular, there are extensive new query mechanisms for multi-value category code values that are described in the on-line documentation and will be discussed in a future 3SL newsletter.

 

Back to index

 
 
[Copyright © 3SL 2009 | Last Updated: Wed Jan 7th, 2009 ]
Registered office: 2 Highfield Road, Barrow in Furness, Cumbria, LA14 5PA, Registered in England No. 2153654