本科护理学毕业论文和本科毕业设计-基于某大型实时交易系统的开发过程_第1页
本科护理学毕业论文和本科毕业设计-基于某大型实时交易系统的开发过程_第2页
本科护理学毕业论文和本科毕业设计-基于某大型实时交易系统的开发过程_第3页
本科护理学毕业论文和本科毕业设计-基于某大型实时交易系统的开发过程_第4页
本科护理学毕业论文和本科毕业设计-基于某大型实时交易系统的开发过程_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊毕业设计(论文)报告纸共页第1页目录一、发病原因分析………………2(一)病毒感染…………………2(二)内耳血管病变……………2(三)内耳窗膜破裂……………3(四)过大的噪音………………3(五)精神压力大………………3(六)不良的生活方式…………4(七)免疫功能下降……………4(八)药物使用不当……………4二、健康指导……………………5(一)药物治疗指导……………5(二)高压氧治疗指导…………5(三)心理指导…………………7(四)饮食指导…………………9(五)出院指导…………………10三、总结…………11参考文献…………11后记………………11突发性耳聋的原因分析和健康指导摘要:本文的目的是通过找出突发性耳聋发生的原因,和不明的感音神经性耳聋的症状,做到早诊断早治疗,并在护理过程,分析突发性耳聋的原因和针对性健康指导对患者诊疗和康复具有积极的作用,对突发性耳聋原因分析和健康指导进行全面阐述,有利于指导突发性耳聋的护理。关键词

:突发性耳聋原因分析健康指导突发性耳聋是耳科常见的急症,是一种突然发生的不明原因的神经性耳聋,引起突发性耳聋的原因是多种多样的,有人产生突发性耳聋,觉得是因为着急或是过度劳累,可事实其实并非如此。突发性耳聋发病前常有负面情绪刺激以及疲劳、饮酒、失眠、妊娠和环境气压温度改变等诱因。多数患者发生在感冒、过度劳累、情绪激动之后。突发性耳聋的原因是什么?根据临床工作经验做出以下分析:一、发病原因分析(一)病毒感染:能引起突聋的病毒有腮腺炎病毒、麻疹病毒、流感和副流感病毒、腺病毒Ⅲ型等,均可引起病毒性内淋巴性迷路炎;带状疱疹病毒可引起病毒性神经元炎和神经节炎。鼻、咽部慢性疾病和鼻窦炎、扁桃体炎及增殖体肥大等,炎性分泌物易于进入咽鼓管内,而且病变妨碍了咽口引流。这是突发性耳聋发的重要原因之一。(二)内耳血管病变:供应内耳营养的血管较细长,许多原因可影响这根血管的供血,如心脏病、低血压、长期高血压、动脉粥样硬化。此外,长期大量吸烟、酗酒,精神紧张、失眠等,可使内耳供血血管暂时性痉挛而中断供血;体质弱、长期卧床者,常会在血管内形成小血栓。再就是当人在情绪激动或着急之后,人的肾上腺素分泌会迅速增加,此时,内耳小动脉血管会发生痉挛,由于小血管内血流缓慢,造成血液中的红细胞与血小板相互粘着,发生血行障碍,内耳供氧不足导致突聋的发生。一些老年人,特别是合并动脉硬化者,内耳血运极易发生障碍而引起突聋。这也是引起突发性耳聋发病的一个原因。(三)内耳窗膜破裂:打喷嚏、擤鼻、呕吐和潜水等,可使静脉压和脑脊液压力骤然升高,引起蜗窗、前庭窗膜破裂,前庭膜、覆膜和内淋巴囊破裂,有潜在的先天性内耳畸形者更易发生。梅尼尔病内淋巴液过多,亦可以造成蜗窗破裂而发生突聋。(四)

过大的噪音:

现在人都爱泡吧唱K,这些娱乐活动多会产生很大的噪音,长期待在其中,人的耳朵很容易受到损伤,若再不注意进行调节,没有充足的睡眠,就很容易患上突发性耳聋。(五)精神压力大

以往因精神压力过大而致突发性耳聋的多是40岁以上的人,但如今这一趋势开始蔓延至中青年人群。如,学习、工作压力等,很多高考学生甚至会和家长一起突发聋;心理因素刺激,不少患者、在发病前一天晚上都加班到很晚,又被老板否定了自己的文案,第二天他们就开始头晕,几天后就逐渐出现耳鸣甚至耳聋。因竞争因素而致耳病的人群有两个高峰年龄段:中学生、大学生和35岁-60岁的成功人士。他们都有较强的竞争心理,精力常处于透支状态,长时间紧张疲劳而得不到休整,就容易产生突发性耳聋。

(六)

不良生活方式:

