Professional Documents
Culture Documents
Lecture 7
Lecture 7
(Reading Assignment)
Lecture -7
Lecture By
01/18/24 2
Software Architecture and Component Based
Software Architecture (Cont..)
Software architecture is structured into subsystems, in which
each subsystem should be relatively independent of other.
It is necessary to study the software architecture from:
Static and Dynamic
Functional and Nonfunctional
01/18/24 3
Software Architecture and Component Based
Software Architecture (Cont..)
01/18/24 4
SW Architecture and Component Based SW
Architecture (Cont..)
01/18/24 5
Multiple Views of a SW Architecture
In UML 2, a modeling element can be described with more
than one stereotype.
Analysis modeling: role characteristic of modeling element.
(boundary, entity)
Design modeling: architectural characteristics. (subsystem,
component, service or concurrent task)
SW architecture design can be depicted from different
perspective
Structural view: class diagram
Dynamic view: communication diagram
Deployment view: deployment diagram
Component view : component diagram
01/18/24 6
Software Architecture Patterns
SW architectural patterns provide the skeleton or template
for the overall software architecture or high-level design of
an application. (architecture style or pattern)
Software architectural pattern can be grouped into two:
Architectural structure pattern: provide the skeleton or
template (layer of abstraction)
Architectural communication pattern: dynamic
communication (call/return, Asynchronous Message
Communication patterns, and the Synchronous Message
Communication with Replay pattern )
01/18/24 7
Layers of Abstraction Architectural Pattern
Layers of Abstraction is a common architectural pattern.
A strict hierarchy, each layer uses services in the layers
immediately below it.
In flexible hierarchy, it can invoke services at more than one
layer below.
Software architectural structural pattern:
Centralized Control Pattern
Distributed Control Pattern
Hierarchical Control Pattern
Layers of Abstraction Pattern
01/18/24 8
Software Architecture Pattern
01/18/24 9
Software Architecture Pattern
Software architectural communication pattern
Broker Forwarding Pattern
Broker Handle Pattern
Call/ Return
Negotiation Pattern
Service Discovery Pattern
Service Registration
Subscription/ Notification Pattern
Synchronous Message Communication with Replay Pattern
Synchronous Message Communication without Relay Pattern
01/18/24 10
Software Architecture Pattern
Call / Return Pattern
The simplest form of communication b/n objects.
A sequential design consists of passive classes, which are
instantiated as passive objects.
01/18/24 11
Software Architecture Pattern
Call / Return Pattern
01/18/24 12
Software Architecture Pattern
Asynchronous Message Communication Pattern
In concurrent and distributed designs, other forms of communication
are possible.
The Asynchronous (Loosely Coupled) Message Communication
pattern, the producer component sends a message to the consumer
component and does not wait for a reply.
Asynchronous Message Communication pattern is used wherever
possible for greater flexibility.
It is also possible to have peer-to-peer communication between two
components, which send asynchronous messages to each other. This
kind of communication is referred to as bidirectional asynchronous
communication.
01/18/24 13
Software Architecture Pattern
01/18/24 14
Software Architecture Pattern
01/18/24 15
Software Architecture Pattern
01/18/24 16
Documenting Software Architectural Pattern
01/18/24 18
Documenting Software Architectural Pattern
01/18/24 19
Interface Design
An important goal of both object-oriented design and
component-based software architecture is the separation of
the interface from the implementation.
An interface specifies the externally visible operations of a
class, service, or component without revealing the internal
structure (implementation) of the operations.
01/18/24 20
Interface Design
01/18/24 21
Interface Design
01/18/24 22
Design of SW Architecture
Service-Oriented Architecture
Typically consist of multiple distributed autonomous services
that can be composed into distributed software applications.
01/18/24 23
Design of Software Architecture
Distributed Component –based Software Architecture
It describes the component structuring criteria for designing
components that can be deployed to execute on distributed
platforms in a distributed configuration.
Concurrent and Real Software Architecture
Which are concurrent architectures usually having to deal
with multiple streams of input events? state-dependent
Software Product Line Architecture
Which are architectures for families of products that need to
capture both the commonality and variability in the family?
01/18/24 24
II. Software Subsystem Architecture
Design
01/18/24 25
Outline
01/18/24 26
Issues in Software Architecture Design
During analysis modeling, the problem is analyzed by
breaking it down and studying it on a use case–by–use case
basis.
During design modeling, the solution is synthesized by
designing a software architecture that defines the structural
and behavioral properties of the software system.
01/18/24 27
Issue in Software Architecture Design
01/18/24 28
Issue in Software Architecture Design
In other applications, it is not so obvious how to structure
the system into subsystem.
One of the goals of subsystem structuring is to have objects
that are functionally related and highly coupled in the same
subsystem, a good place to start is with the use cases.
Objects that participate in the same use case are candidates
to be grouped into the same subsystem.
Because of this, subsystem structuring is often done after
the interaction among the constituent objects of each use
case has been determined during dynamic modeling.
01/18/24 29
Issue in Software Architecture Design
Objects that realize the same use case have higher coupling
because they communicate with each other and have lower
(or no) coupling with objects in other use cases.
01/18/24 30
Issue in Software Architecture Design
01/18/24 31
Integrated Communication Diagrams
In the analysis model, at least one communication diagram
is developed for each use case.
The integrated communication diagram is a synthesis of all
the communication diagrams to support the use cases.
On way to reduce the clutter of the integrated
communication diagram is to aggregate the messages.
The aggregate message does not represent an actual
message sent from one object to another rather it represents
messages sent at different times between the same pair of
objects.
01/18/24 32
Integrated Communication Diagrams
01/18/24 33
Integrated Communication Diagrams
01/18/24 34
Separation of Concerns in Subsystem Design
Some important structuring decision need to be made
when designing subsystem.
The goal is to make subsystem more self-contained, so that
different concerns are addressed by different subsystems.
Composite Objects
Objects that are parts of the same composite object should be
in the same subsystem.(they are created, live and die
together)
Geographical Location
If two objects separated in different geographical locations,
they should be in different subsystem.
01/18/24 35
Separation of Concerns in Subsystem Design
01/18/24 36
Subsystem Structuring Criteria
A subsystem can satisfy more than one of the structuring
criteria. (design considerations)
Client Subsystem
It include: user interaction, control and I/O subsystems.
User Interaction Subsystem
There may be more than one user interaction subsystem –
one for each type of user.
Service Subsystem
A service subsystem provides a service for client subsystem.
It include entity, coordinator and business logic objects.
01/18/24 37
Subsystem Structuring Criteria
Control Subsystem
A control subsystem controls a given part of the system.
The subsystem receives its inputs from the external
environment and generates outputs to the external
environment, usually without any human intervention.
A control subsystem is often state dependent, in which case
it includes at least one state-dependent control object.
01/18/24 38
Subsystem Structuring Criteria
Coordinator Subsystem
Coordinator subsystems coordinate the execution of other
subsystems, such as control or service subsystems.
In software architectures with multiple control subsystems, it
is sometimes necessary to have a coordinator subsystem that
coordinates the control subsystems.
Input / Output Subsystem
An input, output, or input/output subsystem is a subsystem
that performs input and/or output operations on behalf of
other subsystems.
It can be designed to be relatively autonomous.
01/18/24 39
Decisions about message communication between subsystems
01/18/24 40
Decisions about message communication between subsystems
01/18/24 41
Decisions about message communication between subsystems
01/18/24 42
Decisions about message communication between subsystems
01/18/24 43
The End----
01/18/24 44
Thank You !!!
01/18/24 45