系统分析与设计- 软件项目过程模型与规划
文章目录
简答题
简述瀑布模型、增量模型、螺旋模型(含原型方法)的优缺点
从项目特点、风险特征、人力资源利用角度思考
-
瀑布模型
-
优点:
- 瀑布模型提供了一个使分析、设计、编码、测试和支持的方法有一个共同的指导,定义了软件开发基本流程与活动,有利于大型软件开发过程中人员的组织、管理。
- 瀑布模型要求需求是明确的,在短期内可获取每个阶段是无差错的。所以在前一阶段完成后,只需要去关注后续阶段。
- 使用项目的阶段评审和文档控制有效地对整个开发过程进行指导,保证了阶段之间的正确衔接,能够及时发现并纠正开发过程中存在的缺陷,使产品达到预期的质量要求
-
缺点:
- 瀑布模型中的软件活动是文档驱动的,所以当阶段之间规定过多的文档时,会极大地增加系统的工作量。
- 开发模型是线性的,开发过程一般不能逆转,用户只有等到整个过程的最后才能见到开发成果,从而增加了开发风险。
- 在前期的时候需求模糊的话会导致后面的开发会出现诸多问题。
-
-
增量模型
-
优点:
- 开发顺序灵活,开发人员可以对组件的实现顺序进行优先级排序,先完成需求稳定的核心组件。当组件的优先级发生变化时,还能及时地对实现顺序进行调整。所以人员分配灵活,刚开始不用投入大量人力资源。
- 增量模型中将待开发的软件系统模块化,所以可以分批次地提交软件产品,使用户可以及时了解软件项目的进展。
- 一个开发周期内的错误不会影响到整个软件系统,降低了软件开发的风险。
-
缺点:
- 如果需求不像早期思考的那样稳定和完整,那么一些增量就可能需要重新开发,重新发布。
- 由于进度和配置的复杂性,可能会增大管理成本,超出组织的能力。
- 增量模型的灵活性如果不受控制则容易退化为边做边改模型,从而导致软件过程的控制失去整体性
-
-
螺旋模型(含原型方法)
-
优点:
- 易于确定系统的性能,确认各项主要系统服务的可应用性,确认系统设计的可行性,确认系统作为产品的结果。
- 设计上具有灵活性,可以在项目的各个阶段进行变更。有助于增进软件人员和用户对系统服务需求的理解。
- 软件原型版本有的可以原封不动地成为产品,有的稍加修改就可以成为最终系统的一个组成部分,有利于最终系统的建成。
-
缺点:
- 螺旋模型比较适合内部的大规模软件开发或投资较大的规模软件项目,建设周期长,如果软件技术发展比较快,会出现软件开发完毕后,和当前的技术水平有了较大的差距,无法满足当前用户需求。
- 采用螺旋模型在风险较大的项目开发中,如果未能够及时标识风险,会造成重大损失。失误的风险分析可能带来更大的风险。
-
简述统一过程三大特点,与面向对象的方法有什么关系?
- 用例驱动
采用用例来驱动大量的开发活动,比如定义和测试事件和过程和创建用户文档、系统开发等。
- 迭代和增量
开发被组织成一系列固定的短期小项目,称为迭代,每次迭代都具有各自的需求分析、设计、实现和测试活动等。
- 以架构为中心
在早期使全局的结构基本稳定,在后续阶段中对已形成的体系结构框架进行不断细化,最终实现整体系统.
- 与面向对象的方法的关系
- 统一软件过程包括把用户的需求转化成一个应用软件系统的所有活动,是实施于软件开发和维护中的阶段、方法、技术、实践及相关产物( 计划、文档、模型、代码、测试用例 和手册等)的集合。所以面向对象的方法是包含在统一过程中的,在统一过程中的系统实现的阶段,使用面向对象的方法进行具体的实现。
简述统一过程四个阶段的划分准则是什么?每个阶段关键的里程碑是什么?
统一过程中的软件生命周期在时间上被分解为四个顺序的阶段:初始阶段、细化阶段、构造阶段和交付阶段。
- 初始阶段
- 具有大体上的构想、业务案例、范围和模糊评估。
关键的里程碑是生命周期目标里程碑,用于评价项目基本的生存能力。
- 具有大体上的构想、业务案例、范围和模糊评估。
- 细化阶段
- 已精化的构想、核心架构的迭代实现、高风险的解决、确定大多数需求和范围以及进行更为实际的评估。
关键的里程碑是生命周期结构里程碑,为系统的结构建立了管理基准并使项目小组能够在构建阶段中进行衡量。
- 已精化的构想、核心架构的迭代实现、高风险的解决、确定大多数需求和范围以及进行更为实际的评估。
- 构造阶段
- 对遗留下来的风险较低和比较简单的元素进行迭代实现,准备部署。
关键的里程碑是初始功能里程碑,决定了产品是否可以在测试环境中进行部署。
- 对遗留下来的风险较低和比较简单的元素进行迭代实现,准备部署。
- 交付阶段
- 进行beta测试和部署。
关键的里程碑是产品发布里程碑,决定产品的发布交付。
- 进行beta测试和部署。
软件企业为什么能按固定节奏生产、固定周期发布软件产品?它给企业项目管理带来哪些好处?
因为统一过程为企业按固定节奏生产、固定周期发布软件产品提供了依据。在统一过程模型中,各个阶段的生命周期是有固定长度的,因此在产品的的迭代开发过程有较为明确的时间限制。在这种生命周期方法中,开发被组织成一系列固定的短期小项目,小步骤,快速反馈和调整是迭代开发的主要思想,时间定量也是迭代开发的关键思想。大部分迭代方法迭代时间为2~6周。每次迭代都产生经过测试、集成并可执行的局部系统。每次迭代都具有各自的需求分析、设计、实现和测试活动。
统一过程提供了对整个开发团队的开发活动进行组织的指导,综合指导单个开发人员和开发团队,规定开发成果是什么,提供监控和衡量一个项目中的产品和活动的标准。