Professorial kvetches

Slides:



Advertisements
Similar presentations
Lecturer: Sebastian Coope Ashton Building, Room G.18 COMP 201 web-page: Lecture.
Advertisements

18 October Team Meetings  All team meetings for this week are cancelled (If you WANT to meet, I will)  Beginning next week, demo required at EVERY.
Object Oriented System Development with VB .NET
Patterns Design 13 February.
Design 15 February. Software Engineering: Elaborated Steps Concept (contract, intro on web site) Requirements (use cases, requirements) Architecture Design.
Developed by Reneta Barneva, SUNY Fredonia Component Level Design.
Course Instructor: Aisha Azeem
(from Diane Pozefsky). Requirements to Product 1. You understand what you want to build 2. Model the real world in software 3. Choose an architecture.
System Design & Software Architecture
18 September Requirements to Product 1. You understand what you want to build 2. Model the real world in software 3. Choose an architecture to.
UNIT-V The MVC architecture and Struts Framework.
Lecture 9 Architectures and Frameworks
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.
26 February Humpty Dumpty Presentations Software Architecture (cont)
System Models, Patterns and Software Architectures 14 February.
Diane Pozefsky. Requirements to Product 1. You understand what you want to build 2. Model the real world in software 3. Choose an architecture to do it:
CHAPTER TEN AUTHORING.
1 CMPT 275 High Level Design Phase Modularization.
World Wide Web “WWW”, "Web" or "W3". World Wide Web “WWW”, "Web" or "W3"
Lecture 18: Object-Oriented Design
ANU comp2110 Software Design lecture 8 COMP2110 Software Design in 2004 lecture 8 Software Architecture 1 of 2 (design, lecture 3 of 6) Goal of this small.
Lecture VIII: Software Architecture
CS223: Software Engineering
A PPLICATION ARCHITECTURES Chapter 13. O BJECTIVES To explain the organisation of two fundamental models of business systems - batch processing and transaction.
1 Chapter 1 INTRODUCTION TO WEB. 2 Objectives In this chapter, you will: Become familiar with the architecture of the World Wide Web Learn about communication.
4.01 How Web Pages Work.
CIS 375 Bruce R. Maxim UM-Dearborn
J2EE Platform Overview (Application Architecture)
Software Engineering Modern Approaches
Software architecture
Chapter 2: Database System Concepts and Architecture - Outline
The Movement To Objects
Chapter 2 Database System Concepts and Architecture
The Client/Server Database Environment
IS301 – Software Engineering Dept of Computer Information Systems
SOFTWARE DESIGN AND ARCHITECTURE
Introduction to Design Patterns
Distribution and components
Part 3 Design What does design mean in different fields?
The Client/Server Database Environment
COMP2110 Software Design in 2004 lecture 09 High level design
Chapter 9: The Client/Server Database Environment
CHAPTER 3 Architectures for Distributed Systems
Hierarchical Architecture
Introduction to J2EE Architecture
CHAPTER 2 CREATING AN ARCHITECTURAL DESIGN.
#01 Client/Server Computing
Ch > 28.4.
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 2 Database System Concepts and Architecture.
Chapter 2: Database System Concepts and Architecture
Data, Databases, and DBMSs
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
Model-View-Controller Patterns and Frameworks
Frameworks And Patterns
Software Architecture
Chapter 20 Object-Oriented Analysis and Design
Architectural Design.
World Wide Web “WWW”, "Web" or "W3". World Wide Web “WWW”, "Web" or "W3"
Object oriented analysis and design
Software Design Lecture : 15.
An Introduction to Software Architecture
World Wide Web “WWW”, "Web" or "W3". World Wide Web “WWW”, "Web" or "W3"
The Database Environment
Software Engineering System Modeling Chapter 5 (Part 1) Dr.Doaa Sami
Chapter 5 Architectural Design.
Appendix A Object-Oriented Analysis and Design
4.01 How Web Pages Work.
Chapter 6: Architectural Design
#01 Client/Server Computing
Presentation transcript:

Professorial kvetches

Software Architectures

Software Architecture What is an architecture? External view What does that mean for software? Two definitions User interface (product architecture) Highest level design (software architecture)

Software Architecture Goals Extensibility: adding new features Tradeoff of generality and time How might it be extended? Changeability: requirements changes Simplicity: ease of understanding and implementing Efficiency: speed and size

Key Characteristics Cohesion Coupling Min-max problem: degree to which communication takes place within the module Coupling degree to which communication takes place between modules Min-max problem: minimize coupling; maximize cohesion

