CS 5150 1 CS 5150 Software Engineering Lecture 13 System Architecture and Design 1.

Slides:



Advertisements
Similar presentations
DT228/3 Web Development WWW and Client server model.
Advertisements

CS 432 Object-Oriented Analysis and Design
8.
1 CS 502: Computing Methods for Digital Libraries Lecture 22 Web browsers.
1 © Wolfgang Pelz UML3 UML 3 Notations describe how to use reusable software. Package Component Deployment Node.
1 CS 501 Spring 2007 CS 501: Software Engineering Lecture 13 System Architecture and Design I.
1 CS 501 Spring 2007 CS 501: Software Engineering Lecture 14 System Architecture and Design 2.
Outline IS400: Development of Business Applications on the Internet Fall 2004 Instructor: Dr. Boris Jukic Server Side Web Technologies: Part 2.
1 CS 502: Computing Methods for Digital Libraries Lecture 22 Repositories.
1 CS 501 Spring 2006 CS 501: Software Engineering Lecture 13 System Architecture and Design I.
Introduction to Web Interface Technology (CSE2030)
Satzinger, Jackson, and Burd Object-Orieneted Analysis & Design
Component and Deployment Diagrams
CS CS 5150 Software Engineering Lecture 13 System Architecture and Design 1.
CS CS 5150 Software Engineering Lecture 13 System Architecture and Design 1.
Architecture, Deployment Diagrams, Web Modeling Elizabeth Bigelow CS-15499C October 6, 2000.
CS 432 Object-Oriented Analysis and Design
J2EE Java 2 Enterprise Edition. Relevant Topics in The Java Tutorial Topic Web Page JDBC orial/jdbc
1 CS 501 Spring 2006 CS 501: Software Engineering Lecture 14 System Architecture and Design 2.
12-1 © Prentice Hall, 2004 Chapter 12: Design Elements Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich, Jeffrey.
M.Sc. Course, Dept. of Informatics and Telecommunications, University of Athens S.Hadjiefthymiades “Web Application Servers” Basics on WAS WAS are necessary.
1 CS 501 Spring 2005 CS 501: Software Engineering Lecture 13 System Architecture and Design I.
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Quick Tour of the Web Technologies: The BIG picture LECTURE A bird’s eye view of the different web technologies that we shall explore and study.
INTRODUCTION TO WEB DATABASE PROGRAMMING
The Design Discipline.
Architecture Of ASP.NET. What is ASP?  Server-side scripting technology.  Files containing HTML and scripting code.  Access via HTTP requests.  Scripting.
Copyright © cs-tutorial.com. Introduction to Web Development In 1990 and 1991,Tim Berners-Lee created the World Wide Web at the European Laboratory for.
Jaeki Song ISQS6337 JAVA Lecture 16 Other Issues in Java.
An Introduction to Software Architecture
CS 360 Lecture 8.  The requirements describe the function of a system as seen by the client.  The software team must design a system that will meet.
10/6/2015 ©2007 Scott Miller, University of Victoria 1 2a) Systems Introduction to Systems Introduction to Software Systems Rev. 2.0.
4/2/03I-1 © 2001 T. Horton CS 494 Object-Oriented Analysis & Design Software Architecture and Design Readings: Ambler, Chap. 7 (Sections to start.
20-753: Fundamentals of Web Programming 1 Lecture 1: Introduction Fundamentals of Web Programming Lecture 1: Introduction.
HTML. Principle of Programming  Interface with PC 2 English Japanese Chinese Machine Code Compiler / Interpreter C++ Perl Assembler Machine Code.
MACIASZEK, L.A. (2001): Requirements Analysis and System Design. Developing Information Systems with UML, Addison Wesley Chapter 6 - Tutorial Guided Tutorial.
_______________________________________________________________________________________________________________ E-Commerce: Fundamentals and Applications1.
1 Welcome to CSC 301 Web Programming Charles Frank.
_______________________________________________________________________________________________________________ E-Commerce: Fundamentals and Applications1.
Database Systems: Design, Implementation, and Management Eighth Edition Chapter 14 Database Connectivity and Web Technologies.
1 MSCS 237 Overview of web technologies (A specific type of distributed systems)
Overview Web Session 3 Matakuliah: Web Database Tahun: 2008.
Implementation Diagrams
R R R CSE870: UML Component Diagrams Implementation Diagrams.
CS 501: Software Engineering
CS CS 5150 Software Engineering Lecture 13 System Architecture and Design 1.
1 CS 501 Spring 2005 CS 501: Software Engineering Lecture 14 System Architecture and Design 2.
CS 501: Software Engineering Fall 1999 Lecture 12 System Architecture III Distributed Objects.
1 CS 501 Spring 2008 CS 501: Software Engineering Lecture 13 System Architecture and Design I.
Object Oriented Analysis and Design 1 Chapter 9 From Design to Implementation  Implementation Model  Forward, Reverse, and Round-Trip Engineering  Mapping.
WEB SERVER SOFTWARE FEATURE SETS
1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 15 System Architecture and Design I.
CSC 520 – Advanced Object Oriented Programming, Fall, 2010 Thursday, October 14 Week 7, UML Diagrams
Lecture VIII: Software Architecture
CS223: Software Engineering Lecture 13: Software Architecture.
CS223: Software Engineering Lecture 14: Architectural Patterns.
Overview Web Technologies Computing Science Thompson Rivers University.
Database application development 1. Chapter 8 © 2013 Pearson Education, Inc. Publishing as Prentice Hall OBJECTIVES  Define terms  Explain three components.
1 LM 6 Database Applications Dr. Lei Li. Learning Objectives Explain three components of a client-server system Describe differences between a 2-tiered.
System Architecture CS 560. Project Design The requirements describe the function of a system as seen by the client. The software team must design a system.
R R R CSE870: UML Component Diagrams Implementation Diagrams.
CS 5150 Software Engineering Lecture 12 Software Architecture 1.
CX Introduction to Web Programming
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 2 Database System Concepts and Architecture.
System Architecture CS 560 Lecture 8.
Lecture 1: Multi-tier Architecture Overview
IMPORTANT NOTICE TO STUDENTS:
Software models - Software Architecture Design Patterns
An Introduction to Software Architecture
Database Architecture
Presentation transcript:

CS CS 5150 Software Engineering Lecture 13 System Architecture and Design 1

CS Course Administration First presentations October 12 to 14 Report due Friday at 11:00 p.m. Survey due Friday at 11:00 p.m. Test 2 Solutions not collected in class will be at reception at 301 College Avenue

CS Copyright and Work for Hire U. S. Code Title 17 § 201. Ownership of copyright (a) Initial Ownership.— Copyright in a work protected under this title vests initially in the author or authors of the work. The authors of a joint work are coowners of copyright in the work. (b) Works Made for Hire.— In the case of a work made for hire, the employer or other person for whom the work was prepared is considered the author for purposes of this title, and, unless the parties have expressly agreed otherwise in a written instrument signed by them, owns all of the rights comprised in the copyright.

CS System Architecture and Design The overall design of a system: Computers and networks (e.g., monolithic, distributed) Interfaces and protocols (e.g., http, ODBC) Databases (e.g., relational, distributed) Security (e.g., smart card authentication) Operations (e.g., backup, archiving, audit trails) Software environments (e.g., languages, source control tools) Testing frameworks

CS UML: System and Subsystem Modeling Subsystem model A grouping of elements that specifies what a part of a system should do. Component (UML definition) "A distributable piece of implementation of a system, including software code (source, binary, or executable) but also including business documents, etc., in a human system." A component can be thought of as an implementation of a subsystem.

CS UML Diagrams and Specifications For every subsystem, there is a choice of diagrams Choose the diagrams that best model the system and are clearest to everybody. In UML every diagram must have supporting specification The diagrams shows the relationships among parts of the system, but much, much more detail is needed to specify a system explicitly. For example, to specify a Web plug-in, at the very least, the specification should include the version of the protocols to be supported at the interfaces, options (if any), and implementation restrictions.

CS UML Notation: Component & Node orderform.java A component is a physical and replaceable part of a system that conforms to and provides the realization of a set of interfaces. Server A node is a physical element that exists at run time and represents a computational resource, e.g., a computer.

CS Components and Replaceability Components allow system to be assembled from binary replaceable elements A component is bits not concepts A component can be replaced by any other component(s) that conforms to the interfaces A component is part of a system A component provides the realization of a set of interfaces

CS Components and Classes Components may live on nodes. Classes represent logical abstractions. They may be grouped into packages. Classes have attributes and operations directly. Components have operations that are reachable only through interfaces.

CS Example: Simple Web System Web server Web browser Static pages from server All interaction requires communication with server

CS Deployment Diagram WebBrowser PersonalComp WebServer DeptServer components nodes

CS Component Diagram: Interfaces WebBrowserWebServer HTTP dependency interface realization

CS UML Notation: Application Programming Interface (API) API is an interface that is realized by one or more components. WebServer GetPost

CS Architectural Styles An architectural style is system architecture that recurs in many different applications. See: Mary Shaw and David Garlan, Software architecture: perspectives on an emerging discipline. Prentice Hall, 1996

CS Architectural Style: Pipe Example: A three-pass compiler Parser Lexical analysis Code generation Output from one subsystem is the input to the next.

CS Architectural Style: Client/Server Web example: Serving static pages Firefox client Apache server The control flows in the client and the server are independent. communication between client and server follows a protocol. In a peer-to-peer architecture, the same component acts as both a client and a server.

CS System Architecture Example: Extensibility in Web Browsers Web browsers provide a flexible user interface through an extensible architecture Protocols: HTTP, FTP, etc., proxies Data types: helper applications, plug-ins, etc. Executable code: Server-side code, e.g., servlets, CGI JavaScript at client, etc. Style sheets: CSS, etc.

CS Web User Interface: Application Server Web browser Server-side code can configure pages, access data, validate information, etc. All interaction requires communication with server Data Server

CS Architectural Style: Three Tier Architecture Web example: Serving dynamic pages Each of the tiers can be replaced by other components that implement the same interfaces Presentation tier Application tier Database tier

CS UML Notation: Component Diagram ApacheFirefox HTTP ODBC MySQL These components might be located on a single node

CS Three tier architecture: Broadcast searching User interface service User Databases This is an example of a multicast protocol. The primary difficulty is to avoid troubles at one site degrading the entire system (e.g., every transaction cannot wait for a system to time out).

CS Web User Interface: JavaScript Data Server Web browser JavaScripts can process information locally Some interactions are local Functions are constrained by web protocols Java Script html

CS UML Notation: Package A package is a general-purpose mechanism for organizing elements into groups. Note: Some authors draw packages with a different shaped box: JavaScript

CS Example: Web Browser HTTP JavaScript HTMLRender Each package represents a group of classes. WebBrowser

CS Web User Interface: Applet Any server Web server Web browser Any executable code can run on client Client can connect to any server Functions are constrained by capabilities of browser Applets

CS Applet Interfaces WebBrowserWebServer HTTP XYZServer XYZInterface

CS Architectural Style: Repository Repository Input components Transactions Advantages: Flexible architecture for data-intensive systems. Disadvantages: Difficult to modify repository since all other components are coupled to it.

CS Architectural Style: Repository with Storage Access Layer Data Store Input components Transactions Advantages: Data Store subsystem can be changed without modifying any component except the Storage Access. Storage Access This is sometimes called a "glue" layer Repository

CS Systems Architecture for Distributed Data: Replication Replication Several copies of the data are held in different locations. Mirror: Complete data set is replicated Cache: Dynamic set of data is replicated (e.g., most recently used) With replicated data, the biggest problems are concurrency and consistency.