Развој софтвера
Развој софтвера (познат и као развој апликација, дизајн софтвера, дизајнирање софтвера, развој софтверских апликација)[1] представља развој софтверског производа. Израз „развој софтвера“ може да се користи и за рачунарско програмирање, што представља процес писања и одржавања изворног кода, али у ширем смислу укључује све кораке у изради софтвера, почев од дизајна жељеног софтвера, па све до коначног производа. Развој софтвера стога може да укључи истраживање, нови развој, прототипове, измене, поновну употребу, одржавање, или било коју другу активност која доводи до софтверског производа.[2]
Циљеви развоја софтвера могу бити разни, од којих су три најчешћа - испуњавање одређених захтева клијената, испуњавање уочених потреба одређене групе потенцијалних корисника, или лична употреба.
Потреба за бољом контролом квалитета процеса развоја софтвера је довела до развоја дисциплине софтверског инжењерства, која за циљ има примену систематског приступа својственог инжењерској парадигми у процесу развоја софтвера.
Преглед
уредиПостоји неколико различитих приступа развоју софтвера. Некад се у развоју пословних решења користи више структурирани, инжењерско-базирани приступ, а некад се може користити више инкрементални приступ, у ком се софтвер развија део по део. Већина методологија има неку комбинацију наведених корака софтверског развоја:
- Анализирање проблема
- Истраживање тржишта
- Прикупљање захтева за предложено пословно решење
- Смишљање плана или дизајна за софтверски-базирано решење
- Имплементација (програмирање) софтвера
- Тестирање софтвера
- Диплојмент
- Одржавање и отклањање грешака
Зависно од приступа развоју софтвера, ови кораци се могу спровести у другачијем редоследу, а време које им се посвећује може да варира, као и опсежност документације везане за сваки од њих. Ови кораци се могу извршавати сукцесивно ("водопад“ приступ), или се могу понављати кроз неколико циклуса или итерација ("екстремнији“ приступ). У екстремнијем приступу се обично мање времена троши на планирање и документацију, док се више времена троши на програмирање и развој аутоматизованих тестова. Овај приступ такође подстиче тестирање током целог процеса развоја софтвера, као и непрекидно постојање радне верзије (верзије без багова) производа. У „водопад“ приступу, који је више структуриран, се настоји да се процени већина ризика, те да се направи детаљан план за софтвер пре него што почне имплементација (програмирање), и да се избегну значајније промене дизајна и поновно кодирање у каснијим корацима развоја софтвера.
Постоје значајне предности и мане различитих методологија, те је најбоље на основу типа проблема одабрати приступ за решавање проблема коришћењем софтвера. У случају доброг разумевања проблема, и могућности ефективног планирања унапред, најбољи приступ може бити онај заснован на „водопаду“. Са друге стране, ако је проблем јединствен (барем из угла тима који ради развој), и ако структуру софтверског решења није лако предвидети, „екстремни“ инкрементални приступ би можда највише одговарао.
Интелектуална својина
уредиИнтелектуална својина може постати проблем када програмери интегришу отворени изворни код или библиотеке у власнички производ, јер већина отворених софтверских лиценци захтева да модификације буду објављене под истом лиценцом.[3] Алтернативно, програмери могу изабрати власничку алтернативу или написати сопствени софтверски модул.[4][5]
Радници
уредиРазвојем софтвера се баве програмери, који обично раде у тиму.[6][7] За постизање успеха неопходна је ефикасна комуникација међу члановима тима. То је лакше остварити ако је тим мали, навикнут на заједнички рад и налази се близу један другоме. Комуникација такође помаже у идентификовању проблема у раним фазама развоја и избегавању дуплирања напора. У многим пројектима развоја, ризик од губитка важног знања које поседује само један запослени, минимизиран је тиме што је неколико радника упознато са сваким компонентом.[8][9] У развоју софтвера учествују професионалци из различитих области, не само програмери, већ и стручњаци за тестирање, писање документације, графички дизајн, корисничку подршку, маркетинг и прикупљање средстава.[10][11][12] Иако програмери власничког софтвера примају плату, већина учесника у развоју софтвера с отвореним изворним кодом ради на добровољној бази.[13] Алтернативно, могу примати плату од компанија чији пословни модел не подразумева продају софтвера, већ продају нечега другог, као што су услуге и модификације софтвера с отвореним изворним кодом.
Референце
уреди- ^ „Application Development White Papers (Development of Software, Software Design, Designing Software, Software Engineering, Software Application Development, Enterprise Application Development, Platform Development, Software Development, Applications Development, Development) Software Downloads, Definition and Webcasts”. Bitpipe. Приступљено 5. 8. 2012.
- ^ DRM Associates (2002). „New Product Development Glossary”. Архивирано из оригинала 13. 07. 2018. г. Приступљено 29. 10. 2006.
- ^ „Intellectual Property Rights and Open Source Software”. www.vennershipley.com. Приступљено 19. 2. 2025.
- ^ „Intellectual Property Challenges In Open-Source Software Development”. legalvidhiya.com. Приступљено 19. 2. 2025.
- ^ „3 Intellectual Property Rights Every Open Source Developer Should Know”. www.dunebook.com. Приступљено 19. 2. 2025.
- ^ „Software development team structure: deciding factors, approaches, roles, and responsibilities”. itrexgroup.com. Приступљено 19. 2. 2025.
- ^ „Typical Software Development Team Structure and Roles”. wearefram.com. Приступљено 19. 2. 2025.
- ^ „Risk management in software development projects”. codilime.com. Приступљено 19. 2. 2025.
- ^ „Managing a software development team effectively without a technical background”. sunscrapers.com. Приступљено 19. 2. 2025.
- ^ „A Quick Guide on Developing Software”. thehotskills.com. Приступљено 19. 2. 2025.
- ^ „Wie soll ich eine Software entwickeln?”. pixxel.solutions. Приступљено 19. 2. 2025.
- ^ „Who Is a Software Developer? What Does a Software Developer Do?”. stratoflow.com. Приступљено 19. 2. 2025.
- ^ „The Five Stages of Open Source Volunteering”. dirkriehle.com. Приступљено 19. 2. 2025.