第 12章 软件开发工具和环境
12.1 软件开发工具
(1)业务系统规划工具:提供一个可导出特定信息系统的,元模型,,使业务信息运行于企业的各个部门 。
(2)项目管理工具:借助这类工具,项目管理者可以有效地估算软件项目所需的工作量,成本和研制周期等,可以定义一个功能分解结构 WBS,并制定可行的项目开发计划;基于需求跟踪项目的开发情况;可采集度量数据,以此评价软件开发效率和产品质量 。
第 12章 软件开发工具和环境
(3)支持工具:这类工具用于支持软件工程过程,
具体包括文档编制工具,系统软件工具,质量保证工具,数据库管理工具和软件配置管理工具等 。
(4)分析和设计工具:这类工具是用于建立待开发系统的模型,并评价模型的质量,通过对模型进行一致性和有效性检查,保证分析与设计的完整性 。
它除包括支持某种开发方法的工具外,还包括基于规则体系的分析与设计机,它可使工具适用于各种分析和设计方法 。
(5)编程工具:这类工具包括用于支持大多数传统编程语言的编译器,编辑器和调试器等,从工具输出来看,4GL也属于这一类 。
第 12章 软件开发工具和环境
(6)测试与分析工具:常用的测试与分析工具包括静态分析工具和动态测试工具 。
(7)原型工具,作为除瀑布式开发模式以外的另一主要开发模式是原型开发模式,固其运用的灵活性和用户需求反应的快捷性愈来愈受到重视,特别是随着软件构件重用研究的深入,更增强了这种开发模式的实用价值 。
(8)维护工具:用于协助维护活动的完成,包括当运行发现问题时,定位到相应的软件开发基线;软件配置不完备时由源程序到分析与设计模型的逆转换工具等 。
第 12章 软件开发工具和环境
12.2 软件开发环境一、按解决的问题分类
1、程序设计环境
2、系统合成环境
3、项目管理环境第 12章 软件开发工具和环境二、按现有软件开发环境的演变趋向分类
1,以语言为中心的环境
2,面向结构的环境
3,工具箱环境
4,基于方法的环境第 12章 软件开发工具和环境三、按集成化程度分类
1,第一代
(1)建立在操作系统之上 (如 VMS和 UNIX等 )。
(2)工具间通过一个公用框架集成。
(3)现有工具不经大的修改即可加入,由调用过程来使用这些工具。
(4)工具所使用的文件结构不变,而且成为环境文件库的一部分。
(5)从人 — 机界面来看,这类环境主要采用单色、
低分辨率的文字终端,图形能力较差,多数使用菜单技术。
第 12章 软件开发工具和环境
2、第二代
(1)具有真正的数据库,而不是文件库,有时称为信息库,多数采用 E— R模式或 E— R— A模式。
(2)工具集成在更低的层次上,工具和文件都作为实体保存在数据库中,而不是简单地看作一种独立的成分。
(3)现有的工具不能随意放入,要作适当修改或定制。
(4)人 — 机界面采用高分辨率、点阵式工作站,具有多窗口、图形等功能,采用鼠标装置。
第 12章 软件开发工具和环境
3,第三代
(1)建立在知识库系统上。
(2)顺序调用独立工具的概念完全被集成化的工具集所替代,用户不再需要在任务之间来回切换不同的工具。
(3)采用形式化方法,软件重用等新技术。
(4)由多个工具控制的多窗口技术被单个工具操纵的多窗口技术所替代。
第 12章 软件开发工具和环境
12.3 软件开发工具和环境的应用及发展智能化、网络化、一体化、标准化是软件开发工具发展的几个方向。
1.智能化所谓智能化,具体地说就是在软件开发工具的研究与使用中引用人工智能,神经网络等技术,使得软件开发工具对于不确定性的信息,模糊信息具有更强的处理能力 。 由于在软件开发工作中,存在着大量不确定的因素,人们常常需要用知识与经验来加以补充或加工 。 而如何利用现代化的信息手段更加科学地处理,管理和利用这种知识与经验,正是人工智能等科学的研究内容 。
第 12章 软件开发工具和环境
2.网络化与网络技术的结合使软件开发工具的发展更加网络化现在开发软件,尤其是大型软件,通常都要考虑到它的网络功能,既考虑它是否能够应用于网络之上 。 对应于软件开发的这种发展趋势,软件开发工具也需要具备网络功能,以适应于新的开发要求和环境 。 其实,在较具规模的软件开发中,
即使所开发的软件不应用于网络之上,开发项目组在考虑软件开发工具时,为提高工作效率和更好地管理项目小组的工作进度,成本情况等,所选择的开发环境和软件开发工具一般都具有网络功能,以便于信息的交流和共享 。
第 12章 软件开发工具和环境
3.集成化通过对信息库的深入研究使软件开发工具的集成化 (或一体化 )得到具体地发展 。 软件开发工具集成化的发展,需要技术上达到一定的发展水平,这其中包括网络技术 。 只有对于软件开发中涉及的各种信息,以及在开发过程中它们的发生,变化,关系,
一致性等有了完整与深刻的理解,才能真正实现软件开发工具的一体化,而在这种一体化的发展中,
对于信息库的深入研究和充分利用,是一个基础内容 。 另外,计算模式演变,如客户/服务器 (Client
/ Server)结构,Web/ Server 结构等,也在软件开发工具一体化的发展方向中产生巨大作用 。
第 12章 软件开发工具和环境
4.标准化软件开发工具的标准化可以说是软件开发工具之间相互渗透与融合,相互磨合的过程 。 这种发展趋势是由软件部件,组合软件及即插即用的程序设计思想引起的 。 按这种思路,软件开发可以分为设计软件的结构和按结构选择组建构造软件阶段 。 要实现这一思想,软件组建的标准化是必须的,不但如此,软件结构的标准化也是必不可少的,否则就不可能实现这种即插即用的方式 。 软件开发工具必须按照一定的标准进行设计开发 。
第 12章 软件开发工具和环境
12.4 计算机辅助软件工程 CASE
一,CASE工具
CASE技术的核心是软件工具发展的必然结果 。 许多这类工具都是在微机上开发的,使用了强有力的图形功能以增强用户的接口,并将其加入到工作环境中去,使其能方便地被调用或互相调用 。 CASE工具主要是为了提高专业软件人员的开发效率 。
第 12章 软件开发工具和环境二、软件自动化
CASE的实质是为软件开发人员提供一组优化集成的且能大量节省人力的软件开发工具,其目的是实现软件生存各环节的自动化并使之成为一个整体 。
CASE技术是软件工具和软件方法的结合 。 它不同于以前的软件技术,因为它强调了解决整个软件开发过程的效率问题,而不仅仅是实现阶段 。 由于跨越了软件生存期的各个阶段,因此,CASE也是一种最完满的软件技术 。
CASE通过自动画出结构化图形,自动生成系统的文档,使手工的结构化方法得到实际的应用 。
第 12章 软件开发工具和环境三,CASE的作用
( 1) 一个具有快速响应,专用资源和早期查错功能的交互式开发环境 。
( 2) 对软件的开发和维护过程中的许多环节实现了自动化 。
( 3) 通过一个强有力的图形接口,实现了直观的程序设计 。
四,CASE工具实例