现代人普遍生活规律不正常,多数人过度疲劳,连续熬夜上网等,导致耳朵的免疫功能降低,而听着耳机吹冷风,常会导致风邪、寒邪入侵,产生突发性耳聋也就不足为奇;一些人通宵玩网络游戏、打麻将,使得很多人的睡眠严重不足;而睡眠不足易使血管处于紧张状态,造成内耳供血不足,对听力有极强的杀伤力,极易发生耳鸣或突发性耳聋。mp3、mp4、视频聊天,电话耳机,这些新鲜时尚的玩意深受年轻人的喜爱,耳膜长时间置于这些声波冲击之下,极易受到伤害,诱发突发性耳聋产生。(七)免疫功能下降:因为耳鼻喉是相连的,有一部分突发性耳聋的病人可能与感冒有间接关系,故预防感冒则可减少一个发病因素,尤其是人在患感冒后耳内会出现病理性的反应,即水肿,再加上受到一些刺激性的噪音导致耳内迷路受损,突发性耳聋就会在这个时候出现在患者的面前。(八)药物使用不当:多见于氨基糖甙类抗生素,如庆大霉素、卡那霉素、多粘菌素、双氢链霉素、新霉素等,其他药物如奎宁、水杨酸、顺氯氨铂等都可导致感音神经性聋,耳药物中毒与机体的易感性有密切关系。药物中毒性聋为双侧性,多伴有耳鸣,前庭功能也可损害。中耳长期滴用此类药物亦可通过蜗窗膜渗入内耳,应予注意。二、健康指导(一)药物治疗过程中的健康指导:长春西汀是血管扩张药,能抑制磷酸二脂酶活性,松弛血管平滑肌,选择性地增加血流量,还能抑制血小板凝集,降低人体血液粘稠度,在治疗过程中,偶尔会出现头痛,颜面潮红及胃肠不适等症状,应向患者讲明是药物的反应,消除患者的紧张心理,同时由于长春西汀有抗凝作用,还应随时观察有无出血倾向,如:口腔黏膜、牙龈、球结膜出血及全身皮肤有无出血点,输液拔针后是否出血不止等。且每一疗程均进行出凝血时间检查,严格执行无菌操作规程,根据患者的病情和个体差异调整输液速度,静脉输液结束时,嘱患者暂卧床休息,不要急于下床活动,特别要避免剧烈活动。糖皮质激素主要是通过内耳的糖皮质激素受体起作用,糖皮质激素对内耳有抗感染、消除水肿、改善内耳微循环、增加内耳血液量、纠正电解质紊乱等作用。糖皮质激素常见的副作用有:胃应激性溃疡、心情改变、失眠等,长期应用可出现向心性肥胖及下丘脑-垂体-肾上腺皮质系统抑制等。向患者详细宣教糖皮质激素的药理作用及副作用,帮助患者正确的认识皮质激素在治疗突发性耳聋中的重要作用,并使患者认识到:糖皮质激素在突发性耳聋药物治疗中的必需的,在无糖皮质激素应用禁忌证的情况下,短时间应用糖皮质激素对人体并无大碍,从而使患者放下“恐惧激素”的心理包袱,主动配合医生的治疗。(二)高压氧治疗前后的健康指导:在高压氧的作用下,可以改善耳内听觉器官的缺氧状态,改善血液流变学降低血小板的凝聚率和血凝粘稠度,解除内耳血管阻塞;减轻组织水肿,加速水肿消退,此方法有利于毛细胞的修复和听力的恢复。其方法是采用中型医用6人高压氧舱,缓慢加压20分,使治疗压力达到0.20mpa稳压后给予戴面罩吸氧80分中间休息20分,最后20分钟内缓慢减压,出舱,每天1次,10天为一个疗程。有些健康人存在咽鼓管功能不良,所以入舱前,认真检查其功能是非常必要的。能正常交流的患者可通过吞咽动作或捏鼻鼓气动作可以来确定咽鼓管的通畅情况;对双耳聋等不能正确沟通者,在电耳镜下嘱患者吞咽或捏鼻鼓气见鼓膜扇。因上呼吸道感染、鼻炎、咽部淋巴组织增生等引起咽部不通畅者,可在进舱前一刻钟用呋嘛滴鼻剂滴鼻,确定通畅者进舱。若咽鼓管不通畅,可以行鼓膜穿刺术。本次研究有23例行鼓膜穿刺术,无穿刺导致的感染等并发症的发生。在操作前要向患者讲解高压氧的有关知识,详细介绍舱内的环境、通讯设备以及使用方法,不得随意搬弄舱内阀门、开关、按钮等设施,以防发生意外事故,应询问患者有无感冒、鼻塞等症状,首次进舱的患者更易发生中耳气压伤。这些突发性耳聋患者在高压氧治疗前有明显高于正常人群的焦虑情绪,特别是未婚、私人企业职员、病程大于7d的患者;这些患者常带着情绪进舱,易导致腭部、咽部的肌肉协调性下降,咽鼓管咽口不能正常开启,不能很好配合加压步骤做好调压动作,而气体不能顺利地进入中耳鼓室,使鼓室内外压力不平衡而导致中耳气压伤的发生。因此针对此类患者的心理矛盾,应耐心做好解释工作,使患者树立坚定的信念,充分发挥其主观能动性,配合默契,可以大大降低中耳气压伤的发生;同舱治疗效果佳、配合好的病友对新病人的指导,可以取得不错的效果。还应向患者讲解自己调节咽鼓管通气的有关知识:如张口大呵欠,捏鼻鼓气等,告知患者穿绵质衣服,不穿化纤和晴纶质量的衣服,减少静电的产生,防高压氧治疗时发生爆炸,减少危险的发生,还要严密监测患者生命体征,对于患上呼吸道感染,中耳炎,血压高于160/100mmHg等的患者应劝其安心休息禁止入舱,帮助其稳定情绪。操作中要密切观察病情,常询问患者的感受,反复、耐心地向患者讲解开启咽鼓管的动作与方法;如有不适应减慢或停止加压,待患者症状消失后再继续升压。舱压升至治疗压力时,通知患者戴好面罩,指导患者正确的吸氧方法;吸氧时嘱患者不要讲话、吃东西,不做深呼吸,并要注意观察患者有无头昏、出汗、恶心、面肌或口角紧张抽搐、刺激性咳嗽、胸骨后疼痛等氧中毒症状,一旦发生应立刻中断吸氧。对忐忑不安的患者可播放轻音乐分散其注意力。减压时由于气体膨胀吸热,使舱温下降,应注意为患者保暖,以防发生感冒而影响治疗,嘱患者保持自然呼吸,不要屏气与剧烈咳嗽,防止发生肺气压伤。许多患者由于不了解高压氧而表现出害怕、紧张、担忧甚至焦虑,进而导致机体调节功能减弱和抗病能力下降,直接影响高压氧治疗的顺利进行;另外部分患者由于缺乏专业知识和对疾病的正确认识,不理解高压氧治疗过程分三个阶段,稳压时,患者认为停供氧气,以为治疗时必须有不断的气流声才会吸到氧气,而吸氧时则认为快速大口吸氧效果好,治疗过程中或治疗几次后未见好转就怀疑未收到效果,在辅助疗法中,医务人员通过健康教育向患者耐心介绍高压氧的一般知识,治疗原理及治疗过程中的注意事项,把可能发生的并发症的症状及预防方法详细解释清楚,帮助患者正确地认识高压氧治疗,说明高压氧是一种无痛性、无伤害性治疗,疗效确切。告诉患者舱内燃烧、爆炸要“三大要素”齐全才会发

生,此外,不同文化程度患者的接受、理解能力存在差异,文化程度高的患者发生中耳气压伤的比例明显低于小学文凭及文盲,医护人员对这类患者应更耐心,态度温柔,语言浅显易懂,切忌不耐烦,让病人在轻松愉快的氛围中完成治疗,减少中耳气压伤的发生。

(三)心理指导:

对病人应

给予热情接待,并详细向患者介绍病区环境,使其尽快熟悉及适应新的环境,减少对陌生环境而产生的焦虑心理。进行每一项检查或治疗时,耐心做好相关的解释工作,避免产生不必要的顾虑,并可安排家属来陪同患者,及时消除患者的恐惧感。还要了解患者发病的诱因及其患者对于自己的疾病的认知情况,向患者讲解耳的解剖特点、功能、疾病的转归及治疗过程中有可能出现的问题,让患者在接受治疗之前能对此病的预后情况有初步的了解,并一定程度上减轻患者心理上的负担。患病早期,由于发病急,患者常缺乏思想准备,易心情紧张,焦虑恐惧。随着情绪恶化会加重原有症状,影响治疗效果。心理指导还要有针对性地进行,对在单位任要职的患者,应主动关心、了解病情、认真操作、细心护理,使其逐渐适应患者的角色。对于敏感多疑的患者,以良好的服务态度,娴熟的护理操作技术,赢得患者的信赖此时,护士应多与患者进行沟通,解除其心理压力,使患者以愉快乐观的情绪去面对疾病,并调动其潜力积极配合治疗至关重要。同时鼓励患者之间的相互沟通与交流,转移患者对听力变化的过分注意,从而减少患者因为听力变化引起的负面情绪。到了中期,患者对自己的疾病想得很多,渴望疾病尽快治愈。我们应用鼓励性的语言与患者交谈,重视患者的倾诉,使其精神有所寄托。在生活中关心体贴患者并尽力去帮助患者,尽量满足患者的需要。让患者了解突发性耳聋的性质,治疗方案,注意事项等知识,指导病人配合治疗,增强战胜疾病的信心。有的患者在后期因治疗效果不佳,会产生悲观失望心理。老年人多表现为忧虑、孤独、害怕,对治疗失去信心。而青年人,则担心耳聋影响前程,期望有好的疗效,一旦疗效不显著或反复发作,焦虑情绪与日俱增。因此要根据不同的心理反应进行耐心细致的解释病情和愈后情况,症状改善时予以肯定的鼓励。对心理障碍改善不明显者,帮助分析寻找原因是他们从困境中解脱出来。与患者之间建立良好的护患关系,护士应态度和蔼,关心体贴病人,就患者所担心的问题,有效地进行沟通与交流,进行各项操作前做到请字开头,谢字结尾,面带笑容,还要经常巡视病房,降低病房噪音,尽最大努力和患者之间建立一种相互信任的护患关系。突发性耳聋患者一般都起病急,突然的听力下降和耳鸣等会让患者难以接受,患者经常会情绪激动、易怒易激惹等,护士应该从病人的角度出发,语气温和,动作轻柔;经过几天的治疗后,病人开始失去信心,考虑到对以后的工作、生活、家庭等方面造成的影响,特别是与人交流不便,情绪常由烦躁转为抑郁,表现为沉默寡言、情绪低落、治疗态度消极等。医护人员应学习并应用心理学的相关知识来治疗和护理患者,减轻患者的身心痛苦,促进其康复,建立健康的生活方式。不但要了解疾病,更要从精神、社会、文化等方面了解患者,由于患者听力下降,在与其谈话时,单侧者应在其健侧耳边谈话,双侧者声调要提高。当患者讲话时,要耐心倾听,全面了解发病的心理因素及社会背景,有的放矢地指导患者,帮助其正确对待周围环境中的人和事。与患者交谈切忌流露出厌烦的目光和不耐烦的情绪,以免影响护患关系。护理人员

