- •Програма
- •Комп’ютерна програма
- •Програмування
- •Програми як системи
- •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.7 Лабораторні роботи Лабораторна робота 2.1 створення та редагування програм в інтегрованих середовищах програмування
- •Теоретичні відомості
- •Опції головного меню для створення та редагування програм
- •Завдання
- •Завдання
- •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. Задачі для досліджень
- •3.7. Практичні заняття
- •Практичне заняття 1 Опис перетворюючих дій у програмних специфікаціях
- •Приклад складення специфікацій
- •Задачі для самостійного розв’язання
- •Практичне заняття 6 Опис управляючої дії чергування, вкладеної в дію повторення, у програмних специфікаціях
- •Приклади складення специфікацій
- •Задачі для самостійного розв’язання
- •Практичне заняття 7 Опис вкладеного повторення і з’єднання у програмних специфікаціях
- •Приклади складення специфікацій
- •Задачі для самостійного розв’язання
Програми як системи
В контексті інженерії програмного забезпечення комп’ютерну програму доцільно розглядати конструктивно. Це можна робити зокрема за допомогою системного аналізу [56].
Комп’ютерну програму можна розглядати як систему, якщо вона має такі властивості: цілісність і членованість, наявність зв’язків, наявність організації, наявність інтегральної характеристики.
Властивість цілісність і членованість полягає в тому, що, з одного боку, програма – це цілісна конструкція, а з другого, в її складі можна розрізняти окремі компоненти. Компоненти – це такі частини програми, які в даній програмі на певному рівні її розгляду не підлягають подальшому поділу. Поза програмою компоненти набувають властивостей, що мають загальносистемне значення, і тоді властивості називаються системозначущими. Потрапляючи у програму, компонент набуває властивостей, які мають значення тільки в даній програмі, і такі властивості називаються системовизначними. Наприклад, компонент, що обчислює tg(x) (системозначуща властивість), увійшовши до складу програми керування польотом деякого об’єкта, може обчислювати значення деформації (зсуву) шарів плоского тіла (системовизначна властивість).
Завдяки властивості цілісності та членованості компонент або програму можна розглядати як єдине ціле, але таке, що складається з компонентів, що взаємодіють.
Властивість наявність зв’язків полягає в існування двох типів зв’язків: стійких зв’язків між компонентами програми (перший тип), які за своєю силою переважають зв’язки цих компонентів з компонентами, що не входять до даної програми (другий тип). Зв’язки першого типу називають зв’язувальними (cohesion). Такими зв’язками поєднуються компоненти, що містяться всередині іншого компоненту або програми. Зв’язки другого типу називають сполученими (coupling). Зв’язками останнього типу поєднуються компоненти даної програми з іншими компонентами та програмами. Мета, якої потрібно досягати під час створення програми, полягає в тому, щоб мінімізувати кількість сполучених зв’язків і зробити якомога „сильнішими” зв’язувальні зв’язки. Наявність зв’язувальних зв’язків дає підстави говорити про межу компоненту або програми (там де вони послаблюються), а отже, і про зовнішнє середовище компоненту або програми – сукупність компонентів, які не належать компоненту або програмі, але пов’язані з ними і чинять на них певний вплив. Цей вплив інтерпретується як надходження у компонент або програму вхідних значень (впливів) і отримання з компоненту або програми вихідних значень (результату) (рис. 1.2). Частину межі, скрізь яку здійснюється передача впливу і отримання результату називають інтерфейсом компоненту або програми.
Рис.1.2 Програма (компонент) і зв’язки
Властивість наявність організації полягає у взаємозалежному поводженні компонентів програми завдяки їх упорядкованості у просторі за рахунок зв’язуваних зв’язків, які можуть бути управляючими та інформаційними.
Унаслідок установлення зв’язків формується структура компоненту або програми, а функції компонентів програми трансформуються у функцію програми. Функції і як наслідок, програма можуть бути корисними, позбавленими користі та шкідливими.
Корисність програми як одна з її властивостей визначається відповідністю функції та конструкції програми вимогам, що висуваються до неї.
Властивість наявності інтегральної характеристики полягає в тому, що існує властивість – інтегральна – характеристика, притаманна програмі загалом, але не притаманна жодному з її компонентів зокрема. Тому програма не зводиться до простої сукупності її компонентів, а розчленовуючи програму на компоненти і вивчаючи лише їх окремо не можна зрозуміти інтегральної характеристики програми. Інтегральна характеристика має прояв скоріш за все через функцію програми.
