
- •1. Основні ознаки розподілених програмних систем.
- •2. Характеристики розподілених систем, що впливають на продуктивність обчислень.
- •3. Характеристики розподілених систем, що впливають на надійність обчислень.
- •4. Характеристики розподілених систем, що впливають на економію ресурсів.
- •6. Недоліки розподілених систем, що пов’язані з їх використанням.
- •7. У чому полягає складність розробки розподілених систем?
- •8. Основні види архітектур розподілених систем.
- •9. Особливості архітектури клієнт/сервер.
- •10. Види архітектур клієнт/сервер та галузі їх застосування.
- •11. Особливості застосування архітектури Клієнт / сервер на Основі тонкого клієнта.
- •12. Особливості застосування архітектури Клієнт / сервер на Основі Товстого клієнта.
- •13. Особлівості багаторівневої архітектури Клієнт / сервер.
- •14. Характеристики архітектури розподіленіх об'єктів.
- •15. Основні Переваги архітектури розподіленіх об'єктів.
- •16. Основні недолікі архітектури розподіленіх об'єктів.
- •17. Характеристика систем реального часу.
- •18. Класифікація систем реального часу за типами вхідніх сігналів.
- •19. Особливості проектування систем реального часу.
- •20. Засоба підвіщення продуктівності систем реального часу.
- •21. Моделі систем реального часу.
- •22. Вимоги до засобів програмування систем реального часу.
- •23. Керуючі компоненти систем реального часу.
- •24. Компоненти, що підвищують надійність систем реального часу.
- •25. Особливості керування процесами в системах реального часу.
- •26. Види інтерфейсів користувача та їх особливості.
- •27. Переваги та недоліки графічного інтерфейсу користувача.
- •28. Особливості проектування інтерфейсу користувача.
- •29. Основні засади проектування інтерфейсу користувача.
- •31 Основні види взаємодії користувача і програми та сфери їх застосування.
- •32 Недоліки та переваги основних видів взаємодії користувача з програмою.
- •33 Способи подання інформації користувачу.
- •34 Основні правила використання кольору в інтерфейсах користувача.
- •35 Засоби інтерфейсу спрямовані на підтримку користувача.
- •36 Основні види документації для користувачів програмних систем.
- •37 Основні складові надійності програмних систем.
- •38 Обґрунтування потреби у високонадійних програмних системах.
- •39 Поняття критичної системи.
- •40 Основні типи критичних систем.
- •41. Основні джерела відмов та підходи до проектування критичних систем.
- •42. Основні підходи для підвищення безвідмовності систем.
- •43. Рівні безпечності програмних систем.
- •44. Способи підвищення безпечності програмних систем.
- •45. Типи пошкоджень систем, що викликаються зовнішніми чинниками.
- •46. Засоби підвищення захищеності програмних систем.
- •47 Основні підходи до проектування надійного програмного забезпечення.
- •48 Основні вимоги до розробки безвідмовного програмного забезпечення.
- •49. Конструкції мов програмування, що потенційно можуть призвести помилок.
- •50. Методи програмування, що потенційно можуть призвести до помилок.
- •51. Укривання даних, як спосіб підвищення надійності програмування.
- •52. Технологічні заходи мінімізації числа відмов у програмних системах.
- •53. У проблемі безвідмовності виділяють чотири аспекти.
- •54. Існує два підходи, що використовуються для розробки пз, стійкого до збоїв.
- •55. Обробка виключень в мовах програмування як засіб підвищення надійності.
- •56.Основні типи виявлення збоїв у програмних системах.
- •57. Способи локалізації помилок та пошкоджень даних в програмах.
- •58. Види стійких до відмов архітектур.
- •59. Основні підходи до створення стійкого до відмов програмного забезпечення.
- •60. Шляхи досягнення відмінностей між різними версіями програмного забезпечення. Досягти відмінності між різними версіями пз можна також такими способами:
24. Компоненти, що підвищують надійність систем реального часу.
Функціональну надійність комп'ютерних систем можна визначити ступенем довіри до них, тобто упевненістю, що система буде працювати так, як передбачається, і що збоїв не буде. Ця властивість не можна оцінити кількісно. Для цього використовуються такі відносні терміни, як "ненадійні", "дуже надійні" або "наднадійні", що відображають різну ступінь довіри до системи. Надійність і корисність - це, звичайно, різні речі. Програма текстового редактора, яку я використовував при написанні книги, є не дуже надійним, але вельми корисною системою. Знаючи це, я часто зберігав роботу, багаторазово її копіюючи. Цими діями я компенсував недоліки системи, знижуючи ризик втрати інформації в разі її відмови.
Існує чотири основні складові функціональної надійності програмних систем (рис. 16.1), неформальні визначення яких наведені нижче.
Працездатність - властивість системи виконувати свої функції в будь-який час експлуатації.
Безвідмовність - властивість системи коректно (так, як очікує користувач) працювати весь заданий період експлуатації.
Безпека - властивість системи, що гарантує, що вона безпечна для людей і навколишнього середовища.
Захищеність - властивість системи протистояти випадковим або навмисним вторгненням в неї.
Працездатність і безвідмовність систем обговорюються в главі 17. Ці показники носять імовірнісний характер і можуть бути виражені кількісно. Безпека і захищеність рідко виражаються у вигляді числових показників, але їх можна порівнювати за відносної шкалою рівнів. Наприклад, безпека рівня 1 менше безпеки рівня 2, яка, в свою чергу, менше безпеки рівня 3, і т.д.
Додаткові заходи, що підвищують функціональну надійність системи, можуть різко збільшувати вартість її розробки
Високі рівні функціональної надійності можуть бути досягнуті тільки за рахунок зменшення ефективності роботи системи. Наприклад, надійне програмне забезпечення передбачає додаткові, часто надлишкові, коди для перевірки нештатних станів системи. Це ускладнює систему і збільшує обсяг пам'яті, необхідний для її ефективної роботи. Але в ряді випадків надійність більш важлива, ніж ефективність системи.
Ненадійні системи часто залишаються незатребуваними. Якщо до системи немає довіри користувача, вона не буде затребувана. Більш того, користувачі можуть відмовитися від інших програмних продуктів тієї ж компанії-розробника, оскільки будуть також вважати їх ненадійними.
Вартість відмови системи може бути величезна. Для деяких додатків, таких, як системи управління реакторами або системи навігації, вартість наслідків відмови може перевищувати вартість самої системи.
Важко модернізувати ненадійну систему для підвищення її надійності. Зазвичай є можливість поліпшити неефективну систему, так як в цьому випадку основні зусилля будуть витрачені на модернізацію окремих програмних модулів. Систему, до якої немає довіри, важко поліпшити, оскільки ненадійність "розподілена" по всій системі.
Існують можливості компенсувати недостатню ефективність системи. Якщо програмна система працює неефективно, то це постійний чинник, до якого користувач може пристосуватися, побудувавши свою роботу з його урахуванням. Ненадійність системи, як правило, проявляється раптово. Ненадійне програмне забезпечення може порушити роботу всієї системи, в яку воно інтегроване, і зруйнувати дані користувача без попередження, що може мати серйозні наслідки.
Ненадійні системи можуть бути причиною втрати інформації. Збір та зберігання даних - дорога процедура, часто дані коштують більше, ніж комп'ютерна система, на якій вони обробляються. Дублювання даних для запобігання їх втрати внаслідок ненадійності системи зажадає значних зусиль і фінансових коштів.
Надійність системи залежить від технології розробки ПЗ. Багаторазові тестування з метою виключення помилок сприяють розробці надійних систем. Однак немає простого зв'язку між якістю процесу створення та якістю готової системи. Питання взаємозв'язку між процесом створення ПЗ та якістю готової продукції розглядаються в главах 24 і 25, де представлені теми управління якістю і модернізації систем.