Lecture VIII: Software Architecture

Slides:



Advertisements
Similar presentations
Chapter 10 Architectural Design.
Advertisements

Lecturer: Sebastian Coope Ashton Building, Room G.18 COMP 201 web-page: Lecture.
Lecture 23: Software Architectures
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
SWE Introduction to Software Engineering
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.
1 / 26 CS 425/625 Software Engineering Architectural Design Based on Chapter 11 of the textbook [SE-8] Ian Sommerville, Software Engineering, 8t h Ed.,
Architectural Design, Distributed Systems Architectures
Course Instructor: Aisha Azeem
Software Architecture – Pipe and Filter Model
Chapter 6: Architectural Design
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
Architectural Design.
Software Architecture
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.
CS451 Lecture 13: Architectural Design Chapter 10
Chap 8. Architectural Design
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.
Figure – Chapter 6. Figure 6.1 The architecture of a packing robot control system.
Architectural Design, Distributed Systems Architectures
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.
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.
©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.
Chapter 6 Architectural Design.
CE Operating Systems Lecture 3 Overview of OS functions and structure.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
CS.436 Software Engineering By Ajarn..Sutapart Sappajak,METC,MSIT Chapter 8 Architectural Design Slide 1 1 Chapter 8 Architectural Design.
 Repository Model  Client-Server Model  Layered Model  Modular decomposition styles  Object Models  Function Oriented Pipelining  Control Styles.
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.
CPSC 871 John D. McGregor Module 3 Session 1 Architecture.
Chapter 6 – Architectural Design Lecture 1 1Chapter 6 Architectural design.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 11 Slide 1 Architectural Design.
Chapter 7: Architectural Design Chapter 11 in textbook 1.
CSC480 Software Engineering Lecture 10 September 25, 2002.
©Ian Sommerville, Robin Abraham 2004CS 361, Summer 2004 Slide 1 Architectural Design.
Layered Systems Rahul Nabar CS 551 Fall ’02. Layered or Hierarchical Designs A layered system is organized hierarchically, each layer providing service.
CS223: Software Engineering
CS223: Software Engineering Lecture 14: Architectural Patterns.
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 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
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?
Princess Nourah bint Abdulrahman University
Software Architecture
Architectural Design.
Software models - Software Architecture Design Patterns
ICS 52: Introduction to Software Engineering
Chapter 6 – Architectural Design
Presentation transcript:

Lecture VIII: Software Architecture CS 4593 Cloud-Oriented Big Data and Software Engineering

Today’s class Software Architecture 2 What is software architecture Why software architecture Software architecture styles 2

What is software architecture Software architecture is the structure of a software system – like the blue prints in building architecture Software components Details (data structure and algorithms) hidden Relationships among the components Relations can be vague Data flows Control flows Dependencies 3

Why software architecture? Software becomes larger and larger 500 lines of code: just write it 5,000 lines of code: maybe class diagram (data flow diagram for non OO approaches) 500,000 lines of code: software architecture 4

A simple class diagram 5

A class diagram with 300 classes 6

So we need higher level abstraction Consider higher level concepts in architecture : components For OO approach, components are usually a collection of classes Consider the bookstore project: For a small book store: books, shelves, clerks But for barnes&noble: book storage, ads, finance, online stores, readers, bookstore is one component 7

Software Architectural Design Usually used for large software projects and software frameworks Early phase design Important for task assignment At a higher level than class diagrams Components and their relationship Interface can be vague at first 8

Software Architectural Design Usually done by a small number of high-level people It can be both technical and artistic Experience and creativity can be major factors It is not something you can learn well from the book But there is something to learn about it 9

Software architecture styles Something like architecture styles for buildings Certain way to organize components and their relationships Can be reused in different software Use different architecture styles according to the usages of software 10

Architecture styles Stadium 11

Architecture styles Stations and airports 12

Architecture styles Skyscrapers Why no skyscrapers looking like a stadium? 13

Some times people try new styles… 14

Why Software architecture styles Easier to do high level design Barnes&Noble example Consider an architecture like this: 15

Why Software architecture styles Actually, most such information systems has an architecture like this, why? Application Service Data 16

Why Software architecture styles Reduce high level design risks People may have tried different styles and found this best (It is not as obvious as for buildings) The drawbacks of commonly used architectures are well studied You may try new ones: But not until you are a really good architect

Popular architecture styles Pipe and Filter Layered Repository

Pipe and Filter 19 A defined series of independent computations Performed for data transformation A component reads streams of data on its inputs and produces streams of data on its outputs 19

Pipe and Filter 20

Pipe and Filter: Structure Components: filter Perform changes on the data input and generate output Computation can be done with part of input, so that it can start before accepting all inputs Connectors: pipe Simply data transfer between filters

Pipe and Filter: Characteristic Filters do not share state with other filters Filters do not know the identity of their upstream or downstream filters The correctness of the output of a pipe and filter network shall not depend on the order in which their filters perform their incremental processing 22

Pipe and Filter Examples Unix Shell Scripts: provides a notation for connecting Unix processes via pipes. e.g., cat file | grep err | wc Compilers: the phases in the pipeline include: Lexical analysis Parsing Semantic analysis Code generation 23

Pipe and Filter - Advantages Easy to understand the overall input/output behavior of a system as a simple composition of the behaviors of the individual filters They support reuse, since any two filters can be hooked together, provided they agree on the data that is being transmitted between them 24

Pipe and Filter - Advantages Systems can be easily maintained and enhanced, since new filters can be added to existing systems and old filters can be replaced by improved ones The naturally support concurrent execution: map-reduce is actually pipe and filter architecture 25

Pipe and Filter - Disadvantages Not good for handling reactive systems, because of their transformational character Excessive parsing and un-parsing leads to loss of performance and increased complexity in writing the filters themselves 26

Layered Style 27 The system is divided to multiple layers Each layer provides service to the layer above it and serves as a client to the layer below it Each layer may have multiple components, these components usually do not interact much with each other 27

Layered Style 28

Layered Style: Structure Components: are typically collections of procedures Connectors: the layer margin, are typically procedure calls under restricted visibility Layer Communication Rules: Usually a component will talk only with the layer just beneath it Only carefully selected procedures from the inner layers are made available (exported) to their adjacent outer layer 29

Layered Style Examples Operating Systems Unix Windows Android …(almost any) Distributed Information Systems Web applications Data/Logic/Appearance 30

Layered Style Advantages Design: based on increasing levels of abstraction Maintainability: changes to the function of one layer affects at most two other layers Reuse: different implementations (with identical interfaces) of the same layer can be used interchangeably 31

Layered Style Disadvantages Not all systems are easily structured in a layered fashion Performance requirements may force the coupling of high-level functions to their lower-level implementations 32

Repository Style Suitable for applications in which the central issue is establishing, augmenting, and maintaining a complex central body of information Typically the information must be manipulated in a variety of ways Often long-term persistence of information is required 33

Repository Style 34

Repository Style: Structure Components: A central data structure representing the correct state of the system A collection of independent components that operate on the central data structure Connectors: Typically procedure calls or direct memory accesses 35

Repository Style: Characteristics Components only interact with the repository All components can access the repository The repository controls and manages the access to its data 36

Repository Style Examples Programming Environments Graphical Editors AI Knowledge Bases 37

Repository Style Advantages Efficient way to store large amounts of data Sharing model is published as the repository schema Centralized management: backup security concurrency control 38

Repository Style Disadvantages Must agree on a data model a prior Difficult to distribute data Data evolution is expensive 39

Thanks! 40