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

Work Assigned: Assignments

Evaluation:
Assignments: 40%
Midterm Exam: 15%
Final Exam: 45%

Resources: The textbook is Performance Solutions: A Practical Guide by Connie Smith and Lloyd Williams.

Outline:

Week 1: 1) Introduction ; 2) History of Performance Engineering; 3) 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 2) 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