Uploaded by Vrushali Savalia

itec 3030

advertisement
1
ITEC3030
SYSTEMS ARCHITECTURE
Introduction and Basic Concepts
What is Architecture?
2
Feidias – Parthenon, Acropolis Hill (Athens)
What is architecture?
3
Friedensreich Hundertwasser –
Apartment Buildings in Vienna, Austria
4
What is
architecture?
"A person in a rented apartment must be able
to lean out of his window and scrape off the
masonry within arm's reach. And he must be
allowed to take a long brush and paint
everything outside within arm's reach. So that
it will be visible from afar to everyone in the
street that someone lives there who is
different from the imprisoned, enslaved,
standardized man who lives next door."
Friedensreich Hundertwasser –
Apartment Buildings in Vienna, Austria
What is Architecture?
5
Apartment Buildings Toronto
What is Architecture?
6
Foster & Partners / Various - Beijing International Airport (Terminal 3)
What is architecture?
7
Populous - London’s Olympic Stadium
What is architecture?
8
Is affected by the needs and purposes of
those who need the artifact (e.g., building,
airport, stadium, …).
 Its shape is the result of small design decisions
that are made to address these needs.

What is Systems Architecture?
9
Systems = Software-Intensive Systems
 What is Software?

 An electrical phenomenon.
 Happening on a piece of hardware.

What is a Software-Intensive System?
 Software runs on hardware.
 It is used in the context of a human activity, which it supports.

Our focus here though: software.
Software Systems
10

Software System:
 A set of elements that need to be designed
and developed in order to meet specific
needs.
 Elements = pieces of the system
 Module, component, partition, subsystem.

Architecture:
 Refers to the way we put together elements
to fulfill needs.
Stakeholders
11
Software systems are there to perform purposeful
computations.
 The purposes are defined by humans.
 We call these the stakeholders.

 Individuals, teams, organizations or classes thereof with
an interest in the realization of the system.
 System builders, testers, operators, maintainers, their
bosses and the bosses of the bosses, those who pay,
users, etc. etc..
Stakeholders and Concerns
12
Concern describes the way stakeholders are
interested in the system and its architecture.
 Concern is a requirement, objective, constraint,
intention or aspiration a stakeholder has for the
architecture.

 User: want it usable, reliable and fast.
 Maintainer: wants it easy to change.
 Marketing: wants it customizable.
 CEO/strategist: wants it in the market the soonest.
Architecture and Stakeholders
13
Architectures are created (or emerge) as the result
of stakeholder needs and only.
 Thus:
 A good architecture is one that successfully
addresses the concerns of its stakeholders, or, in
case of conflicts, balances them in an acceptable
way.

What is a good architecture?
14

Functionality / Externally Visible Behavior
 What the system actually does.
 Allows you to add a course, withdraw cash, check-in to a
flight, open a bank account, etc..

Quality Property (or Quality Attribute).
 The quality by which functionality is performed.
 How quickly? How securely? How easily for the user?
How reliably? How easy is it to change?
Functionality vs. Quality
15

The exact same functionality may exhibit totally
different qualities. Why?
 Because internal organization is different.

Example: airport check-in systems.
Load
balancer
Terminal
(Kiosk)
Terminal
(Kiosk)
…
Terminal
(Kiosk)
Terminal
(Kiosk)
Terminal
(Kiosk)
Functionality vs. Quality
16

Example: airport check-in systems.
 They will both check you in.
 One will be much slower and unreliable than
the other
Load
balancer
Terminal
(Kiosk)
Terminal
(Kiosk)
…
Terminal
(Kiosk)
Terminal
(Kiosk)
Terminal
(Kiosk)
Candidate Architectures
17

Candidate Architectures
Load
balancer
Terminal
(Kiosk)
Terminal
(Kiosk)
…
Terminal
(Kiosk)
Terminal
(Kiosk)
Terminal
(Kiosk)
Static vs. Dynamic Structures
18

Static Structure
 Focus on how various design-time elements combine with
each other to deliver functionality and qualities.
 Elements = code in its various forms: programs,
functions, services, packages, components, modules,
stored procedures, …

Dynamic Structure
 Focus on how various elements behave at run time, ie.,
how they respond to external and internal stimuli.
Check-in Kiosks
19
Static Structure
Load
balancer
Terminal
(Kiosk)
Terminal
(Kiosk)
…
Terminal
(Kiosk)
Terminal
(Kiosk)
Terminal
(Kiosk)
Check-in Kiosks
20

Dynamic Structure
(*)
Qualities – SEI Taxonomy
21

Performance:
 Latency / Response Time, Throughput, Scalability, Capacity

Dependability
 Availability (readiness of usage), Reliability (ability to work for a
long period of time), Safety (no catastrophy in the environment),
Integrity (no catastrophy in data).

Security
 Confidentiality, Integrity, Availability

Maintainability
 Modifiability, Configurability, Portability
Accessibility
 Usability

(*) Mario Barbacci, Mark H. Klein, Thomas A. Longstaff, Charles B. Weinstock. Quality Attributes. Technical Report.
CMU/SEI-95-TR-021, ESC-TR-95-021, December 1995.
Qualities in this course
22
Quality
Maintainability
(Evolvability)
Reliability
Performance
Security
Qualities in this course
23
50 % of class! Most
OO design
principles target
evolvability.
Maintainability
(Evolvability)
Quality
Reliability
Performance
Security
Qualities in this course
24
Addressed towards
the end of the class
Quality
Maintainability
(Evolvability)
Reliability
Performance
Security
Software Design vs. Systems Architecture vs.
Enterprize Architecture
25

Software Design
 Detailed architecture.
 Two main concerns:
 Concern #1: How we organize our Java classes and
methods so that they are maintainable, reliable, well
performing?
 What are the classes and what are their responsibilities?
 Concern #2: How do we arrange the classes and
responsibilities to fit the organizational structure of
development teams?
Software Design vs. Systems Architecture vs.
Enterprize Architecture
26

Software Design
 Architecture in the small.
 Two main concerns:
 Concern #1: How we organize our Java classes and
methods so that they are maintainable, reliable, well
performing?
 What are the classes and what are their responsibilities?
 Concern #2: How do we arrange the classes and
responsibilities to fit the organizational structure of
development teams?
Conway’s Law
“organizations which design systems ... are constrained to produce designs which are
copies of the communication structures of these organizations.”
27
Software Design vs. Systems
Architecture vs. Enterprize Architecture

(Information) Systems Architecture, encompasses a
variety of other aspects:
 Hardware Infrastructure and Deployment.
 Software Infrastructure, Modules and Configurations.
 Network and Connectivity.
 Operations Architecture.
 Development Architecture.

Enterprise Architecture.
 The architecture of all IT within an Organization.
Enterprize Architecture
28
The Good News
29

Principles are the (more or less) same!
 Whatever guidelines we use to make
design decisions at the low level…
 … we use at the high level.

Examples:
 Minimize Coupling, Maximize Cohesion,
Extend instead of Change, Use Interfaces.
Summary
30

Relationship with the architecture of buildings.
 Architecture = needs and purposes which are shaping the
architecture of the artifact.
Software Architecture: the organization of a complex
electrical phenomenon.
 The role of stakeholders and their needs.
 Functionality vs. Quality.
 Key Qualities:

 Maintainability, Reliability, Performance, Security

Levels of architecture: software architecture, systems
architecture and enterprize architecture.
Download