Should Codes Tables be counted as logical files?.
Are there any conditions under which Codes Data may be counted as logical files?
A Code table consists of only:
Sometimes additional effective date fields may be present.
In certain systems the Codes tables:
- Are considered to be user identifiable, i.e. the user recognises the codes.
- Have on-line screens to facilitate maintenance of the codes.
- Are maintained by the business user of the system.
Issues to be addressed include:
- Can tables with the above characteristics be counted as Internal Logical Files?
- Where a code table can participate in relationships with more than one other table can this table be counted as a logical file?
- Where codes data is hard-coded in programs how are changes to these codes counted?
GENERAL DISCUSSION AND RESOLUTION
The recommended guidelines are that, tables identified as Codes tables, are not counted as separate logical files, rather one generic System Codes table will be counted. This table will not be counted as an FTR for the transactions that reference it. The System Codes file is counted as a file of LOW complexity comprising 3-5 DETs – Code_Type, Code_Id, and Code_Description (Date Effective, Date End). This decision holds regardless of whether:
- The user recognises the data within these tables.
- The user maintains the data within the tables.
- Separate on-line maintenance and reporting transactions are available for these tables.
Only one set of maintenance transactions (Add, Modify, Delete) and one generic View function will be counted for the Systems Codes table. See also Issue, Drop Down Lists.
Note: The FP Analyst must ensure that the Code Description attribute contains text only. Examples have been identified where the Code Description field contained actual business data that defined the Code. For example, the Code Description attribute may be a repeating field that defines all the field components of an Order Template record. In such cases the table is counted as a Reference table.
Where a Code table comprising only Code Id and Code Description participates in a number of m:m relationships with other tables (which are identified logical files, with perhaps some codes tables), such a table may be counted as a Reference table. The existence of the m:m relationships logically implies that the ‘Codes’ table comprises more attributes than just Code Id and Code Description and therefore the characteristics of Reference tables are satisfied. These attributes provide business information on valid combinations of code occurrences. Where such a table is counted as a Reference table, any associated maintenance and reporting functions are also counted.
The decision to disregard Codes tables is based upon the following reasoning:
- Typically the Codes tables exist only for performance reasons, e.g. to minimise storage requirements for Master Business Data. They therefore exist as a result of design and implementation strategies.
- The Codes table typically participates in a 1:m relationship with a table that stores Master Business Data or Reference Data. Logically such tables exist as an attribute of the entity that they are describing.
- Codes tables, together with their associated maintenance and viewing/listing transactions can contribute a disproportionate number of function points to a count, compared to the effort expended on the development and maintenance of this functionality.
- File Types Referenced (FTRs) contribute more to the complexity of transactions than Data Element Types (DETs). Where Codes tables are counted as Internal Logical Files the majority of business transactions within a count would be assigned High complexity.
- The guideline not to count Codes tables can be applied consistently across all function point counts. This guideline is in keeping with the guidelines of the International Benchmarking Standards Group (ISBSG).
- As Codes Data is often hard-coded within programs, adopting this approach maintains a consistent approach to counting this type of data regardless of implementation techniques.
Here are hints to identify code tables:
- Code tables usually have a fixed number of records.
- Code tables are often owned and updated by a single division of the organization.
- Changes to code values are usually performed by a system administrator.
- Values in code tables rarely change.