简单题
简述瀑布模型、增量模型、螺旋模型(含原型方法)的优缺点
从项目特点、风险特征、人力资源利用角度思考
-
瀑布模型的优缺点
优点- 为项目提供了阶段性划分的检查点。
- 每一阶段完成后,只需要关注后续阶段。
- 可在迭代模型中应用瀑布模型。
- 有利于大型软件开发过程中人员的组织、管理,有利于软件开发方法和工具的研究,从而提高了大型软件项目开发的质量和效率。
缺点
- 各阶段的划分固定,阶段之间产生大量的文档,极大地增加了工作量。
- 开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,从而增加了开发风险。
- 开发过程一般不能逆转,否则代价太大。
- 突出缺点是不适应用户需求。
-
增量模型的优缺点
优点- 将待开发的软件系统模块化,可以分批次地提交软件产品,使用户可以及时了解软件项目的进展。
- 以组件为单位进行开发降低了软件开发的风险。一个开发周期内的错误不会影响到整个软件系统。
- 开发顺序灵活。开发人员可以对组件的实现顺序进行优先级排序,先完成需求稳定的核心组件。当组件的优先级发生变化时,还能及时地对实现顺序进行调整。
- 刚开始不用投入大量人力资源,如果核心产品很受欢迎,可以增加人力实现下一增量。
缺点
- 要求被开发的软件系统被模块化,很可能遇到无法继承的风险,软件必须具备开放式的体系结构。
- 如果待开发的软件系统很难被模块化,将给增量开发带来很多麻烦。
- 增量模型的 灵活性大大优于瀑布模型和快速原型模型,但也很容易退化为边做边改模型,从而使得软件过程的控制失去整体性。
-
螺旋模型的优缺点
优点- 设计灵活,可以在项目的任何阶段进行变更。
- 以小的分段来构建大型系统,使成本计算变得简单容易。
- 客户始终参与每个阶段的开发,保证了项目不偏离正确方向以及项目的可控性。
- 随着项目推进,客户始终掌握项目的最新信息 , 从而他或她能够和管理层有效地交互。
缺点 - 采用螺旋模型需要具有相当丰富的风险评估经验和专门知识
- 在风险较大的项目开发中,如果未能够及时标识风险,势必造成重大损失
- 过多的迭代次数会增加开发成本,延迟提交时间。
简述统一过程三大特点,与面向对象的方法有什么关系?
三大特点
- 软件开发是迭代过程。
- 软件开发是由Use Case驱动的。
- 软件开发是以架构设计(Architecture Design)为中心的
RUP(统一软件过程) 是将类似的产品(如面向对象的软件过程OOSP),以及OPEN Process都是理解性的软件工程工具–把开发中面向过程的方面(例如定义的阶段,技术和实践)和其他开发的组件(例如文档,模型,手册以及代码等等)整合在一个统一的框架内。
简述统一过程四个阶段的划分准则是什么?每个阶段关键的里程碑是什么?
开发过程的四个阶段
- 初始阶段
初始阶段的目标是为系统建立商业案例并确定项目的边界。在这个阶段中所关注的是整个项目进行中的业务和需求方面的主要风险。对于建立在原有系统基础上的开发项目来讲,初始阶段可能很短。
生命周期目标(Lifecycle Objective)里程碑 - 细分阶段
细化阶段的目标是分析问题领域,建立健全的体系结构基础,编制项目计划,淘汰项目中最高风险的元素。理解整个系统–做出决策–建立支持环境
生命周期结构(Lifecycle Architecture)里程碑 - 构造阶段
在构建阶段,所有剩余的构件和应用程序功能被开发并集成为产品,所有的功能被详细测试。重点放在管理资源及控制运作以优化成本、进度和质量。
初始功能(Initial Operational)里程碑 - 交付阶段
交付阶段的重点是确保软件对最终用户是可用的。交付阶段横跨几次迭代,包括发布做准备的产品测试,基于用户反馈的少量的调整。
产品发布(Product Release)里程碑
软件企业为什么能按固定节奏生产、固定周期发布软件产品?它给企业项目管理带来哪些好处?
RUP(软件统一过程)中的每个阶段可以进一步分解为迭代。一个迭代是一个完整的开发循环,产生一个可执行的产品版本,是最终产品的一个子集,它增量式地发展,从一个迭代过程到另一个迭代过程到成为最终的系统。
好处:
- 每个迭代都是瀑布的工作流程
- 每个迭代产品在增量(制品是可运行的),利于及时交付使用并反馈
- 固定的迭代周期(等量的人月),利于量化团队/个人生产率
实践题
TAPD可以与腾讯企业微信、github、gitlab进行关联。
- TAPD基本流程
- Backlog
总体
需求详情
- 迭代(sprint)安排
- 较好的缺陷管理
缺陷管理的严重程度和优先级,处理人,版本情况等
- Kanban
kanban试图可以在下图处修改
修改之后可以看到迭代的“规划中”、“实现中”和“以实现”及“已拒绝”的需求和缺陷 - 统计
在报表中,可以看到各种数据的统计
如缺陷统计的可选内容如下