Object Oriented Design in Software Engineering

Software Engineering Notes: 1. Object Oriented Design in Software Engineering.  2.OOD Paradigm. 3.Unified approach to Object Oriented Design in Software Engineering. (Software Engineering all notes)


Q1. Explain Object Oriented Design (OOD) in Software Engineering?

Ans. Object-Oriented Design: It transforms the analysis model creating using object-oriented analysis into a design model that serves as a blueprint for software construction. For object-oriented systems, we can define a design pyramid as shown in the figure.
The four layers of OOD pyramid are:
1. The Subsystem Layer: This layer contains a representation of each of the subsystems that enable the software to achieve its customer defined requirements and to implement the technical infrastructure that supports customer requirements.

2. The Class and Object Layer: This layer contains a hierarchy of classes, which enable the system to be created using generalizations and increasingly more targeted specializations. This layer also represents each object.

3. The Message Layer: This layer contains the design details, which enables each object to communicate with its collaborators. This laver establishes the internal and external interfaces for the system.

4. The Responsibilities Layer: This layer contains the data structure and algorithmic design for all operations and attributes for each object.

The OOD pyramid focuses on the design of a specific system. Note that another layer of design exists, which forms the foundation on which the pyramid rests.

The foundation layer focuses on the design of domain objects, which play a key role in building the infrastructure for the object-oriented system by providing support for human/computer interface activities, task management and data management.

Q2. Explain the object oriented design for software development. Or Describe object oriented design paradigm?

Ans. Object Oriented Design: It is not dependent on any specific implementation language. Problems are modelled using object. It is a further advancement in the field of software development design, the data oriented techniques involved into object oriented design techniques.

Each object essentially act as a data hiding or data abstraction entity. The various terms related to object oriented design are objects, classes, abstraction, inheritance and polymorphism.

The major difference between object oriented design and data centered design is the definition of the term objects.
In object oriented design, an object encapsulates data and process it while data centered design takes the route of data only. Object technology lead to reuse and reuse to leads to faster software development and higher quality programs.

Object oriented software is easier to maintain because its structure is inherently decoupled. Object oriented system are easier to adopt and easier to scale.

Objects are categorized into classes and class hierarchies. Each class contains a set of attributes that describe it and a set of operations that define its behaviour.

Objects encapsulate both data and process. Three important concepts differentiate the object oriented approach from conventional software engineering. Encapsulation packages data and the operations that manipulate the data into a single named object.

Inheritance enables the attribute and operations of a class to be inherited by all subclasses and the objects that are instantiated from them.

Polymorphism enables a number of different operations to have the same name, reducing the number of lines of code required to implement a system and facilitating changes when they are made.

1. Object: An object is an entity which defines a 'thing' or 'item'. If we were defining a chair as object it could have the following characteristics :
(i) Cost.
(ii) Weight.
(iii) Dimensions.
(iv) Color.

Thus, we define an object as an item with which you can associate physically and the object has a set of characteristics.

2. Class: An object can belong to a more generic family. In our example, a chair can belong to a more generic family called furniture. Objects belonging to a class, inherit all the characteristics of the class.

3. Inheritance: In object oriented design, all objects inherit the characteristics of the class. They may have same additional characteristics but all characteristics of class are mandatory. This is called inheritance.

4. Encapsulation: Object oriented design defines objects as real objects and operations that can be performed on it. You can buy, sell, weigh or move a chair. These operations are encapsulated along with the characteristics of the object.
This feature is called encapsulation which is not used in data centered approach.

5. Polymorphism: When we abstract just the interface of an operation and leave the implementation to sub-classes, it is called polymorphic operation and process is called polymorphism. In object oriented design we use abstraction to break a problem into manageable chunks.

We can comprehend the problem as a whole or study parts of the problem at lower level of abstraction. If we work at an appropriate level of abstraction, then we find problem can be solved relatively more easily.

6. Abstraction: When we consider a modular solution to any problem, many level of abstraction can be posed. At the highest level of abstraction, a solution is stated in broad terms using the language of the problem environment.

At lower level of abstraction, a more procedural orientation is taken. Each step in the software engineering process is a refinement in the level of abstraction of the software solution.

Q3. What do you mean by the unified approach to Object Oriented Design in Software Engineering?

Ans. Some scientists, such as Grady Booch, Ivar Jacobson and James Rumbaugh, have devised their own individual object-oriented analysis and design methods. Over the past decade, they have collaborated to combine the best features of their individual object-oriented analysis and design method into a unified method.

The result is Unified Modeling Language (UML). UML has become widely used throughout the industry.
According to Mr. J. Rumbaugh, UML is organized into two major design activities : system design and object design. UML system design focuses on to represent the software architecture.

UML object design focuses on a description of objects and their interactions with one another. During UML object design, a detailed specification of attribute data structure and a procedural design of all operations are created.

Moreover, in object design, the visibility for all class attributes is defined and interfaces between objects are elaborated to definite the details for a complete messaging model.

UML system and object design are extended to consider the design of user interfaces with the system to be built. The user model view drives the user interface design process, providing a scenario that is elaborated iteratively to become a set of interface classes.

User interface deign in UML entends to the design of data management. Data management design establishes a set of classes and collaborations that allow the system to manage persistent data.

Data management design in UML extends to the design of task management. This design establishes the infrastructure that organizes subsystems into tasks and then manages task concurrency. This process flow is depicted in the figure.

Join us on Facebook, Instagram, and Twitter to get the latest study material. You can also ask us any questions.
Facebook = @allbcaweb
(click on it or search "allbcaweb" on Facebook)
Instagram = @allbcaweb
(click on it or search "allbcaweb" on Instagram)
Twitter = @allbcaweb
(click on it or search "allbcaweb" on Twitter)
Email= allbca.com@gmail.com
Send us your query anytime!

External Links:-

1. Wikipedia - (click here)

No comments:
Write comment