Content deleted Content added
Naina90928 (talk | contribs) m I just edit some links of the sites Tags: Reverted Visual edit |
|||
Line 6:
'''Software development''' is the process of [[designing]] and [[Implementation|implementing]] a [[software]] solution to [[Computer user satisfaction|satisfy]] a [[User (computing)|user]]. The process is more encompassing than [[Computer programming|programming]], writing [[source code|code]], in that it includes conceiving the goal, evaluating feasibility, analyzing [[software requirements|requirements]], [[software design|design]], [[software testing|testing]] and [[software release life cycle|release]]. The process is part of [[software engineering]] which also includes [[management|organizational management]], [[Software project management|project management]], [[configuration management]] and other aspects.{{sfn|Dooley|2017|p=1}}
[https://www.bytecortex.com/2024/12/best-language-to-make-applications.html Software development] involves many skills and job specializations including [[software programmer|programming]], [[software test|testing]], [[Technical writing|documentation]], [[graphic design]], [[user support]], [[marketing]], and [[fundraising]].
Software development involves many [[software tools|tools]] including: [[compiler]], [[integrated development environment]] (IDE), [[version control]], [[computer-aided software engineering]], and [[word processor]].
Line 20:
*In the top-down [[waterfall model]], feasibility, analysis, [[software design|design]], development, [[Software quality assurance|quality assurance]], and implementation occur sequentially in that order. This model requires one step to be complete before the next begins, causing delays, and makes it impossible to revise previous steps if necessary.{{sfn|Dooley|2017|p=9}}{{sfn|Langer|2016|pp=2-3, 5–6}}{{sfn|Tucker |Morelli |de Silva |2011|p=8}}
*With [[iterative]] processes these steps are interleaved with each other for improved flexibility, efficiency, and more realistic scheduling. Instead of completing the project all at once, one might go through most of the steps with one component at a time. Iterative development also lets developers prioritize the most important features, enabling lower priority ones to be dropped later on if necessary.{{sfn|Langer|2016|pp=2-3, 5–6}}{{sfn|Dooley|2017|p=11}} [[agile software development|Agile]] is one popular method, originally intended for small or medium sized projects, that focuses on giving developers more control over the features that they work on to reduce the risk of time or cost overruns.{{sfn|Dooley|2017|p=13}} Derivatives of agile include [[extreme programming]] and [[Scrum (software development)|Scrum]].{{sfn|Dooley|2017|p=13}} [[Open-source software development]] typically uses agile methodology with concurrent design, coding, and testing, due to reliance on a distributed network of volunteer contributors.{{sfn|Tucker |Morelli |de Silva |2011|pp=41-42}}
*Beyond agile, some companies integrate [
Another focus in many programming methodologies is the idea of trying to catch issues such as [[security vulnerabilities]] and [[Bug (computer programming)|bugs]] as early as possible ([[shift-left testing]]) to reduce the cost of tracking and fixing them.{{sfn|Winters|Manshreck|Wright |2020|p=17}}
|