База знань
Якість програмного забезпечення
У різних джерелах термінологія характеристик якості програмного забезпечення, відрізняються одна від одної. Автори створили різні моделі якості зі своїм набором характеристик та атрибутів, і вони можуть бути корисними для обговорення, планування та оцінки якості самих програмних продуктів.
У 1979 році Crosby визначив якість як «відповідність вимогам» («conformance to requirements»), а Juran і Gryna в 1970 році визначили якість як «придатність до використання» («fitness for use»).
«Відповідність вимогам» передбачає, що вимоги повинні бути настільки чітко визначені, що не можуть бути зрозумілі й інтерпретовані некоректно. Будь-які невідповідності повинні розглядатися як дефекти – відсутність якості.
«Придатність до використання» бере до уваги вимоги та очікування кінцевих користувачів продукту, тобто продукт або сервіс, що надається буде зручним для їх потреб. Однак різні користувачі можуть використовувати продукт по-різному. А це означає, що продукт повинен володіти максимально різноманітними варіантами використання. Згідно з визначенням Juran, кожен варіант використання – це характеристика якості та всі вони можуть бути класифіковані за категоріями, як параметри придатності до використання. Іншими словами, чи робить даний продукт те, в чому я маю потребу, чи полегшує він мою роботу, чи можу я використовувати його так, як мені зручно.
Проблема в тому, що специфіковані та зібрані вимоги це зазвичай тільки частина всіх реальних потреб і очікувань замовника. Дуже часто неявні вимоги настільки очевидні для замовника або користувача, що він навіть не припускає, що вони невідомі розробникам. А розробники в свою чергу не готові брати на себе відповідальність за те, що не описано в вимогах. Де ж вихід з цього кола?
В першу чергу – це правильна побудова комунікації з замовником починаючи з найпершого етапу. Якісне виявлення потреб замовника менеджером або бізнес-аналітиком. Проте не менш важливі фактори – це якісне написання коду програмістом і якісна перевірка ПЗ інженером. Все це запорука бездоганної якості програмного забезпечення.
Замовник буде задоволений і приведе з собою ще замовників, тільки в тому випадку, якщо куплений товар буде повністю задовольняти його реальним та життєвим потребам, як специфікованим, так і ні.
Разом з тим все це не так абстрактно, як може здатися з першого разу. Існує набір стандартів ISO 9000, який регулює загальні принципи забезпечення якості у всіх галузях. Найбільш важливими стандартами в розробці ПЗ є:
Так само в кожної компанії можуть бути розроблені свої стандарти якості, що відповідають конкретній специфіці роботи і відповідно її вимогам.
Що ж все-таки з визначенням? На сьогоднішній день їх існує багато, і всі вони один на одного вкрай схожі, можете самі в цьому переконається:
[1061-1998 IEEE Standard for Software Quality Metrics Methodology]
Якість ПЗ – це ступінь, в якій ПО володіє необхідною комбінацією властивостей.
[IEEE Std 610.12-1990]
Якість ПЗ – ступінь, в якій система, компонент або процес задовольняють потреби або очікування замовника або користувача.
[ISO/IEC 25000:2014]
Якість ПЗ – здатність програмного продукту при заданих умовах відповідати встановленим або передбачуваним потребам.
[ISO 8402:1994 Quality management and quality assurance]
Якість ПЗ – це сукупність характеристик ПО, що відносяться до його здатності задовольняти встановлені і передбачувані потреби.
Характеристики якості ПЗ
Функціональність (Functionality) – визначається здатністю ПЗ вирішувати завдання, які відповідають зафіксованим і очікуваним потребам користувача, за заданих умов використання ПЗ. Тобто ця характеристика відповідає за те, що ПЗ працює справно і точно, функціонально сумісно, відповідає стандартам галузі та захищене від несанкціонованого доступу.
Надійність (Reliability) – здатність ПЗ виконувати необхідні завдання у зазначених умовах протягом заданого проміжку часу або вказаної кількості операцій. Атрибути даної характеристики – це завершеність і цілісність всієї системи, здатність самостійно і коректно відновлюватися після збоїв у роботі, відмовостійкість.
Зручність використання (Usability) – можливість легкого розуміння, вивчення, використання і привабливість ПЗ для користувача.
Ефективність (Efficiency) – здатність ПЗ забезпечувати необхідний рівень продуктивності згідно з виділеними ресурсами, часом та іншими зазначеними умовами.
Зручність супроводу (Maintainability) – легкість, з якою ПЗ може аналізуватися, тестуватися, змінюватися для виправлення дефектів, для реалізації нових вимог, для полегшення подальшого обслуговування та адаптуватися до наявного оточення.
Портативність (Portability) – характеризує ПЗ з точки зору легкості його перенесення з одного оточення (software/hardware) в інше.
Модель якості програмного забезпечення
На даний момент найбільш поширена і найширше використовується багаторівнева модель якості програмного забезпечення, представлена у наборі стандартів ISO 9126. На верхньому рівні виділено 6 основних характеристик якості ПЗ, кожну з яких визначають набором атрибутів з відповідними метриками для подальшої оцінки (див. діаграму).
Модель якості програмного забезпечення (ISO 9126-1)