Abstraction is the process of solving parts of a problem while ignoring other parts of the problem. Here, we choose to ignore design and implementation considerations until we understand and can model a solution to the problem. Analysis, to be effective, must be free of all design and implementation details. There is a time and a place to discuss and solve problems relating to computer platforms, programming languages, timing requirements, and the like, but the time is not during analysis. Several years ago we shifted our analysis paradigm from a functional view to an object view.
Objects are a reflection of the real world and represent our perception of that world.
We, like many others, have realized two key benefits of basing our analysis on objects. First, the people who own the problem to be solved can directly participate in deriving the analysis solution. The analysis models we use are not syntactically complex nor are they intimidating to those who have not had formal analysis training. People with little or no technical background can understand the models and participate in analysis reviews. Their participation ensures a good analysis because they understand the problem and what must be done to solve the problem.