- •1.5. Класифікація програм
- •1.6. Питання для самоперевірки
- •1.7. Завдання для самостійної роботи
- •2.1. Продукти, продукція та програмне забезпечення
- •2.1.1. Продукти інженерії програмного забезпечення
- •2.1.2. Продукція інженерії програмного забезпечення
- •2.1.3. Програмне забезпечення
- •2.2. Модель життєвого циклу
- •2.3. Інженерія програмного забезпечення
- •2.4. Ресурси для створення програмного забезпечення
- •2.4.1. Мови програмування
- •2.4.2. Системи, середовища програмування, середовища для розробки програмного забезпечення
- •2.5. Питання для самоперевірки
- •2.6 Питання для самостійної роботи
- •Опції головного меню для створення та редагування програм
- •Завдання
- •Лабораторна робота 2.2
- •Завдання
- •3.1. Розробка програмних специфікацій
- •3.1.1. Ресурс. Метод
- •3.1.2. Специфікація
- •3.1.3. Специфікування. Процес
- •3.2. Мови специфікації
- •3.2.1. Псевдокод
- •3.2.2. Графічні форми. Блок-схеми
- •3.3. Прагматичні рекомендації
- •3.4. Питання для самоперевірки
- •3.5. Завдання для самостійного виконання
- •3.6. Задачі для досліджень
- •Задачі для самостійного розв’язання
- •Практичне заняття 2 Опис управляючої дії чергування у програмних специфікаціях
- •Приклад складення специфікацій
- •Задачі для самостійного розв’язання
- •Практичне заняття 3 Опис управляючих дій чергування і перетворення у програмних специфікаціях
- •Приклад складення специфікацій
- •Задачі для самостійного розв’язання Практичне заняття 4 Опис вкладеного чергування у програмних специфікаціях
- •Приклад складення специфікацій
- •Задачі для самостійного розв’язання
- •Практичне заняття 5 Опис управляючої дії повторення у програмних специфікаціях
- •Приклад складення специфікацій
- •Задачі для самостійного розв’язання
- •Практичне заняття 6 Опис управляючої дії чергування, вкладеної в дію повторення, у програмних специфікаціях
- •Приклади складення специфікацій
- •Задачі для самостійного розв’язання
- •Практичне заняття 7 Опис вкладеного повторення і з’єднання у програмних специфікаціях
- •Приклади складення специфікацій
- •Задачі для самостійного розв’язання
- •5.1. Принципи інженерії програмного забезпечення і програмні конструкції
- •5.2. Рівні інкапсуляції
- •5.3. Питання для самоперевірки
- •5.4. Тести
3.1.3. Специфікування. Процес
Специфікування – це процес виявлення в опису розв’язуваної задачі (деталізація згідно з вибраним методом) усіх перетворювальних і управляючих дій і опис задачі у вигляді специфікації (наприклад, блок-схеми) за допомогою мови з таким ступенем деталізації якого достатньо для виконання деталізованої специфікації деяким виконавцем, зазвичай комп’ютером.
Процес розв’язування задачі не піддається формалізації тому для його реалізації не можна дати вичерпної методики. Проте варто зазначити, що сутність специфікування полягає у вивченні розв’язання задачі, сформульованого у вигляді вихідної специфікації, та встановлення відповідності між тими частинами розв’язування, які відповідають перетворенням і перетворювальними діями, а також між тими частинами розв’язання, які відповідають поєднанню, чергуванню та повторенню, і відповідними управляючими діями. Установлені відповідності фіксуються у формі специфікації за допомогою мови.
Загалом розглядуваний процес проектування характеризується такими особливостями:
деталізація відбувається лише за допомогою зазначених дій і спрямована „згори-вниз”, від загального до окремого;
деталізація частин специфікації має приводити до розв’язування задачі;
на будь-якому кроці деталізації, якщо вона виконується правильно, вибір порядку деталізації (деталізовіваної дії) неістотний.
У процесі деталізації доти, доки не досягнуто деякого рівня (його досягнення слід відсувати якомога далі, до кінця проектування), не має значення:
вибір конкретного варіанта чергування – важливо лише, щоб його можна було вибрати правильно;
кількість повторень для ітерації – важливо лише, щоб ця кількість була правильною.
Деталізація має вести до отримання специфікації, якомога ближчої до програми. Процес деталізації слід якомога частіше супроводжувати перевіркою прийманих рішень (наприклад, за допомогою тестування).
3.2. Мови специфікації
Для записування специфікацій можуть використовуватись різні мови. Ми рекомендуємо використовувати:
підмножини природної мови, які називають псевдокодами;
графічні форми, які називаються блок-схемами.
3.2.1. Псевдокод
У псевдокоді для подання дій використовуються слова (дієслова), змішані зі словами природної мови. Зазвичай для подання дій у псевдокодах використовуються такі слова:
ПРИСВОЇТИ, УСТАНОВИТИ, ОБЧИСЛИТИ, УВЕСТИ і т.д. – для перетворювальних дій;
ЯКЩО-ТО-ІНАКШЕ, ЯКЩО–ТО – для управляючої дії чергування;
ПОВТОРЮВАТИ – для управляючої дії повторення.
Управляюча дія поєднання не має спеціального слова і подається низкою речень, що йдуть одне за одним і описують відповідні дії.
Зазвичай специфікація у псевдокоді записується між словами ПОЧАТОК і КІНЕЦЬ. Слова, що описують дію, деталізовувану на наступному кроці, на даному кроці підкреслюються.
Наведемо приклад специфікації записаної за допомогою псевдокоду.
Задано два значення А та В. Поміняти місцями А та В.
1. Визначимо основні дії:
початок
обмін А з В
кінець
2. Деталізуємо дію обміну:
початок
зберегти значення А
помістити значення B в А
відновити значення А в В
кінець
3. Деталізуємо дію обміну:
початок
Temp := A
A:= B
B:= Temp
Кінець,
де Temp, не позначення місця де тимчасово зберігається значення А.