The principle of abstraction in software design is to extract and separate information in to pieces of storeable or workable data and rules: in that sequence. The ability to identify data is crucial in abstraction. The ability to identify rules becomes natural in a later process and may depend on the designer’s self developed style.
- Input – these are the data that are identified in the requirement as directly provided by something external to the actual software. Input may also be something that the software itself intends to pickup or gather from pre-determined stores.
- Parameters – these are the data that serve as the conditions by which data may be sourced, processed and delivered. Parameters are often part of the configurations or the givens in the requirements.
- Output – there are the data that serves as the expected results of the software’s processing of the Input and the Parameters through a set of rules. It is most important to know the Output. Otherwise, the whole point of abstraction is lost.
Abstraction is strongly about data and identifying them. It’s not much about what you plan to do with them. What matters is that, in the first place, you know about them.