Створення якісного продукту сприяє задоволенню вимог замовника.
Терміном якість програмного забезпечення позначаємо сукупність властивостей, що визначають спроможність забезпечення задовольнити запити замовника, які він висловив як вимоги до розробки.
Якість програмного забезпечення – це відносне поняття, що має сенс тільки при врахуванні реальних умов його застосування, тому вимоги, які пред’являються до якості програмного забезпечення, ставляться відповідно до умов і конкретної галузі їхнього застосування.
Якщо провести моніторингове опитування серед користувачів програмного забезпечення по питанню якості програмних продуктів, то дуже часто звучатимуть відповіді:
- Програмне забезпечення легко використовується
- У програмному забезпеченні реалізовано багато можливостей
- Практично немає помилок
- Захищає інформацію користувача
- Можливість використання на різних платформах
- Працює безвідмовно потрібний проміжок часу
- Має добре організовану довідкову службу
- Задовольняє потреби користувачів та ін.
Всі наведені відповіді дійсно мають відношення до поняття якості програмного забезпечення, але вказують на характеристики важливі для конкретного користувача, замовника або групи вказаних осіб.
Аналіз якості в програмній інженерії орієнтований на:
-
досягнення необхідної якості програмного забезпечення відповідно до встановлених критеріїв;
-
верифікацію і валідацію на етапах життєвого циклу та оцінку якості виробленого програмного продукту[7, c. 142];
-
забезпечення надійності як основної характеристики гарантії якості програмного забезпечення (SQAs – Software Quality Assurance [1, 2]).
Визначені напрями програмної інженерії розглядаються на всіх етапах життєвого циклу програмного продукту, тобто аналіз і забезпечення якості проводиться за всіма видами діяльності у вирішенні задач планування, розробки і підтримки процесів створення програмного забезпечення.
Для створення якісного програмного продукту інженер програмного забезпечення повинен користуватися різноманітними технологіями та стандартами побудови якісного програмного забезпечення.
Для проведення аналізу якості, а також верифікації і валідації програмного забезпечення програмісту потрібні знання про організацію управління якістю, про процеси аналізу якості, метою яких є забезпечення додаткових гарантій досягнення заданої якості та її поліпшення. Слід звернути увагу, що під поняттям валідація розуміємо забезпечення відповідності розробки вимогам її замовників, а верифікація – це перевірка правильності трансформації проекту в код реалізації.
Аналіз якості програмного забезпечення включає початкову оцінку, яка відповідає процесам виробництва якісного програмного продукту: моніторингу, плануванню, виконанню, зміні або підтримці.
Досягнення якості програмного забезпечення залежить від процесу проектування, який повинен бути планованим і включати систематизований набір дій із забезпечення адекватності й довіри до продукту, створеного відповідно до поставлених технічних вимог. При цьому верифікація та валідація програмного забезпечення належать до управління якістю і є важливими процесами забезпечення якості програмного продукту на етапах його життєвого циклу. Життєвий цикл є моделлю створення і використання програмного забезпечення, яка відображає його різні стани, починаючи з моменту виникнення необхідності в даному програмному продукті і закінчуючи моментом його повного виходу із вжитку у всіх користувачів. Існує багато моделей життєвого циклу програмного забезпечення, але в міжнародних стандартах як фундаментальні класифікуються три з них [8, с. 36]: каскадна (водоспадна), інкрементна (поетапна), еволюційна (спіральна). Якість програмного забезпечення визначається вже на етапі проектування спіральною моделлю життєвого циклу програмного забезпечення за допомогою розрахункових та експертних методів вимірювання.
Основні стандартні положення зі створення якісного продукту й оцінки рівня досягнутої якості зафіксовано в міжнародних [1-3] та вітчизняних стандартах [4-6]. Залежно від специфіки програмних продуктів стандарти пропонують термінологію та склад показників (атрибутів) якості. Вони утворюють базові знання і визначають планування, проектування, аналіз, вимірювання та поліпшення якості.
Якість програмного забезпечення визначається набором загальних характеристик, на формулювання яких спрямовані процеси інженерії вимог як складової частини програмної інженерії. Визначення характеристик якості відображає погляд користувача на якість програмного забезпечення. Відповідно до стандарту ISO-9126 [3] визначено шість характеристик:
-
функціональність;
-
надійність;
-
зручність;
-
ефективність;
-
супроводжуваність;
-
переносність.
Функціональність – це сукупність властивостей, які визначають спроможність програмного забезпечення виконувати в заданому середовищі перелік функцій відповідно вимогам до обробки і загальносистемним засобам [7, c. 147].
Надійність – це множина атрибутів, котрі вказують на спроможність програмного забезпечення перетворювати вхідні дані на результати при умовах, що залежать від періоду часу (зношення й старіння програмного забезпечення не враховуються) [9-12].
Зручність – це множина атрибутів, котрі вказують на необхідні або сприятливі умови для використання програмного забезпечення визначеним колом користувачів [7, c. 151].
Ефективність – це множина атрибутів, які показують взаємозв’язок між рівнем виконання програмного забезпечення і кількістю використовуваних ресурсів у початкових умовах [7, c. 152].
Супроводжуваність – це множина властивостей, які вказують на зусилля, котрі необхідно витратити на проведення модифікацій, таких як коригування, удосконалення й адаптацію програмного забезпечення зі зміною середовища, вимог або функціональних специфікацій [7, c. 152].
Переносність – це множина показників, котрі вказують на здатність програмного забезпечення пристосовуватися до роботи при зміні середовища виконання [7, c. 153].
Для проведення оцінки якості програмного забезпечення попередньо визначаються базові значення показників для аналогу, прийнятого за еталон про розробці даного програмного забезпечення. Значення базових показників мають відбивати сучасний світовий рівень розробок. На роль аналогів вибирається реальне програмне забезпечення того самого функціонального призначення, що й порівнюване, з такими ж основними параметрами, що й дана структура, і схожими умовами експлуатації.
Таким чином, аналіз якості є діяльністю, що включає процеси управління, інфраструктуру програмної інженерії, тестування, інженерію вимог. Характеристики якості визначають споживчі властивості і мають вартісний вираз, що включає оцінку витрат на процес розробки та експлуатації, оцінку економічних вигод застосування вказаних програм порівняно з іншими засобами вирішення відповідного прикладного завдання, а також перспектив подальшого використання даного програмного забезпечення в умовах зміни середовища функціонування.
- Література:
-
NASA – STD – 2201/Software Assurance Standart, 1993.
-
ANCI/IEEE 730-1.IEEE Standart for Software Guality Analisys Plans, 1989.
-
ISO/IEC 9126. Information Technology. – Software Quality Characteristics and metrics, 1997.
-
ДСТУ 2844 – 1994. Програмні засоби ЕОМ. Забезпечення якості. Терміни та визначення.
-
ДСТУ 2850 – 1994. Програмні засоби ЕОМ. Забезпечення якості. Показники та методи оцінювання якості програмного забезпечення.
-
ДСТУ 3230 – 1995. Управління якістю та забезпечення якості. Терміни та визначення.
-
Бабенко Л.П. Основи програмної інженерії: Навч. посіб. / Л.П. Бабенко, К.М. Лаврішева. – К.: Т-во «Знання», КОО, 2001. – 269 с. – (Вища освіта ХХІ століття).
-
Липаев В.В. Программная инженерия. Методологические основы / Липаев В.В. – М.: ТЕИС, 2006. – 608 с.
-
Липаев В.В. Надежность программных средств / Липаев В.В. – М.: СИНТЕГ, 1998. – 231 с.
-
Липаев В.В. Тестирование программ / Липаев В.В. – М.: Радио и связь, 1986. – 296 с.
-
Майерс Г. Надежность программного обеспечения / Майерс Г. – М.: Мир, 1980. – 360 с.
-
Гласс Г. Руководство по надежному программированию / Гласс Г. – М.: Финансы и статистика, 1982. – 256 с.