Підтримка життєвого циклу програмного забезпечення

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

Рубрика Программирование, компьютеры и кибернетика
Вид статья
Язык украинский
Дата добавления 10.10.2018
Размер файла 20,5 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

ПІДТРИМКА ЖИТТЄВОГО ЦИКЛУ ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ

Майер Ілля Сергійович

студент кафедри автоматизації та управління в технічних системах факультету інформатики та обчислювальної техніки Національного технічного університету України «Київський політехнічний інститут імені Ігоря Сікорського»

Хмелюк Марина Сергіївна

асистент кафедри автоматизації та управління в технічних системах факультету інформатики та обчислювальної техніки Національний технічний університет України «Київський політехнічний інститут імені Ігоря Сікорського»

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

Ключові слова: програмний сервіс, життєвий цикл програмного забезпечення.

Аннотация. Процесс современной разработки программного обеспечения ориентирован на жизненный цикл программного продукта. Все существующие в настоящее время технологии, методики и стандарты непосредственно или косвенно касаются или регламентирующих этапы жизненного цикла, как по функциональному наполнению, так и по содержанию. Процесс разработки программных систем тесно связан с областью управления проектами, потому что любой программный продукт является уникальным результатом. От организации этого процесса напрямую зависят основные характеристики выполнения программного проекта - сроки выполнения, запланированный бюджет, качество готового продукта. Но профессиональное управление проектами само по себе не может обеспечить достижения указанных характеристик. Важную роль в этом играет архитектура программной системы, опыт и квалификация участников команды разработки, а также правильное документирование всех процессов разработки программного обеспечения.

Ключевые слова: программный сервис, жизненный цикл программного обеспечения.

методологія проект програмний продукт

Summary. The process of modern software development focuses on the life cycle of a software product. All currently existing technologies, techniques and standards directly or indirectly relate or regulate the stages of the life cycle, both in terms of functional content and content. The process of developing software systems is closely linked to the project management area, because any software product is a unique result. From the organization of this process directly depend on the main characteristics of the implementation of the program project - the timing, the planned budget, the quality of the finished product. But professional project management alone can not achieve the achievement of these characteristics. An important role in this is played by the architecture of the software system, the experience and qualifications of the team development team, as well as the proper documentation of all software development processes.

Key words: software service, software life cycle.

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

Аналіз останніх досліджень і публікацій. Дослідження базується на працях таких видатних авторів у галузі розробки програмного забезпечення як К. Петерсона [1], Д. Шора [2], Л. Марка [3], К. Бека [4], Б. Бохема [5].

Формулювання цілей статті (постановка завдання). Аналіз різнобічних наукових праць та досліджень. Виділення найсильніших рис різних підходів до розробки програмного забезпечення.

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

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

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

1. Каскадна модель («Waterfall Model») Каскадна модель одна з найбільш традиційних та загально використовуємих методологій для програмної розробки. Ця модель життєвого циклу, зазвичай вважається як класичний стиль програмної розробки. Вона висвітлює процес програмної розробки як лінійну послідовну течію -- під цим розуміють, що будь-яка фаза в процесі розробки починається тільки якщо попередня фаза завершена. Цей підхід не надає можливості повертатися назад до попередньої фази, щоб внести зміни в вимогах. Цю методолгію застосовують коли вимоги вже обговорені, немає проблем з кваліфікованими фахівцями, у відносно невеликих проектах.

Переваги:

- каскадна модель дуже просто та легка для розуміння та використання, що дійсно добре для но- вачків-розробників;

- в цій моделі фази виконуються та завершуються лише один раз -- це суттєво зберігає велику кількість часу;

- цей підхід до розробки більш ефективен на невеликих проектах, де вимоги дуже добре сформульовані;

Недоліки:

- ця модель може використовуватися тільки коли чітко визначені попередні вимоги;

- ця модель не прийнятна для підтримки проектів;

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

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

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

Гнучка методологія розробки («Agile model») Гнучка методологія використовується для проектування впорядкованого управління процесом

розробки котрий дозволяє вносити постійні зміни в розробку проекту. Ця модель використовується для максимального зменшення ризику при розробці продукту в короткі часові проміжки котрі називаються ітераціями і зазвичай тривають від одного тижня до одного місяця.

Цю модель слід застосовувати коли потреби користувачів постійно змінюються в динамічному бізнесі. Зміни на Agile реалізуються за меншу ціну із-за постійних спринтів. На відміну від каскадної моделі, в гнучкій моделі для старту проекту досить лише невеликого планування.

Переваги:

- гнучка методологія має адаптивний підхід котрий дозволяє змінювати вимоги клієнтів;

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

Недоліки:

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

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

2. Спіральна модель («Spiral model»)

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

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

Переваги:

