- •5. Вимоги до програмного забезпечення
- •5.1. Функціональні і нефункціональні вимоги
- •5.1.1. Функціональні вимоги
- •5.1.2. Нефункціональні вимоги
- •5.1.3. Вимоги предметної області
- •5.2. Призначені для користувача вимоги
- •5.3. Системні вимоги
- •5.3.1. Структурована мова специфікацій
- •5.3.3. Специфікація інтерфейсів
- •5.3.2. Створення специфікацій за допомогою pdl
- •5.4. Документування системних вимог
5.3. Системні вимоги
Системні вимоги – це більш деталізований опис призначених для користувача вимог. Вони звичайно служать основою для укладення контракту на розробку програмної системи і тому повинні надавати максимально повну специфікацію системи в цілому. Системні вимоги також використовуються як відправна крапка на етапі проектування системи.
Специфікація системних вимог може будуватися на основі різних системних моделей, таких, як об'єктна модель або модель потоків даних. Різні моделі, що використовуються при розробці специфікації системних вимог, описані в главі 7.
У принципі системні вимоги визначають, що повинна робити система, не показуючи при цьому механізму її реалізації. Але, з другого боку, для повного опису системи потрібна інформація про неї, яка по можливості повинна включати всю деталізовану інформацію про системну архітектуру. На те існує ряд причин.
Первинна архітектура системи допомагає структурувати специфікацію вимог. Системні вимоги повинні описувати підсистеми, з яких складається система, що розробляється.
Система в більшості випадків повинна взаємодіяти з вже існуючими системами. Це накладає певні обмеження на архітектуру нової системи.
Зовнішньою системною вимогою може виступати умова використання для системи спеціальної архітектури (див. розділ 18).
Специфікації системних вимог часто пишуться природною мовою. Але, як указувалося в розділі 5.2, використовування природної мови може породити певні проблеми при написанні специфікації, оскільки ті, хто пише специфікацію, і ті, хто її читає, одні і ті ж слова і вирази повинні розуміти однаково. Проте насправді це не так, оскільки природній мові властива певна розмитість понять. Внаслідок цього одна і та ж вимога може потрактувати різними людьми по-різному.
Щоб уникнути подібних проблем, розроблені методи опису вимог, які структурують специфікацію і зменшують розмитість визначень. Ці методи представлені в табл. 5.3. Окрім цього, розроблені інші підходи, наприклад спеціальні мови опису вимог, які використовуються відносно рідко. В цьому розділі розглядаються перші два підходи з описаних в табл. 5.3.
Таблиця 5.3. Способи запису специфікацій вимог
Система запису |
Опис |
Структурована природна мова |
Використовування стандартних форм і шаблонів для написання специфікації |
Мови опису програм |
Використовування спеціальних структурованих мов, подібних мовам програмування, де специфікація вимог будується на основі вибраної операційної моделі системи |
Графічні нотації |
Графічна мова, що використовує для опису функціональних вимог діаграми і блок-схеми, доповнені текстовими поясненнями. Найвідоміший приклад такої графічної мови - діаграми структурного аналізу і проектування ПЗ (SADT). В наступному розділі розглядається інший приклад графічних нотацій, а саме метод опису варіантів використовування |
Математичні специфікації |
Це системи нотацій, засновані на математичних концепціях, таких, як теорія кінцевих автоматів або теорія множин. Це формалізований однозначний і позбавлений двозначності запис системних вимог. Проте багато замовників ПЗ не розуміють формальних специфікацій, унаслідок чого виникають певні проблеми при заключенні контрактів на розробку програмних продуктів. Формальні специфікації розглядаються в главі 9 |
