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

Slides:



Advertisements
Similar presentations
Software Architecture Lecture 5
Advertisements

Software Connectors Software Architecture. Importance of Connectors Complex, distributed, multilingual, modern software system functionality and managing.
Lecturer: Sebastian Coope Ashton Building, Room G.18 COMP 201 web-page: Lecture.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors.
Applying Architectural Styles and Patterns. Outline  Defining Architectural Patterns and Style The activation model Styles and Quality Attributes  Common.
Architectural Styles. Definitions of Architectural Style  Definition. An architectural style is a named collection of architectural design decisions.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors Software Architecture Lecture 7.
SWE Introduction to Software Engineering
Software Architecture Lecture 5
Establishing the overall structure of a software system
1 CS115 Class 7: Architecture Due today –Requirements –Read Architecture paper pages 1-15 Next Tuesday –Read Practical UML.
SWA-1.1 CSE300 Software Architectures Chapter 2: Architectural Styles Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Architectural Styles Software Architecture Lecture 5.
Software Architecture – Pipe and Filter Model
System Design & Software Architecture
HW2 INTRODUCTION CSCI-578 Spring Implicit Invocation  Indirectly or implicitly calls to methods and interfaces in response to an event or a received.
HW2 INTRODUCTION CSCI-578 Fall Event-Based Style  Independent components asynchronously emit and receive events communicated over event buses.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors Software Architecture Lecture 7.
Chapter 7: Architecture Design Omar Meqdadi SE 273 Lecture 7 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Basic Concepts Acknowledgement: some slides from: Software Architecture: Foundations, Theory, and Practice; R. Taylor, N. Medvidovic, E.Dashofy.
Designing Architectures
More Software Architectures. Blackboard Architecture In a blackboard system, a set of problem solving modules (typically called knowledge sources) share.
Dataflow Architectural Styles (Styles 2) CPSC 410.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
Architectural Design. Recap Introduction to design Design models Characteristics of good design Design Concepts.
©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 13Slide 1 Architectural Design u Establishing the overall structure of a software system.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Chapter 10 Architectural Design.
1 CMPT 275 High Level Design Phase Architecture. Janice Regan, Objectives of Design  The design phase takes the results of the requirements analysis.
Traditional Language- influenced styles.
Architectural Design portions ©Ian Sommerville 1995 Establishing the overall structure of a software system.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Implementing Architectures Software Architecture.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 07. Review Architectural Representation – Using UML – Using ADL.
4/2/03I-1 © 2001 T. Horton CS 494 Object-Oriented Analysis & Design Software Architecture and Design Readings: Ambler, Chap. 7 (Sections to start.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
Architecture styles Pipes and filters Object-oriented design Implicit invocation Layering Repositories.
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 Architectural Styles.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Architectural Styles Part II Software Architecture Lecture 6.
 Repository Model  Client-Server Model  Layered Model  Modular decomposition styles  Object Models  Function Oriented Pipelining  Control Styles.
Krista Lozada iAcademy First Term 2009
Unit 2 Architectural Styles and Case Studies | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS 1.
Chapter 7: Architectural Design Chapter 11 in textbook 1.
CSC480 Software Engineering Lecture 10 September 25, 2002.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Applied Architectures, Part 2 Software Architecture Lecture.
Software Connectors Acknowledgement: slides mostly from Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic,
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors in Practice Software Architecture.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Brief Introduction to Software Connectors Software Architecture.
Lecture VIII: Software Architecture
CS223: Software Engineering
Slide 1 Chapter 8 Architectural Design. Slide 2 Topics covered l System structuring l Control models l Modular decomposition l Domain-specific architectures.
Unit 4 - Architectural Styles By Prof. Dr. Chandramouli.
Architectural Styles. ContentContent Data Flow Styles – Batch Sequential – Pipe and Filter Implicit Invocation – Event Based – Publish Subscribe Layered.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors Software Architecture Lecture 7.
CS310 – Software Engineering
Software Architecture
IS301 – Software Engineering Dept of Computer Information Systems
CS310 – Software Engineering
Software Connectors.
Software Design and Architecture
Part 3 Design What does design mean in different fields?
Software Architecture Lecture 5
Software Architecture
Implementing Architectures
Software models - Software Architecture Design Patterns
Software Connectors.
Software Architecture Lecture 7
Software Architecture Lecture 7
Software Architecture Lecture 7
Software Architecture Lecture 6
Presentation transcript:

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

Software Architecture: Foundations, Theory, and Practice Main Program and Subroutines LL 2 Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.

Software Architecture: Foundations, Theory, and Practice Object-Oriented Style Components are objects u Data and associated operations Connectors are messages and method invocations Style invariants u Objects are responsible for their internal representation integrity u Internal representation is hidden from other objects Advantages u “Infinite malleability” of object internals u System decomposition into sets of interacting agents Disadvantages u Objects must know identities of servers u Side effects in object method invocations 3

Software Architecture: Foundations, Theory, and Practice Object-Oriented LL 4 Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.

Software Architecture: Foundations, Theory, and Practice OO/LL in UML 5 Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.

Software Architecture: Foundations, Theory, and Practice Layered Style Hierarchical system organization u “Multi-level client-server” u Each layer exposes an interface (API) to be used by above layers Each layer acts as a u Server: service provider to layers “above” u Client: service consumer of layer(s) “below” Connectors are protocols of layer interaction Example: operating systems Virtual machine style results from fully opaque layers 6

Software Architecture: Foundations, Theory, and Practice Layered Style (cont’d) Advantages u Increasing abstraction levels u Evolvability u Changes in a layer affect at most the adjacent two layers Reuse u Different implementations of layer are allowed as long as interface is preserved u Standardized layer interfaces for libraries and frameworks 7

Software Architecture: Foundations, Theory, and Practice Layered Style (cont’d) Disadvantages u Not universally applicable u Performance Layers may have to be skipped u Determining the correct abstraction level 8

Software Architecture: Foundations, Theory, and Practice Layered Systems/Virtual Machines 9 Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.

Software Architecture: Foundations, Theory, and Practice Layered LL 10 Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.

Software Architecture: Foundations, Theory, and Practice Client-Server Style Components are clients and servers Servers do not know number or identities of clients Clients know server’s identity Connectors are RPC-based network interaction protocols 11

Software Architecture: Foundations, Theory, and Practice Client-Server LL 12 Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.

Software Architecture: Foundations, Theory, and Practice Data-Flow Styles Batch Sequential u Separate programs are executed in order; data is passed as an aggregate from one program to the next. u Connectors: “The human hand” carrying tapes between the programs, a.k.a. “sneaker-net ” u Data Elements: Explicit, aggregate elements passed from one component to the next upon completion of the producing program’s execution. Typical uses: Transaction processing in financial systems. “The Granddaddy of Styles” 13

Software Architecture: Foundations, Theory, and Practice Batch-Sequential: A Financial Application 14 Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.

Software Architecture: Foundations, Theory, and Practice Batch-Sequential LL 15 Not a recipe for a successful lunar mission! Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.

Software Architecture: Foundations, Theory, and Practice Pipe and Filter Style Components are filters u Transform input data streams into output data streams u Possibly incremental production of output Connectors are pipes u Conduits for data streams Style invariants u Filters are independent (no shared state) u Filter has no knowledge of up- or down-stream filters Examples u UNIX shellsignal processing u Distributed systemsparallel programming Example: ls invoices | grep -e August | sort 16

Software Architecture: Foundations, Theory, and Practice Pipe and Filter (cont’d) Variations u Pipelines — linear sequences of filters u Bounded pipes — limited amount of data on a pipe u Typed pipes — data strongly typed Advantages u System behavior is a succession of component behaviors u Filter addition, replacement, and reuse Possible to hook any two filters together u Certain analyses Throughput, latency, deadlock u Concurrent execution 17

Software Architecture: Foundations, Theory, and Practice Pipe and Filter (cont’d) Disadvantages u Batch organization of processing u Interactive applications u Lowest common denominator on data transmission 18

Software Architecture: Foundations, Theory, and Practice Pipe and Filter LL 19 Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.

Software Architecture: Foundations, Theory, and Practice Blackboard Style Two kinds of components u Central data structure — blackboard u Components operating on the blackboard System control is entirely driven by the blackboard state Examples u Typically used for AI systems u Integrated software environments (e.g., Interlisp) u Compiler architecture 20

Software Architecture: Foundations, Theory, and Practice Blackboard LL 21 Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.

Software Architecture: Foundations, Theory, and Practice Rule-Based Style Inference engine parses user input and determines whether it is a fact/rule or a query. If it is a fact/rule, it adds this entry to the knowledge base. Otherwise, it queries the knowledge base for applicable rules and attempts to resolve the query. 22

Software Architecture: Foundations, Theory, and Practice Rule-Based Style (cont’d) Components: User interface, inference engine, knowledge base Connectors: Components are tightly interconnected, with direct procedure calls and/or shared memory. Data Elements: Facts and queries Behavior of the application can be very easily modified through addition or deletion of rules from the knowledge base. Caution: When a large number of rules are involved understanding the interactions between multiple rules affected by the same facts can become very difficult. 23

Software Architecture: Foundations, Theory, and Practice Rule Based LL 24 Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.

Software Architecture: Foundations, Theory, and Practice Interpreter Style Interpreter parses and executes input commands, updating the state maintained by the interpreter Components: Command interpreter, program/interpreter state, user interface. Connectors: Typically very closely bound with direct procedure calls and shared state. Highly dynamic behavior possible, where the set of commands is dynamically modified. System architecture may remain constant while new capabilities are created based upon existing primitives. Superb for end-user programmability; supports dynamically changing set of capabilities Lisp and Scheme 25

Software Architecture: Foundations, Theory, and Practice Interpreter LL 26 Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.

Software Architecture: Foundations, Theory, and Practice Mobile-Code Style Summary: a data element (some representation of a program) is dynamically transformed into a data processing component. Components: “Execution dock”, which handles receipt of code and state; code compiler/interpreter Connectors: Network protocols and elements for packaging code and data for transmission. Data Elements: Representations of code as data; program state; data Variants: Code-on-demand, remote evaluation, and mobile agent. 27

Software Architecture: Foundations, Theory, and Practice Mobile Code LL 28 Scripting languages (i.e. JavaScript, VBScript), ActiveX control, embedded Word/Excel macros. Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.