SWA-1.1 CSE300 Software Architectures Chapter 2: Architectural Styles Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University.

Slides:



Advertisements
Similar presentations
28.2 Functionality Application Software Provides Applications supply the high-level services that user access, and determine how users perceive the capabilities.
Advertisements

Lecturer: Sebastian Coope Ashton Building, Room G.18 COMP 201 web-page: Lecture.
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.
1 SWE Introduction to Software Engineering Lecture 22 – Architectural Design (Chapter 13)
Software Architecture Design Instructor: Dr. Jerry Gao.
Introduction to Software Engineering Lecture 6 André van der Hoek.
Lecture 23: Software Architectures
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
Demystifying Architectural Styles Nikunj Mehta 3/11/02Demystifying Architectural Styles2 Agenda Architectural Styles The Alfa Project Architectural framework.
Application architectures
Establishing the overall structure of a software system
Demystifying Architectural Styles Nikunj Mehta 3/11/02Demystifying Architectural Styles2 Architectural Styles Characterize –Structure, i.e. external.
Architectural Design, Distributed Systems Architectures
Course Instructor: Aisha Azeem
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
System Design & Software Architecture
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
Architectural Design.
Chapter 6 – Architectural Design Lecture 2 1Chapter 6 Architectural design.
Chapter 7: Architecture Design Omar Meqdadi SE 273 Lecture 7 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
©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.
Figure – Chapter 6. Figure 6.1 The architecture of a packing robot control system.
Architectural Design portions ©Ian Sommerville 1995 Establishing the overall structure of a software system.
1 5/18/2007ã 2007, Spencer Rugaber Software Architecture (Informal Definition) The organization of a system into component subsystems or modules Box and.
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.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Architectural Styles Part I Software Architecture Lecture 5.
Architectural Design lecture 10. Topics covered Architectural design decisions System organisation Control styles Reference architectures.
Database Design and Management CPTG /23/2015Chapter 12 of 38 Functions of a Database Store data Store data School: student records, class schedules,
Software Architecture and Patterns
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
Architectural Design Yonsei University 2 nd Semester, 2014 Sanghyun Park.
 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.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 11 Slide 1 Architectural Design.
CSC480 Software Engineering Lecture 10 September 25, 2002.
1 Object Oriented Logic Programming as an Agent Building Infrastructure Oct 12, 2002 Copyright © 2002, Paul Tarau Paul Tarau University of North Texas.
1 Lecture 3 Major Architectural Models View (Cont’d) Architectural Models/Patterns Architecture Case Study Software Architecture & Design Pattern.
Layered Systems Rahul Nabar CS 551 Fall ’02. Layered or Hierarchical Designs A layered system is organized hierarchically, each layer providing service.
SWA-1.1 CSE333 Software Architectures Chapter 2: Architectural Styles Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University.
Lecture VIII: Software Architecture
CS223: Software Engineering
Architectural Mismatch: Why reuse is so hard? Garlan, Allen, Ockerbloom; 1994.
Slide 1 Chapter 8 Architectural Design. Slide 2 Topics covered l System structuring l Control models l Modular decomposition l Domain-specific architectures.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Chapter 5:Architectural Design l Establishing the overall structure of a software.
Dr D. Greer, Queens University Belfast ) Software Engineering Chapter 7 Software Architectural Design Learning Outcomes Understand.
Software architecture
IS301 – Software Engineering Dept of Computer Information Systems
Software Design and Architecture
Part 3 Design What does design mean in different fields?
CHAPTER 2 CREATING AN ARCHITECTURAL DESIGN.
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 2 Database System Concepts and Architecture.
MANAGING DATA RESOURCES
Princess Nourah bint Abdulrahman University
Software Architecture
Chapter 6 – Architectural Design
Software Architecture Examples
Software models - Software Architecture Design Patterns
Programming Languages 2nd edition Tucker and Noonan
Coding Standards Or How to Pound all of your odd-shaped programmers into a one size fits all hole.
Chapter 5 Architectural Design.
Chapter 6: Architectural Design
Presentation transcript:

SWA-1.1 CSE300 Software Architectures Chapter 2: Architectural Styles Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut 191 Auditorium Road, Box U-155 Storrs, CT (860) Copyright © 2000 by S. Demurjian, Storrs, CT.

SWA-1.2 CSE300 Taxonomy of Architectural Styles  Data Flow Systems  Batch Sequential  Pipes and Filters  Call & Return Systems  Main/Subroutines (C, Pascal)  Object Oriented  Implicit Invocation  Hierarchical Systems  Virtual Machines  Interpreters  Rule Based Systems  Data Centered Systems   DBS   Hypertext   Blackboards  Independent Components   Communicating Processes/Event Systems  Client/Server   Two-Tier   Multi-Tier

SWA-1.3 CSE300 Taxonomy of Architectural Styles  Establish Framework of …  Components  Building Blocks for Constructing Systems  A Major Unit of Functionality  Examples Include: Client, Server, Filter, Layer, DB  Connectors  Defining the Ways that Components Interact  What are the Protocols that Mandate the Allowable Interactions Among Components?  How are Protocols Enforced at Run/Design Time?  Examples Include: Procedure Call, Event Broadcast, DB Protocol, Pipe

SWA-1.4 CSE300 Overall Framework Consider a Question-Based Approach  What Is the Design Vocabulary?  Connectors and Components  What Are Allowable Structural Patterns?  Constraints on Combining Components & Connectors  What Is the Underlying Conceptual Model?  Von Newman, Parallel, Agent, Etc.  What Are Essential Invariants of a Style?  Limits on Allowable Components & Connectors  Common Examples of Usage  Advantages and Disadvantages of a Style  Common Specializations of a Style

