0% found this document useful (0 votes)
94 views18 pages

Advantages of Object-Oriented Architecture

Object Oriented Architecture is a design paradigm that divides an application into individual reusable objects. It views a system as a collection of cooperating objects rather than routines or instructions. The key concepts of Object Oriented Architecture include objects, classes, encapsulation, inheritance, polymorphism, and abstraction. Objects are instances of classes that contain both data and behaviors. Classes define common attributes and actions for objects. Encapsulation binds data within an object while inheritance allows classes to share attributes and methods. Polymorphism allows objects to share interfaces while having different internal structures. Object Oriented Architecture aims to make systems more modular, reusable, and adaptable to change.

Uploaded by

sara
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
94 views18 pages

Advantages of Object-Oriented Architecture

Object Oriented Architecture is a design paradigm that divides an application into individual reusable objects. It views a system as a collection of cooperating objects rather than routines or instructions. The key concepts of Object Oriented Architecture include objects, classes, encapsulation, inheritance, polymorphism, and abstraction. Objects are instances of classes that contain both data and behaviors. Classes define common attributes and actions for objects. Encapsulation binds data within an object while inheritance allows classes to share attributes and methods. Polymorphism allows objects to share interfaces while having different internal structures. Object Oriented Architecture aims to make systems more modular, reusable, and adaptable to change.

Uploaded by

sara
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 18

Object Oriented Architecture

Introduction

Object Oriented Architecture is an important concept for developing the


software. It is a design paradigm based on the division of responsibilities for
an application or system into individual reusable and self-sufficient objects.
The popular approach of object-oriented design is to view a software system
as a collection of entities known as objects. Object oriented is based on
modeling real-world objects.

Advantages of Object-Oriented Architecture

 Object-Oriented architecture maps the application to real world objects


for making it more understandable.
 It is easy to maintain and improves the quality of the system due to
program reuse.
 This architecture provides reusability through polymorphism and
abstraction.
 It has ability to manage the errors during execution. (Robustness)
 It has ability to extend new functionality and does not affected on the
system.
 It improves testability through encapsulation.
 Object-Oriented architecture reduces the development time and cost.
Disadvantages of Object-Oriented Architecture
 Object-Oriented architecture has difficulty to determine all the
necessary classes and objects required for a system.
 It is difficult to complete a solution within estimated time and budget
because object-oriented architecture offers new kind of project
management.
 This methodology do not lead to successful reuse on a large scale
without an explicit reuse procedure.

Object Oriented Concepts

Object-Oriented architecture views a system as a series of cooperating


objects, instead of a set of routines or procedural instructions. It is a
significant methodology for the development of any software.
Above diagram shows the basic concepts of object-oriented architecture.
Component-based architecture, Data repository, pipe and filter architecture
can be implemented using object-oriented architecture.

Object
 Object is an instance of a class.
 Object is an entity that keeps together state and behaviors.
 All the instance of a class have similar properties like class definition.
 In object-oriented architecture, objects are the basic building blocks
and a real-world element which has a physical or a conceptual
existence.
 Object model is a thing or an entity in the application domain.
For example, a student, a book, etc.
 Object has a set of attribute values which define a state of the object.
For example, the status attribute of library book values: 'available',
'checkout', 'on reserve', 'missing' and 'removed'. These values are
used to determine the state of a book object.
Class
 Class is a blueprint of an object.
 A class represents description of objects that share same attributes
and actions.
 It defines the characteristics of the object, such as attributes, actions
or behaviors.
Encapsulation
 Encapsulation means hiding the data of a class from the object.
 It is the process of binding the elements of an abstraction.
 It binds the data in a single unit.
 It hides the internal details of the class and implementation details of
the procedures.
 It allows the elements of the class to be accessed from outside only
through the interface provided by the class.
Polymorphism
 Polymorphism means having multiple forms.
 It allows object with different internal structure to share some external
interface and particular effective while implementing inheritance.
 For example, class draw is implemented for various graphic objects
like circle, rectangle, triangle etc. Here, draw operation is used to
draw of more than one type of graphic object.
Inheritance
 Inheritance is a technique of deriving a new class from existing one.
 It increases code reusability.
 The existing class is called as base or parent or super class and the
new class are called the derived or child or subclasses.
 Subclass inherits or derives the attributes and methods of the super
class.
 Subclass can add its own attributes and methods and can modify any
of the super class methods.
 For example, shape is a base class. Class Rectangle and Triangle are
the derived class. It is derived from the base class that is Shape class.
All the attributes and methods of the base class are accessible in a
derived class.
Message Passing
 Sending and receiving information among objects through function
parameters is known as Message Passing.
 Object communicates through invoking methods and sending data to
them.
 Objects in a system communicates with each other by using message
passing.
Association
 Association is a group of links having a common structure and
behavior.
 Association illustrates the relationship between objects of one or more
