Informatics 43 – May 26, 2016.

Slides:



Advertisements
Similar presentations
1 SWE Introduction to Software Engineering Lecture 22 – Architectural Design (Chapter 13)
Advertisements

Lecture 23: Software Architectures
Application architectures
Software Architecture Patterns (2). what is architecture? (recap) o an overall blueprint/model describing the structures and properties of a "system"
Course Instructor: Aisha Azeem
System Design & Software Architecture
Informatics 43 – May 21, A quote from Piazza “This course is trying to teach you how to be a PM (product manager).”
1 CMPT 275 High Level Design Phase Architecture. Janice Regan, Objectives of Design  The design phase takes the results of the requirements analysis.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 07. Review Architectural Representation – Using UML – Using ADL.
Informatics 43 – May 26, The Design Phase of Software Development Something usually needs to be done after the user’s requirements are specified.
Unit 2 Architectural Styles and Case Studies | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS 1.
Chapter 1 Revealed Distributed Objects Design Concepts CSLA.
CS223: Software Engineering
Informatics 43 – May 24, The Design Phase of Software Development Something usually needs to be done after the user’s requirements are specified.
Application architectures. Objectives l To explain the organisation of two fundamental models of business systems - batch processing and transaction processing.
A PPLICATION ARCHITECTURES Chapter 13. O BJECTIVES To explain the organisation of two fundamental models of business systems - batch processing and transaction.
Lecture 6 – Architectural Design
Deployment Diagram.
Software Hardware refers to the physical devices of a computer system.
Software architecture
CompSci 280 S Introduction to Software Development
Chapter 6 – Architectural Design
CS 325: Software Engineering
Structure of a web application
Deployment Diagram.
Architectural Design.
N-Tier Architecture.
CSE 333 – Section 4 HW3, MVC, GTK+.
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
CS101 Introduction to Computing Lecture 19 Programming Languages
Distribution and components
Part 3 Design What does design mean in different fields?
The Client/Server Database Environment
CHAPTER 3 Architectures for Distributed Systems
Chapter 6 – Architectural Design
Chapter 6 – Architectural Design
Chapter 6 – Architectural Design
Programmable Logic Controllers (PLCs) An Overview.
Design and Maintenance of Web Applications in J2EE
Software Engineering Architectural Design Chapter 6 Dr.Doaa Samy
Chapter 6 – Architectural Design
Guide To UNIX Using Linux Third Edition
Model-View-Controller Patterns and Frameworks
CS 425/625 Software Engineering Architectural Design
Lecture 1: Multi-tier Architecture Overview
Web Application Architectures
Event Driven Programming
Software Architecture
Chapter 6 – Architectural Design
Chapter 6 – Architectural Design
D7032E – Software Engineering
Starting Design: Logical Architecture and UML Package Diagrams
Software models - Software Architecture Design Patterns
Chapter 5 Architectural Design.
Chapter 6 – Architectural Design
Chapter 6 – Architectural Design
CS385 T&D Software Engineering Dr.Doaa Sami Khafaga
An Introduction to Software Architecture
Operating Systems Lecture 3.
Web Application Architectures
Middleware, Services, etc.
Chapter 5 Architectural Design.
Web Application Architectures
ACM programming contest
Chapter 6 – Architectural Design
Call and return architectures
Chapter 6 – Architectural Design
Presentation transcript:

Informatics 43 – May 26, 2016

Architectural Styles and Patterns A named, commonly used set of Components – subsets of functionality (we are concerned with what a component does, not how it is implemented) – aka modules And Connections – function calls, shared memory, network traffic (message passing), sequencing, roles

Pipes and filters – Unix command example tr 'A-Z' 'a-z' <myfile.txt | tr -c 'a-z' '\n' | sort | uniq > w.txt tr “translate” uppercase to lower case tr turn everything except lowercase (‘-c’ means ‘complement’) to newline sort puts words in alphabetical order uniq gets rid of duplicates

myfile.txt: What I said, what SHE said, what she said I said!!! what i said, what she said, what she said i said!!! what i i i i said said said she what said what w.txt she said said said what she she she said what i what

Styles from last two lectures Client – Server Typically, the client and the server are separate computers that communicate over a network. 3-tier / n-tier A generalization of client-server. Each tier has one or more computers that communicate with adjacent tiers. Pipes and filters Each format of the input and output are the same for every filter, so the order of the filters can easily be rearranged.

Styles from last two lectures Event driven The system reacts to events (which usually come from outside the system. Layered Typically, the modules in the various layers are all on one computer. Modules on one layer are implemented by calling functions from the layer below.

Database-centric

Model View Controller Architecture View components present information to the user. Models store information and hold business rules. Controllers tell views and models to update.

Model View Controller Architecture Key benefits (from Ian Davis): Decouples model and view – one model can support multiple views. Decouples view and controller – can change the way a view responds to user input.

Model View Controller Architecture

Model View Controller Architecture

Model View Controller Architecture People interpret “Controller” in different ways.

Facebook has over 1 billion users!

Does Facebook only have one server?

Multiple servers. Why?

Facebook has LOTS and LOTS of servers. >180,000 servers across multiple data centers.

What do software architects do? Figure out non-functional requirements Figure out what the components should be and how they communicate – select and modify architectural styles. Instruct programmers Design tests Code (yes, software architects code)

Architectural Style Recap Client-Server n-tier (3-tier) Pipes and filters Event driven Layered Database centric Model View Controller (MVC) these are not completely distinct, these are not orthogonal, and they are not all addressing the same scale of software system

“Where do they find the time?” Clay Shirky: Cognitive Surplus Part 1: https://www.youtube.com/watch?v=AyoNHIl-QLQ Part 2: https://www.youtube.com/watch?v=jNCblGv0zjU