SEMAT[软件工程方法和理论 Software Engineering Method and Theory]

时间:2023-03-09 19:24:32
SEMAT[软件工程方法和理论 Software Engineering Method and Theory]

Agile software development

Agile software development is a group of software development methods based on iterative and incremental development, in which requirements and solutions evolve through collaboration between self-organizing, cross-functional teams. It promotes adaptive planning, evolutionary development and delivery, a time-boxed iterative approach, and encourages rapid and flexible response to change. It is a conceptual framework that promotes foreseen tight iterations throughout the development cycle.

Iterative and incremental development

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 and incremental development are essential parts of the Modified waterfall modelsRational Unified ProcessExtreme Programming and generally the various agile software development frameworks.

It follows a similar process to the plan-do-check-act cycle of business processimprovement.