文档介绍:第二章第二章软件过程软件过程( (1 1) ) 2 软件工程 - 2010 - 第二章软件过程第二章内容概要第二章内容概要??过程、过程、软件过程和软件生命周期软件过程和软件生命周期??经典软件过程模型经典软件过程模型??现代软件过程模型现代软件过程模型?? Rational Rational 统一过程统一过程??敏捷过程与极限编程敏捷过程与极限编程??微软过程微软过程★★ 3 软件工程 - 2010 - 第二章软件过程 20 20个个 BUG BUG ?? 1. 1. 程序员写出自认为没有程序员写出自认为没有 Bug Bug 的代码。的代码。 2. 2. 软件测试,发现了软件测试,发现了 20 20个个 Bug Bug 。。 3. 3. 程序员修改了程序员修改了 10 10个个 Bug Bug ,并告诉测试组另外,并告诉测试组另外 10 10个不是个不是 Bug Bug 。。 4. 4. 测试组发现其中测试组发现其中 5 5个改动根本无法工作,同时又发现了个改动根本无法工作,同时又发现了 15 15个新个新 Bug Bug 。。 5. 5. 重复重复 3 3次步骤次步骤 3 3和步骤和步骤 4 4。。 6. 6. 鉴于市场方面的压力,为了配合当初制定的过分乐观的发布时间表, 鉴于市场方面的压力,为了配合当初制定的过分乐观的发布时间表, 产品终于上市了。产品终于上市了。 7. 7. 用户发现了用户发现了 137 137 个新个新 Bug Bug 。。 8. 8. 已经领了项目奖金的程序员不知跑到哪里去了。已经领了项目奖金的程序员不知跑到哪里去了。 9. 9. 新组建的项目组修正了差不多全部新组建的项目组修正了差不多全部 137 137 个个 Bug Bug ,但又发现了,但又发现了 456 456 个新个新 Bug Bug 。。 10. 10. 最初那个程序员从斐济给饱受拖欠工资之苦的测试组寄来了一张最初那个程序员从斐济给饱受拖欠工资之苦的测试组寄来了一张明信片。整个测试组集体辞职。明信片。整个测试组集体辞职。 11. 11. 公司被竞争对手恶意收购。收购时,软件的最终版本包含公司被竞争对手恶意收购。收购时,软件的最终版本包含 783 783 个个 Bug Bug 。。 12. 12. 新新 CEO CEO 走马上任。公司雇了一名新程序员重写该软件。走马上任。公司雇了一名新程序员重写该软件。 13. 13. 程序员写出自认为没有程序员写出自认为没有 Bug Bug 的代码。的代码。 4 软件工程 - 2010 - 第二章软件过程??学****的过程与软件的开发过程学****的过程与软件的开发过程??建造计算机软件是一个迭代学****的过程,其输建造计算机软件是一个迭代学****的过程,其输出是在过程进行中收集、精炼和组织的知识的出是在过程进行中收集、精炼和组织的知识的具体化。具体化。??过程:产生某种预定输出的一系列可预测过程:产生某种预定输出的一系列可预测的步骤,包含一组活动( 的步骤,包含一组活动( activities activities )、约束)、约束( ( constraints constraints )、资源要素( )、资源要素( resources resources )。)。过程( 过程( Process Process ) ) 5 软件工程 - 2010 - 第二章软件过程??过程使用一定的过程使用一定的资源资源,受一定的,受一定的限制限制,并生成,并生成一定的中间及最终一定的中间及最终产品产品; ; ??过程中所包含的过程中所包含的活动活动事先都规定好了事先都规定好了; ; ??过程中每个活动的过程中每个活动的开始、结束有明确的规定开始、结束有明确的规定; ; ??每项活动都有相应的指导原则,用以明确其每项活动都有相应的指导原则,用以明确其目目标标; ; ??各活动之间以某种各活动之间以某种顺序顺序组织; 组织; ??过程可能包括若干相互关联的过程可能包括若干相互关联的子过程子过程; ; ??过程中的活动、资源以及产品都可能受到过程中的活动、资源以及产品都可能受到约约束束; ; 过程的特性过程的特性 6 软件工程 - 2010 - 第二章软件过程??过程能保证各活动之间是有组织的和一致过程能保证各活动之间是有组织的和一致的: 的: ??从而,不同的人使用同一过程能获得在某一层从而,不同的人使用同一过程能获得在某一层次上一致的产品; 次上一致的产品; ??一致性并不排斥灵活性,一致性是在某一层次一致性并不排斥灵活性,一致性是在某一层次上实现的; 上实现的; ??过程可被检查、理解、控制和改进; 过程可被检查、理解、控制和改进; ??过程也是传授经验的一种途径。过程也是传授经验的一种途