1、现在需要开发一个软件,该软件的功能是读入浮点数并求三角函数,结果精确到小数点后4位。一旦实现并测试完之后,就完成任务了。你打算选用哪种软件生命周期模型?理由?
答:瀑布模型。软件的需求很明确,且不会发生太大的变动,实现开平方功能的算法也很具体,不需要通过原型机来了解和确定用户的需求。此外,一旦实现并测试完之后,该产品将被抛弃,不需要维护和升级的过程,不需要不断迭代来维护软件的增量模型或螺旋模型来开发该软件。
2、假设你被任命为一家软件公司的项目负责人,管理该公司已被广泛应用的字处理软件的新版本开发。由于市场竞争激烈,公司规定了严格的完成期限并且已对外公布。你打算采用哪种软件生命周期模型?为什么?
答:增量模型。首先,这个项目的完成时间已经确定,需要按时完工,开发的时间和更迭的过程需要尽可能的少。使用增量模型可以并行开发,分批提交产品逐渐丰富产品功能,能够加快开发进度。同时这个项目是已经广泛使用的软件的升级版,它已经有了(1)充分了解的客户需求、(2)原本的开发团队,对软件的内部十分熟悉,能够做到分解产品构件、(3)有了庞大的用户基数,更新需要重下安装包会流失部分用户。因此,基于以上的优势和问题,增量模型的并行开发、产品分解位增量构件的特点十分合适。
3、对可靠性要求很高(发射火箭、汽车自动驾驶)和要求不高的软件(公司产品宣传、精品课程),分别采用哪种开发模型?
答:螺旋模型和增量模型。螺旋模型是风险驱动,主要优势在于对风险察觉的敏锐,能够有效降低风险,适用于内部开发的大规模软件。而可靠性要求很高就意味着低风险、少出错,项目一旦开始尽量减少人为因素产生的变因。而要求不高的软件可以使用增量模型逐步增加功能,不需要大量的测试反馈,让用户有充裕的时间学习和适应新产品,并且逐步完善新功能。
4、健康码要求在很短时间内完成,一开始对系统功能的认识还是不太全面的,你打算采用哪种开发模型?
答:快速原型或者极限编程。首先争对需求不明确的问题,快速原型能够构建出原型,从而了解客户真正需求,而且也适合中小型项目;但如果时间实在很赶,那就推荐极限编程,客户直接看到效果并实时反馈需求,有变化马上能做出调整,同时效率很高。其广泛应用于需求模糊且经常改变的场合,项目无法承受大规模的重构,速度是着重考虑的要素。
5、你们接手了一个“网页 数据库”类型的项目,这类项目已经做过多个,时间期限比较宽松,计划采用哪种开发模型?
答:瀑布模型。因为有充裕的时间和充足的经验,在每个环节都可以形成规范的文档资料,开发人员采用规范的方法保质保量完成任务。为后续的开发和维护做好准备。
6、你们已经成功地为多个医院做了管理系统,现在需要为一家大医院做具有很多新的业务的管理系统,将采用哪种开发模型?
答:增量模型。医院业务管理系统的基础、核心功能大同小异,在开发人员已成功开发多个医院业务管理系统的情况下,利用增量模型,开发人员可以通过以往的开发项目,在此基础上快速的开发新功能并调试,节省大量的人力物力和时间。同时,利用增量模型来开发,开发人员能分批地逐步地向用户交付拥有核心功能且递进满足部分需求的可运行的产品,确保用户在第一个构件交付起便能立即投入使用,保障医院最基本的运作,直到最后一次得到满足全部需求的完整产品。逐步增加的新功能可以使用户有比较充裕的时间学习和适应新产品,风险性低,开发顺序灵活。