classes.
 A link is defined as an instance of an association.
 The degree of association indicates the number of classes involved in a
connection.
 Association is used to show that the instances of classifiers could be
either linked to each other or combined logically or physically into
some aggregation.
Composition and Aggregation
 Aggregation is a specialized form of association among two or more
objects.
 Composition is a specialized form of aggregation in which if the parent
object is destroyed, the child object would cease to exist. Composition
is also referred to as a death relationship.
 Composition and aggregation is a relationship between classes by
which a class is made up of any combination of objects of other
classes.
 It enables object to be placed directly within the body of other classes.
 An aggregate object is composed of one or more objects.

Object Oriented Analysis

 In OO Analysis phase, determined the system requirements,


recognized the classes and relationship between classes.
 The purpose of object oriented analysis is to recognize the application
domain and specific requirements of the system.
 The outcome of OO analysis is requirement identification, primary
analysis of the logical structure and use of a system.
Following are the three techniques of object oriented analysis:

1) Object Modeling
2) Dynamic Modeling
3) Functional Modeling

1. Object Modeling
 Object modeling develops the static structure of the system regarding
to objects.
 It recognizes the objects, relationship between the objects and the
classes in which the objects are grouped.
Following are the steps which shows the process of object modeling:

2. Dynamic Modeling
 Dynamic modeling is a way of explaining how single object responds
to events (The activity occur at a point in time).
 The aim of dynamic binding is to examine the behaviour of the object
regarding time and external changes.
Following diagram shows the process of dynamic modeling:

3. Functional Modeling
 Functional modeling is the last component of the object oriented
analysis.
 The functional model shows the processes executed in an object and
how the data change when it moves between the methods.
Following diagram shows the process of functional modeling:

Object-Oriented Design

 OO design is a next step after the OO analysis. In this, conceptual


model is developed further into an OO model using OO design.
 The main motive of object-oriented design is to establish the structural
architecture of the system.
There are two stages of object-oriented design are:

I. Conceptual design
II. Detailed design
I. Conceptual design
 Conceptual model recognizes all the classes required to build the
system.
 In conceptual design, individual responsibilities are allocated to each
class.
 In high-level design, class diagram is used to analyze the relationships
between classes and interaction diagram is used for showing the flow
of events.
ii. Detailed design
 In detailed design, the attributes and operations are allocated to each
class based on their interaction diagram.
 The state machine diagram is developed to explain the next details of
design is called as low level design.

Introduction to Architectural Design

 Architectural design is an abstraction of system which defines the


system elements and how they interact.
 It is a structure of the system which describes software elements,
properties of those elements and relationships between them.
 It provides a design plan to manage the complexity of a system and
also a communication medium between stakeholders.
 An architectural design is used as a blueprint during the development
process.
 Architectural design decisions have considerable impact on the quality,
performance, maintainability and overall success of the application.
Importance of Architectural Design

1. Performance
 The right architecture covers the way for system success and the
wrong architecture usually causes some form of disaster.
 Performance depends on raw processing power of its hardware and is
important to make the system successful.
 It helps to validate software architectural design choices with respect
to performance indices.
2. Scalability
 Scalability of the system is related to performance.
 It considers how quickly the system performs its current workload.
 It focuses on the predictability of the system's performance as the
workload increases.
3. Reliability
 Reliability is the probability of failure free software architecture design.
 It is an important factor affecting on system reliability.
4. Security
 Security provides method to deal with requirements.
 It helps to manage the risk which may be arises in architectural
design.
5. Modifiability
It is possible to make minor changes in the architectural design.

6. Reusability
 Reusability makes easy to reuse the code in a new system.

Architecture Views

 Architectural views are representations of the overall architecture.


 Architectural views are meaningful to one or more stakeholders in the
system.
 It is based on the use of multiple, concurrent views.
4+1 View Model
 4+1 view model is used for describing the architecture of software
intensive system.
 This model is based on the use of multiple concurrent views.
 These views are used to describe the system from the viewpoint of
different stakeholders, such as end-users, developers and project
managers.
There are four views of the model,

1. Logical View
2. Process View
3. Development View
4. Physical View

Why is it called 4 + 1 instead of just 5?


 Use cases are used to illustrate the architecture serving as the + 1
view. Hence, the model contains 4 + 1 views.
 When all the views are finished, use cases are effectively redundant.
 This model gives the detail of high requirements of the system.
1. Logical View
 Logical view contains the information about the various parts of the
system.
 It is concerned with the functionality that the system provides to end-
users.
 UML diagrams are used to represent logical view, including class
diagram, communication diagram, sequence diagram.
2. Development View
 Development view is also known as the Implementation view.
 It illustrates a system from a programmer's perspective.
 It is concerned with the software management.
 It focuses on software modules and subsystems.
 UML diagrams are used to represent development view, including
