Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

Software development process

From Wikipedia, the free encyclopedia
Process by which software is developed

icon
This articleneeds additional citations forverification. Please helpimprove this article byadding citations to reliable sources. Unsourced material may be challenged and removed.
Find sources: "Software development process" – news ·newspapers ·books ·scholar ·JSTOR
(December 2010) (Learn how and when to remove this message)

Part of a series on
Software development

Asoftware development process prescribes a process fordevelopingsoftware. It typically divides an overall effort into smaller steps or sub-processes that are intended to ensure high-quality results. The process may describe specificdeliverables – artifacts to be created and completed.[1]

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 – known as a methodology, model or framework. Thesystem 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 – including a software system. A methodology prescribes howengineers go about their work in order to move the system through its life cycle. A methodology is a classification of processes or a blueprint for a process that is devised for the SDLC. For example, many processes can be classified as a spiral model.

Software process andsoftware quality are closely interrelated; some unexpected facets and effects have been observed in practice.[2]

Methodology

[edit]

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.[3] Various methodologies have been devised, includingwaterfall,spiral,agile,rapid prototyping,incremental, and synchronize and stabilize.[4]

A major difference between methodologies is the degree to which the phases are sequential vs. iterative. Agile methodologies, such asXP andscrum, focus on lightweight processes that allow for rapid changes.[5]Iterative methodologies, such asRational Unified Process anddynamic systems development method, focus on stabilizing project scope and iteratively expanding or improving products. Sequential or big-design-up-front (BDUF) models, such as waterfall, focus on complete and correct planning to guide larger projects and limit risks to successful and predictable results.[6]Anamorphic development is guided by project scope and adaptive iterations. In scrum,[7] for example, one could say a single user story goes through all the phases of the SDLC within a two-week sprint. By contrast the waterfall methodology, where every business requirement[citation needed] is translated into feature/functional descriptions which are then all implemented typically over a period of months or longer.[citation needed]

A project can include both aproject life cycle (PLC) and an SDLC, which describe different activities. According to Taylor (2004), "the project life cycle encompasses all the activities of theproject, while the systems development life cycle focuses on realizing the productrequirements".[8]

History

[edit]

The termSDLC is often used as an abbreviated version ofSDLC methodology. Further, some useSDLC andtraditional SDLC to mean the waterfall methodology.

According to Elliott (2004), SDLC "originated in the 1960s, to develop large scale functionalbusiness systems in an age of large scalebusiness conglomerates. Information systems activities revolved around heavydata processing andnumber crunching routines".[9] Thestructured systems analysis and design method (SSADM) was produced for the UK governmentOffice of Government Commerce in the 1980s. Ever since, according to Elliott (2004), "the traditional life cycle approaches to systems development have been increasingly replaced with alternative approaches and frameworks, which attempted to overcome some of the inherent deficiencies of the traditional SDLC".[9] The main idea of the SDLC has been "to pursue the development of information systems in a very deliberate, structured and methodical way, requiring each stage of the life cycle––from the inception of the idea to delivery of the final system––to be carried out rigidly and sequentially"[9] within the context of the framework being applied.

Other methodologies were devised later:

1970s
1980s
1990s
2000s
2010s

Since DSDM in 1994, all of the methodologies on the above list except RUP have been agile methodologies - yet many organizations, especially governments, still use pre-agile processes (often waterfall or similar).

Examples

[edit]

The following are notable methodologies somewhat ordered by popularity.

Agile

Agile software development refers to a group of frameworks based on iterative development, where requirements and solutions evolve via collaboration between self-organizing cross-functional teams. The term was coined in the year 2001 when theAgile Manifesto was formulated.

Waterfall

Thewaterfall model is a sequential development approach, in which development flows one-way (like a waterfall) through the SDLC phases.

Spiral

