Analysis is the process (phase) of discovering what the system is intended to do, without getting drawn into how it is going to do it. One way to think of it is that analysis is the process of describing the problem for which we will subsequently design and develop a solution.
Generally there are many different stakeholders who place requirements on the system being developed, these may include, for example:
The end user (of the system)
The customer (who is paying for the system)
The business (who is developing the system)
There are three outputs from the analysis phase
Problem Space Concepts and Relationships
Use Cases and Actors
A good starting point for performing system (or requirements) analysis is the text that is provided as the ‘Requirements’ from each of the stakeholders. Although text is a very ambiguous and thus poor means to express requirements, it is the easiest way to capture the initial communication of requirements.
The analysis phase in the development process is where we develop the initial ambiguous requirements into something precise that can be verified, and which enables an indication that the system has been finished.
Object-Oriented Analysis is a technique where we identify objects and relationships in ‘the requirements’ and express these in the form of a UML Class Diagram. These ‘Classes’ are not classes in the sense of ‘programming language’ (e.g. Java) classes, they are simply a way to represent a set (class) of objects that exist in the Problem Space for which we are developing a Solution.