版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第6章软件开发工具的现状与发展本章内容6.1软件开发工具的发展现状6.2软件开发工具的发展方向与趋势6.3从计算机语言发展而来的工具6.4综合性的平台或开发环境6.1
软件开发工具的现状20世纪80年代中期,软件开发工具开始兴起。与一切新技术一样经历了反复和曲折的发展过程。从开始的期望过高,到受了挫折之后的思考;从模糊的设想,到具体地分析与实现。一、国外发展状况80年代中期,专项的、支持某一工作环节的专用工具大量涌现管理数据字典的工具CDD,Dictionary/3000画数据流图的工具Flow代码生成器4GL支持单一环节、分散应用工具的弱点对软件开发缺乏全面统一的支撑环境,容易造成冲突和矛盾。把许多困难、琐碎的信息转换工作留给了软件开发人员。AD/Cycle中的主要工具:(1)用于项目管理与质量管理的ADPS(自动数据处理系统)(2)用于AS/400的一体化工具ADT(ApplicationDataTable) AS/400商用服务器,作为IBM的中小型商用计算机系统,以其卓越性能,在全世界赢得广泛客户。自问世以来,AS/400在全球的安装量已经超过60万套,行销150个国家,广泛应用于流通、金融证券、制造、运输行业。《财富》杂志排名中,前100家大企业中有93家使用AS/400,前1000名企业中有850家选择AS/400。(3)用于分析、建模及DB2数据库设计的BachmanReengineeringProductSet(Bachman公司,巴赫曼再造产品集)。DB2就是IBM开发的一种大型关系型数据库平台。它支持多用户或应用程序在同一条SQL语句中查询不同database甚至不同DBMS中的数据。目前,DB2有如下一些版本:(比如DB2forUnix,DB2forWindows,DB2forAS/400,DB2forOS/390等)。BachmanReengineeringProductSet:程序的维护、当前提升和迁移当前的应用、开发新的应用。(4)用于在SAA平台上生成代码的SCP/AD; IBM的SAA是一套应用程序、通信和用户接口规范,它专门服务于IBM大型计算机操作系统如VM、MVS,中型机操作系统如OS/400(为IBMAS/400系列机)和台式机系统的OS/2操作系统。SAA定义了公共应用程序(CommonApplications),这些应用程序可在任何一个SAA平台上运行。(5)用于DFD、ER及数据库设计的DevelopMale;(6)用于文档工作站环境下的一体化开发工具PCPrism和Excelerator(Intersolv公司);(7)强调以知识库为支持的一体化开发工具IEW(用于PCDOS)和ADW(用于OS2,KnowledgeWare公司);(8)用于信息库管理的RepositoryManager/MVS; .(9)用于软件测试的SATT和WITT。1994年AD/Cycle事实上被终止新型的Client/Server结构迅速兴起;开放式体系结构的广泛应用;基于传统的主机中心结构、局限于IBM平台的缺点使AD/Cycle失去了活力。目前真正一体化、能适应各种平台的工具尚不多。较多的是两类工具:一类是用于特定平台上的、主要用于设计阶段的工具。这类工具多依赖于软件平台(如某种DBMS),包括:ORACLE的CASE,INFOMAX的NewEra,IBM的VisualAge,PowerBuilder,PowerHouse。一类是侧重于分析方法的、独立于平台的工具。从方法论的角度,这类工具更值得关注。如Rational公司的Rose,MARKV等。近年来,基于互联网和开源软件的工具出现。除了普通工具的功能外,还能够:搜索和检查开源软件;自动生成和检查XML;基于SOAP;面向UDDL的搜索。二、国内发展状况上世纪80年代初期,徐家福、杨芙清开始研究软件工作环境;单项工具:清华大学的Auto-DBase3,报表生成器,自动屏幕设计工具、自动菜单设计工具等;一体化的集成环境:北京大学的青鸟项目,QuickMIS等产品;研究水平并不落后,主要的落后点在于应用,即没有大规模地应用软件开发工具;我国软件产业,当务之急应是大力普及软件工程及方法学的知识,提高软件开发工作的水平,这才能使软件开发工具的应用具有实践的基础。6.2
软件开发工具的发展趋势(四化) (一)智能化、网络化、一体化、标准化是软件开发工具发展的重要方向:智能化:在软件开发工具的研究与使用中引人人工智能、神经网络等技术,使得软件开发工具对于不确定型的信息、模糊信息具有更强的处理能力。由于在软件开发工作中,存在着大量不确定的因素,人们常常需要用知识与经验来加以补充或加工。在这方面人工智能方面的技术可以提高信息处理的功能及效率。网络化:如果说单个工作站或微机的延伸还只是个人头脑的扩展的话,那么计算机网络的普遍使用则是全人类的头脑得到了极大的扩充,人类收集与积累知识的能力大大地加强了。通过网络,人们可以更方便地互通信息,共享知识,这就给人们所梦想的软件重用、知识重用提供了新的机会。在项目管理方面,网络的应用使人们更便于掌握项目的进展状况、质量状况等。目前利用网络提供条件提高工作效率的软件开发工具,以及在网络上开发应用软件的工具,正在成为当前发展的一个热点。一体化:这一趋势早在80年代后期已经十分明显。但是,在开始时人们显然低估了一体化的困难。许多教训告诉我们,困难不在于技术上的问题(如速度、容量等),而在于对软件开发过程与相关信息的认识深度。只有对于软件开发中涉及的各种信息,以及在开发过程中它们的发生、变化、关系、一致性等有了完整与深刻的理解,才能真正实现软件开发工具的一体化。近来关于信息库的内容及处理功能的讨论,从理论上为实现一体化提供了基础。客户/服务器结构的发展也为实现软件开发工具的一体化提供了启发与新思路。标准化:为了解决大型软件开发的困难,需要把软件开发工作分成两个部分:软件构件(就像硬件的芯片)的开发和用这些构件组成大型软件(就像用芯片组成主机)。软件构件必须实现标准化,用构件组成大型软件的结构也必须符合一定的标准,否则就不可能提高生产效率。一些标准已经提出,如CORBA、COM等等。可以预计,今后几年内在这方面还会有新的进展。CORBA(CommonObjectRequestBrokerArchitecture,公共对象请求代理体系结构,通用对象请求代理体系结构)是由OMG组织制订的一种标准的面向对象应用程序体系规范。或者说CORBA体系结构是对象管理组织(OMG)为解决分布式处理环境(DCE)中,硬件和软件系统的互连而提出的一种解决方案;OMG组织是一个国际性的非盈利组织,其职责是为应用开发提供一个公共框架,制订工业指南和对象管理规范,加快对象技术的发展。COM(ComponentObjectModel)是微软自1993年便提出的元件式软件平台,用来做行程间通讯(Inter-processcommunication,IPC)以及当作元件式软件开发的平台。COM提供跟编程语言无关的方法实作一个软件物件,因此可以在其他环境中执行。COM要求软件元件必须遵照一个共同的接口,该接口与实现无关,因此可以隐藏实现属性,并且被其他物件在不知道其内部实现的情形下正确的使用。COM并被实作于多个平台之上,并不限于Windows操作系统之上。但还是只有Windows最常使用COM,且某些功能已被目前的.NET平台取代。(二)软件工具的发展轨迹软件开发工具的目标和作用是什么?我们需要软件开发工具,就是要更好更快地开发软件,就是为了提高软件开发的效率和质量。软件开发工具是一个相当宽泛、又比较模糊的概念,很难给出确切的、没有争议的定义。软件开发工具包含了从非常具体的计算机语言到内容丰富、功能齐全的开发环境的一个相当广泛的谱系。谱系的一端是从某些计算机语言,通过增加各种辅助工具发展而来的工具;另一端是从较为复杂的概念模式或过程模式出发设计的开发平台或开发环境。软件开发工具发展过程中,多样性和趋同性并存。用一种语言、一个环境包罗万象的思想是无法实现的。宇宙和社会的极端复杂性,应用领域的变幻莫测,必然导致语言和工具的多样性,这是一个客观规律。在功能、系统结构、数据结构、使用方式甚至界面设计等许多方面,工具呈现出明显的趋同性。这表明在信息处理、知识表达、事务处理等问题上,确实存在着普遍规律的,只是我们今天还没有透彻地理解和掌握。6.3从计算机语言发展出来的工具VB:VisualBasic是一种由微软公司开发的包含协助开发环境的事件驱动编程语言。从任何标准来说,VB都是世界上使用人数最多的语言,不仅是盛赞VB的开发者还是抱怨VB的开发者的数量。它源自于BASIC编程语言。VB拥有图形用户界面(GUI)和快速应用程序开发(RAD)系统,可以轻易的使用DAO、RDO、ADO连接数据库,或者轻松的创建ActiveX控件。程序员可以轻松的使用VB提供的组件快速建立一个应用程序。ADO---ActiveDataObjects,活动数据对象
DAO---DataAccessObjects,数据访问对象
RDO---RemoteDataObjects,远程数据对象
语言特性VB的中心思想就是要便于程序员使用,无论是新手或者专家。VB使用了可以简单建立应用程序的GUI系统,但是又可以开发复杂的程序。窗体控件的增加和改变可以用拖放技术实现。一个排列满控件的工具箱用来显示可用控件(比如文本框或者按钮)。VB的程序可以包含一个或多个窗体,或者是一个主窗体和多个子窗体,类似于操作系统的样子。VB的组件既可以拥有用户界面,也可以没有。这样一来服务器端程序就可以处理增加的模块。VB使得大量的外界控件有了自己的生存空间。大量的第三方控件针对VB提供。VB也提供了建立、使用和重用这些控件的方法,但是由于语言问题,从一个应用程序创建另外一个并不简单。VisualBasic的局限性不支持继承
VB和VB.net都是基于对象的编程语言,但是不包含继承特性。VB中提供了特殊的类的功能,但是还是不能满足程序员的需求。VB.net包含了所有面向对象的特性。多线程无原生支持
VisualBasic对于多线程无原生支持,只能通过WindowsAPI的调用实现。VB.Net2002以及之后的版本,都支持多线程技术。异常处理不完善
VisualBaisc中内置异常处理,即使未写异常处理代码,一旦用户出错也会弹出一个明确写出出错原因对话框,接着程序终止。VC:MicrosoftVisualC++是Microsoft公司推出的开发Win32环境程序、面向对象的可视化集成编程系统。它不但具有程序框架自动生成、灵活方便的类管理、代码编写和界面设计集成交互操作、可开发多种程序等优点,而且通过简单的设置就可使其生成的程序框架支持数据库接口、OLE,WinSock网络、3D控制界面。OLE(ObjectLinkingandEmbedding,对象连接与嵌入)。OLE不仅是桌面应用程序集成,而且还定义和实现了一种允许应用程序作为软件“对象”(数据集合和操作数据的函数)彼此进行“连接”的机制,这种连接机制和协议称为部件对象模型(ComponentObjectModel),简称COM。OLE可以用来创建复合文档,复合文档包含了创建于不同源应用程序,有着不同类型的数据,因此它可以把文字、声音、图像、表格、应用程序等组合在一起。VC以拥有“语法高亮”,IntelliSense(自动编译功能)以及高级除错功能而著称。比如,它允许用户进行远程调试,单步执行等。还有允许用户在调试期间重新编译被修改的代码,而不必重新启动正在调试的程序。其编译及建置系统以预编译头文件、最小重建功能及累加连结著称。这些特征明显缩短程式编辑、编译及连结的时间花费,在大型软件计划上尤其显著PB:生产厂商PowerSoft公司推出的产品(PowerSoft现已被数据库厂商Sybase所收购),它完全按照客户机/服务器体系结构研制设计,在客户机/服务器结构中,它使用在客户机中,作为数据库应用程序的开发工具而存在。由于PowerBuilder采用了面向对象和可视化技术,提供可视化的应用开发环境,使得我们利用PowerBuilder,可以方便快捷地开发出利用后台服务器中的数据和数据库管理系统的数据库应用程序。在当前,网络技术迅速发展,随之发展的还有OLE,跨平台等技术,而在PowerBuilder的最新版中提供了对这些技术的全面支持。在数据库开发工具领域,PowerBuilder是其中非常优秀的一个,利用它我们可以开发出功能强大的数据库应用程序。PB的主要特性:PowerBuilder提供了对目前流行的大多数关系数据库管理系统的支持。其应用程序中对数据库访问采用国际化标准数据库查询语言SQL,使得用PowerBuilder开发的应用程序可以不做修改或者只做少量的修改就可以在不同的后台数据库管理系统上使用。PowerBuilder是一种面向对象的开发工具,各种WINDOWS应用程序中常见的窗口、菜单、控件等在PowerBuilder中都是一个个的对象。PowerBuilder就提供了良好的跨平台性,比如在PowerBuilder中,利用WINDOWS平台开发的各种对象可以方便地应用到UNIX平台中。C++Builder是由Borland公司推出的一款可视化集成开发工具。C++Builder具有快速的可视化开发环境:只要简单地把控件(Component)拖到窗体(Form)上,定义一下它的属性,设置一下它的外观,就可以快速地建立应用程序界面;C++Builder内置了100多个完全封装了Windows公用特性且具有完全可扩展性(包括全面支持ActiveX控件)的可重用控件;C++Builder具有一个专业C++开发环境所能提供的全部功能:快速、高效、灵活的编译器优化,逐步连接,CPU透视,命令行工具等。它实现了可视化的编程环境和功能强大的编程语言(C++)的完美结合。C++Builder的特性:C++Builder优化的32位原码编译器建立在Borland公司久经考验的编译技术基础之上,提供了高度安全性、可靠性、快速性的编译优化方法,完全编译出原始机器码而非中间码,软件执行速度大大提高。C++Builder可以编译所有符合ANSI/ISO标准的原代码,支持最新ANSIC++/C语言特征。C++Builder的集成开发环境(IDE)提供了可视化窗体设计器、对象观察器、控件板、工程管理器、集成编辑器和调试器等一系列可视化快速应用程序开发(RAD)工具,让程序员可以很轻松地建立和管理自己的程序和资源。Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由SunMicrosystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaSE,JavaEE,JavaME)的总称。Java技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。Java的特性:
1、Java语言是简单的。Java语言的语法与C语言和C++语言很接近,使得大多数程序员很容易学习和使用Java。另一方面,Java丢弃了C++中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换。特别地,Java语言不使用指针,并提供了自动的废料收集,使得程序员不必为内存管理而担忧。
2、Java语言是一个面向对象的。Java语言提供类、接口和继承等原语,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为implements)。Java语言全面支持动态绑定,而C++语言只对虚函数使用动态绑定。总之,Java语言是一个纯的面向对象程序设计语言。
3、Java语言是分布式的。Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(javanet),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
4、Java语言是健壮的。Java的强类型机制、异常处理、废料的自动收集等是Java程序健壮性的重要保证。对指针的丢弃是Java的明智选择。Java的安全检查机制使得Java更具健壮性。5、Java语言是安全的。Java通常被用在网络环境中,为此,Java提供了一个安全机制以防恶意代码的攻击。除了Java语言具有的许多安全特性以外,Java对通过网络下载的类具有一个安全防范机制(类ClassLoader),如分配不同的名字空间以防替代本地的同名类、字节代码检查,并提供安全管理机制(类SecurityManager)让Java应用设置安全哨兵。
6、Java语言是体系结构中立的。Java程序(后缀为java的文件)在Java平台上被编译为体系结构中立的字节码格式(后缀为class的文件),然后可以在实现这个Java平台的任何系统中运行。这种途径适合于异构的网络环境和软件的分发。
7、Java语言是可移植的。这种可移植性来源于体系结构中立性,另外,Java还严格规定了各个基本数据类型的长度。Java系统本身也具有很强的可移植性,Java编译器是用Java实现的,Java的运行环境是用ANSIC实现的。
8、Java语言是解释型的。如前所述,Java程序在Java平台上被编译为字节码格式,然后可以在实现这个Java平台的任何系统中运行。在运行时,Java平台中的Java解释器对这些字节码进行解释执行,执行过程中需要的类在联接阶段被载入到运行环境中。
9、Java是高性能的。与那些解释型的高级脚本语言相比,Java的确是高性能的。事实上,Java的运行速度随着JIT(Just-In-Time)编译器技术的发展越来越接近于C++。10、Java语言是多线程的。在Java语言中,线程是一种特殊的对象,它必须由Thread类或其子类来创建。Java语言支持多个线程的同时执行,并提供多线程之间的同步机制。
11、Java语言是动态的。Java语言的设计目标之一是适应于动态变化的环境。Java程序需要的类能够动态地被载入到运行环境,也可以通过网络来载入所需要的类。这也有利于软件的升级。另外,Java中的类有一个运行时刻的表示,能进行运行时刻的类型检查。6.4综合性的平台或开发环境在大中型项目中,由于项目复杂,开发周期长,开发交互性高,开发团队倾向于使用集成开发环境(IDE),如微软的VisualStudio,由IBM、Oracle等多家IT巨头支持的Eclipse。共同点:具有编译、运行功能;支持代码援助、语法高亮、错误预防等。VisualStudio的优点:基于Windows平台和微软的产品,VisualStudio具有优势,其与微软的产品可实现无缝交互;在Windows平台,VisualStudio可获得更多操作系统级别的支持,在运行速度、代码提示显示速度等方面有优势。Eclipse的优点:免费的开发工具;安装简单,支持插件众多;“大平台,小核心,多插件”的特点使其更具灵活性;在各种操作系统平台上表现稳定,差异非常小。总结:如果项目只与微软的操作系统和应用软件密切相关,应该采用VisualStudio以获得更高的效率、更好的内部正好协同。如果开发过成具有不确定性,需求不断变化,那么更灵活、覆盖面更强、更稳定的Eclipse是更好的选择。什么是软件开发工具的智能化?其目的是什么?所谓智能化,具体地说就是在软件开发工具的研究与使用中引入人工智能、神经网络等技术,使得软件开发工具对于不确定型的信息、模糊信息具有更强的处理能力。由于在软件开发工作中,存在着大量不确定的因素,人们常常需要用知识与经验来加以补充或加工。在这方面人工智能方面的技术可以提高信息处理的功能及效率。列举两种真正一体化能应用于各种平台上的软件开发工具。目前真正一体化的,又能应用于各种平台上的工具尚不多。比较多的有两种,一种是用于特定平台上的、主要用于设计阶段的工具。这种软件多数依附于软件平台(如某种数据库管理系统),如ORACLE的CASE,INFOMAX的NewEra,IBM的VisualAge,以及PowerBuilder,PowerHouse等。另一种是侧重于分析方法的、独立于平台的工具。从方法论的角度来说,这种工具更值得注意。在这类工具中较有代表性的是Rational公司的产品,如Rose。软件开发工具一体化的困难何在?今后的发展前途如何?一体化的趋势早在80年代后期已经十分明显。但是,在开始时人们显然低估了一体化的困难。许多教训告诉我们,困难不在于技术上的问题(如速度、容量等),而在于对软件开发过程与相关信息的认识深度。只有对于软件开发中涉及的各种信息,以及在开发过程中它们的发生、变化、关系、一致性等有了完整与深刻的理解,才能真正实现软件开发工具的一体化。近来关于信息库的内容及处理功能的讨论,从理论上为实现一体化提供了基础。另外,客户/服务器结构的发展也为实现软件开发工具的一体化提供了启发与新思路。计算机网络的普及使用对软件开发工具有何影响?网络的应用是计算机应用领域中的一个重要方向。如果说单个工作站或微机的延伸还只是个人头脑的扩展的话,那么计算机网络的普遍使用则是全人类的头脑得到了极大的扩充,人类收集与积累知识的能力大大地加强了。软件开发工具这个领域当然也不例外。通过网络,人们可以更方便地互通信息,共享知识,这就给人们所梦想的软件重用、知识重用提供了新的机会。又如在项目管理方面,网络的应用使人们更便于掌握项目的进展状况、质量状况等。正因为这样,目前利用网络提供条件提高工作效率的软件开发工具,以及在网络上开发应用软件的工具,正在成为当前发展的一个热点。什么是标准化的软件部件?
标准化软件部件指按一定的标准制作的软件组件,如同硬件芯片那样为大家共用,因而要对每一个输入与输出进行详细的规定。对一大批变量与结构进行说明和定义,而这些至今尚无统一的标准。特别是对于各种对象的定义,很难写出标准。从技术上看,软件开发工具将在哪些方面发展?从技术上看,今后一段时间内,软件开发工具将在以下几方面继续发展:通过引入人工智能、神经网络等技术提高信息管理的水平与能力,与网络技术结合,进一步提高信息共享的功能,通过对信息库的深入研究使工具的一体化(或集成化)得到发展,经过各个流程的磨合逐步走向标准化。试述软件开发工具的发展趋势。由于软件开发工具的迅速发展,使我们很难预言其长远的发展趋势。从目前的发展势头看,智能化、网络化、一体化、标准化是值得重视的几个动向。智能化就是在软件开发工具的研究与使用中引用人工智能、神经网络等技术,使得软件开发工具对于不确定型的信息、模糊信息具有更强的处理能力。由于软件开发工作中存在着大量不确定的因素,人们常常需要用知识与经验来加以补充或加工。在这方面,人工智能技术可以提高信息处理的功能及效率如KnowledgeWare公司开发的以知识处理为基础的工具,就给人们不少启发。网络的应用是计算机应用领域中的一个重要方向。如果说单个工作站或微机的延伸还只是个人头脑的扩展的话,那么计算机
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度住宅小区栏杆及防护栏施工监理合同3篇
- 二零二五年创新展厅租赁及展览策划服务合同3篇
- 2025年度植物种子一次性运输及种植指导合同2篇
- 2025解除餐饮合同协议书版本
- 2024年高端品牌服饰代理销售合同格式3篇
- 2024年环保工程安全管理合同书
- 2025版脚手架搭建与施工现场防晒合同3篇
- 2025餐饮劳动合同协议书
- 2025版电商广告制作合同包含短视频与海报2篇
- 2025北京非全日制从业人员劳动合同书范本
- 舞蹈疗法在减少压力和焦虑中的作用
- 女性妇科保健知识讲座
- 《电力系统治安反恐防范要求 第3部分:水力发电企业》
- 部编版语文四年级下册第二单元大单元教学设计核心素养目标
- 2024年小学教师听课、评课制度
- 精品解析:河北省衡水市衡水中学2023-2024学年高一上学期期末数学试题(解析版)
- 2023年《铁道概论》考试复习题库附答案(含各题型)
- (电焊工)劳务分包合同
- 陕西省西安市西咸新区2023-2024学年七年级上学期1月期末历史试题
- 北师大版数学三年级下册全册教案教学设计及教学反思
- 重难点06读后续写-2023年高考英语【热点·重点·难点】(新高考专用)
评论
0/150
提交评论