An Introduction to Software Architecture

Similar documents
An Introduction to Software Architecture

An Introduction to Software Architecture. David Garlan & Mary Shaw 94

Architectural Styles. Software Architecture Lecture 5. Copyright Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved.

An Introduction to Software Architecture By David Garlan & Mary Shaw 94

Software Architecture in Practice

XVIII. Software Architectures

5/9/2014. Recall the design process. Lecture 1. Establishing the overall structureof a software system. Topics covered

Engr. M. Fahad Khan Lecturer Software Engineering Department University Of Engineering & Technology Taxila

Establishing the overall structure of a software system

Architectural Styles I

Architectural Design

Objectives. Architectural Design. Software architecture. Topics covered. Architectural design. Advantages of explicit architecture

An Introduction to Software Architecture By David Garlan & Mary Shaw 94

Chapter 6 Architectural Design. Chapter 6 Architectural design

Lecture 1. Chapter 6 Architectural design

Architectural Styles I

An Introduction to Software Architecture

Architectural Design

ADVANCED SOFTWARE DESIGN LECTURE 4 SOFTWARE ARCHITECTURE

Object-Oriented Software Engineering Conquering Complex and Changing Systems. Chapter 6, System Design Lecture 1

Architecture Styles. Instructor: Yongjie Zheng February 7, CS 5553: Software Architecture and Design

Architectural Design. Topics covered. Architectural Design. Software architecture. Recall the design process

Architectural Design

Introduction to Software Engineering 10. Software Architecture

Software Engineering

ICS 52: Introduction to Software Engineering

Chapter 6 Architectural Design. Lecture 1. Chapter 6 Architectural design

Software Architecture

ICS 52: Introduction to Software Engineering

Chapter 6 Architectural Design

Software Engineering (CSC 4350/6350) Rao Casturi

Software Architectures. Lecture 3

In this Lecture you will Learn: System Design. System Architecture. System Architecture

Lecture 15 Distributed System Architectures

How Do You Design? Where do architectures come from? Creativity. Method

Architectural Styles: Definitions

CS560 Lecture: Software Architecture Includes slides by I. Sommerville

Creational. Structural

ESE Einführung in Software Engineering!

Topics in Architectural Design

Architectural Patterns. Architectural Patterns. Layers: Pattern. Architectural Pattern Examples. Layer 3. Component 3.1. Layer 2

Architectural Patterns

In his paper of 1972, Parnas proposed the following problem [42]:

Software Architecture. Lecture 4

Software Architecture

Architectural Design. Architectural Design. Software Architecture. Architectural Models

Software Architecture

Architectural Styles - Finale

XVIII. Software Architectures

Software Architecture

CS451 Lecture 8: Architectural Design. Architectural Design: Objectives

System Design. Acknowledge: Atlee and Pfleeger (Software Engineering: Theory and Practice)

Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions

6. System Design: Decomposing the System

Software Architectures. Lecture 8

Element: Relations: Topology: no constraints.

CS 575: Software Design

Architectural Design. CSCE Lecture 12-09/27/2016

Architecture CSE 403. Fallingwater by Frank Lloyd Wright

Software Architectures

WHO WANTS TO BE A DESILLIONAIRE GAME RULES INTERNATIONAL TEAM OF EXPERTS MAIN IDEA INTERACTIVE SYSTEMS SOFTWARE ARCHITECTURAL STYLES

Initial contents proposal. List of topics. Common Architectural Styles. Architectural Styles. A sample from Elements of Software Architecture

Architectural Styles. Reid Holmes

Software Architecture

EPL603 Topics in Software Engineering

Architectural Patterns

Describing the architecture: Creating and Using Architectural Description Languages (ADLs): What are the attributes and R-forms?

Design Patterns. Architectural Patterns. Contents of a Design Pattern. Dr. James A. Bednar. Dr. David Robertson

CSE 435: Software Engineering. System Design

6/20/2018 CS5386 SOFTWARE DESIGN & ARCHITECTURE LECTURE 5: ARCHITECTURAL VIEWS C&C STYLES. Outline for Today. Architecture views C&C Views

CISC 322 Software Architecture. Lecture 13: Midterm Review Emad Shihab

Software architecture: Architectural Styles

Today s Lecture. Software Architecture. Lecture 21: Introduction to Software Architecture. Introduction and Background of

Ch 1: The Architecture Business Cycle

CHAPTER 4: PATTERNS AND STYLES IN SOFTWARE ARCHITECTURE

Grid Computing Systems: A Survey and Taxonomy

Cross Layer Protocol Design. Radio Communication III

Patterns for Software Architectures

Organizations have developed standard sets of protocols

Layered Architecture

The Client Server Model and Software Design

CSC 453 Operating Systems

System Design I: System Decomposition

ISO/IEC : 1994(E) ITU-T Rec. X.200 (1994 E) Information Processing Systems OSI Reference Model The Basic Model

CIS 1.5 Course Objectives. a. Understand the concept of a program (i.e., a computer following a series of instructions)

The OSI Model. Open Systems Interconnection (OSI). Developed by the International Organization for Standardization (ISO).

Architectural Styles II

CAS 703 Software Design

02 - Distributed Systems

02 - Distributed Systems

3. (a) Explain WDMA protocol. (b) Explain wireless LAN protocol. [8+8]

Introduction. ADL Roles

Software Architecture

CSC 453 Operating Systems

GSAW Software Architectures: What are we Building? March 1999

Chapter 2 System Models

Slides copyright 1996, 2001, 2005, 2009, 2014 by Roger S. Pressman. For non-profit educational use only

