本科毕业设计_基于某大型实时交易系统的开发过程

上传人:ag****7 文档编号:140442297 上传时间:2022-08-23 格式:DOC 页数:25 大小:466KB
收藏 版权申诉 举报 下载
本科毕业设计_基于某大型实时交易系统的开发过程_第1页
第1页 / 共25页
本科毕业设计_基于某大型实时交易系统的开发过程_第2页
第2页 / 共25页
本科毕业设计_基于某大型实时交易系统的开发过程_第3页
第3页 / 共25页
资源描述:

《本科毕业设计_基于某大型实时交易系统的开发过程》由会员分享,可在线阅读,更多相关《本科毕业设计_基于某大型实时交易系统的开发过程(25页珍藏版)》请在装配图网上搜索。

1、装订线毕业设计(论文)报告纸学士学位论文基于某大型实时交易系统的开发过程作者:吴晶学号:005598 指导教师:杜庆峰同济大学软件学院软件工程专业二零零四年六月摘要当前,计算机软件的趋势正朝着庞大且复杂的方向发展.这是因为计算机处理能力的增大,导致用户对它的期望更多.我们满足客户需求的同时,需求本身也变得越来越复杂,从而,开发出来的软件也。总之我们希望软件运行的越来越快捷。大型软件的开发需要一种受控的工作方式,它需要一个过程来集成软件开发的许多方面。本文以一个大型实时交易系统软件为例子,阐述大型实时交易软件的开发过程,以及在过程的每个阶段都应注意的问题,并简要评述了特定的过程在软件项目开发中的

2、优势及不足之处。【关键词】实时系统, 开发过程, 分析,设计 Abstract Now, software is becoming more and more complicated and large, it is partly because the ability of the computer process becoming large and it cause the customer have more demand on it。The time when we need the software which meets our requirements better,we al

3、so make the software become complicated。 All in all,we hope the software become fast and fast. Large software development needs a way under control,it also needs a process to integrate several aspects of 。This paper gives an example of a lager software developmentto show the development process of t

4、he large real time software and the attention should be paid in every step。The paper will also point out the good and the bad aspects of the process.【Keywords】Iteration,software engineering,software requirement ,development processes,Core Workflows一、 引言当前,软件的趋势是朝着更大更复杂的系统发展。这部分地是因为计算机的处理能力每年都在增大,导致用

5、户对它的期望更多。同时,这种趋势也受到为交流各种信息(从纯文本到格式化文本到图像到图表再到多媒体)而不断扩大互联网的使用的影响。在产品版本的不断升级过程中,我们了解到产品是如何被改进的,因此我们对越来越复杂的软件的胃口也就越来越大。我们需要更符合我们的需要的软件,但是,这种需要反过来又使得软件越来越复杂。总之,我们需要更多。我们希望软件运行得越来越快捷.推向市场的时间是另一个重要的推动因素 。然而,要达到这个目的是困难的。我们对强大、复杂软件的需要与软件开发的当前状况并不一致。今天,大多数人还在使用25 年前使用的旧方法来开发软件。这就是症结所在.除非我们革新我们的方法,否则,我们无法达到开发

6、当前所需的复杂软件的目标 。我们可以把这个软件问题归结为软件开发人员面临的将一个大型软件项目的众多线索综合在一起的困难。大型软件的开发需要一种受控的工作方式。它需要一个过程来集成软件开发的许多方面。它需要一种通用方法 ,该方法能:(1)提供应如何对整个开发团队的开发活动进行组织的指导。(2)综合指导单个开发人员和开发团队。(3)规定开发成果是什么。(4)提供监控和衡量一个项目中的产品和活动的标准。本文主要以中国外汇交易中心本币交易系统为例子来讨论一种大型实时交易软件的开发过程。一 项目及软件开发过程模型1。1项目简介中国外汇交易中心是全国银行间外汇市场、人民币同业拆借和债券交易市场的组织者,为

7、包括国有独资商业银行、股份制商业银行、外资银行、保险公司、证券公司、基金公司、财务公司等各类金融机构提供交易、清算交割和信息等方面的服务。在交易中心目前运行的本币交易系统采用了BS结构,是一个建立在广域网上、采用总中心分中心交易成员三层结构的分布式应用系统.总中心、分中心主机均采用PC SERVER,总中心和分中心瑞安装SCO UNIX操作系统、SYBASE数据库管理系统,分中心WEB服务器安装了PowerDynamo2。0。使用JavaScript、ASP和Dynamo Script开发交易系统的Web端应用程序,用PowerBuilder开发场务管理子系统,使用C语言和SYBASE OPE

8、N CLIENT开发后台进程监控系统等应用程序.目前运行的系统涉及的业务主要包括金融机构间的资金信用拆借、债券的二级市场交易与回购业务、隔夜拆借交易系统、债券市场一级市场发行的分销报价系统等。系统为参与本币市场交易的用户提供风险管理、行情信息等各种支持及清算、统计等辅助功能,以保证其日常交易的顺利进行.同时,保证市场管理部门对市场交易的日常管理及实时监控,保证中央银行对本币交易市场的交易状况及交易成员交易行为的了解和监督。现行系统由于操作平台相对落后及系统结构方面的缺陷,存在不能满足业务处理变化的要求、系统稳定性不够、交易便捷性不够、系统响应慢等问题,目前已不适应业务发展的需要。系统的另外一些

