01-软件工程基础

基础知识

名词解释:软件工程

  • 定义:

    1. 应用系统的、规范的、可量化的方法来开发、运行和维护软件,即将工程应用到软件

    2. 对 1 中各种方法的研究。

  • 步骤:(项目启动->)需求开发->软件设计->软件构造->软件测试->软件交付和维护

简答:从 1950s - 2000s 之间的特点

  1. 1950s:科学计算;以机器为中心进行编程;像生产硬件一样生产软件。

  2. 1960s:业务应用(批量数据处理和事物计算);软件不同于硬件;用软件工艺的方式生产软件。

  3. 1970s:结构化方法;瀑布模型;强调规则和纪律。

  4. 1980s:追求生产力最大化;现代结构化方法/面向对象编程广泛应用;重视过程的作用。

  5. 1990s:企业为中心的大规模软件系统;追求快速开发、可变更性和用户价值;Web 应用出现。

  6. 2000s:大规模 Web 应用;面向大众的 Web 产品;追求快速开发、可变更性、用户价值和创新。

项目启动

团队 & 团队管理

  • 管理团队:建立团队章程、持续成功、和谐沟通、避免团队杀手

  • 团队结构:主程序员团队、民主团队、开放团队

质量 & 质量保障

  • 功能性、可靠性、易用性、效率、可维护性、可移植性

阶段
质量保障活动

需求开发

需求评审、需求度量

体系结构

体系结构评审、集成测试(持续集成)

详细设计

详细设计评审、设计度量、集成测试(持续集成)

实现

代码评审、代码度量、测试(测试驱动、持续集成)

测试

测试、测试度量

配置管理

  • 软件配置:除了最终产品以外的中间制品:文档、源码、运行所需的系统软件……

  • 配置管理活动:标识配置项、版本管理、变更控制、配置审计、状态报告、软件发布管理

    • 变更控制:提请者->接收者->评审者->变更控制委员会->修改者->验证者

最后更新于