- об'ємний аналіз ризиків звичайно ж зменшує можливість провалу

- ця модель досить добре підходить для великих та ризикованих проектів;

- в спіральній моделі, додаткову функціональність можна додати пізніше;

- більш задовільна для високоризикованих проектів, де бажання та потреби замовника можуть змінюватися час від часу.

Недоліки:

- досить витратна модель з точки зору розробки;

- в цілому успіх проекту залежить від фази аналізу ризиків, невдача в цій фазі може спричинити провал проекту;

- не підходить для низькоризикованих проектів;

3. Екстремальне програмування («Extreme Programming»)

Екстремальне програмування -- гнучка методологія розробки програмного забезпечення. Ця методологія, відома ще як «ХР», в основному використовується для створення додатків в дуже нестабільному середовищі. Це додає великою гнучкості під час процесу моделювання. Головна перевага цієї методології -- це те, що вона досить малозатратна. В моделі ХР доволі часто буває, що вартість змін вимог на більш пізній стадії проекту може бути досить високою.

Переваги:

- методологія екстремального програмування робить акцент на залученості замовника;

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

Недоліки:

- ця методологія ефективна лише якщо розробники повністю зосереджені та захоплені розробкою;

- ця модель вимагає занадто багато змін в розробці, що дуже трудозатратно для розробника;

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

Порівняння методологій

Найбільш популярними та одними із батьків усіх інших є каскадна та Agile методології. З однієї сторони (каскадна) ми плануємо все до найменших деталей, визначаємо жорсткі терміни, маємо фіксований бюджет, але проблеми приходять коли потрібно зробити якісь правки або взагалі змінити русло куди йде розробка програмного продукту. З іншої сторони (Agile) маємо гнучку систему спринтів, замовник платить за спринти, досить легко вносити зміни, але досить складно встановлювати терміни для випуску продукту та важко прорахувати бюджет. У таблиці 1 проведено порівняння вищезгаданих методологій за певними критеріями.

Висновки з даного дослідження і перспективи подальших розвідок у даному напрямі. Зростаючи кожного дня попит на програмне забезпечення створює необхідність правильної постановки процесів в підрозділах розробки, аби вони могли задовольняти потреби бізнесу та створювати якісний, підтримуваний та функціональний продукт. Існуючі методології розробки були створені та перевірені часом, але їх недоліки інколи є критичними для їх користувачів, що відкриває простір для покращення та створення новий підходів до розробки програмного забезпечення.

Таблиця 1

Каскадна

Agile

Спіральна

XP

Детермінованість вимог

повністю

основні

бажано основні

початкові

Розмір проекту

нижче середн.

великий

великий

нижче середн.

Контроль витрат

високий

низький

нижче середн.

низька

Гарантія успіху

невисока

висока

висока

середня

Рівень ризику

високий

низький

низький

вище середн.

Залученість замовника

низька

вище середн.

середня

висока

Простота використання

висока

вище середн.

нижче середн.

низька

Повернення до попередньої фази

-

+

-/+

+

Література

1. Петерсон К. The Waterfall Model in Large-Scale Development / Кай Петерсон. -- 386 с.

2. Шор Д. The Art of Agile Development / Джеймс Шор., 2007. -- 440 с.

3. Марк Л. Agile Project Management For Dummies / Лейтон Марк. -- Хобокен, NJ: For Dummies, 2012. -- 360 с.

4. Бек К. Extreme Programming Explained: Embrace Change / К. Бек, К. Андрес. -- 224 с.

5. Бохем Б. The Incremental Commitment Spiral Model: Principles and Practices for Successful Systems and Software / Б. Бохем, Д. Лейн, С. Кулманойвонг, Р. Тьорнер., 2014. -- 336 с.

Размещено на Allbest.ru

...

