1、简答题
(1)简述瀑布模型、增量模型、螺旋模型(含原型方法)的优缺点。
瀑布模型
- 优点
- 降低软件开发的复杂程度,提高软件开发过程的透明性,提高
软件开发过程的可管理性。 - 推迟软件实现,强调在软件实现前必须进行分析和设计工作
- 以项目的阶段评审和文档控制为手段有效地对整个开发过程进
行指导,保证了阶段之间的正确衔接,能够及时发现并纠正开发过程中存在的缺陷,使产品达到预期的质量要求
- 降低软件开发的复杂程度,提高软件开发过程的透明性,提高
- 缺点
- 强调过程活动的线性顺序
- 缺乏灵活性,特别是无法解决软件需求不明确或不准确的问题
- 风险控制能力较弱
- 瀑布模型中的软件活动是文档驱动的,当阶段之间规定过多的
文档时,会极大地增加系统的工作量 - 管理人员如果仅仅以文档的完成情况来评估项目完成进度,往
往会产生错误的结论
- 优点
增量模型
- 优点
- 增强客户对系统的信心
- 降低系统失败风险
- 提高系统可靠性
- 提高系统的稳定性和可维护性
- 缺点
- 增量粒度难以选择
- 确定所有的基本业务服务比较困难
- 优点
螺旋模型(含原型方法)
- 优点
- 设计上的灵活性,可以在项目的各个阶段进行变更。
- 以小的分段来构建大型系统,使成本计算变得简单容易。
- 客户始终参与每个阶段的开发,保证了项目不偏离正确方向以及项目的可控性。
- 随着项目推进,客户始终掌握项目的最新信息,从而他或她能够和管理层有效地交互。
- 缺点
- 采用螺旋模型需要具有相当丰富的风险评估经验和专业知识,在风险较大的项目开发中,如果未能够及时标识风险,势必造成重大损失。
- 过多的迭代次数会增加开发成本,延迟提交时间
- 优点
(2)简述 UP 的三大特点,其中哪些内容体现了用户驱动的开发,哪些内容体现风险驱动的开发?
三大特点:
- 用例驱动(体现了用户驱动的开发)
- Use Case模型表达了系统的需求。
- 按照RUP, Use Case贯穿整个软件开发的生命周期。
- 在需求分析中,客户或用户对Use Case进行描述;
- 在系统分析和系统设计过程中,设计师对Use Case进行分析;
- 在实现过程中,开发编程人员对Use Case进行实现;
- 在测试过程中,测试人员对Use Case进行检验。
- 以构架为中心(体现了风险驱动的开发)
- 软件体系构架是关于构成系统的元素、这些元素之间的交互、元素和元素之间地组成模式以及作用在这些组成模式上的约束等方面的描述。
- 采用迭代和增量的开发策略
- RUP强调采用迭代和增量方式来开发软件,把整个项目开发分为多个迭代过程。
- 在每次迭代中,只考虑系统的一部分需求,进行分析、设计、实现、测试、部署等过程,每次迭代是在已完成部分的基础上进行的,每次增加一些新的功能实现,以此进行下去,直至最后项目的完成。
(3)UP 四个阶段的划分准则是什么?关键的里程碑是什么?
划分准则:里程碑与时间。每个阶段本质上是两个里程碑之间的时间跨度。
- 初始阶段
- 关键的里程碑:生命周期目标(Lifecycle Objective) 里程碑,包括一些重要的文档,如:项目构想(Vision)、原始用例模型、原始业务风险评估、一个或者多个原型、原始业务案例等。需要对这些文档进行评审,以确定正确理解用例需求、项目风险评估合理、阶段计划可行等。
- 精化阶段
- 关键的里程碑:生命周期体系结构(Lifecycle Architecture) 里程碑。包括风险分析文档、软件体系结构基线、项目计划、可执行的进化原型、初始版本的用户手册等。通过评审确定软件体系结构已经稳定、高风险的业务需求和技术机制已经解决、修订的项目计划可行等。
- 构建阶段
- 关键的里程碑:初始运行能力(Initial Operational Capability) 里程碑。包括可以运行的软件产品、用户手册等,它决定了产品是否可以在测试环境中进行部署。此刻,要确定软件、环境、用户是否可以开始系统的运行。
- 产品化阶段/移交阶段
- 关键的里程碑:产品发布(Product Release) 里程碑。确定最终目标是否实现,是否应该开始产品下一个版本的另一个开发周期。在一些情况下这个里程碑可能与下一个周期的初始阶段的相重合。
(4)IT 项目管理中,“工期、质量、范围/内容” 三个元素中,在合同固定条件下,为什么说“范围/内容”是项目团队是易于控制的
在合同固定条件下,质量最容易与客户达成妥协,工期和产品内容是合同里能比较明确指出的,固定性比较强;而质量较难度量和发现问题,因此容易达成妥协。
(5)为什么说,UP 为企业按固定节奏生产、固定周期发布软件产品提供了依据?
因为RUP每个阶段开始时都有特定的目标,结束时有里程碑。在每个阶段中存在一个或多个迭代,在每个迭代中,可以有多个工作流,企业只需要完成该阶段性的小目标即可。
这种迭代有以下好处:
- 在软件开发的早期就可以对关键的、影响大的风险进行处理。
- 可以提出一个软件体系结构来指导开发。
- 可以更好的处理不可避免的需求变更。
- 可以较早的得到一个可运行的系统,鼓舞开发团队的士气,增强项目成功的信心。
- 为开发人员提供一个能更有效工作的开发过程
2、项目管理使用
使用截图工具(png格式输出),展现你团队的任务 Kanban,请注意以下要求:
每个人的任务是明确的。即一周后可以看到具体成果
每个人的任务是1-2项。
至少包含一个团队活动任务