Якість програмного забезпечення (ПО) визначається на основі вивчення зовнішніх і внутрішніх особливостей продукту. Зовнішнє якість визначається по тому, як воно працює в режимі реального часу, наскільки продуктивно для користувачів. Друга особливість фокусується на внутрішніх аспектах, які залежать від якості написаного коду. Користувач більше зосереджується на тому, як працює на зовнішньому рівні, якість якого може підтримуватися тільки в тому випадку, якщо фахівець написав хороший програмний код.
Якість програмного забезпечення
В даний час існує два важливих підходу, які використовуються для визначення якості:
Все, що не відповідає вимозі клієнта, потрапляє в розряд дефектів. Команда розробників, яка не в змозі повністю зрозуміти вимоги клієнта, буде допускати помилки проектування.
В управлінні дефектами їх категорії визначаються на основі серйозності. Кількість проблем з підраховується і приймаються заходи, відповідно до встановленої серйозності. Контрольні діаграми можуть бути створені для вимірювання можливостей процесу розробки.
Якість програмного забезпечення значно поліпшилося за останні два десятиріччя. Одна з причин цього полягає в тому, що компанії використовують нові технології, такі як об’єктно-орієнтовану розробку та інструменти CASE. Крім того, можна спостерігати зростаючу важливість впровадження методів управління на виробництві.
Управління якістю ЗА ділиться на три основних напрямки:
Політика організації SQA
Політика організації стосовно якості програмного забезпечення повинна виконувати наступні вимоги:
- Відповідність цілям і завданням організації.
- Прихильність загальним концепціям забезпечення якості.
- Прихильність стандартам якості, прийнятим організацією.
- Зобов’язання виділяти адекватні ресурси.
- Прагнення до постійного поліпшення якості і продуктивності організації.
Щоб були виконані всі вимоги стандарту, компанії призначають відповідального за якістю. Обов’язки працівника:
- Відповідальність за підготовку річної програми заходів та бюджету SQA.
- Організація розробки планів розвитку системи SQA.
- Загальний контроль за виконанням щорічної програми регулярних заходів і запланованих проектів розвитку.
- Визначення відповідності заходів програми характеристиками та обсягом послуг субпідрядника та закупівель, запланованих на майбутній рік.
- Презентація та пропаганда питань SQA для виконавчого керівництва.
- Вивчення пропозицій, підготовлених відділом SQA для щорічної програми заходів, перевірка потенціалу пропозиції для досягнення цілей.
Концепції високого рівня
Якісні характеристики – це концепції високого рівня, які відображають важливі аспекти і не піддаються прямій оцінки якості програмного забезпечення. Замість цього в плані повинні бути визначені відповідні показники, які можна використовувати для визначення однієї чи декількох характеристик.
Наприклад, при оцінці синтаксичного аналізатора XML можна використовувати набір тестів на відповідність XML W3C. Він включає в себе тести, розроблені для задоволення всіх напрямів контролю, а також рекомендації W3C Extensible Markup Language (XML) з особливим акцентом на вимогах до обробки помилок в правильності чи достовірності документів XML. Таким чином відсоток пройдених тестових випадків використовується, як метрика для оцінки таких характеристик розглянутого XML-аналізатора:
- Перспектива користувача.
- Функціональність.
- Надійність і відмовостійкість.
З точки зору користувача є кілька важливих характеристик, що відповідають на такі питання:
- Хто надає повний спектр необхідних функцій за призначенням?
- Надійно працює ЗА для отримання необхідних результатів при правильному використанні?
- Функціонує програма безпечно і надійно у разі неправильного вводу?
- Чи Легко використовувати програмний продукт?
- ЗА функціонує швидко або здається надто повільним?
- Добре поєднується програма з іншим продуктом, який використовує користувач?
Вважаючи, що питання якості користувачеві важливі, ІТ-група, що відповідає за розгортання і обслуговування, може зіткнутися з іншими проблемами:
Неякісними ресурсами вважаються ті, які потребує більше пам’яті і обчислювальної потужності, ніж необхідно.
ІСО забезпечує цю модель двома новими категоріями вищого рівня, пов’язаними з технологічним забезпеченням якості програмного забезпечення.
Вимоги ISO 9126 до продукту
ISO 9126 є міжнародним стандартом для оцінки. Він розділений на чотири частини, в яких розглядаються наступні теми:
- Зовнішні показники.
- Внутрішні показники.
- Модель якості.
- Показники якості програмного забезпечення.
Перша частина ISO 9126 є розширенням попереднього стандарту, виконаного McCall (1977), Boehm (1978) і FURPS у визначенні набору характеристик якості.
Документація ISO 9126 є об’єктом авторського права. Модель якості ISO 9126-1 визначає 6 основних характеристик:
- Функціональність.
- Надійність.
- Юзабіліті.
- ККД.
- Ремонтопридатність.
- Портативність.
Функціональність продукту
Функціональність є основною метою будь-якого продукту або послуги. Чим більше можливостей використання товару, тим складніше стає визначити його функціональність. Для може бути вказаний список того, що для нього доступно.
Деякі перераховані характеристики (наприклад, зручність) присутні лише в певній мірі, тобто не просто «включений» або «вимкнений». Багато людей плутають загальну функціональність процесу та програмного продукту. Часто це пов’язано з тим, що діаграми потоків даних (DFD) і інші інструменти моделювання можуть відображати функціональність процесу, як набір перетворених даних data out.
ISO 9126-1 і інші моделі якості не допомагають виміряти загальні витрати або вигоди процесу, а досліджують тільки програмний компонент. Взаємозв’язок між функціональними можливостями в рамках загального бізнес-процесу виходить за рамки ISO 9126.
Такі можливості атрибутів характеризують корисність в даному середовищі. Кожна з них може бути зміряна тільки за наявності відповідних програм системи.
Характеристики надійності і юзабіліті
Як тільки система програмного забезпечення починає функціонувати, характеристика надійності визначає її здатність підтримувати надання своїх послуг у певних умовах протягом конкретних періодів часу. Одним з аспектів цієї характеристики є відмовостійкість. Наприклад, якщо мережа відключається протягом 20 секунд, то система повинна бути в змозі відновити і продовжити роботу.
Здатність вчитися використовувати систему (навченість) є однією з основних характеристик юзабіліті.
ККД пов’язане із системними ресурсами, що застосовуються при наданні необхідної функціональності. Обсяг дискового простору, пам’ять та мережа є хорошими показниками ККД. Як і у випадку ряду інших критеріїв, існують збігу між ними. Наприклад, зручність використання системи впливає на її продуктивність.
Ремонтопридатність і портативність
Здатність ідентифікувати та виправити помилку у програмному компоненті – це те, до чого відноситься характеристика ремонтопридатності. На її показники впливає читаність або складність коду, а також модульність. Це те, що допомагає ідентифікувати причину несправності, щоб потім її вирішити.
Характеристики ремонтопридатності:
- Анализируемость – виявляє основну причину відмови.
- Мінливість – визначає зусилля, що додаються до модифікації коду для усунення помилки.
- Стабільність – демонструє, наскільки стабільна система в роботі, коли в неї вносяться зміни.
- Тестування – визначає, скільки зусиль йде на тестування системи.
- Переносимість – здатність системи адаптуватися до змін у її середовищі.
- Адаптованість – наскільки легко система адаптується до змін, внесених до специфікації.
- Швидкість установки – наскільки легко система може бути встановлена.
- Можливість заміни – наскільки легко можна замінити компонент системи.
- Вартість якості. Вона дуже важлива. Коли розробник вирішить провести тестування для свого продукту, він насправді збирається витратити час, гроші і зусилля на її перевірку.
- Придатність – визначає, чи відповідають функції вимогам.
- Точність – встановлює правильність реалізації функцій.
- Функціональна сумісність – взаємодіючи з іншими компонентами системи.
- Відповідність ЗА необхідними законами і рекомендацій.
- Забезпечення якості та безпеки програмного забезпечення та обробки транзакцій, пов’язаних з даними.
- Надійність – здатність працювати в певних умовах протягом визначеного періоду часу.
- Зрілість – частота збоїв.
- Відновлюваність – уявлення про здатності системи повернутися до повноцінної роботи після збою.
Портативність ставиться до того, наскільки добре може адаптуватися до змін в середовищі або з його вимогами. Об’єктно-орієнтовані методи проектування і реалізації можуть сприяти тому, наскільки ці характеристики якості програмного забезпечення присутня в даній системі.
Вартість процесів аналізу
Вартість якості розраховується шляхом аналізу витрат на відповідність і невідповідність. Ціна першого показника пов’язана з:
Внутрішні збої – це витрати, які з’являються, коли тестові приклади виконуються вперше на внутрішньому рівні, при цьому деякі з них зазнають невдачі. Витрати виникають, коли програміст повинен виправити всі дефекти, виявлені у його фрагменті під час модульного або компонентного тестування.
Зовнішні збої – це витрати, які виникають, коли дефект встановлюється замовником, а не тестером. Ці витрати набагато більше, ніж ті, які з’являються на внутрішньому рівні. Особливо це актуально, якщо посилюється програмний збій.
Дисциплінований аналіз процесу
Це процесорна оцінка програмного продукту. Вона включає в себе виявлення і характеристику поточної практики, визначення сильних і слабких сторін, а також здатність контролювати або уникати суттєві причини поганої якості товару. Аудит програм може бути трьох типів:
Аудит процесу ЗА виконується у відкритій загальної середовищі з метою поліпшення його показників з використанням програм забезпечення якості програмного забезпечення. Результати такого аудиту є конфіденційними для організації.
Що стосується збору даних, то використовуються чотири методи:
Стандартний метод SCAMPI
Визначення IEEE для забезпечення якості програмного забезпечення:
CMMI (Software Engineering Institute) для поліпшення процесів (SCAMPI) був розроблений для задоволення вимог, заснованих на IPA ЦБА і CBA.
IPI, і SCAMPI складаються з трьох етапів:
- План і підготовка.
- Перевірка оцінки на місці.
- Звіт про результати.
Дії для плану і етапу підготовки включають в себе такі чинники:
- Визначення області оцінки.
- Розробка плану.
- Підготовка оціночної команди.
- Виставлення оцінок учасникам.
- Адміністрування анкети CMMI.
- Вивчення відповідей в анкетах.
- Проведення первинного огляду документів.
Заходи на етапі подання звітності включають в себе:
- Подання остаточних результатів.
- Проведення виконавчої сесії.
- Завершення оцінки якості програмного забезпечення.
Заходи для етапу оцінки на місці включають:
- Організацію відкриття проекту.
- Проведення інтерв’ю.
- Узагальнення інформації.
- Підготовку презентації підсумків.
- Організацію закриття проекту.
Організаційна структура персоналу
Вона включає тих, хто відповідає за якість програмного забезпечення. Такими людьми можуть бути:
- Менеджери.
- Керівники вищої ланки, особливо ті, які безпосередньо відповідають за забезпечення якості.
- Керівники відділу розробки та супроводження.
- Менеджери відділу тестування.
- Менеджери проектів та керівники команд розробки і супроводу проектів.
- Лідери команд тестування.
- Тестери.
Члени команд тестування:
- Фахівці SQA і зацікавлені практики.
- SQA піклувальники.
- Члени комітету та учасники форуму SQA.
- Члени команди підрозділу SQA.
Тільки керівники і співробітники відділу тестування зайняті повний робочий день для виконання завдань SQA. Інші присвячують лише частину свого робочого часу питань якості.
По суті, в організаціях по розробці існує трирівнева структура управління:
- Вище керівництво.
- Управління відділом.
- Управління проектом.
Менеджер проекту – це особа, відповідальна за те, щоб усі члени команди виконували зазначені процедури та інструкції. У його завдання входять професійні практичні та управлінські питання. Менеджери проектів виконують такі функції:
- Робота підрозділу по розробці і супроводу ПЗ.
- Робота по інтеграції і тестування системи розробки програмного забезпечення, виправлення і виконання регресивних тестів.
- Виконання перевірок і наступні виправлення недоліків.
- Виконання приймально-здавальних випробувань.
- Установка програмного забезпечення на віддалених клієнтських сайтах.
Необхідність встановлення антивірусних утиліт
Купуючи нове, користувач замислюється над питанням про те, коли необхідна купівля антивірусного програмного забезпечення. Багато хто все ще називають цей тип З антивірусом, хоча сьогодні цей термін застарів.
Найгірше те, що «найкраща» шкідлива програма, якщо його можна так назвати, тихо проникає на комп’ютер без відома господаря. Можливо, вона буде прихованою від очей користувача, але шкоду принесе.
З серйозною модернізацією операційних систем необхідність встановлення подібних сумнівних програм по захисту ПК відпала. У користувачів тепер є Windows 10. В ній Microsoft вбудувала два важливих інструменту: брандмауер і захисник Windows.
Ці два удари призначені для забезпечення безпеки ПК. Оскільки вони інтегровані в ОС, то не потрібно зайвих зовнішніх програмних ресурсів. Microsoft часто оновлює утиліти, намагаючись не допустити появи нових загроз. Якщо з якої-небудь причини щось проривається, існує посилена версія “оборони” – захисник Windows. Він працює в автономному режимі. Можна запустити його, не підключаючись до інтернету з USB-накопичувача.
Захисник Windows – хороший інструмент. Немає ніяких причин не використовувати його. З ним у власників нового не виникають такі аварійні ситуації, коли необхідна купівля антивірусного програмного забезпечення.