软件开发生命周期 (SDLC) 概述

软件开发生命周期通过收集新产品的初始需求,为组织提供了一种系统的、逐步的方法来开发成功的软件。它是构建软件的系统过程,以确保所构建软件的质量和正确性,并满足客户的期望。

主要开发模型包括瀑布模型、增量模型、螺旋模型、喷泉模型、智能模型、V模型、RAD模型、CBSD模型、原型法、XP法、RUP法等。

瀑布模型

瀑布模型,又称生命周期法,是生命周期法中最常用的开发模型。它将软件开发过程分为六个阶段:软件规划、需求分析、软件设计、程序编码、软件测试和运维。为了实现它们从上到下的固定顺序,它们就像瀑布一样,一步一步地落下。

  • 软件计划:主要确定软件的开发目标和可行性。
  • 需求分析:在确认软件开发可行后,对软件需要实现的各种功能进行详细分析。需求分析阶段是一个非常重要的阶段。这个阶段的工作做好,将为整个软件开发项目的成功打下良好的基础。
  • 软件设计:根据需求分析的结果,设计整个软件系统,如系统框架设计、数据库设计等。软件设计一般分为总体设计(大纲设计)和详细设计。
  • 程序代码:将软件设计的结果转化为计算机可以运行的程序代码。在编程过程中,必须制定统一的、符合标准的编程规范,以保证程序的可读性,便于维护,提高程序的运行效率。
  • 软件测试:软件设计完成后,必须经过严格的测试,在整个设计过程中发现并纠正软件中的问题。在测试过程中,要制定详细的测试计划,严格按照测试计划进行测试,减少测试的随意性。软件维护:
  • 软件维护 是软件生命周期中最长的时期。软件开发并投入使用后,由于各种原因,软件无法继续满足用户的要求。要延长软件的使用寿命,必须对软件进行维护。

转型模式

转换模型(进化模型)是基于原型的快速发展。根据用户在调用原型的过程中提出的反馈和建议,对原型进行改进以获得新版本的原型,并重复这个过程,直到演变成最终的软件产品。

螺旋模型

螺旋模型结合了瀑布模型和变换模型。它结合了两者的优点并增加了风险分析。它以原型为基础,沿螺旋线由内向外旋转。每次轮换都需要计划、风险分析、实施工程、客户评估等活动,并开发出新版本的原型。经过几次螺旋,得到最终系统。

喷泉模型

喷泉模型为生命周期中多种开发活动的软件复用和集成提供支持,主要支持面向对象的开发方式。“喷泉”一词本身就体现了迭代和无间隙的特点。系统的某一部分经常重复工作多次,在每次迭代中向演化的系统添加相关功能。所谓gapless是指在开发活动中分析、设计和编码之间没有明显的界限。

V型

在开发模式中,测试往往作为事后补救的手段,但也有一种以测试为中心的开发模式,即V模式。V 模型在软件行业只是模糊地被认可。V 模型声称测试不是事后的想法,而是与开发过程一样重要的过程。

V 模型描述了一些不同的测试级别,并解释了与这些级别对应的生命周期中的不同阶段。图中,左边的下降是开发过程的各个阶段,对应的是右边的上升部分,即测试过程的各个阶段。

请注意,测试阶段的命名在不同的组织中可能会有所不同。V模型的价值在于,它清楚地展示了测试过程中存在的不同层次,并清楚地描述了这些测试阶段与开发过程中各个阶段的对应关系:

  • 单元测试的主要目的是处理编码过程中可能存在的各种错误。例如:用户在验证过程中输入了一个错误的边界值。
  • 集成测试的主要目的是解决详细设计中可能出现的问题,特别是检查每个单元与其他程序部分之间的接口可能出现的错误。
  • 系统测试主要是进行概要设计,检查系统整体是否有效运行。例如:产品设置中是否达到预期的高性能。
  • 验收测试通常由业务专家或用户进行,以确认产品能真正满足用户的业务需求。

增量模型

增量模型,如原型实现模型和其他进化方法,本质上是迭代的。但与原型实现不同的是,增量模型强调每个增量都会发布一个可操作的产品。早期的增量是最终产品的“可拆卸”版本,但它们确实提供了用户服务功能,并为用户提供了一个评估平台。

