Object-oriented design is founded on a solid technical basis, the pieces of which we refer to collectively as the object model. The principles of abstraction, encapsulation, modularity, hierarchy, typing, concurrency, and persistence are all incorporated into the object model. In fact, these are the only ways in which software can be built correctly.
The object model consists of three main parts: classes, objects, and relationships. A class is a template that defines the general nature of something such as an operation or a piece of data. Classes cannot themselves be instantiated, but rather contain methods that can be invoked to create new instances of themselves or other classes. These are called constructors. Objects are real things that exist in the world outside of our computers. They are defined by their class names and can participate in relationships with other objects. Relationships are connections between objects. They can be one to many (one object has many properties) or many to many (many objects may have mutual relations).
There are two types of relationships: symmetric and asymmetric. A symmetric relationship is one where both parties can affect each other; for example, father and son, friend - friend. An asymmetric relationship is one where only one party can affect the other; for example, employer-employee. Relationships are important in object-oriented programming because they allow objects to communicate with each other.
An object model will represent the parts of a software program as objects. We shall describe the core principles and terminology of object-oriented systems in this chapter. Objects and classes will be fundamentally connected with one another to form the cornerstone of the object-oriented paradigm. Methods are the actions that objects can perform for other objects or groups of objects. These actions are called operations. The language used by programmers to communicate their ideas while writing code is called source code. Source code is translated into machine language when a computer performs its instructions.
Objects are described by objects called classes. A class represents a template that defines the general nature of an object. Classes cannot themselves be instantiated, but they do define the essential structure and behavior of many different kinds of objects. At run time, instances of classes are created to represent real objects in the world. Each instance has special attributes and methods for performing tasks.
Methods are functions that can be applied to objects. There are two forms of methods: instance methods and static methods. An instance method is defined using the this keyword, which refers to an object within a function. This method is then said to act on the instance that contains it. Static methods do not need an object to act upon; instead, they operate on the class itself. That is, they can be applied to any number of objects at once, without having to create new instances of the class.
This is frequently followed by the identification of the items in the needed system. In a financial system, for example, a client is an object, a chequebook is an object, and even an account is an object. An object-oriented technique is used in an object-oriented model. 3. Construction of the actual system.
Object-Oriented Language Characteristics:
Later, the intended system is developed or coded using object-oriented methodologies and/or an object-oriented programming language (OOPL). As input from the OOA phase, the OOD process uses the conceptual systems model, use cases, system relational model, user interface (UI), and other analytical data. It produces a structural model of the proposed system.
The OOD process consists of six steps: define, analyze, design, document, implement, and support.
In step 1, "define", the analyst defines the problem to be solved. This involves identifying what needs to be accomplished, defining the purpose of the system, and identifying users and their requirements. The define step also includes analyzing past systems for similarities or relationships that can help in creating a new system or modifying an existing one. Finally, it involves planning for future expansion or enhancement of the system.
In step 2, "analyze", the analyst analyzes the environment in which the system will operate. Will it be a single instance application? What kinds of changes might need to be made to accommodate different user configurations? Is there any available hardware or software that could be used as a foundation for the system? Analyzing the environment includes determining what technologies are available to create the system and determining how much effort each one requires.