SDLC - 软件原型模型


软件原型是指构建软件应用程序原型,该原型显示正在开发的产品的功能,但实际上可能不保留原始软件的确切逻辑。

软件原型作为一种软件开发模型变得非常流行,因为它能够在开发的早期阶段了解客户的需求。它有助于从客户那里获得有价值的反馈,并帮助软件设计人员和开发人员了解正在开发的产品的确切期望。

什么是软件原型设计?

原型是具有一些有限功能的软件工作模型。原型并不总是保持实际软件应用程序中使用的精确逻辑,并且是在工作量估计中需要考虑的额外工作。

原型设计用于允许用户评估开发人员的建议并在实施之前进行尝试。它还有助于了解特定于用户的需求,以及开发人员在产品设计过程中可能未考虑到的需求。

以下是解释设计软件原型的逐步方法。

基本需求识别

此步骤涉及了解非常基本的产品要求,特别是在用户界面方面。在此阶段可以忽略内部设计和性能和安全性等外部方面的更复杂的细节。

开发初始原型

初始原型是在此阶段开发的,其中展示了非常基本的要求并提供了用户界面。这些功能在实际开发的软件内部可能不会以完全相同的方式工作。同时,解决方法用于在开发的原型中为客户提供相同的外观和感觉。

原型审查

然后将开发的原型呈现给客户和项目中的其他重要利益相关者。以有组织的方式收集反馈并用于进一步增强正在开发的产品。

修改和增强原型

在此阶段讨论反馈和审查意见,并根据时间和预算限制以及实际实施的技术可行性等因素与客户进行一些谈判。接受的更改再次纳入开发的新原型中,并重复该循环,直到满足客户的期望。

原型可以具有水平或垂直尺寸。水平原型显示产品的用户界面,并提供整个系统的更广阔的视野,而不专注于内部功能。另一方面,垂直原型是对产品中特定功能或子系统的详细阐述。

水平原型和垂直原型的目的不同。水平原型用于获取有关用户界面级别和业务需求的更多信息。它甚至可以在销售演示中展示,以在市场上获得业务。垂直原型本质上是技术性的,用于获取子系统确切功能的详细信息。例如,给定子系统中的数据库要求、交互和数据处理负载。

软件原型设计 - 类型

业界使用不同类型的软件原型。以下是广泛使用的主要软件原型类型 -

一次性/快速原型制作

一次性原型设计也称为快速原型设计或封闭式原型设计。这种类型的原型制作只需很少的努力和最少的需求分析即可构建原型。一旦了解了实际需求,原型就会被丢弃,并在对用户需求有更清晰了解的情况下开发实际系统。

进化原型

进化原型也称为面包板原型,基于一开始就构建具有最少功能的实际功能原型。开发的原型构成了未来原型的核心,整个系统均在此基础上构建。通过使用演化原型,可以将易于理解的需求包含在原型中,并在理解后添加需求。

增量原型设计

增量原型是指构建各个子系统的多个功能原型,然后集成所有可用的原型以形成完整的系统。

极限原型

极限原型设计用于 Web 开发领域。它由三个连续的阶段组成。首先,以 HTML 格式呈现包含所有现有页面的基本原型。然后使用原型服务层模拟数据处理。最后,服务被实施并集成到最终原型中。此过程称为“极限原型”,用于引起人们对该过程第二阶段的关注,其中开发功能齐全的 UI,而很少考虑实际服务。

软件原型设计 - 应用

软件原型在开发具有高水平用户交互的系统(例如在线系统)时最有用。需要用户在处理数据之前填写表格或浏览各种屏幕的系统可以非常有效地使用原型设计,甚至在开发实际软件之前就可以提供准确的外观和感觉。

涉及太多数据处理且大部分功能是内部的、用户界面很少的软件通常不会从原型设计中受益。在此类项目中,原型开发可能是额外的开销,并且可能需要大量的额外工作。

软件原型设计 - 优点和缺点

软件原型设计用于典型情况,应非常谨慎地做出决定,以便构建原型所花费的精力为最终开发的软件增加可观的价值。该模型有其自身的优点和缺点,讨论如下。

原型模型的优点如下:

  • 甚至在产品实施之前就增加了用户对产品的参与度。

  • 由于显示了系统的工作模型,用户可以更好地了解正在开发的系统。

  • 由于可以更早地检测到缺陷,因此可以减少时间和成本。

  • 更快的用户反馈可以带来更好的解决方案。

  • 可以轻松识别缺失的功能。

  • 可以识别令人困惑或困难的功能。

原型模型的缺点如下:

  • 由于过于依赖原型而导致需求分析不充分的风险。

  • 用户可能会对原型和实际系统感到困惑。

  • 实际上,这种方法可能会增加系统的复杂性,因为系统的范围可能会超出原始计划。

  • 开发人员可能会尝试重用现有原型来构建实际系统,即使这在技术上不可行。

  • 如果没有适当的监控,在构建原型上投入的精力可能会过​​多。