9、不足,包括灵活性不够、缺乏技术分析工具、与其他交易系统、信息系统整合不足等。为了满足市场需要、提高系统性能、适应整个交易中心信息化建设的需要,交易中心提出建设中国外汇交易中心新版本币交易系统。12 开发过程模型介绍13 SCM工具的选择及在过程控制中的使用3。6.1 配置管理工具的选择在大型交易软件的开发过程中,配置和变更管理也是非常重要的,因为配置和变更管理提供了准则来管理演化系统中的多个变体,跟踪软件创建过程中的版本.配置和变更管理描述了如何管理并行开发、分布式开发、如何自动化创建工程.同时也阐述了对产品修改原因、时间、人员保持审计记录。在本币交易系统的开发过程中,根据项目的实际情况,项目

10、组选择了CVS作为版本控制软件。项目组用一个文件服务器作为CVS的代码仓库,然后每个开发机器上都安装客户端软件,在开发的时候从服务器下载源代码或者提交完成的文件。项目组选择CVS主要使基于以下几点考虑的:(1) 免费 作为开放源代码世界的杰作,CVS使免费的.而且世界上有很多杰出的程序员都在维护这个软件,从而使软件更趋稳定和强大。(2) 出色的并行开发支持CVS能够支持客户进行并行开发,它实现的版本分支功能能够嘎实现软件开发者梦寐以求的许多功能多小组并行开发不同的模块而不相互干扰,隔离危险或者冒险代码,在任意版本上打补丁,可灵活定制多种版本的演示模型等等。由于,本币系统模块较多,而且是多个项目

11、小组并行开发,所以CVS的这些强大的功能能够让项目组开发人员大大提高效率,因此它很适合作为本币系统开发的版本控制软件。当然,在软件开发的时候,还有很多的版本控制软件可以供开发人员选择,比如Rational ClearCase和 Microsoft Source safe等等。(1) Rational Clearcase 和CVS相比较,Clearcase是一款真正的商业化软件产品,功能更加强大、全面和完善。它适合管理大型、特大型的软件项目开发.但是它的缺点也很明显,首先是价格昂贵,一般公司很难承受。其实它对服务器性能、网络带宽都有很高的要求,这意味着更高的投资。此外,由于clearcase功能

12、比较复杂,因此,开发人员将会耗费很大的精力才能熟练的使用它的功能。(2) Microsoft Source Safe它是微软公司为Visual Studio配套开发的一个版本管理系统,它自动集成在Visual Stdio 中,具有图形用户界面,管理和使用都比较简单.但是Source Safe 不具备跨平台的能力,不支持版本的分支和合并,不支持并行开发,在一个时间只能有一个人修改某个源文件。因此Source Safe 只适合于开发团队在10个人以下的小项目开发.经过上面的分析可以看出,用CVS作为大型实时交易软件的版本控制软件还是很合适的。它的功能完全符合项目需要,使用方便,而且是免费的软件。3

13、。6.2 配置管理计划的制定在选择了一个适合项目开发的配置管理工具以后,拟订配置管理计划也是非常重要的。笔者将以本币交易系统为例子,说明配置管理计划的制定.(1) 配置标识配置项标识是配置管理的基础性工作,是管理配置的前提。配置项命名是配置标识的重要工作,所谓标识,其实质就是区分,在众多的配置项中合理、科学地命名是最为有效的区分方法。除为配置项命名外,必要时应提供某些相关信息,比如:配置项组名及其存放位置,子目录名等;版本信息;作者、修改者、审核者信息。常见的配置项是文档,代码.工具以及第三方的产品.本币交易系统中的文档主要有:需求分析说明书,详细设计说明书,主机模块设计说明书,界面设计说明书

14、等等.对于工具的配置项,要标识出中英文名称,版本号,提供商和序列号.(2) 配置基线基线是已经通过正式复审核和批准的某规约或产品,它因此可以作为进一步开发的基础,并且只能通过正式的变化控制过程的改变.在本币交易系统的实施过程中将建立以下基线:1 需求规约2 概要设计规约3 详细设计规约4 编码实现5 测试6 用户认可测试在软件工程化生产的各个阶段中,与本阶段的阶段产品有关的全部信息在软件开发库存放,与前面各个阶段的阶段产品有关的信息则在软件受控库存放。在研制与开发阶段的阶段产品的过程中,开发者和开发小组长有权对本阶段的阶段产品作必要的修改;但是如果开发者或开发小组长认为有必要修改前面有关阶段的

15、阶段产品时,就必须通过项目的配置管理小组办理正规的审批手续。因此,软件开发库属开发这个阶段产品的开发者管理,而软件受控库由项目的配置管理小组管理.软件经过组装与系统测试后,应该送入软件产品库,如欲对其修改,必须经软件配置管理小组研究同意,然后报配置管理委员会批准。(3) 版本控制这里所说的版本,不是指单个配置项的版本属性,而是指配置项形成的集合,可以是某个模块、子系统或整个软件系统。版本控制要解决的第一个问题便是版本标识,也就是为区分不同的版本,要给它们科学的命名。本项目以号码版本标识法为主,符号版本标识法作为辅助手段,例如版本:V2。0.0(INTEGRATION_TEST)。版本号包括主版

