简答题
-
简述瀑布模型、增量模型、螺旋模型(含原型方法),并分析优缺点,从项目特点、风险特征、人力资源利用角度思考
- 瀑布模型:
瀑布模型将软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动。并且规定了它们自上而下、互相衔接的固定次序。从本质来讲,它是一个软件开发架构,开发过程是通过一系列阶段顺序展开的,从系统需求分析开始直到产品发布和维护,每个阶段都会产生循环反馈。因此如果有信息未被覆盖或者发现了问题,最好是返回上一个阶段并进行适当的修改。- 优点:
为项目提供了按阶段划分的检查点。
当前一阶段完成后,您只需要去关注后续阶段。
可在迭代模型中应用瀑布模型。 - 缺点:
在项目各个阶段之间极少有反馈。
只有在项目生命周期的后期才能看到结果。
通过过多的强制完成日期和里程碑来跟踪各个项目阶段。
- 优点:
- 增量模型:
- 定义
增量模型首先对系统最核心或最清晰的需求进行分析、设计、实现、测试并集成到系统中,再按优先级逐步实现后续需求。 - 优点:
增强客户对系统的信心;降低系统失败风险;提高系统可靠性;提高系统的稳定性和可维护性。 - 缺点:
建立初始模型时,作为增量基础的基本业务服务的确定有一定难度;增量粒度难以选择。
- 定义
- 螺旋模型
螺旋模型将瀑布模型和快速原型模型结合起来,强调了其他模型所忽略的风险分析,特别适合于大型复杂的系统。螺旋模型采用一种周期性的方法来进行系统开发。这会导致开发出众多的中间版本。项目经理在早期就能够为客户实证某些概念,该模型是快速原型法,以进化的开发方式为中心,在每个项目阶段使用瀑布模型法。这种模型的每一个周期都包括需求定义、风险分析、工程实现和评审四个阶段。- 优点:
设计上的灵活性,可以在项目的各个阶段进行变更。
以小的分段来构建大型系统,使成本计算变得简单容易。
客户始终参与每个阶段的开发,保证了项目不偏离正确方向以及项目的可控性。
随着项目推进,客户始终掌握项目的最新信息,从而他或她能够和管理层有效地交互。
客户认可这种公司内部的开发方式带来的良好的沟通和高质量的产品。 - 缺点:
采用螺旋模型需要具有相当丰富的风险评估经验和专门知识,在风险较大的项目开发中,如果未能够及时标识风险,势必造成重大损失。
过多的迭代次数会增加开发成本,延迟提交时间。
- 优点:
- 瀑布模型:
-
简述统一过程三大特点,与面向对象的方法有什么关系?
三大特点:
软件开发是一个迭代过程。软件开发过程是一个不断迭代的过程。
软件开发是由Use Case驱动的。软件开发中对部分功能进行描述,并且可以在团队中被广泛理解,从而进行下一步的开发或测试。
软件开发是以架构设计(Architectural Design)为中心的。软件体系结构提供所有其他发展的中心点,这要求一个具有弹性的、能适应变化的、易于理解的、可以重用的体系结构。统一过程是面向对象开发的重要方法,是迭代、敏捷开发实践的代表,给出了有关软件开发过程组织及实施的指导。
-
简述统一过程四个阶段的划分准则是什么?每个阶段关键的里程碑是什么?
- 初始阶段: 初始阶段的目标是系统建立商业案例并确定项目的边界。该阶段中所关注的是整个项目进行中的业务和需求方面的主要风险。该阶段的里程碑是生命周期目标(Lifecycle Objective)。
- 细化阶段: 分析需求,建立健全的体系结构基础,编制项目计划,淘汰项目中最高风险的元素。理解整个系统–做出决策–建立支持环境。该阶段的里程碑是生命周期结构。
- 构建阶段: 不断迭代以构建产品,对以往过程遗留或者当前过程产生的风险进行处理,并继续演进需求、体系结构和计划,直到产品完成。该阶段的里程碑是产品的初始创建。
- 交付阶段: 确保软件对最终用户是可用的。在该阶段中对产品进行多次测试与bug的修复,以及产品的优化。该阶段的里程碑是成品的发布。
-
软件企业为什么能按固定节奏生产、固定周期发布软件产品?它给企业项目管理带来哪些好处?
答:UP将阶段划分为4个阶段:初始阶段、细化阶段、构造阶段、交付阶段,通过阶段划分,可以使企业能有一个固定的节奏来生产;UP的迭代性,使得项目组能周期性地产出交付物,因此固定周期地发布软件产品也是UP的指导。好处是,能够提高软件团队的生产力,通过明确的过程结构,以及每个阶段结束时的里程碑和评定标准来确保软件质量,从而提高了整体的软件生产效率。
实践题
了解使用TAPD
-
TAPD是什么
TAPD是Tencent Agile Product Development的缩写,即:腾讯敏捷产品研发,是互联网高效协作专业实践,凝聚腾讯多年团队协作理念和敏捷研发精髓。TAPD提供轻量协作和敏捷研发两种解决方案,看板、文档、迭代计划&跟踪、产品需求规划、缺陷跟踪管理等丰富功能,帮助团队可视化工作进展、沉淀分享项目知识、提升团队协作效率。
通过使用TAPD,我们对项目进行需求分析,迭代等功能