In 1988,Barry Boehm published a software system developmentspiral model, which combines key aspects of the waterfall model and rapid prototyping, in an effort to combine advantages of top-down and bottom-up concepts. It emphases a key area many felt had been neglected by other methodologies: deliberate iterative risk analysis, particularly suited to large-scale complex systems.

Incremental

Various methods combine linear and iterative methodologies, with the primary objective of reducing inherent project risk by breaking a project into smaller segments and providing more ease-of-change during the development process.

Prototyping

Software prototyping is about creating prototypes, i.e. incomplete versions of the software program being developed.

Rapid

Rapid application development (RAD) is a methodology which favorsiterative development and the rapid construction ofprototypes instead of large amounts of up-front planning. The "planning" of software developed using RAD is interleaved with writing the software itself. The lack of extensive pre-planning generally allows software to be written much faster and makes it easier to change requirements.

Shape Up

Shape Up is a software development approach introduced byBasecamp in 2018. It is a set of principles and techniques that Basecamp developed internally to overcome the problem of projects dragging on with no clear end. Its primary target audience is remote teams. Shape Up has no estimation and velocity tracking, backlogs, or sprints, unlikewaterfall,agile, orscrum. Instead, those concepts are replaced with appetite, betting, and cycles. As of 2022, besides Basecamp, notable organizations that have adopted Shape Up include UserVoice and Block.[10][11]

Chaos

Chaos model has one main rule: always resolve the most important issue first.

Incremental funding

Incremental funding methodology - an iterative approach.

Lightweight

Lightweight methodology - a general term for methods that only have a few rules and practices.

Structured systems analysis and design

Structured systems analysis and design method - a specific version of waterfall.

Slow programming

As part of the largerslow movement, emphasizes careful and gradual work without (or minimal) time pressures. Slow programming aims to avoid bugs and overly quick release schedules.

V-Model

V-Model (software development) - an extension of the waterfall model.

Unified Process

Unified Process (UP) is an iterative software development methodology framework, based onUnified Modeling Language (UML). UP organizes the development of software into four phases, each consisting of one or more executable iterations of the software at that stage of development: inception, elaboration, construction, and guidelines.

Comparison

[edit]
icon
This sectionneeds additional citations forverification. Please helpimprove this article byadding citations to reliable sources in this section. Unsourced material may be challenged and removed.(January 2024) (Learn how and when to remove this message)

The waterfall model describes the SDLC phases such that each builds on the result of the previous one.[12][13][14][15] Not every project requires that the phases be sequential. For relatively simple projects, phases may be combined or overlapping.[12] Alternative methodologies to waterfall are described and compared below.[16]

Comparison of methodologies
Waterfall RAD Open sourceOOP JAD proto-typing End User
ControlFormalMISWeakStandardsJointUserUser
Time frameLongShortMediumAnyMediumShortShort

UsersManyFewFewVariesFewOne or twoOne
MIS staffManyFewHundredsSplitFewOne or twoNone
Transaction/DSSTransactionBothBothBothDSSDSSDSS
InterfaceMinimalMinimalWeakWindowsCrucialCrucialCrucial
Documentation and trainingVitalLimitedInternalIn ObjectsLimitedWeakNone
Integrity and securityVitalVitalUnknownIn ObjectsLimitedWeakWeak
ReusabilityLimitedSomeMaybeVitalLimitedWeakNone

Process meta-models

[edit]
Further information:Process patterns

Someprocess models are abstract descriptions for evaluating, comparing, and improving the specific process adopted by an organization.

ISO/IEC 12207

ISO/IEC 12207 is the international standard describing the method to select, implement, and monitor the life cycle for software.

Capability Maturity Model Integration

TheCapability Maturity Model Integration (CMMI) is one of the leading models and is based on best practices. Independent assessments grade organizations on how well they follow their defined processes, not on the quality of those processes or the software produced. CMMI has replacedCMM.

ISO 9000

