330 likes | 504 Views
Аналіз методів та засобів підвищення надійності та точності систем медичної діагностики. Трунов О.М. , к.т.н., професор, зав. кафедри медичних приладів та систем, перший проректор МДГУ ім. Петра Могили. Волкова С.О. , аспірант, викладач кафедри медичних приладів та систем МДГУ ім. Петра Могили.
E N D
Аналіз методів та засобів підвищення надійності та точності систем медичної діагностики Трунов О.М., к.т.н., професор, зав. кафедри медичних приладів та систем, перший проректор МДГУ ім. Петра Могили Волкова С.О., аспірант, викладач кафедри медичних приладів та систем МДГУ ім. Петра Могили
Баги «Нефункціональні» вимоги Розробники Задачі Use Case Бізнес-аналітик Керівник проекту Зміни Тест Помилки при використанні Користувач Приклад процесу створення ПЗ
Категорії критичного програмного забезпечення Критичність та власністьПриклад систем • Критичні для країни (нації) • Безпека (Security), Надійність (Reliability) • Критичні для людського життя • Точність (Correctness), Надійність (Reliability) • Критичні для соціального середовища • Надійність (Reliability), Безпека (Security) • Критичні для корпорації • Ефективність (Effectiveness, Efficiency) • Критичні для здоров'я користувача • Зручність використання (Usability), • Привабливість (Attractiveness) Оборонні та бюджетні системи Медичні системи та системи контролю світлофорів Банківські та телекомунікаційні системи Системи виробників та бази даних замовників Інтерактивні системи та комп'ютерні ігри Відмови медичних систем, спричинені дефектами програмногозабезпечення
програміст активація розвиток Дефект ПЗ Помилка ПЗ Відмова ПЗ Визначення основних понять • Дефект ПЗ - це явна або гіпотетична причина відмов системи, тобто відхилення від результатів коректного обслуговування користувачів ПЗ. • Помилка ПЗ - запис елемента програми або тексту програмної документації, використання якої приводить або може привести до невірного результату. • Відмова - подія, що полягають у прояві непрацездатності ПЗ. Ознаки непрацездатності встановлюються в нормативно-технічній документації ПЗ. • Верифікація - це процес доведення, що певний етап життєвого циклу створення системи виконаний відповідно до вимог, встановленими на попередньому етапі. • Тестування - основний метод виміру якості коректності й реальної надійності функціонування програм на будь-яких етапах розробки.
Процес розробки програмного продукту(Життєвий цикл ПЗ) • Waterfall model • Spiral model • Model driven development • User experience • Top-down and bottom-up design • Chaos model • Evolutionary prototyping • Prototyping • Rapid application development • ICONIX Process (UML-based) • Unified Process • V-model • Extreme Programming • Software Development Rhythms • Incremental funding methodology • IPO+S Model Новий або змінений програмний продукт (solution) Нові або змінені вимоги до ПП (problem)
Кроки життєвого циклу розробки ПЗ • Аналіз коду • Метрики коду • Профілювання • Модульне тестування з покриттям коду • Формування вимог • Тестування • Розробка • Впровадження • Дизайн • Обслуговування
Зростання вартості виправлення дефектів в процесі розробки програми
Модель зовнішньої та внутрішньої якості ПЗ ISO/IEC 9126 (2001)
Постановка мети та задач дослідження • Мета дослідження полягає в аналізі методів та інструментальних засобів вимірювання та передбачення необхідного рівня надійності програмного забезпечення критичного застосування . • Задачі дослідження полягають в розробці цілісної та чіткої класифікації моделей надійності ПЗ шляхом аналізу основних існуючих моделей надійності синтезованого програмного забезпечення, таких як: • моделей передбачення або прогнозування надійності ПЗ; • моделей оцінювання надійності ПЗ (статичних та динамічних) та аналіз їхнього практичного застосування.
Аналіз дифініцій поняття надійності програмного забезпечення • 1й підхід полягає в тому, що програма або коректна або некоректна, тоді надійність ПЗ визначається як бінарна величина: ідеальна програма має надійність рівну одиниці, а неідеальна - рівну нулю. • 2й підхід базується на тестуванні ПЗ, у цьому випадку процентне відношення вдалих тестів використовується для вимірювання надійності, тобто надійність ПЗ визначена як відносна частота вдалих виконань програми. • 3й підхід під терміном надійність визначає здатність зберігати якість за певних умов експлуатації, таким чином, відповідно до даного визначення, надійність - це якість, розгорнута в часі. • 4й підхід визначає надійність ПЗ як ймовірність безвідмовного функціонування ПЗ в певний час або в певному середовищі.
Визначення складових характеристик та показників надійності ПЗ • Основними показниками надійності синтезованого ПЗ, що можуть бути оцінені за допомогою моделей надійності є: • імовірність безвідмовної роботи, • середній час роботи на відмову, • інтенсивність виникнення відмов, • кількість дефектів, що залишилися не виявленими в ПЗ.
Диференціальне рівняння функції відмов синтезованого ПЗ
Система диференціальних рівнянь функції відмов синтезованого ПЗ
Базові класи множини моделей надійності програмного забезпечення
Класифікація моделей надійності за характером вхідної інформації
Систематизація ймовірнісних моделей надійності програмного забезпечення
Узагальнений підхід до систематизації моделей надійності ПЗ
Недоліки існуючих підходів до класифікації моделей надійності ПЗ В більшості проаналізованих джерел [1-3]: • проводиться часткова класифікація моделей надійності ПЗ [4]; • недостатньо чітко визначається зв'язок між класифікаційними ознаками, через що множина моделей декомпозується по різних ознаках на незв'язані підмножини; • не міститься чітка систематизація вхідних параметрів моделей надійності ПЗ [5-7]. [1] Майерс Г. Надежность программного обеспечения.– М.: Мир, 1980.– 360 с. [2] Lyu M.R. Handbook of Software Reliability Engineering. – McGraw-Hill Company, 1996. – 805 p. [3] Musa J.D., Okumoto K. Software Reliability Models: Concepts, Classification, Comparisons and Practice // Electronic Systems Effectiveness and Life Cycle Costing / Skvirzynski J.K. (ed.). – Heidelberg: Springer-Verlag. – P. 395–424. [4] Полонников Р.И., Никандров А.В. Методы оценки показателей надежности программного обеспечения.– СПб.: Политехника, 1992.– 78 с. [5] Харченко В.С., Скляр В.В., Вилкомир С.А. Выбор моделей надежности программных средств для критического применения // Управляющие системы и машины. – 2000. – №3. – С. 59–69. [6] Musa J.D., Okumoto K. Software Reliability Models: Concepts, Classification, Comparisons and Practice // Electronic Systems Effectiveness and Life Cycle Costing / Skvirzynski J.K. (ed.). – Heidelberg: Springer-Verlag. – P. 395–424. [7] Musa J.D. Software Reliability. Measurement, Prediction, Application. – McGraw-Hill Company, 1987. – 397 p.
Запропонована класифікація моделей надійності ПЗ
Моделі прогнозування надійності програмного забезпечення Структурні та статистичні Параметричні моделі Модель фірми IBM Модель Мак – Кейба Фазо-орієнтована моделі Модель Римської лабораторії повітряних сил (RL-RT-92-15, RL-RT-92-52) Модель Акиями Модель часу виконання Муси Модель Хослтеда Модель Липова Модель Гафнії Класифікація моделей прогнозування надійності синтезованого ПЗ
Використання моделей прогнозу потенційної кількості дефектів ПЗ
Моделі оцінювання надійності програмного забезпечення Статистичні моделі Динамічні моделі Статистичні методи (модель Нельсона, модель Брауна і Липова) Методи засівання дефектів (гіпергеометрична модель Міла, модифікована модель Міла-Бейсина) Модель Джелінского-Моранди Модель Гоеля-Окумото Модель Шнайдевінда Базова модель Муси Модель Муси-Окумото Модель Вейбула Модель Літлвуда-Вералла Гіперекспонентна модель Геометрична модель S-подібна модель надійності Класифікація моделей оцінювання надійності синтезованого ПЗ
Базові вхідні та вихідні параметри класичних модель надійності ПЗ • Статистичні моделі які, застосовуються протягом тестування ПЗ можуть оцінити/передбачити надійність • Вхідні параметри: • Час між успішними відмовами • Кількість відмов на кожний інтервал тесту заданої довжини • Вихідні параметри: • Щільність розподілу ймовірності (Probability Density Function - PDF) до наступної відмови • PDF кількості відмов на наступних інтервалах часу • Можна оцінити або передбачити надійність, інтенсивність відмов
Застосування статистичних та динамічних моделей оцінки надійності • Узагальнений аналіз статичних моделей оцінювання надійності програмного забезпечення показав, що їх застосування вимагає значних фінансових витрат і не дає надійних результатів. За допомогою таких моделей можна одержувати лише початкові приблизні оцінки надійності ПЗ. • Проведений аналіз динамічних моделей оцінювання надійності ПЗ показав, що найбільш перспективними для практичного застосування є моделі, що базуються на негомогенному пуасонівському процесі.
Яким чином вимірювати та контролювати надійність ПЗ?
Вимірювання та оцінка надійності ПЗ перед тестуванням • Визначення схильних до відмови модулів • Boolean Discriminant Functions [Schn97] • Дерева класифікації • Khoshgoftaar and Allen [Khos01a] • Ghokale and Lyu [Gokh97] • Логістична регресія [Schn01] • Оцінка вмісту відмов ПЗ включає: • Модульно-зорієнтоване моделювання • Нейронні мережі • Zero-inflated Poisson (Пуассон)regression [Khos01] • Вимірювання структурної еволюції [Niko03], [Niko98]
1. ІЗ даного класу дозволяють виконати оцінку якості виконання проекту (Ratіonal Rose). Крім того, інформація про виявлення й усунення дефектів ПЗ використовується в якості вхідних даних для ІЗ, що виконують оцінку імовірнісних показників надійності ПЗ. 2. Дані ІЗ, що дозволяють виконати процедури математичного моделювання показників надійності ПЗ й зробити візуалізацію їх результатів на підставі інформації про виявлені дефекти. Основним недоліком даних систем є обмежена множина імовірнісних моделей надійності, а також відсутність процедур їхнього вибору з урахуванням особливостей кожного конкретного ПЗ. 3. До цього класу ІЗ відносяться такі утиліти як DOORS (фірма ZYCAD Corporatіon, США), RAMS Software Tools (Іtem Software Іnc., США), Valіdator (ІSTec, Німеччина), Super Trace (SAІ, США) і ін. Такого роду ІЗ крім семантичного й статистичного аналізу коду можуть також визначати різні параметри ПЗ (кількість і номенклатура операторів й операндів і т.д.), які потім можуть бути використані для розрахунку метрик складності ПЗ.
Інструментальні засоби оцінки імовірнісних показників надійності ПЗ
Особливості застосування ІЗ для моделювання надійності ПЗ
Особливості застосування ІЗ для оцінки надійності ПЗ • Аналіз існуючих ІЗ для моделювання й оцінки якості й надійності ПЗ показав, що кожний із розглянутих типів дозволяє оцінювати лише окремі складові якості й надійності ПЗ. Таким чином, представляється доцільним подальше вдосконалювання існуючих ІЗ у напрямку інтеграції їх у єдиній системі оцінки кількісних метрик якості й надійності ПЗ в рамках моделі якості ІSO 9126. • Для оцінки якості й надійності сучасного програмного забезпечення реалізуються підходи, засновані на: • методах інспекції, що припускають перевірку відповідності ПЗ вимогам нормативних документів шляхом неформалізованого аналізу документації й процесів розробки; • використанні спеціальних показників - метрик, що дозволяють побічно судити про рівень якості й надійності ПЗ на підставі аналізу вірогідно вимірюваних характеристик програмного продукту й процесів його проектування; • застосуванні математичних моделей для оцінки імовірнісних показників надійності.
Висновки • Розглянуто математичні основи надійності ПЗ та визначено базові вхідні та вихідні параметри моделей надійності. • Здійснена спроба створення систематизовано-класифікаційної структури моделей надійності ПЗ, що дозволило вдосконалити класифікацію моделей надійності програмного забезпечення. • Реалізовано ієрархічну структуру та досліджено приклади моделей прогнозування та оцінювання надійності ПЗ. Проаналізовані особливості застосування розглянутих моделей прогнозування кількості дефектів ПЗ на різних етапах ЖЦ ПЗ. • Реалізовано ієрархічну структуру та досліджено приклади ймовірнісних моделей оцінювання надійності ПЗ. Визначено переваги та недоліки даних підкласів ймовірнісних моделей оцінювання надійності ПЗ. • Концепція керування надійністю та якістю інформаційних систем забезпечується шляхом: • оцінювання надійності на всіх етапах життєвого циклу програмного забезпечення; • вдосконалення інструментальних засобів, які призначені для керування надійністю та якістю ПЗ.