OO design concept in Software Engineering

  • Object Oriented is a popular design approach for analyzing and designing an application.
  • Most of the languages like C++, Java, .net are use object oriented design concept.
  • Object-oriented concepts are used in the design methods such as classes, objects, polymorphism, encapsulation, inheritance, dynamic binding, information hiding, interface, constructor, destructor.
  • The main advantage of object oriented design is that  improving the software development and maintainability.
  • Another advantage is that faster and low cost development, and creates a high quality software.
  • The disadvantage of the object-oriented design is that larger program size and it is not suitable for all types of program.

Design classes

  • A set of design classes refined the analysis class by providing design details.
There are five different types of design classes and each type represents the layer of the design architecture these are as follows:

1. User interface classes
  • These classes are designed for Human Computer Interaction(HCI).
  • These interface classes define all abstraction which is required for Human Computer Interaction(HCI).
2. Business domain classes
  • These classes are commonly refinements of the analysis classes.
  • These classes are recognized as attributes and methods which are required to implement the elements of the business domain.
3. Process classes
It implement the lower level business abstraction which is needed to completely manage the business domain class.

4. Persistence classes
It shows data stores that will persist behind the execution of the software.

5. System Classes
System classes implement software management and control functions that allow to operate and communicate in computing environment and outside world.

Design class characteristic

The characteristic of well formed designed class are as follows:

1. Complete and sufficient
A design class must be the total encapsulation of all attributes and methods which are required to exist for the class.

2. Primitiveness
  • The method in the design class should fulfil one service for the class.
  • If service is implemented with a method then the class should not provide another way to fulfil same thing.
3. High cohesion
  • A cohesion design class has a small and focused set of responsibilities.
  • For implementing the set of responsibilities the design classes are  applied single-mindedly to the methods and attribute.
4. Low-coupling
  • All the design classes should collaborate with each other in a design model.
  • The minimum acceptable of collaboration must be kept in this model.
  • If a design model is highly coupled then the system is difficult to implement, to test and to maintain over time.