第 8 讲是原型开发, 那么, 我们为什么要采用原型开发这种方式来开展工作呢? 首先,在开发项目的最初阶段, 想要得到一个完整且准确的需求规格说明, 这绝对不是一件容易完成的事情, 尤其在那些规模庞大、复杂度很高的大型软件项目中, 这一困难就更加突出。
通常情况下, 用户对于自己需要的系统仅仅拥有一个模糊不清的感觉, 他们很难将自己对系统的全面要求百分之百准确地表达清楚。与此同时, 软件的开发者们对于这些实际应用问题究竟是应该如何解决的认识, 也往往是模糊并且不清晰的。
随着开发这块事情一步一步往深里走, 用户那边是有可能冒出新的要求来的, 或者是因为环境发生变化了, 所以需要系统也能跟着变来变去。同时, 开发者也是可能在设计和实现的这个过程中, 碰到一些之前没有预料到的实际困难的, 于是就需要通过改变需求的方法来摆脱困境。
所以说, 规格说明是难以做到完善无缺的, 需求的变更是经常发生的, 还有在通信中的模糊和误解, 这些情况都是会直接变成阻碍软件开发顺利推进的因素的。

为了解决这些问题, 软件系统的快速原型的概念就这样渐渐地形成了, 所谓原型定义就是这样的意思, 在软件开发这个领域里面, 原型指的是软件的一个早期的、可以运行的版本, 它反映的并不是系统的所有东西, 而是最终系统中非常重要的一些特性, 这样做是用于实验和用于评估, 通过这种方式来指导接下来的软件开发和生产过程, 所以就是这么理解的。
对于原型这个东西, 心里有那么几个想法, 那就是觉得原型应该是那种正在实际干活运转的系统, 说它没有那种通常意义上的生存周期, 然后认为原型有可能去应付好几个完全不相关的不同目标, 再者就是强调原型的开发过程非得做到时间短、花费的钱少这一个条件不可, 最后还要认定原型其实是把修改和评价这两件事都囊括进去以后, 搞出来的一个完整地循环往复进行的流程。
原型开发的应用是去辅助分析和把用户需求给确定下来;它也可以被作为软件设计的一个工具;它可以作为一个拿来解决那些不确定性的工具;它可以作为一种实验的工具;它可以作为一种支持用户做培训的一个工具;它可以被作为实现那种一次性应用的一种比较经济的办法;它可以作为软件维护的辅助工具;它可以作为一种开发的法子, 是利用原型慢慢演化成为最终系统的。
原型开发这种方式, 它并不是在所有领域里都适合去使用的, 比较不适合的领域呢, 就是嵌入式系统这一类, 还有实时控制系统这类, 以及科。