增量模型的特点是引入了增量包的概念。不需要等到所有需求都出来了,只要某个需求的增量包出来了,就可以开始开发了。虽然某个增量包可能需要进一步适应客户的需求,需要改变,但只要增量包足够小,它对整个项目的影响是可以承受的。

RAD 模型 快速应用程序开发 (RAD) 模型是一种增量软件开发过程模型,它强调非常短的开发周期。

RAD模型是瀑布模型的“高速”变体,通过大量使用可重用组件和基于组件的构造方法赢得快速发展。如果需求被很好地理解并且项目的范围受到限制,那么这个模型可以用来快速创建一个功能齐全的“信息系统”。

该流程从业务建模开始,然后是数据建模、流程建模、应用程序生成、测试和迭代。使用RAD模型的软件流程如下图所示。

RAD模型的每个活动期要完成的任务如下。

业务建模:哪些信息驱动业务流程的运行?要生成什么信息?谁生成的?信息流到哪里去了?谁来处理?可辅以数据流图。

数据建模:为了支持业务流程的数据流,找到数据对象的集合,定义数据对象的属性,形成与其他数据对象的关系的数据模型,可辅以ER图.

流程建模:使数据对象能够完成信息流中的各种业务功能。创建过程描述了数据对象的添加、修改、删除和查找,也就是数据流图中处理框的细化。

应用程序生成:使用第四代语言(4GL)编写处理程序,重用现有组件或创建新的可重用组件,利用环境提供的工具自动生成和构建整个应用系统。

测试交付,由于重用量大,一般只做整体测试,但是新创建的组件还是需要测试的。

基于组件的模型

组件(Component)是具有可重用价值和相对独立功能的软件单元。基于组件的软件开发(CBSD)模型是采用模块化的方式将整个系统模块化,并在一定的组件模型的支持下,复用组件库中的一个或多个软件组件,通过组合构建应用软件的过程高效、高质量的系统。

基于组件的开发模型融合了螺旋模型的诸多特点,本质上是进化的,开发过程是迭代的。基于组件的开发模型包括五个阶段:软件需求分析和定义、架构设计、组件库建立、应用软件构建、测试和发布。

原型法

软件原型是提议的新产品的部分实现。建立原型的主要目的是解决产品开发初期需求不确定的问题。其目的是明确和改进需求,探索设计方案,并开发成最终产品。

有很多方法可以对原型进行分类。从原型是否实现其功能来看,软件原型可以分为横向原型和纵向原型两种。

水平原型也称为行为原型,用于探索预期系统的一些具体行为,达到细化需求的目的。水平原型通常只是功能的导航,但实际上并没有实现功能。横向原型主要用在界面上。

垂直原型也称为结构化原型,它实现了它们的部分功能。垂直原型主要用于复杂算法的实现。

XP方法

XP 是一种轻量级(敏捷)、高效、低风险、灵活、可预测、科学和有趣的软件开发方法。与其他方法论相比,最大的不同在于:

  • 在更短的时间内尽早提供具体和持续的反馈。
  • 迭代规划,一开始就快速生成总体规划,然后在整个项目开发过程中不断发展。
  • 依靠自动化测试程序来监控开发进度并及早发现缺陷。
  • 依靠口头交流、测试和源程序交流。
  • 提倡持续进化设计。
  • 依靠开发团队内部的密切协作。
  • 尽量平衡程序员的短期利益和项目的长期利益。

统一过程(UP)方法

统一过程是一个通用的过程框架,可以应对范围广泛的软件系统、不同的应用领域、不同的组织类型、不同的绩效水平和不同的项目规模。UP是基于组件的,即它所开发的软件系统是由组件组成的,组件之间通过定义良好的接口相互连接。在准备软件系统的所有蓝图时,UP使用统一的建模语言UML。

与其他软件过程相比,UP具有三个显着特点:用例驱动、以基础架构为中心、迭代和增量。Rational Unified Process 中的软件过程在时间上被分解为四个连续的阶段,即初始阶段、细化阶段、构建阶段和交付阶段。在每个阶段结束时,必须安排一次技术审查,以确定该阶段的目标是否已达到。如果审查结果满意,可以允许项目进入下一阶段。

学到更多

Leave a Reply

您的电子邮箱地址不会被公开。