《软件工程》第13章软件开发工具与环境课件_第1页
《软件工程》第13章软件开发工具与环境课件_第2页
《软件工程》第13章软件开发工具与环境课件_第3页
《软件工程》第13章软件开发工具与环境课件_第4页
《软件工程》第13章软件开发工具与环境课件_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

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

文档简介

第十三章软件开发工具与环境第十三章软件开发工具与环境【本章引言】早期的开发工具主要用来辅助程序员编程,而随着软件的不断改进,各种功能强大的开发工具应运而生。除了能够辅助编程外,还具有支持需求分析、设计、测试、维护和项目管理等功能。软件开发工具与开发方法的结合,再加上相应的软硬件支持就形成了环境。【本章重点】常用开发工具的功能;CASE工具功能【教学内容】13.1软件开发工具13.2软件工程环境13.3CASE技术13.4小结13.5习题13.1软件开发工具软件开发工具是指为支持计算机软件的开发、维护、模拟、移植或管理而研制的程序系统。开发软件工具的目的是为了提高软件生产率和改进软件的质量。13.1.1软件开发工具的功能1.软件开发工具的分类早期人们为提高软件系统的开发效率,研制了许多独立的软件开发工具,如编辑工具、编译工具、组装工具、调试工具和测试工具等。通常,在使用一个工具之后,为使用另一工具必须从前一工具退出,然后才能进入另一工具,工具之间几乎没有任何联系。而事实上,软件系统开发的整个过程使紧密相联的,整个生命周期的各个阶段都有紧密的关系。现在的软件开发工具拥有了更多的功能,各个工具之间都有相互联系。2.软件开发工具的功能无论使哪种软件开发工具,都具备一定的功能,这些功能都以项目满足软件工程的需要为目的。软件开发工具应具有以下功能:描述客观系统存储和管理开发过程中的信息代码的编写或生成文档的编制或生成软件工程管理表达能力或描述能力保持信息一致性的能力使用的方便程度工具的可靠程度对硬件和软件环境的要求应当尽量降低13.1.2常用软件开发工具介绍

1.建模工具

