01-软件工程基础
基础知识
名词解释:软件工程
定义:
应用系统的、规范的、可量化的方法来开发、运行和维护软件,即将工程应用到软件
对 1 中各种方法的研究。
步骤:(项目启动->)需求开发->软件设计->软件构造->软件测试->软件交付和维护
简答:从 1950s - 2000s 之间的特点
1950s:科学计算;以机器为中心进行编程;像生产硬件一样生产软件。
1960s:业务应用(批量数据处理和事物计算);软件不同于硬件;用软件工艺的方式生产软件。
1970s:结构化方法;瀑布模型;强调规则和纪律。
1980s:追求生产力最大化;现代结构化方法/面向对象编程广泛应用;重视过程的作用。
1990s:企业为中心的大规模软件系统;追求快速开发、可变更性和用户价值;Web 应用出现。
2000s:大规模 Web 应用;面向大众的 Web 产品;追求快速开发、可变更性、用户价值和创新。
项目启动
团队 & 团队管理
管理团队:建立团队章程、持续成功、和谐沟通、避免团队杀手
团队结构:主程序员团队、民主团队、开放团队
质量 & 质量保障
功能性、可靠性、易用性、效率、可维护性、可移植性
阶段
质量保障活动
需求开发
需求评审、需求度量
体系结构
体系结构评审、集成测试(持续集成)
详细设计
详细设计评审、设计度量、集成测试(持续集成)
实现
代码评审、代码度量、测试(测试驱动、持续集成)
测试
测试、测试度量
配置管理
软件配置:除了最终产品以外的中间制品:文档、源码、运行所需的系统软件……
配置管理活动:标识配置项、版本管理、变更控制、配置审计、状态报告、软件发布管理
变更控制:提请者->接收者->评审者->变更控制委员会->修改者->验证者
最后更新于