Software Engineering 02: Software Lifecycle Model

1. Engineering Process

Three basic goals of engineering projects: 合理的进度, 有限的经费, 一定的质量.
For 质量目标, come up with a Deming ring: Plan -> Do -> Check -> Act -> Plan -> ...

2. Software Engineering Process

Definition: A series completed by 获得软件产品, with 软件工具the support of . The main activities are: (1). Software specification: specify the functions of the software and its usage restrictions; (2). Software development: produce software that meets the specification; (3). Software validation: verify the software to ensure that the software can Meet customer requirements; (4). Software evolution: In order to meet customers' changing requirements, the software must be continuously improved during use.软件工程师软件工程活动




3. Software life cycle

Definition: refers to the entire period from the 考虑其概念beginning of a software product to the software product 不再使用, generally including different periods such as 概念stages, 分析与设计stages, 构造stages, and 移交和运行stages.

Six basic steps: 制定计划, 需求分析, 设计, 程序编码, 测试, 运行维护.
Design: general design, detailed design.
Testing: unit testing, assembly testing.
Operation and maintenance: corrective maintenance, adaptive maintenance, perfect maintenance.

4. Software life cycle model

Software process model: From a 特定角度proposed right 软件过程, 概括描述right 软件开发实际过程, 抽象including the various 活动, 软件工件and so 参与角色on that make up the software process.
The software life cycle model is a model 框架that describes all the 软件需求定义processes 软件经使用后废弃, activities and tasks implemented in software development, operation and maintenance throughout the entire life cycle, and describes the software artifacts generated in different stages of the life cycle, and defines the execution roles of the activities, etc. .

4.1. Waterfall Model

The waterfall model provides an effective method for software development and software maintenance , and it plays a significant role in 管理模式early software development .消除非结构化软件降低软件复杂度促进软件开发工程化

Features:
(1). The work object of this activity comes from the output of the previous activity, and these outputs generally represent the end of the activity at this stage 里程碑式的文档.
(2). According to 本阶段的活动规程the implementation of the corresponding tasks.
(3). Generate the output related to the activity of this stage - 软件工件, as the input of the next activity.
(4). Review the implementation of the activities in this stage.

4.2. Evolutionary model

The first time is experimental development, which is experimental, 原型产品and its goal is to make 探索可行性clear 软件需求;
the second time is to obtain a more satisfactory software product on this basis.

Advantages: clarify user needs, improve system quality, and reduce development risks.
Disadvantages:
(1). Difficult to manage, poor structure and immature technology;
(2) The document control advantages of the waterfall model may be abandoned;
(3) The system structure of the final software system may be poor;

Scope of application: 需求不清楚, 小型或中小型系统, 开发周期短.

4.3. Incremental model

Firstly, the system 最核心或最清晰的需求is analyzed, designed, implemented, tested and integrated into the system, and then 按优先级the above-mentioned work is gradually carried out for the subsequent requirements, and a development method of a complete system is gradually built. Combines the advantages of waterfall model and evolution model.

Advantages:
(1) Customers can use the core functions of the system after the first increment, which enhances the confidence of customers in using the system;
(2) The overall risk of project failure is low, because the core functions are developed first, Even if an increment fails, the core functionality is still available to product customers.
(3). Since the increment is determined according to the priority from high to low, the function with the highest priority is tested the most times, which ensures the reliability of the important function part of the system.
(4) All increments are integrated under the guidance of the same architecture, which improves the stability and maintainability of the system.

Disadvantages:
(1). Incremental granularity is difficult to choose;
(2) It is difficult to determine all basic business services.

4.4. Fountain model

Also known as iterative model, it believes that the various stages of the software development process are harmonious 相互重叠, 多次反复just like a fountain, water can be sprayed up and down, either in the middle or at the bottom. The various development stages are not specific 次序要求and can be 并行carried out completely.

Advantages: 提高开发效率, 缩短开发周期.
Disadvantages: 难于管理.

4.5. V model and W model

Bringing testing activities forward allows the waterfall model to manage risk.

4.6. Spiral model

Mainly for the 大型软件项目characteristics of. Four quadrants: , , , .开发周期长风险高
制定计划风险分析实施工程客户评价

4.7. Prototype methods

Prototype: An original model that simulates some final product.
Prototype method: After obtaining a set 基本需求, 快速分析construct one 小型的软件系统原型to meet the basic requirements of users. By using the prototype system, the user proposes 修改意见to reduce the misunderstanding of the system requirements by users and developers, and make the requirements as accurate as possible. Mainly used 明确需求, but can also be used in other stages of software development.

Types:
(1). Abandoned strategy (exploratory, experimental)
(2). Additional strategy (evolutionary)

Applicable limitations:
(1). Large-scale systems
(2). Program modules with a large number of operations and strong logic
(3). The business process and information process of the original application are chaotic

Problems:
(1). Documentation is easily overlooked
(2). Much work in prototyping is wasted
(3). Projects are difficult to plan and manage

4.8. RUP

Definition: A type of software engineering 过程框架that is based 面向对象on 程序开发方法论.
Agile model: It is composed of some summaries, sums 敏捷建模价值观, 原则etc. 实践It is 快速软件开发a representative of ideas.

Four sequential stages: 初始阶段, 细化阶段, 构造阶段, 交付阶段.
Each stage ends with a major 里程碑, and an evaluation is performed at the end of the stage to determine whether the goals of the stage have been met. If the evaluation results are satisfactory, the project can be allowed to proceed to the next stage.

4.8.1. Initial stage

Goal: By 业务场景understanding the business and identifying the project 边界. Including project acceptance specification, risk assessment, required resource estimation, phase plan, etc.
To determine the project boundaries, it is necessary to identify all the interaction with the system 外部实体, mainly including identification 外部角色, 识别all use cases and 详细描述some important use cases.
Milestones: 软件目标里程碑. Include some important documentation (Vision. Use-Case Model, Risk Assessment, etc.).

4.8.2. The refinement phase

Goal: Analyze the problem 领域, establish the one that suits the needs 软件体系结构基础, compile 项目计划and complete the development of the project with high technical requirements and high risk 关键需求.
Milestones: 体系结构里程碑. Include some important documentation (risk analysis, software architecture baseline, etc.).

4.8.3. Construction Phase

Goal: All remaining sums are 技术构件developed 稳定业务需求功能and integrated into a product, all functionalities are tested in detail.
Milestones: 运行能力里程碑. Including runnable 软件产品, 用户手册etc.

4.8.4. Handover Phase

Focus: Make sure the software is available to end users.
Can span several iterations, including product testing in preparation for release, with small tweaks based on user feedback.
Milestones: 产品发布里程碑. To determine whether the ultimate goal is achieved.

The characteristics of RUP 用例: a new software life cycle model that is driven by 软件体系结构the core and applied .迭代及增量

Core Activities:
6 core process workflows: business modeling, requirements, analysis and design, implementation, testing, deployment.
3 core supporting workflows: Configuration and Change Management, Project Management, Environment.

Best Practices, Adaptive Development: 小步骤, 快速反馈and 调整.

4.9. Extreme Programming

XP is a 轻量级software development method and 实践a software engineering process and thought based on it.
It uses fast feedback, extensive and rapid communication, and guaranteed testing to best meet user needs.
XP emphasizes 用户满意that developers can 需求的变化make a difference 快速的反应.

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=325652571&siteId=291194637