(1)IBMRationalRose IBMRationalRose在软件工程领域被公认为UML建模工具的最佳产品。RationalRose是一个完全的、具有能满足所有建模环境(包括Web开发、数据库建模、各种开发工具和语言)需求能力和灵活性的一套方案。RationalRose允许系统开发人员、系统管理人员和系统分析人员在软件的各个开发周期内建立系统需求和系统体系架构的可视化模型,并且能够将这些需求和系统体系架构可视化模型转换成代码,帮助系统开发。RationalRose是一个独立的工具,通过应用程序接口(API)层与市场主导的各种IDE结合来支持各种编程语言和其它的实现技术。它有如下功能:提供基本的绘图功能。RationalRose提供了众多的绘图元素,是一个完全支持UML的工具。不仅对UML的各种图中的元素的选择、放置、连接以及定义提供了卓越的机制,还提供了用于支持和辅助建模人员绘制正确的图机制。同时提供了对UML的各种图的布局设计的支持,包括允许建模人员重新排列各种元素,并且自动重新排列那些表示消息的直线,以便后者互不交错。功能强大的浏览器,用于查看模型和查找可重用的构件。提供模型库,这个模型库相当于一个数据库,该数据库中包含模型中使用的各种元素的信息。RationalRose通用模型库提供了一个包含来自所有的全部信息的模型库,并且该模型库使通用工具能够进行文档化和重用。可定制的目标库或编码指南的代码生成机制。可以针对不同类型的目标语言生成IBMRationalRose通常与Rational产品家族的其它软件配合使用。Rational软件工具可以在Windows、UNIX、Linux和大型机平台上使用,并且可以支持绝大多数语言、IDE和操作环境,其中包括:Java、C、C++、C#、VisualBasic.NET、COM、DCOM、CORBA以及100多个针对实时、嵌入式系统开发人员的开发环境和最新的Internet/Web服务标准。(2)TogetherBorland软件公司推出的BorlandTogetherDesignerCommunityEdition(简称Together)是一个与平台、语言和IDE无关的建模工具,主要功能与特性如下:支持所有的UML图形。Together支持UML2.0和UML1.2的所有图形,可以将模型以XML规范的方式导出。能自动进行模型与代码的同步。Together的LiveSource技术能够做到模型与代码的自动同步,使开发人员摆脱了某些CASE工具需要手工去做这些同步的烦恼。另外,由于源代码与模型是实时同步的,软件重构既可以在代码中进行,也可以在模型图中进行。自动生成文档。Together具有强大的文档生成能力,并且支持文档模板定制,从而使开发人员可以将更多的精力集中到分析和设计上。广泛的模式支持。Together支持业界常用的模式,如J2EE模式等,并可以让开发人员定制自己的模式,从而使模式的复用成为现实,这将极大提高项目的架构质量。重构、测试、审计和度量。Together支持多种重构技巧,并具有强大的测试框架生成能力,可以在一个集成开发环境下完成重构所需要的步骤。Together结合使用审计、度量和重构,可以使重构工作更见成效。支持团队合作,支持与其它CASE工具的集成。2.设计工具(1)IBMRationalSoftwareArchitect在一个开发团队中,软件架构师和高级开发人员要负责确定和维护应用程序架构的各个方面。他们需要功能强大、易于配置的工具来管理当今应用程序的复杂性。IBMRationalSoftwareArchitect是一种集成的设计和开发工具,通过使用基于UML的模型驱动的开发,来创建结构更为合理的应用程序和服务。借助于RationalSoftwareArchitect,可以将软件设计和开发的各个方面统一起来:开发应用程序时比以前更加得心应手、卓有成效。利用建模语言技术中的最新成果。检查和控制各种应用程序的结构。利用开放的和可扩展的建模平台。简化设计和开发工具解决方案。与生命周期中的其它方面进行整合。PowerDesigner包含6个紧密集成的模块,允许开发机构根据其实际需求灵活选用。下面是这6个模块的功能。1)PowerDesignerProcessAnalyst。用于数据分析或数据发现。ProcessAnalyst可以用一种非常自然的方式描述数据项,从而能够描述复杂的处理模型以反映它们的数据库模型。2)PowerDesignerDataArchitect。用于数据库的概念层和物理层设计和数据库构建。DataArchitect提供概念数据模型设计、自动的物理数据模型生成、非规范化的物理设计、针对多种DBMS的数据库生成,支持开发工具和高质量的文档特性。3)PowerDesignerAppModeler。用于物理数据库的设计、应用对象以及与数据密切相关的构件的生成。通过提供完整的物理建模能力以及利用相关模型进行开发的能力,AppModeler允许开发人员针对先进的开发环境(不仅包括Sybase本公司的产品PowerBuilder,还包括Microsoft的VisualStudio)快速地生成应用对象和构件。AppModeler还可以生成用于创建数据驱动的Web站点的构件,使开发人员和设计人员可以从一个DBMS发布“动态”的数据。4)PowerDesignerMetaWorks。通过模型共享以及支持高级团队工作的能力,MetaWorks提供了所有模型对象的一个全局的层次结构的浏览视图,以确保其贯穿于整个开发周期的一致性。5)PowerDesignerWarehouseArchitect。用于数据仓库和数据集市的建模和实现。WarehouseArchitect提供了针对所有主要传统DBMS(如Sybase、Oracle、Informix和DB2)以及数据仓库特定的DBMS(如RedBrickWarehouse和ASIQ)的完全的仓库处理支持。6)PowerDesignerViewer。用于以只读的、图形化的方式访问模型和源数据信息。Viewer提供了对PowerDesigner所有模型(包括概念模型、物理模型和仓库模型)信息的只读访问。3.编程工具(1)VisualStudio.NETVisualStudio.NET使Microsoft为解决当今最具挑战性的软件开发需要而推出的新一代开发工具,用于设计、开发、调试和部署功能强大而安全的连接Microsoft.NET的软件。VisualStudio.NET所提供的开发工具主要包括:可视化的窗体、网页设计器:支持以拖动方式生成控件,同时提供源码查看视图。智能化的代码编辑器:支持语句自动完成、语法检查等功能。集成编译、调试功能。项目管理功能:生成并管理应用程序文件,并可将应用程序安装到远程服务器上。VisualStudio.NET支持C++、VB、C#和J#等编程语言,开发人员可以使用VisualStudio.NET完成以下工作:构建功能强大而且响应能力极好的基于Windows的应用程序。构建功能强大而且响应能力极好的PocketPC应用程序。构建完善而安全的Web应用程序。构建对设备有智能感知能力的完善而安全的移动Web应用程序。在以上任何一种应用程序中使用XMLWebServices。避免“DLL灾难”。消除代价高昂的应用程序部署和维护问题。JBuilder开发环境可让开发人员使用从设计、编程、调试与测试直到分发与管理的应用程序生命周期的全部阶段。Jbuilder企业版包括了BorlandOptimizeitSuite性能套件工具,用以在整个开发过程中确保开发质量与产品质量。与Borland的Java应用程序生命周期解决方案中其它工具的无缝集成,可以使开发小组专注于开发更好的应用程序,而不必考虑各种工具如何协同工作。JBuilder与BorlandTogether建模技术的结合,有助于Jbuilder用户更好地理解代码结构,管理项目的复杂程度。JBuilder与BorlandStarTeam自动化配置变更管理系统协同工作,可以在全部开发周期中提高对项目的掌握程度。JBuilder也与其它业界领先的版本控制系统与部署发布平台系统集成在一起,提供了平台的灵活性与选择方面的便利。JBuilder集成开发环境降低了Java程序的开发难度,同时能够帮助Java程序开发人员提高Java语言的编程水平,从而确保Java开发任务能够快速高效地完成,并且保证开发项目的质量和性能。JBuilder提供了强大的Web应用程序开发支持能力,包括一个针对ApacheStruts开发框架的标准可视化设计器,以及对通用开放源代码应用服务器Jboss的全面支持。通过基于Swing的JavaOpenTools应用编程接口,JBuilder能够方便地进行扩展。JBuilder和上百个由第三方提供地可重复使用地组件和插件一起发布,提供给开发人员更多地附加价值。和JBuilder一起发布插件的公司包括Altova、CrystalDecisions、Oracle、Sun和Sybase等。JBuilder有如下主要特性:

