1、简答题
简述瀑布模型、增量模型、螺旋模型(含原型方法)的优缺点
瀑布模型
优点
- 定义了软件开发基本流程与活动
- 为项目提供了按阶段划分的检查点
- 前一段完成后,只需关注后续阶段
- 可在迭代模型中应用
需求明确的情况下,在短期内可获取每个阶段是无差错的
缺点
- 依赖问题:前面需求模糊会影响后面工作
- 容错问题:后期发现需求问题,工作量大,不适应用户需求的变化
- 资源调配问题:知识技能、人员数量要求不同
- 各个阶段划分完全固定,阶段之间产生大量文档
可能导致延期,项目不可控
增量模型
优点
- 将待开发软件系统模块化,可分批次地提交软件产品
- 以组件为单位进行开发降低了软件开发的风险。一个开发周期内的错误不会影响到整个软件系统
- 开发顺序灵活,可对组件的实现顺序进行优先级排序,可先完成需求稳定的核心组件
缺点
- 需要软件具备开放式的体系结构,新加入构件不得破坏已构件部分
- 容易退化为边做边改模型,导致软件过程控制失去整体性
- 如果待开发的软件系统很难被模块化,将会给增量开发带来很多麻烦。
螺旋模型
优点
- 设计灵活性,可在项目各个阶段进行变更
- 以小分段构建大型系统,成本计算简单
- 客户始终参与每个阶段的开发,保证项目的可控性
- 客户始终掌握项目的最新信息 ,能够和管理层有效地交互
缺点
- 建设周期长,过多迭代次数会增加开发成本
- 需要具有相当丰富的风险评估经验和专门知识,否则会造成损失
简述 UP 的三大特点,其中哪些内容体现了用户驱动的开发,哪些内容体现风险驱动的开发?
三大特点
- Iterative and incremental:迭代的和增量的
- Use Case Driven:用例驱动的
- Architecture-centric:以架构为核心
UP内容中用例驱动以及迭代增量方法体现了用户驱动的开发,早期的迭代目标要能构造客户最关心的可视化特性。以架构为核心则体现了风险驱动的开发,没有稳固的架构就可能会带来高风险。
UP 四个阶段的划分准则是什么?关键的里程碑是什么?
- 初始阶段(Inception):可行性研究、商业案例、风险评估、估计、预选架构等。生命周期目标(Lifecycle Objective)里程碑,评价项目基本的生存能力,明确的定义这个系统。
- 细化阶段(Elaboration):功能要求、使用案例、域模型、解决风险、计划/规划、设计模型、架构基线等。生命周期结构(Lifecycle Architecture)里程碑,为系统结构建立管理基准。
- 构造阶段(Construction):生成代码、重构、添加/扩展用例、计划/规划,构建测试版本。初始功能(Initial Operational)里程碑,决定了产品是否可在测试环境中进行部署。
- 交付阶段(Transition):优化、漏洞修复、交付,向顾客推出一个功能完整的系统。产品发布(Product Release)里程碑。
IT 项目管理中,“工期、质量、范围/内容” 三个元素中,在合同固定条件下,为什么说“范围/内容”是项目团队是易于控制的
在这三个元素当中,工期是在合同中已被明确规定的,质量也在双方协商的验收条件中被规定。只有范围/内容是比较具有灵活性的,取决于项目团队,因此是易于控制的。
为什么说,UP为企业按固定节奏生产、固定周期发布软件产品提供了依据?
UP将软件的生命周期明确地划分为四个阶段,并且开发被组织成一系列固定的短期小项目,称为迭代。每次迭代都产生经过测试、继承并可执行的局部系统。同时,每次迭代都具有各自的需求分析、设计、实现和测试活动。在每次迭代完成之后,都有产品可供发布。因此可以说UP为节奏生产、周期发布软件产品提供了依据。