Uploaded by Ruslan Petrovskyi

ОПІ ч3

advertisement
Розділ 1
25
стандарти, а також сучасні інструментально-технологічні системи і середовища з
набором необхідних інструментів та засобів.
Автоматизація виробництва ПП. Прикладом такого середовища і реалізації
в ній інженерного і виробничого підходів до виготовлення програмних продуктів є
система Visual Studio Teams Systems фірми Microsoft. У ній реалізована технологія
проектування, кодування, тестування та впровадження програмних проектів. У
середовищі системи підтримується технологія підбору, розподілу і виконання робіт
різними групами спеціалістів. Вони природно мають різні рівні знань і поділяються
на чотири категорії. Кожний спеціаліст отримує роботу відповідно до своїх
здібностей, починаючи з підготовчої категорії. Перехід в іншу, вищу,
кваліфікаційну категорію залежить від якості виконання попереднього завдання з
програмування і отриманого досвіду. Спеціалісти, що входять до четвертої
категорії, несуть відповідальність за правильність розроблення продукту в цілому в
даному середовищі.
Фірма Microsoft впровадила цю систему в ряді університетів України, тому
студенти мають змогу брати участь у розробленні пілотних або конкретних
проектів і тим самим отримувати практичний досвід застосування базових
положень програмної інженерії щодо колективного виготовлення програмних
продуктів.
1.1.4. Дисципліна керування
Базисом цієї дисципліни є класична теорія керування складними системами,
сучасний менеджмент проекту та відповідний стандарт IEEE Std.1490 – настанова
до ядра знань PMBOK (Project Management Body of Knowledge). Теорія керування, а
саме теорія організаційного керування, розроблена академіком В.М. Глушковим.
Вона перевірена практикою побудови технологічних процесів у металургійній,
суднобудівельній і хімічній промисловостях, а також знайшла впровадження у
масове виробництво (зокрема, в АСУ «Львів»).
Теорія керування складними системами мала розвиток і за кордоном,
особливо у теорії планування виробництвом. Так, на фірмі «Dupon» з метою
планування й складання планів-графіків великих комплексів робіт для модернізації
її заводів було розроблено метод CRM (Critical Path Method), базисом якого є
графічне представлення робіт і різних видів операцій із зазначенням часу їхнього
виконання. Інший метод мережного планування PERT (Program Evaluation and
Review Technique) було випробувано при реалізації проекту розроблення ракетної
системи «Polaris», що поєднувала близько 3800 підрядників із кількістю операцій
понад 60 тис. Застосування цього методу було настільки успішним, що проект було
завершено на два роки раніше запланованого терміну. Кожний з цих методів виник
у надрах промислового виробництва, адаптований до середовища програмування і
став базовим в індустрії програмних продуктів.
Теорія керування і планування відображена в стандарті PMBOK. У ньому
визначені процеси ЖЦ проекту і головні області знань, згруповані за задачами:
ініціація, планування, використання, моніторинг і керування, завершення. Головна
область знань цього ядра – «інтеграція», визначає концепцію керування
організаційною діяльністю колективу виконавців проекту, груповану на методах
прийняття рішень про ресурси, загальні задачі, служби контролю правильності
проекту та вкладання в задану замовником вартість [3, 4, 6].
26
Розділ 1
Ці базові напрацьовані теорії керування та планування, стандартні положення
PMBOK, серії стандартів ISO-9001 з якості та відповідне методичне забезпечення
повинні стати основою дисципліни керування в ПІ. Розроблений з цих питань курс
навчання буде готувати у ВНЗ майбутніх висококваліфікованих менеджерів
проектів та інших фахівців з організаційного керування випуском ПП.
1.1.5. Економічна дисципліна
Економіка ПІ є самостійною дисципліною зі своєю теорією і практикою
оцінювання вартісних, часових і експертних показників щодо складання контрактів
на створення ПП, прийняття проектних рішень, подання вимог, розроблення
архітектури тощо, визначення ризиків проектування за заданими ресурсами,
проведення розрахунків за роботи виконавців та отриману якість ПП. Ця
дисципліна є найбільш розвинутою з точки зору методів економічних розрахунків у
ПІ, а саме, наявних методологій прогнозування розміру ПП (FРA– Function Points
Analyses, Feature Points, Mark-H Function Points, 3D Function Points тощо),
оцінювання витрат на розроблення ПП за допомогою сімейства моделей COCOMO
або інших математичних моделей (Angel, Slim, Seer тощо) [4].
При формуванні цієї дисципліни необхідно використати фундаментальні
економічні методи, пов’язані з принципами розподілу робіт у складних системах,
методи розрахунків вартості окремих частин систем залежно від розміру і системи
у цілому, існуючі стандарти з оцінювання ПП тощо. Систематизований і науково
обґрунтований курс економічної дисципліни ПІ компенсує відсутність відповідних
посібників і підручників для навчання спеціалістів, зайнятих у виробництві ПП.
Таким чином, наукові, інженерні, виробничі напрями ПІ, дисципліни
керування і економіки, а також SWEBOK, СТАНДАРТИ, PMBOK є головними
складовими програмної інженерії. Вони зв'язані між собою процесами ЖЦ,
методами проектування і керування розробленням програмних проектів. Ключеві
моменти з питань вироблення програмних продуктів на процесній і інженерній
основі відображено змістовним багатогранником фундаменту ПІ (рис.1.6).
Інженерія
Наука
Стандарти
OK
B
PM
SW
O
EB
K
Рис.1.6. Базові «кити» програмної інженерії
Висновки. Проведено системний розгляд програмної інженерії з точки зору
науки, інженерії, економіки та керування виробництвом ПП. Надано необхідні
аргументи і обґрунтування визначень як цільових об’єктів проектування, так і
програмної інженерії. Охарактеризовано основні риси наведених дисциплін ПІ,
Розділ 1
27
орієнтованих на індустріальне розроблення програмних систем, сімейств систем та
доменів (див. детальніше розділ 8).
До базису програмної інженерії віднесені стандарти ЖЦ, якості програмних
продуктів та менеджменту проектів, які висвітлені відповідно у розділах 2, 9, 10.
1.2. Характеристика
забезпечення – SWEBOK
областей
знань
з
інженерії
програмного
У підрозділі розглядається теоретичний і інтелектуальний базис
проектування – методи, принципи, засоби і методології, представлені областями в
ядрі знань програмної інженерії SWEBOK.
Ядро знань SWEBOK – основний науково-технічний документ, що
відображає знання та досвід багатьох іноземних і вітчизняних фахівців з
програмної інженерії [1–10] і узгоджується з регламентованими процесами ЖЦ
стандарту ISO/IEC 12207.
Документ містить у собі опис 10 областей, кожна з яких представлена
відповідно до прийнятої всіма учасниками формування ядра SWEBOK загальної
схеми опису, що містить у собі визначення понятійного апарату, методів і засобів, а
також інструментів підтримки інженерної діяльності. Стосовно кожної області
визначено коло знань, які повинні практично використовуватися при виконанні
процесів життєвого циклу.
Для подання понятійного апарату областей знань SWEBOK проведемо
умовне розділення областей на головні (п'ять областей для розроблення ПС, рис.
1.7) і допоміжні організаційні області (п'ять областей, що забезпечують інженерію
керування розробкою ПС, рис.1.8).
У кожній області наведені ключові поняття, підходи і методи проектування
різних типів ПС. Розподіл областей на основні і допоміжні відповідає структурі
розподілу процесів стандарту ISO/IEC 12207 (див. розділ 2), виконання яких
визначається методами і засобами, запропонованими в ядрі знань SWEBOK.
Далі подається огляд кожної області цього ядра, визначається її роль у
проектуванні і реалізації програмних продуктів. У деяких підрозділах показаний
зв'язок з положеннями відповідних стандартів, що регламентують і регулюють
виконання процесів проектування програмних систем.
Рис.1.7. Головні області знань SWEBOK
28
Розділ 1
Рис.1.8. Організаційні області знань SWEBOK
1.2.1. Інженерія вимог
Вимоги до ПЗ – сукупність властивостей, які повинно мати ПЗ. Призначені
для адекватного визначення функцій, умов і обмежень виконання ПЗ, а також
обсягів даних, технічного забезпечення і середовища його виконання.
Вимоги відбивають потреби людей (замовників, користувачів, розробників),
зацікавлених у створенні ПЗ. Замовник і розробник спільно виявляють вимоги,
аналізують, переглядають, визначають необхідні обмеження і умови, а також
описують їх. Розрізняють вимоги до продукту і до процесу, а також функціональні,
не функціональні і системні вимоги. Вимоги до продукту і до процесу визначають
умови виконання і режими роботи ПЗ в операційному середовищі, обмеження на
структуру і пам'ять комп'ютерів та принципи взаємодії програм.
Функціональні вимоги визначають призначення і функції системи, а не
функціональні – умови стосовно виконання ПЗ, його переносності і доступу до
даних. Системні вимоги описують вимоги до програмної системи, яка складається з
взаємозалежних програмних і апаратних підсистем і різних застосувань. Вимоги
можуть бути кількісні (наприклад, кількість оброблених запитів на секунду,
середній показник помилок і т.п.). Значна частина вимог стосується атрибутів
якості: безвідмовність, надійність і ін., а також захисту і безпеки як ПЗ, так і даних.
Область знань «Вимоги до ПЗ (Software Requirements)» складається з таких
розділів:
– інженерія вимог (Requirement Engineering),
– виявлення вимог (Requirement Elicitation),
– аналіз вимог (Requirement Analysis),
– специфікація вимог (Requirement Specification).
– валідація вимог (Requirement validation),
Download