SWA-1.5 CSE300 Pipes and Filters  Filters:  Invariant: Unaware of up and Down Stream Behavior  Streamed Behavior: Output Could Go From One Filter to the Next One Allowing Multiple Filters to Run in Parallel. Sort Sort Merge Connectors for Flow Streams of I/O Components with Input and Output Components are Independent Entities. No Shared State!

SWA-1.6 CSE300 Pipes and Filters  Possible Specializations:  Pipelines - Linear Sequence  Bounded - Limits on Data Amounts  Typed Pipes - Known Data Format  What is a Classic Example?  Other Examples:  Compilers  Sequential Processes  Parallel Processes

SWA-1.7 CSE300 Pipes and Filters Another Example  Text Information Retrieval Systems  Scanning Newspapers for Key Words, Etc.  Also, Boolean Search Expressions User SearchController SearchDB QueryResolverTermComparator DiskController Commands Programming Control Result Data

SWA-1.8 CSE300 ADTs and OO Architectures  Widespread Usage in the 1990’s  Advantages Are Well Known  Disadvantages:  Interaction Required Object Identity  If Identity Changes, It Is Difficult to Track All Affected Objects. obj op Connectors Components

SWA-1.9 CSE300 Implicit Invocation  Similar to OO in the Sense that Components Can Call Services on Other Components  How Does this Work?  Components Have List of Events they can Raise and List of Procedures to Handle Events  When Event is Raised, it is Broadcast  All Components that Have Procedure to Handle Broadcast Event will Act Upon it  The Component That Raised the Event has no Knowledge of Which Component(s) will Handle Event  What are Some Examples?

SWA-1.10 CSE300 Implicit Invocation  Advantages  No Need to Know the Targeted Components  Single Event can Impact Multiple Components  New Event Handlers can Easily be Added  New Events Can then be Raised  Disadvantages  No Control Over the Order of Processing When an Event is Raised  No Control Over “Who” and “How Many” Process Events  Very Non-Deterministic System Behavior

SWA-1.11 CSE300 Layered Systems  Components - Virtual Machine at Each Layer  Connectors - Protocols That Specify How Layers Interact  Interaction Is Restricted to Adjacent Layers  Examples: ISO Layers:  Physical, Data Link, Network, Transport, Session, Presentation and Application Users Core level Base Utility Useful Systems

SWA-1.12 CSE300 Layered Systems  Advantages:  Increasing Levels of Abstraction  Support Enhancement - New Layers  Support for Reuse  Drawbacks:  Not Feasible for All Systems  Performance Issues With Multiple Layers  Defining Abstractions Is Difficult.

SWA-1.13 CSE300Repositories  Knowledge Sources Interact With the Blackboard.  Blackboard Contains the Problem Solving State Data.  Control Is Driven by the State of the Blackboard.  DB Systems Are a Form of Repository With a Layer Between the BB and the KSs - Supports  Concurrent Access, Security, Integrity, Recovery ks8 ks6 ks7 ks1 ks2 ks3 ks4ks5 Blackboard (shared data)

SWA-1.14 CSE300Interpreters  What Are Components and Connectors?  Where Have Interpreters Been Used in CS&E?  LISP, ML, Other Languages, OS Command Line Data (program state) Program being interpreted Simulated interpretation engine Internal interpreter state Inputs Outputs Selected instruction Selected data

SWA-1.15 CSE300 Process Control Paradigms  Also:  Open vs. Close Loop Systems  Well Defined Control and Computational Characters  Heavily Used in Engineering Fields. Process Controller Set point Set point Input variables Controlled variable Controlled variable  s to manipulated variables  s to manipulated variables Controller With Feedback Without Feedback

SWA-1.16 CSE300 Client/Server Single and Multi-Tier Architectures  Widespread use in Practice for All Types of Distributed Systems and Applications  Two Kinds of Components  Servers: Provide Services - May be Unaware of Clients  Web Servers (unaware?)  Database Servers and Functional Servers (aware?)  Clients: Request Services from Servers  Must Identify Servers  May Need to Identify Self  A Server Can be Client of Another Server

SWA-1.17 CSE300 Client/Server Single and Multi-Tier Architectures  Normally, Clients and Servers are Independent Processes Running in Parallel  Connectors Provide Means for Service Requests and Answers to be Passes Among Clients/Servers  Connectors May be RPC, RMI, etc.  Advantages  Parallelism, Independence  Separation of Concerns, Abstraction  Others?  Disadvantages  Complex Implementation Mechanisms  Scalability, Correctness, Real-Time Limits  Others?

SWA-1.18 CSE300 Example: Software Architectural Structure Initial Data Entry Operator (Scanning & Posting) MB Network Advanced Data Entry Operators Document Server Stored Images/CD Database Server Running Oracle RMI Registry Functional Server RMI Act. Obj/Server RMI Act. Obj/Server AnalystManager

SWA-1.19 CSE300 Business Process Model: Scanning and Initial Data Entry Scanner Licensing Division Scanning Operator Stored Images Basic Information Entered DB Completed Applications Historical Records Printer New Licenses New Appointments FOI Letters (Request Information, etc.) Licensing Division Data Entry Operator Supervisor Review DB

SWA-1.20 CSE300 Concluding Remarks  Architectural Styles Provide Patterns  Suppose Designing a New System  During Requirements Discovery, Behavior and Structure of System Will Emerge  Attempt to Match to Architectural Style  Modify, Extend Style as Needed  By Choosing Existing Architectural Style  Know Advantages and Disadvantages  Ability to Focus in on Problem Areas and Bottlenecks  Can Adjust Architecture Accordingly  Employ Large Memory, Multi-Processor for Database Server - Dedicated Computer