Title: An Introduction to Software Architecture
1An Introduction to Software Architecture
2Contents
- What is Architecture?
- Current Practice in Software Architecture
- Why Software Architecture?
- Common Architecture Styles
3What is Architecture?
- Architecture the underlying structure of things
- An example of civil engineering
- Customer engineer gets customer requirements
- functional units
- 3 bedrooms, 21/2 bathrooms, 1 living
1 dining rooms, 2-car garage,
kitchen, backyard - other considerations
- cost, esthetics, workmanship, neighborhood,
maintainability, - economics
-
4What is Architecture?
- Architect starts thinking about architectural
styles - architectural styles
- Victorian, Duplex, Condominium, Townhouse,
Catheral, Pyramidal, - floor plans elevations for functional
units - Designers/Contractors think about detailed design
considerations - electrical wiring, plumbing, heating,
air-conditioning, carpeting, etc. - Sub-contractors/Construction Workers
- electricians, plumbers, furnace installers,
carpenters, locksmith, brick layers, bathtub
technicians, etc. -
5Current Practice in Software Architecture
- Architecture Descriptions
- Camelot is based on the client-server model and
uses remote procedure calls both locally and
remotely to provide communication among
applications and servers. - We have chosen a distributed, object-oriented
approach to managing information.
6Current Practice in Software Architecture
- Observations
- software architectures are indeed used, very
often but without even knowing it - carries some, and more often than not a lot of,
information - no explicit description of the structure
7Software Architecture Description
- elements (components/parts)
- from which systems are built,e.g., process,
data, object, agent - interactions (connections/connectors/glues/relatio
nships) - between the elements,e.g., PCs, RPCs, MOMs,
events - patterns
- describe layout of elements and interactions,
guiding their composition, e.g., of elements,
of connectors, order, topology, directionality
8Software Architecture Description
- constraints
- on the patterns (i.e., on components,
connectors, layout),e.g., temporal, cardinality,
concurrency, (a)synchronous, etc. - styles
- abstraction of architectural components from
various specific architectures, (Sometimes
interchangeably used with patterns,e.g., Unix OS,
OSI protocol layer, Onion ring IS structure -gt
layering - rationale
- describe why the particular architecture is
chosen
9Why Software Architecture?
- abstract solution to conquer complexity
- supports reuse
- facilitates (integration) testing
- parallel development
- system evolvability
- many other conceptual reasons
10Common Architecture Styles
- Dataflow systems
- Batch sequential
- Pipe Filter
- Call-and-return systems
- Main program subroutine
- OO systems
- Hierarchical layers
- Independent components
- Communicating processes
- Event systems
11Common Architecture Styles
- Virtual machines
- Interpreters
- Rule-based systems
- Data-centered systems
- Databases
- Hypertext systems
- Blackboards
- Process-control paradigms
12The KWIC Problem
- The KWIC (Key Word in Context) index system
(functional requirements) - accepts an ordered set of lines, (where)
- each line is an ordered set of words, and
- each word is an ordered set of characters.
- any line may be "circularly shifted"
- by repeatedly removing the first word and
appending it at the end of the line. - the KWIC index system
- outputs a listing of all circular shifts of all
line in alphabetical order -
13The KWIC Problem
- Input 1
- HOW ARCHITECTURE WINS TECHNOLOGY WARS
- HOW ARCHITECTURE WINS TECHNOLOGY WARS
- ARCHITECTURE WINS TECHNOLOGY WARS HOW
- WINS TECHNOLOGY WARS HOW ARCHITECTURE
- TECHNOLOGY WARS HOW ARCHITECTURE WINS
- WARS HOW ARCHITECTURE WINS TECHNOLOGY
- Input 2
- THE ART OF SYSTEMS ARCHITECTING
- ART OF SYSTEMS ARCHITECTING THE
- OF SYSTEMS ARCHITECTING THE ART
- SYSTEMS ARCHITECTING THE ART OF
- ARCHITECTING THE ART OF SYSTEMS
14The KWIC Problem
- Output
- ARCHITECTING THE ART OF SYSTEMS
- ARCHITECTURE WINS TECHNOLOGY WARS HOW
- ART OF SYSTEMS ARCHITECTING THE
- HOW ARCHITECTURE WINS TECHNOLOGY WARS
- OF SYSTEMS ARCHITECTING THE ART
- SYSTEMS ARCHITECTING THE ART OF
- TECHNOLOGY WARS HOW ARCHITECTURE WINS
- THE ART OF SYSTEMS ARCHITECTING
- WARS HOW ARCHITECTURE WINS TECHNOLOGY
- WINS TECHNOLOGY WARS HOW ARCHITECTURE
15The KWIC Problem
- Non-functional requirements
- modifiability
- Changes in process algorithms
- Changes in data representations
- enhanceability
- to eliminate noise words (e.g., "a", "an", "the)
- performance (space and time)
- reusability
16Architecture Alternative I
17Architecture Alternative II
18Architecture Alternative III
19Architecture Alternative IV
20Contents of this presentation is from
http//www.utdallas.edu/chung/SA/contents.html