(1)优异的J2EE开发环境JBuilder提供了对J2EE核心技术EJB2.0的支持,并通过可视化的EJBEsigner设计器,可以高效地建立可重复使用的EJB。它还支持多种J2EE应用服务器,包括BEAWebLogic、IBMWebSphere、SunONE、Oracle、SybaseEAServer、JBoss和集成的BorlandEnterpriseServer等,并可以在不用停止服务器的情况下进行本机或远端的EJB执行。

(2)高效的Web服务开发环境在开发分布式业务应用程序和其它较大的应用程序时,JBuilder的优越性表现得尤为突出。通过简单得鼠标拖放就能够快捷地创建、验证、输入和输出Web服务。这使得使用、创建和管理多个Web服务任务时更加高效快捷。JBuilder支持最新得Web服务技术,包括SOAP、WSDL、UDDI和WSIL等。(3)EclipseEclipse是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。Eclipse附带了一个标准的插件集,包括Java开发工具(JavaDevelopmentTools,JDT)。Eclipse最初是由IBM公司开发的替代商业软件VisualAgeforJava的下一代IDE开发环境,2001年11月贡献给开源社区,现在它由非营利软件供应商联盟Eclipse基金会(EclipseFoundation)管理。2003年,Eclipse3.0选择OSGi服务平台规范为运行时架构。2007年6月,稳定版3.3发布。2008年6月发布代号为Ganymede的3.4版。Eclipse是著名的跨平台的自由集成开发环境(IDE)。最初主要用来Java语言开发,但是目前亦有人通过插件使其作为其他计算机语言比如C++和Python的开发工具。Eclipse的本身只是一个框架平台,但是众多插件的支持使得Eclipse拥有其他功能相对固定的IDE软件很难具有的灵活性。许多软件开发商以Eclipse为框架开发自己的IDE。Eclipse最初由OTI和IBM两家公司的IDE产品开发组创建,起始于1999年4月。IBM提供了最初的Eclipse代码基础,包括Platform、JDT和PDE。目前由IBM牵头,围绕着Eclipse项目已经发展成为了一个庞大的Eclipse联盟,有150多家软件公司参与到Eclipse项目中,其中包括Borland、RationalSoftware、RedHat及Sybase等。Eclipse是一个开发源码项目,它其实是VisualAgeforJava的替代品,其界面跟先前的VisualAgeforJava差不多,但由于其开放源码,任何人都可以免费得到,并可以在此基础上开发各自的插件,因此越来越受人们关注。近期还有包括Oracle在内的许多大公司也纷纷加入了该项目,并宣称Eclipse将来能成为可进行任何语言开发的IDE集大成者,使用者只需下载各种语言的插件即可。EclipseSDK(软件开发者包)是EclipsePlatform、JDT和PDE所生产的组件合并,它们可以一次下载。这些部分在一起提供了一个具有丰富特性的开发环境,允许开发者有效地建造可以无缝集成到EclipsePlatform中的工具。EclipseSDK由Eclipse项目生产的工具和来自其它开放源代码的第三方软件组合而成。Eclipse项目生产的软件以CPL发布,第三方组件有各自自身的许可协议。4.测试工具(1)WinRunnerMercuryInteractive公司的WinRunner是一种企业级的功能测试工具,用于检测应用程序是否能够达到预期的功能及正常运行。通过自动录制、检测和回放用户的应用操作,WinRunner能够有效地帮助测试人员对复杂的企业级应用的不同发布版进行测试,提高测试人员的工作效率和质量,确保跨平台的、复杂的企业级应用无故障发布及长期稳定运行。WinRunner具有如下特点:1)轻松创建测试。用WinRuuner创建一个测试,只需点击鼠标和键盘,完成一个标准的业务操作流程,WinRunner自动记录你的操作并生成所需的脚本代码。这样,即使计算机技术知识有限的业务用户轻松创建完整的测试。你还可以直接修改测试脚本以满足各种复杂测试的需求。WinRunner提供这两种测试创建方式,满足测试团队中业务用户和专业技术人员的不同需求。2)插入检查点。在记录一个测试的过程中,可以插入检查点,检查在某个时刻/状态下,应用程序是否运行正常。在插入检查点后,WinRunner会收集一套数据指标,在测试运行时对其一一验证。WinRunner提供几种不同类型的检查点,包括文本的、GUI、位图和数据库。例如,用一个位图检查点,你可以检查公司的图标是否出现于指定位置。3)检验数据。除了创建并运行测试,WinRunner还能验证数据库的数值,从而确保业务交易的准确性。例如,在创建测试时,可以设定哪些数据库表和记录需要检测;在测试运行时,测试程序就会自动核对数据库内的实际数值和预期的数值。WinRunner自动显示检测结果,在有更新/删除/插入的记录上突出显示以引起注意。4)增强测试。为了彻底全面地测试一个应用程序,需要使用不同类型的数据来测试。WinRunner的数据驱动向导(DataDriverWizard)可以让你简单地点击几下鼠标,就可以把一个业务流程测试转化为数据驱动测试,从而反映多个用户各自独特且真实的行为。以一个订单输入的流程为例,你可能希望把订单号或客户名称作为可变栏,用多套数据进行测试。使用DataDriverWizard,你可以选择订单号或客户名称用数据表格文件中的哪个栏目的数据替换。你可以把订单号或客户名称输入数据表格文件,或从其它表格和数据库中导入。数据驱动测试不仅节省了时间和资源,又提高了应用的测试覆盖率。WinRunner还可以通过FunctionGenerator增加测试的功能。使用FunctionGenerator可以从目录列表中选择一个功能增加到你的测试中以提高测试能力。5)运行测试。创建好测试脚本,并插入检查点和必要的添加功能后,你就可以开始运行测试。运行测试时,WinRunner会自动操作应用程序,就象一个真实的用户根据业务流程执行着每一步的操作。测试运行过程中,如有网络消息窗口出现或其它意外事件出现,WinRunner也会根据预先的设定排除这些干扰。6)分析结果。测试运行结束后,你需要分析测试结果。WinRunner通过交互式的报告工具来提供详尽的、易读的报告。报告中会列出测试中发现的错误内容、位置、检查点和其它重要事件,帮助你对测试结果进行分析。这些测试结果还可以通过MercuryInteractive的测试管理工具TestDirector来查阅。7)维护测试。随着时间的推移,开发人员会对应用程序做进一步的修改,并需要增加另外的测试。使用WinRunner,你不必对程序的每一次改动都重新创建你的测试。WinRunner可以创建在整个应用程序生命周期内都可以重复使用的测试,从而大大地节省时间和资源,充分利用你的测试投资。每次记录测试时,WinRunner会自动创建一个GUIMap文件以保存应用对象。这些对象分层次组织,既可以总览所有的对象,也可以查询某个对象的详细信息。一般而言,对应用程序的任何改动都会影响到成百上千个测试。通过修改一个GUIMap文件而非无数个测试,WinRunner可以方便地实现测试重用。(2)LoadRunnerMercuryInteractive公司的LoadRunner是一种预测系统行为和性能的负载测试工具。通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner能够对整个企业架构进行测试。通过使用LoadRunner,企业能最大限度地缩短测试时间,优化性能和加速应用系统的发布周期。LoadRunner是一种适用于各种体系架构的自动负载测试工具,它能预测系统行为并优化系统性能。LoadRunner的测试对象是整个企业的系统,它通过模拟实际用户的操作行为和实行实时性能监测,来帮助您更快的查找和发现问题。此外,LoadRunner能支持广泛的协议和技术,为您的特殊环境提供特殊的解决方案。LoadRunner具有如下功能:1)轻松创建虚拟用户使用LoadRunner的VirtualUserGenerator,能够很简便地创立起系统负载。该引擎能够生成虚拟用户,以虚拟用户的方式模拟真实用户的业务操作行为。它先记录下业务流程(如下订单或机票预定),然后将其转化为测试脚本。利用虚拟用户,可以在Windows,UNIX或Linux机器上同时产生成千上万个用户访问。所以LoadRunner能极大的减少负载测试所需的硬件和人力资源。用VirtualUserGenerator建立测试脚本后,您可以对其进行参数化操作,这一操作能让您利用几套不同的实际发生数据来测试您的应用程序,从而反映出本系统的负载能力。以一个订单输入过程为例,参数化操作可将记录中的固定数据,如订单号和客户名称,由可变值来代替。在这些变量内随意输入可能的订单号和客户名,来匹配多个实际用户的操作行为。为了进一步确定您的Virtualuser能够模拟真实用户,您可利用LoadRunner控制某些行为特性。例如,只需要点击一下鼠标,就能轻易控制交易的数量,交易频率,用户的思考时间和连接速度等。2)创建真实的负载Virtualusers建立起后,您需要设定您的负载方案,业务流程组合和虚拟用户数量。用LoadRunner的Controller,您能很快组织起多用户的测试方案。Controller的Rendezvous功能提供一个互动的环境,在其中您既能建立起持续且循环的负载,又能管理和驱动负载测试方案。而且,可以利用它的日程计划服务来定义用户在什么时候访问系统以产生负载。这样,就能将测试过程自动化。同样还可以用Controller来限定您的负载方案,在这个方案中所有的用户同时执行一个动作(如登陆到一个库存应用程序)来模拟峰值负载的情况。另外,还能监测系统架构中各个组件的性能(包括服务器,数据库,网络设备等)来帮助客户决定系统的配置。3)定位性能问题LoadRunner内含集成的实时监测器,在负载测试过程的任何时候,可以观察到应用系统的运行性能。这些性能监测器实时显示交易性能数据(如响应时间)和其它系统组件包括applicationserver,webserver,网络设备和数据库等的实时性能。这样,可以在测试过程中从客户和服务器的双方面评估这些系统组件的运行性能,从而更快地发现问题。利用LoadRunner的ContentCheck,可以判断负载下的应用程序功能正常与否。ContentCheck在Virtualusers运行时,检测应用程序的网络数据包内容,从中确定是否有错误内容传送出去。它的实时浏览器帮助您从终端用户角度观察程序性能状况。4)分析结果以精确定位问题所在当测试完毕后,LoadRunner收集汇总所有的测试数据,并提供高级的分析和报告工具,以便迅速查找到性能问题并追溯原由。使用LoadRunner的Web交易细节监测器,可以了解到将所有的图象、框架和文本下载到每一网页上所需的时间。例如,这个交易细节分析机制能够分析是否因为一个大尺寸的图形文件或是第三方的数据组件造成应用系统运行速度减慢。另外,Web交易细节监测器分解用于客户端、网络和服务器上端到端的反应时间,便于确认问题,定位查找真正出错的组件。例如,可以将网络延时进行分解,以判断DNS解析时间,连接服务器或SSL认证所花费的时间。通过使用LoadRunner的分析工具,可以很快地查找到出错的位置和原因并作出相应的调整。5)重复测试保证系统发布的高性能负载测试是一个重复过程。每次处理完一个出错情况,您都需要对您的应用程序在相同的方案下,再进行一次负载测试。以此检验您所做的修正是否改善了运行性能。LoadRunner完全支持EJB的负载测试。这些基于Java的组件运行在应用服务器上,提供广泛的应用服务。通过测试这些组件,您可以在应用程序开发的早期就确认并解决可能产生的问题。利用LoadRunner,可以很方便地了解系统的性能。它的Controller允许重复执行与出错修改前相同的测试方案。它的基于HTML的报告提供了一个比较性能结果所需的基准,以此衡量在一段时间内,有多大程度的改进并确保应用成功。由于这些报告是基于HTML的文本,测试员可以将其公布于测试公司的内部网上,便于随时查阅。13.2软件工程环境13.2.1软件工程环境的概念从软件工程学的范畴来看,软件开发技术主要包含软件开发方法学、软件工具和软件工程环境三方面的内容,软件工程环境是软件开发技术的重要组成部分。开发方法的研究与实现会促进软件开发技术的发展。为帮助实现和推行这种方法,经常随之开发相应的支持工具,主要包括硬件和软件支持工具。在学习新方法的同时也会逐步掌握相应工具的操作。同样人们通过工具的使用能够更充分熟悉新方法,彼此互相促进。方法与工具的结合,再加上相应的软硬件的支持就形成了环境。1.软件工程环境的概念软件工程环境作为软件工程学的重要组成部分,是实现软件生产工程化的重要基础。为软件开发过程中的技术开发活动与管理活动提供重要支持。近几十年来,软件工程环境的研究取得了充分的发展,如CASE、集成项目支持环境(IPSE)等技术正在成为最有效的软件开发辅助工具,一直是人们关注研究的对象,很多实用的环境应运而生。软件工程环境是是指支持软件产品开发、维护和管理的软件系统,它在统一的集成机制下由一系列软件工具组成。美国国防部给出了软件工程环境另一定义:一个软件工程环境是一组方法、过程及计算机程序的整体化构件,它支持从需求定义、程序生成直到维护的整个软件生命周期。这些工具对软件开发相关的过程、活动和任务提供全面的支持,提高软件产品的生产效率和软件产品的质量,降低软件开发、维护和管理的成本。软件工程环境通常都有一套包括数据集成、控制集成和界面集成的集成机制,使各个工具使用统一的规范访问环境信息库,采用统一的用户界面,同时为各个工具或开发活动之间的通信、切换、调度和协同工作提供支持。软件工具是指支持计算机软件的开发、维护、仿真或管理而设计的程序系统。软件工具的开发对软件工程环境的支持至关重要。一般将软件工具分为工具箱、工作台和方法指南三种类型。(1)工具箱。能自动执行某类软件生存期任务的一组集成化工具,如系统设计、程序维护及系统分析等。(2)工作台。实现整个软件生存期各种任务自动化的一组集成化工具。(3)方法指南。为某种具体软件提供相应的辅助手段,这些方法包括结构化分析方法、结构化设计方法及信息工程方法等。2.软件工程环境的分类软件工程环境分类方式有多种。(1)按软件开发模型及开发方法分类,有支持瀑布模型、演化模型、螺旋模型、喷泉模型以及结构化方法、信息模型方法、面向对象方法等不同模型及方法的软件开发环境。(2)按功能及结构特点分类,有单体型、协同型、分散型和并发型等多种类型的软件开发环境。(3)按应用范围分类,有通用型和专用型软件开发环境。其中专用型软件开发环境与应用领域有关,故又可称为应用型软件开发环境。(4)按开发阶段分类,有前端开发环境(支持系统规划、分析、设计等阶段的活动)、后端开发环境(支持编程、测试等阶段的活动)、软件维护环境和逆向工程环境等。此类环境往往可通过对功能较全的环境进行剪裁而得到。软件开发环境由工具集和集成机制两部分构成,工具集和集成机制间的关系犹如“插件”和“插槽”间的关系。工具集:软件开发环境中的工具可包括:支持特定过程模型和开发方法的工具,如支持瀑布模型及数据流方法的分析工具、设计工具、编码工具、测试工具、维护工具,支持面向对象方法的OOA工具、OOD工具和OOP工具等;独立于模型和方法的工具,如界面辅助生成工具和文档出版工具;亦可包括管理类工具和针对特定领域的应用类工具。集成机制:对工具的集成及用户软件的开发、维护及管理提供统一的支持。按功能可划分为环境信息库、过程控制及消息服务器、环境用户界面三个部分。环境信息库:是软件开发环境的核心,用以储存与系统开发有关的信息并支持信息的交流与共享。库中储存两类信息,一类是开发过程中产生的有关被开发系统的信息,如分析文档、设计文档、测试报告等;另一类是环境提供的支持信息,如文档模板、系统配置、过程模型、可复用构件等。过程控制和消息服务器:是实现过程集成及控制集成的基础。过程集成是按照具体软件开发过程的要求进行工具的选择与组合,控制集成并行工具之间的通信和协同工作。环境用户界面:包括环境总界面和由它实行统一控制的各环境部件及工具的界面。统一的、具有一致视感(Look&Feel)的用户界面是软件开发环境的重要特征,是充分发挥环境的优越性、高效地使用工具并减轻用户的学习负担的保证。3.软件工程环境的功能较完善的软件开发环境通常具有如下功能:(1)软件开发的一致性及完整性维护;(2)配置管理及版本控制;(3)数据的多种表示形式及其在不同形式之间自动转换;(4)信息的自动检索及更新;(5)项目控制和管理;(6)对方法学的支持。4.软件工程环境的结构软件工程环境构成元素有如下内容:软件信息数据库。交互式的人机界面。语言工具。质量保证工具。需求分析及设计工具。配置管理工具。13.2.2软件开发环境的特点

