加载中…
个人资料
马赛马拉--角马
马赛马拉--角马
  • 博客等级:
  • 博客积分:0
  • 博客访问:5,018
  • 关注人气:23
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

原型法(Prototying Methodology, PM)

(2015-10-30 16:31:23)
标签:

软件

设计

原型法

分类: 软件过程改进
http://s10/bmiddle/004k5XOCzy6WBSXxJXz49&690Methodology, PM)" TITLE="原型法(Prototying Methodology, PM)" />

原型法 ( Prototying Methodology, PM )


1.      原型法的定义及生命周期法的缺陷

原型法是针对传统SA/SD 方法的缺点而提出的一种新的软件开发方法。“原型”一词在韦氏词典给出了几种定义,其中最后一种定义最合适:

原型(prototype:是一种结构(如飞机),它是基本上按原物大小且具有一般功能的一种新的形式或设计。“原型”一词在其他领域早就用了,并实际地构造过原型(如航天器)。这里所说的原型法不是原型建造的所有形式,而是指“软件原型构造法”。因此可给软件原型构造法下如下定义。

软件原型法是一种软件系统开发方法学,它基于建立和使用一系统原型来进行系统的设计、实现、测试和安装。

2.      原型法的提出及生命周期法的缺陷

原型法是在总结传统方法的基础上,为克服SA/SD遵循生命周期开发过程的缺陷而提出的。SA/SD方法的缺陷并不来源于方法的本身,而是来源于人们对实际问题的了解和认识。在开发一个实际的软件系统时,往往系统开发人员对用户的业务不很了解,而大多数用户对软件也缺乏足够认识,这样容易造成用户与开发人员之间的误解。生命周期法 强调软件开发过程的阶段性、完整性和顺序性。在多数情况下,用户难以做到,特别是需求分析阶段,用户很难一下子说清楚他的要求,更谈不上完整和正确。生命周期法对解决上述问题存在的缺陷概况下来有以下几点:

(1)   用户很少可以清楚、准确地提出他们的信息需求,因而也不可能预先准确地描述系统需求。只有当他们开始使用系统时,才会真正明白他们到底需要些什么,系统存在一些什么问题。

(2)   由于生命周期法的顺序性、阶段性,在系统交给用户使用前,用户看到的是一个“纸上系统”,无法表明一个动态系统的工作状况,用户难以做到“心中有数”,当系统运行后又有许多修改而增加维护的困难。

(3)   应用软件越来越复杂,传统周期法使得开发过程周期长,难以立即见效,原型法正是针对上述问题提出的。其核心思想是,快速建立一个实现了系统若干功能的(不要求全)可执行模型,来启发、揭示并能不断完善,直到满足用户全部要求为止,通常把这个可执行模型称为“原型”,因此,许多人把原型法称为“快速弱功能”开发方法。

3.      建立规范模型的步骤

在原型法中有两种角色----用户/设计者和系统/建造者。这些角色完全不同于生命周期法中传统的用户和系统分析员的角色。用户是应用系统的设计者,系统专业人员是系统的建造者。规范模型以下假设为基础:

用户/设计者:熟悉自己的专业,能胜任其职能领域的业务。

系统/建造者:能使用各种有效的开发工具;能知道该系统的数据资源。

基于上述假定,构建系统原型的过程可分四个步骤(见下图),以下分小节描述各步骤有关的目标、各角色的责任、基本活动和原则。                                                                                                                                    http://s9/mw690/004k5XOCzy6WBShIOz678&690Methodology, PM)" TITLE="原型法(Prototying Methodology, PM)" />


应用系统的原型模型

3.1  弄清用户/设计者的基本信息需求

 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  修改和完善原型系统

原型模型---修改和完善原型系统

项目

描述

目标

修改原型,以便纠正那些由用户指出的不需要的或错误的特征。

责任

建造者负责,修改、完善的工作量取决于设计者所需要的更改种类;

基本活动

1、把已修改的原型交付给用户/设计者,并且演示如何工作;

2、解释所有已更改的特征。

原则

1、  装配和修改程序模块,而不是重新编写程序;

2、  如果修改模块很困难,则放弃它,重新编写;

3、  修改并把系统返回给用户/设计者的速度是关键(越快越好);

4、  设计者必须能很舒适地使用改进的原型。

 

4.      原型法总结

原型法的原理并不深奥,使用的流程也很简单,对于原型法,由于使用的经验不同,人们又给予了它各种各样的定义。如:

1、在全部产品提交前用于检测设计准确性的工作模型;

2、原型的真正意义是包括用户在内的开发周期;

3、为了学习所开发系统的某些方面或它的根本解决方法,构造、模拟系统的工作模型的过程;

这些定义事实上从不同的角度描述了原型法的特点,归结起来是:

1、原型是一个系统的早期模型,就像许多行业中使用的方法一样,比如汽车制造业,先做出一个汽车的模型/原型,进行测试,成功后才正式投入生产。而系统的原则是一个系统的早期模式,它代表着最终系统的本质特征,最终提交的系统应由原型演化而来。

2、工作的重点放在用户参与开发过程,这与传统的生命周期法不同。传统的周期法中,用户与系统开发人员的对话交流知识发生在开发周期的早期阶段,然后就是开发人员孤军奋战,分析、设计,直到系统提交前很少与用户接触。由于缺乏随时性的交流,难以确保系统真正符合用户需求。

3、将从实际中“学习”的过程引进到开发过程中是原型法的另一重要特点。在原型放开发过程中,许多问题可以及时得到澄清。通过原型可以尽早地了解到系统的设计优劣,预测执行效果等系统特性。

       原型法是一种新的软件渐进发展的开发方法,因此同生命周期法一样,同样需要同用户/设计者一起做需求分析,确定系统的最基本的数据结构、详细文档、基本开发工具。在这些基本条件具备的情况下,再动手建造原型。利用原型法开发软件要有良好的维护性,每次修改原型要修改相应的文档,这比SD方法更重要。

-------------------------------------
参考文献:

[1] 软件工程原理及应用(武汉大学出版社)  陈世鸿、朱福喜等


---------------END-----------------



0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有