要不断提高护士自身的心理学水平,达到更好地调动患者的积极因素,密切配合治疗,促使疾病尽早康复。(四)饮食指导:合理饮食对于突发性耳聋患者的康复是很重要,教育患者要养成规律而且健康的饮食习惯,饮食清淡、营养均衡,以高蛋白、低盐、易消化、富含维生素的食物,饮水不宜过多为基本原则。要限制脂肪的摄入。大量摄入脂类食物,会使血脂增高,血液粘稠度增大,引起动脉硬化。少吃动物脂肪及富含胆固醇的食品,如蛋黄、动物内脏、对虾、奶油等。烹调方法尽量选用炖、煮,避免油炸、煎。应多补充富含蛋白质和维生素类食物。有关专家的研究发现,噪声能使人体中的一些氨基酸和维生素类(如维生素B1、B2、B6等)消耗量增加。人体缺乏维生素类食物,特别是缺乏维生素D时,其代谢衍生物钙化醇减少,司听功能的内耳听觉细胞会发生退行性病变;同时维生素缺乏可致红细硬度增加,难以通过末稍微血管,导致听觉细胞缺氧缺锌,这也和耳聋有关。因此,我们在日常饮食中应多吃富含维生素D、铁、锌等元素的食物。这类食物主要有瘦肉、豆类、木耳、蘑菇、各种绿叶蔬菜、萝卜、西红柿、大蒜、牡蛎等。多食含锌食物。耳蜗内锌的含量明显降低时,会影响耳蜗的功能而导致听力减退。英国学者研究资料表明,突发性耳聋的病人,血清中的锌浓度偏低者占1/3。这些病人除耳聋外,味觉或嗅觉也不同程度受损。经补锌治疗3-6个月,约30%病人的听力得到改善(听话不打岔了)。常见的含锌丰富的食物有:鱼、牛肉、猪肝、鸡、鸡肝、鸡蛋、各种海产品;苹果、橘子、核桃、黄瓜等。还应适当多饮牛奶,牛奶是营养丰富的食品。它吸收率高,利用率高,是既经济又安全的营养保健食品。牛奶中的矿物质是以碱性元素为主,所以牛奶是碱性食品,有调节人体酸碱平衡的作用。体内环境稳定是防病抗病的基础,也是抗疲劳、延缓衰老的基础。此外牛奶中几乎含所有已知的维生素,以维生素A、维生素D、维生素B1、维生素B2、维生素B6、维生素B12、维生素E和胡萝卜素。夏季,牛奶中尤以维生素A、D、B2含量高。这些维生素与钙的吸收利用,对防治改善血液循环和耳聋症状很有帮助。同时应忌烟酒、茶、咖啡等刺激性食物,增加粗纤维食物的摄入。(五)出院指导:要向病人详细交代出院后的有关注意事项,有的患者认为通过住院治疗后病情已经得到完全的治愈或者好转,出院后不再需要特别的注意,不必再服药和好好的休息了。护士在患者出院前有必要向患者和家属进行相关的指导,告知患者回家后饮食仍很重要,做到饮食规律,且以清淡、易消化、少油腻为基本原则,适当增加粗纤维的摄入,保持大便通畅。注意休息,保证充足的睡眠时间,预防感冒,有一部分突发性耳聋的病人可能与感冒有间接关系,故预防感冒则可减少一个发病因素,保持情绪稳定,改正不良生活习惯:劳累、通宵不睡觉等生活习惯,注意劳逸结合,保持良好的心理状态,注意睡眠,保持良好的生活习惯,不吸烟,不酗酒,忌食辛辣刺激食物,积极参加体育锻炼,并进行相应的减压,遇事勿过于激动,年轻人不能过多地长时间地使用耳机,长时间使用耳机,即使不导致耳聋,也会引起听力出现不同程度下降。如果持续使用耳机,应该每隔半小时拿掉耳机,让耳朵适当休息一下。在持续劳累后,要保护耳朵不受酒吧等嘈杂环境的音响刺激,避免噪音的刺激及长时间高音量使用随身听耳机和长时间使用手机通话,避免去噪声比较大的场合,避免使用耳毒性的药物:如阿斯匹林类,某些抗生素如庆大霉素、链霉素等对听力的危害较大,应避免服用,不要因为随意用药而带来再次的听力损坏。告知患者此病最好的预防方法是警惕突发性耳聋的先兆,当你连续熬夜或处在身心疲惫、精神紧张的时候,如出现耳鸣、眩晕、恶心、呕吐等症状,应到医院及时就诊。出院后要定期复查,定期治疗,巩固治疗效果,同时要做好相关的随访工作,了解患者的听力恢复情况,给予一定的健康教育和心理指导,加强患者各方面的生活指导,减轻不良情绪,使患者能以放松和积极的心态回归到社会环境中,以提高治疗的效果。老年人如有合并高血压、糖尿病、动脉硬化者需要积极配合治疗。如果治疗后患者听力仍无法恢复,有条件者配戴助听器。三、总结突发性耳聋的发病因素是很复杂的,应该尽量避免可能导致此病的各种危险因素,若有诱发因素存在,应以到早发现、早诊断、早治疗为基本原则。在治疗此病的过程中应做好药物副作用、高压氧治疗、心理方面、饮食方面及其出院前等方面相关的健康指导。参考文献[1]郭俊梅,李军,白作金.突发性耳聋患者高压氧治疗前状态-特质焦虑及相关因素的研究[J].中华航海医学与高压氧医学杂志,2006年[2]王鹏,侯永梅.健康教育与健康促进[M].北京:中国中医药科技出版社,2006年[3]鹿道温.中西医临床耳鼻喉科学期工作总结[M].北京:中国中医药出版社,2003年[4]中华医学会耳鼻喉科学会,中华耳鼻喉杂志编委会.突发性耳聋诊断依据和疗效分析[J].中华耳鼻喉科杂志,1997年[5]李温仁.大力加强高压氧医学的科研工作[J].高压氧医学杂志,2007年[6]房广才.临床高压氧医学[M].北京:华文出版社1995年[7]姜泗长,顾瑞,王正敏.耳科学[M].上海:上海科学技术出版社,2002年[8]杜鹏.ICU综合征的防治与护理[J].解放军护理杂志,2002年19期[9]杨瑞,李亚洁.创伤病人的心理学效应及心理护理[J].护理研究,2004年[10]陈千红.突发性耳聋综合治疗及心理护理[J].现代医药卫生,2007年20**年学士学位论文基于某大型实时交易系统的开发过程作者:学号:指导教师:同济大学软件学院软件工程专业二零XX年六月摘要当前,计算机软件的趋势正朝着庞大且复杂的方向发展。这是因为计算机处理能力的增大,导致用户对它的期望更多。我们满足客户需求的同时,需求本身也变得越来越复杂,从而,开发出来的软件也。总之我们希望软件运行的越来越快捷。大型软件的开发需要一种受控的工作方式,它需要一个过程来集成软件开发的许多方面。本文以一个大型实时交易系统软件为例子,阐述大型实时交易软件的开发过程,以及在过程的每个阶段都应注意的问题,并简要评述了特定的过程在软件项目开发中的优势及不足之处。【关键词】实时系统,开发过程,分析,设计AbstractNow,softwareisbecomingmoreandmorecomplicatedandlarge,itispartlybecausetheabilityofthecomputerprocessbecominglargeanditcausethecustomerhavemoredemandonit.Thetimewhenweneedthesoftwarewhichmeetsourrequirementsbetter,wealsomakethesoftwarebecomecomplicated.Allinall,wehopethesoftwarebecomefastandfast.Largesoftwaredevelopmentneedsawayundercontrol,italsoneedsaprocesstointegrateseveralaspectsof.Thispapergivesanexampleofalagersoftwaredevelopmenttoshowthedevelopmentprocessofthelargerealtimesoftwareandtheattentionshouldbepaidineverystep.Thepaperwillalsopointoutthegoodandthebadaspectsoftheprocess.【Keywords】Iteration, softwareengineering, softwarerequirement,developmentprocesses, CoreWorkflows 引言当前,软件的趋势是朝着更大更复杂的系统发展。这部分地是因为计算机的处理能力每年都在增大,导致用户对它的期望更多。同时,这种趋势也受到为交流各种信息(从纯文本到格式化文本到图像到图表再到多媒体)而不断扩大互联网的使用的影响。在产品版本的不断升级过程中,我们了解到产品是如何被改进的,因此我们对越来越复杂的软件的胃口也就越来越大。我们需要更符合我们的需要的软件,但是,这种需要反过来又使得软件越来越复杂。总之,我们需要更多。我们希望软件运行得越来越快捷。推向市场的时间是另一个重要的推动因素。然而,要达到这个目的是困难的。我们对强大、复杂软件的需要与软件开发的当前状况并不一致。今天,大多数人还在使用25年前使用的旧方法来开发软件。这就是症结所在。除非我们革新我们的方法,否则,我们无法达到开发当前所需的复杂软件的目标。我们可以把这个软件问题归结为软件开发人员面临的将一个大型软件项目的众多线索综合在一起的困难。大型软件的开发需要一种受控的工作方式。它需要一个过程来集成软件开发的许多方面。它需要一种通用方法,该方法能:(1)提供应如何对整个开发团队的开发活动进行组织的指导。(2)综合指导单个开发人员和开发团队。

