软件工程-第16章第2节_第1页
软件工程-第16章第2节_第2页
软件工程-第16章第2节_第3页
软件工程-第16章第2节_第4页
软件工程-第16章第2节_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

16.1.2软件开发环境的分类

16.1.2软件开发环境的分类软件开发环境是与软件生存期、软件开发方法和软件生存期模型紧密相关的。其分类方法很多,本节按解决的问题、软件开发环境的演变趋向与集成化程度进行分类。1.按解决的问题分类1)程序设计环境程序设计环境解决如何将规范说明转换成可工作的程序问题,它包括两个重要部分:方法与工具。16.1.2软件开发环境的分类2)系统合成环境系统合成环境主要考虑把很多子系统集成为一个大系统的问题。所有的大型软件系统都有两个基本特点:它们是由一些较小的、较易理解的子系统组成的,因此,需要有一个系统合成环境来辅助控制子系统及其向大系统的集成。3)项目管理环境大型软件系统的开发和维护必然会有许多人员在一段时间内协同工作,需要对人与人之间的交流和合作进行管理。项目管理环境的责任是解决由于软件产品的规模大、生存期长、人们的交往多而造成的问题。16.1.2软件开发环境的分类2.按软件开发环境的演变趋向分类1)以语言为中心的环境以语言为中心的环境的特点是强调支持某特定语言的编程;包含支持某特定语言编程所需的工具集;环境采取高度的交互方式;仅支持与编程有关的功能(如编码和调试),不支持项目管理等功能。这类环境的例子有InterLisp(Lisp语言),SmallTalk80(SmallTalk语言),ToolparkPascal语言),POS(Pascal语言)和Ada(Ada语言)。16.1.2软件开发环境的分类以语言为中心的程序设计环境是最早被人们开发并使用的环境,也是目前使用最多的环境。这类环境具有以下特点:(1)支持软件生存期后期活动,特别强调对编程、调试和测试活动的支持。

(2)该类环境的特点依赖于程序设计语言(高级语言)。

