(一)软件生存周期过程(简称 软件过程)
软件生存周期的概念:
通俗地讲,就是从有一个“想开发某个软件”的念想开始,到软件被淘汰。这整个过程,就是软件生存周期的概念。
软件生存周期过程是软件生存周期里的各个活动的统称。不是指某一具体过程。
软件过程,实际上它是讲述一件事,就是 软件开发中到底有哪些的开发逻辑,软件开发逻辑实际上是获取 正确软件的关键。
软件过程,实际上它又 包含了两个方面。
一个是软件开发应该有哪些的活动? ---即要做哪些的映射?
二是如何正确有效地组织这些开发活动,形成求解软件的逻辑?
为了表达软件开发需要做什么活, 引入了三个概念:过程、 活动、任务。
任务是把输入变成输出的操作, 活动是任务的集合,过程是活动的集合。
(二)软件生存周期过程的分类
供应过程、 开发过程、 运行过程和维护过程 那么获取过程指的是
(三)软件生存周期模型(软件开发模型)
软件生存周期模型是为了组织 软件生存周期过程中的这些活动,进而让它们形成满足 应用系统开发需求的这样的一种模式。
一个包含软件产品开发、 运行和维护中有关过程、 活动和任务的框架, 所谓的这个框架是一个什么啊?组织框架。 那么它覆盖了从该系统的需求定义到系统的使用终止。这是一种过程活动和任务的结构组织框架。 那么也就是说用这样的一个框架来组织前面软件生存周期过程中的活动和任务。
软件开发过程只是作为软件过程中的一个什么啊? 一个子过程,对吧?那么软件开发模型 经常在各个教科书里面就是指的软件生存周期模型,也就是说,
为了组织软件生存周期 过程里面的活动任务的一种组织框架, 我们把这些不同的组织框架进行进一步的细化,形成了不同的开发模型。 那么进一步的把它又定义为:软件过程、 活动和任务的结构框架。
(四)常见的软件生存周期模型
瀑布模型(第一个出现的软件生存周期模型)
蕴含一个归纳逻辑:P真Q真,PQ真;上一个阶段正确,这一阶段正确,总的工作就正确
每个阶段都会产生结果,如需求分析阶段产生需求文档,设计阶段产生设计文档,编码阶段产生代码,最后阶段产生最终产品等。而且,每一阶段结束后进行复审,允许获取方和用户的参与
瀑布模型其他优缺点见百度。
增量模型
人们认识到瀑布模型存在的致命弱点(客户必须完整、正确地表达他们的需求,开发人员一开始就把需求理解的很透彻),但是需求不可能一下子就完全确定,所以先确定出一个最核心的需求。先开发出来一版本,紧接着再跟用户交流,再去确定新添加的需求,继续开发第二版本......
用增量模型就必须保证有一部分的需求是确定的
每一个增量开发,内部都相当于一个瀑布模型
演化模型
在一个需求不明确的情况下想要进行一个软件的开发,那么瀑布模型、增量模型都不能用了,就用到演化模型
先根据用户不清楚的需求描述,开发一个版本,听取用户反馈,这个意见直接影响到后面需不需要对需求进行修改
有了用户的反馈,进行迭代开发,再听取用户反馈,直至获得用户的肯定
这个开发的这个结果只是为了获得用户的反馈
所以它的特点就是 针对事先不能完整定义需求的软件进行开发
需要用户更多地参与
喷泉模型
喷泉模型是一个迭代、无缝的一个过程
无缝是指软件开发过程中一些阶段没有严格的界定 比如说面向对象的需求分析和面向对象的设计,两者之间实际上就没有一个严格界定
软件开发活动过程是一个不断迭代、不同阶段之间相互融合的过程
以面向对象的软件开发方法为基础,以用户的需求为动力,以对象来驱动的模型是喷泉模型