Software Systems Reliability Theory

Major: Software Engineering
Code of subject: 7.121.01.O.005
Credits: 5.00
Department: Software
Lecturer: Maksym Seniv
Semester: 1 семестр
Mode of study: денна
Мета вивчення дисципліни: The purpose of this discipline is to introduce students to the theory of reliability as a science and educational discipline, to highlight the criteria, methods of analysis and synthesis of reliable software systems, methods of assuring and increasing their reliability.
Завдання: The ability to effectively solve specialized tasks and practical problems of an innovative nature during professional activities related to all aspects of software development from the initial stages of specification creation to system support after commissioning. The ability to design software and model the processes of software subsystems and units’ operation. The ability to develop, analyze and apply specifications, standards, rules and recommendations in the software engineering domain. The ability to assure software quality.
Learning outcomes: PH01. Know and apply modern professional standards and other legal documents on software engineering. PH06. Develop and evaluate software design strategies; substantiate, analyze and evaluate design solutions in terms of quality of the final software product, resource constraints and other factors. РН07. Analyze, evaluate and apply at the system level modern software and hardware platforms for solving complex problems of software engineering. PH11. Ensure quality at all stages of the software life cycle, including the use of relevant models and assessment methods, as well as automated software testing and verification tools. РН16. Plan, organize and perform software testing, verification and validation.
Required prior and related subjects: Corequisites: English-language scientific communication Innovation and Entrepreneurship in Software Engineering Image processing using artificial intelligence methods Software development methodologies Methods and means of scientific research in software engineering Risk management in software engineering Software quality management
Summary of the subject: Software reliability theory is a professionally oriented discipline for software developers' education. Reliability is one of the most important indicators of modern equipment. It influences such indicators as quality, efficiency, safety, risk readiness, and survivability. The discipline involves the study of the following topics: Fundamental concepts and definitions of reliability theory; Reliability criteria; Laws of distribution of time to failure; Problems of reliability analysis of complex technical systems; Mathematical models of the functioning of technical elements and systems in the sense of their reliability; Methods of reliability analysis of technical systems; Reliability of information systems; Software reliability analysis.
Опис: Introduction. Fundamental concepts and definitions of reliability theory. Reliability theory as a science. Definition of "reliability" and "failure". Terminology of reliability theory. Classification of technical systems. Reliability criteria. Laws of distribution of time to failure. Reliability criteria for non-renewable systems. Reliability criteria for renewable systems. The most common laws of distribution of time to failure. Methods of analysis of reliability of technical systems. Reliability and safety analysis using a fault tree. Structural and logical analysis of technical systems. Calculations of structural reliability of systems. Increasing the reliability of technical systems. General characteristics of software reliability. Comparative characteristics of the reliability of software and hardware. Classification of software reliability models. Software reliability models based on a heterogeneous Poisson process. Review of software reliability models based on non-homogeneous Poisson process. A generalized software reliability model with a complexity indicator. Software reliability analysis based on a model with a complexity indicator. Software reliability models taking into account imperfect debugging. Obtaining estimates of software reliability model parameters. Selection of a software reliability model. Exponential models based on a heterogeneous Poisson process. S-shaped model based on non-homogeneous Poisson process. Reliability models based on a non-homogeneous Poisson process taking into account imperfect debugging. S-shaped reliability models based on a non-homogeneous Poisson process taking into account imperfect debugging. Comparison of imperfect and ideal debugging models. Component models of software reliability. Software reliability models based on the component approach. Software reliability models based on a higher-order Markov process. Software reliability analysis taking into account its architecture and complexity. Means of engineering software systems taking into account the requirements for software reliability. Determination of the duration of the process of testing software systems. Models and methods of determining the policy of optimal introduction of software into operation. Methods and means of increasing the reliability of software taking into account the process of its aging.
Assessment methods and criteria: Control measures. Tests. Defending laboratory works. Examination control (written component, oral component).
Критерії оцінювання результатів навчання: Current control: 40% (2 labs 20% each) Exam: 60% (written part 50%, spoken part 10%) The maximum mark for each laboratory work can be obtained if it has been defended within 15 weeks of the semester, a student performed the task correctly, managed to prove that they have accomplished the task with no assistance, and answered all the practical and theoretical questions properly.
Порядок та критерії виставляння балів та оцінок: 100–88 points – (“excellent”) awarded for a high level of knowledge (some inaccuracies are allowed) of the educational material of the component contained in the main and additional recommended literary sources, the ability to analyze the phenomena being studied in their interrelationship and development, clearly, succinctly, logically, consistently answer the questions, the ability to apply theoretical provisions when solving practical problems; 87–71 points – (“good”) is awarded for a generally correct understanding of the educational material of the component, including calculations, reasoned answers to the questions posed, which, however, contain certain (insignificant) shortcomings, for the ability to apply theoretical provisions when solving practical tasks; 70 – 50 points – (“satisfactory”) awarded for weak knowledge of the component’s educational material, inaccurate or poorly reasoned answers, with a violation of the sequence of presentation, for weak application of theoretical provisions when solving practical problems; 49–26 points – (“not certified” with the possibility of retaking the semester control) is awarded for ignorance of a significant part of the educational material of the component, significant errors in answering questions, inability to apply theoretical provisions when solving practical problems; 25-00 points - ("unsatisfactory" with mandatory re-study) is given for ignorance of a significant part of the educational material of the component, significant errors in answering questions, inability to navigate when solving practical problems, ignorance of the main fundamental provisions.
Recommended books: 1. Яковина В.С., Сенів М.М., Основи теорії надійності програмних систем: Навчальний посібник. – Львів: Видавництво Львівської політехніки, 2020. – 248 с. 2. Бобало Ю.Я., Волочій Б.Ю., Лозинський О.Ю., Мандзій Б.А., Озірковський Л.Д., Федасюк Д.В., Щербовських С.В., Яковина В.С. Математичні моделі та методи аналізу надійності радіоелектронних, електротехнічних та програмних систем: монографія. – Львів: Видавництво Львівської політехніки, 2013. – 300 с. 3. Волочій Б.Ю. Технологія моделювання алгоритмів поведінки інформаційних систем. – Львів: Вид-во НУ "Львівська політехніка", 2004. – 220 с. 4. Моделі, методи та засоби аналізу надійності програмних систем / В. С. Яковина, Д. В. Федасюк, М. М. Сенів, О. О. Нитребич. Львів : Видавництво Львівської політехніки. – 2015. – 220 с. 5. Seniv M., Yakovyna V., Symets I. Software for visualization of reliability block diagram and automated formulation of operability conditions of technical systems // 14th International Conference on Perspective Technologies and Methods in MEMS Design, MEMSTECH 2018 - Proceedings. – 2018. – pp. 191–195. 6. Yakovyna V. S., Seniv M. M., Symets I. I., Sambir N. B. Algorithms and software suite for reliability assessment of complex technical systems // Radio Electronics, Computer Science, Control. – 2020. – No. 4(55). – P. 163–177. 7. Bobalo Yu., Seniv M., Yakovyna V., Symets I. Method of reliability block diagram visualization and automated construction of technical system operability condition // Advances in Intelligent Systems and Computing (AISC). – 2019. – Vol. 871: Advances in intelligent systems and computing III. Selected papers from the International conference on computer science and information technologies, CSIT 2018, September 11-14, Lviv, Ukraine. – P. 599–610. 8. Яковина В. С., Сенів М. М., Литвин В. В., Симець І. І. Програмний модуль розв'язування систем диференціальних рівнянь Колмогорова-Чепмена для автоматизації надійнісного проектування // Науковий вісник НЛТУ України: збірник науково-технічних праць. – 2019. – Т. 29, № 5. – С. 141–146. 9. Сенів М.М., Роїк О.О. Засоби розрахунку показників надійності програмного забезпечення на підставі моделей з урахуванням недосконалого відлагодження // Науковий вісник НЛТУ України. – 2021. – 31 (6), – С. 87-91. 10. Яковина В. С., Сенів М. М., Симець І. І. Засоби автоматизованого формулювання умов працездатності складних технічних систем // Науковий вісник НЛТУ України. – 2019. – Т. 29, № 9. – С. 136–141.