系统分析与设计_HW3

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

瀑布模型

瀑布模型定义:

​瀑布模型(Waterfall Model) 是一个项目开发架构,开发过程是通过设计一系列阶段顺序展开的,从系统需求分析开始直到产品发布和维护,每个阶段都会产生循环反馈,因此,如果有信息未被覆盖或者发现了问题,那么最好 “返回”上一个阶段并进行适当的修改,项目开发进程从一个阶段“流动”到下一个阶段,这也是瀑布模型名称的由来。包括软件工程开发、企业项目开发、产品生产以及市场销售等构造瀑布模型。将软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。按工序将问题化简,将功能的实现与设计分开,便于分工协作,即采用结构化的分析与设计方法将逻辑实现与物理实现分开。

瀑布模型优点:
  1. ​降低软件开发的复杂程度,提高软件开发过程的透明性,提高软件开发过程的可管理性。
  2. 推迟软件实现,强调在软件实现前必须进行分析和设计工作。
  3. 以项目的阶段评审和文档控制为手段有效地对整个开发过程进行指导,保证了阶段之间的正确衔接,能够及时发现并纠正开发过程中存在的缺陷,使产品达到预期的质量要求。
  4. 为项目提供了按阶段划分的检查点;
  5. 当前一阶段完成后,只需关注后续阶段;
  6. 可在迭代模型中应用瀑布模型。
瀑布模型缺点:

​1. 强调过程活动的线性顺序。缺乏灵活性,尤其无法解决软件需求不明确或不准确的问题。
2 风险控制能力较弱。瀑布模型中的软件活动是文档驱动的,当阶段之间规定过多的文档时,会极大地增加系统的工作量。管理人员如果仅仅以文档的完成情况来评估项目完成进度,往往会产生错误的结论。
3. 在项目各个阶段之间极少有反馈,只有在项目生命周期的后期才能看到结果;
4. 通过过多的强制完成日期和里程碑来跟踪各个项目阶段;
5. 不适应用户需求的变化。

增量模型

增量模型定义

增量模型融合了瀑布模型的基本成分和原型实现的迭代特征,该模型采用随着日程时间的进展而交错的线性序列,每一个线性序列产生软件的一个可发布的“增量”。客户对每一个增量的使用和评估都作为下一个增量发布的新特征和功能,这个过程在每一个增量发布后不断重复,直到产生了最终的完善产品。

增量模型优点
  1. 增强客户对系统的信心;
  2. 降低系统失败风险;
  3. 提高系统可靠性;
  4. 提高系统的稳定性和可维护性;
  5. 人员分配灵活,刚开始不用投入大量人力资源;
  6. 如果核心产品很受欢迎,则可增加人力实现下一个增量;
  7. 当配备的人员不能在设定的期限内完成产品时,它提供了一种先推出核心产品的途径;
    增量能够有计划地管理技术风险;
增量模型缺点
  1. 由于各个构件是逐渐并入已有的软件体系结构中的,所以加入构件必须不破坏已构造好的系统部分,这需要软件具备开放式的体系结构;
  2. 在开发过程中,需求的变化是不可避免的;
  3. 增量模型的灵活性可以使其适应这种变化的能力大大优于瀑布模型和快速原型模型,但也很容易退化为边做边改模型,从而是软件过程的控制失去整体性;
  4. 软件产品可以分批次地进行交付。
  5. 待开发的软件系统能够被模块化。
  6. 建立初始模型时,作为增量基础的基本业务服务的确定有一定难度
  7. 增量粒度难以选择。

螺旋模型

螺旋模型定义

螺旋模型是一种演化软件开发过程模型,它兼顾了快速原型的迭代的特征以及瀑布模型的系统化与严格监控。螺旋模型最大的特点在于引入了其他模型不具备的风险分析,使软件在无法排除重大风险时有机会停止,以减小损失。同时,在每个迭代阶段构建原型是螺旋模型用以减小风险的途径。螺旋模型更适合大型的昂贵的系统级的软件应用。

螺旋模型优点
  1. 设计上的灵活性,可以在项目的各个阶段进行变更;
  2. 以小的分段来构建大型系统,使成本计算变得简单容易;
  3. 随着项目推进,客户始终掌握项目的最新信息,从而他或她能够和管理层有效地交互;
  4. 客户始终参与每个阶段的开发,保证了项目不偏离正确方向以及项目的可控性;
  5. 对可选方案和约束条件的强调有利于已有软件的重用,也有助于把软件质量作为软件开发的一个重要目标。
  6. 减少了多个测试(浪费资金)或测试不足(产品故障多)所带来的风险。更重要的是,在螺旋模型中维护只是模型的另一个周期,在维护和开发之间并没有本质区别。
  7. 螺旋模型主要适用于内部开发的大规模软件项目。
螺旋模型缺点
  1. 螺旋模型的主要问题在于,它是风险驱动的。除非软件开发人员具有丰富的风险评估经验和这方面的专门知识,否则将出现真正的风险:当项目实际上正在走向灾难时,开发人员可能还认为一切正常。
  2. 很难让用户确信这种演化方法的结果是可以控制的;
  3. 建设周期长;
  4. 无法满足当前用户需求;
  5. 风险分析需要耗费相当的成本,因此螺旋模型比较适合投资规模较大的软件项目。
  6. 失误的风险分析可能带来更大的风险。

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

