2. Зміст
Основні поняття
Відмінності програмної інженерії від інших галузей
Еволюція підходів до управління програмними
проектами
Моделі процесу розробки ПЗ
Вибір моделі процесу
Що треба робити для успіху програмного проекту
Висновки
3. Основні поняття
Програмна інженерія -- це застосування певного
систематичного вимірного підходу при розробці,
експлуатації та підтримці програмного
забезпечення
Термін software engineering (програмна інженерія)
вперше з'явився в назві конференції НАТО, що
відбулася в Німеччині в 1968 році і присвяченій так
званій кризі програмного забезпечення.
4. Основні поняття
Програмування - процес відображення певної множини
цілей на множину машинних команд і даних,
інтерпретація яких на комп'ютері або обчислювальному
комплексі забезпечує досягнення поставлених цілей
Професійне програмування (синонім виробництво
програм) - діяльність, спрямована на отримання доходів
за допомогою програмування. Принциповою
відмінністю від просто програмування є те, що мається
або, принаймні, передбачається деякий споживач, який
готовий платити за використання програмного
продукту.
5. Основні поняття
Професійний програміст - людина, яка займається
професійним програмуванням
Програмний продукт - сукупність програм і
супровідної документації по їх установці,
налаштуванні, використанню та доопрацюванні.
6. Життєвий цикл програмного
продукту
Розробка і підтримка
Розробка Розробка
Розробка
версії 1.0 версії 2.0
версії 2.0
Розгортання
Впроваджен Впроваджен
ня версії 1.0 ня версії 2.0
Супровід
Час
7. Основні поняття
Процес розробки ПЗ - сукупність процесів, що
забезпечують створення і розвиток програмного
забезпечення.
Модель процесу розробки ПЗ - формалізоване
представлення процесу розробки ПЗ. Часто при описі
процесів замість слова модель вживається термін
методологія, що призводить до невиправданого
розширення даного поняття.
Згідно SWEBOK 2004, програмна інженерія включає в
себе 10 основних і 7 додаткових галузей знань, на яких
базуються процеси розробки ПЗ.
8. Відмінності програмної інженерії
від інших галузей
Програмування - не мистецтво і не наука - це
ремесло. Сьогодні ми так само далекі від
індустріальної розробки програм, як і 50 років
тому.
9. Еволюція підходів до управління
програмними проектами
«Як вийде»
«Водоспад» або каскадна модель
«Гнучке управління»
«Метод частих поставок»
Класичні методи управління перестають
працювати у випадках, коли структура і
властивості керованого об'єкта нам не відомі і/або
змінюються з часом
10. Моделі процесу розробки ПЗ
ГОСТ 19 «Єдина система програмної документації»
ГОСТ 34 «Стандарти на розробку та супровід
автоматизованих систем»
Строге проходження цим гостами не тільки
призводить до водоспадного підходу, але і
вимагає дуже високого ступеня формалізованості
розробки
11. Моделі процесу розробки ПЗ
(SW-CMM)
Створений за замовленням військових Інститутів
програмної інженерії США
Дана модель визначає п'ять рівнів зрілості процесу
розробки ПЗ:
Початковий
Повторюваний
Визначений
Керований
Оптимізуючий
12. Моделі процесу розробки ПЗ
(RUP)
Розроблений співробітниками компанії «Rational
Software»
Доповнення до мови моделювання UML
Модель RUP описує абстрактний загальний процес,
на основі якого організація або проектна команда
повинна створити конкретний спеціалізований
процес, орієнтований на її потреби
13. Моделі процесу розробки ПЗ
(MSF)
Microsoft Solutions Framework (MSF) - це гнучка і
досить легковага модель, побудована на основі
ітеративної розробки.
Привабливою особливістю MSF є велика увага до
створення ефективної і небюрократизованої
проектної команди.
Для досягнення цієї мети MSF пропонує досить
нестандартні підходи до організаційної структури,
розподілу відповідальності і принципам взаємодії
всередині команди.
14. Моделі процесу розробки ПЗ
(PSP / TSP)
Одна з останніх розробок Інституту програмної
інженерії Personal Software Process / Team Software
Process
Personal Software Process визначає вимоги до
компетенцій розробника
Послідовне застосування моделі PSP / TSP дозволяє
зробити нормою в організації п'ятий рівень CMM
15. Моделі процесу розробки ПЗ
(Agile)
Основна ідея всіх гнучких моделей полягає в тому,
що застосовуваний у розробці ПЗ процес повинен
бути адаптивним.
Вони декларують своєю вищою цінністю
орієнтованість на людей і їх взаємодію, а не на
процеси і засоби.
По суті, так звані, гнучкі методології це не
методології, а набір практик, які можуть дозволити
(а можуть і ні) досягнути ефективної розробки ПЗ,
грунтуючись на ітеративності, інкрементальності,
самоврядності команди і адаптивності процесу.
16. Вибір моделі процесу
У кожного проекту повинна бути своя модель
процесу розробки
У кожної моделі - свій час
Ефективність розробки ПЗ не залежить від моделі
процесу
17. Вибір моделі процесу
Персонал
Професіоналізм Процес Продукт
Спрацьованість проекту
Стабільність
Мотивація
Ефективність Технічна складність:
комунікацій новий продукт, нові
технології, інновації
Великий (240 чол.) Критичність для
Проект Середній (36-240 чол.) замовника:
Малий (6-36 чол.) загроза для життя,
великі грошові втрати
18. Що треба робити для успіху
програмного проекту
Чітко ставити цілі
Визначати спосіб досягнення цілей
Контролювати і управляти реалізацією
Аналізувати загрози і протидіяти їм
Створювати команду
19. Висновки
У силу унікальності галузі досвід, накопичений в галузях
матеріального виробництва, мало сприяє успіху в
управлінні програмним проектом. Прямі аналогії з цими
галузями не працюють.
Не існує єдиного правильного процесу розробки ПЗ.
Ефективний виробничий процес повинен грунтуватися
на ітеративності, інкрементальності, самоврядності
команди і адаптивності. Головний принцип: не люди
повинні будуватися під обрану модель процесу, а
модель процесу повинна підлаштовуватися під
конкретну команду, щоб забезпечити її найвищу
продуктивність.