- •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.1.).
Рис. 3.1. Схема проектування програми
3.1.1. Ресурс. Метод
Існує багато методів проектування програм. Поділяють ці методи на три групи [65]:
«зверху вниз» або аналітичні;
«знизу вгору» або синтетичні;
мішані.
Використаємо, як приклад, метод проектування програм „згори вниз”, сутність якого полягає в конкретизації (деталізації) вихідного формулювання задачі доти, доки не буде отримано опис задачі за яким відразу можна скласти програму. Це найбільш розповсюджений при навчанні метод розробки програм.
Формулюванням задачі називатимемо вихідний (найперший і найзагальніший) опис вимог до розроблювальної програми. Тому конкретизація – це деталізація вихідного опису з метою отримання остаточного опису, скориставшись яким, можна виконати обчислення за допомогою того чи іншого виконавця, здебільше комп’ютера. Як правило, відразу не вдається створити остаточний опис, а тому деталізація вихідного опису – це процес, що складається з багатьох дій, результатом виконання яких є окремі описи.
У процесі деталізації потрібно керуватись такими принципами:
“поділяй і володарюй” – слід розбивати опис на частини, які підлягатимуть деталізації;
“поділяй поступово” – слід розбивати опис на невелику кількість частин й деталізувати їх дрібними кроками;
“поділяй обережно” – слід на кожному кроці приймати якомога менше рішень, які легко перевірити.
Зазвичай у процесі проектування програми доводиться виконувати багато кроків.
3.1.2. Специфікація
Опис дій, виконання яких виконавцем опису приводить до розв’язування задачі, назовемо специфікацією. Тому кінцевий ступінь деталізації дій у специфікації може бути різним і залежить від можливостей виконавця. Найчастіше таким виконавцем специфікації виступає комп’ютер, тому, специфікація є програмою, а ступень деталізації згідно визначенню програми має бути дуже високим.
Описувані у специфікації дії можуть бути двох типів :
перетворювальні – таки, що перетворюють значення і забезпечують реалізацію функцій частин програми;
управляючи – таки, що забезпечують зв’язки між перетворювальними діями, послідовність їх виконання та формують схему програми, установлюючи її загальну функцію.
Кількість і характер перетворювальних дій залежать від характеру задачі та типу виконавця специфікації, а тому не можна заздалегідь визначити, скільки їх буде. Проте серед цих дій можна відокремити:
такі, що реалізують основну функцію програми;
такі, що забезпечують реалізацію основної функції програми.
Часто дії другого типу можуть становити більшу частину специфікації.
Кількість управляючих дій обмежена - їх може бути лише три, причому призначені вони для реалізації у програмі таких функцій:
поєднання (зчленування) перетворювальних дій;
чергування (вибору) перетворювальних дій;
повторення (ітерації) перетворювальних дій.
Відомо, що виразивши зазначені дії засобами мови програмування, можна написати будь-яку програму [2]. Специфікації, в яких використовуються лише наведені дії, називаються структурними [37].