系统分析与设计第三周作业
分类:
文章
•
2024-12-29 12:54:34
一、简述瀑布模型、增量模型、螺旋模型(含原型方法),并分析优缺点
1.瀑布模型

- 瀑布模型是一个项目开发架构,将软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。
- 优点
- 当前一阶段完成后,只需要去关注后续阶段,降低软件开发的复杂程度。
- 推迟软件实现,强调在软件实现前必须进行分析和设计工作。
- 以项目的阶段评审和文档控制为手段有效地对整个开发过程进行指导,保证了阶段之间的正确衔接,能够及时发现并纠正开发过程中存在的缺陷。
- 有利于大型软件开发过程中人员的组织、管理。
- 缺点
- 由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,从而增加了开发风险。
- 各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量。
- 风险控制能力较弱。
- 缺乏灵活性,不能适应用户需求的变化。
2.增量模型

- 增量模型是把待开发的软件系统模块化,将每个模块作为一个增量组件,从而分批次地分析、设计、编码和测试这些增量组件。从一组给定的需求开始,第一个版本纳入一部分需求,下一个版本纳入更多的需求,依此类推,直到系统完成。每个中间版本都要执行必需的过程、活动和任务。
- 优点
- 增强客户对系统的信心
- 降低系统失败风险
- 提高系统可靠性
- 提高系统的稳定性和可维护性
- 缺点
- 建立初始模型时,确定作为增量基础的基本业务服务有一定难度
- 增量粒度难以选择
3.螺旋模型

- 螺旋模型是一种演化软件开发过程模型,结合了瀑布模型和快速原型方法,其最大的特点在于引入了明确的的风险管理机制,使软件在无法排除重大风险时有机会停止,以减少损失。同时,在每个迭代阶段构建原型以减小风险。
- 优点
- 具有良好的灵活性,可以在项目的各个阶段进行变更。
- 以小的分段来构建大型系统,使成本计算变得简单容易。
- 客户始终参与每个阶段的开发,保证了项目不偏离正确方向以及项目的可控性。
- 随着项目推进,客户始终掌握项目的最新信息 , 从而能够和管理层有效地交互。
- 缺点
- 建设周期长,而软件技术发展比较快,所以会出现软件开发完毕后和当前的技术水平有了较大的差距,无法满足用户当前的需求。
- 风险分析需要耗费相当的成本,并且失误的风险分析可能带来更大的风险
二、简述统一过程三大特点,与面向对象的方法有什么关系?
- 三大特点
- 用例驱动(Use Case模型表达了系统的需求)
- 在需求分析中,客户对Use Case进行描述
- 在系统分析和系统设计中,设计师对Use Case进行分析
- 在实现过程中,开发编程人员对Use Case进行实现
- 在测试过程中,测试人员对Use Case进行检验
- 以体系结构为中心:RUP采用如下所示的4+1视图模型,利用UML语言来描述软件的体系结构。
- 迭代和增量:RUP强调采用迭代和增量方式来开发软件,把整个项目开发分为多个迭代过程。在每一次迭代中,只考虑系统的一部分需求,进行分析、设计、实现、测试、部署等过程,每次迭代是在已完成部分的基础上进行的,每次增加一些新的功能实现,以此进行下去,直至最后项目的完成。
- 与面向对象方法的关系:统一过程是一个面向对象且基于网络的程序开发方法论。它可以为所有方面和层次的程序开发提供指导方针,模版以及事例支持。统一软件开发过程和类似的产品,如面向对象的软件过程(OOSP),OPEN Process等,把开发中面向过程的方面(例如定义的阶段,技术和实践)和其他开发的组件(例如文档,模型,手册及代码等)整合在一个统一的框架内。
三、简述统一过程四个阶段的划分准则是什么?每个阶段关键的里程碑是什么?
- 每个阶段本质上是两个里程碑之间的时间跨度。在每个阶段的结尾执行一次评估以确定这个阶段的目标是否已经满足。如果评估结果令人满意的话,可以允许项目进入下一个阶段。
- 四个里程碑
- 初始阶段:生命周期目标里程碑(Lifecycle Objective)。评价项目基本的生存能力。
- 细化阶段:生命周期体系结构里程碑(Lifecycle Architecture) 。为系统的结构建立了管理基准并使项目小组能够在构建阶段中进行衡量。
- 构建阶段:初始运行能力里程碑(Initial Operational Capability) 。决定了产品是否可以在测试环境中进行部署。此外,要确定软件、环境、用户是否可以开始系统的运作。
- 移交阶段:产品发布里程碑(Product Release) 。确定目标是否实现,是否应该开始另一个开发周期。
四、软件企业为什么能按固定节奏生产、固定周期发布软件产品?它给企业项目管理带来哪些好处?
- RUP将软件的生命周期划分为四个阶段,并且开发被组织成一系列固定的短期小项目,称为迭代。每次迭代都产生经过测试、集成并可执行的局部系统。每次迭代都具有需求分析、设计、实现和测试活动。因此,每次迭代完成后都有一定的产品可发布。
- 带来的好处
- 提高了团队生产力。针对所有关键的开发活动为每个开发成员提供了必要的准则、模板和工具指导,并确保全体成员共享相同的知识基础。建立了简洁和清晰的过程结构,为开发过程提供较大的通用性。
- 迭代开发降低了在一个增量上的开支风险。如果开发人员重复某个迭代,那么损失只是在这一个开发有误的迭代上的花费。