Loading

软件危机复习

没有银弹的含义

软件危机:由于软件规模越来越大,软件复杂性越来越高,可靠性问题也越来越突出,传统的个人设计,个人实现的方式不再满足要求,迫切需要改变软件生产方式,提高软件开发效率,软件危机随之爆发。

“在10年内无法找到解决软件危机的杀手锏(银弹)。

在大型软件中打造抽象的软件概念模型,最难的点是缺乏有效的管理。由于软件概念结构的复杂性,无法达成软件概念的一致性和完整性从,自然无法解决软件危机带来的困境。

为什么要有软件过程模型

  • 让整个项目团队对软件开发过程有一致的理解(项目团队)
  • 让我们审视软件过程中是否有活动上的冲突,是否有重复劳动和遗漏。(活动本身)
  • 在规划软件过程时,方便我们为特定的目标评估合适的软件过程。(规划)

软件的生命周期有哪几个阶段

  1. 分析——需求分析和定义,如敏捷统一过程中的用例建模和业务领域建模。
  2. 设计——软件架构设计和软件详细设计,前者和分析阶段联系紧密,后者和实现阶段联系紧密
  3. 实现——分为编码和测试
  4. 交付——主要是部署,交付测试
  5. 维护——时间最长,而且维护阶段可能会形成单独项目最后再次合并进维护阶段。

描述性过程和说明性过程

描述性过程是客观陈述在软件开发过程中实际发生什么

说明性过程主观陈述在开发过程中应该会发生什么,有利于整个团队对软件过程形成一致的理解。

五种典型的软件过程模型

瀑布模型

顺序结构的软件过程模型,没有任何迭代,适用于能够完全彻底理解的需求和需求不会发生改变的情况。只有在生命周期的后期才能看到结果。

计划--需求分析--概要设计--详细设计--编码和实现--单元测试--系统测试--验收测试--维护

带原型的瀑布模型

由于瀑布模型在软件过程的后期才能看到结果,会将各种风险积攒到后期,为了尽早暴露风险进行风险控制,在瀑布模型的基础上增加一个原型化阶段,可以将风险前移

原型是软件开发人员和用户或客户交互得到的,如用户接口原型,其可以在需求分析阶段提供直观的反馈;在设计阶段,原型可能是系统架构的一部分,有利于验证技术方案的可行性。

V模型

V模型是在瀑布模型的基础上发展出来的,单元测试,集成测试和系统测试都是为了验证设计阶段,交付测试是为了确认需求阶段。也就是说,瀑布模型前后两端具有内在的紧密联系。将前后两端整合起来可以提高活动的内聚度。

提供一种工作思路,在进行一项工作前,先思考验证该工作的方法。

image-20220107142428893

分阶段增量和迭代

分阶段的开发分为两种策略,一种是增量开发,一种是迭代开发。

  • 增量开发是从一个子系统开始交付,每次交付会增加一些新功能,最终实现整个系统的开发。
  • 迭代开发是在一个完整的系统框架上,每次升级或者更新其中的一些子系统,反复迭代逐步细化完成系统开发。

螺旋模型

  1. 尤其重视系统风险,特别适用于庞大且复杂,风险高的项目
  2. 通常分为四个阶段:制定计划、确定目标和备选方案、风险评估、开发测试。
  3. 在每个迭代阶段,构建原型是螺旋模型减小风险的基本策略。

团队的基本要素

规模、凝聚力、团队协作的基本条件

TSP的基本工作方法

  • 如何开始一个团队项目
  • 团队项目的基本策略
  • 开发计划
  • 定义需求
  • 与团队一起设计
  • 产品实现
  • 集成与系统测试
  • 结项总结

团队强度和项目特点的关系

评价团队的方法

软件团队的成熟度越高,软件开发的能力越强。CMMI分为了五个等级:

一级,初始级,软件团队对目标与要做的努力很清晰,项目能否成功取决于实施人员。

二级,管理级,可以做到职责到人,并对项目流程进行监测,保证好了软件项目的成功率。

三级,已定义级,对标准流程制度化(定义了什么,肯定是定义了制度),不仅能做到同类软件项目的成功,也能在其他项目上成功,科学管理已经成为组织文化。

四级,量化管理级,管理达到数字化,实现了管理的精度,降低项目实施在质量上的波动。

五级,持续优化级,已经可以做到对项目实施中可能出现的问题予以预防。能使用新技术优化流程。

CMMI有两种方来评价组织软件过程的成熟度,软件过程评估软件能力评估计。主要用于能力评估过程改进

敏捷宣言的核心思想

个体和互动 高于 流程和工具

工作的软件 高于 详尽的文档

客户合作 高于 合同谈判

响应变化 高于 遵循计划

敏捷方法遵循的原则就是尽可能实现左项。激发个体斗志,以他们为核心来搭建项目,提供所需的环境,进而达成目标

DevOps和精益原则

DevOps是一组过程、方法与系统的统称,用于促进软件开发、技术运营质量保障(QA)部门之间的沟通、协作与整合,可以看做三者的交际。

精益原则包括精益生产精益创业最小可行产品

精益生产追求零库存与快速反应,强调人力资源的重要性。

精益创业的核心思想是先投入一个极简原型产品,并根据用户反馈来不断迭代,以适应市场。做到全过程、全员化、标准化、责任化。

MVP是把最核心的功能用最小的成本实现,并快速征求用户意见。

posted @ 2022-01-07 20:48  乌有先生ii  阅读(106)  评论(0编辑  收藏  举报