简答题

1. 简述瀑布模型、增量模型、螺旋模型(含原型方法)的优缺点。

瀑布模型

优点:

  1. 定义了软件开发基本流程与活动。
  2. 为项目提供了按阶段划分的检查点。
  3. 当前一阶段完成后,只需关注后续阶段。

缺点:

  1. 各步骤之间是分离的,但是软件生产过程中的各个步骤不能这样严格分离出来。

  2. 回溯修改很困难甚至不可能,但是软件生产的过程需要时时回溯。

  3. 最终产品直到最后才出现,但是软件的客户,甚至软件工程师本人都需要尽早知道产品的原型并试用。

增量模型

优点:

  1. 人员分配灵活,刚开始不用投入大量人力资源。

  2. 如果核心产品很受欢迎,则可增加人力实现下一个增量。当配备的人员不能在设定的期限内完成产品时,它提供了一种先推出核心产品的途径。

  3. 这样即可先发布部分功能给客户,对客户起到镇静剂的作用。此外,增量能够有计划地管理技术风险。

缺点

  1. 由于各个构件是逐渐并入已有的软件体系结构中的,所以加入构件必须不破坏已构造好的系统部分,这需要软件具备开放式的体系结构。

  2. 在开发过程中,需求的变化是不可避免的。增量模型的灵活性可以使其适应这种变化的能力大大优于瀑布模型和快速原型模型,但也很容易退化为边做边改模型,从而是软件过程的控制失去整体性。

  3. 如果增量包之间存在相交的情况且未很好处理,则必须做全盘系统分析,这种模型将功能细化后分别开发的方法较适应于需求经常改变的软件开发过程。

螺旋模型

优点

  1. 设计上的灵活性,可以在项目的各个阶段进行变更。

  2. 以小的分段来构建大型系统,使成本计算变得简单容易。

  3. 客户始终参与每个阶段的开发,保证了项目不偏离正确方向以及项目的可控性。

  4. 随着项目推进,客户始终掌握项目的最新信息 , 从而他或她能够和管理层有效地交互。

  5. 客户认可这种公司内部的开发方式带来的良好的沟通和高质量的产品。

缺点

  1. 采用螺旋模型需要具有相当丰富的风险评估经验和专门知识,在风险较大的项目开发中,如果未能够及时标识风险,势必造成重大损失。

  2. 过多的迭代次数会增加开发成本,延迟提交时间。

2. 简述 UP 的三大特点,其中哪些内容体现了用户驱动的开发,哪些内容体现风险驱动的开发?

  • 三大特点:用例驱动、以架构为中心,迭代式增量开发。

  • 用例驱动和以架构为中心体现了用户驱动的开发
  • 迭代式增量开发体现了风险驱动的开发。

3. UP 四个阶段的划分准则是什么?关键的里程碑是什么?

初始阶段

初始阶段的目标是为系统建立商业案例并确定项目的边界。为了达到该目的必须识别所有与系统交互的外部实体,在较高层次上定义交互的特性。本阶段具有非常重要的意义,在这个阶段中所关注的是整个项目进行中的业务和需求方面的主要风险。对于建立在原有系统基础上的开发项目来讲,初始阶段可能很短。 初始阶段结束时是第一个重要的里程碑:生命周期目标(Lifecycle Objective)里程碑。生命周期目标里程碑评价项目基本的生存能力。

细化阶段

细化阶段的目标是分析问题领域,建立健全的体系结构基础,编制项目计划,淘汰项目中最高风险的元素。为了达到该目的,必须在理解整个系统的基础上,对体系结构作出决策,包括其范围、主要功能和诸如性能等非功能需求。同时为项目建立支持环境,包括创建开发案例,创建模板、准则并准备工具。 细化阶段结束时第二个重要的里程碑:生命周期结构(Lifecycle Architecture)里程碑。生命周期结构里程碑为系统的结构建立了管理基准并使项目小组能够在构建阶段中进行衡量。此刻,要检验详细的系统目标和范围、结构的选择以及主要风险的解决方案。