Categorizing Software Architectures (Shaw and Garlan) Model-View-Controller Data flows Viewed as data flowing among processes Independent components Components operating in parallel and communicating occasionally Virtual machines Treats an application as a program written in a special-purpose language Layered architectures Packages of function with a strong hierarchical uses relationship Repository Application built around data

Why Categorize? Recognize patterns Reuse designs Learn from other similar applications Reuse classes Simplify communication

Examples of Use (real quotes) … is based on the client-server model and uses remote procedure calls ... Abstraction layering and system decomposition provide the appearance of system uniformity to clients … The architecture encourages a client server model … We have chosen a distributed, object-oriented approach The easiest way … is to pipeline the execution …

Well-known Architectures Model-View Controller Data flows Independent components Virtual machines Layered architectures Repository

Model-View-Controller Originally designed for SmallTalk Early OO language (1970’s) Steve Burbeck, 1987 early paper

Data Flow Design Data flowing among processes Two categories: Pipes and filters Filters: processes Pipes: input streams Batch sequential Pipe and filter where input streams are batches of data filter filter filter pipe filter filter filter filter filter filter filter filter filter filter filter filter pipe filter filter filter pipe Collect mortgage funds Account balances Mortgage pool Unsecured unsecured funds

Independent Components operating in parallel communicating occasionally Different types Client-server Parallel communicating processes Event systems Service Oriented Architecture Client-server Browser-web server most familiar example Separate systems with narrow interface Sometimes expanded to three tiers (why?) Façade pattern (single unified interface) Parallel communicating processes Several processes executing at the same time Typically modeled with sequence diagrams Observer pattern (one-to-many dependencies) Event systems Set of components waiting for input Example: word processor waiting for user input State transition diagrams State pattern (alter behavior depending on state) Service Oriented Architecture

Client-Server and Facade Façade «exposed» Browser-web server most familiar example: Separate systems with narrow interface 1 Client 2 Key concept: limit exposed interface «not exposed» «not exposed» P «not exposed» «not exposed» «not exposed» Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Parallel Communicating Processes Session: session m Session: session k Account: customer n checking Customer: customer n actions Customer: customer n+1 create Account: customer n+1 saving retrieve create retrieve deposit withdraw Duration of process 3 types of processes, 2 instances of each sequence diagram Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Observer Design Pattern Client of this system Single source of data with a number of clients that need to be updated 1..n 1 Request others be notified Source notify() Observer update() 2 Notify all observers ConcreteObserver observerState update() ConcreteSubject state Determines if change needed 3 Gamma et al

Event Systems and State Transition Diagrams Set of components waiting for input Set of components waiting for input

Services Oriented Architecture Collection of services Direct communication Coordinating service Different technologies Early ones: DCOM CORBA (brokers) Web Services Lots of different models and tools: REST (REpresentational State Transfer using HTTP just one)

Virtual machines Treats an application as a program written in a special language Payoff is that the interpreter code is the basis for multiple applications Two types Interpreters (JVM) Rule-based systems (AI)

Layered Architecture: Network OSI TCP/IP

Repository A system built around data Two types Databases Hypertext systems

A Typical Repository System Database DBMS GUI Analysis process 1 n …... Control Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Hypertext: Basis of the Web Motivated by Vannevar Bush in 1945 “As We May Think” (Atlantic Monthly) Theoretical machine, "memex," to enhance human memory by allowing the user to store and retrieve documents linked by associations Invented by Ted Nelson in the 1960s Popularized with HTML (Tim Berners-Lee)

Ted Nelson "If computers are the wave of the future, displays are the surfboards." Xanadu: 1974 "give you a screen in your home from which you can see into the world's hypertext libraries... offer high-performance computer graphics and text services at a price anyone can afford... allow you to send and receive written messages... [and] make you a part of a new electronic literature and art, where you can get all your questions answered...“ Computer Lib/Dream Machines For more details, see pdf

Summary Model-View-Controller Web application Data flow systems Pipes and filters Batch sequential Independent components Client-server Parallel communicating processes Event systems Service Oriented Architecture Virtual machines Interpreters Rule-based systems Layered architectures Repositories Databases Hypertext systems

Examples from Prior Years

Virtual Reality for Stroke Patients

Wireless Deployment

What is Your Architecture? 10 minute discussion and 1 minute presentation

Frameworks

What is a Framework? Infrastructure to avoid programming pain Allows user to override Really no different than “packages” or “libraries” or “platform”

Thursday Discussion Each team is to do some homework on a framework to allow concrete discussion No written assignment or deliverable CHOOSE Be prepared with Language, platform, intended use, benefits, drawbacks