Local EPUB Text
模型开发的生命周期
高频交易系统的性质,需要毫不犹豫地快速决策和执行。在这些“关键任务”交易中,特别是在艰险的市场条件下,经过编程的计算机系统通常胜过人力交易商,参见Adridge(2009b)。因此,计算机交易系统正在迅速取代世界各地交易所的传统人工交易商。
完全自动化交易系统的开发,遵循与标准软件开发流程相似的路径。开发过程的典型生命周期如图16-1所示。
图16-1 典型的交易系统开发周期
一个合理的开发过程,正常情况下包括以下五个阶段:
1.规划;
2.分析;
3.设计;
4.实施;
5.维护。
该过程周而复始的循环属性,表明了该系统开发中,需要持续提升质量的特点。当系统的某个版本感觉快完成时,新的问题又需要进行更高级的修改和增强,从而导致一个新的开发周期。
规划阶段的目的是确定项目的目标,以及对完成后的项目会是怎样一个情况有更高层次的看法。规划伴随着一项可行性研究,要从经济、操作模式和技术要求方面对该项目进行评估。经济性的评估,主要探讨该项目是否具有充足的损益潜力,而操作模式和技术问题则是从合规、人力资源和其他日常问题来处理项目的可行性。规划阶段的产出,包括为项目确定的具体目的和目标、已制定的时间表和整个系统的预算。
在分析阶段,团队将总结各个方面对系统功能的要求,确定项目的范围(在当前版本中,包含哪些功能特性和不包含哪些功能特性),并征求用户和管理层的初步反馈意见。分析阶段可以说是开发流程中最关键的阶段,因为只有在这里,项目的各个利益相关者才能在分配预算允许的条件下,最大限度地塑造系统功能。
设计阶段是将系统功能的详细规格具体化,包括流程图、业务规则、界面以及日常报表和其他文档的输入格式等。设计阶段的一个目的,就是将整个工程分成各个模块,并分配给各个软件开发团队,各个模块都有良好的接口,不同软件开发团队开发的模块可以无缝拼接起来。这种对内部计算机模块软件包的早期规范,能让将来不同软件开发团队之间的沟通更为流畅,项目也能得以平稳运行。设计阶段还要列出测试用例,即功能路径,这在将来会用作验证代码正确性的蓝本。
实施阶段就涉及实际编程了。软件开发团队或个人程序员按照设计阶段的要求开发软件模块。开发团队先按照之前定义的测试用例,对每个模块进行测试。当项目管理对每个开发的单独模块都满意后,就可以开始项目的整合工作了。顾名思义,整合就是将各个单独的模块组装到一起,形成一个新的功能系统。
尽管计划周密的项目在整合阶段不会遇到太大的问题,但是仍然会有剩余工作需要处理。为了保证系统不同模块之间的正确沟通,可能需要编写一些脚本,另外还可能需要开发安装包,最重要的是要对系统进行详尽测试,以保证正常运行。测试工作通常涉及开发代码的人员之外的专业人员。测试人员要根据设计阶段中定义的测试流程,认真地监控每个功能的运行情况。然后,测试人员记录每个“漏洞”(bug)——预先设定的测试性能和观测到的性能之间存在差异。然后,将这些漏洞发送给开发团队进行解决,随后再返到测试团队。
实施阶段成功完成之后,就进入了整个系统的部署和维护阶段。在维护阶段,将解决系统中所有与预期不相符的问题,例如新发现的漏洞等。