CS 5150 Software Engineering Lecture 13 Software Architecture 2.

Slides:



Advertisements
Similar presentations
Ch 26.
Advertisements

MapReduce Online Created by: Rajesh Gadipuuri Modified by: Ying Lu.
CS CS 5150 Software Engineering Lecture 14 System Architecture 2.
Overview of Transaction Processing and Enterprise Resource Planning Systems Chapter 2.
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
CS CS 5150 Software Engineering Lecture 14 System Architecture 2.
CS 501: Software Engineering Fall 2000 Lecture 14 System Architecture I Data Intensive Systems.
Chapter 15 Design, Coding, and Testing. Copyright © 2005 Pearson Addison-Wesley. All rights reserved Design Document The next step in the Software.
1 SWE Introduction to Software Engineering Lecture 21 – Architectural Design (Chapter 13)
1 CS 501 Spring 2007 CS 501: Software Engineering Lecture 13 System Architecture and Design I.
Chapter 9 - Control in Computerized Environment ATG 383 – Spring 2002.
CS 5150 Software Engineering
1 CS 501 Spring 2006 CS 501: Software Engineering Lecture 13 System Architecture and Design I.
Information Systems for Business Operations Chapter 8.
CS CS 5150 Software Engineering Lecture 14 System Architecture 2.
1 CS 501 Spring 2005 CS 501: Software Engineering Lecture 13 System Architecture and Design I.
9 C H A P T E R Transaction Processing and Enterprise Resource Planning Systems.
Overview of Transaction Processing and Enterprise Resource Planning Systems Chapter 2.
Chapter Lead Black Slide © 2001 Business & Information Systems 2/e.
Distributed Databases
Copyright © 2015 Pearson Education, Inc. Processing Integrity and Availability Controls Chapter
Processing Integrity and Availability Controls
H-1 Network Management Network management is the process of controlling a complex data network to maximize its efficiency and productivity The overall.
Compare and contrast batch processing and online processing, outlining the meaning, advantages and disadvantages of the two. Which one would you recommend.
TRANSACTION PROCESSING SYSTEM (TPS)
TRANSACTION PROCESSING SYSTEM Liew Woei Song Muhammad Hofiz Achoson.
SOFTWARE.
Lead Black Slide Powered by DeSiaMore1. 2 Chapter 10 Business Operations.
1 CS 501 Spring 2002 CS 501: Software Engineering Lecture 13 System Architecture and Design I.
Transaction Processing System
FatMax Licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 2.5 LicenseCreative Commons Attribution-NonCommercial-ShareAlike 2.5.
Transaction Processing System  Business Transactions are certain events that occur routinely in a business firm.  A transaction is a set of activities.
1. Outline 4 functions of a typical operating system of a PC(4) Resource management Operating systems organise how to: Load programs from backing storage.
1 Introduction to Database Systems. 2 Database and Database System / A database is a shared collection of logically related data designed to meet the.
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.
Service Transition & Planning Service Validation & Testing
Copyright © 2007 Pearson Education Canada 1 Chapter 13: Audit of the Sales and Collection Cycle: Tests of Controls.
LoadRunner SE Guide 김범수 한국비지네스써비스 ( 주 )
1 California State University, Fullerton Chapter 10 Business Operations.
Capabilities & Limitations of Information and Communication Technology
Modes of Processing. Transactions  Transactions are events which need to be recorded with the production, sale and distribution of goods and services.
TRANSACTION PROCESSING CYCLE Presented to: Mr. Ahmad Tisman Pasha Presented by: Shafaque Mahmood Roll No
Test and Review chapter State the differences between archive and back-up data. Answer: Archive data is a copy of data which is no longer in regular.
RELIABILITY ENGINEERING 28 March 2013 William W. McMillan.
1 CS 501 Spring 2008 CS 501: Software Engineering Lecture 13 System Architecture and Design I.
CHAPTER 2 TYPES OF BUSINESS INFORMATION SYSTEM. INTRODUCTION Information System support business operations by processing data related to business operation.
System design : files. Data Design Concepts  Data Structures  A file or table contains data about people, places or events that interact with the system.
Types of Processing of Data www. ICT-Teacher.com.
Fundamentals of Information Systems, Third Edition1 An Overview of Transaction Processing Systems Every organization has transaction processing systems.
1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 15 System Architecture and Design I.
The aim of producing a backup strategy is to make sure that a computer system can be returned to its original state if data has been lost or corrupted.
1 Object-Oriented Analysis and Design with the Unified Process Figure 13-1 Implementation discipline activities.
CS523 Database Design Instructor : Somchai Thangsathityangkul You can download lecture note at Class Presence 10% Quiz 10%
CREATE THE DIFFERENCE Back ups and Recovery. CREATE THE DIFFERENCE Aims This lecture aims to cover –Back ups –Transaction logging –Security threats.
1 The System life cycle 16 The system life cycle is a series of stages that are worked through during the development of a new information system. A lot.
The concept of Data Processing. INPUT DESIGN Input Data Persistent Data Process Output.
CS 5150 Software Engineering Lecture 14 Program Design 1.
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.
Overview of Transaction Processing and Enterprise Resource Planning Systems Chapter 2.
Introduction To DBMS.
TRANSACTION PROCESSING SYSTEM (TPS)
Transaction processing systems
Chapter 1: Introduction
TRANSACTION PROCESSING
INTRODUCTION TO TRANSACTION PROCESSING SYSTEM
Overview of Transaction Processing and Enterprise Resource Planning Systems Chapter 2.
Terms: Data: Database: Database Management System: INTRODUCTION
MapReduce: Simplified Data Processing on Large Clusters
Presentation transcript:

