原型法(Prototying Methodology, PM)

标签:
软件设计原型法 |
分类: 软件过程改进 |
原型法 ( Prototying Methodology, PM )
1.
原型法的定义及生命周期法的缺陷
原型法是针对传统SA/SD 方法的缺点而提出的一种新的软件开发方法。“原型”一词在韦氏词典给出了几种定义,其中最后一种定义最合适:
原型(prototype):是一种结构(如飞机),它是基本上按原物大小且具有一般功能的一种新的形式或设计。“原型”一词在其他领域早就用了,并实际地构造过原型(如航天器)。这里所说的原型法不是原型建造的所有形式,而是指“软件原型构造法”。因此可给软件原型构造法下如下定义。
软件原型法是一种软件系统开发方法学,它基于建立和使用一系统原型来进行系统的设计、实现、测试和安装。
2.
原型法的提出及生命周期法的缺陷
原型法是在总结传统方法的基础上,为克服SA/SD遵循生命周期开发过程的缺陷而提出的。SA/SD方法的缺陷并不来源于方法的本身,而是来源于人们对实际问题的了解和认识。在开发一个实际的软件系统时,往往系统开发人员对用户的业务不很了解,而大多数用户对软件也缺乏足够认识,这样容易造成用户与开发人员之间的误解。生命周期法 强调软件开发过程的阶段性、完整性和顺序性。在多数情况下,用户难以做到,特别是需求分析阶段,用户很难一下子说清楚他的要求,更谈不上完整和正确。生命周期法对解决上述问题存在的缺陷概况下来有以下几点:
(1)
(2)
(3)
3.
建立规范模型的步骤
在原型法中有两种角色----用户/设计者和系统/建造者。这些角色完全不同于生命周期法中传统的用户和系统分析员的角色。用户是应用系统的设计者,系统专业人员是系统的建造者。规范模型以下假设为基础:
用户/设计者:熟悉自己的专业,能胜任其职能领域的业务。
系统/建造者:能使用各种有效的开发工具;能知道该系统的数据资源。
基于上述假定,构建系统原型的过程可分四个步骤(见下图),以下分小节描述各步骤有关的目标、各角色的责任、基本活动和原则。
图
1
3.1 弄清用户/设计者的基本信息需求
表
项目 |
描述 |
目标 |
1、讨论构造原型的过程; 2、写出一简明的框架式说明性报告,反映用户/设计者在信息需求方面的基本看法和要求; 3、列出数据元素和它们之间的关系; 4、确定所需数据的可用性; 5、概况出业务并估计其成本; 6、考虑业务原型使用的可能性。 |
责任 |
用户/设计者的基本责任是根据系统的输出来清晰地描述自己的基本要求; 设计者和建造者共同负责确定系统的范围,确定数据的可用性; 建造者的基本责任是确定设计者的现行期望,估价开发业务原型的成本。 |
基本活动 |
设计者和建造者定义基本的信息需求,讨论的焦点可能是数据提取和过程模拟,这些方面将取决于应用的性质和开发工具的可用性。不管哪种情况,讨论必须涉及到关键数据元素的识别、它们的逻辑关系及其来源。系统的范围和设计者信息需求的不确定性程序都是建造者在估计系统成本时所考虑的基本因素。 |
原则 |
1、
2、
3、 |
3.2 开发初始原型系统
表 2 原型模型---开发初始原型系统
项目 |
描述 |
目标 |
建立一个能运行的交互式应用系统来满足用户/设计者的基本信息需求。 |
责任 |
用户/设计者:无责任; 建造者负责建立一个初始原型,其中包括与设计者的需求及能力相适应的对话,它包括收集设计者对初始原型的反映和意见。 |
基本活动 |
1、
2、
3、
4、
5、
6、 |
原则 |
1、
2、
3、
4、 |
3.3 用原型系统完善用户/设计者的需求
表 3 原型模型---用原型系统完善用户/设计者的需求
项目 |
描述 |
目标 |
1、
2、
3、 |
责任 |
系统/建造者在这一步没有什么责任,除非设计者需要帮组或需要信息,或者设计者在一个相当长的时间里没有和建造者接触。 设计者负责把那些不适合的地方、不合要求的特征和现有系统中看到所缺少的信息建立文档。 |
基本活动 |
是以用户/设计者认为适当的方式使用原型的过程,这一过出的关键是获得用户/设计者关于初始原型系统的想法。 当设计者认为需要进行某些修改的时候,与建造者联系讨论所需要的修改; 所有活动的最终目的就是确定用户/设计者是否对现存的原型感到满意。 |
原则 |
1、
2、
3、
4、 |
3.4 修改和完善原型系统
表
4
项目 |
描述 |
目标 |
修改原型,以便纠正那些由用户指出的不需要的或错误的特征。 |
责任 |
建造者负责,修改、完善的工作量取决于设计者所需要的更改种类; |
基本活动 |
1、把已修改的原型交付给用户/设计者,并且演示如何工作; 2、解释所有已更改的特征。 |
原则 |
1、
2、
3、
4、 |
4.
原型法总结
原型法的原理并不深奥,使用的流程也很简单,对于原型法,由于使用的经验不同,人们又给予了它各种各样的定义。如:
1、在全部产品提交前用于检测设计准确性的工作模型;
2、原型的真正意义是包括用户在内的开发周期;
3、为了学习所开发系统的某些方面或它的根本解决方法,构造、模拟系统的工作模型的过程;
这些定义事实上从不同的角度描述了原型法的特点,归结起来是:
1、原型是一个系统的早期模型,就像许多行业中使用的方法一样,比如汽车制造业,先做出一个汽车的模型/原型,进行测试,成功后才正式投入生产。而系统的原则是一个系统的早期模式,它代表着最终系统的本质特征,最终提交的系统应由原型演化而来。
2、工作的重点放在用户参与开发过程,这与传统的生命周期法不同。传统的周期法中,用户与系统开发人员的对话交流知识发生在开发周期的早期阶段,然后就是开发人员孤军奋战,分析、设计,直到系统提交前很少与用户接触。由于缺乏随时性的交流,难以确保系统真正符合用户需求。
3、将从实际中“学习”的过程引进到开发过程中是原型法的另一重要特点。在原型放开发过程中,许多问题可以及时得到澄清。通过原型可以尽早地了解到系统的设计优劣,预测执行效果等系统特性。