4GL语言开发原则及规范--简化版
名词解释题
第1章名词解释1、软件开发工具:在高级程序设计语言(第三代语言)的基础上,为提高软件开发的质量和效率,从规划、分析、设计、测试、成文和管理各阶段,对软件开发者提供各种不同程度帮助(支持)的一类广泛的软件。
2、第一代语言:即机器语言,是用0、1组成的二进制字符串书写的程序,用纸带等光电设备或通过控制台上的扳键送入机器,得以存储和执行。
3、第四代语言(4GL):第四代语言的原意是非过程化的程序设计语言。
针对以处理过程为中心的第三代语言,它希望通过某些标准处理过程的自动生成,使用户可以只要求做什么,而把具体的执行步骤的安排交给软件自动处理。
4、CASE工具:CASE工具指“计算机辅助软件工程”或“计算机辅助系统工程”,它的基本思想与软件开发工具完全一致,即应用计算机自身处理信息的巨大能力,帮助人们开发复杂的软件或应用系统。
5、所见即所得:“所见即所得”原则力图实现编程工作的可视化,即随时可以看到结果,程序的调整与后果的调整同步进行。
6、需求分析:从用户提出的初始要求出发,经过大量的调查研究,抽象出应用领域中实际的信息需求,设计出在计算机系统内外的、合理的信息流程,并规定软件的功能与性能要求,最后形成严格的、明确的、可供实际开发使用的“软件功能说明书”,这个阶段称为需求分析。
7、总体设计:根据软件功能说明书的要求,完成软件的总体设计,包括整个软件的结构设计、公用数据库文件或数据库的设计、各部分的连接方式及信息交换的标准等。
8、结构设计:所谓结构设计是把软件划分成若干个模块,指定每个模块的功能要求以及它们之间的相互关系。
9、模块测试:根据整体设计时制定的各个模块的设计任务书,对程序员完成的模块进行验收,看它们是否实现了所要求的功能和性能指标。
10、总体测试:每个模块都达到了设计任务书的要求后,还要测试整个系统是否达到了预期的目标,另外还要检查完成的软件与编写的文档是否一致,这个工作成为总体测试。
11、设计工具:设计工具是最具体的,它是指在实现阶段对人们提供帮助的工具,是最直接帮助人们编写与调试软件的工具。
几种常见的软件开发模型分析
⼏种常见的软件开发模型分析概述软件开发模型(Software Development Model)是指软件开发全部过程、活动和任务的结构框架。
软件开发包括需求、设计、编码、测试和维护阶段。
软件开发模型能清晰、直观地表达软件开发全过程,明确规定了要完成的主要活动和任务,⽤来作为软件项⽬⼯作的基础。
对于不同的软件系统,可以采⽤不同的开发⽅法、使⽤不同的程序设计语⾔以及各种不同技能的⼈员参与⼯作、运⽤不同的管理⽅法和⼿段等,以及允许采⽤不同的软件⼯具和不同的软件⼯程环境。
最早出现的软件开发模型是1970年W·Royce提出的瀑布模型。
该模型给出了固定的顺序,将⽣存期活动从上⼀个阶段向下⼀个阶段逐级过渡,如同流⽔下泻,最终得到所开发的软件产品,投⼊使⽤。
但计算拓⼴到统计分析、商业事务等领域时,⼤多数程序采⽤⾼级语⾔(如FORTRAN、COBOL等)编写。
瀑布模式模型也存在着缺乏灵活性、⽆法通过并发活动澄清本来不够确切的需求等缺点。
常见的软件开发模型还有演化模型、螺旋模型、喷泉模型、智能模型等。
典型的开发模型1. 边做边改模型(Build-and-Fix Model);2. 瀑布模型(Waterfall Model);3. 快速原型模型(Rapid Prototype Model);4. 增量模型(Incremental Model);5. 螺旋模型(Spiral Model);6. 演化模型(incremental model);7. 喷泉模型(fountain model);8. 智能模型(四代技术(4GL));9. 混合模型(hybrid model)1. 边做边改模型(Build-and-Fix Model)遗憾的是,许多产品都是使⽤"边做边改"模型来开发的。
在这种模型中,既没有规格说明,也没有经过设计,软件随着客户的需要⼀次⼜⼀次地不断被修改. 在这个模型中,开发⼈员拿到项⽬⽴即根据需求编写程序,调试通过后⽣成软件的第⼀个版本。
INFORMIX-4GL教程(简体)
第一章关联式资料模型1-1 前言传统上,企业公司的数据处理,大都是按照部门或应用加以分类。
因此,早期企业公司的计算机大多是为了处理各个部门或者应用系统的大量数据而装置的;例如一家汽车制迼公司,可能有产品制造部门、会计部门;而一家餐馆,可以有编制顾客账单之应用系统、维护应收帐款之档案系统等。
而每一个部门或每一种应用系统原则上都有它自己的主要档案,而各个部门或应用系统都有自己所需的数据,和更新档案及提供信息所需的程序。
利用这种数据处理方式来存取数据,最大的好处是程序的设计方式相当单纯,因为每个档案系统均针对该部门或应用系统的特殊处理要求来设计,因此所设计出来的系统较容易满足各部门或应用系统之要求。
但是相随衍生的问题却不少。
应用系统一应用程序一←→档案系统一(或部门一)应用系统二应用程序二←→档案系统二(或部门二)应用系统N应用程序N←→档案系统N(或部门N)1-2 传统的数据处理一、数据重复相同的数据域栏位值会重复出现在不同的档案系统上。
例如:在一家公司里,销售员的地址数据、学历数据年龄数据也可能会重复地出现在人事管理部门、会计部门、产品销售部门;须要在这么多的档案中输入、保存及维护这些相同的数据,代价何其昂贵啊!举例来说吧!当某一位销售员的地址数据有所更动时,就必须到所储存地址数据的档案系统中,去更正这些旧有的地址数据,否则就会造成数据的不一致。
二、数据的不完整不同的应用系统间之数据往往关系十分密切。
例如:陈先生向银行办理个人小额货款买了一部卡拉OK,然而因未履约,故其卡拉OK须被取回,并降低了他的个人小额贷款的信用等级。
但陈先生在银行里,也曾办过房屋贷款,假使房屋贷款所对应的信用等级未随之同时更新的话,那就产生混乱了。
然而要维持数据的完整性,就须执行好几个程序来更新数据,此将花费很高的费用。
三、数据的不安全由于企业公司各部门各自为政,公司的数据分散在不同的档案系统上,对于敏感性和机密性较高的数据,无法做有效的集中管理;往往会因某些部门负摃人的管理不善,而让商业间谍有机可乘,从中盗取机密数据。
大学学生餐厅管理信息系统
1 系统规划系统背景随着计算机技术和现代通信技术的发展,人类已经步入数字化和网络化为特征的知识经济时代,人们对各种信息量的需求也逐渐增大。
由于当前学校的规模不断扩大,学生数量不断增加,学生信息量也不断增长,食堂管理工作成为学校各项管理工作的一个重要部分,学校后勤管理工作也日趋繁杂,众多的学生和教工食堂地理位置分散,又要实现统一的协调管理,面对庞大的工作量,如何有效提高食堂管理工作的效率是学校急需解决的问题。
同时,随着我校高速发展以及不断地扩招,我们可以发现由于西校区人数众多,中午时间吃饭人员无法分散,造成食堂窗口大面积拥堵,北村餐饮一条街人山人海,连站着的地方都没有,通常情况是下课以后如果跑的不快的话,往往要等上20多分钟才能顺利就餐。
这一状况不仅造成一些同学在中午临近下课时不能专心听讲,接近半个小时听课效率低下,而且中午时间众多的就餐人员造成了食堂工作人员的高负荷工作,同时失误增加,例如经常出现算错就餐费用的情况,做错饭菜的情况等一系列错误。
为了有效解决以上问题,就不得不借助现代化的管理模式——网络管理模式。
这样不仅提高了工作效率,也避免了以前手工作业的麻烦,从而使得管理者能够准确,有效的管理餐饮。
学校食堂管理信息系统是一个实用并且是与我们的学校生活密切相关的一个管理信息系统;如果能够很好的研究、开发并加以利用,那么就会提高食堂的效益,降低食堂的成本,降低食堂的饭、菜价从而能够给学校的学生带来莫大的利益和好处。
本文首先对学位生食堂管理信息系统进行需求分析,阐述高校食堂管理工作流程,分析高校食堂管理存在的问题并提出如何用管理信息系统的方法来解决存在问题。
信息管理系统(MIS)是一门新兴的、集管理科学、信息科学、系统科学及计算机科学为一体的综合型学科,研究的是信息管理活动的全过程,以便有效地管理信息,提供各类管理决策信息,辅助企业进行现代化管理。
管理信息系统具备数据处理、计划、控制、预测和辅助决策功能,具体作用如以下5点内容:(1)用统一标准处理和提供信息,排除使用前后矛盾的不完善的数据。
INFORMIX-4GL实用手册(四)(1)
Informix-SPL(过程)语法详解Informix数据库用户一般都熟悉的使用SQL语句进行简单的查询和统计,而在Informix-Online的数据库服务器中提供了用结构化查询语言SQL语句和流程控制存储语言SPL创建存储例程,以减少Informix的处理。
存储例程是SQL语句和SPL的集合。
它们存放在数据库中,SQL语句会被分析.优化,在例程的执行中,高速缓存中会有一执行规划,使后续操作的执行速度很快。
而单独的SQL语句只有在执行时才会被优化,并且存储例程可以被不同的开发工具调用(4GL、ESQL/C、POWERBUILDER.DELPHI),在SELECT 语句中也调用过程。
例程调试简单,不必重新编译应有软件包。
在例程创建时Informix查询处理器会分析它,并产生一执行规划,永久存放于SPROCEDURES.SYSPROBODY.和SYSPROPLAN中,其后例程按此规划执行,由于大部分查询处理已经完成,存储例程可以在瞬间执行完毕。
由于存储例程所具有的优越性,它已成为进行Informix数据库核心开发的有力工具,掌握它对Informix的开发人员有积极意义,现将我在实际工作中使用的语法和例子详解于下,疏漏和错误请来信指教。
1.创建和执行例程①.创建例程语法:CRAETEPROCEDURE[OWNER.]PROCEDURE_NAME(参数1参数类型=[DEFAULT],参数2参数类型=[DEFAULT],参数n参数类型=[DEFAULT])RETURNING值1类型,值2类型,值n类型;<......>语句体;ENDRPOCEDURE例程大小不可超过64K,这包括所有的SQL.SPL.空格.跳格符,例程名最多18个字符,并在数据库中唯一存在,语句间用";"分隔,例程只能在当前数据库中创建,例程创建后是一标准执行模板块,可在不同的应有中对其调用,这对开发不同版本的应用将更为便利。
03173软件开发工具-总复习
课程性质本课程是高等教育自学考试“计算机信息管理”专业自学考试计划中,本科阶段的一门专业课程,开发软件能力是本专业学生必备的条件之一,本课程的目的是使学生在学习程序设计的基本知识之后,进一步了解和掌握软件开发的各类工具,从而提高软件开发能力与水平,以适应未来工作的需要。
本课程不是只介绍若干常用的软件开发工具,使学员只是站在一般程序员的角度,而是要从软件开发的组织者的高度,全面地认识与考虑软件开发的过程、组织等问题。
本课程既有一定的理论基础,又有实际上机操作作为背景。
因此。
学生应当结合自己的实践经验,认真从实践提高到理论,建立软件工程与软件开发工具的思想方法。
课程特点理论部分1章,作为导言,概括地介绍软件开发工具的由来,概念,功能,性能,类别与使用环境。
理论部分2-4章,主要介绍了软件工程与程序设计学的基础知识;软件开发工具的有关理论基础知识,包括概念模式,信息库,人机界面,项目管理;软件开发工具各方面的技术状况。
这部分是本课程理论知识的核心部分。
理论部分5-6章,主要介绍了人们在面对具体问题时,是购买现成的工具还是自行开发,以及需要考虑的各个因素;了解软件开发工具技术领域的发展现状和趋势。
实践部分7-8章,介绍Eclipse是什么,历史,用途以及体系结构,详细描述了Eclipse 和JDK安装方法,着重介绍了Eclipse工作台的各个部分及基本功能,详细介绍了Eclipse中的透视图,视图,编辑器。
实践部分9-11章,介绍了MinGW和CDT的概念和安装方法,并着重介绍了使用Eclipse 创建项目,源文件夹,类以及Eclipse重构功能。
最后介绍了Eclipse CDT常用功能:编辑器自定义,定制工作台,格式化代码,生成历史记录。
实践部分12-14章,介绍了版本管理软件CVS的使用,Eclipse插件的开发,最后介绍了Rational Rose建模工具的使用。
基本要求1、系统了解与掌握软件开发过程及其管理工作,深人理解有关的概念与原则,掌握提高软件质量的基本方法与途径。
程序设计语言简史
当一条程序语句能够翻译成多条机器指令代码时,这种语言就称为高级ቤተ መጻሕፍቲ ባይዱ序设计语言。例如FORTRAN、COBOL、BASIC等都是高级程序设计语言。
第三代语言(3GL)是从2GL精炼而来的。2GL侧重于改进语言的逻辑结构,3GL主要是提高了语言的用户友好性。许多常见的语言都是3GL,例如FORTRAN、COBOL、BASIC、C、C++、Visual Basic、Java、C#等,都是典型的3GL。下面,介绍一下这些典型语言的演变过程及其特点。
Java语言是1995年由Sun Microsystems公司发布的,是James Gosling领导的开发小组开发的程序设计语言。最初的名称是Oak,后来命名为Java。Java源程序经过编译生成可以运行在Java虚拟机上的字节码,从而实现Write Once,Run Anywhere的跨平台运行目标。Java语言的主要特点包括:纯粹的面向对象语言、跨平台、编译-解释执行、支持多线程、支持分布式应用等。Java也是一种源代码开放软件。目前,Java语言是一种非常流行的程序设计语言,在许多领域都有广泛的应用。据TIOBE公司统计,Java语言在程序设计语言排行榜中持续多年名列榜首。
机器语言很快被称为第二代语言(2GL)的汇编语言所代替。汇编语言(assembly language)是指用符号代替数字机器代码指令和其他常量进行编程的程序设计语言。汇编语言通常由计算机硬件制造商定义,使用的符号是有助于程序设计人员记忆的机器代码的缩写。被称为汇编程序的实用工具把汇编语言符号翻译成目标计算机的机器指令代码。这种语言依然是低级程序设计语言,因为一条汇编语言编写的语句只能翻译成一条机器指令代码。
目前,有关第五代语言(5GL)的话题正处于讨论中。一般地认为,5GL关注的是约束条件和逻辑,而不是如何去实现算法。例如,对于一个给定的问题,5GL侧重于写出解决这种问题需要的条件和约束,而不是关注如何编写算法来解决这种问题。5GL主要用于解决人工智能领域中的问题
4GL语言开发原则及规范--简化版
4GL语言开发原则及规范中科软件股份有限公司2002年04月27日目录1..................................................................... 编码规范1命名规范 (1)对象命名 (1)常量和变量命名 (5)注释规范 (7)程序文件部分的注释 (8)函数部分的注释 (9)函数(过程)程序的增、删、改的注释说明约定 (11)函数体内部的代码段修改注释 (12)函数体内部的代码段说明约定 (13)书写规范 (13)基本原则 (13)保留字引用规则 (14)LET语句 (14)IF语句 (15)DEFINE语句 (15)CALL语句 (16)函数体内部组织 (16)注意事项 (18)1编码规范1.1命名规范1.1.1对象命名1.1.1.1数据库命名规范数据库名长度:不超过INFORMIX规定长度(十八位);采用英文形式,规则如下:数据库名由两部分组成:系统名+DB;举例:财产保险业务处理系统的数据库命名为:PrpInsDB系统名由英文单词构成,每个单词首字母大写,单词可采取缩写形式;附表提供的词根表作为构词的唯一依据。
本小节规范适用于各种语言版本的系统。
1.1.1.2数据库表命名规范数据库表名长度:不超过INFORMIX规定长度(十八位);采用英文和“_”组成形式,规则如下:数据库表名由三部分组成:系统名+业务类型+表的英文名(+“_”+子对象名),业务类型用1位大写字母表示,如承保业务为C、批改业务为P、理赔业务为L、收付费业务的数据表为J、通用代码为D;举例:财产保险承保保单基本信息表命名为:PrpCmain;货物运输保险保单信息表(继承了保单基本信息):PrpCmain_Cargo。
业务类型采用附表提供的词根表中规定的字母;表名由英文单词构成,保险类别和业务类型的首字母大写,表的英文名采取小写形式,单词可采取缩写形式;当一个对象继承主对象时,体现在数据表上则使用“_”分割;举例: PrpCmain_Cargo:货物运输保险保单信息表,继承了保单基本信息。
《软件工程》期末复习题
B面向对象(Object Oriented)方法是将现实世界的事物以对象的方式()到计算机世界的方法。
a对应 b 映射 c 反映 d 反射D盒图也称为()或Chapin图。
这种表达方式取消了流程线,它强迫程序员以结构化方式思考和解决问题。
流程图框图判定表N-S图A面向数据的设计方法就是根据问题的数据结构定义一组映射,把问题的数据结构转换为问题解的()结构。
程序数据逻辑物理B人机界面的风格大致经过了()代的演变。
三四五六D以下不属于白盒测试技术的是()逻辑覆盖基本路径测试循环覆盖测试等价类划分A为改正软件系统中潜藏的错误而进行的维护活动称为()。
纠错性维护适应性维护改善性维护预防性维护D软件的发展经历了()个发展阶段。
一二三四B需求分析的任务不包括()。
问题分析系统设计需求描述需求评审。
C一个软件的宽度是指其控制的()。
模块数层数跨度厚度A当模块中包含复杂的条件组合,只有()能够清晰地表达出各种动作之间的对应关系。
判定表和判定树盒图流程图关系图D以下不属于逻辑覆盖的是()。
语句覆盖判定覆盖条件覆盖基本路径B为适应软件运行环境的变化而修改软件的活动称为()。
纠错性维护适应性维护改善性维护预防性维护A从事物的组成部件及每个部件的属性、功能来认识事物。
这种方法被称为()的方法。
A、面向对象B、面向数据C、面向过程D、面向属性B判定表由四部分组成:左上部列出()。
条件组合与动作之间的对应关系所有条件所有可能的动作可能的条件组合D根据用户在软件使用过程中提出的建设性意见而进行的维护活动称为()。
纠错性维护适应性维护改善性维护预防性维护B可行性研究的步骤中不包括()的内容。
复查初步分析结果。
研究现有的系统。
导出新系统高层逻辑模型。
建立新系统的物理模型解法。
A将软件组装成系统的一种测试技术叫()。
集成测试单元测试集合测试系统测试C技术可行性是可行性研究的关键,其主要内容一般不包括()。
A.风险分析资源分析人员分析技术分析A软件工程中的各种方法是完成软件工程项目的技术手段,它们支持软件工程的()阶段。
Informix-4gl学习资料 informix-4gl
第一章 Informix环境变量的设定一.环境范例:二.环境范例:.profile (环境变量的等号前后不得为空格)stty -istrip -isig (防止用户非法中断)INFORMIXDIR=/usr/informixINFORMIXSERVER=ld420501_tcpONCONFIG=onconfig.lifePATH=$PATH:$INFORMIXDIR/bin:$HOME/bin:$HOME/form:$HOME/prg DBPATH=/u/cbps/form:/u/cbps/binFORMDIR=/u/cbps/formDBDATE=Y4MD/LANG=english_us.8859DBLANG=english_us.8859DBNLS=2TERMCAP=/usr/informix/etc/termcapTERM=vt100export INFORMIXDIR INFORMIXSERVER ONCONFIG PATH DBPATH FORMDIR DBDATE LANGexport DBLANG DBNLS TERMCAP TERM环境变量的设置文件中还可加入其它Shell语句第二章 Informix产品线及DB应用开发工具简介一.Informix(英孚美)产品线简介(三大类):1.数据库服务器(Database Server):①.ODS (Informix-Online Dynemic Server)联机动态服务器,多线索,多性能的DB server(数据库服务器)②.XPS (Informix-Online Extended Parallel Server)将DSA扩展至松耦合或非共享的计算体系结构,动态可申缩性体系结构(Dynemic Scerable Architerta),适用于大型数据库的应用,并行SQL操作。
③.IUS (Informix-Universbl Server)处理丰富而复杂的数据而设计,并用Datablade模块技术,用来存储和检索丰富的多媒体Data及其他复杂的插入或对象扩展模块。
管理信息系统(第二版)课后习题答案--第3章答案
管理信息系统(第二版)课后习题答案--第3章答案第3章参考答案一、单项选择题1.A2.B3.B4.D5.D6.C7.C8.A9.A10.D11.A12.C13.D14.D15.C16.D 17.C18.A19.B20.D21.B22.D23.D 24.B 25.D二、多选题1.ABD 2.ABD 3.AC 4.AC 5.ABC三、填空题1.自上而下,自下而上2.不能从整体上考虑问题3.整体性和逻辑性强4.小,大中5.结构化设计6.系统设计,系统实施7.自下而下8.面向对象的分析,面向对象的设计、面向对象的编程9.系统分析、系统设计、系统实施、系统运行维护和评价四、判断改错题1.F结构化生命周期法虽然开发周期较长,但目前还是一种比较普遍使用的方法。
2.T3.F在结构化生命周期法中,系统规划和分析是所有工作中的重中之重。
4.F原型法和生命周期法虽然思想不一样,但可以结合使用,先用原型化的过程获取需求,然后按照生命周期法的步骤进行设计实施。
5.T6.F系统分析阶段建立的是系统的逻辑模型。
7.T五、名词解释1.生命周期:任何系统都会经历一个由发生、发展、成熟、消亡、更新换代的过程,这个过程叫做系统的生命周期。
2.原型法:原型法是指系统开发人员在初步了解用户的基础上,借助功能强大的辅助系统开发工具,快速开发一个原型(初始模型),从而使用户及早地看到一个真实的应用系统。
在此基础上,利用原型不断提炼用户需求,不断改进原型设计,直至使原型变成最终系统。
3.对象:对象就是客观世界中的任何事物在计算机程序世界里的抽象表示,或者说,是现实世界中个体的数据抽象模型。
4.结构化系统开发方法:用系统工程的思想和工程化的方法,按用户至上的原则,结构化,模块化,自顶向下的对系统进行分析与设计。
具体来说就是先将整个信息系统开发过程化分为若干个独立的阶段,然后各阶段严格按步骤完成开发任务。
5.类,又称为对象类,是具有相同或相似结构、操作和约束规则的对象组成的集合,是一组对象的属性和行为特征的抽象描述。
软件工程第11章(3-01)
2.编码的目的
编码的目的是使用选定的程序设计语言,把模块的过程性 描述翻译为用该语言书写的源程序。 编码产生的源程序应该正确可靠、简明清晰,而且具有较 高的效率。前两点要求是一致的,因为源代码越是清楚简 明,就越便于验证源代码和模块规格说明的一致性,也就 越容易对它进行测试和维护。
1.代码和程序遵守标准 与规范的重要性
1.2.2 编码语言的基本成分
1.数据成分 数据成分指明该语言能接受的数 据,用来描述程序中所涉及的数 据。如各种类型的变量、数组、 指针、记录等。作为程序操作的 对象,具有名称、类型和作用域 等特征。使用前要对数据的这些 特征加以说明。数据名称由用户 通过标识符命名,类型说明数据 须占用多少存储单元和存放形式, 作用域说明数据可被使用的范围。 以某语言为例,其数据构造方式 可分为基本类型和构造类型
1.2.2 编码语言的基本成分
3.控制成分 控制成分指明该语言允许的控制结构,人们可以利用这 些控制成分来构造程序中的控制逻辑。基本的控制成分 包括顺序控制结构、条件选择结构和循环结构
1.2.2 编码语言的基本成分
4.转输成分 传输成分指明该语言允许的数据传输方式,
在程序中可用它进行数据传输。 例如,Turbo C语言标准库提供了两个控 制台格式化输入、输出函数printf()和 scanf(),这两个函数可以在标准输入/输 出设备上以各种不同的格式读/写数据。 printf()函数用来向标准输出设备写数据, scanf()函数用来从标准输入设备上读数据。
1.1.4 编码途径
程序编码的一般途径有以下几种。 1.自顶向下的开发 2.自底向上的开发
3.自底向上和自顶向下相结合的开发
2023年高级软考《系统分析师》考试历年真题摘选附带答案
2023年高级软考《系统分析师》考试历年真题摘选附带答案第1卷一.全考点综合测验(共20题)1.【判断题】支持继承性是面向对象程序设计语言和传统程序设计语言在语言机制方面的根本区别。
2.【单选题】信息按照( )可以分为战略信息、战术信息和作业信息。
A. 应用领域B.加工顺序C.管理的层次D.反映形式3.【单选题】数字签名是对以数字形式存储的消息进行某种处理,产生一种类似于传统手书签名功效的信息处理过程。
数字签名标准DSS中使用的签名算法DSA是基于EIGamal和Schnorr 两个方案而设计的。
当DSA对消息m的签名验证结果为Tme,也不能说明()A.接收的消息m无伪造B.接收的消息m无篡改C.接收的消息m无错误D.接收的消息m无泄密4.【多选题】软件危机的主要表现是( )。
A.软件成本太高B.软件产品的质量低劣C.软件开发人员明显不足D.软件生产率低下5.【多选题】属性的可见性有( )。
A.公有的B. 私有的C.私有保护的D. 保护的6.【单选题】某教授于2016年6月1日自行将《俏息网络传播权保护条例》译成英文,投递给某国家的核尤朝刊,并于2016年11月1日发表。
国家相关部门认为该教授的译文质i 很高,经与该教授协商,于2017年1月5日发文将该译文定为官方正式译文。
下列说法,()是正确的。
A.由于该教授未经相关部门同意而自行翻译官方条例,因此对其译文不挛有著作权B.该教授对其译文自2016 年5 月1 日起一直享有著作权C.该教授对其译文自2016 年5 月1 日至2017 年1 月4 日期间享有著作权D.该教授对其译文自2016 年11 月1 日至2017 年1 月4 日期间莩有著作权7.【单选题】( )就是用于表示构成分布式系统的节点集和节点之间的联系的图示,它可以表示系统中软件和硬件的物理架构。
A.组件图B.协作图C.状态图D.配置图8.【单选题】在UML 提供的图中,( )用于描述系统与外部系统及用户之间的交互。
软件开发工具知识点
第一章1、什么是软件开发工具?在高级程序设计语言的(第三代语言)的基础上,为提高软件开发的质量和效率,从规划、分析、设计、测试、成文和管理各方面,对软件开发者提供各种不同程度的帮助的一类广泛的软件。
软件开发工具概念要点有三:(1)它是在高级程序设计语言(第三代语言)之后,软件技术进一步发展的产物;(2)它的目的是在人们开发软件过程中给予人们各种不同方面、不同程度的支持或帮助;(3)它支持软件开发的全过程,而不是仅限于某个特定的阶段。
2、简述计算机软件发展的几个阶段。
四个阶段:第一代计算机语言——机器语言阶段。
第二代计算机语言——汇编语言阶段。
第三代计算机语言——高级程序设计语言,过程化语言第四代计算机语言——非过程化语言(4GL)3、简述软件工作的重要性和困难性。
软件工作的重要性越来越为人们所认识,软件是计算机的灵魂,是广大使用者与计算机之间的桥梁,是人类在各个领域中积累的知识的结晶,是人类文明与知识得以延续的新的载体,是人类进一步成为一个整体、得以进一步相互联系的纽带。
人们在认识到软件工作的重要性的同时也越来越认识到了它的困难性。
这就是所谓的“软件危机”问题。
人类社会和客观世界的复杂性,决定了软件本身的复杂性;人类知识的丰富多彩,决定了软件的多样性;客观世界的动态性,决定了软件对可维护、可重用性越来越高的要求。
面对规模日益扩大的软件,如何保证它的正确性、可靠性,如何控制软件开发的进度与成本,成为十分重要的课题。
4、简述软件开发工具的演变过程。
软件开发工具的演变是从无到有,从分散到集中的过程,是软件发展的必然趋势。
主要分为四个阶段:第一阶段:利用通用软件作为辅助工具的阶段——没有专用软件开发工具的阶段。
第二阶段:专用的软件开发工具阶段。
如:第三阶段:集成的软件开发工具阶段。
如:第四阶段:面向网络和开源软件的软件开发工具阶段。
5、试述用通用软件辅助软件开发的弱点。
用通用软件来帮助开发人员编写文档或画图可以减少很多工作量,但是与软件开发工作相比,这种帮助实在太表面、太初级了。
4gl替换函数 -回复
4gl替换函数-回复替换函数是在编程语言中非常常用的一种操作。
在4GL(第四代语言)中,也有一些常用的替换函数,可以帮助开发人员实现对字符串、文本或其他数据的替换操作。
本文将为您详细介绍4GL中常见的替换函数,并提供实际示例。
第一步:替换函数概述在开始之前,让我们先了解替换函数的概念。
替换函数是一种文本处理功能,它允许开发人员将某个特定的字符串或文本替换为另一个字符串或文本。
这个功能在实际编程中非常有用,可以帮助我们处理文本中的错误、重复或特定的字符,使其符合我们的需求。
在4GL中,有几个常用的替换函数,包括REPLACE、SUBST、TRANSLATE等。
接下来,我们将分别介绍它们的具体用法和示例。
第二步:REPLACE函数REPLACE函数可以将字符串中的指定字符或子字符串替换为另一个字符或子字符串。
其基本语法如下:REPLACE (源字符串, 查找字符串, 替换字符串)其中,源字符串是需要进行替换操作的原始字符串,查找字符串是要查找的目标字符或子字符串,替换字符串是要替换为的字符或子字符串。
下面是一个简单的示例:DEFINE VARIABLE sourceString AS CHARACTER NO-UNDO. DEFINE VARIABLE targetString AS CHARACTER NO-UNDO. sourceString = "Hello, World!".targetString = REPLACE(sourceString, "World", "FourGL"). DISPLAY targetString.在上面的示例中,源字符串为"Hello, World!",我们使用REPLACE函数将其中的"World"替换为"FourGL",最终结果为"Hello, FourGL!"。
2023年高级软考《系统分析师》考试全真模拟易错、难点汇编叁(带答案)试卷号:48
2023年高级软考《系统分析师》考试全真模拟易错、难点汇编叁(带答案)(图片大小可自由调整)一.全考点综合测验(共45题)1.【多选题】画分层DFD 图的基本原则有( )。
A. 数据守恒原则B.分解的可靠性原则C.子、父图平衡的原则D.数据流封闭的原则正确答案:ACD2.【单选题】结构化分析方法是一种面向( )的需求分析方法A.对象B.数据结构C. 数据流D.控制流正确答案:B3.【判断题】分层的DFD 图可以用于可行性分析阶段,描述系统的物理结构。
正确答案:错误4.【多选题】需求分析的主要方法有( )。
A.形式化分析方法B.PAD 图描述C.结构化分析(SA)方法D.OOA 法正确答案:CD5.【单选题】需求规格说明书在软件开发中具有重要作用,但它不能作为( )。
A.软件设计的依据B.用户和开发人员对软件要做什么的共同理解C.软件验收的依据D.软件可行性分析的依据正确答案:D6.【多选题】模块的基本特征是( ) 。
A.外部特征(输入/ 输出、功能)B.内部特征(输入/ 输出、功能)C.内部特征(局部数据、代码)D.外部特征(局部数据、代码)正确答案:AC7.【单选题】在UML 提供的图中,( )用于按时间顺序描述对象间的交互。
A.网络图B.状态图C.协作图D.序列图正确答案:D8.【单选题】软件文档是信息系统( )的重要依据。
A.可理解性B.可维护性C.可扩展性D.可移植性正确答案:B9.【判断题】要用快速原型法开发软件,应选用4GL 语言正确答案:正确10.【判断题】用于需求分析的软件工具,应该能够保证需求的正确性,即验证需求的一致性、完整性、现实性和有效性。
正确答案:正确11.【多选题】UML 语言支持的建模方式有( )。
A. 静态建模B.动态建模C.模块化建模D.功能建模正确答案:ABD12.【多选题】用户界面设计的任务包括( )。
A.确定用户界面类型B. 建立任务模型C. 建立用户模型D. 建立功能模型正确答案:ABC13.【单选题】面向对象分析中,一个事物发生变化会影响另一个事物,两个事物之间属于()。
第四代语言
感谢观看
4GL将以受限的自然语言加图形作为用户界面。
4GL基本上还是以传统的程序设计语言互方式为用户界面的。前者表达能力强,但难于学习使用;后者易于 学习使用,但表达能力弱。在自然语言理解未能彻底解决之前,4GL将以受限的自然语言加图形作为用户界面, 以大大提高用户界面的友好性。
4GL主流产品基本上与人工智能技术无关。随着4GL非过程化程度和语言抽象级的不断提高,将出现功能级的 4GL(4GL流行产品还处于实现级),必然要求人工智能技术的支持才能很好地实现,使4GL与人工智能广泛结合。
软件规格说明是对软件应满足的需求、功能、性能及其它重要方面的陈述,是软件开发的基础。按照软件生 存周期的阶段来划分,有软件的需求规格说明、功能规格说明、设计规格说明等。用来书写规格说明的语言称为 规格说明语言。传统的规格说明语言是自然语言。在我国,主要使用现代汉语来表达软件的规格说明。自然语言 为开发者和用户所熟悉,易于使用。但也会不可避免地将自然语言的歧义性、不精确性引入到软件规格说明中, 从而给软件的开发和软件的质量带来隐患。形式的规格说明语言则很好地解决了上述问题,而且还是软件自动化 的基础。从形式的需求规格说明和功能规格说明出发,可以自动或半自动地转换成某种可执行的语言(如高级语 言)。需求规格说明和功能规格说明是面向问题、非过程化的,因此属于4GL。这一类语言有Z、NPL、SPECINT以 及作者设计的 JAVASPEC。设计规格说明语言由于包含了大量过程化成分,原则上不应划入4GL。
应用生成器(Application Generator)是重要的一类综合的4GL工具,它用来生成完整的应用系统。应用生 成器让用户不必使用多个软件,而只用这样一个综合工具来实现多种功能。应用生成器按其使用对象可以分为交 互式和编程式二类。属于前者的有FOCUS、RAMIS、MAPPER、UFO、NOMAD、SAS等。它们服务于维护、准备和处理 报表,允许用户以可见的交互方式在终端上创立文件、报表和进行其它的处理。较有代表性的有Power Builder 和Oracle的应用开发环境。Oracle提供的SQLFORMS、SQLMENU、SQLREPORTWRITER等工具建立在 SQL语言基础之 上,借助了数据库管理系统强大的功能,让用户交互式地定义需求,系统生成相应的屏幕格式、菜单和打印报表。 编程式应用生成器是为建造复杂系统的专业程序人员设计的,如NATURAL、FOXPRO、MANTIS、IDEAL、CSP、DMS、 INFO、LINC、FORMAL、 APPLICATION FACTORY以及作者设计的OO-HLL等即属于这一类。这一类4GL中有许多是 程序生成器(Program Generator),如LINC生成COBOL程序,FORMAL生成PASCAL程序等。为了提供专业人员建造 复杂的应用系统,有的语言具有很强的过程化描述能力。虽然语句的形式有差异,其实质与3GL的过程化语句相 同,如Informix-4GL和Oracle的PROC。
INFORMIX--4GL新手进阶整理
Informix - 4GL 初级进阶Informix - 4GL 初级进阶1第一章INFORMIX-4GL基本组成1第二章INFORMIX-4GL的处理逻辑2第三章INFORMIX-4GL中的数据类型3第四章定义程序变量4第五章函数间传值5第一章INFORMIX-4GL基本组成程序INFORMIX-4GL中的程序可以处理大量的应用需求,可以管理小型商业或主要银行的资金.INFORMIX-4GL程序包括执行特定函数所需的所有部分.程序:为解决一个问题或处理数据由计算机执行的操作逻辑顺序.模块文件INFORMIX-4GL的一个构件是模块<module>,模块是INFORMIX-4GL指令的机器文件,是整个程序的一部分.把一组模块组合在一起,就成为整个程序,上图中有三个模块,合在一起就组成了客户程序.在上图,跟踪记录客户的程序分成了三个模块,每个模块有其特殊的作用,cust_main.4gl模块用于驱动和控制程序,cust_add.4gl模块用于管理新增客户记录,cust_edit.4gl模块包括改变或删除客户记录的INFORMIX-4GL代码.模块包括一个或多个函数的集合.函数<function>是INFORMIX-4GL代码最基本的单元,它是在被调用时执行的一组INFORMIX-4GL语句序列.在INFORMIX-4GL程序中函数一次也没执行过也是有可能的,例如,如果从没删除过客户,那么函数delete_cust就不会被调用函数类型在INFORMIX-4GL中有四种函数,不同的函数名表示不同种类的INFORMIX-4GL语句功能. GLOBALS:在这个函数只用于说明变量声明语句,它也让其它模块知道变量的存在,每个程序只允许有一个GLOBALS函数.MAIN:给出INFORMIX-4GL开始的位置,INFORMIX-4GL首先总是先读MAIN函数,MAIN函数驱动程序的其余部分,因此,每个程序要有一个MAIN函数<否则INFORMIX-4GL不知从哪儿开始>执行.REPORT:它是附加的报表格式化语句,其它的函数如MAIN、GLOBALS和FUNCTION不能处理报表语句.FUNCTION:这是INFORMIX-4GL代码的基本单元,它不象MAIN和GLOBALS有特殊用处,定义一个函数的目的是什么它就做什么.第二章INFORMIX-4GL的处理逻辑有六种:IF 、CASE 、WHENEVER 、WHILE、FOR 、FOREACH判断和循环语句INFORMIX-4GL有一组判断和循环语句,它用于程序在执行时决定执行的顺序.判断逻辑:分支同其它语言一样,INFORMIX-4GL提供了随变量条件而执行相应语句的方法.用IF…THEN…语句可以根据一定的条件做相应的动作.例如:当用户输入错误时可以显示特定的错误信息.给IF…THEN…语句加入ELSE子句,可以描述一个测试条件不满足时的可选动作.有可能的话,多个IF语句可以嵌套使用,可以把一组相关的动作放在一个语句里.CASE语句也可以完成这一功能.IF 语句IF…THEN…[ELSE]用于测试值为TRUE或FALSE的表达式.IF语句是执行条件语句的指令.它包括两条逻辑选择.在程序执行过程中,当测试条件为TRUE,INFORMIX-4GL执行跟在保留字THEN后面的语句,并以END IF或ELSE保留字为结尾. 若有ELSE子句,在测试条件为FALSE<或NULL>时,INFORMIX-4GL才执行ELSE子句.嵌套IF语句IF语句可以嵌套在IF语句中,常见的错误是忘了写END IF保留字或在嵌套IF语句中,IF和END IF不匹配.这种情况下编译时会出现错误信息,提示一般语法错误.CASE语句:CASE语句可以减少多重IF语句.它常用于在一个语句中表示连贯相关的选择判断.判断:WHENEVERWHENEVER语句在INFORMIX-4GL语句执行过程中用于捕获错误和例外情况. WHENEVER是个编译开关<Compiler Swith>,编译开关或编译指令并不在程序运行过程中执行,是在处理代码时改变编译模式.WHILE循环用WHILE循环在状态布尔表达式值为TRUE时一直执行循环体语句或语句组.EXIT WHILE语句把程序控制权转到END WHILE后的第一个语句处执行.CONTINUE WHILE语句中断循环体语句序列,并把程序控制权返回给循环体头部,并测试布尔表达式值.若布尔表达式值为FALSE,程序控制跳过剩余的循环.FOR循环用FOR循环可以指定迭代的次数.若用了带整型表达式的STEP保留字.循环步长按STEP中指定的值增加.因为整型表达式可以是一个变量,所以可以动态地设置循环总数.第三章INFORMIX-4GL中的数据类型CHAR字段<character>存储任意字母、数字和符号的组合.存储的数据可以是名字、地址、社会安全、和其它由字母、数字、标点与其它符号组成的信息.在多数应用中,CHAR是常用的数据类型,它占用了大部分磁盘空间.CHAR字段的最大长度是32767字节.CHAR是固定长度的,若定义字符字段为400字节,即使数据小于400字节,这个字段在磁盘上也要占够空间数.有五种数字类型字段,每种表示不同类型的数字.数字字段不能存放字符或符号,但是,加<+>和减<->可放在数字字段用于表示正、负.在小型应用中两者的区别可能不明显,但在大型应用中有本质的区别.FLOAT和SMALLFLOAT这两种数据类型存储二进制浮点数,用于科学计算.这两种数据类型的精度:●FLOAT 双精度.14位有效数字●SMALLFLOAT 单精度.7位有效数字FLOAT可以存储SMALLFLOAT类型数据的两倍.FLOAT字段不是存放大数据,而是存放高精度数据.DECIMAL存储用户指定的带小数点数字.最高为32位数字.DECIMAL数字可以用给定的精度和标尺显示.●精度是整个数字的位数●标尺是小数点右边的数字个数定义为<5,2>的DECIMAL字段可以存储小数点前3位整数,小数点后2位小数的5位数字数据. 精度和标尺是可选项.●无精度时:DECIMAL可看作是DECIMAL<16>,即16位精度的浮点数.●无标尺时:DECIMAL可看作是一个浮点小数.DECIMAL可以是高精度数且能对数字进行四舍五入.FLOAT表示的精度因机器的不同而不同,这在网络数据传输中会有影响.MONEY存储货币金额.金额以前导$表示.它可以描述类似DECIMAL数据类型的高达32位的数字.同DECIMAL一样,MONEY字段要给定精度和标尺.它是固定长度的.MONEY字段没有给定精度和标尺时缺省的是DECIMAL<16,2>.占用的磁盘空间缺省是八位.这比大部分应用所需的高.你可以定义MONEY字段所需的最大范围来节省磁盘空间.若需要,以后还可以增加.SERIAL字段是系统分配给表中每行INTEGERS存储字段的唯一值.当行增加时,其值按序增加.缺省起始数为1,最大值为二十一亿.一个表中只能有一个SERIAL字段且这个字段一般为主键<PK>.程序变量不能是SERIAL数据类型.若起始数设为100,则加入的第一行序列值为100.不要试图在分配了SERIAL后改变其值.SERIAL值是不能用UPDATE语句修改的.尽管它可以修改SERIAL数,但是不方便也是不必要的,如果程序不得不维护一系列连续的审计ID号,就要用别的方法来产生.当一行或多行被删除,虽然数据被移走,但SERIAL值仍然增加,因此,当新增一行时,仍然分配序列的下一个数.SERIAL数是不能重复利用的.DATE数据类型用于存储日历数,当日期以INTEGERS存储时,DATE数据可以用上图所列的任意格式插入DATE字段.DATE数据类型是从1899年12月31日往后开始的,即1900年1月1日是第一天. DATETIME数据类型用于存储表示时间点的值.它使得精度更高且选择点更细.DATETIME精度范围大可以到年,小到计算机时间片的秒. DATETIME优于DATE数据类型.它定义了从年到时间片秒的时间点.DATETIME<1990-4-24 12:00> YEAR TO MINUTEDATETIME<16 12:23> DAY TO MINUTEDATETIME<31.234> SECOND TO FRACTIONDATETIME数据项可以是公元1年到公元9999年之间的任一时间点.INTERVAL数据类型用于存储一个时间段.如上图,第一个INTERVAL表示89年零8个月,第二个INTERVER表示560天零2小时25秒. 例如:INTERVAL<5-3> YEAR TO MONTHINTERVAL<11:15> HOUR TO MINUTEINTERVAL数据项可以表示大到9999年零1个月或小到时间片秒.INTERVAL数据类型不能即包括月又包括日,这是因为月中的天数是随月份不同而不同的,如3月是31天,而9月是30天.每年月份中的天数也是不同的,二月份的天数每四年从28天到29天变一次.因为日历上的不同,ANSI把INTERVAL类型分成两个子类:年—月型INTERVAL和日期—时间型INTERVAL.INFORMIX-OnLine引擎允许在字段中存储变长字符类型,这个类型叫VARCHAR.用VARCHAR的主要好处是,它可以增加存储在磁盘上每页的行数,提高读表的性能.VARCHAR 与CHAR数据类型字段相比,它减少了磁盘浪费.VARCHAR字段可以存储0~255位字符数据,当定义VARCHAR数据类型时,要定义字段的最大长度.开发者可以根据性能需要指定一个最小的长度.max-size参数设置了数据项中允许输入的最长字符限制.min-size参数设置了占用的最小磁盘空间.第四章定义程序变量DEFINE语句的放置位置决定了变量的范围.把DEFINE放在Global函数中,使其它所有函数都能使用该变量.这个变量是全局的.●在其它模块中调用Globals:要在其它模块中调用Global部分,必须让其它模块知道这个Global部分.●在第一个函数外部定义变量:在cust_main.4gl中,DEFINE语句放在了global调用后面,但在MAIN之前.这给变量以模块级范围.要使变量有模块范围,必须把DEFINE语句作为global调用后的第一个语句.●在函数内部:若DEFINE放在FUNCTION保留字后面,它就具有局部范围.函数保留字包括MAIN、FUNCTION和REPORT.若变量是局部范围的,它只能在定义它的函数内部使用.若要把函数定义为局部的,DEFINE语句必须放在FUNCTION保留字之后.在其它函数中要用到局部变量的值,可以通过传值传给哪个函数.有三种类型的范围:全局范围<Global> --所有模块或函数都可以使用该元素模块范围<Module> --元素声明或定义的模块中的所有函数都可以使用该元素局部范围<Local> --只有定义或声明该元素的函数可以使用该元素变量命名规则:●可以是1~8位字符长●前八个字符必须唯一●必须以字母开头●可以包括字母、数字和下划线<_>●可以是大写或小写字母●若变量名同数据库、表或字段名一样,程序会把它作为变量.若希望把它作为数据库、表或字段的名字,要在前面加上符号.DEFINE后跟记录名,记录名用于表示它后面的一组变量.RECORD保留字后跟变量列表,在最后放END RECORD保留字.因为变量的名字和数据类型都出现在声明中,所以是显式定义.它的命名规则同变量命名规则.要调用记录成员,必须在变量前加记录名,如:c_name.fname下面是调用记录所有变量的简写方式:c_name.* 其中*表示记录c_name中的所有变量.在DEFINE后跟变量名,数据类型通过保留字LIKE后跟table.columnname<表.字段名>分配.因为数据类型没有写出来,只是说明了有与引用的数据库表中的字段相同的数据类型,所以叫隐式定义.既可以为每个变量用一个DEFINE保留字,也可以用一个DEFINE保留字定义多个变量,变量之间用逗号<,>分开.若用LIKE保留字定义隐式变量,必须在DEFINE之前指明数据库名,以告诉DEFINE到哪儿找LIKE保留字中隐式说明的数据类型.以隐式记录定义变量的方法是在DEFINE保留字后跟记录名,记录名后跟RECORD LIKE table.*.记录名用于调用包含在记录中的一组变量.因为变量的数据类型没出现在定义语句中,所以是隐式定义.用这种方法有两个好处:●不必查看表定义后才知道记录中有多少变量● 若对表改变了,不必同时修改程序若用LIKE保留字定义隐式记录,必须在DEFINE语句之前指明数据库名,以告诉DEFINE到哪儿找LIKE保留字中隐式说明的数据类型.第五章函数间传值参数可用于函数间传值.在上图例子中,传了两个值.在参数表中的值用逗号<,>分隔,作为参数的变量一般是局部变量,因为它不必传递全局范围的变量.参数可以提高代码的可重用性.就是说,同一函数可被整个应用多次调用.在上例中,ck_state函数不用使用全局变量,就可用于检测输入到客户记录、雇员记录以与任何包括状态域记录的数据有效性.带参调用函数时,一般要从调用的函数获得返回值.在上图例子中,函数返回值说明输入的状态值是否有效.若返回值是1,则状态有效;若值为零,则无效.函数可以在表达式中隐式调用.在上图例子中,简单的LET语句调用了ck_state函数,并把ck_state函数的返回值赋给变量cc.在表达式中调用函数,被调用的函数必须返回一个简单值.在条件表达式中可以隐式地调用函数.在上图例子中,IF语句调用了ck_state函数,并以ck_state函数的返回值作判断条件.当在条件表达式中调用函数时,调用函数必须返回TRUE或FALSE的布尔值以作判断.在上图例子中,IF语句中用了NOT保留字.若用户输入的状态不存在于state表中,ck_state函数返回FALSE."IF NOT FALSE"与"TRUE"相同.因此,当ck_state返回FALSE时,调用帮助窗口,若为TRUE则跳过去.。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4GL语言开发原则及规范中科软件股份有限公司2002年04月27日目录1编码规范 (1)1.1命名规范 (1)1.1.1对象命名 (1)1.1.2常量和变量命名 (5)1.2注释规范 (7)1.2.1程序文件部分的注释 (8)1.2.2函数部分的注释 (9)1.2.3函数(过程)程序的增、删、改的注释说明约定 (11)1.2.4函数体内部的代码段修改注释 (12)1.2.5函数体内部的代码段说明约定 (13)1.3书写规范 (13)1.3.1基本原则 (13)1.3.2保留字引用规则 (14)1.3.3LET语句 (14)1.3.4IF语句 (15)1.3.5DEFINE语句 (15)1.3.6CALL语句 (16)1.3.7函数体内部组织 (16)1.4注意事项 (18)1编码规范1.1命名规范1.1.1对象命名1.1.1.1数据库命名规范●数据库名长度:不超过INFORMIX规定长度(十八位);●采用英文形式,规则如下:数据库名由两部分组成:系统名+DB;PrpInsDB系统名由英文单词构成,每个单词首字母大写,单词可采取缩写形式;●附表提供的词根表作为构词的唯一依据。
●本小节规范适用于各种语言版本的系统。
1.1.1.2数据库表命名规范●数据库表名长度:不超过INFORMIX规定长度(十八位);●采用英文和“_”组成形式,规则如下:数据库表名由三部分组成:系统名+业务类型+表的英文名(+“_”+子对象名),业务类型用1位大写字母表示,如承保业务为C、批改业务为P、理赔业务为L、收付费业务的数据表为J、通用代码为D;PrpCmain;货物运输保险保单信息表(继承了保单基本信息):PrpCmain_Cargo。
●业务类型采用附表提供的词根表中规定的字母;表名由英文单词构成,保险类别和业务类型的首字母大写,表的英文名采取小写形式,单词可采取缩写形式;●当一个对象继承主对象时,体现在数据表上则使用“_”分割;:货物运输保险保单信息表,继承了保单基本信息。
附表提供的词根表作为构词的唯一依据。
●本小节规范适用于各种语言版本的系统。
1.1.1.3数据库字段命名规范●字段长度:不超过INFORMIX规定字段长度(十八位);●采用英文形式,规则如下:1.字段名由英文单词构成,每个单词首字母大写;保单号码:PolicyNo2.一个字段名所用的单词不超过5个,在字段名不超过规定长度的情况下,尽量采用英文单词的全称;3.在字段名总长度超长的情况下,不缩略核心单词,其他单词缩略不短于3个字母;4.形容词定语放在所修饰名词的后面;SumLoss●附表提供的词根表作为构词的唯一依据。
●本小节规范适用于各种语言版本的系统。
1.1.1.4程序(文件)模块命名●长度:不超过INFORMIX规定长度(十位);●采用英文形式,规则如下:以对象名开头(第一个字母大写),后接对象操作名(第一个字母大写);●命名规则:ObjectOpt.4gl 其中,Object 是对象名。
数据层默认为基本表名。
如果表名超过10位。
则按照缩略规则执行。
●BL层模块划分及命名:原则上每个BL层的对象对应两个模块,一个对象主模块,一个模块存放归属于该对象的模块变量。
当且仅当主模块中内容过多时,按照如下规则划分:objectRd.4gl:存放涉及到查询(读)数据库的服务函数objectWt.4gl:存放涉及到更新(写)数据库的服务函数objectTx.4gl:存放事务服务函数objectLg.4gl:存放不涉及数据库操作的服务函数●DB层模块划分及命名:全局动态数组(DE):对于数据层的实体对象服务模块,它们一般由工具生成,文件名一般要与实体对象名一致,除非表名超过10位,此时参考词根表进行命名。
注意表名或者词根表是命名仅有的参考依据。
另外,除了通用服务以外,有些实体对象需要一些扩展的服务,这些服务放在实体对象服务模块的最后定义;1.1.1.5函数命名规范采用由大小写英文字母和“_”组成方式,规则如下;●直接调用的工具函数命名公式pub_” + ”对象名” + ”_” + “函数名”其中:对象名和函数名区分大小写●对象服务函数命名由于INFORMIX-4GL语言不是面向对象的开发语言,因而在程序设计中的对象服务是以函数的方式体现的;●一般函数命名公式:作用范围+”_”+对象名+”_”+对象的方法其中:作用范围包括pub/pri,对象名和方法名区分大小写BLPrpDrisk的增加操作add 所对应的函数名为:pub_BLPrpDrisk_Add数据层代码对象DBPrpDcode 的delete 操作所对应的函数名为:pub_DBPrpDcode_Delete界面层保单对象 UIPolicy 的录入操作对应的函数名为:pub_UIPolicy_Input 事务型的函数(或模块)命名规范参见3.2.5(数据库事务编写约定)●数据层扩展服务函数命名:如果存在某数据表TableName的数据层服务,其功能是获取表中某字段ColumnName的最大值,则该数据层服务函数名定义为:pub_DBTableName_GetMaxColumnName如果某两层结构数据表TableName的字段名为Col,现存在数据层服务,其功能是根据Col删除表中数据,则该数据层服务函数名定义为:pub_DBTableName_DeleteByCol如果某两层结构数据表TableName主键为id和no,每个id下包括若干no,现存在数据层服务,其功能是根据id删除表中数据,则该数据层服务函数名定义为:pub_DBTableName_DeleteByIN如果某数据表TableName主键为id、no和col,现存在数据层服务,其功能是根据id和no删除表中数据,则该数据层服务函数名定义为:pub_DBTableName_DeleteByINC也就是说,此时只取涉及的字段的首字母,写在函数名的最后。
1.1.1.6屏幕表格命名●屏幕FORM名应与相关数据表或主调用文件保持一致;●采用英文形式,规则如下:以对象名开头(第一个字母大写),后接对象操作名(第一个字母大写);命名规则:ObjOpt.per,其中Obj是对象名,Opt是对象操作名。
CmainInp.per“保单查询”屏幕表格名为CmainQry.per“保单清单显示”屏幕表格名为CmainLst.per如果一个屏幕表格被用于录入、查询等多种功能,功能名为:main;CmainMain.per如果一个屏幕表格被用于非录入、查询等多种功能,功能名为:pub。
CmainPub.per●屏幕记录:以小写字母命名,形式为sc_tablename●屏幕数组:以小写字母命名,形式为sa_tablename1.1.1.7窗口和游标命名采用由小写英文字母和“_”组成方式,规则如下;●窗口命名以功能名开头,后接win,以“_”分隔。
加。
功能名为 grade_add,则窗口命名为:grade_add_win。
OPEN WINDOW grade_add_win AT 2,2WITH FORM “GradeMain”……CLOSE WINDOW grade_add_win游标命名游标的命名规则同窗口,只不过以cur结尾;+游标的方式从表prpgrade获取数据。
设功能名为prpgrade_sel,则预处理命名为:prpgrade_sel_pre,游标命名为prpgrade_sel_cur PREPARE prpgrade_sel_pre FROM lv_sqlDECLARE prpgrade_sel_cur CURSOR FOR prpgrade_sel_preFOREACH prpgrade_sel_cur INTO sel_var_listEND FOREACH如果在同一个程序模块内,游标的命名重复,可在结尾处加序号与以区别,序号从1开始,依次递增。
1.1.2常量和变量命名命名公式:常量名称=变量作用域前缀+变量类型+’_’+自定义名称注意:自定义名称要有一定的意义且整个常量名称全部大写变量名称=变量作用域前缀+变量类型+’_’+自定义名称注意:自定义名称要有一定的意义且整个常量名称全部小写除了对象之外,常量和变量也需要良好格式的命名约定。
常量或变量应该总是被定义在尽可能小的范围内。
全局 (Global) 变量可以导致极其复杂的状态机构,并且使一个应用程序的逻辑非常难于理解。
全局变量也使代码的重用和维护更加困难。
较好的编码习惯是尽可能写模块化的代码。
除了全局变量(应该是不被传递的),过程和函数应该仅对传递给它们的对象操作。
在过程中使用的全局变量应该在过程起始处的声明部分中标识出来。
描述变量变量主体应该使用小写形式,并且应该足够长以描述它的作用。
对于频繁使用的或长的项,推荐使用标准缩略语以使名称的长度合理化。
当使用缩略语时,要确保它们在整个应用程序中的一致性。
在一个工程中,如果一会儿使用proposalno 代表投保单号码,一会使用prpsalno 代表保单号码,将导致不必要的混淆。
变量使用遵循如下几条规则:●函数内部定义的每一个变量在使用之前都必须初始化,初始化区域以/--@INIT开头和-/结尾。
●便于工具能够定期检查变量是否初始化或者初始化是否正确,在函数内部的变量初始化区域,严格按照上述规定检查;●对于数组的初始化,必须采用INITIALIZE数组 TO NULL,不要采用循环一条条记录进行初始化,除非需要针对数组记录中的某个字段特殊赋值;比如:定义数组变量la_prptplan ARRAY[20] OF RECORD LIKE PrpTplan.*,初始化时直接用INITIALIZE la_prptplan TO NULL,不要使用:FOR i=1 TO 20INITIALIZE la_prptplan[i].* TO NULLEND FOR●对象化后的系统不允许使用模块变量;●终端版系统应优化算法,尽量避免使用数组,不允许使用大数组;变量定义及初始化举例如下:FUNCTION pub_BLPrpCaddress_Ini( )DEFINE lr_prpcaddress RECORD LIKE PrpCaddress.*,la_prpcaddress ARRAY[20] OF RECORD LIKE PrpCaddress.*, lv_prpcaddress_count SMALLINT,lv_result INTEGER#/--@INIT#--变量初始化INITIALIZE lr_prpcaddress.* TO NULLINITIALIZE la_prpcaddress TO NULL #--初始化数组变量LET lv_prpcaddress_count=0LET lv_result=0#-/CALL pub_DEPrpCaddress_GetRec() RETURNING lr_prpcaddress.*……END FUNCTION1.2注释规范良好的程序注释有助于帮助我们了解程序的实现,也可以对程序文件进行一定量统计分析。