Review Sources of Architecture. Why Domain-Specific?

Architectural Design Outline

Architectural Styles and Non- Functional Requirements

Transcription:

An Introduction to Software Architecture Software Requirements and Design CITS 4401 Lecture 11 Motivation for studying SW architecture As the size of SW systems increase, the algorithms and data structures of the computation no longer constitute the major design problems. When systems are constructed from many components, the organization of the overall system the software architecture - presents a new set of design problems Shaw and Garlan 1994 Some historical background 1950s machine languages designers recognised certain patterns of execution: procedure invocation, loops, conditionals, arithmetic expressions 1960s early high level languages eg Fortran 1970s abstract data types get the data structures right - the effort will make the development of the rest of the program easier 1980s software architecture recognise common, useful system organisations 1990s design patterns includes architectural as well as lower level patterns SW architecture - issues addressed gross organisation and global control structure protocols for communication, synchronization and data access assignment of functionality to design elements physical distribution of design elements composition of design elements scaling and performance selection among design alternatives 1

SW architectures common framework All SWAs have 3 common elements: components a SWA consists of a collection of computational components connectors the interactions between those components (eg. procedure call, event broadcast, database queries or pipes) constraints eg. topological - no cycles Questions for a new SA Style 1. What is the structural pattern? 2. What is the underlying computational model? 3. What are the essential invariants of the style? 4. What are some common examples of its use? 5. What are the advantages and disadvantages of using that style? 6. What are some common specializations? Why study SW Architecture? recognise common paradigms so you can understand high level relationships among systems build new systems as variations on existing ones getting the right architecture is often crucial to the success of a design the wrong architecture can lead to disastrous results enables principled choices among design alternatives architectural system representation is often essential to analysis and description of high level properties of a complex system Example: Pipe and Filter 2

Pipe and Filter Architecture structural pattern Computational Model filter pipe each component (filter) reads streams of data on its inputs applies a local transformation produces streams of data on its outputs computation is incremental output begins before all inputs are consumed connecters (pipes) transmit outputs of one filter to inputs of another Essential Invariants Common Specializations filters must be independent entities they do not share state with other filters filters do not know the identity of other upstream and downstream filters filter specifications can restrict what appears on the input pipes or make guarantees about what appears on the output pipes Pipeline topology restricted to linear sequences of filters Bounded Pipes restrict the amount of data that can reside on a pipe Typed Pipes data passed between 2 filters must have a well defined type 3

Pipe and Filter Examples Unix shell pipes cat myfile.txt yourfile.txt sort more Compilers lexical analysis, parsing, semantic analysis, code generation also used for signal processing functional programming distributed systems Pipe and Filter Advantages understanding overall input/output is a simple composition of the behaviours of individual filters reuse any two filters can be hooked together provided they agree on the data transmitted maintenance and enhancement new filters can be added, old filters replaced good for analysis e.g. throughput and deadlock analysis naturally supports concurrency filters can be executed in parallel with other filters Pipe and Filter Disadvantages May force batch organisation of processing each filter must provide a complete transformation of input data to output data Not good at handling interactive applications eg. incremental display updates May have to maintain correspondences between several separate but related streams May force lowest common denominator filters have extra work to parse and unparse the data All this leads to loss of overall performance and increased complexity of each filter Example: Repository 4

Repositories source 4 Repository Architecture Components source 3 source 2 Repository (shared data) source 1 source 5 source 6 Subsystems access and modify data from a single data structure Subsystems are loosely coupled (interact only through the repository) Two distinct types of component central data structure represents current state independent components operate on the data store Repository Interactions Control flow is dictated by central repository (triggers) or by the subsystems (locks, synchronization primitives) Blackboard architecture interactions current state of the central DS is the main trigger Traditional database interactions input stream of transactions triggers selection of processes to execute Blackboard Repositories sources separate, independent parcels of applicationdependent knowledge Blackboard data structure problem-solving state data organised in an application-dependent hierarchy Control driven by the state of the blackboard 5

Examples of Repository systems complex interpretations of signal processing eg. speech and pattern recognition shared access to data with loosely coupled agents some programming environments collections of tools and shared repository of programs and program fragments database management systems Example: Layering Layering - structure is client to Layered model provides services to Cryptography File interface Key management Authentication Users hierarchical organisation: each layer provides a service to the layer above acts as a client to the layer below layers may either be partially opaque (some interaction allowed between non-adjacent layers) opaque: inner layers are hidden from all except the adjacent outer layer 6

Example Layered System Advantages ISO reference model for Open Systems Interconnection (network protocols) application layer presentation session transport network data link physical see B&D Figures 6-9 and 6-10 Design based on increasing levels of abstraction complex problem becomes sequence of incremental steps Supports enhancement changes to one layer affect at most two other layers Supports reuse different implementations of the same layer can be used interchangeably provided they support the same interfaces Layered System Disadvantages Not all systems are easily structured in layers Performance considerations may need close coupling between logically high-level functions and their low-level impls Can be difficult to find right level of abstraction eg. protocols which bridge several OSI layers Example: Some other SW Architectures 7

Client and Server FEEDBACK LOOP: Input variables Set point Controller Process Changes to manipulated variables Process Control Controlled variable FEEDFORWARD LOOP: Input variables Set point Controller Process Changes to manipulated variables Controlled variable Further reading Bruegge and Dutoit, 2010: 6.3.5 architectural styles 7.4 system design activities An Introduction to Software Architecture by Garlan and Shaw (http://undergraduate.csse.uwa.edu.au/ units/cits4401/readings/garlan-shaw- TR94.pdf) 8