简述瀑布模型、增量模型、螺旋模型(含原型方法),并分析优缺点
从项目特点、风险特征、人力资源利用角度思考
瀑布模型
优点
- 降低软件开发的复杂程度,提高开发过程的透明性和可管理性。
- 推迟软件实现,强调分析和设计工作的重要性。
- 以项目的阶段评审和文档控制为手段,有效地对整个开发过程进行指导,能够及时发现并纠正问题。
缺点
- 强调开发过程的线性顺序,缺乏灵活性。
- 无法解决软件需求不明确的问题。
- 瀑布模型是文档驱动的,规定过多的文档会大大增加工作量,仅根据文档来评估进度可能会出错。
- 风险控制的能力较弱。
- 资源调配问题:知识技能需求不同,人员数量要求不同。
增量模型
优点
- 增强客户对系统的信心。
- 降低系统失败的风险。
- 提高系统可靠性。
- 提高系统的稳定性和可维护性。
缺点
- 建立初始模型时,作为增量基础的基本业务服务的确定有一定难度。
- 增量粒度难以选择。
螺旋模型(含原型方法)
优点
- 风险驱动的迭代过程,强调可选方案和约束条件从而支持软件的重用,有助于将软件质量作为特殊目标融入产品开发之中。
- 结合了瀑布模型和快速原型方法,将瀑布模型的多个阶段转化到多个迭代过程中,以降低项目的风险。
缺点
- 螺旋模型强调风险分析,但说服外部客户接受和相信分析结果并做出相关反应并不容易,因此螺旋模型往往比较适合内部的大规模软件开发。
- 风险分析需要耗费相当的成本,因此螺旋模型比较适合投资规模较大的软件项目。
- 失误的风险分析可能带来更大的风险。
简述统一过程三大特点,与面向对象的方法有什么关系?
- 软件开发是一个迭代过程。
- 软件开发是由Use Case驱动的。
- 软件开发是以架构设计为中心的。
统一过程是一个面向对象的软件开发方法,它给出了有关软件开发过程组织及实施的指导。
简述统一过程四个阶段的划分准则是什么?每个阶段关键的里程碑是什么?
统一过程四个阶段的划分准则是每个阶段的目标和里程碑。
- 初始阶段
生命周期目标里程碑:通过对文档的评审确定用例需求理解正确、项目风险评估合理、阶段计划可行等。 - 细化阶段
生命周期体系结构里程碑:通过评审确定软件体系结构已经稳定、高风险的业务需求和技术机制已经解决、修订的项目计划可行等。 - 构建阶段
初始运行能力里程碑:包括可以运行的软件产品、用户手册等,它决定了产品是否可以在测试环境中进行部署。此刻,要确定软件、环境、用户是否可以开始系统的运行。 - 交付阶段
产品发布里程碑:确定最终目标是否实现,是否应该开始产品下一个版本的另一个开发周
期。
软件企业为什么能按固定节奏生产、固定周期发布软件产品?它给企业项目管理带来哪些好处?
软件企业采用基于统一过程的软件项目规划,利用软件产品范围的弹性,合理规划范围(20%业务决定80%满意度),使得软件企业按固定节奏生产、固定周期发布软件产品。
统一过程能够对过程加以调整改造,通过适当裁剪过程,可以调整生命周期阶段过程的正规性,持续优化过程。统一过程可以平衡竞争利益相关者的优先级,通过定义、理解和划分业务与用户优先次序的需求,为项目和需求制定优先次序,将需求和软件能力相结合,平衡资产重用与用户需求。统一过程可以创建自我管理的团队,鼓励跨职能协作,整合业务、软件和运作团队,从而激发开发成员的最佳表现。通过反复迭代,经过反馈、改变、消除风险和调整计划,可以有效证实项目目标的价值。统一过程还可以提高资源的重用率,并通过持续关注产品质量,保证项目质量的可靠。