软件开发过程与项目管理(3.软件生存期模型)
软件生存期模型特征常见传统生存期模型瀑布模型适合瀑布模型的项目特征 V模型适合V模型的项目特征 原型适合原型模型的项目特征 增量模型适合增量模型的项目特征 渐进式阶段模型(渐进式迭代模型)渐进式阶段模型的优点 敏捷模型敏捷宣言 XP(eXtreme Programming)极限编程模型极限编程方法的实施原则 选择生存期的步骤例题简答题自练软件生存期模型特征
描述了开发的主要阶段定义每一个阶段要完成的主要过程和活动确定每一个阶段的输入和输出常见传统生存期模型
瀑布模型V模型原型增量模型渐进式阶段模型瀑布模型
需求分析-》设计-》实施-》测试-》维护
适合瀑布模型的项目特征
需求很明确方案很明确类似项目:短期项目等V模型
适合V模型的项目特征
需求很明确方案很明确类似项目:系统性能、安全等有严格要求等原型
适合原型模型的项目特征
需求不明确希望减少项目的不确定性增量模型
适合增量模型的项目特征
需求基本明确,可能发生变化市场、用户:对于市场和用户把握需要逐步了解系统改造:需要一步一步实施渐进式阶段模型(渐进式迭代模型)
特点:渐进式前进、阶段式提交
渐进式阶段模型的优点
阶段式提交一个可运行的产品关键的功能更早出现早期的预警问题,避免缺陷蔓延阶段性完成可以降低估计失误敏捷模型
敏捷组织提出的一个灵活开发方法应对迅速变化需求的快速软件开发方法是一种迭代、循序渐进的开发方法敏捷宣言
XP(eXtreme Programming)极限编程模型
XP(eXtreme Programming)极限编程是由Kent Beck提出的一套针对业务需求和软件开发实践的规则
极限编程方法的实施原则
快速反馈假设简单包容变化选择生存期的步骤
例题
简答题
敏捷开发模型的宣言是什么?
个体和交互胜过过程和工具;
可以工作的软件胜过面面俱到的文档;
客户合作胜过合同谈判;
响应变化胜过遵循计划。
简述各种生存期模型的特点,并说明这些模型应用在什么情况下。
1 瀑布模型,项目开始前,项目的需求很明确,解决方案也很明确,适用于短期项目。
2 V 模型,项目开始前,项目需求很明确,解决方案也很明确,对系统性能安全很严格的项目。
3 原型模型,项目开始前,项目的需求不明确,需要减少项目需求的不确定性,适用于第一次开发的产品,验证可行性,需求不明确的项目。
4 增量模型,项目开始时,明确了需求的大部分,但是需求可能会发生变化,对于市场和用户把握不是很准,需要逐步了解,对于庞大和复杂功能的系统进行功能改进,就需要一步一步实施的。
5 渐进式阶段模型,最常用的,综合了增量模型和螺旋式模型,渐进式前进,阶段式提交,阶段式提交一个可运行的产品,关键的功能更早出现,早期预警问题,避免软件缺陷不知不觉的增长,减少报告负担,阶段性完成可以降低估计失误,阶段性完成均衡了弹性和效率。可以适合任何规模的项目,主要是中型或大型项目,希望随时看到未来的项目。但是需要不断提交新的版本。
自练
如果一个项目,在项目初期,需求不明确的情况下,应避免采用以下哪种生存期模型。
A.
原型模型
B.
增量模型
C.
V 模型
D.
螺旋式模型
正确答案: C
XP 模型的实践原则不包括以下哪一点。
A.
快速反馈
B.
假设简单
C.
包容变化
D.
详细设计
正确答案: D
可以构建一部分系统的模型,通过用户试用提出优缺点,最好选择( )生存期模型。
A.
增量式模型
B.
原型
C.
螺旋模型
D.
V 模型
正确答案: B
为避免一次性投资太多带来的风险,最好选择( )生存期模型。
A.
增量式模型
B.
原型
C.
螺旋模型
D.
V 模型
正确答案: A
对于某项目,甲方提供了详细、准确的需求文档,我们的解决方案也很明确,且安全性要求非常严格,此项目采用( ) 生存期模型比较合适。
A.
瀑布模型
B.
增量模型
C.
V 模型
D.
螺旋模型
正确答案: C
在瀑布生存期模型中,要求项目所有的活动都严格按照顺序执行,一个阶段的输出是下一个阶段的输入。
正确答案: 正确
燃尽图是 Scrum 模型中常用的敏捷开发工程实践。
正确答案: 正确
V 模型适合的项目类型是需求很明确、解决方案很明确,而且对系统的性能要求比较严格的项目。
正确答案: 正确
增量式模型可以避免一次性投资太多带来的风险。
正确答案: 正确
瀑布模型不适合短期项目。
正确答案: 错误
每日站立会议是 填空 1 模型的敏捷开发实践。
正确答案:
填空 1:
scrum
敏捷开发通过 填空 1 和快速用户反馈应对管理不确定性和变更
正确答案:
填空 1:
迭代
填空 1 生存期模型中,要求项目所有的活动都严格按照顺序执行,一个阶段的输出是下一个阶段的输入。
正确答案:
填空 1:
瀑布