CS 5150 Software Engineering Lecture 13 Software Architecture 2

CS Administrivia Presentations tomorrow & Friday Reports due Friday Teammate feedback due Monday

CS SE in the News Nothing caught my eye ☹

CS Database Centered Applications Electricity utility customer billing (e.g., NYSEG) Telephone call recording and billing (e.g., Verizon) Car rental reservations (e.g., Hertz) Stock market brokerage (e.g., Charles Schwab) E-commerce (e.g., Amazon.com) University grade registration (e.g., Cornell)

CS Requirements Phase: Identify Transaction Types Example: electricity utility billing Create account / close account Meter reading Payment received Other credits / debits Check cleared / check bounced Account query Correction of error etc., etc., etc.,

CS First System Architecture

CS First Architecture Critique Where is this first attempt weak? All activities are triggered by a transaction A bill is sent out for each transaction, even if there are several per day Bills are not sent out on a monthly cycle Awkward to answer customer queries No process for error checking and correction

CS Adding Batch Processing and Validation

CS UML Deployment Diagram for Validation

CS Adding Checkpoints, Reports and Error Messages

CS Benefits of Batch Processing All transactions for an account are processed together at appropriate intervals Backup and recovery have fixed checkpoints Better management control of operations Efficient use of staff and hardware Error detection and correction is simplified... but: Information is not available immediately in the main database No good way to answer customer inquiries

CS Online Inquiry Use Case A customer calls the utility and speaks to a customer service representative. The representative can read the master file, but not make changes to it. If the representative wishes to change information in the master file, a new transaction is created as input to the master file update system.

CS Online Inquiry Customer Service department can read the master file, make annotations, and create transactions, but cannot change the master file.

CS Our Final Electrical Utility Architecture Advantages: Efficient way to answer customer inquiries. Disadvantages: Information in master file is not updated immediately.

CS A New Twist: Real-Time Transactions

CS Practical Considerations for Architecture and Specification Can real-time service during scheduled hours be combined with batch processing overnight? How will the system guarantee database consistency after any type of failure? reload from checkpoint + log detailed audit trail How will transaction errors be avoided and identified? How will transaction errors be corrected? How will staff dishonesty be controlled? These practical considerations may be major factors in the choice of architecture.

CS Common Non-Functional Requirements High availability Hardware monitoring and redundancy In-flight software update Remote management Soft and hard real-time requirements Design for debugging Internal consistency checks Fail-fast versus fault tolerant

18 Concurrent and Parallel Programming is Hard... but not impossible We can dramatically improve on current standard practices with available technologies There are important benefits to be reaped by expanding the use of concurrent programming

19 Why Program Concurrently? Real-world interaction Isolation Concurrent design patterns Parallel performance

20 Why Program Concurrently? Real-world interaction Isolation Concurrent design patterns Parallel performance

21 Why Program Concurrently? Real-world interaction Isolation Concurrent design patterns Parallel performance

22 Why Program Concurrently? Real-world interaction Isolation Concurrent design patterns Parallel performance

23 Parsing, Batch Approach batch_parse( pile_of_characters ) pile_of_tokens = tokenize( pile_of_characters ) syntax_tree = parse( pile_of_tokens )

24 Incremental; Parser Drives batch_parse( pile_of_characters ) pile_of_tokens = tokenize( pile_of_characters ) syntax_tree = parse( pile_of_tokens ) parse_driver( pile_of_characters ) declare tokenizer_state while(... ) small_pile_of_tokens = tokenize_a_little( tokenizer_state )

25 Incremental; Tokenizer Drives batch_parse( pile_of_characters ) pile_of_tokens = tokenize( pile_of_characters ) syntax_tree = parse( pile_of_tokens ) parse_driver( pile_of_characters ) declare tokenizer_state while(... ) small_pile_of_tokens = tokenize_a_little( tokenizer_state ) tokenize_driver( pile_of_characters ) declare parser_state while(... ) small_pile_of_tokens = parse_a_little( parser_state, small_pile_of_tokens )

26 Incremental; Symmetric incremental_parse1( pile_of_characters ) declare tokenizer_state declare parser_state while(... ) small_pile_of_tokens = tokenize_a_little( tokenizer_state ) parse_a_little( parser_state, small_pile_of_tokens )

27 Incremental; Concurrent incremental_parse1( pile_of_characters ) declare tokenizer_state declare parser_state while(... ) small_pile_of_tokens = tokenize_a_little( tokenizer_state ) parse_a_little( parser_state, small_pile_of_tokens ) incremental_parse2( pile_of_characters ) declare token_channel start( tokenizer, pile_of_characters, token_channel ) start( parser, token_channel ) wait( tokenizer ) wait( parser )

28 Why Program Concurrently? Real-world interaction Isolation Concurrent design patterns Parallel performance

29 How to Program Concurrently?

30 Units of Concurrency

31 Units of Concurrency

32 Units of Concurrency

33 Units of Concurrency

34 The Many Names of Cooperative Concurrency light-weight thread fiber green thread task generator event handler cooperative thread coroutine continuation goroutine iterator protothread eventlet greenlet

35 To Every Unit of Concurrency a Purpose