为什么要有软件生存周期过程

此篇文章是对B站上的一个 软件工程 的学习视屏的总结。我的观点是,对于软件工程这种概念性比较强的学科,讲清楚这个东西为什么而存在 与 讲清楚个东西要怎么做是同样重要的。大多数的软件工程视频一上来就跟你讲xxx是什么,几乎不讲 xxx是为解决什么问题而设计出来的。




软件生存周期过程(也称软件过程)

1-为什么要有软件生存周期过程

先给两个问题:

  1. 如果在软件开发中你都不知道要做哪些事才算完成了软件开发,那么你又如何保证你的软件的质量是没有问题的?

  2. 如何把 现实中的问题和解决问题的实现步骤(逻辑) 映射为 软件上的对应的概念和处理逻辑?

对于第2点,我们举个例子,如果我们要开发一个简单的实现加减乘除的计算机,那么这个时候你可能一秒钟就把输入、输出、判断等功能想好了。但是,当开发的软件涉及到非常复杂的操作和非常复杂的数据时,你如何把这些复杂的操作和数据都一一想好,并把它转变为程序呢?你能顺利地开发一个简单的计算机是因为你对计算机的操作非常熟悉。但是,我们开发的软件却设计到各行各业,你能保证你对各行各业的各种操作都了如指掌吗。

显然,在软件开发中,这种复杂的映射是无法直接完成的,所以我们在软件开发中才需要分层——分为需求分析层、设计层、实现层等等。这样的分层能比较好地控制映射的复杂性。完成这些映射并不是一蹴而就的,而是一个从问题到运行平台的逐步深化的过程。

问题总结:

  • 我们要了解 软件开发到底包括哪些活动
  • 我们要了解 应该怎么组织这些活动,从而形成求解软件的逻辑。即,我们怎样才能把这些活动有机的组织好,去应对不同需求的应用系统的开发;我们如何评判软件开发出的产品是满足用户需求的。



2-软件生存周期过程的相关概念

提出软件生存周期过程就是为了解决上述问题而提出的。
软件生存周期过程介绍的是 软件的开发逻辑——软件开发中到底有哪些开发活动。

软件生存周期的定义:软件生存周期描述的是软件产品或系统的一系列活动的全周期。它从形成概念(最初想做什么)开始,历经开发、交付使用、在使用中不断修订和演化,直到最后被淘汰。

软件生存周期过程的定义:为了表达软件开发中涉及到哪些活动(即,要做哪些事),于是我们又进一步地引入了3个概念,它们分别是:过程、活动和任务。

  • 任务是 把输入变为输出的操作。
  • 活动是任务的集合。
  • 过程是活动的集合。



3-软件生存周期过程的分类

承担软件开发工作的主体的不同,我们将软件生存周期过程进一步分为三类:

  1. 基本过程:与软件生产直接相关的活动集。
  2. 支持过程:有关各方按照其目标所从事的一系列支持活动集。
  3. 组织过程:与软件生产组织有关的活动集。


如果你想更详细的了解软件生存周期过程的分类,请参考这篇博客(这个博主和我看的应该是同一个视屏)。博文链接:https://www.jianshu.com/p/5ee29f59fa61


下一篇软件生存周期模型

发布了10 篇原创文章 · 获赞 13 · 访问量 424

猜你喜欢

转载自blog.csdn.net/hufuzhi1146231094/article/details/105253568
今日推荐