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 快速的反应
.