An Introduction to Software Architecture - PowerPoint PPT Presentation

1 / 20
About This Presentation
Title:

An Introduction to Software Architecture

Description:

Architecture: the underlying structure of things. An example of civil engineering. Customer engineer gets customer requirements. functional units: ... – PowerPoint PPT presentation

Number of Views:58
Avg rating:3.0/5.0
Slides: 21
Provided by: liron2
Category:

less

Transcript and Presenter's Notes

Title: An Introduction to Software Architecture


1
An Introduction to Software Architecture
2
Contents
  • What is Architecture?
  • Current Practice in Software Architecture
  • Why Software Architecture?
  • Common Architecture Styles

3
What 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

4
What 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.

5
Current 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.

6
Current 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

7
Software 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

8
Software 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

9
Why Software Architecture?
  • abstract solution to conquer complexity
  • supports reuse
  • facilitates (integration) testing
  • parallel development
  • system evolvability
  • many other conceptual reasons

10
Common 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

11
Common Architecture Styles
  • Virtual machines
  • Interpreters
  • Rule-based systems
  • Data-centered systems
  • Databases
  • Hypertext systems
  • Blackboards
  •  Process-control paradigms

12
The 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

13
The 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

14
The 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

15
The 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

16
Architecture Alternative I
17
Architecture Alternative II
18
Architecture Alternative III
19
Architecture Alternative IV
20
Contents of this presentation is from
http//www.utdallas.edu/chung/SA/contents.html
Write a Comment
User Comments (0)
About PowerShow.com