Course: Software Systems Reliability and Performance

« Back
Course title Software Systems Reliability and Performance
Course code KIV/VSS
Organizational form of instruction Lecture + Tutorial
Level of course Master
Year of study not specified
Semester Winter and summer
Number of ECTS credits 6
Language of instruction Czech, English
Status of course Compulsory
Form of instruction Face-to-face
Work placements This is not an internship
Recommended optional programme components None
Lecturer(s)
  • Lipka Richard, Ing. Ph.D.
Course content
1. Introduction. Purpose of modelling and performance and reliability testing, basic terms (mistake, error, failure, availability, performance, safety, security, reliability). 2. Systems modelling. Queuing networks, Markov chain, temporal logic. 3. Basic reliability models (redundant systems). Random number generators. 4. Basics of software simulations. Basic techniques, calendar, discrete event simulation, time and events in the simulation, design and parameterization of the simulation model. 5. Using of simulation for modelling queuing networks and other systems, simulation of the multithreading applications, system environment simulation. 6. Fundaments of the performance measuring, for use in both simulation and real system. Kinds and examples of metrics. Ensuring of test repeatability. 7. Best practices for creating of reliable software ? availability levels, basic methods for ensuring reliability, runtime error processing, using of reliability modelling. Standards and architectures for reliable software systems (AUTOSAR, MARTE, ISO 50128 and similar). 8. Benchmarking, performance testing of real HW and SW, preparation of workload, workload clustering. 9. Debugging. Using of debugger and profiler for error detection, error isolation, supervising of application run. Using of the record of application execution for simulation models. 10. Result analysis and presentation. Statistics, result visualization, risks for result interpretation. 11. Static SW analysis ? existing tools and methods (Spin model checker, Java PathFinder and similar), their suitability, using and limitations in specific situations. 12. Dynamic SW analysis ? existing tools and methods (Gcov, Glassbox, Cobertura and similar), their suitability, using and limitations in specific situations.

Learning activities and teaching methods
Lecture supplemented with a discussion, Students' portfolio, Skills demonstration, Task-based study method, Individual study, Self-study of literature, Lecture, Lecture with visual aids, Practicum
  • Presentation preparation (report) (1-10) - 10 hours per semester
  • Preparation for laboratory testing; outcome analysis (1-8) - 20 hours per semester
  • Contact hours - 65 hours per semester
  • Preparation for an examination (30-60) - 20 hours per semester
  • Graduate study programme term essay (40-50) - 40 hours per semester
prerequisite
Knowledge
Understand the basic problems of the network communication and remote request handling
Understand basic concepts of the mathematical analysis
Understand the descriptions and models of the software systems
Understand the basic challenges of the parallel programming and their solutions
Understand the basic principle of the computer system architectures
Skills
independently search for information in the academic and professional resources
create object design and decompose the problem correctly
use object programming and suitable development tools
Work with basic probability and statistics methods, including usage of the appropriate tools for the calculations
Competences
N/A
learning outcomes
Knowledge
Understand how analytical and simulational models of the Markov systems works
Understand and interpret results of the benchmarking experiments
understand the methods of the model design of the queuing systems
Understand the basic methods of the statical and dynamical analysis of the software reliability
Understand the methods of design of reliable systems and their evaluation
understand the properties and limits of the simulations and analytical models
Understand the properties and limits of the true random and pseudorandom number generators
Understand and describe means of analysis, design and creation of reliable software systems working with large data, integrated from multiple interacting components.
Skills
Design a prepare a benchmarking experiment, measure characteristics of the system under test
Evaluate the reliability and performance characteristics of the tested software, based on the static analysis and dynamic testing
suitable present the results of the measurements from the simulation or real systems
Implement some types of the simulation models (discrete event simulation, simulation with the firm time step, cellular automatons) and analyze the obtained results
Design and prepare an analytical model of the system under test, interpret the calculated characteristics
Design and prepare an experiment to measure the behaviour of the system under load
Competences
N/A
N/A
teaching methods
Knowledge
Lecture
Practicum
Lecture with visual aids
Lecture supplemented with a discussion
Self-study of literature
Skills demonstration
Seminar classes
Students' portfolio
Skills
Individual study
Self-study of literature
Skills demonstration
Task-based study method
Competences
Lecture with visual aids
assessment methods
Knowledge
Combined exam
Seminar work
Individual presentation at a seminar
Peer evaluation of students
Formative evaluation
Skills
Skills demonstration during practicum
Competences
Combined exam
Recommended literature
  • Bernardi, Simona; Merseguer, José; Petriu, Dorina C. Model-driven dependability assessment of software systems. Heidelberg : Springer, 2013. ISBN 978-3-642-39511-6.
  • Hamlet, Dick. Composing Software Components: A Software-testing Perspective. Springer, 2010. ISBN 978-1441971470.
  • Hlavička, Jan. Architektura počítačů. Praha : ČVUT, 1994.
  • Hlavička, Jan. Číslicové systémy odolné proti poruchám. Vyd. 1. Praha : ČVUT, 1992. ISBN 80-01-00852-5.
  • Jim Kukunas. Power and Performance: Software Analysis and Optimization. 2015. ISBN 0128007265.
  • Lyu, Michael R. Handbook of Software Reliability Engineering. Mcgraw-Hill, 1996. ISBN 978-0070394001.
  • Mor Harchol-Balter. Performance Modeling and Design of Computer Systems: Queueing Theory in Action. 2013. ISBN 1107027500.
  • Racek, Stanislav; Roubín, Miroslav. Pravděpodobnostní modely počítačů. 1. vyd. Plzeň : ZČU, 1996. ISBN 80-7082-300-3.


Study plans that include the course
Faculty Study plan (Version) Category of Branch/Specialization Recommended year of study Recommended semester