软件生存周期学习笔记

很明显软件工程不是所谓的“开发完了就完事了”的事情,以下就是要介绍一下软件产生到消亡的过程,就是所谓的软件生存周期。

软件生存周期

  1. 概念:软件产品或系统的一系列活动全周期,从产生概念,到开发,交付,使用中的修订演化到最后被淘汰的过程。
    过程是活动的集合,活动是任务的集合,任务是 input 转成 output 的操作。
    很明显是过程最大,活动第二,任务最小嘛!
  2. 分类:

  3. 基本过程:软件生产直接相关活动集合,还能细分成获取(需方)-供应(供方)-开发(供方)-运行(需方)-维护(供方)小过程

  4. 支持过程:有关各方按目标从事的支持活动集合(分工合作支持开发各方……)还有文档-配置管理-质量保证(QA?)-验证-确认-联合评审-审计-问题解决的小细分……
  5. 组织过程:软件生产组织相关活动集合(管理什么的)细分为管理-基础设施-人力资源-改进-资产管理-复用程序管理-领域软件工程的小过程……

总的来说你得把基本过程,支持过程,组织过程记住是个啥。关系的分析从供需(承担软件开发的主体)方面分析 🆗

软件生存周期模型

  1. 概念:软件过程、活动、任务的组织框架(就是软件开发模型)
  2. 常见的模型:
  3. 瀑布模型(一条线,可返工)
    > 优点:有规约,有设计,有双方参与,画了控制线
    > 缺点:需求不明确,做不出好的东西,文档类的前期写没有太多意义,功能完全体现太迟了
  4. 增量模型(分段完成需求,分段增删)
    > 优点:在以上优点之上,第一版开发快,小版本更新风险小,防止客户不断变化需求,可以增量投资(先强化一两个突出点)
    > 缺点:如果不对客户需求进行规划,第一版需求不稳定对于之后就很成问题,如果早期就不稳,那么就得重新开始,成本,进度和配置的复杂性可能承担不了。
  5. 演化模型(EA 版本迭代,可能最后结果和第一版需求都不一样的那种,需求一开始不确定,需要用户的版本不断反馈)
  6. 喷泉模型(迭代,无缝,层层叠叠,面向对象)