Use Case Analysis
Use case analysis is the most common technique used to identify the requirements of the system, information that is then used to define processes and later to design classes that will ultimately fulfill the use case. The importance of these requirements cannot be overemphasized. They are the foundation on which the system is built. If they are incomplete or, worse yet, incorrect, then the system development effort will obviously suffer.
You should begin use case analysis by identifying the participants, the users or stakeholders of the system. These are individuals who may have a variety of responsibilities within the organization, from manager to clerk. The common thread among these individuals is the interest in the direction and success of the system.
These stakeholders should be individuals who have a "buy-in" to the success of the system and are willing to stay with the project for the duration. It is unfortunately a recurring problem that many chosen stakeholders start with an interest in a system but then begin to lose interest as the project wears on. Choosing stakeholders whose job is directly affected by the success or failure of the system can help alleviate this problem.
If these stakeholders are outside of the system being developed and interact with the system, then they represent actors for the purposes of use case analysis. You should select more than one stakeholder with varied backgrounds, gathering the opinions not only of management (who are often only the consumers of system information), but of the administrative and professional users of the system who must input and manage the information in the system.
During the use case sessions, the session facilitator will work on creating the use case diagrams, most likely UML diagrams, to help visualize the requirements of the system. This process involves determining how the users extract value from the system. The value they extract is not only information retrieved from the system in the form of reports or queries, but the processing that the system will perform for them, processing that would otherwise need to be done manually or through one or more disparate legacy systems.