首页 考试吧论坛 Exam8视线 考试商城 网络课程 模拟考试 考友录 实用文档 缤纷校园 英语学习 | ||
2010考研 | 自学考试 | 成人高考 | 专 升 本 | 法律硕士 | MBA/MPA | 中 科 院 | ||
四六级 | 商务英语 | 公共英语 | 职称日语 | 职称英语 | 博思 | 口译笔译 | GRE GMAT | 日语 | 托福 | ||
雅思 | 专四专八 | 新概念 | 自考英语 | 零起点英、法、德、日、韩语 | 在职申硕英语 | ||
在职攻硕英语 | 成人英语三级 | ||
等级考试 | 水平考试 | 微软认证 | 思科认证 | Oracle认证 | Linux认证 | ||
公务员 | 报关员 | 报检员 | 外销员 | 司法考试 | 导游考试 | 教师资格 | 国际商务师 | 跟单员 | ||
单证员 | 物流师 | 价格鉴证师 | 银行从业资格 | 证券从业资格 | 人力资源管理师 | 管理咨询师 | ||
期货从业资格 | 社会工作者 | ||
会计职称 | 注会CPA | 经济师 | 统计师 | 注册税务师 | 评估师 | 精算师 | 高会 | ACCA | 审计师 | ||
法律顾问 | 会计证 | ||
一级建造师 | 二级建造师 | 造价师 | 监理师 | 安全师 | 咨询师 | 结构师 | 建筑师 | 安全评价师 | ||
房地产估价师 | 土地估价师 | 设备监理师 | 岩土工程师 | 质量资格 | 房地产经纪人 | 造价员 | ||
投资项目管理 | 土地代理人 | 环保师 | 环境影响评价 | 物业管理师 | 城市规划师 | 公路监理师 | ||
公路造价工程师 | 招标师 | ||
执业护士 | 执业医师 | 执业药师 | 卫生资格 |
太多了!终于签下合同-->得到了“正式”的客户提供的“需求书”的几片纸-->凭借自己的理解立即投入开发-->“木已成舟”,生米终于熬成粥-->用户拒绝接受?-->艰难地修改,反复修改,开发人员厌倦了,而用户对系统用之无味,弃之可惜,遂成鸡肋。-->由此后期收款遥遥无期,软件公司不再和用户保持沟通-->互相埋怨,扯皮由此而生。或者,一个项目拆成为多期,从而收取一部分款项,而很多的开发都作废。这样的案例真是何其多也!
究其主要原因,与其说是没有搞定关键客户,或者项目管理不当,不如说是没有帮助客户解决其问题,对客户真正的需求研究不够。实际上,原型方法是解决此类问题、确保项目成功的最佳途径。 我在写此文的同时,也试图寻找资料,不知道是本就没有,还是自己所不幸而未找到。看来原型并没有明确的标准,而目前不同软件公司的理解和做法各不相同也就不奇怪了。但从软件过程的角度来考察,原型法仍有着通用的优化的做法。试图从的实践经验出发,对原型方法进行思考与探讨。
另外,是发散型的,在研究原型的同时,也讨论了原型相关的内容。原型本质上有些象是抛砖引玉,而也旨在抛砖引玉,但无意于一概地论定什么。
2 什么是原型
原型(prototype)即把系统主要功能和接口通过快速开发制作为“软件样机”,以可视化的形式展现给用户,及时征求用户意见,从而明确无误地确定用户需求。同时,原型也可用于征求内部意见,作为分析和设计的接口之一,可方便于沟通。mda.com
原型法主要价值是可视化,强化沟通,降低风险,节省后期变更成本,提高项目成功率。一般来说,采用原型法后可以改进需求质量;虽然投入了较多先期的时间,但可以显著减少后期变更的时间;原型投入的人力成本代价并不大,但可以节省后期成本;对于较大型的软件来说,原型系统可以成为开发团队的蓝图;另外,原型通过充分和客户交流,还可以提高客户满意度。
对原型的基本要求包括:
* 体现主要的功能;
* 提供基本的界面风格;
* 展示比较模糊的部分,以便于确认或进一步明确,防患于未然。
* 原型最好是可运行的,至少在各主要功能模块之间能够建立相互连接。
原型的处理方法基本上有2种不同类型,即抛弃型和演化型(不同的软件工程书籍称发不同,实质意义则类似)。可以抛弃原型,在取得的明确需求基础上重新开始设计与开发;也可在原型的基础上继续开发。一般小项目不采用抛弃型原型,否则成本和代价似乎会偏高。
原型的表达工具可以有很多,如果是演化型的原型,当然优先选用软件本身的开发工具。否则还可以应用各种快速显示的工具,例如,HTML,Powerpoint等等,只要能够充分而形象地表达就可以了。
根据笔者的经验,在原型系统中,可以采用一些与常规不同的做法,例如,可以在界面上比较显著的地方写明当前模块或界面的主要目的,由哪些角色操作,能解决其什么问题。这么做可以使得用户或开发团队成员一开始就有非常清楚的概念;又如,对于决策分析,你可以直接把一些分析结果画成图,并且配上一些文字说明,这样可以避免输入大量初始数据,等等。
3 原型在软件过程的地位
软件的根本目的是实现用户的需求,提供用户日常使用,解决用户工作中有所不便的问题,提高其工作效率,改进质量,加强管理控制,最终直接或间接地提高其效益。因此软件开发本质上就是需求的处理和实现,而软件原型对需求确定来说具有非常重要的意义。原型方法包括2个基本过程,即原型制作和原型评价。
如果从需求角度看软件过程,我们不妨可以把软件过程这样划分:
搜集需求得到需求说明书,了解软件要做什么,做成什么样,解决用户什么问题。 这时候软件公司以书面文档方式提出,例如需求问询表等。
制定原型开发计划,根据用户需求及不确定的高风险部分进行原型开发,在内部进行原型评价,请客户进行原型评价,以保证确实反映了用户的真正想法。
当前的软件开发过程常常采用迭代方式进行开发,逐步求精,以降低风险和成本。对迭代的次数,每次迭代的里程碑,要实现的目标,及可提交的成果必须有可验证的清晰的计划。项目管理是一种艺术,迭代规划及里程碑定义都是一种挑战、一种艺术,但项目管理不在讨论范围。
需求变更是正常的,也是难免的,应允许用户和开发团队自身对需求进行变更。变更处理的关键在于跟踪和控制,如何使产生的影响应得到控制,这属于配置管理的内容,也不在讨论范围。
原型在软件过程中的定位如下图所示
图1 软件原型的定位
实际上我们可以把原型看得更为广义一些。任何用户或者内部演示的材料,都可以看作为原型。例如,如果你的产品是某种通用的或者行业解决方案,虽然你其实还没有产品,但先做出一个原型,再加一个漂亮的白皮书,就可以在市场上进行预销售了。