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

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

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

Методологијама и моделима животног циклуса развоја софтвера бави се дисциплина софтверског инжењерства.

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

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

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

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


ПИТАЊЕ ИЗ ПРИРУЧНИКА ЗА ПОЛАГАЊЕ МАТУРСКОГ ИСПИТА:
145. Наведене су етапе у изради програма. Поређати етапе по редоследу њиховог извођења уписивањем редног броја на линију испред наведене етапе почев од броја 1:
___ Кодирање
___ Израда документације
___ Анализа проблема
___ Превођење
___ Скицирање решења
___ Састављање алгоритма
___ Тестирање
___ Одржавање програма
Одговор: 4, 7, 1, 5, 2, 3, 6, 8


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


ДОМАЋИ ЗАДАТАК (необавезан):
Опишите један напреднији модел развоја софтвера.


Неовлашћено коришћење ових садржаја, без претходне писмене сагласности аутора, сматра се кршењем Закона о ауторским и сродним правима!

Advertisements