Вступ до інженерії програмного забезпечення - Микола Олександрович Сидоров
Властивість - наявність інтегральної якості; виражається в тому, що має місце якість, що властива програмі в цілому, але не властива жодній з її частин окремо. Тому програма не зводиться до простої сукупності її частин. Розчленувавши програму на частини і вивчивши їх окремо, не можна зрозуміти інтегральну якість програми.
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. Основні визначенняДія, зазвичай, має очікувану тривалість, прогнозовану вартість і очікувані вимоги до ресурсів. Розрізняють стандартний і визначуваний процеси. Стандартний процес - це безліч фундаментальних елементів процесу, які будуть включені в кожен визначуваний процес. Визначуваний процес - це покрокове виконання ряду певних видів тривалості, спрямоване на досягнення певної мети, Розробка програмного забезпечення часто не схожа на звичайний вид діяльності, який може бути побудований і впорядкований як виробництво, що повторюється, або «конторська» процедура. Тому процес повинен розглядатися, як інтелектуальна діяльність, що адаптується до творчих потреб професіоналів і їх завдань. При цьому потрібне досягнення компромісу між індивідуальною потребою в гнучкості і організаційною потребою в стандартах. Деякі з чинників, які слід при цьому враховувати, такі:
- процеси, що реалізуються в ході здійснення того чи іншого програмного проекту (розрізнятимуться, оскільки програмні продукти мають різний характер);
- здійснення стандартного процесу розробки програмного забезпечення (потребує від організації і проекту визначення процесів, які задовольняють їх власні унікальні потреби);
- процес, використовуваний для реалізації даного проекту (повинен враховувати досвід членів команди, поточний статус продукту, а також доступні інструменти і можливості).
Згідно з стандартом ІЕЕЕ610 процес життєвого циклу програмного забезпечення визначається як послідовність етапів, спрямованих на досягнення конкретної мети, якою може бути створення програмного продукту або програми. Детальніше, процес - це обмежений ряд взаємозв'язаних дій, у процесі здійснення яких використовуються один або більше типів початкових продуктів, які за допомогою однієї або декількох змін перетворюються на вихідний продукт, що становить цінність для замовника.
Процес розглядають в трьох різних аспектах, визначаючи три типи процесів:
- метапроцес - дії, які виконує організація під час проведення підприємницької діяльності, пов'язаної з розробкою програмного забезпечення. Основна увага при виконанні цього типу процесу приділяється економіці організації, довготривалій стратегії і поверненню інвестицій у програмне забезпечення;
- мікропроцес - дії, які виконуються в організації в разі реалізації певного проекту програмного забезпечення. Основна увага приділяється вартості, термінам і якості;
- мікропроцес - дії, які виконуються командою розробників у певній фазі проекту, спрямовані на отримання конкретних результатів. Основна увага приділяється створенню проміжного продукту такої якості, яка адекватна функціональним можливостям і настільки економічно і швидко, наскільки це здійснено на практиці.
Ці три типи процесу перекриваються, коли виконуються паралельно, але у них різні цілі, учасники, метрики, виробничі відносини і часовий масштаб (табл. 4.1),
Таблиця 4.1