(3)规定开发成果是什么。

(4)提供监控和衡量一个项目中的产品和活动的标准。本文主要以中国外汇交易中心本币交易系统为例子来讨论一种大型实时交易软件的开发过程。

一项目及软件开发过程模型1.1项目简介中国外汇交易中心是全国银行间外汇市场、人民币同业拆借和债券交易市场的组织者,为包括国有独资商业银行、股份制商业银行、外资银行、保险公司、证券公司、基金公司、财务公司等各类金融机构提供交易、清算交割和信息等方面的服务。在交易中心目前运行的本币交易系统采用了B/S结构,是一个建立在广域网上、采用总中心-分中心-交易成员三层结构的分布式应用系统。总中心、分中心主机均采用PCSERVER,总中心和分中心瑞安装SCOUNIX操作系统、SYBASE数据库管理系统,分中心WEB服务器安装了PowerDynamo2.0。使用JavaScript、ASP和DynamoScript开发交易系统的Web端应用程序,用PowerBuilder开发场务管理子系统,使用C语言和SYBASEOPENCLIENT开发后台进程监控系统等应用程序。目前运行的系统涉及的业务主要包括金融机构间的资金信用拆借、债券的二级市场交易与回购业务、隔夜拆借交易系统、债券市场一级市场发行的分销报价系统等。系统为参与本币市场交易的用户提供风险管理、行情信息等各种支持及清算、统计等辅助功能,以保证其日常交易的顺利进行。同时,保证市场管理部门对市场交易的日常管理及实时监控,保证中央银行对本币交易市场的交易状况及交易成员交易行为的了解和监督。现行系统由于操作平台相对落后及系统结构方面的缺陷,存在不能满足业务处理变化的要求、系统稳定性不够、交易便捷性不够、系统响应慢等问题,目前已不适应业务发展的需要。系统的另外一些不足,包括灵活性不够、缺乏技术分析工具、与其他交易系统、信息系统整合不足等。为了满足市场需要、提高系统性能、适应整个交易中心信息化建设的需要,交易中心提出建设中国外汇交易中心新版本币交易系统。1.2开发过程模型介绍1.3SCM工具的选择及在过程控制中的使用3.6.1配置管理工具的选择在大型交易软件的开发过程中,配置和变更管理也是非常重要的,因为配置和变更管理提供了准则来管理演化系统中的多个变体,跟踪软件创建过程中的版本。配置和变更管理描述了如何管理并行开发、分布式开发、如何自动化创建工程。同时也阐述了对产品修改原因、时间、人员保持审计记录。在本币交易系统的开发过程中,根据项目的实际情况,项目组选择了CVS作为版本控制软件。项目组用一个文件服务器作为CVS的代码仓库,然后每个开发机器上都安装客户端软件,在开发的时候从服务器下载源代码或者提交完成的文件。项目组选择CVS主要使基于以下几点考虑的:免费作为开放源代码世界的杰作,CVS使免费的。而且世界上有很多杰出的程序员都在维护这个软件,从而使软件更趋稳定和强大。出色的并行开发支持CVS能够支持客户进行并行开发,它实现的版本分支功能能够嘎实现软件开发者梦寐以求的许多功能--多小组并行开发不同的模块而不相互干扰,隔离危险或者冒险代码,在任意版本上打补丁,可灵活定制多种版本的演示模型等等。由于,本币系统模块较多,而且是多个项目小组并行开发,所以CVS的这些强大的功能能够让项目组开发人员大大提高效率,因此它很适合作为本币系统开发的版本控制软件。当然,在软件开发的时候,还有很多的版本控制软件可以供开发人员选择,比如RationalClearCase和MicrosoftSourcesafe等等。RationalClearcase和CVS相比较,Clearcase是一款真正的商业化软件产品,功能更加强大、全面和完善。它适合管理大型、特大型的软件项目开发。但是它的缺点也很明显,首先是价格昂贵,一般公司很难承受。其实它对服务器性能、网络带宽都有很高的要求,这意味着更高的投资。此外,由于clearcase功能比较复杂,因此,开发人员将会耗费很大的精力才能熟练的使用它的功能。MicrosoftSourceSafe它是微软公司为VisualStudio配套开发的一个版本管理系统,它自动集成在VisualStdio中,具有图形用户界面,管理和使用都比较简单。但是SourceSafe不具备跨平台的能力,不支持版本的分支和合并,不支持并行开发,在一个时间只能有一个人修改某个源文件。因此SourceSafe只适合于开发团队在10个人以下的小项目开发。经过上面的分析可以看出,用CVS作为大型实时交易软件的版本控制软件还是很合适的。它的功能完全符合项目需要,使用方便,而且是免费的软件。3.6.2配置管理计划的制定在选择了一个适合项目开发的配置管理工具以后,拟订配置管理计划也是非常重要的。笔者将以本币交易系统为例子,说明配置管理计划的制定。配置标识配置项标识是配置管理的基础性工作,是管理配置的前提。配置项命名是配置标识的重要工作,所谓标识,其实质就是区分,在众多的配置项中合理、科学地命名是最为有效的区分方法。除为配置项命名外,必要时应提供某些相关信息,比如:配置项组名及其存放位置,子目录名等;版本信息;作者、修改者、审核者信息。常见的配置项是文档,代码。工具以及第三方的产品。本币交易系统中的文档主要有:需求分析说明书,详细设计说明书,主机模块设计说明书,界面设计说明书等等。对于工具的配置项,要标识出中英文名称,版本号,提供商和序列号。配置基线基线是已经通过正式复审核和批准的某规约或产品,它因此可以作为进一步开发的基础,并且只能通过正式的变化控制过程的改变。在本币交易系统的实施过程中将建立以下基线:需求规约概要设计规约详细设计规约编码实现测试用户认可测试在软件工程化生产的各个阶段中,与本阶段的阶段产品有关的全部信息在软件开发库存放,与前面各个阶段的阶段产品有关的信息则在软件受控库存放。在研制与开发阶段的阶段产品的过程中,开发者和开发小组长有权对本阶段的阶段产品作必要的修改;但是如果开发者或开发小组长认为有必要修改前面有关阶段的阶段产品时,就必须通过项目的配置管理小组办理正规的审批手续。因此,软件开发库属开发这个阶段产品的开发者管理,而软件受控库由项目的配置管理小组管理。软件经过组装与系统测试后,应该送入软件产品库,如欲对其修改,必须经软件配置管理小组研究同意,然后报配置管理委员会批准。版本控制这里所说的版本,不是指单个配置项的版本属性,而是指配置项形成的集合,可以是某个模块、子系统或整个软件系统。版本控制要解决的第一个问题便是版本标识,也就是为区分不同的版本,要给它们科学的命名。本项目以号码版本标识法为主,符号版本标识法作为辅助手段,例如版本:V2.0.0(INTEGRATION_TEST)。版本号包括主版本号、副版本号、发布号,格式。发行管理版本发行解决了如何把产品配置成可以使用的方法。由于本项目需要涉及总中心及各分中心的切换,以及需要与各家银行联网调试,因此,对于发行到外部使用的软件要进行控制,用SER流程进行控制,keyword为SCM_DELIVERY,表单包含的主要信息如下:产品名称、版本信息、交付使用者、使用场所、交付方式、交付内容。软件配置计划的制定有助于保证所交付的软件能够满足项目委托书中规定的各种原则需求,能够满足本项目总体设计组制定的软件系统需求规格说明书中规定的各项具体需求。因此,在软件开发的过程中,应该严格按照配置计划制定的内容去实施。二商业建模和需求分析3.2.2系统特性需求作为一个大型实时的交易系统,客户对系统提出了非常高的需求,经过总结他们的需求主要集中在以下三点:(1)实时性:交易系统是业务处理十分频繁、数据交换吞吐量很大的系统,业务处理的速度直接关系到公司的经济效益和客户对公司的评价。在客观条件下,整个广域网系统必须在大业务量的情况下同时保持快速的实时响应能力,以保证整个业务系统的通畅运行。(2)安全性:安全性问题主要体现在交易成员资金和交易的安全性以及营业部内部网络的安全性,但随着公司一级的广域网系统的建立,特别是在本币交易系统中,系统的安全就显得更为重要,各个方面充分考虑整个系统的安全性。另外,对系统中所有的重要操作必须绝对留痕,以规范管理。(3)可靠性和健壮性:客户要求在系统交易的过程中要连续无故障,因为一旦交易中断,都会给交易成员带来损失。系统对用户的操作顺序、输入的数据进行正确性检查,并以显著方式提示错误信息。必须使用系统出错处理机制,当应用软件系统运行过程中发生错误时,系统将明确提示错误信息并指导用户进行处理。提供系统的运行监视和故障恢复机制,生成系统运行的日志信息,跟踪系统的所有操作,便于即时发现并排除故障。通过对系统特性需求的获取,可以看出,每一个大型实时系统都有它共有的要求,例如,对实时的要求,对可靠性和健壮性的要求。但由于本币交易系统的特殊性,客户对系统的安全性也提出了很高的要求。从这点可以看出,在取得系统的需求的时候,不仅仅要把握那些共有的需求,更重要的是挖掘那些隐含的需求,这些需求往往可能被需求分析人员或者是客户所忽略,但却是非常重要的。3.3.3系统划分和接口需求依据交易中心本币交易系统方案书中的设计目标、设计原则和系统性能要求目标,并根据用户使用的要求和特点,中国外汇交易中心新版本币交易系统包括三大子系统:中国外汇交易中心新版本币交易子系统,中国外汇交易中心新版本币中介子系统,中国外汇交易中心新版本币场务管理子系统。(见图2)图2:本币系统的划分图其中本币交易子系统是本币交易系统项目的核心,主要支持银行间信用拆借、债券回购、债券买卖和债券分销市场业务。新版本币交易系统中介子系统作为交易系统的一部分,为中介的报价、交易和手工录入提供完善服务。新版本币场务管理子系统为系统管理员和场务管理员提供方便灵活的管理接口,完成交易系统的交易控制、数据维护、场务管理和信息查询提供支持,并提供应急交易的功能。本系统作为交易中心本币系统的核心系统,是其他系统建设的基础和数据源,在本系统的建设中主要考虑的外界接口主要有:中国外汇交易中心本币信息系统接口、中国外汇中心F-风险管理系统接口、债券结算接口、交易成员本方数据存储接口,(详见:图三):债券结算债券结算数据下载F系统信息系统打印机交易子系统场务子系统中介子系统