构造阶段

在构建阶段,所有剩余的构件和应用程序功能被开发并集成为产品,所有的功能被详细测试。从某种意义上说,构建阶段是一个制造过程,其重点放在管理资源及控制运作以优化成本、进度和质量。 构建阶段结束时是第三个重要的里程碑:初始功能(Initial Operational)里程碑。初始功能里程碑决定了产品是否可以在测试环境中进行部署。此刻,要确定软件、环境、用户是否可以开始系统的运作。此时的产品版本也常被称为“beta”版。

交付阶段

交付阶段的重点是确保软件对最终用户是可用的。交付阶段可以跨越几次迭代,包括为发布做准备的产品测试,基于用户反馈的少量的调整。在生命周期的这一点上,用户反馈应主要集中在产品调整,设置、安装和可用性问题,所有主要的结构问题应该已经在项目生命周期的早期阶段解决了。 在交付阶段的终点是第四个里程碑:产品发布(Product Release)里程碑。此时,要确定目标是否实现,是否应该开始另一个开发周期。在一些情况下这个里程碑可能与下一个周期的初始阶段的结束重合。

4. IT 项目管理中,“工期、质量、范围/内容” 三个元素中,在合同固定条件下,为什么说“范围/内容”是项目团队是易于控制的?

因为工期、质量的要求在双方签订合同时就已经作出了明确的约束,而范围/内容需要项目团队的控制才能顺利完成开发。因此只有“范围/内容”是项目团队易于控制的。

5. 为什么说,UP 为企业按固定节奏生产、固定周期发布软件产品提供了依据?

因为UP规定了软件生命周期的四个阶段,其中每个阶段的时长、成果是固定的,企业根据UP即可按固定节奏生产和发布软件产品。

项目管理使用

最新文章

  1. my SQL下载安装,环境配置,以及密码忘记的解决,以及navicat for mysql下载,安装,测试连接
  2. [CSS]多浏览器兼容的垂直居中,兼容多个IE
  3. [Android Pro] Android API 23中废弃了HttpClient的解决办法
  4. local variable 'xxx' referenced before assignment
  5. iOS 消息转发
  6. LintCode (9)Fizz Buzz
  7. windows消息处理(强烈推荐,收藏)
  8. 一位OWin服务器新成员TinyFox
  9. 【OpenCV】一种基于阈值的图片中的文字分割
  10. 【spring源码分析】IOC容器初始化(四)
  11. 搭建zookeeper+kafka集群
  12. 【leetcode-82,83,26,80】 删除排序链表/数组中的重复元素
  13. DBeaver连接MySQL 8.0显示"Unable to load authentication plugin 'caching_sha2_password'."错误的问题
  14. [VS2013]发布网站时修改配置文件
  15. layer 弹框不显示内容
  16. Django使用Signals监测model字段变化发送通知
  17. c# 多线程之-- System.Threading Timer的使用
  18. Ld, -rpath, -rpath-link
  19. linux - 文件夹、文件默认属性: umask使用
  20. 利用CompletableFuture优化程序的执行效率

热门文章

  1. kali 下安装 vmtools
  2. Ajax跳入error的原因
  3. MapReduce计数程序(自主复习)
  4. Codeforces 898 贪心关闭最少闹钟 优先队列最少操作构造N/2squares 讨论情况哈希数字串分割a+b=c
  5. 点对点协议PPP
  6. python中一个简单的webserver
  7. vue项目刷新页面,使数据不丢失(sessionStorage、localStorage、cookie)
  8. 第六章 Linux文件与目录管理
  9. java——hasCode是如何对应到数组索引的?为什么HashMap的initailCapacity要设置成2的n次幂?为什么要树化hashMap?
  10. aircrack-wifi密码破解