系统分析与设计(三)

简答题

简述瀑布模型、增量模型、螺旋模型(含原型方法),并分析优缺点

从项目特点、风险特征、人力资源利用角度思考

瀑布模型

  • 瀑布模型(Waterfall Model) 是一个项目开发架构,开发过程是通过设计一系列阶段顺序展开的,从系统需求分析开始直到产品发布和维护,每个阶段都会产生循环反馈,因此,如果有信息未被覆盖或者发现了问题,那么最好 “返回”上一个阶段并进行适当的修改,项目开发进程从一个阶段“流动”到下一个阶段。在软件开发中,它往往是较少迭代和灵活的方法之一,因为在概念,启动,分析,设计,构建,测试,部署和维护阶段,进展主要在一个方向(“向下”,如瀑布)流动。
waterfall_model
waterfall_model
  • 优点:

    1. 定义了软件开发基本流程与活动,适用于需求和范围固定,产品本身坚固稳定,技术清晰理解的项目。
    2. 在软件生产周期的早期花费的时间可以降低后期的成本。
    3. 提供了一种结构化的方法,模型本身通过离散的,易于理解和可解释的阶段线性地进展,因此易于理解
    4. 强调文档以及源代码,如果存在完整工作的设计文档,新的团队成员甚至全新的团队应该能够通过阅读文档来熟悉。
  • 缺点:

    1. 项目的需求设计难以更改,各阶段的划分完全固定,产生大量文档。
    2. 客户在看到软件成品之前可能不知道他们的需求是什么,因此改变他们的需求,导致重新设计,重新开发和重新测试,并增加成本。
    3. 在设计新的软件产品或功能时,设计人员仅仅依据文档,可能不会意识到未来的困难,在这种情况下,存在错误预估人力分配等问题。

增量模型

  • 增量模型是把待开发的软件系统模块化,将每个模块作为一个增量组件,从而分批次地分析、设计、编码和测试这些增量组件。运用增量模型的软件开发过程是递增式的过程。
Incremental_model
Incremental_model
  • 优点:

    1. 将待开发的软件系统模块化,可以分批次地提交软件产品,使用户可以及时了解软件项目的进展。
    2. 以组件为单位进行开发降低了软件开发的风险。一个开发周期内的错误不会影响到整个软件系统。
    3. 比其他软件开发方法更容易测试和调试,因为在每次迭代期间进行相对较小的更改。
    4. 允许部分利用产品并避免长的开发时间。
  • 缺点:

    1. 由此产生的成本可能超过组织的成本。
    2. 要求待开发的软件系统可以被模块化。
    3. 随着产品中添加了额外的功能,可能会出现与系统架构相关的问题,这些问题在早期的原型中并不明显

螺旋模型

  • 螺旋模型是风险驱动的软件开发过程模型,兼顾了快速原型的迭代的特征以及瀑布模型的系统化与严格监控,在每个迭代阶段构建原型是螺旋模型用以减小风险的途径。
spiral_model
spiral_model
  • 优点:

    1. 适合大型软件的开发,对于需求不明确情况下,便于风险控制和需求变更。
    2. 能够让客户参与到项目每个阶段中,保证项目的方向不偏移。
    3. 能够进行风险的评估,从而避免了不合理的需求导致难以实现
    4. 每次循环都能得到一个软件原型来进行评估和客户的评价,提出修正建议
  • 缺点:

    1. 开发周期长,客户未必接受长时间的开发和不稳定的结果。
    2. 风险分析需要相当丰富的评估经验,风险规避也需要深厚的专业知识。
    3. 迭代次数不确定,不适合大团队,无法确定发布日期。

简述统一过程三大特点,与面向对象的方法有什么关系?

  • 迭代和增量的
    统一过程是一个迭代和增量开发过程。精化,构建和过渡阶段分为一系列时间盒迭代。 (初始阶段也可以划分为大型项目的迭代。)每次迭代都会产生一个增量,这是系统的一个版本,它包含与之前版本相比增加或改进的功能。

  • 以架构为中心
    统一流程坚持认为架构是项目团队塑造系统的核心。由于没有一个模型足以涵盖系统的所有方面,因此统一过程支持多个体系结构模型和视图。

  • 注重风险
    统一过程要求项目团队专注于在项目生命周期的早期解决最关键的风险。必须选择每次迭代的可交付成果,特别是在精化阶段,以确保首先解决最大的风险。

关系:统一过程是面向对象的基于web的程序开发方法论。

简述统一过程四个阶段的划分准则是什么?每个阶段关键的里程碑是什么?

按时间将生命周期过程展开成四个阶段。

  1. 初始阶段:生命周期目标里程碑。制定系统的近似愿景,制定业务案例,确定范围,并对成本和进度进行粗略估算。
  2. 细化阶段:生命周期体系结构里程碑。解决已知的风险因素并建立和验证系统架构。
  3. 构造阶段:初始运行能力里程碑。最终的构建阶段可交付成果是可以在移交阶段部署的软件。
  4. 移交阶段:产品发布里程碑。在此阶段,系统将部署到目标用户,过渡阶段还包括系统转换和用户培训。

软件企业为什么能按固定节奏生产、固定周期发布软件产品?它给企业项目管理带来哪些好处?

因为软件企业采用了RUP,即统一过程,这样企业在在软件开发的过程中能够按照这四个阶段来进行开发,合理规划软件范围,有节奏地生产,发布,同时企业内部也有自身期限要求以及评估等等,能够指导开发人员在一定时间内完成任务,使企业能够固定周期地发布软件产品。

企业有节奏生产软件产品能增强企业在市场上的竞争力,能够使得资金得以进行周转,本身的稳定开发能够吸引更多的客户,有利于项目的及时提交从而获得反馈,降低了延期带来的风险,能够保证项目顺利完成。