数据库图3:本币系统的接口图作为一个大型的实时交易软件,系统分割成几个独立的子系统这种架构模式是很有用的。这样既方便软件的开发,又方便软件的维护的工作。因此在进行需求分析的时候,一定要注意把相同的功能模块集成到一个子系统中去。同时,由于软件不是孤立存在的,因此,一定要考虑系统和系统之间的接口问题。不光光要考虑对现有系统的接口,还要考虑对以后扩展系统的接口。否则,对以后软件的使用和扩展将造成很大的麻烦。3.3.4系统构架需求新版本币交易系统的框架是一个具有多层构架的客户/服务器应用结构。采用中间件技术构建多层客户/服务器应用结构已经成为应用开发和运行的主流技术,其核心概念是利用中间件将应用的表示逻辑(客户界面)、业务逻辑(服务组件)和数据管理(数据库)分为三个不同的处理层:1、表示层提供协议控制和用户界面,与系统最终用户实现直接交互。负责接收用户的服务请求,通过socket连接向交易前置服务发送。2、商业逻辑层作为中间层实现核心业务逻辑服务,这些组件由中间件管理,接受客户的服务请求,向交易主机提交数据操作,并将交易主机的业务处理结果返回给请求者。3、数据层负责整个系统中数据信息的存储、访问及其优化。通过使用中间层,实现了业务逻辑与表示逻辑、业务逻辑与数据管理的分离,使得系统能够灵活的适应用户业务逻辑的变化。(详见:图4)图4:系统业务架构图之所以采用这种构架主要是因为考虑到软件的使用者分布在全国各地,这样采用web界面的访问方式可以使软件实现零安装。而且采用这种MVC的模式,使的业务逻辑层、表示层和数据管理层分开。这样有助于软件的开发和维护。由于软件的系统架构就象人的骨架一样,是整个软件的脊椎骨,所以在考虑系统架构的时候一定要从用户的业务需求出发,确保软件的系统架构合理。3.3.5软件功能需求笔者将以本币交易系统中中介交易子系统为例子来说明定义功能需求的目的以及怎样定义软件的功能需求。本币交易系统的中介子系统的相关功能包括:中介成交处理:录入成交单:参与交易的双方成员经过与中介联系后达成交易,交易双方交易员通过电话/传真传送成交单给中介,中介交易员把交易成交单录入系统。修改成交单:修改当日中介成交单。撤消成交单:撤消当日中介成交单。中介交易处理:发送公开报价:向市场全体成员转发已收到的成员匿名报价或手工录入的报价,代理委托成员完成指定交易。发送对话报价:向特定的市场成员表达本方的具体的交易意向,通过选择委托方发送给中介的匿名报价并发送给所选择特定成员交易员,此报价对委托方具有约束力。询价交谈:为达成一致的交易意向,与交易对手就报价中交易各要素进行磋商。同新版交易子系统询价交谈。确认成交:对报价指定交易进行确认,经过交易双方通过报价交谈,对于各交易要素达成一致后,交易双方都有权确认。同新版交易子系统。修改报价:为了达到更准确和及时的表达自己的交易意向,修改本方已经发送但没有确认成交或应答的报价中一些交易要素。撤消报价:取消交易意向,对本方已经发送但没有确认成交或者部分没有成交的报单进行撤销。其它:登录:中介交易员进入中介交易系统,代理委托成员进行报价、询价、确认成交以及录入成交单等。查询统计:可按开始结束日期、委托方、交易方向、债券代码、等组合查询,并小计出笔数和交易量。详见:图5图5:中介子系统功能需求通过上述例子可以看出,在需求分析阶段,功能需求(functionalrequirement)定义了开发人员必须实现的软件功能,使得用户能完成他们的任务,从而满足了业务需求。开发人员和用户需要对软件实现的功能达成一致。要对需要的功能和约束进行提取、组织、文档化。正确的划分功能需求非常重要,这就需要需求人员能够正确把握用户的需求,了解行业背景,挖掘隐含需求。3.3.6需求用例和建模所谓的用例就是软件的使用者和系统的交互。一个用例就是系统中向用户提供一个有价值的结果的某项功能。用例捕捉的是功能性需求。所有用例结合起来就构成了“用例模型”,该模型描述系统的全部功能。用例迫使我们从用户的利益角度出发进行考虑,而不仅仅是考虑系统应当具有哪些良好功能。用例不仅仅是定义系统的需求的一个非常好的工具,它还可以驱动系统的设计、实现和测试。亦即整个开发过程。在需求阶段我们一般完成用例的定义,在以后的阶段中还会有用例的设计等等。下面笔者将以交易子系统中信用拆借公开报价用例来说明用例的定义。用例名称:信用拆借公开报价系统范围:交易系统上下文目标:交易员提供本方的初步交易意向,填写本方公开报价单,并且通过交易系统发布在交易系统的公开报价栏中,让所有的其他交易员能够看到。前置条件:交易员已经通过身份认证,并具有信用拆借业务权限主要角色:信用拆借交易员成功场景:交易员发出“信用拆借公开报价”交易指令;系统切换到“信用拆借公开报价”窗口;交易员填写信用拆借公开报价要素,并提交;系统校验信用拆借公开报价,并广播信用拆借公开报价;在线交易机显示信用拆借公开报价。扩展:3a.公开报价要素不合法3a.1、拆借方向未填写,提示交易员:“请填写拆借方向”,返回到3;3a.2、公开报价要素数据格式不对,返回失败信息:“XX数据格式不对”,返回到3。4a.数据不合法 4a.1、包格式不对,提示交易员:“公开报价失败”,用例失败。备注:业务规则:1.1、“利率”和“金额”允许报空值(可不填写具体数值),只表示资金进出方向;1.2、系统自动生成每笔报价编号,在系统状态栏中显示报价发送状态。一个完整的用例需要包括以下内容:名称:每个用例都必须有一个区别于其他用例的名称。用例参与者一个参与者表示用例的使用者在与这些用例进行交互时所扮演的角色的一个紧密的集合。通常一个参与者代表的角色有:人,硬件设备,或甚至是另外一个系统。用例和事件流用例描述的是一个系统做什么,这可以通过一个足够清晰的、外部人员很容易理解的文字描述一个事件流,来说明一个用例的行为。书写这个事件流的时候,应该包含用例何时开始,何时结束,用例合适和参与者交互,什么时候对象被交换,以及行为的基本流和可选择流。3.3.7小结通过对本币交易系统的需求分析为例子的分析,可以看出最重要的是客户和系统开发人员在系统的工作内容方面达成一致,系统开发人员能够清晰的了解系统的需求,定义系统的边界。最后要生成一个用例模型,其中主角代表与系统通信的外部单元,用例代表事务序列,为主角提供可测量的结果值。三系统设计与实现本币系统的设计主要是为了说明系统总体设计的技术方案和模块的详细设计,涉及到系统设计的主要方面,如系统架构、模块划分、功能分配、接口设计、运行设计、数据库设计和出错处理设计等内容,以向整个开发期提供关于子系统关系的总体描述,从而作为程序详细设计或编码的框架性基础。3.3.1总体结构设计在本文中笔者将以交易子系统的交易处理模块为例子来阐述总体结构设计。交易处理模块采用四层架构,在业务处理中采用交易中间件,分为数据表示层、通信层、业务处理层和数据层;整个结构基于消息的驱动。(UML图6)UserInterface:用户的操作界面,其中分为会员交易前台界面,中介交易前台界面,场务管理前台界面。实现表现层(终端界面)所要求的功能。NetWork:系统中客户端和服务器端的通讯采用标准的协议,该模块负责两者之间数据的传输工作,检查通讯故障。DataProtocol:由于客户端和服务器端传输的数据都采用了标准的XML格式,该模块一方面对所有发送的数据按照XML的语法格式进行组织,另一方面对所有收到的数据进行解析;FunctionCase:各子系统业务处理(场务子系统、中介子系统、交易子系统),实现终端业务层、交易业务层和主机业务层所要求的功能。(中间件服务器)MessageDispatcher:该模块实现了前置机和交易主机服务器端各模块之间交互消息的发送、接收以及分发功能,实现前置机主机通讯协议层所要求的功能。(中间件客户端)Logging:记录系统运行中的时序信息,包括正常、调试和错误信息,帮助诊断系统状况,测试模块功能,确定问题的位置。可以根据配置文件,确定输出的内容。DataProcess:数据库的接入,实现主机数据库通讯协议层所要求的功能。体系结构是软件系统中最本质的东西,体系结构是对复杂事物的一种抽象。良好的体系结构是普遍适用的,它可以高效地处理多种多样的个体需求。一提起“房子”,我们的脑中马上就会出现房子的印象(而不是地洞的印象)。“房子”是人们对住宿或办公环境的一种抽象。不论是办公楼还是民房,同一类建筑物(甚至不同类的建筑物)之间都具有非常相似的体系结构和构造方式。如果13亿中国人民每个人都要用特别的方式构造奇异的房子,那么960万平方公里的土地将会变得千疮百孔,终日不得安宁。体系结构在一定的时间内保持稳定。只有在稳定的环境下,人们才能干点事情,社会才能发展。科学告诉我们,宇宙间万物无时无刻不在运动、飞行。由于我们的生活环境在地球上保持相对稳定,以致于我们可以无忧无虑地吃饭和睡觉,压根就意识不到自己是活生生的导弹。软件开发最怕的就是需求变化,但“需求会发生变化”是个无法逃避的现实。人们希望在需求发生变化时,最好只对软件做些皮皮毛毛的修改,可千万别改动软件的体系结构。就如人们对住宿的需求也会变动,你可以经常改变房间的装璜和摆设,但不会在每次变动时都要去折墙、拆柱、挖地基。如果当需求发生变化时,程序员不得不去修改软件的体系结构,那么这个软件的系统设计是失败的。良好的体系结构意味着普适、高效和稳定。3.3.2功能模块的设计本文中笔者将以撤销本方交易员模块的设计为例子来阐述交易系统中模块的设计。(1)模块描述由首席交易员撤销本方交易员。首席交易员在会员机上将CDlrDelReqMessage请求消息发给主机,主机Tuxedo服务进程接到此请求,调用管理服务模块中的撤销本方交易员服务进程。主机获取所撤销的交易员Id,检查所撤销的交易员是否已存在,通过验证后,撤销交易员到交易员表,并记录各要素,然后向首席交易员返回成功响应消息。(2)对象说明该模块用到以下方法:CMessage*CManageCommand::DeleteDealer(CMessage*pMessage)(3)动态模型<1>首先接收注销本方交易员请求消息类CDeleteDealerReqMsg并创建注销本方交易员请求消息实例;<2>接下来创建数据库接口实例CDBInterface*pDB=newCDBInterface;注销本方交易员响应消息实例CDeleteDealerResMsg*pDeleteDealerResMsg;<3>接着调用数据库接口实例的pDealerModel=pDB->findDealerModel(msgDlrId)方法获得交易员模式pDealerModel;<4>然后调用DlrId=pDlrDelReqMessage->getDlrId()检查所注销的交易员是否存在;<5>调用strcmp(MemId,pDealerModel->getDlrMemId())方式检查欲注销交易员是否属同一交易成员;<6>调用strcmp(CreatorId,pDealerModel->getDlrCreatorId())方法检查欲注销交易员是否由其创建者注销;<7>调用if(pDealerModel->getDlrState()!=STATE_DEALER_NORMAL)方法检查欲注销交易员状态是否为正常状态(STATE_DEALER_NORMAL);<8>调用pDealerModel->setDlrStatus(STATE_DEALER_DELETE)方法设置该交易员状态位注销状态(STATE_DEALER_DELETE);<9>调用pResponseMessage=pDeleteDealerReqMsg->toResponse()方法返回注销本方交易员响应消息。一个完整的功能模块设计应该包括模块描述、对象说明、动态模型这三大块内容。模块描述用来叙述该功能模块应该实现的功能。对象说明列举了该模块使用的方法。动态模型说明了该模块实现该功能的详细步骤以及它使怎样和系统交互的。一般情况下功能模块是逻辑功能整体,进行具体编码由接口程序(函数、存储过程、方法等)进行具体实现。一个功能模块一般有最少一个或多个接口程序,所以每个功能模块下有最少一个或多个接口程序描述,而多个接口程序的关系通过功能模块中的流程逻辑进行说明。接口代码:函数、存储过程、方法等的名称接口功能说明:说明本接口程序的功能。接口输入参数:给出对每一个输入项的特性,包括名称、标识、数据的类型和格式、数据值的有效范围、输入的方式。接口返回数据:给出对每一个输出项的特性,包括名称、标识、数据的类型和格式,数据值的有效范围,输出的形式。3.3.3用户界面设计本币交易系统的界面总的设计总体原则是:简洁明了,方便易用。下面笔者以信用拆借的主界面设计来阐述用户界面的设计。信用拆借的主界面:图7:信用拆借的主界面信用拆借公开报价所用模型:显示名称类型英文名称(*)属性(#)输入控件(Table)备注编号intPubBidId报价方longPubBidMemId交易员longPubBidDlrId交易方向enumPubBidDir0拆入1拆出金额moneyAmt利率rateIr期限shortTl时间timePubBidTime动作:名称操作说明打开公开报价框点中报价,双击mouse左键增加公开报价单击mouse右键修改公开报价撤销公开报价点中报价,单击mouse右键打印公开报价点中报价,单击mouse右键详细显示公开报价方名称、交易员联系方式点中报价在界面设计的时候,首先应该画出界面的样子,画图应该使用专门的软件,以使画出来的界面比较逼真并容易识别。接着界面设计应该列出该界面所用的模型,模型应该包括,界面上显示的元素的名称、类型、属性、输入控件等。最后还应该列出客户能对界面的操作,以及该操作的声明。这样的一个界面设计才是完整且符合要求的。由于软件的界面直接和客户打交道,所以大型软件的界面设计变的很重要,笔者认为界面设计应该主要做到以下几点:界面的合适性界面的合适性是指界面是否与软件功能相融洽。如果软件的界面不适合于软件的功能,那么界面将毫无用处。所以界面的合适性是界面美的首要因素,它提醒界面的设计者不要片面追求外观漂亮而导致失真或华而不实。界面的合适性。既提倡外美内秀,又强调恰如其分。对于象大型交易系统这类软件,界面应该朴实无华,不需要把界面设计的类似于儿童娱乐软件那样花哨。界面的风格对于象大型实时交易软件这样的商业应用软件的界面设计应该注重一致性。设计者必须密切注意在相同应用领域中最流行的软件的界面,必须尊重用户使用这些软件的习惯。例如大多数软件习惯于设置F1键为帮助热键,如果某个设计者别出心裁地让F1键成为程序终止的热键,那么在用户渴望得到帮助而伸手击F1键的一刹那,他的工作就此结束。因此本币交易系统使用jbuilder快速地开发出简洁美观的图形用户界面。在Internet/Intranet领域,浏览器几乎成了唯一的客户机程序,因为用户希望用完全一致的软件来完成千变万化的应用任务。界面的广义美尽管界面的美并没有增加软件的功能与性能,却又是必为可少的。用户使用界面时,除了直接的感官美感外,还有很大一部分美感是间接的,它们存在于人们的使用体验中,例如方便,实用等。本币系统界面的设计的时候,充分考虑到了用户的方便和实用,为一些用户常用的功能设置了快捷键,而且右键实现了很多菜单功能,这样用户轻按鼠标就能够方便的操作。3.3.4系统出错处理设计由于系统采用的是客户机/服务器和浏览器/服务器的综合应用环境中,牵涉到的软硬件资源比较多,无论哪个环节出了问题,数据库访问都不会成功,应用程序的进一步执行都会受到影响。因此我们的应用开发必须能预先发现问题,努力解决问题,并以准确无误的信息通知用户,从而保证应用程序处理错误的强壮性。出错信息分类出错信息可以分为三类,他们分别是:<1>通讯线路错误,当网络通讯出现故障时,可能发生通讯线路错误,因判断方式和处理方法不同,按照局域网和广域网划分,可分为两类。<2>数据库操纵错误,开发应用程序访问数据库时,在三个地方可能会导致数据库访问错误,它们是使用控件函数操作数据库(提取数据、更新修改),使用嵌入式SQL语句操作数据库,数据和业务的逻辑矛盾和错误。<3>系统设计错误,用户常会输入一些不正确的信息。如果不加以检测,会导致更严重的系统错误。输入数据错误包括数据格式错误和数据内容(含义)错误。导致错误的原因是用户的误操作。出错处理的对策出错处理方法可分三类:重试、取消和退出。对一些较轻的错误,如数据格式输入错误,可让用户重输;一些较为严重或状态不可恢复,但不属于系统错误的错误,可以取消该操作。至于严重的系统错误,如磁盘扇区损伤不可读写,则只能退出系统。对于一个大型实时交易软件要想在使用过程中不出现这样或那样的问题几乎是不可能的。这就需要在系统设计的时候充分考虑到各种错误情况。首先,可以对出错的信息进行分类,这样有助于认识和分解问题,然后可以根据相应的出错情况提出相应的解决对策。总之,一个设计的好的系统能够有效的对出错情况进行处理。使软件更加健壮。3.3.5系统的实现系统的实现是指实现在设计中发现的设计类和子系统,特别是将设计类实现为包含源代码的文件构件。本币交易系统的实现是由14个程序员在客户处完成的。在开始开发阶段,每个程序员被按照各自的职责分配到不同的任务和时间期限。在项目开发的过程中,程序员被要求严格的按照设计文档规定的内容来实现。每写完一个模块的代码,项目组都会在项目经理的组织下对代码进行review,以确保代码的质量。由于本币系统功能模块比较多,实现起来有难度。为了不使进度拖延,项目组要求每位程序员都撰写日报,这样可以方便项目管理者跟踪项目进度,及时解决在项目实际开发中遇到的问题。整个项目在开发过程中采用CVS作为版本控制软件,所有代码都在CVS的控制下进行开发,这样使软件开发过程中的版本得到了跟踪。从以上分析可以知道,在过程的这一阶段,重点在于管理资源和控制操作,以便优化成本、进度和质量。3.3.5小结在大型实时交易软件的开发过程的设计阶段,应该注意使用基于构件的设计,构件是实现清晰功能的模块。子系统提供了使用新的及现有构件定义体系结构的系统化方法。所以在清晰的定义了类以后,应该按子系统对类进行分组。同时,在设计中还应该注意把实现工作分为更易于管理的各个部分,并尽可能的让各个组并发开发。四系统的测试3.5.1单元测试单元测试是针对软件设计的最小单位——程序模块,进行正确性检验的测试工作。其目的在于发现每个程序模块内部可能存在的差错。单元测试是程序员的一项基本职责,程序员必须对自己所编写的代码保持认真负责的态度,这是也程序员的基本职业素质之一。同时单元测试能力也是程序员的一项基本能力,能力的高低直接影响到程序员的工作效率与软件的质量。在编码的过程中作单元测试,其花费是最小的,而回报却特别优厚的。在编码的过程中考虑测试问题,得到的将是更优质的代码,因为在这时程序员对代码应该做些什么了解得最清楚。如果不这样做,又要花费许多时间,重新把它弄清楚。在本币系统的开发过程中,项目组采用了两种方法进行单元测试。在本币系统的开发过程中,项目组采用了两种方法进行单元测试:(1)人工静态检查人工静态检查主要是为了保证代码算法的逻辑正确性(尽量通过人工检查发现代码的逻辑错误)、清晰性、规范性、一致性、算法高效性。并尽可能的发现程序中没有发现的错误。项目组要求每一位程序员在单元测试的时候,都严格检查自己的代码是否按照在项目开始时候制定的java代码编写规范来书写。是否在每个模块前面都要加上注释,详细说明这个模块的作用,作者,传入的参数,传出的参数。在模块完成后,在项目组内部先请其他程序员review。发现在代码中可能存在的错误和问题。(2)通过设计测试用例通过设计测试用例,执行待测程序来跟踪比较实际结果与预期结果来发现错误。统计表明,使用人工静态检查法能够有效的发现30%到70%的逻辑设计和编码错误。但是代码中仍会有大量的隐性错误无法通过视觉检查发现,必须通过跟踪调试法细心分析才能够捕捉到。所以,动态跟踪调试方法也成了单元测试的重点与难点。项目组要求程序员编写测试用例来对自己的代码进行单元测试。用例由输入的数据和期望输出的数据两方面来构成。输入数据应该包含合理条件下的输入和不合理条件下的输入。测试类设计由于在项目中一个模块或一个方法(Method)并不是一个独立的程序,在考虑测试它时要同时考虑它和外界的联系,用些辅助模块去模拟与所测模块相联系的其他模块。这些辅助模块分为驱动模块和桩模块两种。所谓的驱动模块相当于所测模块的主程序。它接收测试数据,把这些数据传送给所测模块,最后再输出实际测试结果。所谓的桩模块用于代替所测模块调用的子模块。桩模块可以做少量的数据操作,不需要把子模块所有功能都带进来,但不容许什么事情也不做。比如在报表打印模块的单元测试中编写了一个界面模块和一个流数据传输模块作为驱动模块来进行测试。又比如在编写界面上的菜单模块时候,程序员写了许多小的事件响应模块来对菜单模块进行测试。3.5.2集成测试在软件项目中时常有这样的情况发生,每个模块都能单独工作,但这些模块集成在一起之后却不能正常工作。主要原因是,模块相互调用时接口会引入许多新问题。例如,数据经过接口可能丢失;一个模块对另一模块可能造成不应有的影响;几个子功能组合起来不能实现主功能;误差不断积累达到不可接受的程度;全局数据结构出现错误,等等。集成测试是组装软件的系统测试技术,按设计要求把通过单元测试的各个模块组装在一起之后,进行集成测试以便发现与接口有关的各种错误。由于大型实时交易系统这样的大系统,它模块众多。因此如果把所有模块全部组装起来,然后进行整体测试容易出现混乱,因为在测试的时候可能发现一大堆的错误,而每个错误的定位和纠正却非常的困难,并且如果改正一个错误可能会引起其他的错误,这样新旧错误混杂,不利于测试的开展。因此本币系统采用了自顶向下的集成方式,首先从主界面的主控模块开始,把对该主控模块进行单元测试时引入的所有桩模块用实际模块替代。

温馨提示

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

评论

0/150

提交评论