16、本号、副版本号、发布号,格式。 (4) 发行管理版本发行解决了如何把产品配置成可以使用的方法。由于本项目需要涉及总中心及各分中心的切换,以及需要与各家银行联网调试,因此,对于发行到外部使用的软件要进行控制,用SER流程进行控制,keyword为SCM_DELIVERY,表单包含的主要信息如下:产品名称、版本信息、交付使用者、使用场所、交付方式、交付内容。软件配置计划的制定有助于保证所交付的软件能够满足项目委托书中规定的各种原则需求,能够满足本项目总体设计组制定的软件系统需求规格说明书中规定的各项具体需求。因此,在软件开发的过程中,应该严格按照配置计划制定的内容去实施。二 商业建模和需求分析3.

17、2。2系统特性需求作为一个大型实时的交易系统,客户对系统提出了非常高的需求,经过总结他们的需求主要集中在以下三点:(1)实时性:交易系统是业务处理十分频繁、数据交换吞吐量很大的系统,业务处理的速度直接关系到公司的经济效益和客户对公司的评价.在客观条件下,整个广域网系统必须在大业务量的情况下同时保持快速的实时响应能力,以保证整个业务系统的通畅运行。(2)安全性:安全性问题主要体现在交易成员资金和交易的安全性以及营业部内部网络的安全性,但随着公司一级的广域网系统的建立,特别是在本币交易系统中,系统的安全就显得更为重要,各个方面充分考虑整个系统的安全性。另外,对系统中所有的重要操作必须绝对留痕,以规

18、范管理。(3)可靠性和健壮性:客户要求在系统交易的过程中要连续无故障,因为一旦交易中断,都会给交易成员带来损失。系统对用户的操作顺序、输入的数据进行正确性检查,并以显著方式提示错误信息。必须使用系统出错处理机制,当应用软件系统运行过程中发生错误时,系统将明确提示错误信息并指导用户进行处理。提供系统的运行监视和故障恢复机制,生成系统运行的日志信息,跟踪系统的所有操作,便于即时发现并排除故障。通过对系统特性需求的获取,可以看出,每一个大型实时系统都有它共有的要求,例如,对实时的要求,对可靠性和健壮性的要求.但由于本币交易系统的特殊性,客户对系统的安全性也提出了很高的要求.从这点可以看出,在取得系统

19、的需求的时候,不仅仅要把握那些共有的需求,更重要的是挖掘那些隐含的需求,这些需求往往可能被需求分析人员或者是客户所忽略,但却是非常重要的。3。3。3系统划分和接口需求依据交易中心本币交易系统方案书中的设计目标、设计原则和系统性能要求目标,并根据用户使用的要求和特点,中国外汇交易中心新版本币交易系统包括三大子系统:中国外汇交易中心新版本币交易子系统,中国外汇交易中心新版本币中介子系统,中国外汇交易中心新版本币场务管理子系统。(见图2)图2:本币系统的划分图其中本币交易子系统是本币交易系统项目的核心,主要支持银行间信用拆借、债券回购、债券买卖和债券分销市场业务。新版本币交易系统中介子系统作为交易系

20、统的一部分,为中介的报价、交易和手工录入提供完善服务。新版本币场务管理子系统为系统管理员和场务管理员提供方便灵活的管理接口,完成交易系统的交易控制、数据维护、场务管理和信息查询提供支持,并提供应急交易的功能。本系统作为交易中心本币系统的核心系统,是其他系统建设的基础和数据源,在本系统的建设中主要考虑的外界接口主要有:中国外汇交易中心本币信息系统接口、中国外汇中心F风险管理系统接口、债券结算接口、交易成员本方数据存储接口,(详见:图三):债券结算数据下载F系统信息系统打印机交易子系统场务子系统中介子系统数据库图3:本币系统的接口图作为一个大型的实时交易软件,系统分割成几个独立的子系统这种架构模式

21、是很有用的.这样既方便软件的开发,又方便软件的维护的工作。因此在进行需求分析的时候,一定要注意把相同的功能模块集成到一个子系统中去。同时,由于软件不是孤立存在的,因此,一定要考虑系统和系统之间的接口问题。不光光要考虑对现有系统的接口,还要考虑对以后扩展系统的接口。否则,对以后软件的使用和扩展将造成很大的麻烦.3。3。4系统构架需求新版本币交易系统的框架是一个具有多层构架的客户/服务器应用结构。采用中间件技术构建多层客户/服务器应用结构已经成为应用开发和运行的主流技术,其核心概念是利用中间件将应用的表示逻辑(客户界面)、业务逻辑(服务组件)和数据管理(数据库)分为三个不同的处理层: 1、表示层提

22、供协议控制和用户界面,与系统最终用户实现直接交互。负责接收用户的服务请求,通过socket连接向交易前置服务发送。2、商业逻辑层作为中间层实现核心业务逻辑服务,这些组件由中间件管理,接受客户的服务请求,向交易主机提交数据操作,并将交易主机的业务处理结果返回给请求者。3、数据层负责整个系统中数据信息的存储、访问及其优化。通过使用中间层,实现了业务逻辑与表示逻辑、业务逻辑与数据管理的分离,使得系统能够灵活的适应用户业务逻辑的变化。(详见:图4)图4:系统业务架构图之所以采用这种构架主要是因为考虑到软件的使用者分布在全国各地,这样采用web界面的访问方式可以使软件实现零安装。而且采用这种MVC的模式

