Lecture 23: Software Architectures

Slides:



Advertisements
Similar presentations
Chapter 13 Review Questions
Advertisements

Architectural patterns1. 2 Patterns Architectural patterns –Fundamental structural organization for software systems. –High-level subdivision of the system.
Lecturer: Sebastian Coope Ashton Building, Room G.18 COMP 201 web-page: Lecture.
Architectural Styles. Definitions of Architectural Style  Definition. An architectural style is a named collection of architectural design decisions.
Software Architecture Design Instructor: Dr. Jerry Gao.
CS 501: Software Engineering Fall 2000 Lecture 16 System Architecture III Distributed Objects.
Introduction to Software Engineering Lecture 6 André van der Hoek.
Applying Architectural Styles and Patterns
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.
Architectural patterns1. 2 Patterns Architectural patterns –Fundamental structural organization for software systems. –High-level subdivision of the system.
Course Instructor: Aisha Azeem
System Design & Software Architecture
1 Architectural Patterns Yasser Ganji Saffar
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
Chapter 6 – Architectural Design Lecture 2 1Chapter 6 Architectural design.
The Design Discipline.
Chapter 7: Architecture Design Omar Meqdadi SE 273 Lecture 7 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Topic 7Summer ICS 52: Introduction to Software Engineering Lecture Notes for Summer Quarter, 2003 Michele Rousseau Topic 7 Partially based on lecture.
©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.
Database Architecture Introduction to Databases. The Nature of Data Un-structured Semi-structured Structured.
Architectural Design portions ©Ian Sommerville 1995 Establishing the overall structure of a software system.
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.
Architectural Design To explain the advantages and disadvantages of different distributed systems architectures To discuss client-server and distributed.
©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.
Software Architectural Styles Andrew Midwinter, Mark Mullen, Kevin Wong, Matt Jones 1.
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 10/24/2015ICS 413 – Software Engineering1.
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
CPSC 372 John D. McGregor Module 3 Session 1 Architecture.
Unit 2 Architectural Styles and Case Studies | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS 1.
John D. McGregor Class 4 – Initial decomposition
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 system architecture 1 after designing to meet functional requirements, design the system.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 13. Review Shared Data Software Architectures – Black board Style architecture.
Chapter 6 – Architectural Design Lecture 1 1Chapter 6 Architectural design.
1 Lecture 3 Major Architectural Models View (Cont’d) Architectural Models/Patterns Architecture Case Study Software Architecture & Design Pattern.
REST By: Vishwanath Vineet.
Lecture VIII: Software Architecture
CS223: Software Engineering
CS223: Software Engineering Lecture 14: Architectural Patterns.
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.
BZUPAGES.COMSoftware Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Chapter 5:Architectural Design l Establishing the overall structure of a software.
IS301 – Software Engineering Dept of Computer Information Systems
SOFTWARE DESIGN AND ARCHITECTURE
Software Engineering Architectural Design Chapter 6 Dr.Doaa Sami
Software Design and Architecture
Part 3 Design What does design mean in different fields?
Chapter 6 – Architectural Design
Software Engineering Architectural Design Chapter 6 Dr.Doaa Samy
Software Architecture
Princess Nourah bint Abdulrahman University
Layered Style Examples
Software Architecture
Chapter 6 – Architectural Design
Software models - Software Architecture Design Patterns
Chapter 5 Architectural Design.
SOEN 343 Software Design Computer Science and Software Engineering Department Concordia University Fall 2004 Instructor: Patrice Chalin.
Chapter 5 Architectural Design.
Chapter 6 – Architectural Design
Presentation transcript:

Lecture 23: Software Architectures Architectural Styles Pipe and filter Object oriented: Client-Server; Object Broker Event based Layered: Designing Layered Architectures Repositories: Blackboard, MVC Process control

Pipe-and-filter Examples: Interesting properties: pipe pipe filter Source: Adapted from Shaw & Garlan 1996, p21-2. See also van Vliet, 1999 Pp266-7 and p279 pipe pipe filter filter pipe pipe filter filter pipe pipe filter pipe pipe filter pipe Examples: UNIX shell commands Compilers: Lexical Analysis -> parsing -> semantic analysis -> code generation Signal Processing Interesting properties: filters don’t need to know anything about what they are connected to filters can be implemented in parallel behaviour of the system is the composition of behaviour of the filters specialized analysis such as throughput and deadlock analysis is possible

