- •3. Аналіз вимог і визначення специфікацій програмного забезпечення
- •3.1. Визначення вимог до програмних продуктів
- •3.1.1. Функціональні вимоги
- •3.1.2. Експлуатаційні вимоги.
- •3.2. Вибір архітектури програмного забезпечення
- •3.3. Структура і формат даних. Статичні, напівстатичні і динамічні структури
- •3.3.1. Класифікація структур даних
- •3.3.2. Прості структури даних
- •3.3.3. Статичні структури даних
- •3.3.4. Напівстатичні структури даних
- •3.3.5. Динамічні структури даних
- •3.4. Модульне програмування
- •3.4.1. Поняття модуля
- •3.4.2. Основні характеристики програмного модуля
- •3.4.3. Модульна структура програмних модулів
- •3.4.4. Методи розробки при модульному програмуванні
- •Ціленаправлена конструктивна реалізація
- •3.5. Аналіз вимог і визначення специфікацій при структурному підході
- •3.5.1. Специфікації процесів
- •3.5.2. Словник термінів
- •3.5.4. Функціональні діаграми
- •3.5.5. Діаграми потоків даних (dfd)
- •3.5.6. Діаграма сутність-зв’язок
- •3.6. Аналіз вимог і визначення специфікацій при об’єктному підході
- •3.6.1. Деякі теоретичні відомості про uml
- •3.6.2. Визначення прецедентів (варіантів використання)
- •3.6.3. Побудова концептуальної моделі предметної області
3. Аналіз вимог і визначення специфікацій програмного забезпечення
Процес проектування програмних продуктів починається з визначення вимог і початкових даних. В результаті аналізу вимог отримують специфікації програмного забезпечення у вигляді текстового описання, структурних схем і діаграм. В процесі визначення специфікацій будують загальну модель предметної області і конкретизують основні функції програмного продукту і його поведінку при взаємодії з навколишнім світом.
3.1. Визначення вимог до програмних продуктів
Один з найвідповідальніших етапів створення програмного продукту – етап постановки задачі. На цьому етапі приймаються важливі рішення відносно функцій створюваного ПЗ, експлуатаційних обмежень, які накладаються на нього. Проводиться вибір архітектури, середовища розробки ПЗ, інтерфейсу користувача та ін. Від цього вибору буде залежати якість і вартість кінцевого програмного продукту.
3.1.1. Функціональні вимоги
Функціональні вимоги описують сервіси, які надаються програмним середовищем, його поведінку в певних ситуаціях, реакцію на ті чи інші вхідні дані і дії які система дозволить виконувати користувачам. Інколи сюди додається інформація про те, що система робити не повинна.
Кожний програмний продукт призначений для виконання визначених функцій. Для того щоб визначити, підходить та чи інша програма для розв’язання задач, необхідно мати чіткий набір критеріїв, на основі яких можна зробити правильний вибір.
При написанні функціональних вимог необхідно враховувати те, що чим вони детальніші, тим більш точна оцінка робіт по строкам і вартості буде проведена перед розробкою технічного завдання на створення програмного забезпечення. Якщо на наступних етапах розробки ПЗ не виникає доповнень до початково сформульованих функціональних вимог, то ця оцінка буде достатньо точною. Одночасно при описанні вимог не потрібно заглиблюватись в будь-які дрібні деталі. Необхідно описувати саме функції програми, а не те, яку кнопку треба натиснути, щоб отримати результат. Такі деталі повинні бути детально пророблені вже в процесі розробки технічного завдання.
Функціональні вимоги документуються в специфікації вимог до програмного забезпечення, де описуються як можна більш повно очікувану поведінку системи.
Необхідно, щоб функціональна специфікація програмного засобу була математично точною. Бажано навіть, щоб при її розробці використовувались математичні методи і формалізовані мови. Вона повинна базуватись на чітких поняттях і твердженнях, що однозначно розуміються розробниками і замовниками програмного продукту.
Функціональна специфікація складається з трьох частин:
Описання зовнішнього інформаційного середовища, з якою буде взаємодіяти програмне забезпечення. Повинні бути визначені всі канали вводу і виводу і всі інформаційні об’єкти, до яких буде примінятись ПЗ, а також суттєві зв’язки між цими інформаційними об’єктами.
Визначення функцій програмного забезпечення, визначених на множині станів цього інформаційного середовища. Вводяться позначення всіх функцій, специфікуються їх вхідні дані і результати виконання, з вказуванням типів даних і завдань всіх обмежень, які повинні задовольняти ці дані і результати. Визначається вміст кожної з цих функцій.
Описання виключних ситуацій, якщо такі можуть виникнути при виконанні програм, і реакцій на ці ситуації, які повинні забезпечити відповідні програми. Повинні бути перераховані всі існуючі випадки, коли програмне забезпечення не зможе нормально виконати ту чи іншу свою функцію. Для кожного такого випадку повинна бути визначена реакція програми.