Якість програмного забезпечення — Вікіпедія
Цикл розробки програмного забезпечення |
---|
![]() Програміст за роботою |
Діяльність і кроки |
Допоміжні дисципліни |
Практики |
Інструменти |
Стандарти та галузі знань |
Якість програмного забезпечення — характеристика програмного забезпечення, ступінь відповідності ПЗ до вимог. При цьому вимоги можуть трактуватись по-різному, що породжує декілька незалежних визначень терміну. Якість ПЗ – набір властивостей продукту (сервісу або програм), що характеризують його здатність задовольнити встановлені або передбачувані потреби замовника. Поняття якості має різні інтерпретації залежно від конкретної програмної системи і вимог до неї.
Якість коду може визначатись різними критеріями. Деякі з них мають значення тільки з точки зору людини. Наприклад, форматування тексту програми — неважливо для комп'ютеру, але може мати велике значення для супроводу. Багато з існуючих стандартів кодування, що визначають специфічні для мови програмування угоди та задають низку правил, мають на меті полегшити супровід ПЗ в майбутньому. Також існують інші критерії, що визначають чи «гарно» написаний код, наприклад, такі, як структурованість — ступінь логічного розділення коду на блоки.
Деякі фактори:
- Прочитність коду
- Легкість підтримки, тестування, відлагодження, виправляння помилок, рефакторингу та портування
- Низька складність коду
- Коректність обробки винятків
Методи покращення якості коду: рефакторинг.
Стандарт ISO/IEC 9126 регламентує зовнішні і внутрішні характеристики якості. Перші відображають вимоги до функціонування програмного продукту. Для кількісного встановлення критеріїв якості, за якими буде здійснюватися перевірка і підтвердження відповідності ПЗ заданим вимогам, визначаються відповідні зовнішні вимірювані властивості (зовнішні атрибути) ПЗ, метрики (наприклад, час виконання окремих компонентів), діапазони зміни значень і моделі їх оцінки. Метрики використовуються на стадії тестування або функціонування і називаються зовнішніми метриками. Вони являють собою моделі оцінки атрибутів.
Внутрішні характеристики якості і внутрішні атрибути ПЗ використовуються для складання плану досягнення необхідних зовнішніх характеристик якості продукту. Для квантифікації внутрішніх характеристик якості застосовують внутрішні метрики, як інструмент перевірки відповідності проміжних продуктів внутрішнім вимогам до якості, які формулюються на процесах, що передують тестуванню.
Зовнішні і внутрішні характеристики якості відображають властивості самого ПЗ (працюючого або не працюючого), а також погляд замовника і розробника на таке ПЗ. Безпосереднього кінцевого користувача ПЗ цікавить експлуатаційна якість ПЗ – сукупний ефект від досягнення характеристик якості, що виміряється строком результату, а не властивістю самого ПЗ. Це поняття ширше, ніж будь-яка окрема характеристика (наприклад, зручність використання або надійність).
Моделі мають різну кількість рівнів і повністю або частково збігаються щодо набору характеристик якості. Наприклад, модель якості МакКолла на найвищому рівні має три характеристики: функціональність, модифікованість і переносність, а на нижчих рівнях моделі – 11 підхарактеристик якості і 18 критеріїв (атрибутів) якості. Стандарт ISO 9126 пропонує використовувати для опису внутрішнього та зовнішнього якості ПЗ багаторівневу модель. На верхньому рівні виділено 6 основних характеристик якості ПЗ. Кожна характеристика описується за допомогою кількох вхідних у неї атрибутів. Для кожного атрибута визначається набір метрик, що дозволяють його оцінити. Множина характеристик і атрибутів якості згідно з ISO 9126.
Визначення цих характеристик і атрибутів за стандартом ISO 9126:2001 (на сьогоднішній день вже існує оновлений стандарт ISO/IEC 25010 [Архівовано 11 липня 2020 у Wayback Machine.]):
- Функціональність (functionality). Здатність ПЗ в певних умовах вирішувати задачі, потрібні користувачам. Визначає, що саме робить ПЗ, які задачі воно вирішує.
- Функціональна придатність (suitability). Здатність вирішувати потрібний набір задач.
- Точність (accuracy). Здатність видавати потрібні результати.
- Здатність до взаємодії (interoperability). Здатність взаємодіяти з потрібним набором інших систем.
- Відповідність стандартам і правилам (compliance). Відповідність ПЗ наявним індустріальним стандартам, нормативним і законодавчим актам, іншим регулюючим нормам.
- Захищеність (security). Здатність запобігати неавторизованому, тобто без вказівки особи, що намагається його здійснити, і недозволеному доступу до даних і програм.
- Надійність (reliability). Здатність ПЗ підтримувати визначену працездатність у заданих умовах.
- Зрілість, завершеність (maturity). Величина, зворотна частоті відмов ПЗ. Звичайно виміряється середнім часом роботи без збоїв і величиною, зворотною імовірності виникнення відмови за даний період часу.
- Стійкість до відмов (fault tolerance). Здатність підтримувати заданий рівень працездатності при відмовах і порушеннях правил взаємодії з середовищем.
- Здатність до відновлення (recoverability). Здатність відновлювати визначений рівень працездатності та цілісність даних після відмови, необхідні для цього час і ресурси.
- Відповідність стандартам надійності (reliability compliance). Цей атрибут доданий в 2001 році.
- Зручність використання (usability) або практичність. Здатність ПЗ бути зручним у навчанні та використанні, а також привабливим для користувачів.
- Зрозумілість (understandability). Показник, зворотний до зусиль, які затрачаються користувачами на сприйняття основних понять ПЗ та усвідомлення їх застосовності для розв'язання своїх задач.
- Зручність навчання (learnability). Показник, зворотний зусиллям, затрачуваним користувачами на навчання роботі з ПЗ.
- Зручність роботи (operability). Показник, зворотний зусиллям, що вживається користувачами для розв'язання своїх задач за допомогою ПЗ.
- Привабливість (attractiveness). Здатність ПЗ бути привабливим для користувачів. Цей атрибут доданий в 2001 році.
- Відповідність стандартам зручності використання (usability compliance). Цей атрибут доданий в 2001 році.
- Продуктивність (efficiency) або ефективність. Здатність ПЗ при заданих умовах забезпечувати необхідну працездатність стосовно виділюваного для цього ресурсам. Можна визначити її і як відношення одержуваних за допомогою ПЗ результатів до затрачуваних на це ресурсів усіх типів.
- Часова ефективність (time behaviour). Здатність ПЗ видавати очікувані результати, а також забезпечувати передачу необхідного об'єму даних за відведений час.
- Ефективність використання ресурсів (resource utilisation). Здатність вирішувати потрібні задачі з використанням певних об'ємів ресурсів певних видів. Маються на увазі такі ресурси, як оперативна й довгострокова пам'ять, мережні з'єднання, пристрої вводу та виводу та ін.
- Відповідність стандартам продуктивності (efficiency compliance). Цей атрибут доданий в 2001 році.
- Зручність супроводу (maintainability). Зручність проведення всіх видів діяльності, пов'язаних із супроводом програм.
- Аналізованість (analyzability) або зручність проведення аналізу. Зручність проведення аналізу помилок, дефектів і недоліків, а також зручність аналізу необхідності змін і їх можливих наслідків.
- Зручність внесення змін (changeability). Показник, зворотний трудозатратам на виконання необхідних змін.
- Стабільність (stability). Показник, зворотний ризику виникнення несподіваних ефектів при внесенні необхідних змін.
- Зручність перевірки (testability). Показник, зворотний трудозатратам на проведення тестування і інших видів перевірки того, що внесені зміни привели до потрібних результатів.
- Відповідність стандартам зручності супроводу (maintainability compliance). Цей атрибут доданий в 2001 році.
- Переносимість (portability). Здатність ПЗ зберігати працездатність при перенесенні з одного оточення в інше, включаючи організаційні, апаратні й програмні аспекти оточення.
- Адаптованість (adaptability). Здатність ПЗ пристосовуватися різним оточенням без проведення для цього дій, крім заздалегідь передбачених.
- Зручність установки (installability). Здатність ПЗ бути встановленим або розгорнутим у певному оточенні.
- Здатність до співіснування (coexistence). Здатність ПЗ співіснувати з іншими програмами у загальному оточенні, ділячи з ними ресурси.
- Зручність заміни (replaceability) іншого ПЗ даним. Можливість застосування даного ПЗ замість інших програмних систем для вирішення тих же задач у певному оточенні.
- Відповідність стандартам переносимості (portability compliance). Цей атрибут доданий в 2001 році.
Стандарт ISO/IEC 25010[1] (затверджений у грудні 2019 року) включає 8 характеристик якості:
- функціональна придатність (Functional Suitability);
- ефективність роботи (Performance efficiency);
- сумісність (Compatibility);
- зручність використання (Usability);
- надійність (Reliability);
- безпека (Security);
- зручність супроводу (Maintainability);
- переносимість (Portability).
Окрім технічної точки зору на якість ПЗ, є також оцінка якості з позиції звичайного користувача. Для цього аспекту якості використовують термін «англ. usability». Для оцінки цього аспекту якості, відповідають на наступні питання:
- Чи є інтерфейс користувача інтуїтивно зрозумілим?
- Наскільки легко виконувати прості, часті операції?
- Наскільки легко виконувати складні операції?
- Чи зрозумілі повідомлення про помилки?
- Чи завжди програма поводить себе відповідно до очікувань користувача?
- Чи є документація до ПЗ, наскільки вона повна?
- Чи є інтерфейс користувача само-документуючим?
- Чи завжди затримки відповіді від програми є прийнятними?
- Якість коду має значення [Архівовано 16 липня 2013 у Wayback Machine.]
- Якість ПЗ
- Навчання. Студентська фабрика програм. Якість ПЗ
- Тестування оточення методів оцінки якості ПЗ [Архівовано 13 серпня 2013 у Wayback Machine.]
- Тестування програмного забезпечення [Архівовано 5 жовтня 2021 у Wayback Machine.]