(3)该类环境感兴趣的研究领域是增量开发方法(IncrementalDevelopment)。16.1.2软件开发环境的分类2)工具箱环境工具箱环境的特点由一整套工具组成,供程序设计选择之用,如有窗口管理系统、各种编辑系统、通用绘图系统、电子邮件系统、文件传输系统及用户界面生成系统等。用户可以根据个人需要对整个环境的工具进行裁剪,以产生符合自己需要的个人的系统环境。其次这类环境特点是独立于语言的。这类环境的例子有:UNIX,Windows,APSE的接口集CAIS和SPICE等。另外还可以按集成化程度将环境分成第一代、第二代和第三代集成化环境,以及分布式环境和智能环境等。16.1.2软件开发环境的分类3)基于方法的环境基于方法的环境是专门用于支持特定的软件开发方法的。这些方法可用于两大类:一是软件开发周期中某个特定阶段的管理,二是软件开发周期中某个特定阶段的开发过程。前者包括需求说明、设计、确认、验证和重用。后者又可细分为支持产品管理与支持开发和维护产品的过程管理。产品管理包括版本管理和配置管理。开发过程管理包括项目计划和控制、任务管理等。这类环境的例子有Cornell程序综合器,支持结构化方法,SmallTalk80支持面向对象方法。16.1.2软件开发环境的分类3.按集成化程度分类环境的形成与发展主要体现在各工具的集成化的程度上,当前国内外软件工程把软件开发环境分为三代。·第一代建立在操作系统之上,工具是通过一个公用框架集成的,工具不经修改即可由调用过程来使用;工具所使用的文件结构不变,而且成为环境库的一部分。人机界面图形能力差,多使用菜单技术。例如,20世纪70年代UNIX环境以文件库为集成核心。16.1.2软件开发环境的分类·第二代具有真正的数据库,而不是文件库,多采用E-R模式,在更低层次集成工具。工具和文件都作为实体保存在数据库中,现有工具要作适当修改或定制方可加入。人机界面采用图形、窗口等。例如,Ada程序设计环境(APSE)以数据库为集成核心。·第三代建立在知识库系统上,出现集成化工具集,用户不用在任务之间切换不同的工具,采用形式化方法和软件重用等技术,采用多窗口技术。这一代软件集成度最高,利用这些工具,实现了软件开发的自动化,大大提高软件开发的质量和生产率,缩短软件开发的周期,并可降低软件的开发成本。例如,20世纪80年代CASE与目前的CASE集成化产品。16.2软件工具软件工具是指为支持计算机软件的开发、维护、模拟、移植或管理而研制的软件系统。是为特定目标而开发的,例如项目管理工具、数据库管理工具,同时也是为实现软件生存周期中的各种处理活动(包括管理、开发和维护)的自动化和半自动化而开发的程序系统。开发软件工具的主要目的是为了提高软件生产率和改善软件的质量。16.2软件工具正像程序系统可分为系统和子系统一样,软件工具也可具有不同的粒度,称之为工具和工具片断。例如,编译程序是一个编程环境中的工具,但是编译程序中包括扫描程序、词法分析、语法分析、优化以及代码生成这样一些部分,每一个部分称为工具片断。很多情况下,工具片断也可如同工具一样,用以组合在一起以实现某个处理;或者按用户要求定制和裁剪,以生成适合用户需要的子环境的工具或工具片断,这些均可作为构成部件。在很多软件工程环境中,将工具和工具片断组合在一起进行管理。基本工具部件的粒度对集成机制的设计是有关系的。16.2软件工具软件工具通常由工具、工具接口和工具用户接口3部分构成。工具通过工具接口与其他工具、操作系统或网络操作系统以及通信接口、环境信息库接口等进行交互。当工具需要与用户进行交互时,则通过工具的用户接口来进行。16.2.1软件工具的特点在过去几十年中,软件工具随着计算机软件的发展而不断发展,例如在计算机发展的初期(1951年),Wilks就开始用子程序和子程序库的方法来提高程序质量,同时开发了相关的工具。1953年IBM公司用符号汇编程序代替绝对地址编址的程序,麻省理工学院实现了浮动地址程序,这些均是早期的工具,极大地提高了程序质量和生产率。以后一段时期是语言工具(以及与之相关的编译程序、调试工具、排错程序、静态分析和动态追踪工具等)大发展时期。1960年麻省理工学院开发了第一个兼容分时系统(CTSS),该系统使用正文编辑程序。16.2.1软件工具的特点于是在20世纪60年代中期,正文编辑工具由行编辑、字符流编辑发展到全屏幕编辑,以至于目前的结构编辑程序或语法制导的编辑工具程序。编辑工具的发展改善了人机交互界面的友好性,特别值得一提的是,图形用户界面工具的迅速发展,在人机交互操作方式上是一个革命性进展,它已深刻影响到软件开发技术的各个方面,对软件工程环境的自动化、软件开发生产率和软件质量都有极大推动作用。16.2.1软件工具的特点从20世纪60年代未70年代初软件工程技术出现以来,软件工具和软件开发环境获得迅速发展。20世纪70年代初的软件工程环境主要是支持程序设计的软件环境,在认识到编码只占整个软件开发工作量的15%以下,再加上软件生存期的前面开发阶段较多采用图形技术,就更加重视软件生产其他各阶段的支撑工具。20世纪70年代后期由于结构化技术发展,出现了一批软件工具和系统,如1975~1977年期间,有SADT(Softech公司的结构分析和设计技术工具);SREM(软件需求工程方法学)是一个自动需求分析工具,并使用需求陈述语言(RSL)工具。PSL/PSA(问题陈述语言/问题陈述分析)是由Michigan大学开发的ISDOS项目的一部分,它是一个计算机辅助的设计和规格说明的分析工具。除了以上分析工具外,还有支持软件设计的程序设计语言(PDL码)工具和设计分析系统(DAS)以及大量支持测试和开发管理的工具。16.2.1软件工具的特点20世纪80年代以来,软件工具的发展形成了第二代的CASE工具,其特点是使用图形表示的结构化方法的图形工具,取代20世纪70年代基于正文的第一代CASE工具。20世纪80年代软件工具的另一大特点是工具间紧密耦合的集成性替代了孤立开发的工具之间的不兼容性。所有这些对于提高软件质量和生产率,降低软件成本起到了更大的作用。16.2.2软件工具的特点20世纪80年代初,IBM公司曾对几家大公司的软件工具的使用情况进行过调查,结论是由于软件工具的开发成本太大和不易移植,以及工具集成性差、不兼容等问题,实际使用工具并不多。目前,工具开发和使用情况有了根本性改观,工具的生产、销售和使用情况均表现出了猛烈的增长势头。16.2.2软件工具的特点软件工具的发展有以下特点:(1)软件工具由单个工具向多个工具集成化方向发展。如将编辑、编译、运行结合在一起构成集成工具。注重工具间的平滑过渡和互操作性(如微软公司的Office工具)。(2)重视用户界面的设计。交互式图形技术及高分辨率图形终端的发展,为用户图形提供了物质基础。多窗口管理、鼠标器使用及图形资源的表示等技术,极大地改善了用户界面的质量,改善了软件的感观。16.2.2软件工具的特点(3)不断地采用新理论和新技术。如许多软件工具的研制中采用了数据库技术、交互图形技术、网络技术、人工智能技术和形式化技术等。(4)软件工具的商品化推动了软件产业的发展,而软件产业的发展,又增加了对软件工具的需求,促进了软件工具的商品化进程。16.2.3软件工具的分类软件工具种类繁多、涉及面广,如编辑、编译、正文格式处理、静态分析、动态追踪、需求分析、设计分析、测试、模拟和图形交互等。如何对软件工具进行分类,一直是人们研究的热点,自20世纪90年代以来掀起了新的研究热潮。Reifer和Trattner将软件工具分为6类:模拟工具、开发工具、测试和评估工具、运行和维护工具、性能测量工具和程序设计支持工具。Westinghouse公司于1992年公布了以下13类软件工具分类标准和该类的范例工具以及例子:16.2.3软件工具的分类(1)系统模拟和模型工具:指结构和数据流模型、算法模拟、定时和大小工具及动画工具,例如英国NaturalMotion公司的Endorphin是角色动态生成软件。(2)需求追踪工具:指编辑程序、数据库管理系统及在DBMS上的应用运行工具,例如IBM的RationalRequisitePro、青铜器RDM(IPD+CMMI+Scrum一体化研发管理解决方案)。(3)需求分析工具:指正文和数据流图工具、数据字典工具及面向对象的分析工具,例如原型工具Axure、PowerDesinger、StraUML。16.2.3软件工具的分类(4)设计工具:指结构图,模块规格说明,伪码、代码生成程序及语言敏感的编辑程序,例如微软VisualStudio、NetBeans、PyCharm、IntelliJIDEA、Eclipse、AptanaStudio3等。(5)编码和单元测试工具:指编码程序,语言敏感的编辑程序,语言、代码格式化程序,交叉编译程序,连接程序及源码层次的调试程序,例如JUnit、ParasoftJtest、ParasoftC++Test、ParasoftInsure++ 等。16.2.3软件工具的分类(6)测试和集成工具:指测试驱动程序、覆盖分析程序、回归测试及测试床,测试管理工具如Bugfree、Bugzilla、TestLink、MantisZentaopms,功能自动化测试工具如Watir、Selenium、MaxQ、WebInject,性能自动化测试工具如Jmeter、OpenSTA、DBMonster、TPTEST、WebApplicationLoadSimulator,弹道测试管理工具、基于Web的测试管理工具QualityCenter,回归测试工具QuickTestProfessional,负载测试工具LoadRunner、RationalFunctionalTester、BorlandSilk、WinRunner、Robot等。国内免费软件测试工具有AutoRunner和TestCenter。16.2.3软件工具的分类(7)文档工具:指桌面出版系统、文档模板及格式管理系统,例如TotalCommander、DropIt。(8)项目管理工具:指计划和进度、追踪和状态报告及成本估算和代码行估算,例如Oracle公司的

温馨提示

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

评论

0/150

提交评论