下面从环境工具和用户界面两个方面说明软件开发环境的特点。1.集成化的软件工具 在早期的编程环境中,各种工具的功能与使用是相互孤立的。在程序调试过程中,如果在程序编译过程中发现错误,要先退出编译程序,重新调用编辑程序来修改程序,待程序修改后,再重新调用编译程序。在程序调试中要不断地重复这一过程,在编译和编辑这两种工具之间来回切换,不仅给操作带来麻烦,而且浪费开发人员很多时间。20世纪70年代出现的工具箱,能部分实现从一个工具到另一个工具的切换。如在程序调试中,当编译程序发现错误时,开发环境能自动调出编辑程序,并且在源程序出错的位置发出某种信号(例如光标闪烁),提示程序员进行修改,既减少了来回切换的麻烦,又缩短了调试时间,提高了开发效率。集成化工具的使用,则比工具箱更胜一筹。它要求在同一开发阶段或不同阶段的有关工具之间,实现完全的自动切换。工具的集成化主要包括数据集成、界面集成、控制集成和过程集成、平台等其它方面的集成。(1)数据集成。数据集成机制提供统一的数据模式和数据接口规范,需要相互协作的工具通过这种统一的模式与规范交换数据。数据集成可以有不同的层次,如共享文件、共享数据结构和共享信息库等。(2)界面集成。界面集成机制为统一的工具界面风格和统一的操作方式提供支持,使得环境中的工具具有相同的视觉效果和操作规则,减少用户为学习不同工具的使用所花费的开销。界面集成主要体现在相同或相似的窗口、菜单、工具条、快捷键、操作规则与命令语法等。(3)控制集成。控制集成机制支持各工具或各开发活动之间的通信、切换、调度和协同工作,并支持软件开发过程的描述、执行和转接。通常使用消息通信机制实现控制集成,工具间发送的消息统一由消息服务器进行管理。(4)过程集成。这类开发环境了解软件过程中各个活动的时序、约束等,能主动地调度这些活动,保持它们恰当的顺序。(5)平台集成。指工具运行在相同的硬件和操作系统下。2.友好和统一的用户界面友好的用户界面,既能为使用者带来方便,又有助于提高操作者的效率。当今的开发环境经常采用以下的技术来提高用户界面的友好性。(1)具有弹出功能的多级菜单。这种菜单将环境的各种功能组织成命令树的形式,无论是选择当前菜单的功能,还是拉出下级菜单或返回上级菜单,都只需用鼠标单击或简单的键盘操作即可实现。(2)屏幕提示和在线帮助技术。屏幕提示用于提示用户当前可选择的操作或需要注意的事项,在线帮助根据用户的要求,提供及时的在线帮助。(3)采用多窗口技术。可在屏幕上随时打开多个窗口,如编辑窗口、执行命令窗口、对话窗口和其它窗口,以便用户在同一时间内处理或监视多个不同的任务。(4)采用向导技术。把一些常用任务或动作的执行步骤组合成一体,当用户执行这组任务或动作时,只要从一个入口进入,然后可按照提示选择“上一步”、“下一步”、“取消”及“确定”操作即可。菜单、多窗口、向导和帮助信息,是用户界面的重要内容,被称为四大友好技术。不仅适应于软件开发环境,在开发应用软件时也多采用这些技术。13.3CASE技术

