CS 5150 So(ware Engineering System Architecture



Similar documents
CS 5150 So(ware Engineering System Architecture: Introduc<on

Software Engineering

Decomposition into Parts. Software Engineering, Lecture 4. Data and Function Cohesion. Allocation of Functions and Data. Component Interfaces

Communications and Networking

Software design (Cont.)

Powerful Management of Financial Big Data

A distributed system is defined as

architecture: what the pieces are and how they fit together names and addresses: what's your name and number?

Advanced Analysis and Design

Building Reliable, Scalable AR System Solutions. High-Availability. White Paper

Software Architecture Document

MEASURING WORKLOAD PERFORMANCE IS THE INFRASTRUCTURE A PROBLEM?

Information Systems Analysis and Design CSC John Mylopoulos. Software Architectures Information Systems Analysis and Design CSC340

SAN Conceptual and Design Basics

1. The Web: HTTP; file transfer: FTP; remote login: Telnet; Network News: NNTP; SMTP.

Scaling Progress OpenEdge Appservers. Syed Irfan Pasha Principal QA Engineer Progress Software

Chapter 6 Essentials of Design and the Design Activities

Frequently Asked Questions. Secure Log Manager. Last Update: 6/25/ Barfield Road Atlanta, GA Tel: Fax:

Secure Software Programming and Vulnerability Analysis

Architecture. Reda Bendraou

The Role of the Software Architect

Exam 1 Review Questions

Networked Virtual Spaces and Clouds. Magda El Zarki UC Irvine

White Paper: Establishing a Configuration Management Database Schema: A Working Model

Chapter 2 Database System Concepts and Architecture

CSE 544 Principles of Database Management Systems. Magdalena Balazinska (magda) Winter 2009 Lecture 1 - Class Introduction

Network Address Translation (NAT) Adapted from Tannenbaum s Computer Network Ch.5.6; computer.howstuffworks.com/nat1.htm; Comer s TCP/IP vol.1 Ch.

Internet Concepts. What is a Network?

Computer Networks/DV2 Lab

Energy Management Web-based embedded solution for monitoring of distributed conventional energy applications Type Em 2 -Server

This presentation provides an overview of the architecture of the IBM Workload Deployer product.

Data Management in the Cloud: Limitations and Opportunities. Annies Ductan

1.0 Hardware Requirements:

Virtual machine interface. Operating system. Physical machine interface

Socket = an interface connection between two (dissimilar) pipes. OS provides this API to connect applications to networks. home.comcast.

A Case Study in the Design of a Restaurant Management System

Hybrid Development Methodology for Client-Server Applications

EXHIBIT A. Fleet Management Software - INTEGRATION- Technical and Functional Specifications Checklist

Resource Utilization of Middleware Components in Embedded Systems

Internet Engineering: Web Application Architecture. Ali Kamandi Sharif University of Technology Fall 2007

Weighted Total Mark. Weighted Exam Mark

DFSgc. Distributed File System for Multipurpose Grid Applications and Cloud Computing

How to Build an E-Commerce Application using J2EE. Carol McDonald Code Camp Engineer

OpenFlow Based Load Balancing

Trends in Application Recovery. Andreas Schwegmann, HP

Exploiting Remote Memory Operations to Design Efficient Reconfiguration for Shared Data-Centers over InfiniBand

GROUPWARE. Ifeoluwa Idowu

Chapter 2 TOPOLOGY SELECTION. SYS-ED/ Computer Education Techniques, Inc.

Beyond Lambda - how to get from logical to physical. Artur Borycki, Director International Technology & Innovations

CS 5150 So(ware Engineering Project Management

IT Architecture Review. ISACA Conference Fall 2003

Software Life-Cycle Management

PART OF THE PICTURE: The TCP/IP Communications Architecture

Computer Networks. Examples of network applica3ons. Applica3on Layer

Avamar Backup and Data De-duplication Exam

Engineering Design. Software. Theory and Practice. Carlos E. Otero. CRC Press. Taylor & Francis Croup. Taylor St Francis Croup, an Informa business

System Requirement Specifications (SRS)

Objectives. Distributed Databases and Client/Server Architecture. Distributed Database. Data Fragmentation

High Availability Databases based on Oracle 10g RAC on Linux

Application-layer protocols

MCSE Core exams (Networking) One Client OS Exam. Core Exams (6 Exams Required)

Web Development. Owen Sacco. ICS2205/ICS2230 Web Intelligence

Deploying a distributed data storage system on the UK National Grid Service using federated SRB

Interoperable Cloud Storage with the CDMI Standard

Redpaper. Performance Metrics in TotalStorage Productivity Center Performance Reports. Introduction. Mary Lovelace

Traditionally, a typical SAN topology uses fibre channel switch wiring while a typical NAS topology uses TCP/IP protocol over common networking

Scaling 10Gb/s Clustering at Wire-Speed

Introducing STAR-GATE Enhancements for Packet Cable Networks

Software Architecture Document

Load Balancing Web Applications

Oracle Primavera P6 Enterprise Project Portfolio Management Performance and Sizing Guide. An Oracle White Paper October 2010

What is a Firewall? A choke point of control and monitoring Interconnects networks with differing trust Imposes restrictions on network services

HP and Mimosa Systems A system for archiving, recovery, and storage optimization white paper

Top 5 Reasons to Upgrade to edocs DM 5.3

KWIC Exercise. 6/18/ , Spencer Rugaber 1

IBM Tivoli Storage Manager Version Introduction to Data Protection Solutions IBM

Internet Infrastructure Measurement: Challenges and Tools

Web Technologies: RAMCloud and Fiz. John Ousterhout Stanford University

Case Study. Developing an. Enterprise-wide Architecture. within. Insurance Australia Group

Paul Zenden Sioux Technische Software Ontwikkeling Science Park Eindhoven EP Son Tel: +31 (0)

Chap 1. Introduction to Software Architecture

Symantec Endpoint Protection 11.0 Architecture, Sizing, and Performance Recommendations

Architecture Design & Sequence Diagram. Week 7

Architectural Patterns: From Mud to Structure

SHORT DESCRIPTION OF THE PROJECT...3 INTRODUCTION...4 MOTIVATION...4 Session Initiation Protocol (SIP)...5 Java Media Framework (JMF)...

Computer Networks & Security 2014/2015

Centralized logging system based on WebSockets protocol

PORTrockIT. Spectrum Protect : faster WAN replication and backups with PORTrockIT

U III 5. networks & operating system o Several competing DOC standards OMG s CORBA, OpenDoc & Microsoft s ActiveX / DCOM. Object request broker (ORB)

Service Oriented Architecture

Transcription:

Cornell University Compu1ng and Informa1on Science CS 5150 So(ware Engineering System Architecture William Y. Arms

Design The requirements describe the funcbon of a system as seen by the client. Given a set of requirements, the so(ware development team must design a system that will meet those requirements. In this course, we look at the following aspects of design: system architecture program design usability security performance In pracbce these aspects are interrelated and many aspects of the design emerge during the requirements phase of a project. This is a parbcular strength of the iterabve and incremental methods of so(ware development. 2

CreaBvity and Design So:ware development So(ware development is a cra:. So(ware developers have a variety of tools that can be applied in different situabons. Part of the art of so(ware development is to select the appropriate tool for a given implementabon. Crea1vity and design System and program design are a parbcularly creabve part of so(ware development, as are user interfaces. You hope that people will describe your designs as elegant, easy to implement, test, and maintain. Above all strive for simplicity. The aim is find simple ways to implement complex requirements.

System Architecture System architecture is the overall design of a system Computers and networks (e.g., monolithic, distributed) Interfaces and protocols (e.g., hvp, ODBC) Databases (e.g., relabonal, distributed) Security (e.g., smart card authenbcabon) OperaBons (e.g., backup, archiving, audit trails) At this stage of the development process, you should also be selecbng: So(ware environments (e.g., languages, database systems, class frameworks) TesBng frameworks

Models for System Architecture Our models for systems architecture are based on UML The slides provide diagrams that give an outline of the systems, without the supporbng specificabons. For every system, there is a choice of models Choose the models that best model the system and are clearest to everybody. When developing a system, every diagram must have supporbng specificabon The diagrams shows the relabonships among parts of the system, but much, much more detail is needed to specify a system explicitly.

Subsystems Subsystem A subsystem is a grouping of elements that form part of a system. Coupling is a measure of the dependencies between two subsystems. If two systems are strongly coupled, it is hard to modify one without modifying the other. Cohesion is a measure of dependencies within a subsystem. If a subsystem contains many closely related funcbons its cohesion is high. An ideal division of a complex system into subsystems has low coupling between subsystems and high cohesion within subsystems.

Component OrderForm A component is a replaceable part of a system that conforms to and provides the realizabon of a set of interfaces. A component can be thought of as an implementabon of a subsystem. UML defini1on of a component "A distributable piece of implementabon of a system, including so(ware code (source, binary, or executable), but also including business documents, etc., in a human system."

Components as Replaceable Elements Components allow systems 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 realizabon of a set of interfaces

Components and Classes Classes represent logical abstracbons. They have avributes (data) and operabons (methods). Components have operabons that are reachable only through interfaces.

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

Node Server A node is a physical element that exists at run Bme and provides a computabonal resource, e.g., a computer, a smartphone, a router. Components may live on nodes.

Example: Simple Web System Web server Web browser StaBc pages from server All interacbon requires communicabon with server

Deployment Diagram nodes PersonalComputer DeptServer WebBrowser WebServer components

Component Diagram: Interfaces WebBrowser WebServer HTTP dependency realiza=on interface

ApplicaBon Programming Interface (API) An API is an interface that is realized by one or more components. WebServer Get Post

Architectural Styles An architectural style is system architecture that recurs in many different applicabons. See: Mary Shaw and David Garlan, So>ware architecture: perspec=ves on an emerging discipline. PrenBce Hall, 1996 David Garlan and Mary Shaw, An IntroducBon to So(ware Architecture. Carnegie Mellon University, 1994 hvp://www.cs.cmu.edu/afs/cs/project/able/(p/intro_so(arch/intro_so(arch.pdf

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

Architectural Style: Client/Server Example: A mail system Mail client (e.g. MS Outlook) Mail server (e.g. MS Exchange) The control flows in the client and the server are independent. CommunicaBon between client and server follows a protocol. In a peer- to- peer architecture, the same component acts as both a client and a server.

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

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

Time- CriBcal Systems A 1me- cri1cal (real Bme) system is a so(ware system whose correct funcboning depends upon the results produced and the Bme at which they are produced. A hard real Bme system fails if the results are not produced within required Bme constraints e.g., a fly- by- wire control system for an airplane must respond within specified Bme limits A so( real Bme system is degraded if the results are not produced within required Bme constraints e.g., a network router is permived to Bme out or lose a packet

Time CriBcal System: Architectural Style - Daemon A daemon is used when messages might arrive at closer intervals than the the Bme to process them. Daemon Spawned process Example: Web server The daemon listens at port 80 When a message arrives it: spawns a processes to handle the message returns to listening at port 80

Architectural Styles for Distributed Data Replica1on: Several copies of the data are held in different locabons. 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. Example: The Domain Name System For details of the protocol read: Paul Mockapetris, "Domain Names - ImplementaBon and SpecificaBon". IETF Network Working Group, Request for Comments: 1035, November 1987. hvp://www.ien.org/rfc/rfc1035.txt?number=1035

Architectural Style: Buffering When an applicabon wants a conbnuous stream of data from a source that delivers data in bursts (e.g., over a network or from a disk), the so(ware reads the bursts of data into a buffer and the applicabon draws data from the buffer. 4 3 5 2 Output block 7 6 1 7 Input block Circular buffer

An Old Exam QuesBon A company that makes sports equipment decides to create a system for selling sports equipment online. The company already has a product database with descrip=on, marke=ng informa=on, and prices of the equipment that it manufactures. To sell equipment online the company will need to create: a customer database, and an ordering system for online customers. The plan is to develop the system in two phases. During Phase 1, simple versions of the customer database and ordering system will be brought into produc=on. In Phase 2, major enhancements will be made to these components.

An Old Exam QuesBon (a) For the system architecture of Phase 1: i Draw a UML deployment diagram. ShoppingServer Product DB PersonalComputer WebBrowser Ordering system Customer DB

An Old Exam QuesBon (a) For the system architecture of Phase 1: Product DB ii Draw a UML interface diagram. WebBrowser Ordering system Customer DB

An Old Exam QuesBon (b) For Phase 1: i What architectural style would you use for the customer database? Repository with Storage Access Layer ii Why would you choose this style? It allows the database to be replaced without changing the applicabons that use the database.

An Old Exam QuesBon (b) For Phase 1: iii Draw an UML diagram for this architectural style showing its use in this applicabon. Customer DB Input components Storage Access Ordering System op=onal Data Store