- •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. Тести
2.3. Інженерія програмного забезпечення
Ефективні організацію та реалізацію процесів життєвого циклу програмного забезпечення створює спеціальна галузь – інженерія програмного забезпечення.
Інженерія програмного забезпечення – це сфера (галузь), яка забезпечує системне застосування належних методів і засобів для створення і супроводження складних програмних продуктів, що відповідають технічним, економічним, правовим і соціальним вимогам [6, 14].
Методи інженерії програмного забезпечення – це наукові та інженерні методи розв’язування проблем і задач. Засоби – це ресурси, які забезпечують застосування зазначених методів.
За допомогою інженерії програмного забезпечення вдається задовольнити вимоги, що висуваються до програмних продуктів, забезпечивши створення ефективних та якісних програмних продуктів у задані терміни та із заданими ресурсами.
Задовольнивши економічні вимоги, можна створити програмні продукти в рамках заданого фінансового бюджету.
Задовольнивши правові вимоги, можна забезпечити законне створення програмних продуктів.
Задовольнивши соціальні вимоги, можна створити корисні програмні продукти.
Щодо розробки програмного забезпечення розрізняють дві інженерії програмного забезпечення (рис. 2.1):
„уперед” (forward), або пряма інженерія - зорієнтована на створення програмного забезпечення;
„назад” (backward, reverse), або зворотна (реверсивна) інженерія – зорієнтована на створення різнорівневих уявлень про програмне забезпечення.
Реалізація життєвого циклу, що забезпечує створення та використання програмного продукту – це мета прямої інженерії.
Мета зворотньої інженерії – здобути інформацію для якомога кращого розуміння програмного забезпечення, підвищення ефективності його супроводження та переробки або виокремлення з нього компонентів, що відповідають заданим вимогам. Отже, для програмного забезпечення задача зворотної інженерії полягає не у створенні дублікату програмного забезпечення, як це відбувається в разі інших технічних систем, а у відновленні інформації про програмне забезпечення та його компоненти.
Крім цих двох інженерій, для дослідження програмного забезпечення застосовуються методи та засоби третьої інженерії – емпіричної (empirical software engineering).
2.4. Ресурси для створення програмного забезпечення
У цьому підручнику розглядаються методи та засоби лише фази кодування.
До методів фази кодування належать ті, що застосовуються під час програмування. Усі методи поділяються на дві групи. До першої належать методи, застосовувані в разі програмування в „малому”. Це, скажімо, аналітичний метод розробки програм „згори-вниз із заглушками”, методи структурного та підпрограмного програмування. Методи другої групи застосовують при програмуванні „у великому”. До них належать, наприклад, синтетичний метод розробки програм „знизу-вгору” із роздільною компіляцією методи модульного програмування об’єктно-орієнтованого та мегамодульного програмування. Усі їх буде розглянуто далі.
Отже, засоби фази кодування також поділяються на дві групи: використовувані „в малому” – мови програмування і використовувані „у великому” – середовища програмування.