package diagram, component diagram.
3. Process View
 Process view deals with the dynamic aspects of the system.
 It explains the system process, how they communicate and focuses on
the runtime behavior of the system.
 It describes the concurrent process within the system.
 UML diagrams are used to represent process view, included in the
activity diagram.
4. Physical View
 Physical view is also known as the Deployment view.
 It describes the physical deployment of the system.
 It depicts the system from a system engineer's point of view.
 UML diagrams are used to represent physical view, included in the
deployment diagram.
5. Use Case View
 Use case view describes the functionality of the system from the
perspective of the outside world.
 It contains the diagram describing what the system is supposed to do
from a black-box perspective.
 It contains use case diagrams.
 This view can guide all other views.

Client-Server Architecture

 Client-Server Architecture is a network in which the server hosts,


delivers and manages most of the resources and services to be
consumed by the client.
 Client-Server Architecture has one or more client/user computers
connected to a central server over a network.
 In this architecture, the server acts as the producer and the client as a
consumer.

The above figure shows two tier client-server architecture, where it works
when the client computer sends a request to the server over the network /
Internet connection and then delivered to the client.

Server manages several clients simultaneously, whereas one client can be


connected to several servers at a time and each server providing different
set of services.
 Internet is based on client-server architecture where the web server
serves many simultaneous clients or users with web page or website
data.
 This architecture describes the relationship between a client and one
or more servers, where the client initiates one or more requests, waits
for replies and processes the replies.
 Server authorizes the client or user and then send responses to
communicate information to the client.
Following are the variations of client-server architecture include,

1. Client-Queue-Client Systems
2. Peer-to-Peer (P2P) Applications
3. Application Servers

1. Client-Queue-Client Systems
 Client-Queue-Client system allows client to communicate with other
clients through a server-based queue.
 It allows client to distribute and synchronize files and information.
2. Peer-to-Peer (P2P) Applications
 Peer-to-Peer application allows client and server to swap their roles in
order to distribute and synchronize the files and information across
multiple clients.
 This approach extends the client/server style through multiple
responses to requests, shared data, resource discovery.
3. Application Servers
 In this approach, client executing an application which runs on the
server through a framework such as Terminal services.
Client-Server Architecture Models

There are two models of Client-Server Architecture,

1. Thin Model
2. Thick Model

1. Thin Model
 Thin model is used when legacy systems are migrated to client-server
architecture where legacy system acts as a server and implemented
on a client with a graphical interface.
 It includes all the application processing and data management is
carried by the server.
 This model has major disadvantage is that it places heavy processing
load on both the server and the network.
2. Thick Model
 Thick model is also known as Fat Client Model.
 This model is good for new client-server systems.
 Thick model is more complex than a thin model.
Advantages of Client-Server Architecture
 Client-Server architecture provides higher security. All the data is
stored on the server so the control of security is greater than client
machines.
 It accesses centralized data because the data is stored only on the
server.
 It ensures the ease of maintenance where a client remains and
unaffected by a server repair, upgrade or relocation.
 Client-Server architecture simplifies the design and the
development of distributed applications.
Disadvantages of Client-Server Architecture
 Client-Server architecture has traffic congestion problem when a
large number of clients send requests to the same server.
 If server fails then user will not be able to request to the network until
the server is fixed or replaced. It has lack of robustness because of
centralized server.

Multi-Tier/N-Tier Architecture

 Multi-Tier architecture is also known as 3 tier or N-tier architecture.


 It is a client-server architecture developed and distributed between
more than one layer.
 This architecture provides a model by which developers can create
flexible and reusable applications.
 This architecture is composed of a Presentation tier, an Application tier
and a Data Storage tier.
1. Presentation Tier
 Presentation tier is the top-most level of the application.
 This tier displays the information related to such services as browsing,
purchasing, shopping cart contents.
 Presentation tier communicates with other tiers which display the
results to the client tier.
 This tier translates the task and makes the result to something the
user can understand.
2. Application Tier
 Application tier is also known as Business Logic, Logic
Tier and Middle Tier.
 Application tier is pulled out from the Presentation Tier.
 This architecture controls an application's functionality by performing
detailed processing.
 Business tier coordinates the application, processes commands, makes
logical decisions and performs calculations.
3. Database Tier
 Database tier includes database servers, file shares etc.
 This tier provides an API to the Application Tier.
 In this tier, the information is stored and retrieved from a database or
file system then the information is passed back to the logic tier for
processing and eventually back to the user.
Advantages of Multi-Tier Architecture
 Multi-Tier architecture is simple to manage and gives better
performance than a Thin client.
 This architecture enhances the reusability and scalability.
 It reduces network traffic.
 It provides multithreading support, maintainability and
flexibility.
Disadvantages of Multi-Tier Architecture
 Multi-Tier architecture has critical server reliability and availability.
 Testing cannot be performed well due to lack of testing tools.

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy