1 Software Testing and Quality Assurance Lecture 41 – Software Quality Assurance.

Slides:



Advertisements
Similar presentations
Artificial Intelligence
Advertisements

Models of Computation Prepared by John Reif, Ph.D. Distinguished Professor of Computer Science Duke University Analysis of Algorithms Week 1, Lecture 2.
Modeling and Simulation By Lecturer: Nada Ahmed. Introduction to simulation and Modeling.
Pipeline Summary Try to put everything together for pipelines Before going onto caches. Peer Instruction Lecture Materials for Computer Architecture by.
Static Single Assignment CS 540. Spring Efficient Representations for Reachability Efficiency is measured in terms of the size of the representation.
1 Fault-Tolerant Computing Systems #6 Network Reliability Pattara Leelaprute Computer Engineering Department Kasetsart University
9. Code Scheduling for ILP-Processors TECH Computer Science {Software! compilers optimizing code for ILP-processors, including VLIW} 9.1 Introduction 9.2.
CISC 879 : Software Support for Multicore Architectures John Cavazos Dept of Computer & Information Sciences University of Delaware
Lecture 3: Greedy Method Greedy Matching Coin Changing Minimum Spanning Tree Fractional Knapsack Dijkstra's Single-Source Shortest-Path.
DATA MINING LECTURE 12 Link Analysis Ranking Random walks.
ECIV 301 Programming & Graphics Numerical Methods for Engineers Lecture 20 Solution of Linear System of Equations - Iterative Methods.
Incremental Path Profiling Kevin Bierhoff and Laura Hiatt Path ProfilingIncremental ApproachExperimental Results Path profiling counts how often each path.
Chapter 8 . Sequence Control
Liang, Introduction to Java Programming, Eighth Edition, (c) 2011 Pearson Education, Inc. All rights reserved Chapter 23 Algorithm Efficiency.
Analysis of Algorithm.
Lecture 3 Feb 7, 2011 Goals: Chapter 2 (algorithm analysis) Examples: Selection sorting rules for algorithm analysis Image representation Image processing.
Copyright © , Software Engineering Research. All rights reserved. Creating Responsive Scalable Software Systems Dr. Lloyd G. Williams Software.
TECH Computer Science Graph Optimization Problems and Greedy Algorithms Greedy Algorithms  // Make the best choice now! Optimization Problems  Minimizing.
Liang, Introduction to Java Programming, Seventh Edition, (c) 2009 Pearson Education, Inc. All rights reserved Chapter 23 Algorithm Efficiency.
S/W Project Management Software Process Models. Objectives To understand  Software process and process models, including the main characteristics of.
Issues with Data Mining
CMSC 345 Fall 2000 Unit Testing. The testing process.
1 Applications of Relative Importance  Why is relative importance interesting? Web Social Networks Citation Graphs Biological Data  Graphs become too.
1 Chapter 24 Developing Efficient Algorithms. 2 Executing Time Suppose two algorithms perform the same task such as search (linear search vs. binary search)
{ CS203 Lecture 7 John Hurley Cal State LA. 2 Execution Time Suppose two algorithms perform the same task such as search (linear search vs. binary search)
CSC 480 Software Engineering Lecture 14 Oct 16, 2002.
Cristian Urs and Ben Riveira. Introduction The article we chose focuses on improving the performance of Genetic Algorithms by: Use of predictive models.
1 On to Object Design Chapter 14 Applying UML and Patterns.
Functional Programming Universitatea Politehnica Bucuresti Adina Magda Florea
©Silberschatz, Korth and Sudarshan13.1Database System Concepts Chapter 13: Query Processing Overview Measures of Query Cost Selection Operation Sorting.
Analysis of Algorithms
UML Diagrams: Sequence Diagrams The Requirements Model, and The Dynamic Analysis Model Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical.
What is Genetic Programming? Genetic programming is a model of programming which uses the ideas (and some of the terminology) of biological evolution to.
Stochastic DAG Scheduling using Monte Carlo Approach Heterogeneous Computing Workshop (at IPDPS) 2012 Extended version: Elsevier JPDC (accepted July 2013,
1 Code optimization “Code optimization refers to the techniques used by the compiler to improve the execution efficiency of the generated object code”
Zheng Wu. Background Motivation Analysis Framework Intra-Core Cache Analysis Cache Conflict Analysis Optimization Techniques WCRT Analysis Experiment.
Definition of Terms Software/Programs Programs that directs the operation of a computer system Set of instructions Codes Programming Process of planning,
West Virginia University Slide 1 Copyright © K.Goseva 2010 CS 736 Software Performance Engineering Comments on Homework #1  Please revise the solution.
Modeling as a Design Technique Chapter 2 Part 1: Modeling Concepts Object-Oriented Modeling and Design Byung-Hyun Ha
1-1 Software Development Objectives: Discuss the goals of software development Identify various aspects of software quality Examine two development life.
Data Structures and Algorithms in Parallel Computing Lecture 1.
CSCI1600: Embedded and Real Time Software Lecture 33: Worst Case Execution Time Steven Reiss, Fall 2015.
SSQSA present and future Gordana Rakić, Zoran Budimac Department of Mathematics and Informatics Faculty of Sciences University of Novi Sad
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Chapter 23 Algorithm Efficiency.
Prof. Hany H. Ammar, CSEE, WVU, and
CS412/413 Introduction to Compilers Radu Rugina Lecture 18: Control Flow Graphs 29 Feb 02.
Presented by PLASMA (Parallel Linear Algebra for Scalable Multicore Architectures) ‏ The Innovative Computing Laboratory University of Tennessee Knoxville.
Presented by PLASMA (Parallel Linear Algebra for Scalable Multicore Architectures) ‏ The Innovative Computing Laboratory University of Tennessee Knoxville.
Decision Maths 1 Shortest path algorithm Dijkstra’s Algorithm A V Ali :
1 Program Analysis Too Loopy? Set the Loops Aside Eric Larson September 25, 2011 Seattle University.
Chapter 15 Running Time Analysis. Topics Orders of Magnitude and Big-Oh Notation Running Time Analysis of Algorithms –Counting Statements –Evaluating.
LECTURE 9 CS203. Execution Time Suppose two algorithms perform the same task such as search (linear search vs. binary search) and sorting (selection sort.
Chapter 16 – Project Management
Flowchart Symbols Terminal Process Input/ Output Decision
Database Management System
Introduction to complexity
Games with Chance Other Search Algorithms
CSCI1600: Embedded and Real Time Software
Iteration with While You can say that again.
Eugene Gavrin – MSc student
Greedy Method     Greedy Matching     Coin Changing     Minimum Spanning Tree     Fractional Knapsack     Dijkstra's Single-Source Shortest-Path.
Systems Analysis Overview.
Lecture 2- Query Processing (continued)
Computer Science Core Concepts
Scheduling Basic Concepts Ref: Hard Real-Time Computing Systems Giorgio Buttazzo Ref: Real-Time Systems & Software Alan Shaw Processes - Tasks.
Summer Training Industrial Engineering Department
The Rich/Knight Implementation
CSCI1600: Embedded and Real Time Software
The Rich/Knight Implementation
Unit III – Chapter 3 Path Testing.
Presentation transcript:

1 Software Testing and Quality Assurance Lecture 41 – Software Quality Assurance

2 Lecture Objectives Designing for performance Static performance model Execution Graph Analysis of Execution Graphs

3 Designing for performance Take performance requirements into account at each stage in the design process. Engineering for performance is An iterative process Apply at any stage in the development process

4 Designing for performance Step 1: Develop a design concept for the system. Step 2: Model the design (as an execution graph), gather data and evaluate the model to estimate if it meets performance goals; Step 2: consider design alternatives, where feasible, including: Replacing expensive operations with less expensive operations; Eliminating bottlenecks; Step 3: Repeat the process until predicted performance is acceptable or improvement become too hard or too complex to make.

5 Static performance model Execution graphs as they fit well with modern design methods. Execution graphs have Control structures – notation for sequencing, conditional branching, loops and process creation. Concurrent control structures – notation to support concurrency and synchronization.

6

7 Execution Graph

8 Fork/Join Example

9 Analysis of Execution Graphs Graph reduction Replacing a graph structure by a single reduced node. Select one sub-graph that can be replaced by a reduction rule to result in a single node that captures the performance attributes of whole sub- system. Repeat until we have only a single node that captures the performance attribute of the whole system.

10 Analysis of Execution Graphs Reduction rules Sequential-path rule – add the times of each node in the sequence Repetition-path rule – multiply the time of loop body by the number of iterations.

11 Analysis of Execution Graphs Conditional paths Average case: multiply the time of each node by its probability of execution + time for computing the choice. Best case: find the shortest execution time for all the choices + time for computing the choice. Worst case: find the longest execution time + time for computing the choice.

12

13 Key points Engineering for performance is an iterative process that apply at any stage in the development process. Model the design as an execution graph. Analyze the execution graph using graph reduction rules.