The Abstraction Equilibrium
Abstraction has been used by application developers since the early days of computing to develop flexible applications that respond well to business change. It can be a difficult concept to define; I will offer up what I hope is a simple definition as follows.
“Abstraction is the process of separating (aka abstracting) the application from the business process that is being modeled. The objective is to develop an application that is protected (aka abstracted) from changes to the business process.”
Here is a simple abstraction scenario in a data modeling context. A manufacturing firm uses two distribution channels that use different commission schedules. Business stakeholders have advised the project team that there are no plans to increase the number of distribution channels. The application team that does not apply abstraction might define the following two tables: MF_Commission_Schedule1 and MF_Commission_Schedule2.
Alternatively, the abstract-savvy team might define a single table named MF_Commission_Schedule with a column named COMMISSION_TYPE. The abstracted data model and associated process model would much more easily accommodate an increase in the number of distribution channels.
Many applications have succeeded because their developers were visionaries; they identified a set of possible business
Please log in or sign up below to read the rest of the article.