软件工程
一、软件
1:软件定义
软件 = 程序 + 文档
2:本质特性
2.1:复杂性
2. 2:一致性
2.3:可变性
2.4:不可见性
二、软件开发的挑战
三、什么是软件工程
1:软件工程定义:
- 软件工程三元组:<目标, 原则, 活动 >
2:软件工程目标
生产具有正确性、可用性、以及开销合宜的产品
- 正确性: 软件产品达到预期功能的程度
- 可用性:软件的基本结构、实现及文档为用户可用的程度
- 开销合宜:软件开发、运行的整个开销满足用户要求的基本程度
3:软件工程过程
其中最各阶段的所占比:
四、合格的程序员
1:极强的代码阅读、书写能力
2:极强的责任心、责任感、为自己、为用户的体验承担责任
3:职业的道德,代码的品质、公司秘密的保护。。。
4:协同能力
五、软件过程模型
1:瀑布模型
2:原型化模型
简介:建造一个快速原型,实现客户或未来的用户与系统的交互,经过和用户针对原型的讨论和交流,弄清需求以便真正把握用户需要的软件产品是什么样子的
3:迭代模型
3.1:增量模型
在每一个新的发布中增加功能直到构造全部完成
3.2:迭代模型
一开始提交一个完整系统,在后续发布中补充完善各个子系统功能
4:可转换模型
四、开发方法(敏捷开发)
4.1:与传统开发相比
- 瀑布模型:计划驱动项目,认为需求是确定的
- 敏捷方法:认为需求是不确定。