Object-oriented analysis
Object-oriented analysis builds a model of a system that is composed of objects. The behaviour of the system is achieved through collaboration between these objects, and the state of the system is the combined state of all the objects in it. Collaboration between objects involves them sending messages to each other.
Key aspects of an object-oriented analysis model are basically the same as in object-oriented programming, but an analysis model is not limited to software systems. Any system can be modelled as a system of collaborating objects.
An analysis model will not take into account implementation constraints, such as concurrency, distribution and persistence. These are decided by a process of object-oriented design, and many design patterns have been defined to solve these generic problems.