Класифікація програмних продуктів за функціональною ознакою

Атестація вимог

Під час процесу атестації повинні бути виконані різні типи перевірок документації вимог:

1. Перевірка правильності вимог.

2. Перевірка на несуперечність.

3. Перевірка на повноту.

4. Перевірка на здійснимість.

Існує ряд методів атестації вимог:

1. Огляд вимог.

2. Прототипування.

3. Генерація тестових сценаріїв.

4. Автоматизований аналіз несуперечності.

Управління вимогами— це процес управління змінами системних вимог. Процес управління вимогами виконується спільно з іншими процесами розробки вимог. Початок цього процесу планується на той же час, коли починається процес первинного формування вимог, безпосередньо процес управління вимогами повинен початися відразу після того, як чорнова версія специфікації вимог буде готова.

Етап постановки завдання - один з найбільш відповідальних етапів створення програмного продукту. На цьому етапі формулюють основні вимоги до програмного забезпечення, яке розробляється. Від того, наскільки повно визначені функції та експлуатаційні вимоги, наскільки правильно прийняті принципові рішення, що визначають процес проектування, багато в чому залежить вартість розробки та її якість.

Кожен програмний продукт призначений для виконання певних функцій. За призначенням усі програмні продукти можна розділити на три групи: системні, прикладні та гібридні (рис. 5.7).