Подобные документы

  • Програмний засіб моніторингу реалізації проектів з побудовою графіків та завданням відхилень. Вибір моделі життєвого циклу розробки додатків Rapid Application Development об'єктно-орієнтованою мовою програмування C# на платформі Microsoft .NET Framework.

    дипломная работа [1,4 M], добавлен 11.09.2012

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

    контрольная работа [19,0 K], добавлен 01.02.2010

  • Загальна характеристика систем управління проектами. Система автоматизації управління проектами Microsoft Project: властивості, переваги та недоліки. Запуск проекту, введення задач, створення структури, кодування, управління ресурсами та витратами.

    контрольная работа [32,5 K], добавлен 03.04.2012

  • Поняття технології програмного забезпечення. Інформаційне середовище процесу обробки даних, формальний опис задачі, поняття про програмний засіб, поняття помилки і надійності програмних засобів. Склад етапів проектування. Оцінка програмного модуля.

    контрольная работа [37,6 K], добавлен 10.09.2009

  • Проблеми розробки компонентного програмного забезпечення автоматизованих систем управління. Сучасні компонентні технології обробки інформації. Аналіз вибраного середовища проектування програмного забезпечення: мова програмування PHP та Apache HTTP-сервер.

    дипломная работа [2,8 M], добавлен 11.05.2012

  • Вивчення структури Trace Mode - програмного комплексу, призначеного для розробки, налагодження і запуску в реальному часі систем управління технологічними процесами. Базові поняття систем – проект, вузол, об'єкт, канал. Особливості механізму автопобудови.

    лабораторная работа [1,3 M], добавлен 20.03.2011

  • Історія розвитку компанії Wonderware, її популярні розробки у сфері інформаційних технологій. Характеристика програмного забезпечення для систем промислової автоматизації. Призначення технології ArchestrA, її ключові переваги та функціональні можливості.

    курсовая работа [1,6 M], добавлен 19.12.2013

  • Створення програмного забезпечення для управління продажем та орендою нерухомості. Аналіз роботи підприємства з продажу нерухомості; проектування системи взаємодії клієнта з продавцем; визначення вимог до програмного комплексу, який необхідно розробити.

    курсовая работа [3,1 M], добавлен 08.07.2012

  • Зміст методу низпадаючої розробки програми. Документація по супроводженню програмних засобів. Основні класи інструментальних середовищ розробки і супроводження програмних засобів. Приклад програми для автоматичного розрахунку значень складної функції.

    контрольная работа [28,7 K], добавлен 19.09.2009

  • Технічні характеристики обчислювальної техніки Монастирищенської центральної районної лікарні. Прикладне і основне програмне забезпечення закладу. Обґрунтування доцільності розробки програмного продукту для тестування молодшого медичного персоналу.

    отчет по практике [2,1 M], добавлен 02.04.2014

  • Специфікація програмного модуля. Документація, що створюється і використовується в процесі розробки програмних засобів. Інструменти комп’ютерної підтримки. Вимоги до користувальницького інтерфейсу. Програма для розрахунку значень складної функції.

    контрольная работа [34,5 K], добавлен 21.09.2009

  • Тенденції розвитку інформаційних технологій, зростання складності інформаційних систем, створюваних у різних галузях. Засоби, що реалізують CASE-технологію створення і супроводу інформаційних систем. Автоматизація розробки програмного забезпечення.

    реферат [21,5 K], добавлен 21.03.2011

  • Розробка майбутніх програмних продуктів, управління їх вихідним кодом. Концепція та моделі надання послуг хмарних обчислень. Особливості використання системи управління версіями Git. Технологія командної роботи над проектом конфігураційного управління.

    курсовая работа [1,9 M], добавлен 24.07.2014

  • Методологія швидкої розробки застосувань RAD, оцінка її переваг та аналіз розповсюдженості на сучасному етапі. Етапи розробки програмного забезпечення та його життєвий цикл. Мета та порядок реалізації процесу моделювання даних. Організація проекту.

    контрольная работа [32,4 K], добавлен 12.04.2010

  • Опис підрозділу гнучких виробничих систем (ГВС) як об‘єкта управління. Проектування алгоритмічного забезпечення системи оперативного управління. Складання розкладу роботи технологічного обладнання. Розробка програмного забезпечення підсистем СОУ ГВС.

    курсовая работа [2,0 M], добавлен 11.07.2012

  • Вибір мови програмування та середовища розробки. Основні можливості мови php та сервера MySQL. Основні переваги середовища розробки NetBeans. Macromedia Dreamweaver як один з популярних середовищ розробки сайтів. Розробка програмного коду сайту.

    контрольная работа [3,0 M], добавлен 16.02.2013

  • Загальна класифікація інформаційних систем управління підприємствами. Комплекс програмних засобів "Галактика" та його чотири функціональні контури. Схема опрацювання первинних господарських документів. Удосконалення структурної побудови бухгалтерії.

    реферат [1,2 M], добавлен 27.07.2009

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

    автореферат [52,0 K], добавлен 10.12.2010

  • Етапи розробки проекту. Вимоги до апаратного і програмного забезпечення, до користувача. Специфікація та структура даних, які мають бути розміщеними в системі. Вигляд інтерфейсу системи програмного забезпечення. Розробка бази даних косметичного салону.

    дипломная работа [1,8 M], добавлен 21.02.2015

  • Основні поняття щодо захисту програмного забезпечення. Класифікація засобів дослідження програмного коду: відладчики, дизасемблери, діскомпілятори, трасировщики та слідкуючі системи. Способи вбудовування захисних механізмів в програмне забезпечення.

    курсовая работа [41,7 K], добавлен 14.11.2010

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.