|Lesson 3||The purpose and scope of problem analysis |
|Objective||Define the Purpose and Scope of Problem Analysis|
Purpose and Scope of Problem Analysis
Each project life-cycle phase has a unique role within the overall process. The purpose of the problem analysis phase is to understand the resources used by the problem domain.
These resources are modeled as objects, abstracted into class definitions, and placed on a class diagram showing the relationships between them.
The scope of problem analysis
The scope of problem analysis is to define only those classes of objects that would be part of the problem domain even if you did not create any software.
The scope of these class definitions is also limited to the purpose of the objects and the interfaces needed to use them.
The implementation of the class is not needed at this point because it does not contribute to our understanding of the role of the resource in the problem domain.
Maintain the user's perspective
The users should recognize every class of objects defined during this phase. The users would not use objects such as graphical user interfaces (GUIs) or databases. These resources support the software implementation choices, not the problem domain.
If you have completed a satisfactory task of creating the data dictionary, you probably have the most important objects identified and defined already. One way to keep the proper user perspective is to think manual.
For example, most people who have programmed in Java or C++ are used to making "address" a class, that is, a reusable data type.
But in a manual system, would the users have a file drawer full of addresses only?
No. The users would include address as an attribute of other objects such as customers and suppliers.
Only then does address have a context that gives it meaning to the users.