Увод у наставни предмет "Развој софтверских пројеката"
Дефиниши СОФТВЕР?
- Сви програми који се извршавају на рачунару.
- Скуп инструкција и података који омогућавају хардверу да извршава одређене задатке.
- Програми, процедуре, правила и придружена документација који омогућавају систему за обраду информација да извршава одређене задатке.
Данас је софтвер веома широка категорија и може се поделити на више начина. Подела софтвера на системски и апликативни софтвер је и даље основна, међутим, развојем интернета, клауда и разних паметних уређаја, софтвер је знатно теже категорисати. Према нивоу апстракције у односу на хардвер, софтвер се може поделити на:
- системски софтвер, који управља хардвером, ресурсима рачунара и омогућава рад других програма. На пример:
- оперативни системи,
- фирмвер (енгл. Firmware),
- управљачки програм,
- услужни програми,
- програмски преводиоци и интерпретери итд.
- средњи софтвер (енгл. Middleware), који омогућава комуникацију и размену података између различитих апликација, сервиса и оперативног система. На пример:
- апликациони сервери,
- сервери база података,
- API гејтвеји итд.
- апликациони софтвер, који решава конкретне проблеме и задатке корисника. На пример:
- софтвер за обраду текста,
- софтвер за рад са табелама,
- софтвер за израду презентација,
- софтвер за обраду слика,
- софтвер за израду векторских цртежа итд.
Апликативни софтвер се може даље категорисати према начину дистрибуције или извршавања на:
- десктоп софтвер, који се инсталира и покреће локално,
- мобилни софтвер, који се инсталира и покреће на мобилним уређајима,
- веб апликације, које се извршавају у веб прегледачу,
- клауд софтвер, најчешће као SaaS услуге и
- хибридни софтвер, који делом ради локално, а делом у облаку.
Према намени, односно функционалности, софтвер се може поделити на:
- софтвер за продуктивност (нпр. канцеларијски пакети софтвера),
- креативни софтвер (нпр. софтвер за рад са графиком и мултимедијом),
- развојни софтвер (развојна окружења и разни програмерски алати),
- пословни софтвер (ERP, CRM, BI...)
- научни и инжењерски софтвер,
- софтвер за мултимедију и забаву,
- софтвер за комуникацију
- уграђени (енгл. Embedded) софтвер, итд.
Софтвер се даље може поделити и по моделу лиценцирања на:
- власнички (енгл. Proprietary),
- слободан софтвер отвореног кода (енгл. FOSS),
- фривер (енгл. Freeware),
- шервер (енгл. Shareware),
- пробни (енгл. Trial),
- претплатнички (енгл. Subscription) итд.
Често се мисли да је развој софтвера исто што и програмирање. Међутим, програмирање је само једна активност у много ширем процесу који се зове софтверско инжењерство.
Шта је софтверско инжењерство?
Софтверско инжењерство је примена систематског, дисциплинованог и мерљивог приступа развоју, раду и одржавању софтвера; односно, примена инжењерских принципа на софтвер. Софтверско инжењерство је инжењерска дисциплина која се бави свим аспектима производње софтвера, од почетних фаза дефинисања система (захтева) па све до одржавања система након што је пуштен у употребу.
Развој савременог софтвера није посао једног програмера. Данас се већина софтверских производа развија тимски, по унапред дефинисаном процесу и уз употребу различитих алата и методологија. Због тога је, поред знања програмских језика, неопходно разумети како настаје један софтверски производ и како сарађују чланови развојног тима.
Замисли процес израде једне савремене рачунарске игре или апликације попут Instagram-а - то захтева хиљаде радних сати рада различитих стручњака. Да би такав подухват успео, неопходно је користити методологије развоја софтвера и алате за управљање пројектом и контролу верзија софтвера. Разлика између "само програмирања" и "развоја софтверског пројекта" је управо у организацији, документацији и планирању.
Овај наставни предмет управо се бави тим процесом!
Значи, развоју софтвера се не приступа стихијски, већ кроз пажљиво планиране пројекте.
Шта је пројекат?
Пројекат је привремени подухват који се предузима да се створи јединствен производ или услуга.
Пројекте карактерише њихова привремена природа, што значи да имају јасно дефинисан почетак и крај. Особина привремености пројекта као последицу има постојање фаза у развоју пројекта:
- Иницијалну фазу у којој се израђује оквирна пројектна инфраструктура и дефинишу општи циљеви пројекта.
- Фазу планирања, током које се циљеви пројекта прецизирају, идентификују и распоређују активности, и припремају операције које представљају подршку развоју пројекта.
- Фазу извршавања, која представља практично извођење активности развоја пројекта.
- Фазу праћења, која се одвија паралелно са фазом извршавања и представља посматрање и мерење напретка и бележење одступања реалног стања у коме се пројекат налази у датом тренутку у односу на дефинисани план развоја.
- Завршну фазу, када се испоручују резултати пројекта (производ), након чега се пројекат завршава.