0% found this document useful (0 votes)
106 views25 pages

Advanced Software Architecture: Muhammad Bilal Bashir

This document discusses software architecture. It defines software architecture as the structure of system elements, their externally visible properties, and relationships. It discusses architectural patterns, reference models, and reference architectures. Architectural patterns describe common element and relationship types. Reference models divide system functionality and data flow. Reference architectures map reference models to software elements. The document also discusses why software architecture is important for communication, early design decisions, and reuse. It describes module, component-connector, and allocation structures and views. Views represent coherent element sets and relationships. Structures are the actual sets of elements. The document discusses relating different structures and views to analyze a system from multiple perspectives.

Uploaded by

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

Advanced Software Architecture: Muhammad Bilal Bashir

This document discusses software architecture. It defines software architecture as the structure of system elements, their externally visible properties, and relationships. It discusses architectural patterns, reference models, and reference architectures. Architectural patterns describe common element and relationship types. Reference models divide system functionality and data flow. Reference architectures map reference models to software elements. The document also discusses why software architecture is important for communication, early design decisions, and reuse. It describes module, component-connector, and allocation structures and views. Views represent coherent element sets and relationships. Structures are the actual sets of elements. The document discusses relating different structures and views to analyze a system from multiple perspectives.

Uploaded by

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

Advanced Software

Architecture

Muhammad Bilal Bashir


PhD Scholar (Computer Science)
Mohammad Ali Jinnah University

1
Outline

1. What Software Architecture is and What isnt


2. Other Points of View
3. Architectural Patterns, Reference Models, and
Reference Architecture
4. Why is Software Architecture Important?
5. Architectural Structures and Views
6. Summary

2
What is Software
Architecture?

Lecture: 2

3
1. What is Software Architecture?

Quite often shown as box-and-arrow diagrams

Control
Process
(CP)

Prop Loss Reverb Noise


Model Model Model
(MODP) (MODR) (MODN)

4
What is Missing?

What is the nature of the elements?


What are the responsibilities of the elements?
What is the significance of the connections?
What is the significance of the layout?

Unless we know precisely what the elements are &


how they cooperate to accomplish the purpose of
the system, this diagram is unhelpful!

5
Definition Again

Definition;
The software architecture of a program is the structure or
structures of the system, which comprise software elements,
the externally visible properties of these elements, and the
relationships among them

We see the elements (CP, MODP, MODR, MODN), but


what properties do they or their relationships have?

6
Externally Visible Properties

The assumptions that other elements can make of


an element, such as:
its provided services,
performance characteristics,
fault handling,
shared resource usage,
etc.

7
Definition Implications

1. Architecture defines software elements


2. Systems can and do comprise more than one
structure, all are part of the architecture
3. Every computing system with software has an
architecture
4. The behavior of each element is part of the
architecture as far as its behavior can be observed
or discerned from the point of view of another
element
5. The definition doesnt judge goodness or badness

8
2. Other Points of View

Architecture is high-level design


Architecture is the overall structure of the system
Architecture is the structure of the components of a
program or a system, their relationships, and the
principles and guidelines governing their design and
evolution over time
Architecture is components and connectors

9
3. Useful Concepts

Three stages that capture characteristics of an


architecture, on the way from box-and-arrow to full
software architectures:
Architectural Patterns
Reference Models
Reference Architectures

10
Architectural Patterns

A description of element & relation types together


with a set of constraints on how they may be used
These constraints on an architecture define a set or
family of architectures
For example, the client-server pattern has 2 element types
(?); their relationship is a protocol that the server uses to
communicate with each of its clients, the clients dont
communicate directly and functionality is excluded

11
Value of Patterns

They exhibit known quality attributes, and are a


reuse of experience
Some patterns solve performance problems, others
apply to high-security systems, or high-availability
goals
Often the architects first major design decision
Also referred to as architectural styles

12
Reference Models

A division of functionality together with data flow


between the pieces
A standard decomposition of a known problem into
parts that cooperatively solve the problem
They arise from experience, and are thus a
characteristic of mature domains
For example, the standard parts of a compiler or database
management system & how they work together

13
Reference Architecture

A reference model mapped onto software elements


and the data flows between them. The elements
must cooperatively implement the functionality
defined in the reference model
The mapping may be 1-1, but an element may
implement a part of a function or several functions

14
Relationship among Architectural
Patterns, Reference Models &
Reference Architecture

Reference Model
Reference Software
Architecture Architecture
Architectural
Pattern

15
4. Why is Software Architecture
Important?
Three fundamental reasons from a technical
perspective:
Communication among stakeholders
a basis for mutual understanding, negotiation, & consensus
Early design decisions
earliest point at which decisions can be analyzed
Transferable abstraction of a system
can promote large-scale reuse

16
5. Structures and Views

A view is a representation of a coherent set of


architectural elements, consisting of:
a set of elements
the relationships among them
A structure is the set of elements itself, as they exist
in software or hardware
Often used interchangeably, text will distinguish

17
Group of Architectural Structures

Module structures
units of implementation with assigned areas of functionality
- usually static
Component-and-connector structures
runtime components (principal units of computation) and
connectors (communication vehicles)
Allocation structures
show relationships between software elements & external
environments (creation or execution)

18
Three Types of Structures

Correspond to the three broad types of decisions


that architectural design involves:
How is the system to be structured as a set of code units
(modules)?
How is the system to be structured as a set of elements
that have runtime behavior (components) and interactions
(connectors)?
How is the system to relate to non-software structures in its
environment (i.e., CPUs, file systems, networks,
development teams, etc. - allocation)?

19
Three Types of Structures

20
Non-functional Properties

Each structure provides a method for reasoning


about some of the relevant quality attributes, for
example:
the uses structure, must be engineered to build a system
that can be easily extended or contracted
the process structure is engineered to eliminate deadlock
and reduce bottlenecks
the module decomposition structure is engineered to
produce modifiable systems, etc.

21
Relating Structures to Each Other

Although the structures give different system


perspectives, they are not independent
Elements of one structure are related to elements in
another, and we need to reason about these
relationships
For example, a module in a decomposition structure may
map to one, part of one, or several, components in a
component-and-connector structure at runtime
In general, mappings are many-many

22
Choosing Structures

Kruchtens Four + One Views:


Logical - elements are key abstractions that are objects or
classes in OO. This is a module view
Process - addresses concurrency & distribution of
functionality. This is a C&C view
Development - shows organization of software modules,
libraries, subsystems, and units of development. This is an
allocation view
Physical - maps other elements onto processing &
communication nodes, also an allocation view, but usually
referred to specifically as the deployment view

23
Assignment# 1

Due Date: 26th September, 2012

24
Summary

Any Questions?

25

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