The programming style that we usually call object-oriented programming (OOP) has appeared relatively recently in the history of programming languages. This is a particular and very convenient style for many situations. It was designed to overcome the limits of structured programming based mainly on the widespread use of procedures, functions, pointers or other more or less developed data types.
Although structured programming is very practical for small software systems or reduced non-graphic applications, it should be avoided when dealing with large applications that use graphic elements where object-oriented programming is recommended. Object orientation means organizing software resources as a collection of distinct and discrete objects, which includes both data structures and their processing functions. This organization is an extension of structured programming in which the data structures and processing functions are only loosely connected. All items have their own identity and are perfectly distinct.
An object is defined as an abstract concept, a specific and useful element for any application. Objects serve two specific purposes:
– they provide a better understanding of the problem to be solved;
– they provide a base design for implementation.
A class of objects encapsulates a certain number of objects with similar properties. This similarity refers to both the description (data and attributes) and the behavior (functions or methods). Attributes are unique features within an object class. Each attribute receives a certain value which can be modified during the objects life cycle. Two or more objects can have the same or different values for the same attribute.
Methods or operations are processing functions applied to objects of a certain class. All objects within a class admit the same set of methods, methods which in return may receive any number of additional parameters. In order to apply various methods to an object, it has to be created (defined). Defining an object is called instantiation. Once an object has fulfilled its mission it is removed.
Abstraction is a fundamental human trait that allows us to build models and thus cope with complexity. In every field of human activity, project approach is based on building a model for a better understanding of the problem to solve. Software engineering makes no exception. Through abstraction the essential key aspects are isolated from the non-essential ones. Therefore, each problem might have several adequate models.
In the software engineering industry, structured programming has made a big step forward defining three perspectives needed in order to properly address any application. These perspectives, also known as models, are: the static model, the dynamic model and the functional model.
There are currently several object-oriented methodologies used for analysis, design and implementation of software resources. One of these modeling methodology is the OMT (Object Modeling Technique) methodology. This method of modeling involves the planning of the various development stages and a graphical representation of objects and their relationships.