软件开发模型有哪些?(软件开发模型有哪些模型)
ccwgpt 2024-11-04 11:57 84 浏览 0 评论
软件开发模型大体上可分为两种类型,第一种是以软件需求完全确定为前提的瀑布模型。 第二种是在软件开发初始阶段只能提供基本需求时采用的渐进式开发模型,如原型模型、螺 旋模型等。实践中经常将几种模型组合使用以便充分利用各种模型的优点。
1.瀑布模型
瀑布模型也称软件生存周期模型,由 W.Royce 于 1970 年首先提出。
根据软件生存周 期各个阶段的任务,瀑布模型从系统需求分析开始,逐步进行阶段性变换,直至通过验收测 试并得到用户确认的软件产品为止。瀑布模型上一阶段的变换结果是下一阶段变换的输入, 相邻的两个阶段具有因果关系,紧密相联。
一个阶段工作的失误将蔓延到以后的各个阶段。 为了保证软件开发的正确性,每一阶段任务完成后,都必须对它的阶段性产品进行评审,确 认之后再转入下一阶段的工作。评审过程发现错误和疏漏后,应该反馈到前面的有关阶段修 正错误、弥补疏漏,然后再重复前面的工作,直至某一阶段通过评审后再进入下一阶段,这 种形式的瀑布模型是带有反馈的瀑布模型,
模型中各个阶段的任务和软件 开发活动如前所述。 瀑布模型在软件工程中占有重要的地位,它提供了软件开发的基本框架,这比依靠“个 人技艺”开发软件好得多。它有利于大型软件开发过程中人员的组织和管理,有利于软件开 发方法和工具的研究与使用,从而提高了大型软件项目开发的质量和效率。
瀑布模型的主要特点是:
阶段间的顺序性和依赖性,开发过程是一个严格的下导式过程, 即前一阶段的输出是后一阶段的输入,每一阶段工作的完成需要确认,而确认过程是严格的 追溯式过程,
后一阶段出现了问题要通过前一阶段的重新确认来解决。因此,问题发现得越 晚解决问题的代价就越高。
瀑布模型的主要缺点是:
(1)在软件开发的初始阶段指明软件系统的全部需求是困难的,有时甚至是不现实的。 从认识论上讲,人的认识是一个多次反复的过程,实践——认识——再实践——再认识,多 次认识,多次飞跃,最后才能获得对客观世界较为正确的认识。软件开发是人的一个智力认 识活动,也不可能一次完成,需要多次反复地进行,但瀑布模型中划分的几个阶段没有反映 出这种认识过程的反复性,缺乏灵活性。
(2)软件开发是个知识密集型的开发活动,需要人们合作交流才能完成,因此,人员 间的通信和活动间的并行和串行都是必需的,但在瀑布模型中没有这方面的体现。随着软件 开发项目规模的日益庞大,由此引发的问题显得更为严重。
2. 快速原型法模型 快速原型法是针对瀑布模型(即传统的生存周期法)提出来的一种方法。
它的基本思想是 回避(或暂时回避)传统的生存周期法中的一些难点,顺从用户需求出发,快速建立一个原型。 使用户通过这个原型初步表达出自己的要求,在征求用户对原型意见的过程中,进一步修改、 完善、确认软件系统的需求并达到一致的理解,这就大大避免了在瀑布模型冗长的开发过程 中,看不见最终软件产品雏形的现象。通过反复修改、完善,逐步靠近用户的全部需求,最 终形成一个完全满足用户要求的新体系。
因此,快速原型法的最大特点是快捷,且避免了许 多由于不同理解而造成的错误。 原型开发模型如图 6.7 所示。
快速开发原型的途径有三种:
(1)利用计算机模拟软件系统的人机界面和人机交互方式。
(2)开发一个工作原型,实现软件系统的部分功能,而这部分功能是重要的,也 可能是容易产生误解的。
(3)利用类似软件向客户展示软件需求中的部分或全部功能。 为了快速开发原型,要尽量采用软件重用技术,在算法时/空开销方面也可以让步,以 便争取时间,尽快向用户提供原型。原型应充分展示软件的可见部分,如数据的输入方式、 人机界面、数据的输出格式等。