第十三章 软件开发环境.docx
《第十三章 软件开发环境.docx》由会员分享,可在线阅读,更多相关《第十三章 软件开发环境.docx(11页珍藏版)》请在冰豆网上搜索。
![第十三章 软件开发环境.docx](https://file1.bdocx.com/fileroot1/2023-2/5/5b93479c-115a-4abc-bfe1-dcc6c0badb4c/5b93479c-115a-4abc-bfe1-dcc6c0badb4c1.gif)
第十三章软件开发环境
第十三章软件开发环境
软件开发环境主要目标是提高软件生产率,改善软件质量和降低软件成本,而这些目标的实现只能依靠软件工具的广泛应用,所以软件工具是开发环境中最主要的组成部分。
本章内容的要点在于软件开发环境、软件工具及CASE等基本概念的了解。
13.1软件开发环境
在软件工程学中,方法和工具是同一个问题的两个不同方面,方法是工具研制的先导,工具是方法的实在体现,软件工程方法的研究成果要最终实现为软件工具和系统,才能充分发挥软件工程方法在软件开发中的作用。
软件开发环境,就是围绕着软件开发的一定目标而组织在一起的相关一组软件工具的有机集合。
13.1.1软件开发环境概论
1.什么是软件开发环境
软件开发环境是指在计算机的基本软件的基础上,为了支持软件的开发而提供的一组工具软件系统。
一个由IEEE和ACM支持的国际工作小组提出的关于“软件开发环境”的定义是:
“软件开发环境是相关的一组软件工具集合,它支持一定的软件开发方法或按照一定的软件开发模型组织而成”。
美国国防部在STARS计划中定义如下;
“软件工程环境是一组方法、过程及计算机程序(计算机化的工具)的整体化构件,它支持从需求定义、程序生成直到维护的整个软件生存期”。
软件开发环境的定义可从三方面理解:
(1)软件开发环境是一组相关工具的集合。
(2)这些相关工具按一定的开发方法或一定开发处理模型组织起来的。
(3)这些相关工具支持整个软件生存期的各阶段或部分阶段。
2.软件开发环境的发展
在70年代,软件开发与设计方法由结构化程序设计技术(SP)向结构化设计(SD)技术发展,而后又发展了结构化分析技术的一整套的相互衔接的SA-SD的方法学。
在80年代中期与后期,主要是实时系统设计方法,以及面向对象的分析和设计方法的发展,它克服了结构化技术的缺点。
在90年代主要是进行系统集成方法和集成系统的研究,所研究的集成CSAE环境可以加快开发复杂信息系统的速度,确保用户软件开发成功,提高软件质量,降低投资成本和开发风险。
3.对软件开发环境的要求
软件开发环境的目标是提高软件开发的生产率和软件产品的质量。
(1)软件开发环境应是高度集成的一体化的系统。
(2)软件开发环境应具有高度的通用性。
(3)软件开发环境应易于定制、裁剪或扩充以符合用户要求,即软件开发环境应具有高度的适应性和灵活性。
(4)软件开发环境不但可应用性要好,而且是易使用的、经济高效的系统。
(5)软件开发环境应有辅助开发向半自动开发和自动开发逐步过渡的系统。
13.1.2软件开发环境的分类
软件开发环境是与软件生存期,软件开发方法和软件处理模型紧密相关的。
其分类方法很多,本节按解决的问题、软件开发环境的演变趋向与集成化程度进行分类。
1.按解决的问题分类
(1)程序设计环境。
(2)系统合成环境。
(3)项目管理环境。
项目管理环境的责任是解决由于软件产品的规模大、生存期长、人们的交往多而造成的问题。
2.按软件开发环境的演变趋向分类
(1)以语言为中心的环境。
(2)工具箱环境。
这类环境的特点是由一整套工具组成,供程序设计选择之用,如有窗口管理系统,各种编辑系统,通用绘画系统,电子邮件系统,文件传输系统,用户界面生成系统等。
(3)基于方法的环境。
这类环境专门用于支持特定的软件开发方法。
3.按集成化程度分类
(1)第一代,建立在操作系统上。
(2)第二代,具有真正的数据库,而不是文件库。
(3)第三代,建立在知识库系统上,出现集成化工具集。
13.2软件工具的基本概念
软件工具是软件开发环境中最主要的组成部分,软件开发环境的主要目标是提高软件开发的生产率、改善软件质量,和降低软件成本。
而这些目标的实现,只能直接依靠软件工具的广泛使用,所以对软件工具开发、设计和使用的研究是十分重要的。
13.2.1什么是软件工具
软件工具是指为支持计算机软件的开发、维护、模拟、移植或管理而研制的程序系统。
所以软件工具是一个程序系统。
软件工具通常由工具、工具接口和工具用户接口三部分构成。
工具通过工具接口与其他工具、操作系统或网络操作系统,以及通信接口、环境信息库接口等进行交互作用。
当工具需要与用户进行交互作用时则通过工具的用户接口。
13.2.2当前软件工具发展的特点
软件工具的发展有以下特点:
(1)软件工具由单个工具向多个工具集成化方向发展。
(2)重视用户界面的设计。
(3)不断的采用新理论和新技术。
(4)软件工具的商品化推动了软件产业的发展,而软件产业的发展,又增加了对软件工具的需求,促进了软件工具的商品化进程。
13.2.3软件工具的分类
如何对软件工具进行分类,一直是人们研究的热点,自90年代以来掀起了新的热潮。
Reifer和Trattner将软件工具分为6类:
模拟工具、开发工具、测试和评估工具、运行和维护工具、性能测量工具和程序设计支持工具。
13.3计算机辅助软件工程(CASE)
计算机辅助软件工程这一术语的英文为Computer-AidedSoftwareEngineering,缩写为CASE。
13.3.1CASE定义
CASE是一组工具和方法集合,可以辅助软件开发生命周期个阶段进行软件开发。
CASE把软件开发技术、软件工具和软件开发方法集成到一个统一而一致的架中,并且吸收了CAD(计算机辅助设计)、软件工程、操作系统、数据库、网络和许多其他计算机领域的原理和技术。
因而,CASE领域是一个应用、集成和综合的领域。
13.3.2CASE分类
1.CASE技术种类
CASE系统所涉及到的技术有两大类:
一类是支持软件开发过程的本身的技术,如支持规约、设计、实现、测试等等。
还有一种特殊的CASE技术,即元-CASE技术。
2.CASE工具
软件工具是用于辅助计算机软件的开发、运行、维护和管理等活动的一类软件。
随着CASE的出现,人们也经常使用工具这一术语。
人们一般不加区别地使用软件工具和CASE工具这两个词。
3.CSAE工具的分类
对CASE工具分类的标准可分为:
(1)功能。
(2)支持的过程。
(3)支持的范围。
1993年Fuggetta根据CASE系统对软件系统的支持范围,提出CASE系统可分为三类:
(1)支持单个过程任务的工具。
(2)工作台支持某一过程所有活动或某些活动。
(3)环境支持软件过程所有活动或至少大部分。
13.3.3CASE的集成
以一种集成的方式工作的CASE工具可获得更多收益,因为集成方式组装特定工具以提供对过程活动更广泛的支持。
(1)平台集成:
工具运行在相同的硬件/操作系统平台。
(2)数据集成:
工具使用共享数据模型来操作。
(3)表示集成:
工具提供相同的用户界面。
(4)控制集成:
工具激活后能控制其他工具的操作。
(5)过程集成:
工具在一个过程模型和“过程机”的指导下使用。
1.平台集成
“平台”或是一个单一的计算机或操作系统或是一个网络系统。
2.数据集成
数据集成是指不同软件工程能相互交换数据。
(1)共享文件。
(2)共享数据结构。
(3)共享仓库。
最简单的数据集成形式是基于一个共享文件的集成,UNIX系统就是这样。
UNIX有一个简单的文件模型,即非结构化字符流。
任何工具都能把信息写入文件中,也能读其他工具生成的文件。
UNIX还提供管道。
3.表示集成
表示集成或用户界面集成意指一个系统中的工具使用共同的风格,以及采用共同的用户交互标准集。
工具有一个相似的外观。
当引入一个新工具时,用户对其中一些用户界面已经很熟悉,这样就减轻了用户的学习负担。
目前,表示集成有如下三种不同级别:
(1)窗口系统集成。
(2)命令集成。
(3)交互集成。
4.控制集成
控制集成支持工作台或环境中一个工具对系统中其他工具的访问。
5.过程集成
过程集成意指CASE系统嵌入了关于过程活动、阶段、约束和支持这些活动所需的工具的知识。
13.3.4CASE生存期
13.3.5CASE工作台
1.CASE工作台概述
(1)CASE工作台的分类。
一个CASE工作台是一组工具集,支持像设计、实现或测试等特定的软件开发阶段。
将CASE工具组装成一个工作台后工具能协调工作,可提供比单一工具更好的支持。
可实现通用服务程序,这些程序能被其他工具调用。
工作台工具能通过共享文件、共享仓库或共享数据结构来集成。
(2)开放式工作台和封闭式工作台。
2.程序设计工作台
程序设计工作台由支持程序开发过程的一组工具组成。
将编译器、编辑器和调试器这样的软件工具一起放在一个宿主机上,该机器是专门为程序开发设计的。
组成程序设计工作台的工具可能有:
(1)语言编译器:
将源代码程序转换成目标码。
(2)结构化编辑器:
结合嵌入的程序设计语言知识。
(3)连接器。
(4)加载器。
(5)交叉引用。
(6)按格式打印。
(7)静态分析器。
(8)动态分析器。
(9)交互式调试器。
3.分析和设计工作台
分析和设计工作台支持软件过程的分析和设计阶段,在这一阶段,系统模型已建立(例如,一个数据库模型,一个实体关系模型等)。
这些工作台通常支持结构化方法中所用的图形符号。
支持分析和设计的工作台有时称为上游CASE工具。
它们支持软件开发的早期过程。
程序设计工作台则成为下游CASE工具。
4.测试工作台
测试是软件开发过程较为昂贵和费力的阶段。
测试工作台永远应为开放系统,可以不断演化以适应被测试系统的需要。
第13章例题分析与解答
一、填空题
1.软件开发环境是一组__________的集合。
答案:
相关软件工具
2.开发软件工具的主要目的是为了提高软件生产率和改善__________。
答案:
软件的质量
3.用来辅助软件开发、运行、维护、管理、支持等过程中的活动的软件称为_______。
答案:
软件工具
4.CASE可以辅助软件开发生命周期各个阶段进行软件开发,它是一组_________。
答案:
工具和方法的集合
5.环境集成机制主要有数据集成、表示集成、控制集成、过程集成,还有_________。
答案:
平台集成
二、选择题
1.数据集成指不同软件工程能相互( )。
A.合作 B.交换数据 C.交流 D.通信
答案:
B
2.在软件的开发与维护过程中,用来存储、更新、恢复和管理一个软件的多版本,它是( )工具。
A.文档分析 B.项目管理 C.成本估算 D.版本控制
答案:
D
3.软件开发环境是由软件开发工具集和环境集成机制构成的。
前者用于支持软件开发的相关过程、活动和任务;后者为( )软件开发、维护和管理提供统一的支持。
A.软件开发 B.软件系统 C.系统工具 D.工具集成
答案:
D
第13章自测题及参考答案
一、名称解释
1.软件开发环境2.软件工具3.CASE 4.数据集成
二、填空题
1.环境集成主要有数据集成、界面(表示)集成、控制集成、过程集成和________。
(平台集成 )
2.软件开发环境是与软件生存期、__________和软件处理模型紧密相关的。
(软件开发方法)
3.软件工具通常由工具、工具接口和_________三部分构成。
(工具用户接口)
4.软件开发环境,就是围绕着软件开发的一定目标而组织在一起的一组相关_________的有机集合。
(软件工具)
5.软件开发环境是相关的一组_________的集合。
(软件工具)
6.基于方法的环境可分为两大类:
支持软件开发周期特定阶段的管理与__________。
(开发过程管理)
7.产品管理包括版本管理和_________。
(配置管理)
8.开发过程管理包括项目计划、控制和________等。
(任务管理)
9.软件开发环境的主要目标是提高软件开发的生产率、________和降低软件成本。
(改善软件质量)
10.CASE这一术语的英文为:
____________________。
(Computer-AidedSoftwareEngineering)
11.CASE是多年来在软件开发管理、软件开发方法、软件开发环境和___________等方面研究和发展的产物。
(软件工具)
三、选择题
1.早期的软件工具只能完成一件特定的任务。
后来出现了工作台,它将一组( C)组合在一起,对软件开发过程的某些方面提供支持。
A.软件开发环境 B.软件 C.工具 D.工作台
2.以语言为中心的程序设计环境是支持软件生存期( B)活动,特别强调对编程、调试和测试活动的支持。
A.前期 B.后期 C.中期 D.初期
3.软件开发环境中最主要的组成部分是( C)
A.软件工程 B.项目管理工具C.软件工具 D.需求分析工具
4.软件工具是指为支持计算机软件的开发、维护、模拟、移植或管理而研制的程序系统。
所以软件工具是一个( C)。
A.软件工程 B.项目管理工具C.程序系统 D.需求分析工具
5.CASE是一组( B)的集合
A.工具 B.工具和方法 C.方法 D.程序
6.CASE系统所涉及到的技术有两类:
一类是支持软件开发过程本身的技术;另一类是支持软件( D)的技术。
A.开发过程本身 B.开发方法管理
C.开发方法本身D.开发过程管理
7.平台集成是指工具运行在相同的( C)平台上。
A.硬件 B.软件 C.硬件/操作系统 D.硬件/软件
8.表示集成是指工具提供相同的( B)。
A.语言 B.用户界面 C.命令 D.操作系统
9.控制集成是指工具激活后能控制其他( A)的操作。
A.工具 B.系统 C.软件 D.应用
10.支持像设计、实现或测试等特定的软件开发阶段的CASE工作台是一组( A)。
A.工具集 B.软件包 C.平台集 D.程序包
《软件工程》习题参考答案13
1、什么是软件开发环境?
请列出其发展情况。
答:
软件开发环境是指在计算机的基本软件的基础上,为支持软件的开发而提供的一组工具软件系统。
具体地说,软件开发环境是一组相关工具的集合。
这些相关工具按一定的开发方法或一定开发处理模型组织起来的,这些相关工具支持整个软件生存期的各阶段或部分阶段。
软件开发环境的发展阶段:
(1)70年代,软件开发与设计方法出现了结构化分析技术的一整套相互衔接的SA-SD的方法学。
与此相适应的计算机辅助软件工程技术则主要由开发孤立的软件工具而逐步向程序设计环境的开发和使用方向发展,出现了第一代的基于正文的CASE工具。
(2)80年代中期与后期,主要是实时系统设计方法,以及面向对象的分析和设计方法的发展,它克服了结构化技术的缺点。
在这期间开发了第二代的CASE工具,其特点是支持使用图形表示的结构化方法,如数据流图与结构图。
其开发环境表现在提高环境中工具的集成性方面,如"集成的项目支持环境"。
(3)80年代后期和90年代初期出现了"基于信息工程CASE"技术,这种环境集成了用于项目计划、分析、设计、编程、测试和维护的一个工具箱的集合。
(4)90年代出现一系列集成的CASE软件产品,用以实现需求管理、应用程序分析设计和建模、编码、软件质量保证和测试、过程和项目管理及文档生成管理等软件开发工作的规范化、工程化和自动化。
2、请叙述软件开发环境的分类。
答:
软件开发环境可按解决的问题、软件开发环境的演变趋向和集成化程度进行分类:
(1)按解决的问题可分为:
程序设计环境、系统合成环境、项目管理环境三类。
(2)按软件开发环境的演变趋向可分为:
以语言为中心的环境、工具箱环境和基于方法的环境三类。
(3)按集成化程度有第一代、第二代、第三代的开发环境。
3、何谓软件工具?
通常包含哪几部分?
答:
软件工具的定义是:
可用来帮助和支持软件需求分析、软件开发、测试、维护、模拟、移植或管理而编制的计算机程序或软件。
软件工具是一个程序系统。
软件工具通常由工具、工具接口和工具用户接口三部分构成。
4、当今软件工具发展有何特点?
答:
软件工具的发展有以下特点:
(1)软件工具由单个工具向多个工具集成化方向发展。
(2)重视用户界面设计。
(3)不断地采用新理论和新技术。
(4)软件工具的商品化与软件产业的发展形成良性互动。
5、什么是CASE?
CASE工具有哪些分类?
答:
CASE是一组工具和方法的集合,可以辅助软件开发生命周期各阶段进行软件开发。
CASE把软件开发技术、软件工具和软件开发方法集成到一个统一而一致的架中,并且吸收了CAD(计算机辅助设计)、软件工程、操作系统、数据库、网络和许多其他计算机领域的原理和技术。
因而,CASE领域是一个应用、集成和综合的领域。
根据CASE系统对软件过程的支持范围,CASE可分为三类:
(1)支持单个过程任务的工具。
(2)支持某一过程所有活动或某些活动的工作台。
。
(3)环境支持软件过程大部分乃至所有活动,一般包括几个不同工作台的集合。
6、请叙述集成化CASE的五级模型。
答:
集成化CASE的五级模型包括
(1)平台集成:
工具运行在相同的硬件/操作系统平台上
(2)数据集成:
工具使用共享数据模型来操作
(3)表示集成:
工具使用相同的用户界面
(4)控制集成:
工具激活后能控制其他操作
(5)过程集成:
工具在一个过程模型和"过程机"的指导下使用
7、CASE工作台有哪些分类?
答:
CASE工具台是一组工具集,支持像设计、实现或测试等特定的软件开
发阶段。
CASE工具组装成一个工具台后工具能协同工作,可提供比单一工具更好的支持。
CASE工作台包括:
(1)程序设计工作台。
由支持程序设计的一组工具组成。
(2)分析和设计工作台。
支持软件过程的分析和设计阶段。
(3)测试工作台。
(4)交叉开发工作台。
这些工作台支持在一种机器上开发软件,而在其他的系统上运行所开发的软件。
(5)配置管理(CM)工作台。
这些工作台支持配置管理。
(6)文档工作台。
这些工具支持高质量文档的制作。
(7)项目管理工作台。
支持项目管理活动。