Автор работы: Пользователь скрыл имя, 10 Мая 2012 в 20:58, реферат
Проблема оптимізації процесу управління розробкою програмного забезпечення ускладнюється внаслідок зростання різноманітності і складності розроблюваних програмних продуктів. Сучасні проекти створення програмного забезпечення характеризуються неможливістю бути чітко описаними на початкових стадіях їх реалізації.
Перелік позначень та скорочень 9
Вступ 10
1 Огляд проблеми розробки сучасних програмних систем управління проектами 11
1.1 Основні проблеми розробки сучасних програмних систем 11
1.1.1 Необхідність розробки програмного забезпечення 11
1.1.2 Огляд основних моделей життєвого циклу програмного забезпечення 11
1.1.3 Огляд основних методологій розробки програмного забезпечення 12
1.1.4 Чинники вибору методології розробки програмного забезпечення 15
1.2 Докладний опис області управління проектами 16
1.2.1Мотивований вибір методології розробки програмного забезпечення 16
1.2.2 Опис бізнес-процесів області управління проектами 16
1.3 Огляд існуючих систем управління проектами 19
1.4 Постановка задачі автоматизації управління проектами 19
2 Розробка математичної моделі для автоматизації процесу управління проектами 20
2.1 Теоретичні основи оцінки тривалості проекту 20
2.2 Розробка моделі оцінки тривалості проекту 21
3 Розробка програмного забезпечення 25
3.1 Розробка загальної архітектури системи 25
3.2 Розробка діаграми варіантів використання 25
3.2 Розробка концептуальної моделі даних 26
3.3 Вибір та обґрунтування програмних засобів для реалізації програмного забезпечення 28
Висновки 30
Список джерел інформації 31
Додаток А Аналіз основних методологій 32
Додаток Б Огляд систем управління проектами 33
Додаток В Глосарій основних понять 34
ЗМІСТ
БД – база даннях;
МЖЦ – модель життєвого циклу;
ПЗ – програмне забезпечення;
ПрО – предметна область;
ПС – програмна система;
СКБД – Система керування базами даних;
IT – Informational Technologies;
UML – Unified Modeling Language;
WWW – World Wide Web.
У
сучасному світовому
Проблема оптимізації процесу управління розробкою програмного забезпечення ускладнюється внаслідок зростання різноманітності і складності розроблюваних програмних продуктів. Сучасні проекти створення програмного забезпечення характеризуються неможливістю бути чітко описаними на початкових стадіях їх реалізації.
Нездатність правильно управляти проектами може привести до відчутних економічних втрат, які могли б бути значно зменшені своєчасним аналізом, прогнозуванням і скороченням ресурсів, що робить цей напрямок одним з найбільш актуальних, особливо для великих виробників програмного забезпечення, що розробляють велику кількість програмних продуктів.
В результаті виконання даної курсової роботи необхідно спроектувати програмний продукт, за допомогою якого можна оцінити тривалість ітеративного проекту, що дасть змогу скоротити витрати при розробці програмного забезпечення.
Розробка програмного забезпечення – це процес та вид діяльності, направлений на створення та підтримку робочого стану ПЗ, його якості та надійності [1]. При цьому використовуються технології, методології та практики з таких областей знань, як інформатика, управління проектами, математика, інженерія та інших.
Основна необхідність розробки ПЗ полягає в тому, що необхідно перетворити потреби користувачів та ринку цілей в ефективний надійний програмний продукт.
Світове виробництво переходить від традиційної виробничої сфери до середовища, яке управляється та оптимізується штучним інтелектом. Все більше і більше компаній в наш час проводять реорганізацію задля використання новітніх технологій та ІТ-сервісів [2]. Таким чином, при розвитку новітніх технологій, сфера розробки ПЗ стала одним із основних засобів ведення бізнесу в сучасному світі,що забезпечує розвиток ІТ-індустрії.
Модель життєвого циклу ПЗ – структура, яка визначає послідовність виконання та взаємозв’язку процесів, дій та задач протягом життєвого циклу.
Існує три основних моделі життєвого циклу ПЗ:
Каскадна модель – це модель послідовної розробки програмного забезпечення.
Відповідно до цієї моделі, розробники йдуть від одної стадії до стадії строго послідовно. Каскадна модель передбачає, що перехід від однієї стадії розробки до іншої відбувається тільки після повного і успішного завершення попередньої фази, і що переходів назад або вперед або перекриття фаз – с не відбувається. Таким чином, каскадна модель має істотний недолік – дуже низьку гнучкість.
Суть ітераційної моделі полягає у виконанні робіт паралельно з безперервним аналізом отриманих результатів і коригуванням попередніх етапів роботи. При такому підході в кожній фазі проходить повторюваний цикл: Планування – Реалізація – Перевірка – Оцінка. Основними перевагами такого підходу є зниження ризиків і організація ефективного зворотного зв'язку зі споживачем.
Основне завдання спіральної моделі є якнайшвидше показати працездатний продукт, тим самим активізуючи процес уточнення і доповнення вимог. Основна проблема спіральної моделі – визначення моменту переходу на наступний етап. Для її вирішення необхідно ввести тимчасові обмеження на кожен з етапів життєвого циклу. Перехід здійснюється відповідно до плану, навіть якщо не вся запланована робота закінчена.
На кожному витку спіралі можуть застосовуватися різні моделі процесу розробки ПЗ. Розробка ітераціями відображає об'єктивно існуючий спіральний цикл створення системи. Неповне завершення робіт на кожному етапі дозволяє переходити на наступний етап, не чекаючи повного завершення роботи на поточному.
Гнучка розробка програмного забезпечення (Agile software development) – це клас методологій розробки програмного забезпечення, що базується на ітеративній розробці, в якій вимоги та рішення еволюціонують через співпрацю між самоорганізованими багатофункціональними командами.
Більшість гнучких методологій націлені на мінімізацію ризиків, шляхом зведення розробки до серії коротких циклів, що мають назву ітерацій, які зазвичай тривають один-два тижні. Кожна ітерація сама по собі виглядає як програмний проект в мініатюрі, і включає всі завдання, необхідні для видачі мінімального приросту за функціональністю: планування, аналіз вимог, проектування, написання коду, тестування і документування. Хоча окрема ітерація, як правило, недостатня для випуску нової версії продукту, мається на увазі те, що гнучкий програмний проект готовий до випуску в кінці кожної ітерації. Після закінчення кожної ітерації, команда виконує переоцінку пріоритетів розробки.
Scrum
– методологія управління проектами для
гнучкої розробки програмного забезпечення.
Scrum робить акцент на якісному контролі
процесу розробки. Ця методологія включає
набір методів і попередньо визначених
ролей [3].
Рисунок
1.1- Методологія Scrum
Весь проект ділиться на ітерації (спринти) тривалістю 15 - 30 днів кожний. Вибирається список функцій системи, які планується реалізувати протягом наступного спринту. Найважливіші умови – незмінність певних функцій під час виконання однієї ітерації і суворе дотримання термінів випуску чергового релізу, навіть якщо до його випуску не вдасться реалізувати весь запланований функціонал. Керівник розробки проводить щоденні 20 хвилинний наради, які так і називають – Scrum, результатом яких є визначення стану роботи, труднощів та плану на наступний день. Такі наради дозволяють постійно відстежувати хід проекту, швидко виявляти проблеми, що виникли і оперативно на них реагувати.
Екстремальне програмування (Extreme Programming, XP) – найбільш відома з гнучких методологій. Складається з 12 основних принципів: гра в планування, переробки коду (refactoring), короткі релізи, метафори, простий дизайн, колективне володіння кодом, програмування парами, 40-годинний робочий тиждень, постійна присутність замовника і стандарти коду. При використанні XP ретельне планування розробки ПЗ замінюється на постійну присутність замовника. Низька формалізація розробки зазвичай не йде далі хорошого коментування коду, що дозволяє скоротити велику кількість часу розробки, а отже, знизити загальну вартість розробки. При цьому істотну увагу приділяється тестуванню [4]. Найчастіше для кожного модуля системи спочатку пишеться тест, який продовжує виконуватися протягом всієї розробки після будь-якої зміни коду.
Rational Unified Process (RUP) – методологія розробки програмного забезпечення створена компанією Rational Software. RUP використовує ітеративну модель розробки. Ітеративна розробка дозволяє швидко реагувати на мінливі вимоги, виявляти і усувати ризики на ранніх стадіях проекту, а також ефективно контролювати якість створюваного продукту.
RUP
визначає життєвий цикл
Рисунок 1.2- Життєвий цикл розробки в RUP
RUP
підтримує об'єктно-
Microsoft Solutions Framework (MSF) – методологія розробки програмного забезпечення, запропонована корпорацією Microsoft. MSF являє собою узгоджений набір концепцій, моделей та правил.
Дана методологія пропонує перевірені методики для планування, проектування, розробки та впровадження успішних IT-рішень. Завдяки своїй гнучкості, масштабованості і відсутності жорстких інструкцій MSF здатна задовольнити потреби організації або проектної групи будь-якого розміру. MSF складається з принципів, моделей і дисциплін з управління персоналом, процесами, технологічними елементами і пов'язаними з усіма цими факторами питаннями, характерними для більшості проектів.
Не існує якоїсь однієї, єдино правильної методології, оптимальної для будь-якого проекту. У кожному конкретному випадку правильний вибір методології розробки залежить від ряду факторів:
Зазвичай, вибір між традиційними і гнучкими методологіями значною мірою визначається бажаної ступенем формалізації процесу розробки. Для великих, розрахованих на тривалий термін проектів, як правило, використовують методології з більшим ступенем формалізації, в той час як менш масштабним проектам, розрахованим на оперативну реалізацію, підходять менше формалізовані гнучкі методи розробки [6].
На основі проведеного аналізу основних методологій розробки ПО, представленого в додатку А, мною було обрано методологію Scrum як основу для проектування програмної системи управління проектами.
Переваги Scrum полягають у тому, що дана методологія дозволяє зробити процес розробки більш прозорим для замовника. Випуск інкременту "завершеного" продукту забезпечує доступність потенційно придатної версії робочого продукту.
Також важливою особливістю даної методології є те, що Scrum Команди є самоорганізованими і крос функціональними [3]. Самоорганізовані Команди самі обирають, як їм найкращим чином виконати роботу, та не чекають вказівок від людей, що не входять до їх складу. Кросфункціональним Командам властиві всі необхідні навички, щоб виконати роботу і не залежати від людей, що не входять до їх складу. Командна модель Скраму створена для оптимізації гнучкості, креативності та продуктивності.
Бізнес-процес – це сукупність взаємопов'язаних заходів або завдань, спрямованих на створення певного продукту або послуги для споживачів [7].
В розробці програмних продуктів бере участь Scrum команда, кожен учасник якої має відповідну роль. Всі учасники команди знаходяться на постійному зв’язку між собою. Власник продукту:
Команда розробників:
Scrum майстер: