2. 实战部署
编码?别急。对程序员来说,编码是很惬意的事情(就象碰到咖啡和啤酒一样),但记住:不要急着编码。做好完整的实战部署,才能打好仗。
2.1 问题定义
为什么要开发FlashNow!?开发FlashNow!真的有必要吗?FlashNow!系统的开发真正可行吗?下面我们来具体分析一下需求产生的基本背景。
也许你使用过acdsee,很好的东西,acdsee是个很成功的案例,大量的收藏图片,合法的,或者不合法的,你都会想到使用acdsee来查看它,这就是acdsee成功的地方。那么,现在流行什么了?现在(实际上是去年、或者前年)流行起Flash动画了,追美眉的男生一定很清楚,阿贵系列的,snoopy系列的,流氓兔系列的,ShowGood MTV,还有更多的无厘头的MTV,都纷纷采用Flash动画格式,去网上随便走走,活灵活现的Flash广告比中关村的ITer还要多。
总之,Flash动画很流行了。Flash作为一种成熟的流式技术,给动画带来了丰富的声音、快的速度和吸引人的交互性,Flash让动画活起来了。有Flash查看工具吗?有的,市场上流行的动画浏览器不少,有一款国外的产品SwfBrowser就很不错。怎么说呢,利用ShockwaveFlash控件,通过VB就完全可以做出一个象模象样的Flash动画浏览器来。作为Flash的缔造者,Macromedia也提供了界面美观(其实根本就不美观,除了菜单还是菜单,极其丑陋)的Flash Player。
在这样的市场环境下,开发FlashNow!是否还有其必要性,有的。据Flash fans反映,这些流行的Flash动画播放器还存在以下一些问题:
² 浏览、查看界面脱离,视觉上不直观,操作上不方便;
² 文件浏览、文件打开界面不支持动画预览;
² 不支持多副动画的顺序浏览,对于大量Flash动画的收藏用户来说,操作麻烦;
² 动画播放控制不方便,跳转、定位功能不强;
² 不支持动画文件(特别是远程文件)的保存;
² 支持转换的文件格式有限,不利于Flash动画的多渠道传播;
² 不支持标准FlashPlayer动画程序(.exe文件)的播放;
² 未提供ShockwaveFlash控件中文版本,本地化程度不够;
² 不支持ShockwaveFlash控件的自动检测与安装,用户需自行安装和配置;
对于以上阶段所提出的问题有行得通的解决办法吗?问题定义接下来就是做项目的可行性分析,以探索这个问题是否值得去解,是否有可行的解决办法。做可行性分析一般要求从经济上估计开发费用以及最终的从开发成功系统所获得的收入或利益、衡量比较支出的费用和收到的利益;从技术上分析功能、性能以及限制条件,能否是一个技术上可实现的系统;从法律上明确系统开发可能导致的责任,有无违法的问题。
采取FlashNow!来解决以上的问题,符合其特殊的技术背景和市场背景,在技术上也是完全可行的。
以上的内容构成了对FlashNow!项目待解决问题的定义及可行性分析。明确了工程目标,下面我们将开始制订开发计划。
2.2 制订计划
做任何事情之前必须有个完整的计划(不要老提“计划赶不上变化”),不要将你的项目置于无序的、失去控制的状态之中。在启动你的软件项目之前,你最好学会使用Microsoft Project。
严格意义上来讲,Microsoft Project是一种功能强大而灵活的项目管理工具,可以用于控制简单或复杂的项目。它能够帮助您安排和追踪所有的活动,从而使您对它们的进度了如指掌。使用Microsoft Project,可以建立软件项目的进度计划表,分配任务的资源和成本,优化项目进度计划表,并监视项目实际执行情况。
图5示出了使用Microsoft Project制订FlashNow!开发计划的实况。
![[原始尺寸:800x600 点击查看大图]](/upload/2004/04/1047343490861.png)
图5 使用Microsoft Project制订FlashNow!开发计划
没有一成不变的计划,在FlashNow!的后续开发过程中,以上制定的计划内容和开发进度会根据实际情况做相应的调整和细化。
2.3 需求分析
说白了,需求分析就是要求明白“系统必须做什么”。
系统的需求包括功能需求、性能需求、可靠性需求和资源使用需求等等,其中,功能需求是系统中最主要的需求,所以,对系统功能需求的分析是这一阶段的关键。
很简单,针对2.1的问题,就可以得出FlashNow!的简单功能需求:
² 支持浏览/查看双界面;
² 支持动画文件的预览,支持拇指图;
² 支持多副动画顺序浏览(支持全屏显示);
² 支持方便快捷的动画播放控制;
² 支持本地/远程动画文件的播放、保存;
² 支持多种文件格式的转换;
² 支持标准FlashPlayer动画程序(.exe文件)的播放;
² 提供ShockwaveFlash控件中文版本;
² 支持控件的自动检测与安装;
以上的内容就构成了对FlashNow!简单的功能需求分析,当然这不是最具体的,仍需要细化。细化需求,需要更多的信息采集和文档准备,对于小型的软件开发,一种偷懒的办法就是在软件设计之前设计好系统的菜单结构和对话框界面(如图6所示),或者更细的,准备好帮助文档的草稿,这些都是以后要做的事情,而菜单定义好了,帮助文档设计好了,系统的功能需求也基本定好了。
![[原始尺寸:800x600 点击查看大图]](/upload/2004/04/1047343490862.png)
图6 FlashNow!的菜单设计