What can be required of an Information System?
Computerized information systems can do many things, and in the future will likely do many things that have not been thought of yet. What I would like to describe is what I believe are the most common things that information systems are required to do, and use that to lead us to the means of documenting those requirements.
The core ‘concept’ of computers is ‘process’. Computers process stuff, turn ‘input’ into ‘output’, …the central component of a computer is a ‘Processor’. However, computers have to know before-hand precisely what to do to turn that input into output, and documenting that ‘what’ correctly is crucial, or the output will be unacceptable. The business knows generally what it wants the computer to do, designer/developers know how to make the computer do it, and the Business Analyst plays the interpreter between the two.
(Before I continue, I am well aware of the long-standing attempts to reduce the level of precision that is needed by computers and still produce acceptable output, most commonly in the area of ‘fuzzy logic’. Artificial Intelligence (AI) also seeks to make the computer less demanding in the precision of the instructions provided to it. However, it is unlikely that information systems that most people use in their jobs incorporate fuzzy logic or AI, especially if money is involved… you are more likely to encounter it on home PC playing Half-Life 2 or Medal Honor; game vendors like to boast they have the best ‘AI’ in their products to produce computerized opponents. I do wonder if AI academics see it that way.)
So, documenting ‘what’ a computerized information is supposed to do is an essential part of defining the Requirements for that system. Many different methods with many different names have been published over the last 50 years, intended to help a Business Analyst in this task; probably the only common aspect to emerge from these decades is that the end result is called the “Functional Requirements”, defining what the system is to do.
(A corollary aspect is the defining of ‘Non-Functional Requirements”; if a Functional Requirement documents what the system must do, a related Non-Functional Requirement may something like how fast the Functional Requirement must be performed. Defining a system’s Non-Functional Requirements may or may not be the responsibility of a Business Analyst, so I may not address them much on this website, until the mood strikes me anyway.)
Next Time: what do computers process the most? Data!