Object-oriented programming (OOP) is a programming model that employs objects and their relations to design applications and computer programs. It is based on a number of processes, including encapsulation, modularity, polymorphism, and inheritance. In Object-oriented design software engineers approach models system as a group of interacting objects. Each object represents some entity of interest in the system being modeled, and is characterized by its class, its state (data elements), and its behavior. Various models can be created to show the static structure, dynamic behavior, and run-time deployment of these collaborating objects. In this method of programming there are a number of different notations for representing these models, they include notations such as the Unified Modeling Language (UML) or Z-notation.
An object-oriented system is composed of objects. The behavior of the system results from the collaboration of those objects. Collaboration between objects involves them, sending messages to each other. Sending a message differs from calling a function in that when a target object receives a message, it itself decides what function to carry out to service that message. The same message may be implemented by many different functions, the one selected depending on the state of the target object. Object oriented programming began in 1960s. This came as solution of the increase in the complexity of hardware and software. The model offered a viable solution to this problem by making use of discrete units of programming logic and re-usability in software.
Object-oriented programming is seen as a collection of cooperating objects, as opposed to a traditional view in which a program may be seen as a group of tasks to compute. In Object-Oriented Programming each object is capable of receiving messages, processing data, and sending messages to other objects. Each object can be viewed as an independent little machine with a distinct role or responsibility. The actions on the objects are closely associated with the object. For example, in Object Oriented Programming, the data structures tend to carry their own operators around with them or inherit them from a similar object or class, while the traditional approach tends to view and consider data and behavior separately.
Object Oriented Programming is associated with the specific concepts: An object being one of them. An object, in Object Oriented Programming considered as an entity that represents specific characteristics that help to identify a particular object from similar objects rather than a class that is taken as an entity that represents characteristics common to all similar objects. In Object Oriented Programming the set of values of the attributes of a particular object is called its state. The object consists of state and the behavior that is defined in the object’s class.
In Object-Oriented Design, the designing can be grouped in two phases. The first phase is called high-level design, this deal with the breakdown of the system into large, complex objects. The second phase is called low-level design. In this phase, attributes and methods are specified at the level of individual objects. This is also where a project can realize most of the reuse of object-oriented products, since it is possible to guide the design so that lower-level objects correspond exactly to those in existing object libraries or to develop objects with reuse potential.. Objects, in objects Oriented Design assists in analysis and design process.
They assist in the clarification of the relationships that should be difficult tore presented in a software system. This type of programming enable programmers first to work out what relationships they require to represent in the system, without worrying too much about exactly how they should be stored. That is, Object Modelling allows programmers to focus only on the problem to be solved, before looking at the best way of implementing the model in a particular programming language.