第一章软件工程学概述
- 软件=程序+文档+数据+知识
- 软件特点:无形的、复杂的、开发成本高、易于复制、质量要求高
- 项目过程:分析、设计、编码、测试、维护
- 分类:系统软件、支撑软件、应用软件
- 软件危机:软件在开发、运行、维护过程中所出现的任何问题
- 软件工程概念:把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件
- 软件工程特征
- 软件关注于大型程序的构造
- 软件工程的中心课题是控制复杂性
- 软件经常变化
- 开发软件的效率非常重要
- 和谐的合作是开发软件的基础
- 软件必须有效的支撑它的用户
- 在软件工程领域中通常由具有一种文化背景的人替另外一群具有文化背景的人制造产品
- 软件工程的7条基本原理
- 1.用分阶段的生命周期计划严格管理
- 2.坚持进行阶段评审
- 3.实行严格的产品控制
- 4.采用现代化的程序设计技术
- 5.结果应能清除审查
- 6.开发小组成员的人员应该少而精
- 7.承认不断改进软件工程实践的必要性
- 软件包括技术和管理两个方面,包括三个要素:方法、工具和过程
- 软件工程方法学:传统方法学和面向对象方法学
- 软件生命周期
- 软件定义
- 问题定义
- 可行性研究
- 需求分析
- 软件开发
- 总体设计
- 详细设计
- 编码和单元测试
- 综合测试
- 运行维护
- 软件维护
- 软件定义
- 软件过程模型
- 瀑布模型
- ①阶段间具有顺序性和依赖性②具有推迟实现的特点③质量保证
- 适用于需求比较固定的场所
- ”文档驱动“
- 快速原型模型
- ①快速构建、易修改②更适应需求变化③用户参与④处理模糊需求
- 适用于需求不明确的、小的、生命周期短的场合
- ”用户驱动“
- 增量模型
- ①阶段化②模块化
- ”构件驱动“
- 螺旋模型
- 考虑到风险分析
- ”风险驱动“
- 喷泉模型
- 迭代、无间隙
- ”对象驱动“
- Rational统一过程
- ”以用例驱动“
- 瀑布模型
- 敏捷过程与极限编程
- 个体交互胜过过程和工具
- 可以工作的软件胜过面面俱到的文档
- 客户合作胜过合同谈判
- 响应变化胜过遵循计划
- 补充错题:软件确实尚未摆脱手工艺作坊的开发方式