Шрифт:
Интервал:
Закладка:
Український стандарт визначає програмне забезпечення (software) як програмний засіб, тобто взаємозв'язану сукупність програм, процедур, правил, документації і даних, що стосуються функціонування обчислювальної системи.
3.3. Системи програмного забезпечення
Поняття системи програмного забезпечення, або програмної системи (software system) є дуже важливим в інженерії програмного забезпечення. Але чіткого визначення цього поняття не існує. У цьому розділі для того, щоб виявити, що таке програмна система, застосовується системний підхід. Тому, перш ніж визначити поняття програмної системи розглянемо властивості комп'ютерних програм з позицій системного аналізу.
3.3.1. Комп'ютерні програми як системиІз системотехніки відомо, що об'єкт повинен володіти щонайменше чотирма властивостями, аби його можна було вважати системою, тому комп'ютерну програму можна розглядати як систему, якщо вона має такі властивості: цілісність і подрібненість, наявність зв'язків, наявність організації, наявність інтегральної якості,
Властивості цілісності і подрібненості виражаються в тому, що, з одного боку, програма - це цілісна конструкція, а з другого, - в її складі можна розрізняти елементи.
Елементи - це такі частини програми, які в даній програмі на певному рівні її розгляду не підлягають подальшому поділу на частини. Поза програмою елементи мають властивості, що є загальними і називаються системнозначимими. Увійшовши в програму, елемент набуває властивостей, що мас значення лише в цій програмі і яке називається системовизначеним. Наприклад, підпрограма обчислювальна tg(x) (системовнзначена властивість), увійшовши до складу програми управління польотом певного об'єкта, може обчислювати значення деформації (зрушення) шарів плоскої о тіла (системовизначена властивість).
Завдяки властивостям цілісності і подрібненості програма може розглядатися як єдине ціле, але таке, що складається з частин, що взаємодіють.
Властивість - наявність зв'язків (couple); виражається в наявності стійких зв'язків між елементами програми, що перевершують по силі зв'язки цих елементів з елементами, що не входять в дану програму. Зв'язки можуть бути такими, що сполучають і передають інформацію. Наявність сильних зв'язків дає змогу говорити про межу програми (там, де вони стають слабкими), а наявність межі веде до поняття зовнішнього середовища програми, яка є сукупністю елементів, що не належать програмі, але пов'язаних з нею і, що виливають на неї. Зазвичай цей вплив інтерпретується як надходження в програму вхідних значень і отримання з програми значень (результату).
Частіша межі, через яку здійснюється передавання вхідних значень і отримання результату, називається Інтерфейсом програми. Звичайна взаємодія програми і середовища має двонапрямлений характер (рис. 3.2).
Рис. 3.2. Програма і середовище
Властивість - наявність організації; виражається у взаємозалежній поведінці частин програми завдяки їх упорядкованості в часі і просторі. У результаті складається внутрішня структура програми, а завдяки процесам, що відбуваються в програмі, функції частин програми трансформуються у функції (функцію) цілої програми. Функції можуть бути корисні, даремні і шкідливі.
Корисність програми є однією з її властивостей і визначається відповідністю функції І конструкції програми вимогам, що висуваються до неї.
Властивість - наявність інтегральної якості; виражається в тому, що має місце якість, що властива програмі в цілому, але не властива жодній з її частин окремо. Тому програма не зводиться до простої сукупності її частин. Розчленувавши програму на частини і вивчивши їх окремо, не можна зрозуміти інтегральну якість програми.
3.3.2. Програмні системиПрограмною системою називається продукт інженерії програмного забезпечення, що має системні властивості та створений для застосування в певній наочній галузі.
Як правило, програмні системи є частиною складного апаратно-програмного комплексу, що включає крім комп'ютера різноманітні пристрої, робота яких заснована на різних принципах дії.
3.3.3. Класифікація програмних системЗастосування обчислювальної техніки, що постійно розширюється, призвело до появи великої різноманітності в програмних системах. Відомо багато класифікацій програмних систем. На рис. 3.3 показано одну з класифікацій, що не «претендує» на повноту. Як видно, всі програми системи поділяються на дві групи - автоматичні і автоматизовані.
Рис. 3.3. Типи програмних систем
У першій групі розрізняють автоматичні вбудовані системи (АВСТС) і автоматизовані системи управління технологічними процесами (АСУТП). До другої групи належать:
- автоматизовані інформаційні системи (АІС), що поділяються на документальні (повнотекстові) - АІДС і фактографічні - АІФС;
- автоматизовані моделюючі системи (АМС);
- автоматизовані системи управління (АС), що поділяються на системи організаційного управління - АСОУ і управління експериментами - АСУЕ;
- системи автоматизованого проектування (САПР), що поділяються на системи проектування об'єктів різною призначення -САD і системи проектування програмного забезпечення - CASE, системи зворотної інженерії (CARE).
Розділ 4. ЖИТТЄВИЙ ЦИКЛ ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ. СКЛАДОВІ
Життєвий цикл програмного забезпечення - це фундаментальне поняття інженерії програмного забезпечення.
Уведення цього поняття дало змогу деталізувати розроблення програмного забезпечення і зробити його керованим.
У цьому розділі розглядаються складові життєвого циклу програмного забезпечення - процеси, продукти і ресурси.
4.1. Життєвий цикл програмного забезпечення
Життєвий цикл програмного забезпечення, як і будь-якого іншого виробу, відображає його відповідність у часі і просторі, процеси, які пов'язані з виробом і засоби здійснення процесів,
У період загострення кризи програмного забезпечення велися спори щодо ефективності (необхідності) використання життєвого циклу. Характер суперечок відображає гасло, типове для того часу -«Зупиніть життєвий цикл, я кочу вийти!». Як тепер зрозуміло - спори вирішилися на користь використання поняття життєвого циклу і, більше того, це поняття є фундаментальним в інженерії програмного забезпечення.
Життєвий цикл програмного забезпечення складається з фаз, Суть фаз - виконання процесів за допомогою ресурсів (методи, засоби, інструменти, персонал) і отримання продуктів. Тому основ ними складовими життєвого циклу програмного забезпечення є процеси , ресурси, продукти (рис. 4.1).
Рис. 4.1. Основні складові життєвого циклу програмного забезпечення
4.2. Процеси
Розробка програмного забезпечення - складне і трудомістке завдання та існує безліч альтернативних способів його вирішення. Визначення поняття процесу взагалі і процесу розробки програмного забезпечення зокрема може допомогти вирішити проблему вибору способу виконання процесу. Завдяки визначенню процесу можна краще розуміти, що слід робити і чекати, що потрібно забезпечити в першу чергу. Процес - це ряд взаємозв'язаних видів діяльності (дій).
4.2.1. Основні визначенняДія, зазвичай, має очікувану тривалість, прогнозовану вартість і очікувані вимоги до ресурсів. Розрізняють стандартний і визначуваний процеси. Стандартний процес - це безліч фундаментальних елементів процесу, які будуть включені в кожен визначуваний процес. Визначуваний процес - це покрокове виконання ряду певних видів тривалості, спрямоване на досягнення певної мети, Розробка програмного забезпечення часто не схожа на звичайний вид діяльності, який може бути побудований і впорядкований як виробництво, що повторюється, або «конторська» процедура. Тому процес повинен розглядатися, як інтелектуальна діяльність, що адаптується до творчих потреб професіоналів і їх завдань. При цьому потрібне досягнення компромісу між індивідуальною потребою в гнучкості і організаційною потребою в стандартах. Деякі з чинників, які слід при цьому враховувати, такі:
- процеси, що реалізуються в ході здійснення того чи іншого програмного проекту (розрізнятимуться, оскільки програмні продукти мають різний характер);
- здійснення стандартного процесу розробки програмного забезпечення (потребує від організації і проекту визначення процесів, які задовольняють їх власні унікальні потреби);
- C# для профессионалов. Том II - Симон Робинсон - Программирование
- Microsoft Visual C++ и MFC. Программирование для Windows 95 и Windows NT. Часть 2 - Александр Фролов - Программирование
- Как спроектировать современный сайт - Чои Вин - Программирование
- Каждому проекту своя методология - Алистэр Коуберн - Программирование
- Сделай видеоигру один и не свихнись - Слава Грис - Программирование / Руководства
- Графические интерфейсы пользователя Java - Тимур Сергеевич Машнин - Программирование
- Настольная книга тимлида разработки ПО - Виктор Большаков - Программирование
- Краткое введение в программирование на Bash - Гарольд Родригес - Программирование
- Программирование игр и головоломок - Жак Арсак - Программирование
- C# 4.0: полное руководство - Герберт Шилдт - Программирование