До системних зазвичай відносять програмні продукти, що забезпечують функціонування обчислювальних систем (як окремих комп'ютерів, так і мереж). Це -
операційні системи, оболонки і інші службові програми (утиліти).

Операційні системи, як правило, управляють ресурсами (процесором і пам'яттю), процесами (завданнями і потоками) і пристроями. Складність організації операційних систем обумовлюється ступенем автоматизації і досягнутою ефективністю процесів управління. Так мультипрограмні операційні системи істотно складніші однопрограмних, що добре видно на прикладі MS DOS, Windows.
Оболонки (наприклад, Norton Commander) свого часу з'явилися для організації більш зручного інтерфейсу користувача з файлової системою MS-DOS. Сучасні оболонки, такі, як FAR, використовують для забезпечення користувачу звичного середовища при роботі з файловою системою.

До утиліт прийнято відносити програми і системи, які безпосередньо не входять до складу операційної системи, але забезпечують виконання певних функцій, таких як
архівація файлів, перевірка комп'ютера на зараження вірусами, здійснення віддаленого доступу до інформації та ін.

Прикладні програми і системи орієнтовані на рішення конкретних для користувача завдань. Розрізняють користувачів:

· розробників програм;

· непрограмістів, що використовують комп'ютерні системи для досягнення своїх цілей.

Розробники програм використовують спеціальні інструментальні засоби, такі як компілятори, компонувальники, відладчики, які останнім часом зазвичай інтегрують у системи програмування і середовища розробки. Сучасні середовища програмування, наприклад, Delphi, Visual C + +, реалізують візуальну технологію розробки програмних продуктів і надають програмістам величезні бібліотеки компонентів, які можна включати у свою розробку. До цієї ж групи відносять інструментальні комплекси створення баз даних, такі як Access, FoxPro, Oracle, засоби створення інтелектуальних систем, наприклад, експертних, навчальних, систем контролю знань і т. д. Останнє досягнення в цьому напрямі - CASE-засоби розробки програмного забезпечення, такі як ЕRwin, BPwin, Paradigm Plus, Rational Rose тощо.

Користувачі-непрограмісти відповідно до сучасних вимог не повинні бути професіоналами в проблемах створення програмних продуктів і специфіці їх взаємодії
з операційною системою, Для них розробляють спеціальні програмні продукти, орієнтовані на певну предметну область. Такі продукти умовно можна розділити па продукти загального призначення, професійні середовища або пакети, навчальні системи, розважальні програми і т. д.

Продукти загального призначення використовують різні групи користувачів. До них можна віднести текстові редактори, наприклад, WinWord, Excel електронні таблиці типу, графічні редактори, інформаційні системи загального призначення, наприклад, карта Москви, програми-перекладачі, і т. п.

Професійні продукти призначені для фахівців у різних областях, наприклад, до них можна віднести:

• системи автоматизації проектування, орієнтовані на різні технічні області;

• системи-тренажери, наприклад, тренажер для відпрацювання дій пілотів в аварійній
ситуації;

• бухгалтерські системи, наприклад. 1С;

• видавничі системи, наприклад, PageMaker, QuarkXPress;

• професійні графічні системи, наприклад, Adobe Illustrator, Photoshop, CorelDraw та

т. п.

• експертні системи і т. д.

Системи автоматизації виробничих процесів відрізняються від професійних тим,
що вони орієнтовані на користувачів різних професій, пов'язаних єдиним виробничим процесом.

Навчальні програми і системи відповідно до своєї назви призначені для навчання, наприклад, іноземним мовам, правилам дорожнього руху і т. п.

До розважальних відносять ігрові програми, музичні програми, знову ж таки інформаційні системи, але з тестами розважального характеру, наприклад гороскопи і т. п.

Гібридні системи поєднують в собі ознаки системного та прикладного програмного забезпечення. Як правило, це великі, але вузькоспеціалізовані системи, призначені
для управління технологічними процесами різних типів у режимі реального часу. Для підвищення надійності і зниження часу обробки в такі системи зазвичай включають
програми, що забезпечують виконання функцій операційних систем.

До кожного з перерахованих вище типів програмного забезпечення при розробці, крім функціональних, зазвичай пред'являють ще й певні експлуатаційні вимоги.


5.6 Основні експлуатаційні вимоги до програмних продуктів

Експлуатаційні вимоги визначають деякі характеристики розроблюваного програмного забезпечення, що виявляються в процесі його функціонування. До таких характеристик відносять:

правильність - функціонування відповідно до технічного завдання;

універсальність - забезпечення правильної роботи за будь-яких допустимих даних та захисту від неправильних даних;

надійність (перешкодозахищеність) - забезпечення повної повторюваності результатів, т. е. забезпечення їх правильності при наявності різного роду збоїв;

перевіряння - можливість перевірки отриманих результатів;

точність результатів - забезпечення похибки результатів не вище заданої;

захищеність - забезпечення конфіденційності інформації;

програмна сумісність - можливість спільного функціонування з іншим
програмним забезпеченням;

апаратна сумісність - можливість спільного функціонування з деяким Прослухати

обладнанням;

ефективність - використання мінімально можливої ​​кількості ресурсів технічних
засобів, наприклад, часу мікропроцесора або обсягу оперативної пам'яті;

здатність до адаптації - можливість швидкої модифікації з метою пристосування до мінливих умов функціонування;

повторна входимість - можливість повторного виконання без перезавантаження з диска;

реєнтерабельність - можливість «паралельного» використання декількома процесами.

Правильність є обов'язковою вимогою для будь-якого програмного забезпечення: все, що зазначено в технічному завданні, неодмінно має бути реалізовано. Проте слід розуміти, що ні тестування, ні верифікація не доводять правильності створеного програмного продукту. У цьому зв'язку звичайно говорять про певну ймовірність наявності помилок. Природно, чим більша відповідальність перекладається на комп'ютерну систему, тим менше повинна бути ймовірність як програмного, так і апаратного збою. Наприклад, очевидно, що ймовірність неправильної роботи для системи управління атомною електростанцією повинна бути близька до нуля.

Вимога універсальності також зазвичай входить до групи обов'язкових. Нічого хорошого немає в тому, що розроблена система видає результат для некоректних даних або аварійно завершує свою роботу на деяких наборах даних. Однак, як уже згадувалося вище, довести універсальність порівняно складної програми, так само, як її правильність, неможливо, тому має сенс говорити про ступінь універсальності програми.

Практично, чим вище вимоги до правильності та універсальності програмного забезпечення, тим вище і вимоги до його надійності. Джерелами перешкод можуть бути всі учасники обчислювального процесу: технічні засоби, програмні засоби та люди. Технічні засоби схильні до збоїв, наприклад, із-за різких стрибків напруги живлення
або перешкод при передачі інформації по мережах. Програмне забезпечення може містити помилки. А люди можуть помилятися при введенні вихідних даних.

Сучасні обчислювальні пристрої вже досить надійні. Збої технічних засобів, як правило, реєструються апаратно, відповідно результати обчислень у цьому
випадку відновлюються. У разі тривалих обчислень, як правило, проміжні результати зберігають (прийом отримав назву «створення контрольних точок»), що дозволяє при виникненні збою продовжити обчислення з даними, записаними в останній контрольній точці.

Передача інформації по мережах також апаратно контролюється, крім того, зазвичай застосовується спеціальне завадозахищене кодування, яке дозволяє знаходити і виправляти помилки передачі даних. Однак повністю виключити помилки технічних засобів неможливо, тому в тих випадках, коли вимоги до надійності високі, зазвичай використовують дублювання систем, при якому дві системи вирішують одну і ту ж задачу паралельно, періодично звіряючи отримані результати.

Часто самим «ненадійним елементом» сучасних систем є люди. Вже добре відомо, що в умовах монотонної роботи за пультом обчислювальної установки оператори
допускають велику кількість помилок. Відомі й засоби, що дозволяють знизити кількість помилок в конкретних ситуаціях. Так, там, де це можливо, використовують введення надлишкової інформації, що дозволяє виконувати перевірки правильності даних, що вводяться. Крім цього, широко використовують всякого роду підказки, коли інформацію необхідно не вводити, а вибирати з деякого списку і т. п.

Підвищені вимоги до надійності пред'являють при розробці систем управління, які функціонують в режимі реального часу, коли обчислення виконуються паралельно з
технологічними процесами. Суттєва ця вимога і для науково-технічних систем і баз даних.

Для забезпечення перевіряємості слід документально фіксувати вихідні дані, встановлені режими та іншу інформацію, яка впливає на отримувані результати.
Особливо це суттєво у випадках, коли дані надходять безпосередньо від давачів. Якщо такі дані не виводити разом з результатами, то останні не можна буде перевірити.

Точність або величина похибки результатів залежить від точності вихідних даних, ступеня адекватності використовуваної моделі, точності обраного методу і похибки виконання операцій у комп'ютері. Вимоги до точності результатів зазвичай найбільш жорсткі для систем управління технологічними процесами (наприклад, хімічними) і систем навігації (наприклад, система управління стиковкою космічних апаратів).

Забезпечення захищеності (конфіденційності) інформації, що використовується проектованою системою, окрема і в умовах наявності мереж досить складне завдання.
Крім чисто програмних засобів захисту, таких як кодування інформації і ідентифікація користувача, для забезпечення захищеності використовують також спеціальні організаційні прийоми. Найбільш жорсткі вимоги пред'являються до систем, в яких зберігається інформація, пов'язана з державною і комерційною таємницею.

Вимога програмної сумісності може варіюватися від можливості спільної установки з зазначеним програмним забезпеченням до забезпечення взаємодії з ним,
наприклад обміну даними і т. п. Найчастіше доводиться забезпечувати функціонування програмного забезпечення під керуванням заданої операційної системи. Однак може
знадобитися передбачити отримання даних з якоїсь програми або передачі деяких даних їй. У цьому випадку необхідно точно обумовити формати переданих даних.

Вимогу апаратної сумісності в основному формулюють у вигляді мінімально можливої ​​конфігурації обладнання, на якому буде працювати програмне забезпечення.

Якщо передбачається використання нестандартного обладнання, то для нього повинні бути
вказані інтерфейси або протоколи обміну інформацією. При цьому для операційних систем класу Windows нестандартними вважають пристрої, для яких в системі відсутні драйвери - програми, що забезпечують взаємодію пристрої з операційною системою.

Ефективність системи зазвичай оцінюється окремо по кожному ресурсу обчислювальної установки. Часто використовують наступні критерії:

• час відповіді системи (зазвичай віднесене до швидкодії використовуваного обладнання) - для систем, що взаємодіють з користувачем в інтерактивному режимі, і систем реального часу;

• обсяг оперативної пам'яті - для продуктів, що працюють в системах з обмеженим об'ємом оперативної пам'яті, наприклад MS DOS;

• обсяг зовнішньої пам'яті - для продуктів, що інтенсивно використовують зовнішню пам'ять, наприклад баз даних;

• кількість обслуговуваних зовнішніх пристроїв - для продуктів, які здійснюють інтенсивну взаємодію із зовнішніми пристроями, наприклад давачами.

Вимоги ефективності можуть суперечити один одному. Наприклад, щоб зменшити час виконання деякого фрагмента програми, може знадобитися додатковий
обсяг оперативної пам'яті.

Адаптованість, по суті справи, оцінює технологічну якість програмного забезпечення, тому оцінити цю характеристику кількісно практично неможливо.
Можна тільки констатувати, що при створенні продукту використані технології та спеціальні прийоми, які полегшують його модернізацію.

Вимога повторної входимості зазвичай пред'являється до програмного забезпечення, резидентно завантаженого в оперативну пам'ять, наприклад драйверів. Для забезпечення даної вимоги необхідно так організувати програму, щоб ніякі її вихідні дані не затиралися в процесі виконання або відновлювалися на початку або при завершенні кожного виклику.

Вимога реєнтерабельності є більш жорсткою, ніж повторна входимість, так як в цьому випадку всі дані, що змінюються програмою в процесі виконання, повинні бути виділені в спеціальний блок, копія якого створюється для кожного процесу при виклику програми.

Складність багатьох програмних систем не дозволяє відразу сформулювати чіткі вимоги до них. Зазвичай для переходу від ідеї створення деякого програмного забезпечення до чіткого формулювання вимог, які можуть бути занесені до технічного завдання, необхідно виконати передпроектні дослідження в області розробки.