Upload
oleg-nazarevych-taltekinfo
View
458
Download
4
Embed Size (px)
DESCRIPTION
Введення в програмну інженерію
Citation preview
Введення в програмну інженерію
Основні поняття Відмінності програмної інженерії від
інших галузей Еволюція підходів до управління
програмними проектами Моделі процесу розробки ПЗ Вибір моделі процесу Що треба робити для успіху програмного
проекту Висновки
Зміст
Програмна інженерія -- це застосування певного систематичного вимірного підходу при розробці, експлуатації та підтримці програмного забезпечення
Термін software engineering (програмна інженерія) вперше з'явився в назві конференції НАТО, що відбулася в Німеччині в 1968 році і присвяченій так званій кризі програмного забезпечення.
Основні поняття
Програмування - процес відображення певної множини цілей на множину машинних команд і даних, інтерпретація яких на комп'ютері або обчислювальному комплексі забезпечує досягнення поставлених цілей
Професійне програмування (синонім виробництво програм) - діяльність, спрямована на отримання доходів за допомогою програмування. Принциповою відмінністю від просто програмування є те, що мається або, принаймні, передбачається деякий споживач, який готовий платити за використання програмного продукту.
Основні поняття
Професійний програміст - людина, яка займається професійним програмуванням
Програмний продукт - сукупність програм і супровідної документації по їх установці, налаштуванні, використанню та доопрацюванні.
Основні поняття
Життєвий цикл програмного продукту
Час
Розробка і підтримка
Розробка версії 1.0
Розробка версії 2.0Розробка версії 2.0
Впровадження версії 2.0
Впровадження версії 1.0
Супровід
Розгортання
Процес розробки ПЗ - сукупність процесів, що забезпечують створення і розвиток програмного забезпечення.
Модель процесу розробки ПЗ - формалізоване представлення процесу розробки ПЗ. Часто при описі процесів замість слова модель вживається термін методологія, що призводить до невиправданого розширення даного поняття.
Згідно SWEBOK 2004, програмна інженерія включає в себе 10 основних і 7 додаткових галузей знань, на яких базуються процеси розробки ПЗ.
Основні поняття
Програмування - не мистецтво і не наука - це ремесло. Сьогодні ми так само далекі від індустріальної розробки програм, як і 50 років тому.
Відмінності програмної інженерії від інших галузей
«Як вийде» «Водоспад» або каскадна модель «Гнучке управління» «Метод частих поставок»
Класичні методи управління перестають працювати у випадках, коли структура і властивості керованого об'єкта нам не відомі і/або змінюються з часом
Еволюція підходів до управління програмними проектами
ГОСТ 19 «Єдина система програмної документації»
ГОСТ 34 «Стандарти на розробку та супровід автоматизованих систем»
Строге проходження цим гостами не тільки призводить до водоспадного підходу, але і вимагає дуже високого ступеня формалізованості розробки
Моделі процесу розробки ПЗ
Створений за замовленням військових Інститутів програмної інженерії СШАДана модель визначає п'ять рівнів зрілості процесу розробки ПЗ: Початковий Повторюваний Визначений Керований Оптимізуючий
Моделі процесу розробки ПЗ(SW-CMM)
Розроблений співробітниками компанії «Rational Software»
Доповнення до мови моделювання UML Модель RUP описує абстрактний
загальний процес, на основі якого організація або проектна команда повинна створити конкретний спеціалізований процес, орієнтований на її потреби
Моделі процесу розробки ПЗ(RUP)
Microsoft Solutions Framework (MSF) - це гнучка і досить легковага модель, побудована на основі ітеративної розробки.
Привабливою особливістю MSF є велика увага до створення ефективної і небюрократизованої проектної команди.
Для досягнення цієї мети MSF пропонує досить нестандартні підходи до організаційної структури, розподілу відповідальності і принципам взаємодії всередині команди.
Моделі процесу розробки ПЗ(MSF)
Одна з останніх розробок Інституту програмної інженерії Personal Software Process / Team Software Process
Personal Software Process визначає вимоги до компетенцій розробника
Послідовне застосування моделі PSP / TSP дозволяє зробити нормою в організації п'ятий рівень CMM
Моделі процесу розробки ПЗ(PSP / TSP)
Основна ідея всіх гнучких моделей полягає в тому, що застосовуваний у розробці ПЗ процес повинен бути адаптивним.
Вони декларують своєю вищою цінністю орієнтованість на людей і їх взаємодію, а не на процеси і засоби.
По суті, так звані, гнучкі методології це не методології, а набір практик, які можуть дозволити (а можуть і ні) досягнути ефективної розробки ПЗ, грунтуючись на ітеративності, інкрементальності, самоврядності команди і адаптивності процесу.
Моделі процесу розробки ПЗ(Agile)
У кожного проекту повинна бути своя модель процесу розробки
У кожної моделі - свій час Ефективність розробки ПЗ не залежить
від моделі процесу
Вибір моделі процесу
Вибір моделі процесу
Процес
проекту
Персонал
Проект
ПродуктПрофесіоналіз
мСпрацьованістьСтабільністьМотиваціяЕфективність комунікацій
Великий (240 чол.)Середній (36-240 чол.)Малий (6-36 чол.)
Технічна складність: новий продукт, нові технології, інновації
Критичність для замовника:загроза для життя, великі грошові втрати
Чітко ставити цілі Визначати спосіб досягнення цілей Контролювати і управляти реалізацією Аналізувати загрози і протидіяти їм Створювати команду
Що треба робити для успіху програмного проекту
У силу унікальності галузі досвід, накопичений в галузях матеріального виробництва, мало сприяє успіху в управлінні програмним проектом. Прямі аналогії з цими галузями не працюють.
Не існує єдиного правильного процесу розробки ПЗ. Ефективний виробничий процес повинен грунтуватися на ітеративності, інкрементальності, самоврядності команди і адаптивності. Головний принцип: не люди повинні будуватися під обрану модель процесу, а модель процесу повинна підлаштовуватися під конкретну команду, щоб забезпечити її найвищу продуктивність.
Висновки