ISO 9000 describes standards for a formally organized process to manufacture a product and the methods of managing and monitoring progress. Although the standard was originally created for the manufacturing sector, ISO 9000 standards have been applied to software development as well. Like CMMI, certification with ISO 9000 does not guarantee the quality of the end result, only that formalized business processes have been followed.

ISO/IEC 15504

ISO/IEC 15504Information technology—Process assessment, a.k.a. Software Process Improvement Capability Determination (SPICE), is a framework for the assessment of software processes. This standard is aimed at setting out a clear model for process comparison. SPICE is used much like CMMI. It models processes to manage, control, guide, and monitor software development. This model is then used to measure what a development organization or project team actually does during software development. This information is analyzed to identify weaknesses and drive improvement. It also identifies strengths that can be continued or integrated into common practice for that organization or team.

ISO/IEC 24744

ISO/IEC 24744Software Engineering—Metamodel for Development Methodologies, is a power type-based metamodel for software development methodologies.

Soft systems methodology

Soft systems methodology is a general method for improving management processes.

Method engineering

Method engineering is a general method for improving information system processes.

See also

[edit]

References

[edit]
  1. ^"Selecting a development approach"(PDF).Centers for Medicare & Medicaid Services (CMS) Office of Information Service. United States Department of Health and Human Services (HHS). March 27, 2008 [Original Issuance: February 17, 2005]. Archived fromthe original(PDF) on June 20, 2012. RetrievedOctober 27, 2008.
  2. ^Suryanarayana, Girish (2015)."Software Process versus Design Quality: Tug of War?".IEEE Software.32 (4):7–11.doi:10.1109/MS.2015.87.
  3. ^"Systems Development Life Cycle from". FOLDOC. RetrievedJune 14, 2013.
  4. ^"Software Development Life Cycle (SDLC)"(PDF).softwarelifecyclepros.com. May 2012. RetrievedJune 26, 2025.
  5. ^"SDLC Overview: Models & Methodologies". RetrievedDecember 12, 2021.
  6. ^Arden, Trevor (1991).Information technology applications. London: Pitman.ISBN 978-0-273-03470-4.
  7. ^"What is Scrum?". December 24, 2019.
  8. ^Taylor, James (2004).Managing Information Technology Projects. p. 39.
  9. ^abcGeoffrey Elliott (2004).Global Business Information Technology: an integrated systems approach. Pearson Education. p. 87.
  10. ^"Foreword by Jason Fried | Shape Up".basecamp.com. RetrievedSeptember 11, 2022.
  11. ^"Is Shape Up just a nice theory?".Curious Lab. RetrievedSeptember 12, 2022.
  12. ^abUS Department of Justice (2003).INFORMATION RESOURCES MANAGEMENT Chapter 1. Introduction.
  13. ^Everatt, G.D.; McLeod, R Jr (2007)."Chapter 2: The Software Development Life Cycle".Software Testing: Testing Across the Entire Software Development Life Cycle. John Wiley & Sons. pp. 29–58.ISBN 9780470146347.
  14. ^Unhelkar, B. (2016).The Art of Agile Practice: A Composite Approach for Projects and Organizations. CRC Press. pp. 56–59.ISBN 9781439851197.
  15. ^Land, S.K.; Smith, D.B.; Walz, J.W. (2012).Practical Support for Lean Six Sigma Software Process Definition: Using IEEE Software Engineering Standards. John Wiley & Sons. pp. 341–3.ISBN 9780470289952.
  16. ^Post, G., & Anderson, D., (2006).Management information systems: Solving business problems with information technology. (4th ed.). New York: McGraw-Hill Irwin.

External links

[edit]
Wikimedia Commons has media related toSoftware development methodology.
Fields
Concepts
Orientations
Models
Developmental
Other
Languages
Related fields
Retrieved from "https://en.wikipedia.org/w/index.php?title=Software_development_process&oldid=1324533481"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2025 Movatter.jp