Software development process: Difference between revisions

Content deleted Content added
Process is much larger than methodology; segregate methodology into it's own section
Comparison: Reduce table width
 
(One intermediate revision by the same user not shown)
Line 5:
{{software development process|Core activities}}
 
A '''software development process''' prescribes a process for [[software development|developing]] [[software]]. It typically divides an overall effort into smaller steps or sub-processes that are intended to ensure high-quality results. The process may describe specific [[deliverable]]s {{endash}} artifacts to be created and completed.<ref name="CMS08">{{cite web |website=Centers for Medicare & Medicaid Services (CMS) Office of Information Service |url=http://www.cms.gov/Research-Statistics-Data-and-Systems/CMS-Information-Technology/XLC/Downloads/SelectingDevelopmentApproach.pdf |title=Selecting a development approach |publisher=United States Department of Health and Human Services (HHS) |orig-date=Original Issuance: February 17, 2005 |date=March 27, 2008 |access-date=October 27, 2008 |archive-url=https://web.archive.org/web/20120620212919/http://www.cms.gov/Research-Statistics-Data-and-Systems/CMS-Information-Technology/XLC/Downloads/SelectingDevelopmentApproach.pdf |archive-date=June 20, 2012 |url-status=dead}}</ref>
 
Although not strictly limited to it, software development process often refers to the high-level process that governs the development of a software system from its beginning to its end of life {{endash}} known as a methodology, model or framework. The [[system development life cycle]] (SDLC) describes the typical phases that a development effort goes through from the beginning to the end of life for a system {{endash}} including a software system. A development processmethodology prescribes how [[engineer]]s go about their work in order to move the system through its life cycle. An SDLCA methodology (a.k.a. model, framework) is a classification of processes or a blueprint for a process that is devised for the SDLC. For example, many software development processes can be classified as thea spiral model.
 
Software process and [[software quality]] are closely interrelated; some unexpected facets and effects have been observed in practice.<ref name="ieeesw">{{Cite journal | doi = 10.1109/MS.2015.87 | title = Software Process versus Design Quality: Tug of War? | journal = IEEE Software | volume = 32 | issue = 4 | pages = 7–11 | year = 2015 | last1 = Suryanarayana | first1 = Girish | doi-access = free }}</ref>
 
==MethodologiesMethodology==
The SDLC drives the definition of a methodology in that a methodology must address the phases of the SDLC. Generally, a methodology is designed to result in a high-quality system that meets or exceeds expectations (requirements) and is delivered on time and within budget even though computer systems can be complex and integrate disparate components.<ref>{{cite web|url=http://foldoc.org/Systems+Development+Life+Cycle |title=Systems Development Life Cycle from |publisher=FOLDOC |access-date=2013-06-14}}</ref> Various methodologies have been devised, including [[Waterfall model|waterfall]], [[Spiral model|spiral]], [[Agile software development|agile]], [[Software prototyping#Throwaway prototyping|rapid prototyping]], [[Incremental development|incremental]], and synchronize and stabilize.<ref>{{cite web |date=May 2012 |title=Software Development Life Cycle (SDLC) |url=http://softwarelifecyclepros.com/wp-content/uploads/2012/05/Tutorial-Software-Development-LifeCycle-SDLC.pdf |access-date=2025-06-26 |website=softwarelifecyclepros.com }}</ref>
 
Line 103:
|+ Comparison of methodologies
|-
! style="width:5%;"|
!|
!| Waterfall
!| [[Rapid application development| RAD]]
Line 112:
!| [[End-user development| End User]]
|-
| style="width:5%;"|Control
| style="width:5%;"|Formal
| style="width:5%;"| MIS
| style="width:5%;"| Weak
| style="width:5%;"| Standards
| style="width:5%;"| Joint
| style="width:5%;"| User
| style="width:5%;"| User
|-
| Time frame