Main themes and learning objectives
Principal theme | Prerequisite knowledge | Approaches the learning objectives | Reaches the learning objectives | Deepens the learning objectives |
---|---|---|---|---|
Performance and its management in software development |
Basics of sw development processes and project management Sw architecture and how NFRs affect sw architecture |
Can define performance and the important measures of timeliness Can explain the consequences of bad performance |
Can explain the most important activities of sw perf. management in the life-cycle of a sw system Can compare and argue the relative merits of the proactive and reactive approach to sw perf. management |
Can formulate an effective sw perf. management strategy for a sw system based on a risk analysis |
Performance modeling |
UML Use Case and Sequence Diagrams
|
Can explain what makes a use case critical from a performance perspective Can add timing information to Sequence Diagrams Can explain the effect of resource contention by concurrent jobs to response time Can explain why system execution models are needed Knows the quantities used to measure performance Knows the difference between open and closed systems
|
Can explain the role of performance modeling and the modeling strategies used in SPE Can translate the sequence diagrams of a use case to a software execution model Can solve a software execution model using a given processing overhead matrix Can create a software execution model for a distributed system that shows the synchronization of parallel executions Can calculate with Little's Law the N, X, R, or Z for an open system and a closed system when the other quantitities are known Can use the Bottleneck Law for estimating the upper bound for throughput Can create a Queueing Network Model for a simple open or closed system that has a few servers and several concurrent jobs Knows how a QNM is in principle solved and how software execution models are used to derive input values for QNMs |
Can create a processing overhead matrix for a sw system under design Can select correct tools for creating performance models and knows how to use them |
Performance measurement and instrumentation |
Can explain what data is needed in SPE for creating performance models Can argue why performance measurements are needed Osaa kertoa, mihin instrumentointia tarvitaanCan explain why instrumentation is needed Can explain the types of concrete measurements and the purposes they serve |
Can define a specific, quantitative and measurable performance objective Can decide which software and system resources should be include in a processing overhead matrix Knows what techniques and tools are available for acquiring performance data for perf. analysis Can explain the requirements of a good performance measurment Knows the difference between monitoring states and recording events and knows what measurements to conduct with tools based on these techniques Can argue the case for instrumentation in performance measurement
|
Can design representative and reproducible measurements Can create a measurement strategy for a software system |
|
Performance principles and patterns | The concept of Design Pattern |
Can explain the categorization of principles for perfomance-oriented design Osaa nimetä ja selostaa jonkin suorituskykypatternin ja anti-patterninCan name and explain a Performance Pattern and a Performance Antipattern |
Can select the components and functions of a software system where performance principles and patterns should be applied | Can recognize and analyse the use of performance principles and patterns in a sw system |