13.3.1CASE定义 计算机辅助软件工程(CASE)的产生与软件工程的发展有着紧密的关系,它是软件工程发展到一定时期的必然产物。20世纪60年代后期产生的软件工程完成了软件生产的第一次变革――由“手工作坊”方式向“工程化”方式的转变,而80年代后期产生的CASE技术则完成了软件生产的第二次变革――由“工程化”方式向“自动化”方式的转变。 CASE(ComputerAidedSoftwareEngineering,计算机辅助软件工程)是计算机技术在系统开发活动、技术和方法中的应用,是软件工具与开发方法的结合体。使人们能在计算机的辅助下进行软件开发,为软件开发的工程化、自动化进而智能化打下基础。 CASE的目的是:使开发支持工具与开发方法学统一结合起来;通过实现分析、设计与程序开发、维护的自动化,提高软件系统开发的效率和系统的质量,最终实现系统开发的全面自动化。CASE的主体目标是:通过一系列集成化的软件工具、技术和方法,使整个计算机系统的开发自动化。其具体目标是:提高系统开发效率。提高系统开发质量。加速系统开发进程。降低系统开发费用。实现系统设计的逆向工程(ReverseEngineering)的自动化。自动产生程序代码。自动进行错误的检查和校验。实现项目管理工作的自动化。改善系统开发过程的控制。集成系统开发的工具。提高软件的复用性和可移植性。CASE系统应该具备以下功能:支持多种软件开发方法学(如结构化方法、快速原型法、面向对象方法等)。支持软件开发生命周期的各个阶段:上游(分析和设计)、下游(编码、测试与维护)及项目管理。具有文档出版功能和文字、图形编辑功能。支持软件复用。支持开发信息资源共享。一般说来,一个CASE工具应该具备以下功能(或其中的一部分功能):用户通过CASE工具能够创建系统开发各阶段所需要的图表。收集有关图表上的对象以及对象之间的关系的信息,以便建立一个完整的信息集合。在一个中央资源库中,应将图表所表示的语义而不是图表本身存储起来。根据准确性、一致性、完整性检查图表。使用户能够用多种图表类型表示一个分析或设计的不同方面。使用户以图表来描述条件、循环、CASE结构和其它结构化程序结构。实施结构化的模型和设计,尽可能达到准确、一致。协调多个图表上的信息,检查信息的一致性,并集中检查信息的准确性、一致性和完整性。13.3.2CASE环境的组成与结构CASE环境是一个总称,代表了集成化项目支持(IPSE)和集成CASE(I-CASE)环境。以下主要介绍CASE环境的组成和结构两个方面的内容。1.CASE环境的组成Pressman把CASE环境的组成归纳为6个部分、3个层次,如图13-1所示。由硬件平台和操作系统(包括网络和数据库管理系统)组成的体系结构,是CASE环境的基础(底层)。集成化框架(IntegrationFramework)由一组专门程序组成,用于建立单个工具之间的通信,建立环境信息库,以及向软件开发者提供一致的界面,它们与CASE工具集成在一起,构成环境的顶层。余下的一层服务于可移植性的机构。它介于集成化工具与环境基础软、硬件之间,使集成后的工具无需做重大的修改即可与环境的软、硬件平台相适应。图13-1CASE环境的组成下面分别就CASE工具和环境信息库做简要说明。(1)CASE工具。CASE工具是指用于辅助软件开发、运行、维护、管理和支持等过程中的活动的软件。自软件工程学诞生以来,许多学者提出了不同的软件开发模型、开发方法和软件管理的方法,每当出现一种新模型、新方法,辅助它们的软件工具也会随之出现。从功能上看,大多数工具仅限于支持软件生命周期过程中的某些特定的活动。有支持软件开发、维护和管理等过程的各种活动的软件工具。例如,支持需求分析活动的需求分析工具、支持分析设计建模的建模工具、支持测试活动的测试工具和支持维护过程的维护工具等;也有支持软件开发方法的软件工具,如支持结构化方法的结构化工具、支持面向对象开发方法的面向对象工具和支持原型开发方法的原型工具等;还有应用类的工具,如多媒体开发工具、用户界面工具和数据库应用工具等。CASE环境的工具集,应该包括支持软件开发自动化的各种工具,而且工具集应是可扩充的,而且一种新工具出现以后,应该可以很容易地集成到工具集中。CASE工具种类繁多,难以有一个统一的分类方法来划分,一个工具往往仅对软件生命周期中的某个(或某些)活动提供支持,所以有的学者把CASE工具按软件过程的活动来分类,归纳为以下三类:支持软件开发过程的工具,包括需求分析工具、软件设计工具、编码工具、

温馨提示

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

评论

0/150

提交评论