Iterative and incremental development
From Wikipedia, the free encyclopedia
Iterative and Incremental development is any combination of both iterative design or iterative method and incremental build model for software development. The combination is of long standing [1] and has been widely suggested for large development efforts. For example, the 1985 DOD-STD-2167[2] mentions (in section 4.1.2): "During software development, more than one iteration of the software development cycle may be in progress at the same time." and "This process may be described as an 'evolutionary acquisition' or 'incremental build' approach." The relationship between iterations and increments is determined by the overall software development methodology and software development process. The exact number and nature of the particular incremental builds and what is iterated will be specific to each individual development effort.
Iterative development model
Software development process
Core activities
Requirements Specification Architecture Construction Design Testing Debugging Deployment Maintenance
Methodologies
Waterfall Prototype model Incremental Iterative V-Model Spiral Scrum Cleanroom RAD DSDM UP XP Agile Lean Dual Vee Model TDD BDD FDD DDD MDD
Supporting disciplines
Configuration management Documentation Software Quality assurance (SQA) Project management User experience
Tools
Compiler Debugger Profiler GUI designer Modeling IDE Build automation
v t e
Iterative and incremental development are essential parts of the Modified waterfall models, Rational Unified Process, Extreme Programming and generally the various agile software development frameworks.
It follows a similar process to the plan-do-check-act cycle of business process improvement.
Contents [hide]
1 Overview
1.1 Phases
1.2 Usage
1.3 Contrast with Waterfall development
1.4 Implementation guidelines
2 See also
3 Notes
4 References
Overview[edit]
A simplified version of a typical iteration cycle in agile project management
The basic idea behind this method is to develop a system through repeated cycles (iterative) and in smaller portions at a time (incremental), allowing software developers to take advantage of what was learned during development of earlier parts or versions of the system. Learning comes from both the development and use of the system, where possible key steps in the process start with a simple implementation of a subset of the software requirements and iteratively enhance the evolving versions until the full system is implemented. At each iteration, design modifications are made and new functional capabilities are added.
The procedure itself consists of the initialization step, the iteration step, and the Project Control List. The initialization step creates a base version of the system. The goal for this initial implementation is to create a product to which the user can react. It should offer a sampling of the key aspects of the problem and provide a solution that is simple enough to understand and implement easily. To guide the iteration process, a project control list is created that contains a record of all tasks that need to be performed. It includes such items as new features to be implemented and areas of redesign of the existing solution. The control list is constantly being revised as a result of the analysis phase.
The iteration involves the redesign and implementation of iteration is to be simple, straightforward, and modular, supporting redesign at that stage or as a task added to the project control list. The level of design detail is not dictated by the iterative approach. In a light-weight iterative project the code may represent the major source of documentation of the system; however, in a critical iterative project a formal Software Design Document may be used. The analysis of an iteration is based upon user feedback, and the program analysis facilities available. It involves analysis of the structure, modularity, usability, reliability, efficiency, & achievement of goals. The project control list is modified in light of the analysis results.
Iterative development.
Phases[edit]
Incremental development slices the system functionality into increments (portions). In each increment, a slice of functionality is delivered through cross-discipline work, from the requirements to the deployment. The unified process groups increments/iterations into phases: inception, elaboration, construction, and transition.
Inception identifies project scope, requirements (functional and non-functional) and risks at a high level but in enough detail that work can be estimated.
Elaboration delivers a working architecture that mitigates the top risks and fulfills the non-functional requirements.
Construction incrementally fills-in the architecture with production-ready code produced from analysis, design, implementation, and testing of the functional requirements.
Transition delivers the system into the production operating environment.
Each of the phases may be divided into 1 or more iterations, which are usually time-boxed rather than feature-boxed. Architects and analysts work one iteration ahead of developers and testers to keep their work-product backlog full.
Usage[edit]
Many examples of early usage are provided in Craig Larman and Victor Basili's article "Iterative and Incremental Development: A Brief History",[3] with one of the earliest being NASA's 1960s Project Mercury.
Another is an "early and striking example of a major IID success is the very heart of NASA’s space shuttle software—the primary avionics software system, which FSD built from 1977 to 1980. The team applied IID in a series of 17 iterations over 31 months, averaging around eight weeks per iteration. Their motivation for avoiding the waterfall life cycle was that the shuttle program’s requirements changed during the software development process".
Some organizations, such as the US Department of Defense, have a preference for iterative methodologies, starting with MIL-STD-498 "clearly encouraging evolutionary acquisition and IID".
The current DoD Instruction 5000.2, released in 2000, states a clear preference for IID: "There are two approaches, evolutionary and single step [waterfall], to full capability. An evolutionary approach is preferred. … [In this] approach, the ultimate capability delivered to the user is divided into two or more blocks, with increasing increments of capability...software development shall follow an iterative spiral development process in which continually expanding software versions are based on learning from earlier development. It can also be done in phases .
Contrast with Waterfall development[edit]
Programming paradigms
Action
Agent-oriented
Aspect-oriented
Automata-based
Concurrent computing
Relativistic programming
Data-driven
Declarative (contrast: Imperative)
Constraint
Dataflow
Flow-based
Cell-oriented (spreadsheets)
Reactive
Functional
Functional logic
Logic
Abductive logic
Answer set
Constraint logic
Functional logic
Inductive logic
End-user programming
Event-driven
Service-oriented
Time-driven
Expression-oriented
Feature-oriented
Function-level (contrast: Value-level)
Generic
Imperative (contrast: Declarative)
Procedural
Language-oriented
Natural language programming
Discipline-specific
Domain-specific
Grammar-oriented
Dialecting
Intentional
Metaprogramming
Automatic
Reflective
Attribute-oriented
Homoiconic
Template
Policy-based
Non-structured (contrast: Structured)
Array
Nondeterministic
Parallel computing
Process-oriented
Point-free style
Concatenative
Semantic
Structured (contrast: Non-structured)
Block-structured
Modular (contrast: Monolithic)
Object-oriented (OOP)
By separation of concerns:
Aspect-oriented
Role-oriented
Subject-oriented
Class-based
Prototype-based
Recursive
Value-level (contrast: Function-level)
Probabilistic
Concept
v t e
Waterfall development completes the project-wide work-products of each discipline in one step before moving on to the next discipline in the next step. Business value is delivered all at once, and only at the very end of the project. Backtracking is possible in an iterative approach.
Implementation guidelines[edit]
Guidelines that drive the implementation and analysis include:
Any difficulty in design, coding and testing a modification should signal the need for redesign or re-coding.
Modifications should fit easily into isolated and easy-to-find modules. If they do not, some redesign is possibly needed.
Modifications to tables should be especially easy to make. If any table modification is not quickly and easily done, redesign is indicated.
Modifications should become easier to make as the iterations progress. If they are not, there is a basic problem such as a design flaw or a proliferation of patches.
Patches should normally be allowed to exist for only one or two iterations. Patches may be necessary to avoid redesigning during an implementation phase.
The existing implementation should be analyzed frequently to determine how well it measures up to project goals.
Program analysis facilities should be used whenever available to aid in the analysis of partial implementations.
User reaction should be solicited and analyzed for indications of deficiencies in the current implementation.
See also[edit]
Incremental build model
Rapid application development
Dynamic Systems Development Method
Extreme Programming
Continuous integration
Kaizen
Rational Unified Process
Unified Process
Microsoft Solutions Framework
Interaction Design
OpenUP/Basic
Object-oriented analysis and design
Goal-Driven Software Development Process
Spiral model
Notes[edit]
Jump up ^ Larman, Craig (June 2003). "Iterative and Incremental Development: A Brief History". Computer 36 (6): 47–56. doi:10.1109/MC.2003.1204375. ISSN 0018-9162. "We were doing incremental development as early as 1957, in Los Angeles, under the direction of Bernie Dimsdale [at IBM's ServiceBureau Corporation]. He was a colleague of John von Neumann, s
Iterative and incremental development
From Wikipedia, the free encyclopedia
Iterative and Incremental development is any combination of both iterative design or iterative method and incremental build model for software development. The combination is of long standing [1] and has been widely suggested for large development efforts. For example, the 1985 DOD-STD-2167[2] mentions (in section 4.1.2): "During software development, more than one iteration of the software development cycle may be in progress at the same time." and "This process may be described as an 'evolutionary acquisition' or 'incremental build' approach." The relationship between iterations and increments is determined by the overall software development methodology and software development process. The exact number and nature of the particular incremental builds and what is iterated will be specific to each individual development effort.
Iterative development model
Software development process
Core activities
Requirements Specification Architecture Construction Design Testing Debugging Deployment Maintenance
Methodologies
Waterfall Prototype model Incremental Iterative V-Model Spiral Scrum Cleanroom RAD DSDM UP XP Agile Lean Dual Vee Model TDD BDD FDD DDD MDD
Supporting disciplines
Configuration management Documentation Software Quality assurance (SQA) Project management User experience
Tools
Compiler Debugger Profiler GUI designer Modeling IDE Build automation
v t e
Iterative and incremental development are essential parts of the Modified waterfall models, Rational Unified Process, Extreme Programming and generally the various agile software development frameworks.
It follows a similar process to the plan-do-check-act cycle of business process improvement.
Contents [hide]
1 Overview
1.1 Phases
1.2 Usage
1.3 Contrast with Waterfall development
1.4 Implementation guidelines
2 See also
3 Notes
4 References
Overview[edit]
A simplified version of a typical iteration cycle in agile project management
The basic idea behind this method is to develop a system through repeated cycles (iterative) and in smaller portions at a time (incremental), allowing software developers to take advantage of what was learned during development of earlier parts or versions of the system. Learning comes from both the development and use of the system, where possible key steps in the process start with a simple implementation of a subset of the software requirements and iteratively enhance the evolving versions until the full system is implemented. At each iteration, design modifications are made and new functional capabilities are added.
The procedure itself consists of the initialization step, the iteration step, and the Project Control List. The initialization step creates a base version of the system. The goal for this initial implementation is to create a product to which the user can react. It should offer a sampling of the key aspects of the problem and provide a solution that is simple enough to understand and implement easily. To guide the iteration process, a project control list is created that contains a record of all tasks that need to be performed. It includes such items as new features to be implemented and areas of redesign of the existing solution. The control list is constantly being revised as a result of the analysis phase.
The iteration involves the redesign and implementation of iteration is to be simple, straightforward, and modular, supporting redesign at that stage or as a task added to the project control list. The level of design detail is not dictated by the iterative approach. In a light-weight iterative project the code may represent the major source of documentation of the system; however, in a critical iterative project a formal Software Design Document may be used. The analysis of an iteration is based upon user feedback, and the program analysis facilities available. It involves analysis of the structure, modularity, usability, reliability, efficiency, & achievement of goals. The project control list is modified in light of the analysis results.
Iterative development.
Phases[edit]
Incremental development slices the system functionality into increments (portions). In each increment, a slice of functionality is delivered through cross-discipline work, from the requirements to the deployment. The unified process groups increments/iterations into phases: inception, elaboration, construction, and transition.
Inception identifies project scope, requirements (functional and non-functional) and risks at a high level but in enough detail that work can be estimated.
Elaboration delivers a working architecture that mitigates the top risks and fulfills the non-functional requirements.
Construction incrementally fills-in the architecture with production-ready code produced from analysis, design, implementation, and testing of the functional requirements.
Transition delivers the system into the production operating environment.
Each of the phases may be divided into 1 or more iterations, which are usually time-boxed rather than feature-boxed. Architects and analysts work one iteration ahead of developers and testers to keep their work-product backlog full.
Usage[edit]
Many examples of early usage are provided in Craig Larman and Victor Basili's article "Iterative and Incremental Development: A Brief History",[3] with one of the earliest being NASA's 1960s Project Mercury.
Another is an "early and striking example of a major IID success is the very heart of NASA’s space shuttle software—the primary avionics software system, which FSD built from 1977 to 1980. The team applied IID in a series of 17 iterations over 31 months, averaging around eight weeks per iteration. Their motivation for avoiding the waterfall life cycle was that the shuttle program’s requirements changed during the software development process".
Some organizations, such as the US Department of Defense, have a preference for iterative methodologies, starting with MIL-STD-498 "clearly encouraging evolutionary acquisition and IID".
The current DoD Instruction 5000.2, released in 2000, states a clear preference for IID: "There are two approaches, evolutionary and single step [waterfall], to full capability. An evolutionary approach is preferred. … [In this] approach, the ultimate capability delivered to the user is divided into two or more blocks, with increasing increments of capability...software development shall follow an iterative spiral development process in which continually expanding software versions are based on learning from earlier development. It can also be done in phases .
Contrast with Waterfall development[edit]
Programming paradigms
Action
Agent-oriented
Aspect-oriented
Automata-based
Concurrent computing
Relativistic programming
Data-driven
Declarative (contrast: Imperative)
Constraint
Dataflow
Flow-based
Cell-oriented (spreadsheets)
Reactive
Functional
Functional logic
Logic
Abductive logic
Answer set
Constraint logic
Functional logic
Inductive logic
End-user programming
Event-driven
Service-oriented
Time-driven
Expression-oriented
Feature-oriented
Function-level (contrast: Value-level)
Generic
Imperative (contrast: Declarative)
Procedural
Language-oriented
Natural language programming
Discipline-specific
Domain-specific
Grammar-oriented
Dialecting
Intentional
Metaprogramming
Automatic
Reflective
Attribute-oriented
Homoiconic
Template
Policy-based
Non-structured (contrast: Structured)
Array
Nondeterministic
Parallel computing
Process-oriented
Point-free style
Concatenative
Semantic
Structured (contrast: Non-structured)
Block-structured
Modular (contrast: Monolithic)
Object-oriented (OOP)
By separation of concerns:
Aspect-oriented
Role-oriented
Subject-oriented
Class-based
Prototype-based
Recursive
Value-level (contrast: Function-level)
Probabilistic
Concept
v t e
Waterfall development completes the project-wide work-products of each discipline in one step before moving on to the next discipline in the next step. Business value is delivered all at once, and only at the very end of the project. Backtracking is possible in an iterative approach.
Implementation guidelines[edit]
Guidelines that drive the implementation and analysis include:
Any difficulty in design, coding and testing a modification should signal the need for redesign or re-coding.
Modifications should fit easily into isolated and easy-to-find modules. If they do not, some redesign is possibly needed.
Modifications to tables should be especially easy to make. If any table modification is not quickly and easily done, redesign is indicated.
Modifications should become easier to make as the iterations progress. If they are not, there is a basic problem such as a design flaw or a proliferation of patches.
Patches should normally be allowed to exist for only one or two iterations. Patches may be necessary to avoid redesigning during an implementation phase.
The existing implementation should be analyzed frequently to determine how well it measures up to project goals.
Program analysis facilities should be used whenever available to aid in the analysis of partial implementations.
User reaction should be solicited and analyzed for indications of deficiencies in the current implementation.
See also[edit]
Incremental build model
Rapid application development
Dynamic Systems Development Method
Extreme Programming
Continuous integration
Kaizen
Rational Unified Process
Unified Process
Microsoft Solutions Framework
Interaction Design
OpenUP/Basic
Object-oriented analysis and design
Goal-Driven Software Development Process
Spiral model
Notes[edit]
Jump up ^ Larman, Craig (June 2003). "Iterative and Incremental Development: A Brief History". Computer 36 (6): 47–56. doi:10.1109/MC.2003.1204375. ISSN 0018-9162. "We were doing incremental development as early as 1957, in Los Angeles, under the direction of Bernie Dimsdale [at IBM's ServiceBureau Corporation]. He was a colleague of John von Neumann, s
การแปล กรุณารอสักครู่..