23、,使的业务逻辑层、表示层和数据管理层分开。这样有助于软件的开发和维护。由于软件的系统架构就象人的骨架一样,是整个软件的脊椎骨,所以在考虑系统架构的时候一定要从用户的业务需求出发,确保软件的系统架构合理。3.3。5软件功能需求笔者将以本币交易系统中中介交易子系统为例子来说明定义功能需求的目的以及怎样定义软件的功能需求。本币交易系统的中介子系统的相关功能包括:中介成交处理:(1) 录入成交单:参与交易的双方成员经过与中介联系后达成交易,交易双方交易员通过电话/传真传送成交单给中介,中介交易员把交易成交单录入系统。(2) 修改成交单:修改当日中介成交单。(3) 撤消成交单:撤消当日中介成交单。中介交

24、易处理:(1) 发送公开报价:向市场全体成员转发已收到的成员匿名报价或手工录入的报价,代理委托成员完成指定交易.(2) 发送对话报价:向特定的市场成员表达本方的具体的交易意向,通过选择委托方发送给中介的匿名报价并发送给所选择特定成员交易员,此报价对委托方具有约束力。(3) 询价交谈:为达成一致的交易意向,与交易对手就报价中交易各要素进行磋商.同新版交易子系统询价交谈。(4) 确认成交:对报价指定交易进行确认,经过交易双方通过报价交谈,对于各交易要素达成一致后,交易双方都有权确认。同新版交易子系统。(5) 修改报价:为了达到更准确和及时的表达自己的交易意向,修改本方已经发送但没有确认成交或应答的

25、报价中一些交易要素。(6) 撤消报价:取消交易意向,对本方已经发送但没有确认成交或者部分没有成交的报单进行撤销。其它:(1) 登录:中介交易员进入中介交易系统,代理委托成员进行报价、询价、确认成交以及录入成交单等。(2) 查询统计:可按开始结束日期、委托方、交易方向、债券代码、等组合查询,并小计出笔数和交易量。详见:图5图5:中介子系统功能需求通过上述例子可以看出,在需求分析阶段,功能需求(functional requirement)定义了开发人员必须实现的软件功能,使得用户能完成他们的任务,从而满足了业务需求。开发人员和用户需要对软件实现的功能达成一致。要对需要的功能和约束进行提取、组织、

26、文档化。正确的划分功能需求非常重要,这就需要需求人员能够正确把握用户的需求,了解行业背景,挖掘隐含需求.3.3。6需求用例和建模所谓的用例就是软件的使用者和系统的交互。一个用例就是系统中向用户提供一个有价值的结果的某项功能.用例捕捉的是功能性需求。所有用例结合起来就构成了“用例模型”,该模型描述系统的全部功能。用例迫使我们从用户的利益角度出发进行考虑,而不仅仅是考虑系统应当具有哪些良好功能.用例不仅仅是定义系统的需求的一个非常好的工具,它还可以驱动系统的设计、实现和测试.亦即整个开发过程.在需求阶段我们一般完成用例的定义,在以后的阶段中还会有用例的设计等等.下面笔者将以交易子系统中信用拆借公开

27、报价用例来说明用例的定义。用例名称:信用拆借公开报价系统范围:交易系统上下文目标:交易员提供本方的初步交易意向,填写本方公开报价单,并且通过交易系统发布在交易系统的公开报价栏中,让所有的其他交易员能够看到.前置条件:交易员已经通过身份认证,并具有信用拆借业务权限主要角色:信用拆借交易员成功场景:交易员发出“信用拆借公开报价”交易指令;系统切换到“信用拆借公开报价”窗口;交易员填写信用拆借公开报价要素,并提交;系统校验信用拆借公开报价,并广播信用拆借公开报价;在线交易机显示信用拆借公开报价.扩展:3a。公开报价要素不合法3a。1、拆借方向未填写,提示交易员:“请填写拆借方向”,返回到3;3a.2

28、、公开报价要素数据格式不对,返回失败信息:“XX数据格式不对 ,返回到3.4a.数据不合法4a。1、包格式不对,提示交易员:“公开报价失败”, 用例失败 。备注:业务规则:1.1、“利率”和“金额允许报空值(可不填写具体数值),只表示资金进出方向;1。2、系统自动生成每笔报价编号,在系统状态栏中显示报价发送状态.一个完整的用例需要包括以下内容:(1) 名称:每个用例都必须有一个区别于其他用例的名称.(2) 用例参与者一个参与者表示用例的使用者在与这些用例进行交互时所扮演的角色的一个紧密的集合。通常一个参与者代表的角色有:人,硬件设备,或甚至是另外一个系统.(3) 用例和事件流用例描述的是一个系

29、统做什么,这可以通过一个足够清晰的、外部人员很容易理解的文字描述一个事件流,来说明一个用例的行为。书写这个事件流的时候,应该包含用例何时开始,何时结束,用例合适和参与者交互,什么时候对象被交换,以及行为的基本流和可选择流。3.3。7小结通过对本币交易系统的需求分析为例子的分析,可以看出最重要的是客户和系统开发人员在系统的工作内容方面达成一致,系统开发人员能够清晰的了解系统的需求,定义系统的边界。最后要生成一个用例模型,其中主角代表与系统通信的外部单元,用例代表事务序列,为主角提供可测量的结果值。三 系统设计与实现本币系统的设计主要是为了说明系统总体设计的技术方案和模块的详细设计,涉及到系统设计

30、的主要方面,如系统架构、模块划分、功能分配、接口设计、运行设计、数据库设计和出错处理设计等内容,以向整个开发期提供关于子系统关系的总体描述,从而作为程序详细设计或编码的框架性基础。3。3。1总体结构设计在本文中笔者将以交易子系统的交易处理模块为例子来阐述总体结构设计。交易处理模块采用四层架构,在业务处理中采用交易中间件,分为数据表示层、通信层、业务处理层和数据层;整个结构基于消息的驱动。(UML图6)UserInterface:用户的操作界面,其中分为会员交易前台界面,中介交易前台界面,场务管理前台界面。实现表现层(终端界面)所要求的功能.NetWork:系统中客户端和服务器端的通讯采用标准的

31、协议,该模块负责两者之间数据的传输工作,检查通讯故障.DataProtocol:由于客户端和服务器端传输的数据都采用了标准的XML格式,该模块一方面对所有发送的数据按照XML的语法格式进行组织,另一方面对所有收到的数据进行解析;FunctionCase:各子系统业务处理(场务子系统、中介子系统、交易子系统),实现终端业务层、交易业务层和主机业务层所要求的功能。(中间件服务器)MessageDispatcher:该模块实现了前置机和交易主机服务器端各模块之间交互消息的发送、接收以及分发功能,实现前置机主机通讯协议层所要求的功能。(中间件客户端)Logging:记录系统运行中的时序信息,包括正常、

32、调试和错误信息,帮助诊断系统状况,测试模块功能,确定问题的位置.可以根据配置文件,确定输出的内容。DataProcess:数据库的接入,实现主机数据库通讯协议层所要求的功能。体系结构是软件系统中最本质的东西,体系结构是对复杂事物的一种抽象。良好的体系结构是普遍适用的,它可以高效地处理多种多样的个体需求.一提起“房子”,我们的脑中马上就会出现房子的印象(而不是地洞的印象)。“房子”是人们对住宿或办公环境的一种抽象.不论是办公楼还是民房,同一类建筑物(甚至不同类的建筑物)之间都具有非常相似的体系结构和构造方式。如果13亿中国人民每个人都要用特别的方式构造奇异的房子,那么960万平方公里的土地将会变

33、得千疮百孔,终日不得安宁。体系结构在一定的时间内保持稳定。只有在稳定的环境下,人们才能干点事情,社会才能发展。科学告诉我们,宇宙间万物无时无刻不在运动、飞行。由于我们的生活环境在地球上保持相对稳定,以致于我们可以无忧无虑地吃饭和睡觉,压根就意识不到自己是活生生的导弹。软件开发最怕的就是需求变化,但“需求会发生变化”是个无法逃避的现实。人们希望在需求发生变化时,最好只对软件做些皮皮毛毛的修改,可千万别改动软件的体系结构。就如人们对住宿的需求也会变动,你可以经常改变房间的装璜和摆设,但不会在每次变动时都要去折墙、拆柱、挖地基。如果当需求发生变化时,程序员不得不去修改软件的体系结构,那么这个软件的系

34、统设计是失败的。良好的体系结构意味着普适、高效和稳定.3.3.2功能模块的设计本文中笔者将以撤销本方交易员模块的设计为例子来阐述交易系统中模块的设计.(1)模块描述由首席交易员撤销本方交易员。首席交易员在会员机上将CDlrDelReqMessage请求消息发给主机,主机Tuxedo服务进程接到此请求,调用管理服务模块中的撤销本方交易员服务进程。主机获取所撤销的交易员Id,检查所撤销的交易员是否已存在,通过验证后,撤销交易员到交易员表,并记录各要素,然后向首席交易员返回成功响应消息。(2)对象说明该模块用到以下方法:CMessage* CManageCommand: DeleteDealer (

35、CMessage pMessage)(3)动态模型接下来创建数据库接口实例CDBInterface pDB=new CDBInterface;注销本方交易员响应消息实例CDeleteDealerResMsg pDeleteDealerResMsg;接着调用数据库接口实例的pDealerModel=pDB-findDealerModel(msgDlrId)方法获得交易员模式pDealerModel;4然后调用DlrId=pDlrDelReqMessage-getDlrId()检查所注销的交易员是否存在;getDlrMemId())方式检查欲注销交易员是否属同一交易成员;调用strcmp(Crea

36、torId,pDealerModelgetDlrCreatorId()方法检查欲注销交易员是否由其创建者注销;调用if(pDealerModel-getDlrState()!=STATE_DEALER_NORMAL)方法检查欲注销交易员状态是否为正常状态(STATE_DEALER_NORMAL);调用pDealerModel-setDlrStatus(STATE_DEALER_DELETE)方法设置该交易员状态位注销状态(STATE_DEALER_DELETE);9调用pResponseMessage=pDeleteDealerReqMsg-toResponse()方法返回注销本方交易员响应消

37、息。一个完整的功能模块设计应该包括模块描述、对象说明、动态模型这三大块内容。模块描述用来叙述该功能模块应该实现的功能.对象说明列举了该模块使用的方法.动态模型说明了该模块实现该功能的详细步骤以及它使怎样和系统交互的.一般情况下功能模块是逻辑功能整体,进行具体编码由接口程序(函数、存储过程、方法等)进行具体实现。一个功能模块一般有最少一个或多个接口程序,所以每个功能模块下有最少一个或多个接口程序描述,而多个接口程序的关系通过功能模块中的流程逻辑进行说明。接口代码:函数、存储过程、方法等的名称接口功能说明:说明本接口程序的功能.接口输入参数:给出对每一个输入项的特性,包括名称、标识、数据的类型和格

38、式、数据值的有效范围、输入的方式。接口返回数据:给出对每一个输出项的特性,包括名称、标识、数据的类型和格式,数据值的有效范围,输出的形式。3.3.3用户界面设计本币交易系统的界面总的设计总体原则是:简洁明了,方便易用.下面笔者以信用拆借的主界面设计来阐述用户界面的设计.信用拆借的主界面:图7:信用拆借的主界面信用拆借公开报价所用模型:显示名称类型英文名称(*)属性(#)输入控件(Table)备注编号intPubBidId 报价方longPubBidMemId 交易员longPubBidDlrId 交易方向enumPubBidDir 0拆入 1拆出金额moneyAmt 利率rateIr 期限sh

39、ortTl 时间timePubBidTime 动作:名称操作说明打开公开报价框点中报价,双击mouse左键增加公开报价单击mouse右键修改公开报价撤销公开报价点中报价,单击mouse右键打印公开报价点中报价,单击mouse右键详细显示公开报价方名称、交易员联系方式点中报价在界面设计的时候,首先应该画出界面的样子,画图应该使用专门的软件,以使画出来的界面比较逼真并容易识别。接着界面设计应该列出该界面所用的模型,模型应该包括,界面上显示的元素的名称、类型、属性、输入控件等。最后还应该列出客户能对界面的操作,以及该操作的声明。这样的一个界面设计才是完整且符合要求的。由于软件的界面直接和客户打交道,

40、所以大型软件的界面设计变的很重要,笔者认为界面设计应该主要做到以下几点:(1) 界面的合适性界面的合适性是指界面是否与软件功能相融洽。如果软件的界面不适合于软件的功能,那么界面将毫无用处。所以界面的合适性是界面美的首要因素,它提醒界面的设计者不要片面追求外观漂亮而导致失真或华而不实。界面的合适性。既提倡外美内秀,又强调恰如其分。对于象大型交易系统这类软件,界面应该朴实无华,不需要把界面设计的类似于儿童娱乐软件那样花哨。(2) 界面的风格对于象大型实时交易软件这样的商业应用软件的界面设计应该注重一致性。设计者必须密切注意在相同应用领域中最流行的软件的界面,必须尊重用户使用这些软件的习惯。例如大多

41、数软件习惯于设置F1键为帮助热键,如果某个设计者别出心裁地让F1键成为程序终止的热键,那么在用户渴望得到帮助而伸手击F1键的一刹那,他的工作就此结束。因此本币交易系统使用jbuilder快速地开发出简洁美观的图形用户界面。在Internet/Intranet领域,浏览器几乎成了唯一的客户机程序,因为用户希望用完全一致的软件来完成千变万化的应用任务.(3) 界面的广义美尽管界面的美并没有增加软件的功能与性能,却又是必为可少的。用户使用界面时,除了直接的感官美感外,还有很大一部分美感是间接的,它们存在于人们的使用体验中,例如方便,实用等。本币系统界面的设计的时候,充分考虑到了用户的方便和实用,为一

42、些用户常用的功能设置了快捷键,而且右键实现了很多菜单功能,这样用户轻按鼠标就能够方便的操作。3。3.4系统出错处理设计由于系统采用的是客户机/服务器和浏览器/服务器的综合应用环境中,牵涉到的软硬件资源比较多,无论哪个环节出了问题,数据库访问都不会成功,应用程序的进一步执行都会受到影响.因此我们的应用开发必须能预先发现问题,努力解决问题,并以准确无误的信息通知用户,从而保证应用程序处理错误的强壮性.(1) 出错信息分类出错信息可以分为三类,他们分别是:通讯线路错误, 当网络通讯出现故障时,可能发生通讯线路错误,因判断方式和处理方法不同,按照局域网和广域网划分,可分为两类.2数据库操纵错误,开发应

43、用程序访问数据库时,在三个地方可能会导致数据库访问错误,它们是使用控件函数操作数据库(提取数据、更新修改),使用嵌入式SQL语句操作数据库,数据和业务的逻辑矛盾和错误.3系统设计错误,用户常会输入一些不正确的信息。如果不加以检测,会导致更严重的系统错误.输入数据错误包括数据格式错误和数据内容(含义)错误。导致错误的原因是用户的误操作.(2) 出错处理的对策出错处理方法可分三类:重试、取消和退出。对一些较轻的错误,如数据格式输入错误,可让用户重输;一些较为严重或状态不可恢复,但不属于系统错误的错误,可以取消该操作。至于严重的系统错误,如磁盘扇区损伤不可读写,则只能退出系统.对于一个大型实时交易软

44、件要想在使用过程中不出现这样或那样的问题几乎是不可能的。这就需要在系统设计的时候充分考虑到各种错误情况.首先,可以对出错的信息进行分类,这样有助于认识和分解问题,然后可以根据相应的出错情况提出相应的解决对策。总之,一个设计的好的系统能够有效的对出错情况进行处理。使软件更加健壮。335系统的实现系统的实现是指实现在设计中发现的设计类和子系统,特别是将设计类实现为包含源代码的文件构件。本币交易系统的实现是由14个程序员在客户处完成的。在开始开发阶段,每个程序员被按照各自的职责分配到不同的任务和时间期限。在项目开发的过程中,程序员被要求严格的按照设计文档规定的内容来实现。每写完一个模块的代码,项目组

45、都会在项目经理的组织下对代码进行review,以确保代码的质量。由于本币系统功能模块比较多,实现起来有难度。为了不使进度拖延,项目组要求每位程序员都撰写日报,这样可以方便项目管理者跟踪项目进度,及时解决在项目实际开发中遇到的问题。整个项目在开发过程中采用CVS作为版本控制软件,所有代码都在CVS的控制下进行开发,这样使软件开发过程中的版本得到了跟踪.从以上分析可以知道,在过程的这一阶段,重点在于管理资源和控制操作,以便优化成本、进度和质量。3.3。5 小结在大型实时交易软件的开发过程的设计阶段,应该注意使用基于构件的设计,构件是实现清晰功能的模块。子系统提供了使用新的及现有构件定义体系结构的系

46、统化方法。所以在清晰的定义了类以后,应该按子系统对类进行分组.同时,在设计中还应该注意把实现工作分为更易于管理的各个部分,并尽可能的让各个组并发开发.四 系统的测试3。5。1单元测试单元测试是针对软件设计的最小单位程序模块,进行正确性检验的测试工作。其目的在于发现每个程序模块内部可能存在的差错。单元测试是程序员的一项基本职责,程序员必须对自己所编写的代码保持认真负责的态度,这是也程序员的基本职业素质之一。同时单元测试能力也是程序员的一项基本能力,能力的高低直接影响到程序员的工作效率与软件的质量.在编码的过程中作单元测试,其花费是最小的,而回报却特别优厚的.在编码的过程中考虑测试问题,得到的将是

47、更优质的代码,因为在这时程序员对代码应该做些什么了解得最清楚。如果不这样做,又要花费许多时间,重新把它弄清楚.在本币系统的开发过程中,项目组采用了两种方法进行单元测试.在本币系统的开发过程中,项目组采用了两种方法进行单元测试:(1)人工静态检查人工静态检查主要是为了保证代码算法的逻辑正确性(尽量通过人工检查发现代码的逻辑错误)、清晰性、规范性、一致性、算法高效性。并尽可能的发现程序中没有发现的错误。项目组要求每一位程序员在单元测试的时候,都严格检查自己的代码是否按照在项目开始时候制定的java代码编写规范来书写。是否在每个模块前面都要加上注释,详细说明这个模块的作用,作者,传入的参数,传出的参

48、数.在模块完成后,在项目组内部先请其他程序员review。发现在代码中可能存在的错误和问题。(2)通过设计测试用例通过设计测试用例,执行待测程序来跟踪比较实际结果与预期结果来发现错误。统计表明,使用人工静态检查法能够有效的发现30到70%的逻辑设计和编码错误。但是代码中仍会有大量的隐性错误无法通过视觉检查发现,必须通过跟踪调试法细心分析才能够捕捉到。所以,动态跟踪调试方法也成了单元测试的重点与难点。项目组要求程序员编写测试用例来对自己的代码进行单元测试.用例由输入的数据和期望输出的数据两方面来构成。输入数据应该包含合理条件下的输入和不合理条件下的输入.(3) 测试类设计由于在项目中一个模块或一

49、个方法(Method)并不是一个独立的程序,在考虑测试它时要同时考虑它和外界的联系,用些辅助模块去模拟与所测模块相联系的其他模块。这些辅助模块分为驱动模块和桩模块两种。所谓的驱动模块相当于所测模块的主程序。它接收测试数据,把这些数据传送给所测模块,最后再输出实际测试结果。所谓的桩模块用于代替所测模块调用的子模块.桩模块可以做少量的数据操作,不需要把子模块所有功能都带进来,但不容许什么事情也不做。比如在报表打印模块的单元测试中编写了一个界面模块和一个流数据传输模块作为驱动模块来进行测试。又比如在编写界面上的菜单模块时候,程序员写了许多小的事件响应模块来对菜单模块进行测试。3.5。2集成测试在软件

50、项目中时常有这样的情况发生,每个模块都能单独工作,但这些模块集成在一起之后却不能正常工作.主要原因是,模块相互调用时接口会引入许多新问题。例如,数据经过接口可能丢失;一个模块对另一模块可能造成不应有的影响;几个子功能组合起来不能实现主功能;误差不断积累达到不可接受的程度;全局数据结构出现错误,等等。集成测试是组装软件的系统测试技术,按设计要求把通过单元测试的各个模块组装在一起之后,进行集成测试以便发现与接口有关的各种错误。由于大型实时交易系统这样的大系统,它模块众多。因此如果把所有模块全部组装起来,然后进行整体测试容易出现混乱,因为在测试的时候可能发现一大堆的错误,而每个错误的定位和纠正却非常

51、的困难,并且如果改正一个错误可能会引起其他的错误,这样新旧错误混杂,不利于测试的开展。因此本币系统采用了自顶向下的集成方式,首先从主界面的主控模块开始,把对该主控模块进行单元测试时引入的所有桩模块用实际模块替代.按照深度优先的集成策略,每次只替代一个模块。每集成一个模块即进行测试。只有在该模块通过测试后,才着手替换下一个模块。为避免引入新错误,须不断地进行回归测试(即全部或部分地重复已做过的测试)。自顶向下集成的优点在于能尽早地对程序的主要控制和决策机制进行检验,因此较早地发现错误。在集成测试中尤其要注意关键模块,所谓关键模块一般都具有下述一个或多个特征如:对应几条需求;具有高层控制功能;复杂

52、、易出错;有特殊的性能要求。关键模块应尽早测试,并反复进行回归测试。3.5.3压力测试作为一个成熟的大型实时交易系统,进行压力测试是必要的也是必须的。因为软件必须保证在大量用户并发访问的时候也能够正常工作。本币交易系统是一个典型的三层C/S架构的交易系统(客户端/应用服务器/数据库管理系统),中间层是业务逻辑层,应用服务器处理所有的业务逻辑.项目组模拟实际应用的软硬件环境,按照正常业务压力估算值的110倍对系统进行测试,并让系统长时间工作,以考察被测系统的可靠性,同时还要测试被测系统的响应时间。在项目开发过程中,往往压力测试会被忽略掉,这是很危险的,因为当大量用户并发访问系统的时候会耗费很多服

53、务器资源,搞不好就会把服务器搞的当机。如果这样那么造成的损失是无法估计的.因此,一定要做好系统的压力测试,尽早发现存在的问题。六 现有软件开发过程的探讨和比较4。1大型交易软件开发过程的优劣大型交易软件开发过程具有很多长处:提高了团队生产力,在迭代的开发过程、需求管理、基于组件的体系结构、可视化软件建模、验证软件质量及控制软件变更等方面,针对所有关键的开发活动为每个开发成员提供了必要的准则、模板和工具指导,并确保全体成员共享相同的知识基础。它建立了简洁和清晰的过程结构,为开发过程提供较大的通用性.但同时它也存在一些不足: 大型交易软件开发过程只是一个开发过程,并没有涵盖软件过程的全部内容,例如

54、它缺少关于软件运行和支持等方面的内容;此外,它没有支持多项目的开发结构,这在一定程度上降低了在开发组织内大范围实现重用的可能性。可以说大型交易软件开发过程是一个非常好的开端,但并不完美,在实际的应用中可以根据需要对其进行改进并可以用其他软件过程的相关内容对大型交易软件开发过程进行补充和完善.4.2和其他软件开发过程的比较CMM(软件过程能力成熟度模型),它是由卡内基梅隆大学软件工程研究院为了满足美国联邦政府评估软件供应商能力的要求而制定的一个标准,它其实是一个模型,告诉了软件开发者要做什么,而不是应该怎么做.因此,我们在软件开发的时候,要达到CMM规定的标准,但这个标准却不是一个软件开发者可以

55、去具体执行的具体过程。敏捷软件开发过程了告诉软件开发人员该怎么做,但没有明确的指出做到以后该怎么样改进.由于敏捷软件开发过程不注重设计,强调短周期,简单设计,快速开发.这对一个大型的实时交易系统来说是无法想象的。所以它也不太适合作为大型实时交易软件的开发过程。至于个人软件过程,很容易看出来,它是立足于软件工程师个体的软件开发过程框架模型。它的一些模板,操作步骤,度量标准能够帮助软件工程师改进个人的软件工程技巧,提高他们的开发效率和代码质量。通过上面的分析可以看出,大型实时交易软件的开发过程是比较适合这一类软件的开发的。结束语大型实时交易软件的开发过程,在外汇交易中心本币交易系统的开发中运用并取

56、得了很大的成功。随着企业信息化的不断深入,客户对大型实时交易软件的需求也在不断的增加.由于大型实时交易软件功能复杂,模块众多,而且对性能和安全性都要求比较高.因此这绝不是靠几个程序员几天就能搞出来的。所以这时就迫切需要一套很完善的软件开发过程来指导和规范软件开发人员对项目的开发。以使开发团队更有效率,软件质量更佳。大型实时交易软件的开发过程从需求分析,系统设计,系统实现,测试和部署,配置管理等几个方面,详细的定义了大型实时交易软件从开始到项目发布的具体过程。同时该过程还采用迭代的手段进行开发,这样降低了项目的风险,并且也把项目分成了几个小的阶段,有利于开发。随着在项目中不断的使用和完善这个开发

57、过程,相信这个开发过程必将更好的为开发大型实时交易系统服务。同时也将会扩展到很多类似的大型系统的开发。谢辞毕业已经近在眼前了,这篇论文业将结束我四年的大学生活。我只希望,这个句号能够完美。在这篇论文的完成过程中得到了许多的帮助,所以在这里我要感谢很多人。首先要感谢的是我的指导老师杜庆峰老师,他的渊博的知识和细心的指导,给了我的论文很大的启发.在我求教他的时候,他非常认真的给我进行解答,而且帮助我支出论文内容上的问题,以他丰富的经验来给我指出方向,使我受益非浅.没有他的帮助,我的论文质量将大大的下降.其次要感谢的是软件学院的所有的老师,在他们的帮助和教导下,在软件学院期间我获得了许多软件方面的知

58、识,我才能够有足够的知识和思考能力来完成这篇论文。还要感谢在实习期间曾经关心和帮助过我的同事,以及毕业设计期间乃至整个大学期间关心、帮助过我的老师和同学,谢谢你们。最后,感谢那些曾经帮助过我的不能一一列出的所有的人,感谢大家!参考文献【1】 Rational Software Corporation. Rational Unified Process version 2000。02。1, 2000【2】 Ivar Jacobson,Grady Booch,James Rumbaugh。 The Unified Software Development Process, Addison Wesley, 1999.1【3】 Scott W.Ambler. Enhancing the Unified Process:Software Process for Large Scale,MissionCritical Systems A Ronin Internatinal White Paper,2000.9【4】 实践者的研究方法,ROGER S.PRESSMAN,机械工业出版社【5】 软件开发过程与案例,陈宏刚等,清华大学出版社共页 第25页

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!