Copyright © 2002-2004, Software Engineering Research. All rights reserved. Creating Responsive Scalable Software Systems Dr. Lloyd G. Williams Software.

Slides:



Advertisements
Similar presentations
Tales from the Lab: Experiences and Methodology Demand Technology User Group December 5, 2005 Ellen Friedman SRM Associates, Ltd.
Advertisements

Performance Testing - Kanwalpreet Singh.
Withdrawal Transaction Use Case Primary Actor: Customer Pre-conditions: The customer must have a valid ATM card and PIN. Post-conditions: The customer.
Software Quality Assurance Plan
Network Design and Implementation
Lecture 1: History of Operating System
R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering1 Advanced Software Engineering Dr. Cheng Overview of Software Engineering.
1 Software Testing and Quality Assurance Lecture 41 – Software Quality Assurance.
Copyright © 1998 Wanda Kunkle Computer Organization 1 Chapter 2.1 Introduction.
Little’s Theorem Examples Courtesy of: Dr. Abdul Waheed (previous instructor at COE)
Introduction to Software Engineering Dr. Basem Alkazemi
1 Software Testing and Quality Assurance Lecture 40 – Software Quality Assurance.
Software Architecture Quality. Outline Importance of assessing software architecture Better predict the quality of the system to be built How to improve.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 6 Slide 1 Software Requirements 2.
Chapter 10: Architectural Design
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Use Case Modeling. Use case diagram For each use case we develop  Object class diagram (with attributes only)  System sequence diagram (analysis) 
23 September 2004 Evaluating Adaptive Middleware Load Balancing Strategies for Middleware Systems Department of Electrical Engineering & Computer Science.
Load Test Planning Especially with HP LoadRunner >>>>>>>>>>>>>>>>>>>>>>
Computer System Lifecycle Chapter 1. Introduction Computer System users, administrators, and designers are all interested in performance evaluation. Whether.
Self-Adaptive QoS Guarantees and Optimization in Clouds Jim (Zhanwen) Li (Carleton University) Murray Woodside (Carleton University) John Chinneck (Carleton.
Ekrem Kocaguneli 11/29/2010. Introduction CLISSPE and its background Application to be Modeled Steps of the Model Assessment of Performance Interpretation.
Chapter 10 Architectural Design
INFO 637Lecture #81 Software Engineering Process II Integration and System Testing INFO 637 Glenn Booker.
Project ManagementDay 1 in the pm Project Management (PM) Structures.
Performance analysis and prediction of physically mobile systems Point view: Computational devices including Mobile phones are expanding. Different infrastructure.
VTT-STUK assessment method for safety evaluation of safety-critical computer based systems - application in BE-SECBS project.
An Introduction to Software Architecture
1 Performance Evaluation of Computer Systems and Networks Introduction, Outlines, Class Policy Instructor: A. Ghasemi Many thanks to Dr. Behzad Akbari.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Chapter 14 System Testing.
Faculty of Computer & Information Software Engineering Third year
Software Architecture in Practice Architectural description (The reduced version)
USE CASE Bayu Adhi Tama, MTI Faculty of Computer Science, University of Sriwijaya Slides are adapted from Petrus Mursanto
1 Chapter 23 Estimation for Software Projects. 2 Software Project Planning The overall goal of project planning is to establish a pragmatic strategy for.
Approaching a Problem Where do we start? How do we proceed?
Lecture 7: Requirements Engineering
Middleware for FIs Apeego House 4B, Tardeo Rd. Mumbai Tel: Fax:
Designing a Scalable Enterprise Project Management Architecture Ken Toole Platform Test Manager MS Project Microsoft Corporation.
1 Challenges in Scaling E-Business Sites  Menascé and Almeida. All Rights Reserved. Daniel A. Menascé Department of Computer Science George Mason.
Web Engineering and Technology Unit I. Categories/Types of Web-Based Systems CategoryExamples Document centricOnline newspapers, manuals InteractiveRegistration.
Chapter 6 Systems Design The design stage in the SDLC Evolution in IS design Evolution in computer architectures The systems approach to design User interface.
CPSC 372 John D. McGregor Module 3 Session 1 Architecture.
9 Systems Analysis and Design in a Changing World, Fourth Edition.
Information Systems Engineering Interaction Diagrams: Sequence Diagram Collbortion Diagram.
West Virginia University Slide 1 Copyright © K.Goseva 2010 CS 736 Software Performance Engineering Comments on Homework #1  Please revise the solution.
VGreen: A System for Energy Efficient Manager in Virtualized Environments G. Dhiman, G Marchetti, T Rosing ISLPED 2009.
Requirements Management with Use Cases Module 10: Requirements Across the Product Lifecycle Requirements Management with Use Cases Module 10: Requirements.
Chapter 6 CASE Tools Software Engineering Chapter 6-- CASE TOOLS
1 Graph Coverage (6). Reading Assignment P. Ammann and J. Offutt “Introduction to Software Testing” ◦ Section
1 Part VII Component-level Performance Models for the Web © 1998 Menascé & Almeida. All Rights Reserved.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Chapter 12 The Network Development Life Cycle
1 Copyright © 2005, Oracle. All rights reserved. Following a Tuning Methodology.
Unit – I Presentation. Unit – 1 (Introduction to Software Project management) Definition:-  Software project management is the art and science of planning.
1 Chapter Overview Monitoring Access to Shared Folders Creating and Sharing Local and Remote Folders Monitoring Network Users Using Offline Folders and.
Agenda  Quick Review  Finish Introduction  Java Threads.
HPHC - PERFORMANCE TESTING Dec 15, 2015 Natarajan Mahalingam.
Advanced Software Engineering Dr. Cheng
Software Architecture in Practice
Architecture & System Performance
Architecture & System Performance
Object-Oriented Static Modeling of the Banking System - I
Migration Strategies – Business Desktop Deployment (BDD) Overview
Chapter 14 System Testing
Software Assurance Maturity Model
Practical Software Engineering
Software Engineering System Modeling Chapter 5 (Part 1) Dr.Doaa Sami
Chapter 5 Architectural Design.
Chapter 26 Estimation for Software Projects.
Presentation transcript:

Copyright © , Software Engineering Research. All rights reserved. Creating Responsive Scalable Software Systems Dr. Lloyd G. Williams Software Engineering Research 264 Ridgeview Lane Boulder, CO (303)

Federal Software Spending

Objectives  To provide an overview of modeling concurrent and distributed systems  To illustrate SPE models and solutions (exercise)  To discuss performance-oriented design  Principles  Patterns  Antipatterns

Software Performance Engineering

SPE  Software performance engineering (SPE) is a systematic, quantitative approach to constructing software systems that meet performance objectives.  SPE prescribes  principles for creating responsive software  the data required for evaluation  procedures for obtaining performance specifications  guidelines for conducting performance evaluation at each development stage

Performance Balance  Quantitative Assessment  Begins early, frequency matches system criticality  Often find architecture & design alternatives with lower resource requirements  Select cost-effective performance solutions early Resource Requirements Capacity

SPE Model-based Approach Conventional Models Software Prediction Models

SPE Model Requirements  Low overhead  use the simplest possible model that identifies problems  Accommodate:  incomplete definitions  imprecise performance specifications  changes and evolution  Goals:  initially distinguish between "good" and "bad"  later, increase precision of predictions  provide decision support

SPE Modeling Strategies  Simple-Model Strategy  start with the simplest possible model that identifies problems with the system architecture, design or implementation plans.  Best- and Worst-Case Strategy  use best- and worst-case estimates of resource requirements to establish bounds on expected performance and manage uncertainty in estimates  Adapt-to-Precision Strategy  match the details represented in the models to your knowledge of the software processing details

SPE Process Steps 1.Assess performance risk 2.Identify critical use cases 3.Select key performance scenarios 4.Establish performance objectives 5.Construct performance models 6.Determine software resource requirements 7.Add computer resource requirements 8.Evaluate the models 9.Verify and validate the models

What Do You Need To Know To Do SPE (And How Do You Get It)?

What Do You Need to Know Performance Objectives WorkloadSoftware/ Database Execution Environment Resource Usage Estimates

Workload Data  Pareto principle ( ‘80-20 rule’ )  More than 80% of the software requests will be for less than 20% of the functions of the system  First: scenarios of typical activity  Number of concurrent users  Request arrival rates  Performance goals  Later, add large scenarios, critical scenarios, etc.

Example: ATM System System Functions: Scenario? Get balance Checking Savings Withdrawal Checking Savings Credit card Make payment From checking From savings In envelope Deposit Savings Checking

Software Specifications  Execution paths for scenarios of interest  Objects / methods to be executed  probability of execution  number of repetitions  protocol  Database accesses  Level of detail increases as development progresses

ATM Sequence Diagram

Example (continued)  Processing scenario: Request withdrawal 1. Initiate session 2. Get and interpret request {response = withdrawal, checking acct} 3. Trans Authorize (Withdrawal) 4. Dispense cash 5. Print receipt 6. Terminate session  Performance Objective: Response time _______ secs.  Workload intensity, e.g., number of session arrivals per hr. per ATM

Environment  Platform and network characteristics:  configuration  device service rates  Software overhead, e.g., database path lengths, communication overhead, etc.  External factors, e.g., peak hours, bulk arrivals, batch windows, scheduling policies  Case study Environment Specifications:  time for ATM communication  CPU speed  system configuration (devices, service times, etc.)

Resource Usage  CPU  Work Units  or # of instructions executed  or measurements of similar software  I/O  Database calls  Communication  Other devices  Software overhead calls & characteristics Estimates + Lower / Upper Bounds Estimates + Lower / Upper Bounds

Example Specifications initiate session ComponentK Instr ATM Screens get & interpret request withdrawal print balance terminate session dispense cash 3501 Disk I/O’s 1 0

Sequence Diagram

Expansion of processWithdrawal

Software Execution Model 

Software Resource Requirements

Computer Resource Requirements Devices Service Units Screen Host Log Delay Service Time CPUDiskDisplayDelayNet Sec.Phys. I/OScreensUnitsMsgs

Software Model Solutions  Types of solutions:  Best case - shortest path in graph  Worst case - longest path in graph  Average  Variance  Approach  Repeat reduction rules on typical structures until graph contains one node with the computed solution  Apply reductions to each resource specification (t), then combine the results

Simple Reduction Rules: Average Analysis t = t 1 + t 2 + …+ t n t = nt 1 t = t 0 + p 1 t 1 + p 2 t 2

Results

System Execution Model  Characterizes performance in the presence of factors that could cause contention for resources  Multiple workloads  Multiple users  Provides additional information  Metrics that account for resource contention  Sensitivity of performance metrics to variations in workload composition  Scalability of the hardware and software  The effect of new software on service level objectives of other systems that execute on the same facility  Identification of bottleneck resources  Comparative data on options for improving performance via: workload changes, software changes, hardware upgrades, and various combinations of each

System Performance Model

Distributed Applications

Modeling Strategy  Follow Simple-Model strategy—start with software execution model  Focus on one scenario/processor at a time  Approximate delays for communication/ synchronization with other scenarios  If the software execution model shows no problems, proceed to  System execution model  Advanced system execution model

Partitioning the Model Estimate the Delay for System Interactions

Message Types SynchronousAsynchronous Deferred SynchronousAsynchronous Callback

EG Synchronization Nodes

Summary  Early modeling is important for distributed systems  Use Simple-Model strategy  SPE models are straightforward to construct and solve  Performance principles, patterns and antipatterns can guide performance-oriented design