- 软件工程教程
- 软件工程首页
- 软件工程概述
- 软件开发生命周期
- 软件项目管理
- 软件需求
- 软件设计基础
- 分析与设计工具
- 软件设计策略
- 软件用户界面设计
- 软件设计复杂性
- 软件实现
- 软件测试概述
- 软件维护
- CASE工具概述
- 软件 - 考试题及答案
- 软件工程 - 考试题及答案
软件开发生命周期
软件开发生命周期,简称SDLC,是软件工程中一个定义明确、结构化的阶段序列,用于开发预期的软件产品。
SDLC活动
SDLC提供了一系列步骤,以便高效地设计和开发软件产品。SDLC框架包括以下步骤:
沟通
这是第一步,用户在此发起对所需软件产品的请求。他联系服务提供商并试图协商条款。他以书面形式向服务提供机构提交请求。
需求收集
从这一步开始,软件开发团队开始执行项目。团队与来自问题领域的各种利益相关者进行讨论,并尝试尽可能多地获取有关其需求的信息。需求被考虑并分为用户需求、系统需求和功能需求。需求是使用许多实践收集的,如下所示:
- 研究现有或过时的系统和软件,
- 对用户和开发人员进行访谈,
- 参考数据库或
- 收集问卷调查的答案。
可行性研究
在需求收集之后,团队会提出一个软件过程的粗略计划。在此步骤中,团队分析是否可以开发软件来满足用户的所有需求,以及软件是否有可能不再有用。它确定了该项目在财务上、实际上和技术上是否可行,以便组织承担。有许多可用的算法可以帮助开发人员得出软件项目的可行性结论。
系统分析
在此步骤中,开发人员确定其计划的路线图,并尝试提出最适合项目的软件模型。系统分析包括了解软件产品的局限性,预先了解系统相关的问题或需要在现有系统中进行的更改,识别和解决项目对组织和人员的影响等。项目团队分析项目的范围,并相应地计划进度和资源。
软件设计
下一步是将所有需求和分析知识都放在桌面上,并设计软件产品。来自用户的输入和在需求收集阶段收集的信息是此步骤的输入。此步骤的输出以两种设计形式出现:逻辑设计和物理设计。工程师生成元数据和数据字典、逻辑图、数据流图以及在某些情况下生成伪代码。
编码
此步骤也称为编程阶段。软件设计的实现以使用合适的编程语言编写程序代码并有效地开发无错误的可执行程序的形式开始。
测试
据估计,整个软件开发过程的50%应该进行测试。错误可能导致软件从严重级别到被删除。软件测试由开发人员在编码时完成,并且测试专家在代码的各个级别(例如模块测试、程序测试、产品测试、内部测试以及在用户端测试产品)进行彻底的测试。及早发现错误并进行纠正是可靠软件的关键。
集成
软件可能需要与库、数据库和其他程序集成。SDLC的这一阶段涉及将软件与外部实体集成。
实施
这意味着在用户机器上安装软件。有时,软件需要在用户端进行安装后配置。软件的移植性和适应性以及集成相关问题在实施过程中得到测试和解决。
运行和维护
此阶段确认软件运行在更高效、更少错误的情况下。如果需要,将对用户进行培训,或提供有关如何操作软件以及如何保持软件正常运行的文档。通过根据用户端环境或技术的变化更新代码来及时维护软件。此阶段可能会面临隐藏错误和现实世界中未识别问题的挑战。
处置
随着时间的推移,软件的性能可能会下降。它可能完全过时,或者可能需要进行大量升级。因此,迫切需要消除系统的主要部分。此阶段包括存档数据和所需的软件组件、关闭系统、计划处置活动并在适当的系统结束时间终止系统。
软件开发范式
软件开发范式帮助开发人员选择开发软件的策略。软件开发范式有一套自己的工具、方法和程序,这些工具、方法和程序表达得非常清楚,并定义了软件开发生命周期。一些软件开发范式或过程模型定义如下:
瀑布模型
瀑布模型是软件开发范式中最简单的模型。它表示SDLC的所有阶段将以线性方式一个接一个地运行。也就是说,当第一阶段完成后,才会开始第二阶段,依此类推。
该模型假设所有事情都按照先前阶段的计划完美地执行和发生,并且无需考虑在下一阶段可能出现的过去问题。如果在先前步骤中遗留了一些问题,则此模型无法顺利运行。模型的顺序性质不允许我们返回并撤消或重做我们的操作。
当开发人员过去已经设计和开发过类似的软件并且了解其所有领域时,此模型最适合。
迭代模型
此模型以迭代方式引导软件开发过程。它以循环方式投影开发过程,在SDLC过程的每个周期之后重复每个步骤。
软件首先在非常小的规模上开发,并考虑所有步骤。然后,在每个后续迭代中,都会设计、编码、测试和添加到软件中更多功能和模块。每个周期都会生成一个软件,该软件本身就是完整的,并且具有比前一个软件更多功能和能力。
在每次迭代之后,管理团队可以进行风险管理工作并为下一次迭代做好准备。因为一个周期包含整个软件过程的一小部分,所以管理开发过程更容易,但它会消耗更多资源。
螺旋模型
螺旋模型是迭代模型和SDLC模型之一的组合。可以将其视为选择一个SDLC模型并将其与循环过程(迭代模型)组合。
此模型考虑了风险,而大多数其他模型往往会忽略风险。该模型从一开始就确定一个迭代的软件目标和约束。下一阶段是软件的原型设计。这包括风险分析。然后,使用一个标准的SDLC模型来构建软件。在第四阶段,准备下一次迭代的计划。
V模型
瀑布模型的主要缺点是我们只有在完成上一个阶段后才能进入下一个阶段,如果在后续阶段发现错误,则没有机会返回。V模型提供了一种以相反方式在每个阶段测试软件的方法。
在每个阶段,都会创建测试计划和测试用例,以根据该阶段的要求验证和确认产品。例如,在需求收集阶段,测试团队会根据需求准备所有测试用例。稍后,当产品开发完成并准备进行测试时,此阶段的测试用例会根据此阶段的要求验证软件的有效性。
这使得验证和确认并行进行。此模型也称为验证和确认模型。
大爆炸模型
此模型在其形式上是最简单的模型。它需要很少的计划、大量的编程和大量的资金。此模型的概念化围绕着宇宙大爆炸。正如科学家所说,大爆炸之后,许多星系、行星和恒星都像事件一样演化。同样,如果我们将大量的编程和资金放在一起,您可能会获得最好的软件产品。
对于此模型,需要很少的计划。它不遵循任何流程,或者有时客户不确定需求和未来的需求。因此,输入需求是任意的。
此模型不适合大型软件项目,但对于学习和实验来说是一个不错的选择。
有关SDLC及其各种模型的深入阅读,点击此处。