4GL是什么?计算机辅助软件工程CASE是什么?

来源:互联网 发布:在线考试系统 php源码 编辑:程序博客网 时间:2024/05/29 13:54
4GL作者: ,  出处:searchsmb, 责任编辑: , 2005-05-16 13:27  Programming

  在计算机行业中,通常有几代语言来表示语言的发展。 1GL或第一代语言是机器语言或者机器能够直接执行的语言,也就是0和1组成的串。 2GL或第二代语言是汇编语言。典型的2GL指令如下所示: ADD 12,8 汇编程序将会把汇编语言转换成机器语言。 3GL或第三代语言是一种“高级”编程语言,例如PL/I,C,JAVA都属于这一类。

以下是JAVA语言的一个例子:

public boolean handleEvent (Event evt) {

switch (evt.id) {

case Event.ACTION_EVENT: { if ("Try me" .equald(evt.arg)) {

……

编译器会把一个具体的高级编程语言的语句转换为机器语言。(在上述JAVA的例子中,其输出称为字节码,这些字节码再被作为操作系统平台一部分的JAVA虚拟机转换为相应的机器语言。)要运用3GL需要一定的编程知识。

4GL或第四代语言是比3GL更为接近于自然语言的语言。访问数据库的语言通常称为4GL。以下是4GL语句的一个例子:

EXTRACT ALL CUSTOMERS WHERE "PREVIOUS PURCHASES" TOTAL MORE THAN $1000

5GL或第五代语言是利用可视化或图形化接口编程,从而生成一种原语言,这种原语言通常用3GL或4GL语言编译器来进行编译。例如微软、波兰、IBM,以及其他一些公司就生产了一些5GL可视化编程工具,这些工具可以用JAVA语言来开发一些应用程序。可视化编程可以使你很容易地想象出面向对象编程的类层面,并且可以用一些拖拉式图标来装配程序组件。

第四代语言  第四代语言(Fourth-Generation Language, 以下简称4GL)的出现是出于商业需要。4GL这个词最早是在80年代初期出现在软件厂商的广告和产品介绍中的。因此,这些厂商的4GL产品不论从形式上看还是从功能上看,差别都很大。但是人们很快发现这一类语言由于具有“面向问题”、“非过程化程度高”等特点,可以成数量级地提高软件生产率,缩短软件开发周期,因此赢得了很多用户。1985年,美国召开了全国性的4GL研讨会,也正是在这前后,许多著名的计算机科学家对4GL展开了全面研究,从而使 4GL进入了计算机科学的研究范畴。
  4GL以数据库管理系统所提供的功能为核心,进一步构造了开发高层软件系统的开发环境,如报表生成、多窗口表格设计、菜单生成系统、图形图象处理系统和决策支持系统,为用户提供了一个良好的应用开发环境。它提供了功能强大的非过程化问题定义手段,用户只需告知系统做什么,而无需说明怎么做,因此可大大提高软件生产率。
  进入90年代,随着计算机软硬件技术的发展和应用水平的提高,大量基于数据库管理系统的4GL商品化软件已在计算机应用开发领域中获得广泛应用,成为了面向数据库应用开发的主流工具,如Oracle应用开发环境、Informix-4GL、SQL Windows、Power Builder等。它们为缩短软件开发周期,提高软件质量发挥了巨大的作用,为软件开发注入了新的生机和活力。
  由于近代软件工程实践所提出的大部分技术和方法并未受到普遍的欢迎和采用,软件供求矛盾进一步恶化,软件的开发成本日益增长,导致了所谓“新软件危机”。这既暴露了传统开发模型的不足,又说明了单纯以劳动力密集的形式来支持软件生产,已不再适应社会信息化的要求,必须寻求更高效、自动化程度更高的软件开发工具来支持软件生产。4GL就是在这种背景下应运而生并发展壮大的。
  程序设计语言的划代
  1.划代的观点
  程序设计语言的划代问题远比计算机的划代复杂,目前所见到的划代观点有4种之多。这儿例举一种观点,他们将编程语言划分如下:1GL是汇编语言; 2GL是高级程序设计语言,如FORTRAN,ALGOL,BASIC,LISP等;3GL是增强性的高级程序设计语言,如PASCAL, ALGOL68,FORTRAN77等;4GL是按计算机科学理论指导设计出来的结构化语言,如ADA,MODULA-2,SMALLTALK-80等。
  一般认为4GL具有简单易学,用户界面良好,非过程化程度高,面向问题,只需告知计算机“做什么”,而不必告知计算机“怎么做”,用4GL编程使用的代码量较之COBOL、PL/1明显减少,并可成数量级地提高软件生产率等特点。许多4GL为了提高对问题的表达能力,也为了提高语言的效率,引入了过程化的语言成分,出现了过程化的语句与非过程化的语句交织并存的局面,如LINC、NOMAD、IDEAL、FOCUS、NATURAL等均是如此。
  2.确定4GL的标准
  确定一个语言是否是一个4GL,主要应从以下标准来进行考察:
  (1)生产率标准:4GL一出现,就是以大幅度提高软件生产率为己任的,4GL应比3GL提高生产率一个数量级以上。
  (2)非过程化标准:4GL基本上应该是面向问题的,即只需告知计算机“做什么”,而不必告知计算机“怎么做”。当然4GL为了适应复杂的应用,而这些应用是无法“非过程化”的,就允许保留过程化的语言成分,但非过程化应是4GL的主要特色。
  (3)用户界面标准:4GL应具有良好的用户界面,应该简单、易学、易掌握,使用方便、灵活。
  (4)功能标准:4GL要具有生命力,不能适用范围太窄,在某一范围内应具有通用性。
  3.4GL的不足
  虽然4GL具有很多优点,也有很大的优势,成为了目前应用开发的主流工具,但也存在着以下严重不足:
  (1)4GL虽然功能强大,但在其整体能力上却与3GL有一定的差距。这一方面是语言抽象级别提高以后不可避免地带来的(正如高级语言不能做某些汇编语言做的事情);另一方面是人为带来的,许多4GL只面向专项应用。有的4GL为了提高对问题的表达能力,提供了同3GL的接口,以弥补其能力上的不足。如Oracle提供了可将SQL语句嵌入C程序中的工具PRO*C。
  (2)4GL由于其抽象级别较高的原因,不可避免地带来系统开销庞大,运行效率低下(正如高级语言运行效率没有汇编语言高一样),对软硬件资源消耗严重,应用受硬件限制。
  (3)由于缺乏统一的工业标准,4GL产品花样繁多,用户界面差异很大,与具体的机器联系紧密,语言的独立性较差(SQL稍好),影响了应用软件的移植与推广。
  (4)目前4GL主要面向基于数据库应用的领域,不宜于科学计算、高速的实时系统和系统软件开发。
  第四代语言的分类
  按照4GL的功能可以将它们划分为以下几类:
  1.查询语言和报表生成器
  查询语言是数据库管理系统的主要工具,它提供用户对数据库进行查询的功能。有的查询语言(如SQL)实际上还包括有查询、操纵、定义、控制四种功能。
  报表生成器(Report Generator)是为用户提供的自动产生报表的重要工具,它提供非过程化的描述手段让用户很方便地根据数据库中的信息来生成报表,如ADF 。
  2.图形语言
  图形信息较之一维的字符串、二维的表格信息更为直观、鲜明。我们在软件开发过程中所使用的数据流图、结构图、框图等均是图形。人们自然要设想,是否可以用图形的方式来进行软件开发呢?可见视屏、光笔、鼠标器的广泛使用为此提供了良好的硬件基础,Windows和X-Window为我们提供了良好的软件平台。目前较有代表性的是Gupta公司开发的SQL Windows系统。它以SQL语言为引擎,让用户在屏幕上以图形方式定义用户需求,系统自动生成相应的源程序(还具有面向对象的功能),用户可修改或增加这些源程序,从而完成应用开发。
  3.应用生成器
  应用生成器(Application Generator)是重要的一类综合的4GL工具,它用来生成完整的应用系统。应用生成器让用户不必使用多个软件,而只用这样一个综合工具来实现多种功能。应用生成器按其使用对象可以分为交互式和编程式二类。属于前者的有FOCUS、RAMIS、MAPPER、UFO、NOMAD、SAS等。它们服务于维护、准备和处理报表,允许用户以可见的交互方式在终端上创立文件、报表和进行其它的处理。目前较有代表性的有Power Builder和Oracle的应用开发环境。Oracle提供的SQL*FORMS、SQL*MENU、SQL*REPORTWRITER等工具建立在 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的PRO*C。
  4.形式规格说明语言
  软件规格说明是对软件应满足的需求、功能、性能及其它重要方面的陈述,是软件开发的基础。按照软件生存周期的阶段来划分,有软件的需求规格说明、功能规格说明、设计规格说明等。用来书写规格说明的语言称为规格说明语言。传统的规格说明语言是自然语言。在我国,主要使用现代汉语来表达软件的规格说明。自然语言为开发者和用户所熟悉,易于使用。但也会不可避免地将自然语言的歧义性、不精确性引入到软件规格说明中,从而给软件的开发和软件的质量带来隐患。形式的规格说明语言则很好地解决了上述问题,而且还是软件自动化的基础。从形式的需求规格说明和功能规格说明出发,可以自动或半自动地转换成某种可执行的语言(如高级语言)。需求规格说明和功能规格说明是面向问题、非过程化的,因此属于4GL。这一类语言有Z、NPL、SPECINT以及作者设计的 JAVASPEC。设计规格说明语言由于包含了大量过程化成分,原则上不应划入4GL。
  第四代语言的发展
  在今后相当一段时期内,4GL仍然是应用开发的主流工具。但其功能、表现形式、用户界面、所支持的开发方法将会发生一系列深刻的变化。主要表现在以下几个方面:
  1.4GL与面向对象技术将进一步结合
  面向对象技术集数据抽象、抽象数据类型和类继承为一体,使软件工程公认的模块化、信息隐蔽、抽象、局部化、软件重用等原则在面向对象机制下得到了充分的体现。它追求自然地刻划和求解现实世界中的问题,即追求问题结构与软件结构的一致性,使得开发人员可以把主要精力放在系统一级上,按照自己的意图创建对象、并将问题映射到该对象上。面向对象技术所追求的目标和4GL所追求的目标实际上是一致的。目前有代表性的4GL普遍具有面向对象的特征,但这些特征都很有限。所采用的实现技术往往是在传统的关系型数据库管理系统的基础上再加上一层面向对象的开发工具,而这层工具未能完全与数据库管理系统有机结合在一起,对抽象数据类型和继承性的表达也很有限,极大地限制了面向对象开发技术对4GL的支持。相信随着面向对象数据库管理系统研究的深入,建立在其上的 4GL将会以崭新的面貌出现在应用开发者面前。
  2.4GL将全面支持以Internet为代表的网络分布式应用开发
  随着Internet为代表的网络技术的广泛普及,4GL又有了新的活动空间。出现类似于Java,但比Java抽象级更高的4GL不仅是可能的,而且是完全必要的。
  3.4GL将出现事实上的工业标准
  目前4GL产品很不统一,给软件的可移植性和应用范围带来了极大的影响。但基于SQL的4GL已成为主流产品。随着竞争和发展,有可能出现以SQL为引擎的事实上的工业标准。
  4.4GL将以受限的自然语言加图形作为用户界面
  目前4GL基本上还是以传统的程序设计语言或交互方式为用户界面的。前者表达能力强,但难于学习使用;后者易于学习使用,但表达能力弱。在自然语言理解未能彻底解决之前,4GL将以受限的自然语言加图形作为用户界面,以大大提高用户界面的友好性。
  5.4GL将进一步与人工智能相结合
  目前4GL主流产品基本上与人工智能技术无关。随着4GL非过程化程度和语言抽象级的不断提高,将出现功能级的4GL(目前的4GL流行产品还处于实现级),必然要求人工智能技术的支持才能很好地实现,使4GL与人工智能广泛结合。
  6.4GL继续需要数据库管理系统的支持
  4GL的主要应用领域是商务。商务处理领域中需要大量的数据,没有数据库管理系统的支持是很难想象的。事实上大多数4GL是数据库管理系统功能的扩展,它们建立在某种数据库管理系统的基础之上。
  7.4GL要求软件开发方法发生变革
  由于传统的结构化方法已无法适应4GL的软件开发,工业界客观上又需要支持4GL的软件开发方法来指导他们的开发活动。预计面向对象的开发方法将居主导地位,再配之以一些辅助性的方法,如快速原型方法、并行式软件开发、协同式软件开发等,以加快软件的开发速度,提高软件的质量。4GL  4GL即第四代语言(Fourth-Generation Language)。4GL是按计算机科学理论指导设计出来的结构化语言,如ADA,MODULA- 2,SMALLTALK-80等。 
  一般认为4GL具有简单易学,用户界面良好,非过程化程度高,面向问题,只需告知计算机“做什么”,而不必告知计算机“怎么做”,用4GL编程使用的代码量较之COBOL、PL/1明显减少,并可成数量级地提高软件生产率等特点。许多4GL为了提高对问题的表达能力,也为了提高语言的效率,引入了过程化的语言成分,出现了过程化的语句与非过程化的语句交织并存的局面,如LINC、NOMAD、IDEAL、 FOCUS、NATURAL等均是如此。
  4GL以数据库管理系统所提供的功能为核心,进一步构造了开发高层软件系统的开发环境,如报表生成、多窗口表格设计、菜单生成系统等,为用户提供了一个良好的应用开发环境。
  4GL的代表性软件系统有:PowerBuilder、Delphi和INFORMOX-4GL等。

查看“计算机辅助软件工程”的语义关系

Info

计算机辅助软件工程(computer aided soft- ware engineering,CASE) : 采取系统化工程方法,利用计算机帮助设汁人员完成设计任务的理论、方法和技术。它综合了计算机图形学、人机交互技术、工程数据库和设计方法学等多个领域的理论、方法和技术,建立具有辅助没汁功能的系统,以帮助设计人员在计算机上完成设汁模型的构造、分析、优化和输出等工作。计算机辅助设计可提高设计的自动化程度和质量,缩短设计周期,借助计算机强大的计算能力,完成一些常人难以完成的设计任务。
计算机辅助设计是伴随着计算机图形学和计算机辅助制造(CAM)技术发展起来的。20世纪50年代初,美国麻省理工学院伺服机构实验室用Whirl- wind计算机开发了第一台自动控制铣床。1958年 S.Coons提出了计算机辅助设计这一概念。1962年I.E.Sutherland在麻省理工学院开发的Sketehpad人机通信的图形系统标志着汁算机图形学的产生,具方便、直观的交互方式和图形显示功能使计算机辅助设计得到了迅速发展。计算机辅助没计的对象纷繁复杂,涉及的范围比较广泛,从需要满足复杂工程需求的机械产品设计(包括一般机械产品设计和汽车、造船、航空、航天等复杂产品没计)、电子产品设计、建筑设计到追求创意和美感的美术设计、广告设计、时装设计,其中应用的专业知识、设计方法、功能需求均不相同。对于这些不同的设计领域,计算机辅助设计系统的结构、组成、功能均存在很大差异,但系统实现的一般性原则、原理和所采用的计算机技术却是共同的。机械、电子、建筑是计算机辅助设计传统的应用领域,开发技术和应用均已取得很大成功。这里主要以计算机辅助机械设计为例加以阐述。这不仅因为计算机辅助设计概念首先产生于机械产品设计领域,而且在机械工程领域,计算机辅助设计已形成了一些成熟的理论、技术和产品,并得到了成功的应用。计算机辅助设计解决的问题以机械产品没计为例,根据设计的各阶段工作,计算机辅助设计要解决以下几个方面的问题: (1)造型 即建立设计模型。造型的主要工作是建立产品的几何形状,输入产品的设计属性,如物理特性、材料特性、尺寸、公差等。造型的两个技术要素是给用户提供设计手段和建立产品模型的表达机制。设计手段是用户用以建立设计模型的方式、方法,如特征化、参数化技术(参见几何造型方法);表达机制是设计模型的表示方法,如自由曲面表达、实体表达。这两者是紧密结合的。设计手段和表达
机制的不同导致了不同类型的造型技术,如曲面造型、实体造型、特征造型等。目前先进的造型系统要求将曲面、实体、特征等多种技术融于一体,以便在计算机上建立复杂的设计模型。
(2)分析 实现应用领域对设计对象的分析功能,如热力、静力、动力分析等。这些分析的计算量一般很大,发挥计算机强大的记算功能可以快速有效地完成分析计算。 (3)优化 评价分析结果,优化设计模型,力图得到满足设计要求的最佳设计结果。建模、分析、优化的过程往往需要多次循环。 (4)输出 一种方式是绘图输出设计结果,这是目前计算机辅助设计在机械工程领域应用得最广泛、最成功的部分——计算机辅助绘图和设计。另一输出方式是把设计结果以交换文件或数据库方式传输给其他计算机辅助系统进行处理。计算机辅助设计在系统实现和实际应用中,针对不同的应用领域和设计阶段,各自有所侧重。有的重点解决产品造型,有的在于绘图并输出设计结果,有的着重应用计算机辅助分析和优化。计算机辅助设计采用的技术 (1)计算机图形学 计算机图形学是计算机辅助设计中采用的重要技术。它主要包括造型、图形显示、图形标准等内容。产品几何形状的建立、表达、图示化显示等均需用计算机图形学实现。造型技术主要解决产品几何形状的表达机制和构造方法。图形显示技术是根据产品的几何形状表达在屏幕上以显示该产品的形状(参见真实感图形生成),图形标准主要解决所开发的计算机辅助设计系统的易移植性,它提出一组标准化的基本图形操作(参见计算机图形标准)。 (2)人机交互技术 人机交互技术为计算机辅助设计提供图示化用户界面和交互数据输入机制。计算机辅助设计系统具有很强的交互性。设计模型的建立、修改等工作需要和用户进行大量交互操作来完成。系统需要不断地接收用户的输人事件,并根据这些事件迅速作出反应。人机交互技术能提供方便灵活的交互接口。交互接口的功能和性能直接影响到用户使用计算机辅助设计系统的效率和功能。 (3)工程数据库 工程数据库为计算机辅助设

计提供满足工程应用环境要求的数据管理技术。产品设计过程中涉及到大量的几何、非几何数据,这些数据的结构复杂,联系众多,需要用数据库把这些纷繁的数据组织、管理起来,保证设计过程的顺利进行。面对工程应用领域的特殊要求,与一般数据库相比,工程数据库有其特殊的要求,如复杂对象的表达与操作、长事务管理等。

(4)应用领域中的分析和设计方法,如有限元分析、机械设计方法等。目前,计算机辅助设计已广泛应用于电子、建筑、机械、航空航天、汽车、造船等众多的工程领域,并取得了巨大的经济效益。计算机辅助设计的软、硬件产品不断涌现,形成了一个高速发展的新兴产业。在将来的一段时期内,计算机辅助设计将主要朝着两个方向发展。一个是基于Internet的协同设计,基于万维网的计算机辅助协同设计系统将能够通过因特网对远程的模型进行异地设计,从而能使异地设计人员方便地交流设计思想,并能在外协件的装配等方面尽早地发现冲突,缩短设计周期。另一个是概念设计,广义上的概念设计包含了从产品的需求分析到进行详细设计之前的设计过程。它包括功能设计、原理设计、形状设计、布局设计和初步的结构设计。通过知识库和推理帮助设计人员完成概念设计,突破传统CAD系统只能进行辅助建模和辅助分析等的局限,赋予CAD系统创新设计功能,是计算机辅助设计的新的发展方向。
计算机辅助软件工程  CASE即Computer Aided Software Engineering,中文意思是计算机辅助软件工程。CASE是一套方法和工具,可使系统开发商规定的应用规则,并由计算机自动生成合适的计算机程序。CASE工具分成"高级"CASE和"低级"CASE.高级CASE工具用来绘制企业模型以及规定应用要求,低级CASE工具用来生成实际的程序代码。CASE工具和技术可提高系统分析和程序员工作效率。其重要的技术包括应用生成程序、前端开发过程面向图形的自动化、配置和管理以及寿命周期分析工具。
case工具   CASE(Computer Aided(or Assisted)Software Engineering计算机辅助软件工程。CASE的一个基本思想就是提供一组能够自动覆盖软件开发生命周期各个阶段的集成的、减少劳动力的工具。CASE已被证明可以加快开发速度,提高应用软件生产率并保证应用软件的可靠品质。
  CASE工具由许多部分组成,一般我们按软件开发的不同阶段分为上层CASE和下层CASE产品。上层或前端CASE工具自动进行应用的计划、设计和分析,帮助用户定义需求,产生需求说明,并可完成与应用开发相关的所有计划工作。下层或后端CASE工具自动进行应用系统的编程、测试和维护工作。
  除非下层CASE和上层CASE工具的供应商提供统一界面,否则用户必须编写或重新将所有信息从上层CASE工具转换到下层CASE工具。独立的CASE工具供应商愈来愈希望将它们的工具连接在一起建立统一的界面以减少用户不必要的开发工作。
  CASE工具带来的好处
  计算机专业人员利用计算机使他们的企业提高了效率,企业的各个部门通过使用计算机
  提高了生产率和效率,增强了企业的竞争力并使之带来了更多的利润。

0 0