Skip to content

Животни циклус развоја софтвера

Процес представља скуп активности које се извршавају да би се добио одређени резултат. У оквиру наставног предмета Програмирање бавићемо се процесом који представља скуп активности које се извршавају приликом развоја софтвера. Овај процес назива се животним циклусом развоја софтвера (енгл. Software Development Life Cycle).

На почеку, са мало планирања, програмер је самостално могао да произведе функционалан софтвер. Како су захтеви корисника софтвера расли, а софтвер постајао све сложенији, на његовој изради и доради морало је радити више програмера истовремено. Због тога су осмишљени модели развоја софтвера који се баве организацијом рада тима, груписањем активности, доношењем правила, креирањем шаблона итд. Методологијама и моделима животног циклуса развоја софтвера бави се дисциплина софтверског инжењерства.

Модел водопада

Један од првих модела био је модел водопада (енгл. Waterfall Model, Royce 1970.) који је подразумевао следеће фазе:

Модел водопада
  1. Анализа захтева: анализа проблема, спецификација захтева
    дефинише се шта софтвер треба да ради, у којој су форми улазни подаци, a у којој резултати, која су и каква су ограничења.
  2. Дизајн система: скицирање решења
    проблем се раставља на целине/кораке, одабирају се технике и алати за реализацију наредних фаза.
  3. Дизајн програма: састављање алгоритма, осмишљавање интерфејса
    идејно се решава проблем тј. израђује се алгоритам; осмишљава се изглед програма.
  4. Кодирање: кодирање, превођење, повезивање, отклањање грешака
    изворни програм се записује у текстуалном облику, из текстуалног преводи се у објектни; објектни кôд се повезује са подпрограмима и програмским библиотекама и креира се извршни програм, програм се анализира приликом извршавања ради лоцирања и отклањања грешака.
  5. Тестирање: тестирање
    тестирају се све функције програма дефинисане у спецификацији захтева – проверавају се резултати на основу улазних података и ограничења.
  6. Испорука: израда документације, испорука, инсталација, обука
    креира се техничка и корисничка документација, дефинише се инсталациона процедура и креирају дистрибуциони медијуми/канали, врши се инсталација, корисници се обучавају за коришћење.
  7. Употреба и одржавање: оперативно коришћење, одржавање програма
    корисници користе програм, израђују се исправљене, надограђене или нове верзије програма.

У пракси, након уочавања проблема у одређеној фази, програмери су се често враћали на претходне фазе. То је условило да се развију напреднији модели као што су: модел водопада са прототиповима, V-модел, спирални модел, модел за брзи развој апликација, хаос модел, модел екстремног програмирања, модел за адаптивни развој апликација, модел за агилни развој апликација и др.

ПИТАЊА ЗА ПРОВЕРУ ЗНАЊА:
1. Шта подразумевамо под “животним циклусом развоја софтвера”?
2. Наведите разлоге за настанак методологија и модела животног циклуса развоја софтвера.
3. Које фазе има модел водопада? Опишите сваку фазу појединачно.
4. Шта је главни недостатак модела водопада?
5. Наведите неколико напреднијих модела развоја софтвера.

ДОМАЋИ ЗАДАТАК:
Истражите који се модели развоја софтвера данас најчешће користе.