软件工程模型问答集 #1



问题:解释软件工程中使用的各种模型。

答案

软件开发中使用了多种模型,模型的选择取决于应用需求。例如,小型项目可以使用瀑布模型,而大型项目则更倾向于螺旋模型。我们根据以下因素选择软件工程模型:

  • 应用和项目的性质

  • 技术和方法的使用

  • 必要的控制和调度

各种模型的详细信息如下:

瀑布模型

这种方法非常古老,至今仍很流行,因为它简单易用,是成功的关键。在这个模型中,软件开发过程中的每个步骤都经过精心计划。对于小型项目,瀑布模型非常适用。该模型的特点是每个阶段都有一个顺序。一个阶段结束后,下一个阶段立即开始,每个阶段的输出都作为下一个阶段的输入。因此,该模型的另一个名称是顺序模型。从系统研究开始,然后依次进行分析、设计、编码、测试和控制。每个阶段都按顺序完成,就像瀑布一样,这就是这个名字的由来。

Waterfall methodology

优点

  • 由于其简单性和顺序性,它非常易于使用。

  • 用户可以快速理解它,因为简单性是该方法的主要优点。

  • 它定义了每个步骤的完整信息。

  • 该模型非常有助于项目规划和进度安排。

  • 它降低了错误纠正的成本。

  • 重要的是,它增加了系统满足客户需求的可能性。

局限性

  • 在这个过程中,期望值增长过快,这是不正确的。

  • 该模型没有考虑风险因素,而风险因素是每个模型都非常必要的组成部分。

  • 此方法不需要用户的培训课程。

  • 在软件测试完成之前,我们无法发现任何错误。

原型模型

这是一个可工作的系统,该模型的目标是开发那些关于新系统(可以再次使用)的经过测试的想法。原型设计是为要开发的系统制作模型的过程。该模型的主要部分是在设计和编码之前,我们无法确定软件的需求,而我们可以考虑客户对软件系统的需求。原型模型是根据客户需求的知识制定的。原型模型提供的设计展示了系统如何工作。原型的目标是更好地理解系统需求。最终,我们将得到一个变化非常小的结果。

开发完成后,最终用户有机会使用原型并向开发人员提供重要的反馈。

  • 哪些方面良好。

  • 修改区域

  • 缺失信息

  • 不必要的要求

在收到反馈后,原型模型会进行必要的修改,并再次提供给用户使用。这种方法适用于以下两种情况。

  • 在初始阶段只需要了解少量需求时。

  • 当客户想要进行小范围测试而不是对整个软件进行测试时。

Prototype Model

优点

  • 此模型更适用于客户需求不明确的情况。

  • 这种类型的模型用于问题规模较大的领域。

  • 它降低了维护成本。使用该模型的主要因素是其成本降低。

  • 此模型非常有助于缩小软件用户与软件系统开发团队之间的沟通差距。

  • 与最终软件相比,原型模型的修改更快且更便宜。

局限性

  • 为了快速完成工作,可能会忽略质量。

  • 它可能会增加软件系统的成本,因为大部分设计和代码都未被使用。

  • 在查看原型模型的工作流程后,用户的期望值会增加。

  • 如果原型的结果不符合客户的需求,他们可能会对该系统产生负面看法。

增量模型

该模型结合了瀑布模型和原型模型。该模型的目标是从低级别开始,满足必要的需求,并以版本 1 的形式进行试运行。在此之后,根据用户的反馈意见进行一些更改,软件形成版本 2。然后,开发人员会重复此过程,进行必要的更改,每次都会有一个新版本准备好投放市场。这一步从称为子系统的低级别开始,然后逐步进行,并在市场上发布一系列版本。该模型有四个步骤:

  1. 需求阶段 - 在此步骤中,会列出必要的项目。

  2. 设计阶段 - 设计应根据需求进行,如果它满足需求,则可以是新的或现有的。

  3. 实现阶段 - 在此阶段,软件开发过程得以实现。

  4. 评估阶段 - 在此阶段进行所有类型的评估。

螺旋模型

螺旋模型由 Boehm 于 1986 年提出。由于缺乏风险因素,许多模型都失败了,但螺旋模型包含风险因素,因为 Boehm 知道未来是不确定的。在这个模型中,各种活动像螺旋一样发生,有许多周期。每个周期都有四个步骤。

  1. 规划 - 这是关于目标和获取替代资源。

  2. 风险分析 - 评估替代方案并了解解决风险因素的因素。

  3. 开发 - 下一级产品的开发。

  4. 客户评估 - 客户评估原型和其他模型。

在第一个周期中

  1. 确定产品目标并规划替代方案。

  2. 分析各种风险。

  3. 制作原型模型。

  4. 用户对原型的评估。

在第二个周期中

  1. 客户的评估是规划的基础。

  2. 客户的反馈是风险分析的基础。

  3. 制作更好的原型模型。

  4. 让客户参与访问新的原型模型方法。

第三个和第四个周期的重点是制作一个无错误的原型模型,并通过更好的规划来轻松解决风险。每个阶段都会在较短的时间内制作出更好的软件版本。成本由项目每个点的螺旋半径表示。

优点

  • 通过客户的评估,螺旋的每个周期都得以完成。

  • 它具有快速开发的能力。

  • 它具有现实性,适用于两种类型的开发。

广告