Objects and classes
The object-oriented (OO) approach to software development consists of a
set of techniques and mechanisms to be used in structuring models and
program code according to the concepts and the relative relationships found
in the problem domain. Classes represent abstract concepts, which are
made concrete by objects. Classes are related to each other by means of
associations that define the semantics of their links.
The strength of the OO approach is the capability of using the same basic
tools and constructs throughout the whole development process. The
formalization of the problem, the design solution, and the structure of the
executable code are based on the same foundations: objects and classes.
Through a process of progressive refinement a model of the problem evolves
into the executable Java code that is able to solve it.
Objects and classes make the OO programming paradigm different from
procedural and functional paradigms: a piece of information and the code
that accesses and modifies it form a bundle; they are confined to one loca-
tion in the program and not spread, uncontrollably, throughout the program.
Classes define the data structure and the interface through which data can
be accessed; objects contain the data and operate on it.
The first part of this topic is dedicated to the understanding of the OO
paradigm and how it is possible to map real-world problems onto it by means
The focus in this first part of the topic will be on building the basic knowl-
edge that supports the transition from the problem specification to the
solution implementation. The transition is made up of a sequence of refine-
ment steps: the analysis of the user requirements, the definition of an object-
oriented analysis model, the evolution of this model into a design model,
the implementation of this model in Java, and the test of the application
functionalities against the initial requirements.
Object-oriented analysis is about identifying the basic concepts under-
pinning the problem under study and their inter-relationships. They can be
described by means of classes and relationships in the OO paradigm. The