- •5. Вимоги до програмного забезпечення
- •5.1. Функціональні і нефункціональні вимоги
- •5.1.1. Функціональні вимоги
- •5.1.2. Нефункціональні вимоги
- •5.1.3. Вимоги предметної області
- •5.2. Призначені для користувача вимоги
- •5.3. Системні вимоги
- •5.3.1. Структурована мова специфікацій
- •5.3.2. Створення специфікацій за допомогою pdl
- •5.3.3. Специфікація інтерфейсів
- •5.4. Документування системних вимог
5.1.3. Вимоги предметної області
Ці вимоги відображають умови, в яких експлуатуватиметься програмна система. Вони можуть бути подані у вигляді нових функціональних вимог, у вигляді обмежень на вже сформульовані функціональні вимоги або у вигляді вказівок, як система повинна виконувати обчислення. Ці вимоги дуже важливі, оскільки відображають ту предметну область, де використовуватиметься дана система. Невиконання вимог предметної області може привести до виходу системи з ладу.
Як приклад розглянемо вимоги до бібліотечної системи (див. розділ 5.1.1).
Стандартний призначений для користувача інтерфейс, що надає доступ до всіх бібліотечних баз даних, повинен грунтуватися на стандарті Z39.50.
Для забезпечення авторських прав деякі документи повинні бути видалені з системи відразу після отримання. Для цього, залежно від бажання користувача, ці документи можуть бути роздруковані або на локальному системному сервері, або на мережному принтері.
Перша вимога є обмеженням на системну функціональну вимогу. Вона указує, що призначений для користувача інтерфейс до баз даних повинен бути реалізований згідно відповідному бібліотечному стандарту. Друга вимога є зовнішньою і направлена на виконання закону про авторські права, вживаного до бібліотечних матеріалів. З цієї вимоги витікає, що система повинна мати засіб "видалити_на_друк", вживаний автоматично для деяких типів бібліотечних документів.
У
врізці 5.3 приведений приклад вимоги
предметної області, вказуючої, як повинні
виконуватися обчислення. Вона узята із
специфікації системи автоматичного
гальмування потягу. Ця система повинна
автоматично зупиняти потяг на червоний
сигнал семафора. Дана вимога указує
спосіб обчислення швидкості потягу при
гальмуванні. Тут використана термінологія,
вживана при розрахунках швидкостей
потягу. Щоб розібратися в ній, необхідні
відповідні знання про системи управління
поїздами і їх характеристиках.
Приведений приклад показує основну проблему, пов'язану з вимогами предметної області. Вимоги цього типу використовують мову і позначення, властиві даній предметній області, що утрудняє їх розуміння розробниками ПЗ. Унаслідок цієї вимоги предметної області не завжди виконуються так, як мається на увазі замовниками програмної системи.
5.2. Призначені для користувача вимоги
Призначені для користувача вимоги до системи повинні описувати функціональні і нефункціональні системні вимоги так, щоб вони були зрозумілі навіть користувачу, що не має спеціальних технічних знань. Ці вимоги повинні визначати тільки зовнішню поведінку системи, уникаючи по можливості визначення структурних характеристик системи. Призначені для користувача вимоги повинні бути написані природною мовою з використанням простих таблиць, а також наочних і зрозумілих діаграм.
Разом з тим при описі вимог на природній мові можуть виникнути різні проблеми.
Відсутність чіткості викладу. Іноді нелегко висловити яку-небудь думку природною мовою чітко і недвозначно, не зробивши при цьому текст багатослівним і важкочитаємим.
Змішення вимог. В призначених для користувача вимогах відсутнє чітке розділення на функціональні і нефункціональні вимоги, на системні цілі і проектну інформацію.
Об'єднання вимог. Декілька різних вимог до системи можуть описуватися як єдина призначена для користувача вимога.
Я
Врізка 5.4. Вимога
до бази даних для середовища програмування
Ada
База даних повинна
підтримувати генерацію і управління
конфігурацією об'єктів; в базі даних
згруповані об'єкти можуть виступати у
вигляді окремих об'єктів. Засіб управління
конфігурацією повинен надати можливість
доступу до об'єктів, що входять до складу
груп, за допомогою їх неповних імен.
В
Врізка 5.5. Приклад
призначеної для користувача вимоги
Для
точного позиціонування структурних
елементів схеми користувач може
відобразити на екрані сітку, параметри
якої можуть задаватися (в сантиметрах
або дюймах) спеціальною опцією на панелі
управління. За замовчуванням сітка не
відображується. Сітка може бути виведена
на екран або схована в будь-який момент
редагування, також в будь-який момент
є можливість переходу з сантиметрів
на дюйми і навпаки. Крок сітки повинен
підганятися під розмір схеми.
В цій вимозі переплітається не менше трьох різних вимог.
Концептуальна функціональна вимога: система редагування повинна мати в розпорядженні можливість відображення сітки. Це основна причина появи даної вимоги.
Нефункціональна вимога, що дає докладну інформацію про те, в яких одиницях вимірюватиметься крок сітки (сантиметри або дюйми).
Нефункціональна призначена для користувача вимога, що відноситься до інтерфейсу: як користувач може відобразити або приховати сітку.
О
Врізка 5.6. Опис
засобу відображення сітки
2.6. Засіб
відображення сітки
2.6.1.
Редактор, повинен мати засіб виводу на
екран сітки, яка складається з паралельних
горизонтальних і вертикальних ліній
і повинна відображатися у вигляді фону
на екрані редактора. Сітка -
пасивний
елемент, що полегшує вирівнювання
користувачем структурних елементів
схем.
Обгрунтування.
Сітка повинна допомогти користувачеві
створити акуратну схему з правильно
розміщеними елементами. Хоча активна
сітка (така, в якій елементи «прив’язуються»
до вузлів сітки) також може бути корисною,
вона не забезпечує точного позиціонування
елементів. Користувач визначить
положення елементів схеми краще, ніж
це зробить автоматизований засіб.
Коли призначена для користувача вимога містить так багато інформації, це утрудняє його розуміння і обмежує свободу розробника в пошуку рішення задачі, поставленої у вимозі. Призначені для користувача вимоги повинні просто описувати основні можливості системи. У врізці 5.6 показана призначена для користувача вимога, сфокусована увага тільки на самому засобі відображення сітки без деталізації його властивостей.
Зверніть увагу на обгрунтування вимоги. Воно допомагає розробникам зрозуміти, чому ця вимога включена в специфікацію і в якому ступені вона може змінитися в майбутньому. Наприклад, в обгрунтуванні вимоги на засіб відображення сітки сказано, що також може бути корисною активна сітка, де елементи схеми автоматично "прив'язуються" до вузлів сітки. Проте тут перевага свідомо віддана пасивній сітці. Якщо надалі виникне необхідність внести зміни в дану вимогу, то з цього обгрунтування буде видно, що варіант пасивної сітки вибраний навмисно, а не з'явився на етапі реалізації системи.
Наступний приклад вимоги, що також відноситься до системи редагування схеми структури ПЗ, показаний у врізці 5.7. Це специфікація системної функції, що деталізується. В даному випадку вимога включає список дій, які повинен виконати користувач для реалізації даної функції; іноді необхідно записати подібну послідовність дій, оскільки деякі функції повинні виконуватися тільки строго певним способом. Інформація про те, як реалізується дана функція, в цій вимозі відсутня.
Щ
Врізка 5.7.
Користувацька вимога по створенню
структурних елементів схеми
3.5 1. Додавання
структурних елементів в схему
3.5.1.1. Редактор
повинен мати засіб надання користувачеві
можливості додавати в схему нові
структурні елементи вибраного типу.
3.5.1.2. Послідовність
дій користувача для додавання в схему
нового структурного елемента
1. Користувач
вибирає тип елемента, що додається.
2. Користувач
поміщує курсор в потрібну позицію на
схемі і вказує символ, яким буде
відображатися новий елемент.
3. Користувач
переміщає символ елемента в кінцеву
позицію.
Обгрунтовування.
Такий підхід до реалізації додавання
нових структурних елементів надає
користувачеві безпосередній контроль
над вибором типу елемента і його
позиціонуванням на схемі.
Розробіть стандартну форму для запису призначених для корис-тувача вимог і неухильно її дотримуйтеся. Стандартна форма запису зменшує неясності у формулюванні вимог і дозволяє легко їх перевірити.
Рекомендується включати у форму запису вимоги не тільки її формулювання, але й її обгрунтовування і посилання на більш деталізовану специфікацію вимог.
Розрізняйте обов'язкові і описові вимоги, як показано у врізці 5.7. Тут обов'язковою вимогою є наявність засобу додавання нових структурних елементів, описовим - опис послідовності дій користувача. Описова вимога не є абсолютно необхідною для реалізації даної призначеної для користувача вимоги і при необхідності може бути змінена.
Використовуйте різні зображення шрифту (напівжирне і курсив) для виділення ключових частин вимоги.
Уникайте по можливості комп'ютерного жаргону. Це не виключає використовування технічних термінів тієї предметної області, для якої розробляється програмне забезпечення.
