Description
This course focuses on the basic principles of performance analysis, performance modeling and evaluation for software systems. Students 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.
Credit Breakdown
Lecture: 3
Lab: 0
Tutorial: 0
Academic Unit Breakdown
Mathematics 0
Natural Sciences 0
Complementary Studies 0
Engineering Science 24
Engineering Design 12
Introduction and Overview
– Introduction & SPE Quick Overview
– SPE and UML
Software Performance Engineering (SPE) Models
- Software Execution Models
– Distributed Systems
– System Execution Model
Data Collection
– SPE Data Collection
– Ch8 – Measurements and Instrumentation
Software Contention and Capacity Planning
– Resource Contention and Queuing
Performance Oriented Design
– Ch9 – Design Principles
– Ch10 - Software Design Patterns
– Ch11 - Software Anti-Patterns
Course Assignments
Four small projects: Skills for software performance modeling, analysis and design; Programming skills; Presentation.
Marking Scheme:
– 4 Assignments - 40%
– 2 Quizzes – 30% each (2 * 30% =60%)
Textbook
Performance Solutions: A Practical Guide to Creating Responsive, Scalable Software, by Connie Smith and Lloyd Williams, First Edition, 0-201-72229-1
Reference books
Capacity Planning for Web Services: Metrics, Models, and Methods, by Daniel A. Menasce and Virgilio A. F. Almeida, Prentice Hall PTR – Scaling for E-Business: Technologies, Models, Performance, and Capacity Planning, by Daniel A. Menasce and Virgilio A. F. Almeida, Prentice Hall PTR