Additional keywords and phrases:
object, data abstraction,
analysis, design, implementation, distribution
OO = encapsulation + inheritance
benefits of OOP
the object model
message
encapsulation
protocol
Object-oriented programming does not enlarge the class of computable problems, nor does it reduce the computational complexity of the problems we can handle.
object = information + responsibilities
Contracts
if B refines A then B may be used wherever A is allowed
OOP = Contracts + Refinements
With an increase in the number of software products
not satisfying user needs, prototyping
has become quite popular!
The problem domain -- complex reality
Communication -- with domain experts
Continual change -- user requirements
Reuse -- of analysis results
Abstraction -- procedural / data
Encapsulation -- information hiding
Inheritance -- expression of commonality
Message passing -- consistent interface
Organization -- object / attributes
Scale -- components, frameworks
Behavior -- actors, servers, agents
Requirements change -- 41.8% Data format change -- 17.4% Emergency fixes -- 12.4% Routine debugging -- 9% Hardware changes -- 6.2% Documentation -- 5.5% Efficiency improvements -- 4%
An Interior Design Assistant (IDA)
is a tool to support an interior design architect.
When designing the interior of a house or building,
the architect proceeds from the spatial layout
and a list of furniture items.
IDA must allow for
placing furniture in a room.
It will check for constraints. For example
placing a chair upon a table will be prohibited.
For each design, IDA must be able to
give information with respect to pricing
and the time it takes to have the furniture
items delivered.
In addition to the design facilities, IDA must also
offer a showroom mode, in which
the various designs can be inspected and compared
with respect to price and delivery time.
An Agenda Support System assists the user in maintaining a record of important events, dates and appointments. It moreover offers the user various ways of inspecting his or her agenda, by giving an overview of important dates, an indication of important dates on a calendar, and (more advanced) timely notification.
A Multi-user Agenda Support System extends a simple Agenda Support System by providing facilities for scheduling a meeting, taking into account various constraints imposed by the agendas of the participants, as for example a special event for which a participant already has an entry in his or her agenda. A minimal Multi-user Agenda Support System must provide facilities for registering important dates for an arbitrary number of users. It must, moreover, be able to give an overview of important dates for any individual user, and it must be possible to schedule a meeting between an arbitrary subset of users that satisfies the time-constraints for each individual in that particular group.
This minimal specification may be extended with input facilities, gadgets for presenting overviews and the possibility of
adding additional constraints. Nevertheless, as a piece of advice, when developing a Multi-user Agenda Support System, follow
the KISS principle: Keep It Simple ...
Nowadays there are many books that may serve
as a starting point for reading about OO.
Dependent on your interest, you may look
at