Object Oriented Architectures Source: Adapted from Shaw & Garlan 1996, p22-3. method invocation method invocation object object object object method invocation object method invocation Examples: abstract data types Interesting properties data hiding (internal data representations are not visible to clients) can decompose problems into sets of interacting agents can be multi-threaded or single thread Disadvantages objects must know the identity of objects they wish to interact with

Variant 1: Client Server method invocation client method invocation Server method invocation Interesting properties Is a special case of the previous pattern object oriented architecture Clients do not need to know about one another Disadvantages Client objects must know the identity of the server

Variant 2: Object Brokers client server client server broker client Interesting properties Adds a broker between the clients and servers Clients no longer need to know which server they are using Can have many brokers, many servers. Disadvantages Broker can become a bottleneck Degraded performance

Broker Architecture Example

Event based (implicit invocation) Source: Adapted from Shaw & Garlan 1996, p23-4. See also van Vliet, 1999 Pp264-5 and p278 announce event agent agent broadcast medium listen for event broadcast medium agent listen for event announce event agent Examples debugging systems (listen for particular breakpoints) database management systems (for data integrity checking) graphical user interfaces Interesting properties announcers of events don’t need to know who will handle the event Supports re-use, and evolution of systems (add new agents easily) Disadvantages Components have no control over ordering of computations

Layered Systems Examples Interesting properties Disadvantages Source: Adapted from Shaw & Garlan 1996, p25. See also van Vliet, 1999, p281. application layer kernal utilities users kernal Examples Operating Systems communication protocols Interesting properties Support increasing levels of abstraction during design Support enhancement (add functionality) and re-use can define standard layer interfaces Disadvantages May not be able to identify (clean) layers

Variant: 3-layer data access Presentation layer Appl’n Views Java AWT Application Logic layer objects Contol Business logic Storage layer DBMS Query Engine File Mgmnt

Open vs. Closed Layered Architecture closed architecture each layer only uses services of the layer immediately below; Minimizes dependencies between layers and reduces the impact of a change. open architecture a layer can use services from any lower layer. More compact code, as the services of lower layers can be accessed directly Breaks the encapsulation of layers, so increase dependencies between layers Layer N Layer N-1 Layer 2 Layer 1 Layer N Layer N-1 Layer 2 Layer 1

How many layers? 2-layers: 3-layers: 4-layers: Partitioned 4-layers Application (client) Database (server) 2-layers: application layer database layer e.g. simple client-server model 3-layers: separate out the business logic helps to make both user interface and database layers modifiable 4-layers: Separates applications from the domain entities that they use: boundary classes in presentation layer control classes in application layer entity classes in domain layer Partitioned 4-layers identify separate applications Presentation layer (user interface) Business Logic Database Presentation layer (user interface) Applications Domain Entities Database UI1 UI2 UI3 UI4 App1 App2 App3 App4 Domain Entities Database

Repositories Examples Interesting properties Disadvantages agent agent Source: Adapted from Shaw & Garlan 1996, p26-7. See also van Vliet, 1999, p280 agent agent blackboard (shared data) agent agent agent agent Examples databases blackboard expert systems programming environments Interesting properties can choose where the locus of control is (agents, blackboard, both) reduce the need to duplicate complex data Disadvantages blackboard becomes a bottleneck

Variant: Model-View-Controller propagate propagate access access controller controller model update update Properties One central model, many views (viewers) Each view has an associated controller The controller handles updates from the user of the view Changes to the model are propagated to all the views

Model View Controller Example

MVC Component Interaction

Source: Adapted from Shaw & Garlan 1996, p27-31. Process Control Source: Adapted from Shaw & Garlan 1996, p27-31. input variables sensors control parameters controller manipulated variables process controlled variables actuators Examples aircraft/spacecraft flight control systems controllers for industrial production lines, power stations, etc. chemical engineering Interesting properties separates control policy from the controlled process handles real-time, reactive computations Disadvantages Difficult to specify the timing characteristics and response to disturbances