# 5.3原型和技术概念验证

在软件开发项目的过程中可能会出现许多不同类型的问题。要么利益相关者难以明确（尤其是完整地）阐述需求，要么系统用户和开发人员之间的合作无法正常进行。通常，合作在分析和设计阶段结束，因为开发人员随后会退出，只有在软件完成时才展示他们的工作成果。\
如果团队要相互学习，团队之间的协调非常重要。各种解决方案必须与客户进行测试和讨论，并且某些需求无法仅根据其理论描述得到保证（例如，实时需求）。因此，在定义阶段完成之前，可能有必要在原型系统中评估项目的各个方面。

#### &#xD;5.3.1技术概念验证

技术概念验证用于实现这样的原型，并能够澄清可能出现的任何技术问题。它用于确定技术组件之间的交互和合作是否正常运行。与原型不同，实际功能在技术概念验证中不起作用。

#### &#xD;5.3.2 原型

原型是计划中的产品或构建块的简化实验模型。它包括实现其设计目的所需的所有功能。它可能仅在外观上或在特定技术方面与计划的最终产品相对应。原型通常作为大规模生产的初步步骤，但也可以计划为一次性项目，其目的仅仅是展示特定概念。

**5.3.2.1软件原型的优点和缺点**\
软件原型展示了目标应用程序所选功能在实际使用中的样子。这使您能够更好地解释和演示相关需求和/或开发问题。原型软件使用户能够获得重要的实验经验，从而作为讨论和进一步决策的基础。这个过程（称为“原型设计”）产生迅速的结果，并提供关于解决方案方法适用性的早期反馈。早期反馈降低了开发风险，质量保证人员可以从一开始就融入软件开发过程。借助合适的工具，原型设计过程可以加速。这个过程随后被称为“快速原型设计”。\
除了已经提到的优点，原型设计也有一些缺点。它经常增加开发工作量（除了实际应用程序，通常还必须开发一个原型）。还存在计划的“一次性”原型最终未被丢弃并提供次优解决方案的风险。原型可能被视为高质量文档的替代品，而这往往被开发人员忽视。

**5.3.2.2软件原型的类型**\
软件原型的类型包括:\
• 演示原型用于订单获取，并为相关方提供最终产品可能的样子的想法。至关重要的是，这种类型的原型随后应被丢弃。\
• “真实”原型与其相应的应用领域建模并行开发，并展示用户界面或功能元素的各个方面。这种类型的原型用于分析目的。\
• 实验室样本是一个实验原型，用于回答与设计相关的问题和替代方案。\
• 在进化原型开发期间开发的试点系统已经是产品的核心原型。从原型到产品的进一步开发在产品用户的参与下逐步以周期进行。在开发过程中，原型和产品之间的区别消失。因为它可能最终会在最终产品中使用，所以试点系统需要极其彻底的设计。
