十分高兴《LightweightCTI开发实录》在网上发布得到了许多朋友的关注与支持,有些朋友觉得如引简单的一个应用也拿来全程记录似乎有些过,随便找个合适的IVR(Interactive Voice Response,交互式语音应答 - 能对某些用户呼入作出语音响应的自动系统)流程编辑器及语音中间件不就完成任务了吗?没有必要这样长篇累牍的来搞。我觉得不然,主要体现在如下几方面:(1)、LightweightCTI是一个内部项目,从资源上来说不允许我再去购买如IVR流程编辑器、语音中间件之类的软件包,甚至是TTS语音引擎;(2)、从整体上来说项目大小适中,并且为了能够进行较好的设计我已经完成了一个可以实际工作的程序,可以说是免除了我的后顾之优吧;(3)、对于一项新接触的领域我还是十分有兴趣探个究尽,做到知其然也知其所以然是最好的啦。又扯远了
<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />1.3.2、项目计划
在所有工作开始之起一张概略的项目计划表是十分有必要的,在计划表的指导下可以使得各项工作都井然有序,也能够使项目相关人员随时了解到其进展情况,所谓的项目管理与跟踪大概如此吧。
(表1.1) 项目概略计划表<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
项目阶段 | 资源情况 | 角 色 | 时 间 |
准备阶段 | 我 | 筹备 | 5月中旬 |
需求分析 | 我、另外一名同事及业务人员 | 需求收集、提出者 | 5月下旬 |
系统设计 | 我、网络社区 | 设计人员、支持者 | 6月上旬 |
测试阶段 | 我、业务人员 | 测试、QA | 6月中、下旬 |
上线运行 | 我 | 实施者 | 7月初 |
有了这张表后我的工作立马清晰起来,当然在实际的工作中我会运用Project对项目进行具体的规划与跟踪,但我想对于概略的计划有它就已经够啦。哦,接下来谈谈我在各个阶段都需要完成哪些工作吧。
准备阶段
这时需要做的是将项目所需的各种资源都统筹安排好,比如如何协调我与其它工作之间的关系(不是专职进行开发);如何为开发测试申请到第二块语音卡;以及相关背景知识的了解等。我想说自己是十分幸运的,因为在前期的技术性验证的过程中,我有幸接触到了在语音卡开发方面有丰富经验的Bluesen兄,在他及其它朋友的帮助下我顺利的完成了呼出程序。同时,我专门为此次任务创建了一个QQ群:4624353,目前已经集聚大量的关注于电话语音方面开发的朋友。
另外,发现两个在此方面比较好的网站:
1、 http://www.ctiforum.com/ 一个专业的CTI网站
2、 http://www.ctitech.net/ 老弘的CTI技术天地!
为了便于将相关的资料及项目成果及时发布出来,我也创建了一个自己的站点http://21chinawater.vicp.net,我将会把项目中的一些设计文档及本文完全放于上面。有兴趣的朋友可以去看看。
需求分析
需求分析阶段将重点关注于项目的业务及功能方面的需求,通过一定的需求分析手段,如卡片、用例图、现场了解及讨论的形式,使需求明确化。根据项目充分分析的指导原则形成一个详细的需求规格说明,为下一阶段的设计工作做好准备。
设计阶段
设计阶段将根据需求文档、所采用的软、硬件进行系统的体系结构的规划,标识出其中相互关联的对象。在本项目中设计阶段又将细分为概要设计、详细设计及具体的编码阶段,在这期间我将抽出时间来重温Robert C.Martin的《敏捷软件开发》,希望将其中的一些好的思想付诸于实践。
测试上线
在验证项目设计成果的同时将软件投入试运行,以获取业务部门的相关反馈而完善软件的功能设置并修正其中的 BUG 。我更倾向于运用相关的测试工具如 Dunit 、 Nunit 在编码阶段就进行 测试驱动的开发 ,当然这显然要受制于我以往的经验,如果能够得到相关人员的指导将会明显提升的的软件编码质量,所以如果你是 Dunit/Nunit 方面的专家,请你留下相关的联系方式,我将会在遇到困难时求助于你。也希望可以提供一些有益的资源,对此我将不甚感激。在接下来的时间中我有集中于讨论 LightweightCTI 的业务需求,以使得分析阶段的工作可以顺利的向前推进。