- •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. Шляхи досягнення відмінностей між різними версіями програмного забезпечення. Досягти відмінності між різними версіями пз можна також такими способами:
52. Технологічні заходи мінімізації числа відмов у програмних системах.
Процес створення надійного програмного забезпечення переслідує мету розробки безвідмовного ПО, тобто такого, яке точно відповідає специфікації системних вимог. Але точна відповідність системи своїй специфікації не гарантує, що ПЗ завжди буде вести себе так, як очікується користувачами. У специфікації можуть бути помилки, які відіб'ються в програмному забезпеченні, або користувачі можуть невірно тлумачити чи неправильно експлуатувати систему. Безвідмовне ПО не обов'язково гарантує відсутність відмов у роботі системи. Але, з іншого боку, мінімізація помилок програмного забезпечення значно зменшує число відмов системи і повинна виконуватися при розробці критичних систем.
Існує ряд вимог до розробки безвідмовного програмного забезпечення.
Повинна бути точна (переважно формальна) специфікація системних вимог, визначальна систему, що розробляється.
Організація - розробник ПЗ повинна мати високу культуру управління якістю, оскільки якість є головним у процесі створення критичних систем. В ідеалі передбачається, що програмісти створюють програми, в яких відсутні помилки.
Методи проектування і реалізації ПЗ повинні грунтуватися на приховуванні та інкапсуляції інформації. Об'єктно-орієнтовані мови, такі як Java, задовольняють цій умові.
У процесі реалізації програмного коду повинні використовуватися мови програмування із суворим контролем типів даних, наприклад Jаvа або Ada. У таких мовах багато помилок програмування будуть виявлені на етапі компілювання програм.
Скрізь, де можливо, слід уникати використання тих програмних конструкцій, які потенційно можуть призвести до помилок. Такі конструкції обговорюються в наступному розділі.
Повинна бути визначена чітка технологія розробки ПЗ, і розробники повинні бути навчені застосуванню цієї технології. Менеджери, відповідальні за якість, повинні перевіряти процес розробки.
Якщо при розробці програм використовувалися мови програмування низького рівня з обмеженим контролем типів даних, такі як С, то досягти безвідмовності програмного забезпечення дуже важко. На це є такі причини.
Ці мови включають конструкції (такі, як покажчики), які, як відомо з досвіду, призводять до помилок. Незалежно від того, скільки програміст витратить зусиль, в програмі можливі помилки, які дуже важко виявити.
Природа цих мов така, що вони ведуть до компактного стилю програмування. Це робить програми більш важкими для читання і розуміння, що ускладнює пошук помилок по тексту програм.
Звичайно, перевага використання мов низького рівня в тому, що їх конструкції менш абстракти, і тому є можливість написати вельми ефективні програми. У деяких випадках висока ефективність істотна і не може бути досягнута іншим способом. Але, якщо потрібен високий рівень функціональної надійності ПЗ, доведеться докласти більше зусиль для тестування системи і виявлення помилок.
