SOFT 437

Performance Analysis
(Winter)

Summary:

This course examines basic principles of performance analysis, performance modeling and evaluation for software systems. Students will learn why software performance is critical to software development processes. The course covers the principles of software performance engineering (SPE), performance patterns and anti-patterns for performance-oriented design, techniques for eliciting performance objectives, techniques for gathering data needed for evaluation, and guidelines for the evaluation at each stage of software development process.

Objectives:

By the end of the course students will be able to:

  • Learn about the performance issues that arise in the realistic, large-scale software systems
  • Use the models to estimate software performance in the architecture and design level
  • Compute the performance characteristics using software the execution model
  • Understand data collection techniques
  • Learn software measurement and instrumentation techniques
  • Design software systems to meet performance criteria
  • Analyze software architecture and design to identify performance problems
  • Use of principles of performance oriented design in real life systems

Evaluation:


1. 4 Projects - ( 4 * 10) 40%
2. 3 Quizzes - (3 * 5) 15% Quizzes are scheduled on Thursdays in Week 3rd, 8th and 11.
3. 10 Pop-up Questions (In class) – 5%
4. Final Exam - 40%

 

Resources:

1. Test book is Performance Solutions: A Practical Guide by Connie Smith and Lloyd Williams.
2. Reference books are :
a. Capacity Planning for Web Services: Metrics, Models, and Methods, by Daniel A. Menasce and Virgilio A. F. Almeida, Prentice Hall PTR
b. Scaling for E-Business: Technologies, Models, Performance, and Capacity Planning, by Daniel A. Menasce and Virgilio A. F. Almeida, Prentice Hall PTR

Tentative Course Schedule:

Week 1:

Introduction; History of Performance Engineering;
Overview of Software Performance Engineering


Week 2:
1) Introduction to UML
2) SPE notations
3) Software Execution Model I


Week 3:
1) Software Execution Model II
2) Software Architecture & Styles I
3) Software Architecture & Styles II


Week 4:
1) Software Architecture & Styles III
2) System Execution Model I
3) System Execution Model II


Week 5:
1) System Execution Model III
2) Application I
3) Applications II


Week 6:
1) SPE Data collection
2) SPE Measurement
3) SPE instrumentation


Week 7:
1) Performance Oriented Design I
2) Performance Oriented Design II
3) Software Design Patterns I


Week 8:
1) Software Design Patterns II
2) Performance Patterns I
3) Performance Patterns II


Week 9:
1) Performance Patterns III
2) Software Antipatterns
3) Performance Anitpatterns I


Week 10:
1) Performance Antipatterns II
2) Performance Tuning I
3) Performance Tuning II


Week 11:
1) Web Applications
2) E-Business Applications
3) Embedded Real-Time Systems


Week 12:
1) SPE in Software Development Process I
2) SPE in Software Development Process II
3) Review