19
Введення в програмну інженерію

Введення в програмну інженерію

Embed Size (px)

DESCRIPTION

Введення в програмну інженерію

Citation preview

Page 1: Введення в програмну інженерію

Введення в програмну інженерію

Page 2: Введення в програмну інженерію

Основні поняття Відмінності програмної інженерії від

інших галузей Еволюція підходів до управління

програмними проектами Моделі процесу розробки ПЗ Вибір моделі процесу Що треба робити для успіху програмного

проекту Висновки

Зміст

Page 3: Введення в програмну інженерію

Програмна інженерія -- це застосування певного систематичного вимірного підходу при розробці, експлуатації та підтримці програмного забезпечення

Термін software engineering (програмна інженерія) вперше з'явився в назві конференції НАТО, що відбулася в Німеччині в 1968 році і присвяченій так званій кризі програмного забезпечення.

Основні поняття

Page 4: Введення в програмну інженерію

Програмування - процес відображення певної множини цілей на множину машинних команд і даних, інтерпретація яких на комп'ютері або обчислювальному комплексі забезпечує досягнення поставлених цілей

Професійне програмування (синонім виробництво програм) - діяльність, спрямована на отримання доходів за допомогою програмування. Принциповою відмінністю від просто програмування є те, що мається або, принаймні, передбачається деякий споживач, який готовий платити за використання програмного продукту.

Основні поняття

Page 5: Введення в програмну інженерію

Професійний програміст - людина, яка займається професійним програмуванням

Програмний продукт - сукупність програм і супровідної документації по їх установці, налаштуванні, використанню та доопрацюванні.

Основні поняття

Page 6: Введення в програмну інженерію

Життєвий цикл програмного продукту

Час

Розробка і підтримка

Розробка версії 1.0

Розробка версії 2.0Розробка версії 2.0

Впровадження версії 2.0

Впровадження версії 1.0

Супровід

Розгортання

Page 7: Введення в програмну інженерію

Процес розробки ПЗ - сукупність процесів, що забезпечують створення і розвиток програмного забезпечення.

Модель процесу розробки ПЗ - формалізоване представлення процесу розробки ПЗ. Часто при описі процесів замість слова модель вживається термін методологія, що призводить до невиправданого розширення даного поняття.

Згідно SWEBOK 2004, програмна інженерія включає в себе 10 основних і 7 додаткових галузей знань, на яких базуються процеси розробки ПЗ.

Основні поняття

Page 8: Введення в програмну інженерію

Програмування - не мистецтво і не наука - це ремесло. Сьогодні ми так само далекі від індустріальної розробки програм, як і 50 років тому.

Відмінності програмної інженерії від інших галузей

Page 9: Введення в програмну інженерію

«Як вийде» «Водоспад» або каскадна модель «Гнучке управління» «Метод частих поставок»

Класичні методи управління перестають працювати у випадках, коли структура і властивості керованого об'єкта нам не відомі і/або змінюються з часом

Еволюція підходів до управління програмними проектами

Page 10: Введення в програмну інженерію

ГОСТ 19 «Єдина система програмної документації»

ГОСТ 34 «Стандарти на розробку та супровід автоматизованих систем»

Строге проходження цим гостами не тільки призводить до водоспадного підходу, але і вимагає дуже високого ступеня формалізованості розробки

Моделі процесу розробки ПЗ

Page 11: Введення в програмну інженерію

Створений за замовленням військових Інститутів програмної інженерії СШАДана модель визначає п'ять рівнів зрілості процесу розробки ПЗ: Початковий Повторюваний Визначений Керований Оптимізуючий

Моделі процесу розробки ПЗ(SW-CMM)

Page 12: Введення в програмну інженерію

Розроблений співробітниками компанії «Rational Software»

Доповнення до мови моделювання UML Модель RUP описує абстрактний

загальний процес, на основі якого організація або проектна команда повинна створити конкретний спеціалізований процес, орієнтований на її потреби

Моделі процесу розробки ПЗ(RUP)

Page 13: Введення в програмну інженерію

Microsoft Solutions Framework (MSF) - це гнучка і досить легковага модель, побудована на основі ітеративної розробки.

Привабливою особливістю MSF є велика увага до створення ефективної і небюрократизованої проектної команди.

Для досягнення цієї мети MSF пропонує досить нестандартні підходи до організаційної структури, розподілу відповідальності і принципам взаємодії всередині команди.

Моделі процесу розробки ПЗ(MSF)

Page 14: Введення в програмну інженерію

Одна з останніх розробок Інституту програмної інженерії Personal Software Process / Team Software Process

Personal Software Process визначає вимоги до компетенцій розробника

Послідовне застосування моделі PSP / TSP дозволяє зробити нормою в організації п'ятий рівень CMM

Моделі процесу розробки ПЗ(PSP / TSP)

Page 15: Введення в програмну інженерію

Основна ідея всіх гнучких моделей полягає в тому, що застосовуваний у розробці ПЗ процес повинен бути адаптивним.

Вони декларують своєю вищою цінністю орієнтованість на людей і їх взаємодію, а не на процеси і засоби.

По суті, так звані, гнучкі методології це не методології, а набір практик, які можуть дозволити (а можуть і ні) досягнути ефективної розробки ПЗ, грунтуючись на ітеративності, інкрементальності, самоврядності команди і адаптивності процесу.

Моделі процесу розробки ПЗ(Agile)

Page 16: Введення в програмну інженерію

У кожного проекту повинна бути своя модель процесу розробки

У кожної моделі - свій час Ефективність розробки ПЗ не залежить

від моделі процесу

Вибір моделі процесу

Page 17: Введення в програмну інженерію

Вибір моделі процесу

Процес

проекту

Персонал

Проект

ПродуктПрофесіоналіз

мСпрацьованістьСтабільністьМотиваціяЕфективність комунікацій

Великий (240 чол.)Середній (36-240 чол.)Малий (6-36 чол.)

Технічна складність: новий продукт, нові технології, інновації

Критичність для замовника:загроза для життя, великі грошові втрати

Page 18: Введення в програмну інженерію

Чітко ставити цілі Визначати спосіб досягнення цілей Контролювати і управляти реалізацією  Аналізувати загрози і протидіяти їм Створювати команду

Що треба робити для успіху програмного проекту

Page 19: Введення в програмну інженерію

У силу унікальності галузі досвід, накопичений в галузях матеріального виробництва, мало сприяє успіху в управлінні програмним проектом. Прямі аналогії з цими галузями не працюють.

Не існує єдиного правильного процесу розробки ПЗ. Ефективний виробничий процес повинен грунтуватися на ітеративності, інкрементальності, самоврядності команди і адаптивності. Головний принцип: не люди повинні будуватися під обрану модель процесу, а модель процесу повинна підлаштовуватися під конкретну команду, щоб забезпечити її найвищу продуктивність.

Висновки