| Lesson 2
|| OOA - Reading Concepts
|| 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.
Analysis aims to model an ideal world in the platonic
sense and merely describes the kinds of concepts and ideas that are being modelled (how to think).
An analysis model will not take into account implementation constraints, such as concurrency, distribution and persistence.
The implementation constraints are decided by a process of object-oriented design, and many design patterns have been defined to solve these generic problems.
All living beings inherit the characteristics and behaviors of their parents. The offspring of a fly looks and behaves like a fly, and that of a bear looks and behaves like
But despite being similar to their parents, all offspring are also different and unique in their own ways.
Additionally, a single action may have different meanings for different beings. For example, the action eat has different meanings for a fly and
A fly eats nectar, whereas a bear eats deer and something similar happens in Java.
The concept of inheriting characteristics and behaviors from parents can be compared to classes inheriting variables and methods from a parent class.
Being different and unique in one’s own way is similar to how a class can both inherit from a parent and also define additional variables and methods.
Single actions having different meanings can be compared to polymorphism in Java.
OOA requires that you implement inheritance and polymorphism and understand how to use classes and interfaces.