SS ZG653 (RL 2.
1): Software
Architecture
BITS Pilani Software Structure and Views
Pilani|Dubai|Goa|Hyderabad Instructor: Prof. SantonuSarkar
Jan 11, 2015
Views and Architectural Structure- Recap..
• Architecture is a set of Views
– Each view represents certain architectural aspects of the system, created for a stakeholder
– All the views combined together form the consistent whole
• A Structure is the underlying part of a view- essentially the set of elements, and
their properties
– A view corresponding to a structure is created by using these elements and their inter-
relationships
Many Views exist
• Rational Unified Process/Kruchten 4+1 view (uses UML notations to describe these views)
• Siemens architecture framework- Conceptual, Module, Code, Execution views
• C4ISR framework – Operational, system and technical
• Classical approach – Data flow and control flow views
• RM-ODP (suitable for distributed system development) – 5 viewpoints
03/26/2024 SS ZG653 2
Three Structures will be covered
• Module Structure
– How is the system to be structured as a set of functional units
(modules)?
• Component-and-connector structures
– Here component means a computation unit at runtime
– Connector is the communication channel between the components
– Models parallel execution
• Allocation structures
– How is the system to relate to non-software structures in it’s
environment (CPU or cluster of CPUs, File Systems, Networks,
Development Teams …)
03/26/2024 SS ZG653 3
Software Structures
• Module Structure includes
– Decomposition Module
• Sub-modules
• All sub-mobiles combined together is the
module
– Uses Decomposition
• A modules uses the functionality of another Class
module for its behavior
Uses
– Layered
• Hierarchical organization with restrictions
that layer n uses the service of layer n-1 Layered
– Class or generalization
• Similar to OO concept
03/26/2024 SS ZG653 4
Component and Connectors
Components-and-connector
Client-Server Concurrency Process Shared data
• Client-Server
– Components are clients and servers and connectors are how they interact
• Concurrency
– Opportunities of parallelism, where connectors are logical thread of execution
dependency
• Process, or communicating processes
– Components that are processes and connectors are how they communicate
• Shared data, or repository
– Components have data store, and connectors describe how data is created,
stored, retrieved
03/26/2024 SS ZG653 5
Allocation
Allocation
Deployment Implementation Work assignment
• Deployment
– Units are software (processes from component-connector) and hardware
processors
– Relation means how a software is allocated or migrated to a hardware
• Implementation
– Units are modules (from module view) and connectors denote how they
are mapped to files, folders
• Work assignment
– Assigns responsibility for implementing and integrating the modules to
people or team
03/26/2024 SS ZG653 6
Architectural Structures
Software Structure Relations Useful For
Decomposition Is a sub-module of Resource allocation and
project structuring;
information hiding,
encapsulation;
configuration control
Uses Requires the correct Engineering subsets;
presence of engineering extensions
Layered Requires the correct Incremental development;
presence of; uses the implementing systems on
services of; provides top of “virtual machines”
abstraction to portability
Class Is an instance of; shares In object-oriented design
access methods of systems, producing rapid
most-alike implementations
from a common template
03/26/2024 SS ZG653 7
Architectural Structures
Software Structure Relations Useful For
Client-Server Communicates with; Distributed operation;
depends on separation of concerns;
performance analysis; load
balancing
Process Runs concurrently with; Scheduling analysis;
may run concurrently with; performance analysis
excludes; precedes; etc.
Concurrency Runs on the same logical Identifying locations where
thread resource contention exists,
where threads may fork,
join, be created or be killed
Shared Data Produces data; consumes Performance; data integrity;
data modifiability
03/26/2024 SS ZG653 8
Architectural Structures
Software Structure Relations Useful For
Deployment Allocated to; migrates to Performance, availability,
security analysis
Implementation Stored in Configuration control,
integration, test activities
Work assignment Assigned to Project management, best
use of expertise,
management of
commonality
03/26/2024 SS ZG653 9
Which Structure to Choose?
• Many opinions exist
• We will consider 4+1 view. This has been institutionalized as
Rational Unified Process of Architecture description
Infrastructure team
End-user • concerned with topology, communication,
• concerned with functionality security
• essentially module structure • essentially allocation (deployment). Other
l View people also call it as deployment view
Use-case- Binds all the four
Logica Physical View
views together and describes
the behavior of the system in Use case/ Scenarios View
a semi-structured text
nt
Process View opme
Devel
Architect/Integrator Development team
• concerned with performance, • concerned with software management
scalability.. • essentially allocation (implementation
• essentially component-connector and work-assignment)
03/26/2024 SS ZG653 10