Saturday 22 December 2012

Information in Tabular Form

Arranging information in tabular form

Sometimes it is better and more convenient to arrange information in a tabular form. This makes it easier for  the reader to understand and comprehend the information and hence designing, coding, and testing become  less challenging. As an example, let us look at the following definitions used for identifying different data  functions in the function point analysis taken from International Function Point User’s Group (IFPUG)  Counting Practices Manual (CPM 4.1).

External Inputs
An external input (EI) is an elementary process that processes data or control information that comes from  outside the application boundary. The primary intent of an EI is to maintain one or more ILFs and/or to alter  the behavior of the system.

External Outputs
An external output (EO) is an elementary process that sends data or control information outside the  application boundary. The primary intent of an external output is to present information to a user through  processing logic other than, or in addition to, the retrieval of data or control information. The processing logic  must contain at least one mathematical formula or calculation, or create derived data. An external  output may also maintain one or more ILFs and/or alter the behavior of the system.

External Inquiry
An external inquiry (EQ) is an elementary process that sends data or control information outside the  application boundary. The primary intent of an external inquiry is to present information to a user through the  retrieval of data or control information from an ILF or EIF. The processing logic contains no mathematical  formulas or calculations, and creates no derived data. No ILF is maintained during the processing, nor is the  behavior of the system altered.

It is difficult to understand these definitions and one has to read them a number of times to understand what is  the difference between EI, EO, and EQ and in which case a function would be classified as EI, EO, or  EQ.

Now the same information is presented in the tabular form as follows:

Information in Tabular Form - Click to Enlarge
PI – Primary intent; M – may be; N/A – not allowed.

This table simply says that a function can alter the behaviour of the system, it can maintain one or more ILFs,  and/or it can present information to the user. The next step is to determine whether it is EI, EO, or EQ. For  that we have to determine what is the primary intent (PI) of the function and in addition to this primary intent,  what else does it do. Identification of EQ is simple - in this case the only thing a function does is present
information to the user, which is also it’s primary intent. If it alters the behaviour of the system or maintains  and ILF then it can either be an EI or and EO but not an EQ. On the other hand if the primary intent of the  function is to present information to the user but at the same time it also performs any of the first two  operations, it is an EO. Finally, if the primary intent of the function is either to alter the behaviour of the  system of maintain one or more ILFs, then it is an EI.

Hence by putting and organizing the information in the form of a table, we have not only made it simple to  understand the definition but also given an holistic picture which was not easily visible otherwise. Let us look  at another example. This time the information is taken from the Income Tax Ordinance of Pakistan 2001.  Consider the following statement that describes the income tax rates applicable to people with different brackets:

If the taxable income is less than Rs. 60,000, there will be no income tax. If the income exceeds Rs. 60,000   but is less than Rs. 150,000 then income tax will be charged at the rate of 7.5% for income exceeding Rs.   60,000. If the income exceeds Rs. 150,000 but does not exceed Rs. 300,000 then the income tax will be  computed at 12.5% of the amount exceeding Rs. 150,000 plus Rs. 6,750. If the income exceeds Rs.  300,000 but does not exceed Rs. 400,000 then the income tax will be computed at 20% of the amount  exceeding Rs. 300,000 plus Rs. 25,500. If the income exceeds Rs. 400,000 by does not exceed Rs.  700,000 then the income tax will be computed at 25% of the amount exceeding Rs. 400,000 plus Rs.  45,500. If the income exceeds Rs. 700,000 then the income tax will be computed at 35% of the amount  exceeding Rs. 700,000 plus Rs. 120,500.

The same information can be organized in the form of a table, making it more readable and easier to use.
Income Tax
Less than Rs. 60,000 0%
Between Rs. 60,000 and Rs.
150,000
7.5% of (Income - 60,000)
Between Rs. 150,000 and Rs.
300,000
12.5% of (Income - 150,000) +
6,750
Between Rs. 300,000 and Rs.
400,000
20% of (Income - 300,000) +
25,500
Between Rs. 400,000 and Rs.
700,000
25% of (Income - 400,000) +
45,500
Greater than Rs. 700,000 35% of (Income - 700,000) +
120,500

Once the information has been organized in the tabular form, in many cases it can be simply stored and  mapped onto an array or a database table and the programming of this kind of a rule is simply reduced to a  table or dictionary lookup. This reduces the complexity of the domain and hence reduces the over all effort  for designing, coding, testing, and maintaining the system.

Our next post will be about Data Flow Model.

No comments:

Post a Comment