




已阅读5页,还剩43页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
XX大学软件学院摘 要“变是不变的真理”。这句话在软件开发与领域实践中体现得尤为突出,随着金融全球化,银行产品越来越多样化,银行应用软件要不断得创新、升级、演化。如何在银行软件领域应用的开发中,利用已有的技术资源适应不同国家的需求,即如何控制软件的变化性进行复用,是一个十分重要的问题。 目前,软件复用的研究主要集中在领域工程方法、变化性分析、处理技术等方面,并在实践中大多利用特定开发范型、特定控制机制和实现技术来处理变化性,缺乏一个比较系统化的解决方案。 针对这个问题,本文结合软件复用理论与Greece EBS 的开发,进行了银行软件复用的实现和质量保障机制的研究,主要工作包括:1) 归纳并总结了银行软件开发语言对复用的实现,它作为实现最基本功能的元素可进行结构化编程,并根据业务划分来实现不同的原子功能,从而提高了可重复利用性。对作业的执行分成了JCL和PRC,并分离参数PRM,这实现了不同平台的作业移植,在业务流程上实现了可复用。2) 研究ChangeMan对变化性的管理和控制,分析它对银行软件开发中的作用和对软件复用上的实现。3) 基于SIT、UAT、PAT测试环节,在OPC的控制下怎样实现分布式开发的集成测试,针对新的变化怎样做适应性的改动和控制,这些测试环节对银行软件的快速开发的质量保证。本文提出的银行软件的复用和质量保证,对软件复用理论在银行领域的应用有很大帮助,并进一步提高了银行软件的复用。关键词 软件复用;研发阶段;整合测试;用户可接受级测试;产品可接受级测试 ;运行处理控制ABSTRACT“Change is the unchangeable truth.” This is prominent especially in software developing and domain practices. Along with global finance and the demands of diversification banking productions, banking software applications need to create、update and evolution continuously. How to adapt to the different countries demands in banking software application using existing resources,or in other words how to control the variability of software is a very important issue.At present, researches on Software Reuse are mainly focused on domain engineering methods, variability analysis and variable implementation technology, and use specific development paradigm, specific control mechanism and implementation technique to handle variability in practice. There is lack of a systematic solution for domain variability.Based on the theory of software reuse and the developing of Greece EBS project , this thesis addresses this problem which research on the realization of Banking Software Reuse and the System of Software Quality Assurance , the details as the following:1) Conclude and summarize the realization of software reuse with the Banking Software developing language. As the primary function element, it can make configurated program and make atom-function which is carved up depending on the different businesses, then improve the ability of Software Reuse. The job is divided into JCL and PRC and separate the parameter PRM, this realize software transplant between different developing flat, so it can realize the Software Reuse.2)Research on the manage and control of software variability in ChangeMan , analysis and realize the function software reuse .3) Based on the testing cycles of SIT、UAT、PAT, OPC how to realize the integrate test of distributing developing and how to adapt to new changes ,these testing cycles assure the quality of banking software speediness developing.The Banking Software Reuse and Software Quality Assurance proposed by this thesis can help the application of Software Reuse Theory in domain of banking and improve the reuse of Banking Software.Key Words Software reuse;RND;SIT;UAT;PAT;OPC摘 要1ABSTRACT2第1章 引言41.1 问题的提出41.1.1 银行软件的现状和机遇41.1.2 银行软件的复用必要性51.1.3 小结61.2 银行业务概述和开发环境的介绍71.2.1 银行业务的处理71.2.2 银行开发的环境81.3 软件的复用和实现工具91.3.1 软件复用概念的引出91.4 本文研究基础91.5 本文的研究目标和主要工作91.6 本文的组织10第2章 银行软件的开发112.1 银行软件开发语言112.1.1 COBOL 开发语言的介绍112.1.2 COBOL语言的结构化122.1.3 软件的数据管理122.2 功能模块的组装和控制122.2.1 作业控制语言(JCL)的介绍122.2.2 PRC &PRM 的介绍122.2.3 操作流控制OPC122.3 银行软件的开发流程122.3.1 RND-软件开发阶段 & SIT 软件测试阶段122.3.2 UAT 用户可接受性测试阶段 & PAT 产品可接受性测试阶段12第3章Greece EBS项目中的软件复用和控制123.1 Greece EBS项目概述123.2 RND环境下的软件复用123.2.1 软件复用的模块123.2.2 Changeman 在软件复用中的应用123.2.3 针对变化和分布式开发的模块管理123.3 软件在SIT、UAT &PAT不同环境下的移置123.3.1 基于业务流的软件环境移置技术123.3.2 OPC对软件不同测试平台的控制123.5软件复用的现状123.4 比较和小结12第4章 银行软件质量保证124.1 UAT阶段的测试工具的介绍和测试环节124.2 PAT阶段的测试工具的介绍和测试环节12第5章 比较和展望12致谢12参考文献12第1章 引言1.1 问题的提出中国加入WTO后,经济全球化已成为不可逆转的趋势,近几年,外资银行陆续在我国沿海大城市建立机构, 中国银行面临前着所未有的挑战,要提高国内银行的竞争力,真正实现银行软件的工业化生产方式,达到银行业务发展所需要的软件生产率和质量,吸取国外银行软件的开发流程是提高国内银行软件开发的快捷方式,其中银行软件的复用和质量保证是技术的主要部分。1.1.1 银行软件的现状和机遇国内银行是传统计划经济体制下的产物,经营管理体制下银行软件不能适应现代市场经济的要求;主要经营指标经不起国际标准的检验;参与国际市场的经验和能力有限,包括不熟悉国际惯例和准则、产品和服务功能单一、跨国公司的营销和管理能力薄弱,国际业务人才奇缺、国际业务电子化等经营手段落后等等。国内软件产业发展目标和发展战略,在扶持产业发展的政策措施方面还没有真正到位,发展环境还没有实现优化,再加上产业发展基础薄弱,国产软件的发展规模和速度还不能为国民经济提供足够的支撑,使得我国在软件产业发展方面,处在世界发达国家和周边发展中国家的“夹缝”之中,与世界先进水平的差距未见缩小,反而有日益扩大之势,国内的软件产业体系和国外还是有一定的距离的。面对国内银行业和国内软件行业的发展情况,银行软件同时面临来自这两方面的问题。u 软件产业的发展空间巨大,但国产软件的市场份额十分有限我国目前正在大力推行金融产品电子化,这无疑为银行软件产业的发展提供了巨大的需求,银行软件的发展空间很大但是信息化的迅猛发展并没有形成对国产软件有效的需求,反而有助于跨国公司在我国的发展。国产银行软件的市场占有率仅维持在30左右的水平,这一方面是由于我国软件产业几乎全面处于全球软件产业链的中下游地位,在核心产品和关键技术的发展方面受制于人,在国内市场国际化的大环境中处于非常被动的局面。另一方面,目前的政府采购从尽量节约财政资金方面考虑得多,而在通过启动政府采购为国产软件创造市场空间方面考虑不够,未能给国产软件以有力的实质性扶持。u 缺乏核心产品和关键技术,核心竞争力薄弱银行业务种类相对较少,产品单一,软件开发机构缺乏基础和核心技术以及具有自主知识产权的软件产品,自主创新能力弱,不仅使得大量利润流入外国企业,严重影响我国银行软件产业的积累和再循环能力,而且还严重威胁着我国金融产品的信息安全。u 金融软件产业发展基础薄弱,无力与跨国公司抗衡据CCID(信息产业部电子信息产业发展研究院)统计,至2000年底,我国从事软件开发、研制、销售、维护和服务的软件企业有3000家左右,加上兼营软件的企业,总数大约有5000家,而银行软件开发还主要依伏在金融单位内,银行软件产品的开发还主要依靠各大银行的计算中心来完成。在国外银行软件的研发是独立出来的,由专门的软件公司来开发完成的,这样更有效地保证了软件的数量和质量,使银行软件更适应市场的需要。人才总量不足,结构不合理是导致产业发展基础薄弱的重要因素。目前,我国软件技术人员约有19万人左右,在上海从事大型机银行软件开发的人员不过1000人左右,而熟悉业务的专业开发人员则少而更少。银行软件产业发展面临的机遇:我国软件产业处于软件发达国家和周边发展中国家的“夹缝”之中,在发展过程中存在许多亟待解决的问题,但是这并不意味着我国在软件产业这个国际竞争的前沿领域将无所作为。20世纪90年代末期,印度在相对贫瘠的国内经济基础上实现了软件产业的腾飞,在高科技产业和知识经济的核心领域取得了令人瞩目的发展。印度在不具有明显优势的情况下尚且实现了软件产业的跳跃式发展,而我国呢?拥有印度无法比拟的国民经济信息化程度、信息产业规模、国内市场潜力以及综合经济实力,这无疑增强了我国在发展软件产业方面的决心和信心。国家投入巨资,以国家为主导,同时吸收社会各界包括软件企业、高等院校、科研机构、投资机构,甚至跨国公司的资金,直接组建实体,从事软件核心产品和关键技术的研制、开发、生产和销售,在该实体内部形成从研发到产业化的“一条龙”,解决我国目前存在的研发和产业化脱节的“痼疾”。中国加入WTO后,国内商业银行别无选择,只有按照国际标准对自身的发展战略、管理体制、营销机制、产品和服务、技术与人才等进行全方位、大幅度、深层次的改造和升级,实现高层次的经营国际化。国外银行大量涌入,它们带来竞争的同时也带来了了先进的技术和管理机制,把握这个良好的时机,引进和吸收国外成熟的软件开发技术及其相关的管理。培养国内的技术人员,组织研发力量,是国内的银行软件能尽快跟上国际金融业发展的必经之路。1.1.2 银行软件的复用必要性60年代的“软件危机”使程序设计人员明白难于维护的软件成本是极其高昂的,当软件的规模不断扩大时,这种软件的综合成本可以说是没有人能负担的,并且即使投入了高昂的资金也难以得到可靠的产品。至今为止,软件开发仍存在着以下困难: 软件开发的成本太高 软件开发的周期难以计划,常常不能按期交工 软件开发人员缺少专业领域的知识,难以与用户深入交流 软件隐含的错误难以监测 软件缺少操作性而软件复用的思想是解决这一问题的根本方法。软件复用一直被视为改善软件工程的重要手段,它可以复用以前的代码或组件,来提高生产率,改善产品的质量并提高软件开发速度。更高的质量:随着对软件的了解日益增加,客户越来越关注软件是否经过反复验证,采用的技术和平台是否成熟、安全、软件公司的开发实力等。更短的开发周期:信息技术更新换代的速度不断加快,如果一个项目开发的周期太长,很难保证在交货时,以前对技术和平台的评估还继续有效.更低的成本:企业衡量软件的成本是全部拥有成本(TCO),包括购买、培训、使用、升级和维护等。反过来,要求软件企业能帮助客户在以上各个环节有效的降低成本。随着金融国际化,面对不同的国家就会有其针对性的业务,而且银行产品越来越多样化,怎样缩短开发周期又能保证软件质量,从而降低软件成本成了银行软件的一个迫切需要解决的问题,软件的复用也成了解决银行软件的开发的重要方法,由于银行业务的特殊性和传统的开发语言的特点,银行软件的复用也就有很多特点。1.1.3 小结金融业国际化,银行要面对不同国家开展业务,业务越来越多元化,功能不断提高,银行软件产品品种也随着丰富起来。怎样能加快银行软件产品的开发,增多产品种类,保证软件质量,已经成为各大银行在竞争中取胜的法宝。面对不同国家开展银行业务时,银行软件的可重复利用性就变的越来越重要。金融业是历史发展比较悠久的产业,它的业务流程已经非常规范化,随着银行的业务范围越来越广泛,金融产品也越来越丰富,银行的软件开发快速和多样化也就变的越来越重要。当面对不同的国家要进行有针对性的业务研发,银行软件产品可重复利用成为了必然。该文介绍的银行软件是应用MVS操作系统在TSO/390等大型机上的进行开发的,作为商业性开发语言的COBOL是银行软件开发的主要语言。这种特殊的开发环境也为银行软件的开发和复用提供了必要的条件。所以银行软件的复用基础也主要来自两个方面: 从业务角度,银行业务的处理流程具有统一化,业务功能模块清晰,从而使软件在业务级的复用成为了可能; 从技术角度,基于COBOL语言开发的银行软件,因为COBOL本身具有很好的复用性,在功能实现上又对功能模块和作业模块进行了划分,使银行的复用成为了可能。软件复用提高了开发速度,最终开发是否成功还是要通过软件质量保证的,银行软件是分布式开发的,而软件的测试工作占了整个开发的65%左右如图1.1.1,软件测试及质量保证是银行软件开发必不可少的部分。图1.1.1 银行软件开发流程图本文主要以银行软件开发的四个基本过程为线索,介绍了银行软件的开发,银行EBS中应用的软件复用技术和软件在开发过程中对变化的控制及软件质量的保证,其中也涉及了在开发过程中人员组织的安排等。1.2 银行业务概述和开发环境的介绍1.2.1 银行业务的处理银行业务的处理是按一天24小时为周期的业务操作流程进行的,每天对数据进行恢复,然后进行每天的银行交易,晚上对所有交易进行处理,处理完后对数据进行备份。而在实际的操作过程,业务是按不同的职能部门来划分的,它主要分为以下几个部门:IMPACES、ALS、RC+、TS、FMS、GRB等部门,它们分别独立执行不同的功能如IMPACES 主要进行个人帐户存;ALS为贷款系统;FMS为帐务管理系统,它们之间又进行交互处理,从而实现业务的整体功能。整个系统的如下图所示:图1.1.2 银行系统结构银行的业务是进行分部式开发的,它们通过之间的接口对数据进行共同的处理。银行业务处理过程共有两个特点: 各种业务是通过与此相关的职能部门处理,它们之间又有关联,每个部门都会有Upload file 和Download file ,这些Handoff File 就成了各个部门的接口,当然这些接口的文件格式是统一的。 在处理交易时作业是按日期进行划分的,根据对文件处理日期的不同分为Daily Job,Weekly Job和Monthly Job。由于这种对功能的划分,使软件对变化的需求上具有很高的适应性,灵活度也进一步增加。1.2.2 银行开发的环境 银行的开发平台是IBM OS/390大型机,大型机具有稳定、可靠、延展性等特点,软件的开发语言是一商业开发语言COBOL为主要的开发语言,数据的存储也是一文件或DB2来存储的。软件件的开发也是按职能部门分布式开发的,在开发结束后进行整合性测试以保证软件质量。在下面的章节里会对这些系统和开发语言进行进一步的介绍的。1.3 软件的复用和实现工具在银行软件开发的过程中软件复用的概念越来越重要,软件复用已经在软件工程领域被广泛的提及,那么现在软件的复用技术的现状又是怎样的呢?在下面会对软件复用的发展做大致的介绍。1.3.1 软件复用概念的引出复用的概念的第一次引入是在1968年NATO(北大西洋公约组织)软件工程会议上,Mcllroy在论文“大量生产的软件构件”(Mass Product Software Components)中。NATO在其软件复用的指导标准中对软件复用的定义是“复用(Reuse)是指在一个新的语境中(同一系统的其他地方或另一个系统中)使用已有的软件成份”。一般认为软件复用是指为了复用目的而设计的软件。并非所有在软件开发中发生的重复使用的行为都称得上软件复用,重复使用的行为可能发生在三个维上: 时间维:使用以前的软件版本作为新版本的基础,加入新功能,适应新需求,即软件维护(适应性维护)。 平台维:以某平台上的软件为基础,修改其和平台相关的部分,使其运行于新平台,即软件移植。 应用维:将某软件(或其中的构件)用于其他应用系统中,新系统具有不同功能和用途,即真正的软件复用。软件复用是在软件开发中避免重复劳动的解决方案,其出发点是应用系统的开发不再采用一切“从零开始”的模式,而是以已有的工作为基础,充分利用过去应用系统开发中积累的知识和经验如:需求分析结果、设计方案、源代码、测试计划及测试用例等,从而将开发的重点集中于应用的特有构成成分。通过软件复用,在应用系统开发中可以充分利用已有的开发成果,消除了在分析、设计、编码、测试等方面的许多重复劳动,从而提高了软件开发的效率;同时通过复用高质量的已有开发成果,避免了重新开发可能引起的错误,提高了软件质量。1.4 本文研究基础 本文的研究基于花旗银行GREECE项目的开发,鉴于花旗银行在针对不同国家进行业务升级的开发和管理已经发展成熟,因此本课题的研究重点是希腊(GREECE)业务升级(EBS)的开发过程,主要内容是GREECE EBS项目的四个过程RND、SIT、UAT和PAT,在RND下按业务划分的功能模块的实现,ChangeMan、OPC等工具对需求变化的开发管理和SIT、UAT等测试环节对软件质量的保证,结合软件工程中软件配置管理和软件测试的理论从该项目中发掘合理有效的软件复用技术,研究分布式开发的集成测试方法。1.5 本文的研究目标和主要工作 本文的主要目标是通过国外银行软件开发的研究,希望能发现对银行或国内的软件行业来说更加成熟的软件开发和管理机制,使软件工程的管理和测试理论更加具体和丰富,软件工程在银行软件这一具体领域中有更生动的应用。 功能模块的划分对软件复用的实现,软件需求变化的管理即ChangeMan对软件复用的实现和针对软件需求变化的开发管理,自动处理从开发环境到测试环境中软件产品的变化。 分布式开发的运行计划与控制OPC(operating planning & control), 运行计划的制定和控制,在SIT或UAT长期计划LTP(Long Term Plan)中作业的核查,现行计划CP(Current Plan)是对长期计划中批作业的截取,对LTP和CP 中作业间的依赖关系的核查并怎样有效的跟踪出错作业等OPC的一般应用,及介绍一下在开发期间为保证项目的开发进程,它的人员安排和管理工作,SIT、UAT 的测试环境下的责任到人的制度和责任等级,如主要开发人员(PRIMARY)、一级后备人员(BACKUP)和二级后备人员(SECOND BACKUP)的保证,并对人员的工作效能进行统计,为公司的软件开发资源和开发能力做正确的评估。1.6 本文的组织第二章介绍银行软件的开发语言的特点和作业运行的环境,并介绍了一般EBS的开发流程;第三章中在项目开发中银行软件的复用,针对软件开发的两个部分的复用方法和管理过程;第四章介绍了在保证软件复用的同时怎样提高软件质量;第五章则对银行软件进行了进一步探讨。第2章 银行软件的开发 GREECE EBS 项目是以COBOL为主要开发语言的,最底层的功能模块是通过它来实现的,这些功能模块是实现复用的基础,本章从复用的角度介绍COBOL及它的结构化编程。2.1 银行软件开发语言 COBOL编程语言、FORTRIN 和Algol称为第三代编程语言。COBOL迅速成为著名的编程语言,不仅因为它使编程人员能编写通用商用应用程序,而且(也许更加重要的是)COBOL语言自成文档。COBOL语言的创始人认为编程人员是商业人员,而不是工程师或科学家,这些编程人员更加熟悉商业,是商业专家而不是计算机专家。COBOL提供了巨大的技术资源,满足了迅速扩张的IT产业需求。 对于业务很成熟的领域,应用COBOL本身就就有很强的可重复利用性,因为它是根据业务功能编写的。70年代初,IT预算狂升,为了减少应用程序开发成本,改进程序的维护方式,COBOL也经历了一场结构化的革命,程序用结构化格式设计应用程序,编写代码和测试系统更加有效,将程序功能分解成各个模块可以将高维护功能与其它功能分开,从而大大减少系统维护工作。 银行软件应用COBOL语言也是因为它是商业化的语言,高度清晰与结构化设计概念的组合,使系统的维护更加方便、更经济。当然这种成功加强了程序的复用性,据IT业界统计,大多数IT管理员希望系统寿命为6-11年,由于结构化的COBOL的有效性和易于维护,许多旧的程序至今仍在运行,“千年虫”问题出现时,这些60、70年代编写的程序根本无法预料会进入本世纪末,恰恰这一点就更好的证明COBOL的编写程序具有更好的可复用性和可维护性。2.1.1 COBOL 开发语言的介绍 COBOL程序分为四个大部(Division),很容易从源代码中的部标题看出.每个部的内容构成程序的组成块.通过检查各个部,可以了解程序的结构元素。 标识部标识部是COBOL程序的开始,是必要元素,表示了程序及其他信息,标识部非常有用,阅读几百个程序和几千行代码时,知道程序的某些信息总能在程序开头找到非常方便。如果要研究传统代码,则可以看看同一编程人员所编程序中采用的编程模式. 环境部环境部指定程序中与特定计算机或操作系统相关的方面。如果程序不需要任何环境部提供的项目,则可以省略环境部。 数据部COBOL要求程序数据部中定义所有程序引用的数据,如文件记录、变量、表格和包表。数据项的定义包括名称,特征与其他数据项的关系。数据组成有一定的层次结构,有一定意义的数据就可以更容易引用,而且对同一段数据可以不同的格式重新定义和引用。 过程部 过程部是COBOL程序的最后一个部分,过程部包括COBOL程序运行时要执行的所有语句。COBOL程序前三个部定义程序使用的数据和环境,而过程部则包含对数据进行操作的程序逻辑。如图2.1.1所示: 图2.1.1 COBOL 程序结构图COBOL由这四个组成部分组成,使整个程序更加清晰,更加易读。而要使用COBOL编写的每个功能具有更有效的可重复利用性,程序更加健康,结构化编程本身就是生成可读、可靠、可维护系统的重要工具。2.1.2 COBOL语言的结构化结构化编程是由荷兰Eindhoven大学的Edger W.Dijkstra教授提出,他是结构化编程之父。结构化编程理论认为在进行结构化编程设计时,将整个程序分成模块,每个模块表示一种功能。 结构图中每个框表示程序的一个模块,模块表示子程序,框顶上有一表示子程序名。所有其他模块都是COBOL过程部中的段。结构图自顶向下设计,将每个模块划分成组件功能。设计过程一直继续,直到每个模块表示一种独立功能。 模块设计 设计结构图类似于规划一个程序,首先要将大框架放好,然后再填上细节。图2.1.2显示了结构图的第一个阶段。图2.1.2 主控制模块 顶层模块表示整个程序,是COBOL程序中的第一段。这个模块调用下一层的主模块,直至处理所有记录。 顶层模块及其调用的主要模块后,就可以加进主模块工作前后需要处理的所有其他模块。图2.1.3可以看到主模块之后增加了打印总和模块。图2.1.3 前两层的所有模块 这种结构可以设计几乎所有商业程序。程序顶层模块执行下一层的主模块,直到处理全部记录或记录集。 如何对高层模块要完成的每一个功能建立一个子程序模块例如图2.1.4描述,要格式报表头,格式报表头模块只要调用取得日期和时间的子程序。图2.1.4 格式报表模块及其子程序模块 因此程序前两层相对容易设计,最底层的模块都是不再需要子程序模块的工作模块时,即可停止。 模块编号模块的编号是为了更清晰的显示它们之间的调用关系。这些模块号放在COBOL程序过程段名中,段按模块号顺序放置,对每个模块编制COBOL段时,段名是模块号加上模块名。图2.1.5 显示了结构图中模块编号的系统。图 2.1.5 程序的模块编号图这些模块号放在COBOL程序过程部的段名中,段按模块号顺序放置。这种编号系统的结果是大多数被调用段紧跟后面,从而减少阅读程序时翻页或翻屏的次数。三个关键设计原则 一个功能一个模块每个模块应该表示一个独立的功能。生成结构图时,很可能加进“进行整理工作”或“进行终止工作”的一般性模块名,等后面再定义其内容。 一个模块一个段人们普遍认为程序设计的每一个模块要编制成COBOL过程部中的一个段。将这个原则扩展成不断设计模块,直到每个模块能编制成一个COBOL段,而不必用Perform语句。如果不作这个限定,则可以在一个COBOL段中编写一个大型多功能模块,这不符合结构化编程的原则。 被调用模块在功能上从属于调用模块 每个被调用模块在功能上从属于调用模块,即每个被调用模块应为调用模块起一定作用。某种意义上讲,程序的设计取决于所用语言的功能。COBOL语言的要求会影响程序的设计,因为程序必须按COBOL所允许的方式编码。三个关键编程原则三个关键的编程原则可以大大改进程序: 复用代码 代码独立性 代码清晰性复用代码在新程序中复用旧代码时,生产率大大提高,因为可以减少输入代码的时间,编译和调试的时间以及测试的时间(缺陷更少)。一般来说,在新程序中复用旧代码时有三种方法: 每个新程序都从具有类似功能的旧程序开始,复制旧代码,然后删除不要的行,修改需要的行,这样可以方便的建立新程序的前面几百行,包括数程序四个部分的代码。 从旧程序中复制新办程序需要的类似功能。例如,程序在启动时装入表格,后面要查找表格,则可以从另一程序中复制这些部分。这包括数据部的代码和过程部中的代码。复制代码后,进行必要的修改。 用Copy成员复用代码.这在数据部中很有用,Copy成员可以用于所有文件中的记录描述项,如标题行,日期字段和时间字段.相反,在过程部中使用Copy成员则非常麻烦.得不偿失,不如从另一程序复制代码后,进行必要的修改.在新程序中复制旧代码时,通常新程序有一大半是从旧程序中来的.当然,这可以大大提高生产率.但是要得到这个好处,就要开发独立而易于理解的模块,以使模块更可复用.代码独立性 每个模块具有独立性。如果一切正确,应当能不看到程序其他段而读懂这段代码,从而便于阅读,测试和调试程序。 实际中,许多模块都依赖其他模块的处理的结果。例如,一个模块可能用到另一模块设置的开关值。尽管每个模块不可能完全独立于其他模块,但应当尽量实现模块的独立性。 模块的独立性的另一个方面是模块可能有自己的专用数据。移动和复用时不必考虑哪个数据属于这个模块。代码清晰性 如果模块编码清晰,则易于阅读、理解和新程序中复用。前面已经介绍了使模块编码清晰的方法。一种使模块编码清晰的方法是避免编码技巧隐藏模块的工作.另一种编写清晰代码的方法是简化高层模块的代码。一个有效的方法是将计算记录数和汇总等简单子功能放到适用于放置这些子功能的低层模块中。这样特别适用于确定哪个子功能属于哪类模块的规定。2.1.3 软件的数据管理 文件就是在程序内存以外的一组记录,记录是数据字段的集合,许多情况下,文件的所有记录有相同的内部结构,只是记录中实际数据不同,但有时,文件包含不同类型的记录,记录的内部结构不同。处理文件时,一次处理一个记录,对记录的读取,写入或改写和删除。读取记录就是想程序提供记录的数据,写入就是将程序处理过的数据移到文件中。 在COBOL首次推出时,唯一的文件存储类型就是磁带,纸带和穿孔卡。这些媒介都是从前到后读取和写入,只能从文件的开头到文件的末尾,而不能倒过来。但随着海量存储媒介的出现,随机访问记录的功能大大改变了文件的处理。 如今有三种不同组织的文件类型:顺序、关系和索引。文件的组织是文件的固定属性,在文件生成时指定。 顺序文件 顺序文件的记录从头到尾按顺序列出,只能按顺序访问其中的记录,即从第一个记录开始,按顺序前进。记录可以改写,但新记录要与替换的记录等长。现有的记录之间不能删除记录和插入新记录,只能在末尾增加新记录。 相对文件相对文件记录按逻辑记录号引用,也称为相对关键字或相对记录号。在这钟文件组织中,记录可以通过指定相对关键字按任意顺序处理。文件不必包含每个关键字的记录。记录可以根据需要改写和删除,该记录可以加进任何地方,而未必是文件末尾。操作系统知道指定关键字对应记录是否存在,因此不会读取没有写入的记录或写入已经存在的记录。 索引文件索引文件的记录按字母数字关键字引用,这个值在每次将记录写入文件时指定。对于这类文件,系统保持一个索引,表格关键字和关键字对应的记录位置,索引文件是现代数据库系统的基础。就象在相对文件中一样,索引文件中的记录可以随机访问,可以随时改写和删除,可以在相邻记录间指定一个关键字,从而插入记录。 索引文件可以有多个索引。第一个索引称为主索引,主索引中的关键字必须唯一,其他索引称为替换索引,它可以重复关键字值,可以定义记录的任何索引访问索引文件中的记录。在文件增加记录时,所有文件的索引都更新成包括新的关键值。访问方式文件的访问方式是处理文件中记录顺序。访问方式不是文件本身的属性,而是COBOL程序中如何使用文件的决定。文件的访问方式有三种: 顺序访问 :指从头到尾访问记录。顺序组织的文件只能顺序访问,相对和索引文件也可以顺序访问,因为其记录具有顺序。对于相对文件,顺序是整数记录号关键字的顺序,对索引文件,顺序是某个索引的字母数字关键字顺序。 随机访问 :指按随机顺序程序处理记录.相对和索引文件都支持随机访问.在这两种文件中,要先指定关键字值在读取和写入记录. 动态访问 :指在文件中同时利用顺序和随机处理,在程序执行期间在两种方式间来回切换.只有相对和索引文件支持动态访问. 由特定的软件对文件系统进行数据管理,文件系统把数据组织成互相独立的数据文件,利用“按文件名访问,按记录进行存取”的管理技术,可以对文件进行修改,插入和删除的操作。文件系统实现了记录内的结构性,但整体无结构。程序与数据之间由文件系统提供存取方法进行转换,使应用程序与数据之间有了一定的独立性,程序员可以不必过多的考虑物理细节,将精力集中于算法。而且数据在存储上的改变不一定反映在程序上,大大节省了维护程序的工作量。2.2 功能模块的组装和控制 大部分传统COBOL应用程序的宿主环境是IBM或IBM兼容的大型机系统。MVS操作系统在各个虚拟存储地址管理不同任务。MVS还负责管理连接该结构的所有硬件包括内存、磁盘、驱动器、打印机、通信控制器终端等等。 MVS通过执行作业(JOB)来管理任务,作业是用户在一次算题或完成某项任务过程中要求计算机系统所做工作的集合,也就是按顺序执行的一系列任务。如COBOL应用程序或FORTAN 应用程序等,不管哪种作业,都要作业控制语言JCL启动和管理。 计算机系统为了完成一个作业,除了需要用户提供源程序外,还需要用户提供一些与源程序相关的资料及控制信息,如源程序采用的语言形式;源程序和相关数据如何存放及所存放的设备;程序在运行过程中出现故障应如何处理;程序运行结果的存放等。这是作业的控制问题,在MVS操作系统中作业的运行控制有两种形式,一种是直接控制方式,用在交互式的环境中;另一种是自动控制方式,用在批处理环境下。直接控制方式,采用人-机会话的方式来控制作业的运行。终端用户通过终端设备打入操作命令,系统通过命令解释程序,执行该命令指定的操作,之后,控制又回转到终端,此时,用户根据上一命令的执行情况,又可以打入下一条命令,如此反复,直至完成一个作业为止。显而易见在这种直接控制方式下,用户可以直接干预作业中每个作业步的运行。自动控制方式,用于批处理作业。用户通过系统提供的作业控制语言书写操作说明书,将该作业及其操作说明书提交给系统,当它被调度程序选中后,系统通过逐条解释执行说明书中的作业控制命令实现对整个作业运行控制,直到遇到“结束”命令停止作业的执行。2.2.1 作业控制语言(JCL)的介绍 作业控制语言JCL(JOB CONTROL LANGUAGE )是操作系统与用户之间的接口,它不同于一般编程语言。用户通过相应语句通知操作系统处理下列一些内容: 应用程序或过程的名字; 应用程序所需要的数据文件和该文件所在位置; 处理该作业所需要的硬件设备; 为操作系统提供输入输出信息;因此,利用JCL用户可以按自己的意图来控制作业的执行。MVS系统中用户的作业可以是单步作业也可以是多步作业,单步作业是指一个作业中只有一个作业步;多步作业是指在一个作业中有多个作业步。无论哪一种作业都必须包含三个基本语句,它们分别是作业语句(JOB)、执行语句(EXEC)、数据定义语句(DD)。如多步作业语句: 图2.1.6 JCL多步作业作业流 在批处理系统中,通常把一批作业或按用户提交的先后次序或按某种优先原则,依次安置在相应的输入装置上,在系统的控制下,它们依次被输入到后援存储器中,这样一下就形成了一个作业流。在实际的应用中OPC这个集成工具会定义根据业务要求定义作业流的。 JCL在传统应用程序中依然有价值,原因有两个:控制和可重复性。传统系统通常具有下列特征: 它们通常是大型复杂系统,具有一定的批处理要求。 它们包含几百个程序,文件和报表。 它们敏感的依赖于其它程序与文件和严格的时间计划。 它们管理或控制公司的重要数据资产。 这种应用程序的控制不仅重要,而且绝对必须。JCL提供了实现传统应用程序控制的机制.利用JCL可以组织应用程序的批处理程序,确保正确的执行顺序,根据其他程序的结构执行条件程序和实现其他基本整理功能。 传统应用程序的另一个特征是它们通常是企业中的核心应用程序。这些应用程序必须每天及时执行,并保证结果可以预测。利用JCL可以通过自动重复任务来满足这些要求,JCL能减少人工错误,特别是对某些作业计划系统控制JCL。JCL与COBOLJCL与COBOL程序之间的交互发生在程序层和文件层。程序层交互 COBOL程序用PROGRAM-ID或ENTRY POINT名称标识自己。操作系统在程序编译,连接和分类之后能够知道程序的ID或入口点名称,JCL通过引用程序的分类名称执行程序。 JCL用EXEC语句标识要执行的程序名。这个程序可以是任何可执行程序,如COBOL程序或系统实用程序,EXEC语句可以通过PARM字段在程序启动时向其传递参数。在COBOL LINKAGE SECTION 01 PARM. 03 PARM-LENGTH PIC 9(4) COMP. 03 PARM-DATA PIC X(100).PARM-LENGTH字段表示JCL的PARM语句中编码的字符数,这些字符放在PARM-DATA字段中。文件层交互COBOL程序在输入/输出节中定义文件。COBOL SELECT语句定义程序作用的文件。通过SELECT语句的ASSIGN TO从句,可以标识宿主环境中与文件的连接。COBOL程序并不知道实际的文件名,只是引用文件的外部引用名,例如:SELECT ACCTMAST ASSIGN TO SYS001-UR-ACCTMAST.这个语句将ACCTMAST文件定义给SYS001名,它再与文件实际名称相关联。作业流中每一步都要用数据定义语句(DD)定义该步骤需要访问的数据。DD语句用ASSIGN TO定义外部文件名。EXEC 语句用于标识一个作业步或一个过程的开始,指定本作业所要执行的程序或过程及如何处理,一个作业最多可以有255个作业步。/作业步名 EXEC 位置参数, 关键字参数 位置参数有PGM和PRC,PGM参数用于指明作业步所要运行的程序名。而PROC参数指明了所要运行的过程名,下面就详细介绍一下PRC & PRM. 2.2.2 PRC &PRM 的介绍 JCL中定义的过程与其它高级语言中的过程概念是一致的,它是一段预先编译好的作业控制语句集合,它可以被频繁调用。在JCL中有两类过程一类是流内过程(IN-STREAM PROCEDURE),一类是编目过程(CATALOGED PROCEDURE)。 流内过程是指放置在作业输入流内的过程。 图 2.1.7 流内过程在实际的应用中,流内过程只用于测试阶段,一旦流内过程调试通过,即可对其编目,使其成为编目过程。在指定的过程库中进行注册(CATALOG)的过程称为编目过程。这个过程可以是分区数据集(PDS)或扩展分区数据集(PDSE),通常系统过程被CATALOG在系统过程库中,用户过程被编目在用户库中。一般调用一个编目过程时,系统提供的是一个编目过程的拷贝,因此编目过程可以被几个作业调用。/jobnameJOB /stepnameEXEC PROCEDURE3-PROCEDURES3- OPC的CP的设定就是调用的一个编目过程。PRC过程的调用 过程的调用可以是流内过程的调用,也可以是编目过程的调用,其调用方法有下诉两种形式: /作业步名EXECPROC=过程名符号参数或 /作业步名EXEC过程名符号参数 当调用一个过程时,系统会以输入流,用户库,系统库顺序检索所调用的过程。如果所谓调用的过程是流内过程,则必须把流内过程放置在调用它的EXEC语句之前。 如果调用的过程被编目在用户库中,系统从JCLLIB语句确定的用户库进行检索。因此,若调用的过程是用户库中的过程时,要用JCLLIB语句来指明过程所在的用户库。过程的修改当某一个JOB需要调用过程时,往往要通过某种方法,对过程中的参数PRM进行修改或覆盖,这是因为一个标准过程并不能包括各种用户的需要,所以为了满足用户的应用要求,系统允许用户在调用过程时,对其使用覆盖,增加,置换的方法进行修改,也就是通过对PRM的修改来改变过程,修改的方式有如下三种: 符号参数的初值及符号参数的替换符号参数的引入是为了使过程更加灵活,符号参数是由&符
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年合肥市第二人民医院高层次人才引进考前自测高频考点模拟试题及参考答案详解1套
- 2025年河北唐山市丰润区选聘第二批事业编制医疗技术人员13名模拟试卷附答案详解(完整版)
- 2025吉林长春市直事业单位招聘高层次人才17人(4号)模拟试卷完整答案详解
- 2025广西玉林市北流市清湾镇便民服务中心招聘公益性岗位考前自测高频考点模拟试题及完整答案详解
- 2025福建莆田市数字集团有限公司公开选聘11名专业人才模拟试卷及答案详解(名校卷)
- 2025广西南宁隆安县南圩镇杨湾卫生院医学影像专业招聘1人模拟试卷附答案详解
- 2025甘肃张掖市民乐县招聘教师10人模拟试卷及答案详解(全优)
- 2025年芜湖市残疾人综合服务中心编外工作人员招聘2人考前自测高频考点模拟试题及答案详解参考
- 2025广东省第二中医院招聘内分泌科医师1人模拟试卷及答案详解(易错题)
- 2025贵州黔西南州人民医院高层次人才引进58人考前自测高频考点模拟试题(含答案详解)
- 农场建设农机合作社实施方案
- 兄弟自动切线平缝机S-7000DD中文使用说明书
- 4.3平面镜成像(练习)原卷版
- MOOC 英语话中华-山东大学 中国大学慕课答案
- SCAN 反恐审核要求清单
- 综合楼监理规划
- 行政执法监督工作实施方案
- 人行桥、机耕桥施工
- Unit+4+Natural+Disasters+Workbook+China+to+the+rescue+课件-【知识精讲精研】高一上学期英语人教版(2019)必修第一册
- 疑难病历随访登记本(医技科)
- 译林版九年级英语上册Unit 4 Task 示范公开课教学课件
评论
0/150
提交评论