Subject

Software Reliability

1. Course Title Software Reliability
Software reliability
2. Code m23_s_050
3. Study Programme
4. Organizer of the study programme (unit, institute, department or division) Faculty of Computer Science and Engineering
5. Degree level (first, second, third cycle) Second cycle
6. Academic year / semester 10 / Summer
7. Number of ECTS credits 6
8. Teacher Ivan Chorbev
9. Prerequisites for enrolling in the course
10. Objectives of the course programme (competences) Курсот има за цел да им понуди на студентите познавање на основните концепти за отпорност на грешка, основните техники за постигнување на отпорност на грешка во софтверските, комуникациските и електронските системи. Здобивање на вештини за моделирање и евалуирање на архитектури отпорни на грешка, нивна овозможеност и сигурност. Да се здобијат со знаење за можните извори на грешка и начини за нивно предвидување и спречување. Да знае да дизајнира и развива високо-надежен софтвер.
11. Course content Дефиниција на надежност на софтвер, Дефиниција на расположливост на софтвер, Потреба од надежен софтвер, Примена на софтвер толерантен на откази. Развоен циклус за софтвер, Модели за грешки во софтверот, Извори на грешки во софтверот, Стратегија на развој на софтвер со многу мал број на грешки. Користење на стандарди при кодирањето. Примена на различни структури на софтверот, Декомпозиција по модули, Партиционирање, Затварање на модулите, Аномични акции. Детекција на грешки, Временски проверки, Проверка наназад, Кодови за детекција и корекција на грешка, Проверка на логиката, Структурни проверки. Обработка на исклучоци, Дизајн на системот за обработка на исклучоци. Дебагирање, Дебагирање со индукција, Дебагирање со дедукција. Логирање на информации, Примена на логирањето за дебагирање, Примена на логирањето за детекција на грешки. тестирање, Автоматизирање на процесот на тестирање, Unit тестови, Интеграциски тестови, Acceptance тестови. Техники кај софтвер кој се прави во една верзија, Контролни точки и Повторно стартување, Пар од процеси, Разновидност на влезните податоци. ехники кај софтвер во повеќе верзии, Опоравувачки блокови, Програмирање со N-верзии, N Само-Проверувачки програми, Опоравувачки блокови со консензус, t/(n-1)- Варијантно програмирање.
12. Learning methods Lectures supported by slide presentations, interactive lectures, practical classes (using equipment and software packages), teamwork, case studies, guest lecturers, independent preparation and defence of a project assignment and seminar paper, and learning in an electronic environment (forums and consultations).
13. Total available time 6 ECTS x 30 hours = 180 hours
14. Distribution of available time 60 + 0 + 45 + 45 + 30 = 180 hours
15. Forms of teaching activities
15.1. Lectures - theoretical instruction 60 hours
15.2. Exercises (laboratory, auditory), seminars, teamwork 0 hours
16. Other forms of activities
16.1. Project assignments 45 hours
16.2. Independent assignments 45 hours
16.3. Home study 30 hours
17. Assessment method
17.1. Tests 0 points
17.2. Seminar paper / project (presentation: written and oral) 45 points
17.3. Activities and learning 0 points
17.4. Final exam 0 points
18. Grading criteria (points / grade)
up to 50 points5 (five) (F)
from 51 to 60 points6 (six) (E)
from 61 to 70 points7 (seven) (D)
from 71 to 80 points8 (eight) (C)
from 81 to 90 points9 (nine) (B)
from 91 to 100 points10 (ten) (A)
19. Requirement for obtaining a signature and taking the final exam completed activities
20. Language of instruction Macedonian and English
21. Method for monitoring the quality of teaching internal evaluation and survey mechanism
22. Literature
22.1. Required literature
1. Elena Dubrova | Fault-Tolerant Design | Springer | 2013
2. John Knight | Fundamentals of Dependable Computing for Software Engineers | (Chapman & Hall/CRC Innovations in Software Engineering and Software Development Series) | 2012
3. Kopetz, Hermann | Real-Time Systems, Design Principles for Distributed Embedded Applications | Springer | 2011
4. Mitch Lacey | The Scrum Field Guide: Practical Advice for Your First Year (Agile Software Development Series) | Addison-Wesley Professional | 2012
5. Mark A. Levin , Ted T. Kalal, Jonathan Rodin | Improving Product Reliability and Software Quality: Strategies, Tools, Process and Implementation (Quality and Reliability Engineering Series) | Wiley | 2019
22.2. Additional literature
No. Author Title Publisher Year