Different Elements of Object Model
An object model supports to explain or define a system or we can simply say that a software, on the basis of objects and classes. Because object-oriented programming follows the approach of objects and classes.
It describes the interfaces or interactions between different models and various features of object-oriented programming.
Object model is a logical interface, software or system which is formed or developed using the object-oriented techniques.
An object model allows the development of an Architectural software or system model earlier to development of a program.
- Abstraction
- Encapsulation
- Modularity
- Hierarchy
These major elements are essential for a model, without these essential elements there is no object-oriented.
- Typing
- Concurrency
- Persistence
These minor elements are helpful for a model, but these minor elements are not absolutely necessary part of the object model.
The major four elements of Object Model
1. Abstraction
An abstraction is a major element or absolutely essential for an object model. An Abstraction shows the fundamental features of an object that Differentiate it from different models of objects.
An abstraction is a design methodology that focuses on the essential part of an entity and conceals or hides non-essential or not important information of an entity.
It gives accurately limited conceptual boundaries, according to the outlook of the viewer (user). Here outlook means the interfaces or you can say the screens of the users or viewers.
It is one of the fundamental manners that we as humans deal with complexity (difficulty). The main concern of an abstraction on the outside view of an object . It also helps to separate an object's basic performance from its implementation.
Properties of a Good Abstraction
- Despite the fact that there may be various abstractions of the same entity, individually every abstraction should have certain properties that differentiate it as a good abstraction.
- The good abstraction contains some properties like well named, coherent, accurate, minimal and complete.
Types of abstraction
- Entity Abstraction - An object which represents a helpful model of a problem domain or solution- domain entity.
- Action Abstraction - Action Abstraction means an object which offers a universal group of operations, all of which perform the same kind of function or operation.
- Virtual Machine Abstraction - An object that Combines the set of operations that are used by some superior level of control or operations that all use some minor-level set of operations.
- Coincidental Abstraction - An abstraction that packages a group of operations that have no connection with each other.
2. Encapsulation
Encapsulation is the procedure of dividing the elements of an abstraction that represent its structure and behavior. Encapsulation helps to divide the binding interface of an abstraction and its implementation. Encapsulation and abstraction are mutual concepts, abstraction concentrates over the visible action of an object, while encapsulation concentrates over the implementation that provides progress to this action.
It is mostly obtained through information hiding, which is the method of hiding all the formulas of an object that absolutely do not contribute to its basic characteristics. Generally, the structure of an object is hidden , along with the implementation of its method. It offers straightforward obstacles among various abstractions and as a result it guides to clear division of concerns.
3. Modularity
Modularity is the feature of a system that is decomposed into a group of cohesive or loosely coupled modules. The action of dividing a program into individual components can lower its complexity to some level.
Though partitioning a program is useful , a more powerful explanation for partitioning a program is that it creates a number of clearly defined, documented boundaries within the program.
Object-orientation gives scalability (modularity), it also gives the supposed benefits of modularity -
- Reusability - Programs can be collected from Pre-written software components and can directly be used in various different applications.
- Extensibility - without affecting the original components we can develop or write new software components.
- Decomposition - Break a system or component into easy units.
- Composability - Modules of a development program or system possibly united into another system or development program .
- Understandability - Understanding the whole modules or parts helps to understand the whole system or program.
- Continuity - If we are doing changes in the system even if the changes are minor it will affect the behavior of the system.
- Protection - Exception and error terms are restricted to the modules in which they appear or affect only closely related modules.
4. Hierarchy
Hierarchy refers to a ranking or ordering or abstraction. Abstraction is considered to be a good thing, but in all except the unimportant applications , we can detect many more different abstractions.
The three non - essential elements of the object models
- Typing - Typing is the execution of the class of an object, so as objects of different types cannot be interchanged, or at the most, they may interchange only in very limited ways.
- Concurrency - Concurrency is the characteristic that differentiate an object from one that is not active. For specific kinds of problems, an automated system may have to manage various different tasks one by one. Other programs may include So much computation that they surpass the actual capacity of any single processor.
- Persistence - Persistence is the characteristic of an object within which its presence exceeds time.