三大特点

  1. 用例驱动: 所有的软件开发都是用户需求驱动的。统一软件开发过程采用用例来描述用户需求,同时提供了一套方法将用例转换为设计的类图,进一步变成最终的程序代码。在整个软件开发过程中,需求用例是可跟踪的
  2. 以构架为中心: 构架是一个小的、皮包骨头的系统,它实现了用户的核心需求,包括了系统中最重要的静态和动态特征。构架刻画了系统的整体设计,它舍弃了细节部分突出了系统的重要特征。
  3. 迭代和增量的软件过程框架: 在进行软件开发时,统一软件开发过程采用迭代和增量开发方式,把一个软件产品划分成多个较小的部分,每次完成一个部分,这个部分是产品的一个增量部分。每个增量部分的生产过程都是受控的。

与面向对象方法的关系

统一过程是一种基于UML的、以架构为中心、用例驱动与风险驱动相结合的迭代增量过程。它将软件开发过程要素和软件工件要素整合在统一的软件工程架构中,是一个面向对象,基于网络的程序开发方法论。统一过程与面向对象方法均把开发中面向过程的方面,如定义的阶段,技术和实践,和其他开发的组件,如文档,模型,手册以及代码等,整合在一个统一的框架内。

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

​过程每次迭代都要经历一定的时间,这个迭代的时间又可以分为四个阶段:初始、细化、构造和移交。而在每个阶段,管理人员或开发人员又可以将本阶段的工作进一步划分为多次迭代过程以及每次迭代过程所产生的增量。每个阶段都以一个里程碑作为结束标记,并可以获得一组可用的制品来定义每个里程碑。里程碑的关键用途是能够帮助管理人员在进入下一个阶段之前据此作出某些意义重大的决定。还可以跟踪每个阶段所投入的时间和其他开销。这些对项目的控制和发展都是很有用的。
四个阶段:

  1. 先启阶段(inception):该阶段的主要目的是建立项目的范围和版本,确定项目目标的可行性和稳定性,结交结果包括需求和用例,其关键的里程碑是生命周期目标(Lifecycle Objective)里程碑。
  2. 精化阶段(elaboration):该阶段的目的是对问题域进行分析,建立系统需求和架构,确定实现的可行性和稳定性,提交结果包 括系统架构,问题领域、修改后的需求及项目开发计划等相关文档,其关键里程碑是生命周期结构(LifecycleArchitecture)里程碑。
  3. 构造阶段(construction):将构造出最终产品,所有剩余的构件和应用程序功能被开发并集成为产品,所有的功能被详细测 试,其关键的里程碑是初始功能(Initial Operational)里程碑。
  4. 提交阶段(transition):包括产品进入beta版后的整个阶段。开发人员改正用户报告产品的缺陷和不足,其关键里程碑是产品 发布(Product Release)里程碑。

四个里程碑:

  1. 生命周期目标(Lifecycle Objective)里程碑:目标里程碑对应初始阶段的结束,初始阶段的重点在于业务建模和需求工作,此时,开发者应该可以明确软件系统的目标和范围
  2. 生命周期结构(LifecycleArchitecture)里程碑:架构里程碑对应细化阶段的结束,细化阶段的重点在于设计工作,此时,开发者需要已经确定稳定的系统架构
  3. 初始功能(Initial Operational)里程碑:能力里程碑对应构造阶段的技术,构造阶段的重点在于实施和测试方面,此时,系统应该达到足够的稳定性和成熟性
  4. 产品发布(Product Release)里程碑:发布里程碑对应移交阶段的结束,移交阶段主要进行重构、修改、测试以及部署等工作,此时,需要完成系统发布和用户培训等工作

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

统一开发过程UP

软件企业大都采用迭代增量的软件开发形式,开发过程分为多个阶段,每个阶段有其目标与里程碑。在固定的时间划分内,实现固定的项目目标。完成一个里程碑,进入下一个阶段。因而可以有序的进行项目开发。

迭代过程具有以下优点:降低了在一个增量上的开支风险。如果开发人员重复某个迭代,那么损失只是这一个开发有误的迭代的花费。降低了产品无法按照既定进度进入市场的风险。通过在开发早期就确定风险,可以尽早来解决而不至于在开发后期匆匆忙忙。加快了整个开发工作的进度。因为开发人员清楚问题的焦点所在,他们的工作会更有效率。由于用户的需求并不能在一开始就作出完全的界定,它们通常是在后续阶段中不断细化的。因此,迭代过程这种模式使适应需求的变化会更容易些。

软件开发生命周期根据时间(固定周期发布)和RUP的核心工作流(固定节奏生产)划分为二维空间。时间维从组织管理的角度描述整个软件开发生命周期,是RUP的动态组成部分,核心工作流从技术角度描述RUP的静态组成部分。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值