ผลการพัฒนาและเพิ่มขึ้น จากวิกิพีเดีย สารานุกรมเสรี และเพิ่มการพัฒนา
ซ้ำคือการรวมกันของทั้งสองวิธีการออกแบบและสร้างรูปแบบหรือวิธีการที่เพิ่มขึ้นของการพัฒนาซอฟต์แวร์ การรวมกันของยืนยาว [ 1 ] และได้แพร่หลายแนะนำสำหรับความพยายามในการพัฒนาขนาดใหญ่ ตัวอย่างเช่น , 1985 dod-std-2167 [ 2 ] กล่าวถึง ( ในส่วนของ )" ระหว่างการพัฒนาซอฟต์แวร์ มากกว่าอย่างหนึ่งของการพัฒนาซอฟต์แวร์รอบอาจจะอยู่ในความคืบหน้าในเวลาเดียวกัน " และ " กระบวนการนี้อาจจะอธิบายเป็น ' วิวัฒนาการ ' หรือ ' ' การเพิ่มวิธีการสร้าง " ความสัมพันธ์ระหว่างการทำซ้ำและเพิ่มจะถูกกำหนดโดยรวมวิธีการพัฒนาซอฟแวร์ และกระบวนการพัฒนาซอฟต์แวร์แน่นอนจำนวนและธรรมชาติของเฉพาะเพิ่มสร้างและสิ่งที่เป็นซ้ำจะเป็นเฉพาะแต่ละบุคคล การพัฒนาความพยายาม
ตัวแบบการพัฒนากระบวนการพัฒนาซอฟต์แวร์กิจกรรมหลัก
ข้อกำหนดของสถาปัตยกรรมการออกแบบก่อสร้าง การทดสอบ การดีบักวิธีการบำรุงรักษาการใช้งาน
ตกรุ่นต้นแบบแบบจำลองการเพิ่มของเกลียวแบบ dsdm แรดขึ้น XP เปรียวยันแบบ Dual วี TDD bdd FDD DDD MDD
สนับสนุนวินัย
การกำหนดค่าการจัดการเอกสารซอฟต์แวร์ระบบประกันคุณภาพ ( SQA ) โครงการการจัดการผู้ใช้ประสบการณ์
รวบรวมเครื่องมือดีบักนักวิเคราะห์ออกแบบ GUI แบบ IDE สร้างระบบอัตโนมัติ
v
T Eซ้ำและการพัฒนาที่เพิ่มขึ้นเป็นส่วนสําคัญของการแก้ไขตกรุ่น การรวมกระบวนการ จัดโปรแกรมและโดยทั่วไปต่างๆว่องไวพัฒนาซอฟต์แวร์กรอบ
มันเป็นไปตามกระบวนการที่คล้ายกับแผนการตรวจสอบทำรอบของการปรับปรุงกระบวนการทางธุรกิจ เนื้อหา [ ซ่อน ]
เฟส 1 ภาพรวม 1.1 1.2 1.3 ใช้
ตรงกันข้ามกับน้ำตกพัฒนา
14 แนวทางการดําเนินงาน
2
3
4 ดูหมายเหตุอ้างอิง
ภาพรวม [ แก้ไข ]
รุ่นที่เรียบง่ายของรอบการทำซ้ำโดยทั่วไปในการจัดการโครงการ
แนวคิดพื้นฐานที่อยู่เบื้องหลังวิธีการนี้เพื่อพัฒนาระบบผ่านอีกรอบ ( ซ้ำ ) และในส่วนเล็ก ๆที่เวลา ( เพิ่ม )ช่วยให้นักพัฒนาซอฟต์แวร์เพื่อใช้ประโยชน์จากสิ่งที่ได้เรียนรู้ในการพัฒนาชิ้นส่วนหรือรุ่นก่อนหน้าของระบบ การเรียนรู้มาจากทั้งการพัฒนาและการใช้งานของระบบที่เป็นไปได้ขั้นตอนสำคัญในกระบวนการเริ่มต้นด้วยใช้งานง่ายของส่วนหนึ่งของซอฟต์แวร์และความต้องการพัฒนารุ่นซ้ำเพิ่มจนเต็มระบบ คือใช้ในแต่ละซ้ำ ดัดแปลง ออกแบบ สร้าง และความสามารถในการทำงานใหม่จะถูกเพิ่ม
ขั้นตอนตัวเองประกอบด้วยการเริ่มต้นขั้นตอนการทำซ้ำขั้นตอนและการควบคุมโครงการ รายการ ขั้นตอนในการเริ่มต้นสร้างรุ่นฐานของระบบ เป้าหมายสำหรับการเริ่มต้นนี้คือการสร้างผลิตภัณฑ์ที่ผู้ใช้สามารถตอบสนองมันควรมีตัวอย่างของประเด็นหลักของปัญหา และให้บริการโซลูชั่นที่ง่ายพอที่จะเข้าใจและใช้ง่าย คู่มือขั้นตอนการทำซ้ำ , โครงการควบคุมรายการถูกสร้างขึ้นมีประวัติของงานที่ต้องปฏิบัติ ซึ่งจะรวมถึงรายการเช่นคุณสมบัติใหม่ใช้พื้นที่และออกแบบโซลูชั่นที่มีอยู่รายการการควบคุมอย่างต่อเนื่องแก้ไขผลของการวิเคราะห์เฟส
ซ้ำที่เกี่ยวข้องกับการออกแบบและการดำเนินงานของการเป็นที่ง่ายตรงไปตรงมาและโมดูลที่สนับสนุนการออกแบบในขั้นตอนหรืองานเพิ่มให้กับโครงการควบคุมรายการ ระดับของรายละเอียดการออกแบบไม่ได้เป็น dictated โดยวิธีการซ้ำในน้ำหนักเบาของโครงการรหัสอาจเป็นตัวแทนของแหล่งที่มาของเอกสารของระบบ อย่างไรก็ตาม ในวิกฤตซ้ำโครงการอย่างเป็นทางการซอฟต์แวร์การออกแบบเอกสารอาจจะใช้ การวิเคราะห์ซ้ำตามความคิดเห็นของผู้ใช้และโปรแกรมการวิเคราะห์เครื่องพร้อมใช้งาน มันเกี่ยวข้องกับการวิเคราะห์โครงสร้าง รูปแบบ การใช้งาน ความน่าเชื่อถือ ประสิทธิภาพ&ผลสัมฤทธิ์ของเป้าหมาย โครงการควบคุมรายการดัดแปลงในแง่ของการวิเคราะห์ผล การพัฒนาซ้ำ
.
) [ แก้ไข ]
เพิ่มพัฒนาระบบการทำงานให้เป็นชิ้นน้อย ( บางส่วน ) ในแต่ละการ , ชิ้นของฟังก์ชันจะถูกส่งผ่านข้ามงานวินัย จากความต้องการในการใช้งาน .รวมกระบวนการกลุ่มน้อย / ซ้ำออกเป็นระยะ : ก่อตั้ง , คู่มือ , ก่อสร้าง , และการเปลี่ยนแปลง
ที่มาระบุขอบเขตของโครงการ ความต้องการ ( การทำงานและไม่ทำงาน ) และความเสี่ยงในระดับสูง แต่ในรายละเอียดเพียงพอที่สามารถประมาณ รายละเอียดส่งงานสถาปัตยกรรม
ที่ช่วยลดความเสี่ยงสูงสุดและตอบสนองโนน
หน้าที่ความต้องการการก่อสร้างแบบเพิ่มหน่วยเติมในสถาปัตยกรรมกับการผลิตพร้อมรหัส ผลิตจาก การวิเคราะห์ การออกแบบ ติดตั้ง และทดสอบความต้องการการทำงาน .
เปลี่ยนให้ระบบในการผลิตงานสิ่งแวดล้อม .
แต่ละขั้นตอนอาจแบ่งเป็น 2 หรือมากกว่าการทำซ้ำซึ่งมักจะมีเวลามากกว่า มีกล่องบรรจุกล่อง .สถาปนิกและนักวิเคราะห์งานอย่างหนึ่งข้างหน้าของนักพัฒนาและทดสอบเพื่อให้ผลิตภัณฑ์ที่ค้างงานเต็ม [ การแก้ไข ]
หลายตัวอย่างของการใช้ต้นไว้ในเครก larman และวิคเตอร์ basili บทความ " ของการพัฒนาและเพิ่ม : ประวัติศาสตร์ " ย่อ , [ 3 ] กับหนึ่งเก่าถูกนาซา 1960 โครงการเมอร์คิวรี .
อื่นเป็น " แรกและตัวอย่างที่โดดเด่นของสาขาเปลือกให้เปิดความสำเร็จเป็นหัวใจของ NASA ของกระสวยอวกาศโปรแกรมหลักระบบ Avionics ซึ่ง FSD สร้างขึ้นระหว่างปี 1980 ทีมที่ใช้เปลือกให้เปิดในชุดของ 17 รอบกว่า 31 เดือน เฉลี่ยประมาณแปดสัปดาห์ต่อซ้ำ .แรงจูงใจของพวกเขาเพื่อหลีกเลี่ยงน้ำตกวงจรชีวิตที่ความต้องการรับส่งโปรแกรมเปลี่ยนไปในระหว่างกระบวนการพัฒนาซอฟต์แวร์
บางองค์กร เช่น กระทรวงกลาโหมสหรัฐฯ มีความชอบของวิธีการเริ่มต้นด้วย mil-std-498 " อย่างชัดเจน และส่งเสริมการวิวัฒนาการเปลือกให้เปิด "
ปัจจุบันการเรียนการสอน 5000.2 ดอดออกใน 2000 ,สหรัฐอเมริกาการล้างเปลือกให้เปิด " มี สองวิธี และขั้นตอน [ วิวัฒนาการ ] น้ำตกเดียวเพื่อความสามารถเต็ม วิธีการวิวัฒนาการเป็นที่ต้องการ . . . . . . . [ โดย ] , ความสามารถสูงสุดส่งไปยังผู้ใช้แบ่งออกเป็นสองหรือมากกว่าบล็อกตามการเพิ่มขึ้นของความสามารถ . . . . . . .การพัฒนาซอฟต์แวร์ให้เป็นไปตามกระบวนการของการพัฒนาเกลียวที่ขยายอย่างต่อเนื่องรุ่นซอฟต์แวร์จะขึ้นอยู่กับการเรียนรู้จากการพัฒนาก่อนหน้านี้ นอกจากนี้ยังสามารถทำในเฟส
ตรงกันข้ามกับน้ำตกพัฒนา [ แก้ไข ]
เจ้าหน้าที่ไทยทาวน์การมุ่งเน้นด้านเชิง
ตามสภาพแสงจำกัดคอมพิวเตอร์โปรแกรม
ข้อมูลขับเคลื่อนคำประกาศ ( ความคมชัด : ขวาง )
เซลล์ข้อมูลการไหลตามแนว ( สเปรดชีต )
3
หน้าที่การทำงานตรรกะตรรกะตรรกะชุด
ตอบ abductive ตรรกะข้อจำกัดการทำงานตรรกะตรรกะเชิงอุปนัย
ผู้ใช้โปรแกรมเหตุการณ์ขับเคลื่อนบริการเชิง
เวลาขับเน้นคุณลักษณะที่มุ่งเน้นการแสดงออก
ระดับ ฟังก์ชัน ( ความคมชัดระดับค่า )
( ขวางทั่วไปความคมชัด : คำประกาศ )
ภาษาเชิงกระบวนการ
ธรรมชาติภาษาวินัยเฉพาะโดเมนเชิงไวยากรณ์ dialecting
ตั้งใจโกปาเดลเรย์อัตโนมัติคุณลักษณะแบบสะท้อนแสง
homoiconic แม่แบบนโยบายไม่ตามโครงสร้าง ( ความคมชัด : โครงสร้างอาร์เรย์
)
nondeterministic ขนานคอมพิวเตอร์
เน้นกระบวนการจุดฟรีสไตล์ concatenative
ความหมาย โครงสร้าง ( ความคมชัด : ไม่มีโครงสร้าง )
บล็อกโครงสร้าง ( ความคมชัด : เสาหิน
modular เชิงวัตถุ ( OOP )
)
:
โดยแยกจากความกังวลด้านมุ่งเน้นบทบาทเชิงวิชาเรียนตามแนว
ค่าระดับต้นแบบใช้ recursive ( ความคมชัดระดับฟังก์ชันความน่าจะเป็น )
V E
t แนวคิดการพัฒนาน้ำตกเสร็จสมบูรณ์โครงการกว้าง ผลิตภัณฑ์งานของแต่ละสาขาในขั้นตอนเดียวก่อนจะย้ายไปที่วินัยต่อไปในขั้นตอนต่อไป มูลค่าทางธุรกิจจะถูกส่งทันที และเพียงที่ส่วนท้ายสุดของโครงการ ย้อนรอยเป็นไปในแนวทางซ้ำ
แนวทางการดําเนินงาน [ แก้ไข ]
แนวทางการขับการใช้และการวิเคราะห์รวม :
ความยากลำบากในการออกแบบ , การเขียนโปรแกรมและการทดสอบการปรับเปลี่ยนควรส่งสัญญาณต้องออกแบบหรือการเขียนโปรแกรม Re .
การปรับเปลี่ยนควรพอดีกับที่แยกและง่ายต่อการค้นหาโมดูล ถ้าพวกเขาไม่ บางแบบอาจจะต้องการ
ปรับเปลี่ยนตารางจะง่ายโดยเฉพาะเพื่อให้ ถ้าโต๊ะไม่ปรับเปลี่ยนได้อย่างรวดเร็วและได้อย่างง่ายดายออกแบบ
ระบุการแก้ไขก็ง่ายที่จะทำให้เป็นซ้ำและความคืบหน้า ถ้าพวกเขาจะไม่ มีปัญหาพื้นฐาน เช่น การออกแบบข้อบกพร่องหรือการงอกของแพทช์ .
แพทช์ปกติควรได้รับอนุญาตให้มีได้เพียงหนึ่งหรือสองรอบ . แพทช์อาจจำเป็นต้องหลีกเลี่ยงการเปลี่ยนแปลงในระหว่างขั้นตอนการใช้งาน .
การดำเนินงานที่มีอยู่ควรจะใช้บ่อยเพื่อตรวจสอบวิธีการที่ดีมันมาตรการขึ้นเพื่อเป้าหมายโครงการ
เครื่องวิเคราะห์โปรแกรมควรจะใช้เมื่อใดก็ตามที่พร้อมใช้งานเพื่อช่วยในการวิเคราะห์การดำเนินงานบางส่วน
ปฏิกิริยาผู้ใช้ควรร้องขอและวิเคราะห์ตัวชี้วัดของข้อบกพร่องในการใช้งานปัจจุบัน .
ดู [ แก้ไข ]
เพิ่มสร้างโมเดลการพัฒนาโปรแกรมรวดเร็ววิธีพัฒนาระบบแบบไดนามิกมาก
โปรแกรมบูรณาการอย่างต่อเนื่อง Kaizen การรวมกระบวนการกระบวนการ
รวม Microsoft โซลูชั่นการออกแบบปฏิสัมพันธ์กรอบ
โอเพ่น พ / การวิเคราะห์และออกแบบเชิงวัตถุขั้นพื้นฐาน
เป้าหมายขับเคลื่อนกระบวนการพัฒนาซอฟต์แวร์แบบเกลียวโน๊ต
[ แก้ไข ]
กระโดดขึ้น
larman เครก ( มิถุนายน 2546 ) " วิธีการพัฒนาและเพิ่ม :ประวัติโดยย่อ " คอมพิวเตอร์ 36 ( 6 ) : 47 - 56 ดอย : 10.1109/mc.2003.1204375 . ชื่อ 0018-9162 ” เรากำลังพัฒนาเพิ่มขึ้นเร็ว 1957 ในลอส แองเจลิส ภายใต้ทิศทางของ เบอร์นี่ dimsdale [ ที่ไอบีเอ็ม บริษัท servicebureau ] เขาถูกเพื่อนร่วมงานของจอห์น ฟอน นอยมันน์ ,
การแปล กรุณารอสักครู่..
