购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.5 软件开发环境

软件工程原理鼓励研制与采用各种先进的软件开发方法和工具,以便不断提高软件生产率。软件工程概念提出的初期,人们着重研究的是各种新的程序设计技术,这种程序设计方法和技术可使软件开发效率得到较大程度的改善。继程序设计技术、方法的改进之后,相继发展了许多适用于软件开发各阶段的方法。但是,这些软件方法和技术是建立在以图表为工具的手工作业基础之上的。软件开发人员只为别人开发自动化的工具,而自己的生产活动中依靠的仍然是知识人的密集型脑力劳动,其非常突出的特点是高比重的重复劳动。显然这无法从根本上扭转软件生产率低的落后局面。

为了改变这种局面,一个直接而有效的途径是从软件人员的角度出发,在软件工程实践方面提供一整套开发与维护的支持,这就是20世纪80年代以来在国际上引起了广泛重视和研究的软件工具,进而发展成为日臻完善的软件开发环境。

2.5.1 软件开发环境概述

软件开发环境(Software Development Environment,SDE)是一组相关软件工具的集合,它们组织在一起支持某种软件开发方法或者与某种软件开发模型相适应。SDE在欧洲又叫集成式项目支援环境(Integrated Project Support Environment,IPSE)。

软件开发环境的主要组成成分是软件工具。人-机界面是软件开发环境与用户之间的一个统一的交互式对话系统,它是软件开发环境的重要质量标志。存储各种软件工具加工所产生的软件产品或半成品(如源代码、测试数据和各种文档资料等)的软件环境数据库是软件开发环境的核心。工具间的联系和相互理解都是通过存储在信息库中的共享数据得以实现的。

软件开发环境数据库是面向软件工作者的知识型信息数据库,其数据对象是多元化并具有智能性的。软件开发数据库用来支撑各种软件工具,尤其是自动设计工具、编译程序等的主动或被动的工作。

较初级的SDE数据库一般包含通用子程序库、可重组的程序加工信息库、模块描述与接口信息库、软件测试与纠错依据信息库等;较完整的SDE数据库还应包括可行性与需求信息档案、阶段设计详细档案、测试驱动数据库、软件维护档案等。更进一步的要求是面向软件规划到实现、维护全过程的自动进行,这要求SDE数据库系统是具有智能性的,其中比较基本的智能结果是软件编码的自动实现和优化、软件工程项目的多方面不同角度的自我分析与总结。这种智能结果还应主动地被重新改造、学习,以丰富SDE数据库的知识、信息和软件积累。这时候,软件开发环境在软件工程人员的恰当的外部控制或帮助下逐步向高度智能与自动化迈进。

软件实现的根据是计算机语言。时至今日,计算机语言发展为算法语言、数据库语言、智能模拟语言等多种门类,在几十种重要的算法语言中,C&C++语言日益成为广大计算机软件工作人员的亲密伙伴,这不仅因为它功能强大、构造灵活,更在于它提供了高度结构化的语法、简单而统一的软件构造方式,使得以它为主构造的SDE数据库的基础成分——子程序库的设计与建设显得异常方便。

事实上,以C&C++为背景建立的SDE子程序库能为软件工作者提供比较有效、灵活、方便、友好的自动编码基础,尤其是C++的封装等特性,更适合大项目的开发管理和维护。

集成型软件开发环境是一种把支持多种软件开发方法和开发模型、支持软件开发全过程的软件工具集成在一起的软件开发环境。这种环境通常应具有开放性和可剪裁性。开放性为将环境外的工具集成到环境中来提供方便;可剪裁性根据不同的应用或不同的用户需求进行剪裁,以形成特定的开发环境。

集成型开发环境通常可由工具集和环境集成机制两部分组成。环境集成机制主要有数据集成机制、控制集成机制和界面集成机制。

(1)数据集成机制。 数据集成机制提供统一的数据模式和数据接口规范,需要相互协作的工具通过这种统一的模式与规范交换数据。数据集成可以有不同的层次,如共享文件、共享数据结构和共享信息库等。

(2)控制集成机制。 控制集成机制支持各工具或各开发活动之间的通信、切换、调度和协同工作,并支持软件开发过程的描述、执行和转接。通常使用消息通信机制实现控制集成,工具间发送的消息统一由消息服务器进行管理。

(3)界面集成机制。 界面集成机制为统一的工具界面风格和统一的操作方式提供支持,使环境中的工具具有相同的视觉效果和操作规则,减少用户为学习不同工具的使用所花费的开销。界面集成主要体现在相同或相似的窗口、菜单、工具条、快捷键、操作规则与命令语法等。

工具集包括事务系统规划工具、项目管理工具、支撑工具、分析设计工具、程序设计工具、测试工具、原型建造工具、维护工具和框架工具等,所有这些工具可分为贯穿整个开发过程的工具(例如,软件项目管理工具)和解决软件生命周期中某一阶段问题的工具(例如,软件价格模型及估算工具)。

由于软件开发环境具有集成性、开放性、可裁减性、数据格式一致性、风格统一的用户界面等特性,因而能大幅度提高软件生产率。其中开放性是指允许其他的软件工具加入到软件开发环境之中。

2.5.2 软件开发环境的功能与分类

较完善的软件开发环境通常具有如下功能:

(1)软件开发的一致性及完整性维护;

(2)配置管理及版本控制;

(3)数据的多种表示形式及其在不同形式之间自动转换;

(4)信息的自动检索及更新;

(5)项目控制和管理;

(6)对方法学的支持。

软件开发环境可按以下几种角度分类。

按软件开发模型及开发方法分类,有支持瀑布模型、演化模型、螺旋模型、喷泉模型,以及结构化方法、信息模型方法、面向对象方法等不同模型及方法的软件开发环境。

按功能及结构特点分类,有单体型、协同型、分散型和并发型等多种类型的软件开发环境。

按应用范围分类,有通用型和专用型软件开发环境。其中专用型软件开发环境与应用领域有关,故又可称为应用型软件开发环境。

按开发阶段分类,有前端开发环境(支持系统规划、分析、设计等阶段的活动)、后端开发环境(支持编程、测试等阶段的活动)、软件维护环境和逆向工程环境等。此类环境往往可通过对功能较全的环境进行剪裁而得到。软件开发环境由工具集和集成机制两部分构成,工具集和集成机制间的关系犹如“插件”和“插槽”间的关系。

2.5.3 软件开发环境的结构

软件开发环境通常由以下几个部分组成。

(1)工具集。 软件开发环境中的工具可包括:支持特定过程模型和开发方法的工具,如支持瀑布模型及数据流方法的分析工具、设计工具、编码工具、测试工具、维护工具,支持面向对象方法的OOA工具、OOD工具和OOP工具等;独立于模型和方法的工具,如界面辅助生成工具和文档出版工具;亦可包括管理类工具和针对特定领域的应用类工具。

(2)集成机制。 对工具的集成及用户软件的开发、维护及管理提供统一的支持。按功能可划分为环境信息库、过程控制及消息服务器、环境用户界面三个部分。

(3)环境信息库。 环境信息库是软件开发环境的核心,用以储存与系统开发有关的信息并支持信息的交流与共享。库中储存两类信息,一类是开发过程中产生的有关被开发系统的信息,如分析文档、设计文档、测试报告等;另一类是环境提供的支持信息,如文档模板、系统配置、过程模型、可复用构件等。

(4)过程控制和消息服务器。 过程控制和消息服务器是实现过程集成及控制集成的基础。过程集成是按照具体软件开发过程的要求进行工具的选择与组合,控制集成并行工具之间的通信和协同工作。

(5)环境用户界面。 包括环境总界面和由它实行统一控制的各环境部件及工具的界面。统一的、具有一致的视感(Look & Feel)的用户界面是软件开发环境的重要特征,是充分发挥环境的优越性、高效地使用工具并减轻用户的学习负担的保证。

软件开发环境的结构为层次性结构,可分为四层。

(1)宿主层: 包括基本宿主硬件和基本宿主软件。

(2)核心层: 包括工具组、环境数据库和会话系统。

(3)基本层: 包括至少一组工具,如编译工具、调试工具等。

(4)应用层: 以基本层为基础补充某些工具,以适应应用软件的要求。

2.5.4 软件开发环境的发展

目前,随着软件开发工具的积累与自动化工具的增多,软件开发环境进入了第三代ICASE(Integrated Computer-Aided Software Engineering)。系统集成方式经历了从数据交换(早期CASE采用的集成方式:点到点的数据转换),到公共用户界面(第二代CASE:在一致的界面下调用众多不同的工具),再到目前的信息中心库方式。这是ICASE的主要集成方式。它不仅提供数据集成(1991年IEEE为工具互连提出了标准P1175)和控制集成(实现工具间的调用),还提供了一组用户界面管理设施和一大批工具,如垂直工具集(支持软件生存期各阶段,保证生成信息的完备性和一致性)、水平工具集(用于不同的软件开发方法),以及开放工具槽。

ICASE信息库是一组实现“数据-工具”,以及“数据-数据”集成的机制和数据结构,它提供了明显的数据库管理系统的功能。此外,中心库还完成了下面功能。

(1)数据完整性: 包括确认中心库的数据项,保证相关对象间的一致性,以及当对一个对象的修改需要对其相关对象进行某些修改时自动完成层叠式修改等功能。

(2)信息共享: 提供在多个开发者和多个开发工具间共享信息的机制,管理和控制对数据及加锁/解锁对象的多用户访问,以使得修改不会被相互间不经意地覆盖。

(3)数据-工具集成: 建立可以被环境中所有工具访问的数据模型,控制对数据的访问,实现了配置管理功能。

(4)数据-数据集成: 数据库管理系统建立数据对象间的关系,使其可以完成其他功能。

(5)方法学实施: 存储在中心库中的数据的ER模型可能蕴含了特定的软件工程范型,至少关系和对象定义了一系列为了建立中心库的内容而必须进行的步骤。

(6)文档标准化: 在数据库中对象的定义直接导致了创建软件工程文档的标准方法。

ICASE的最终目标是实现应用软件的全自动开发,即开发人员只要写好软件的需求规格说明书,软件开发环境就自动完成从需求分析开始的所有的软件开发工作,自动生成供用户直接使用的软件及有关文档。 9aPhYb8BYiYFnkiHfKHU9Sp5UvlDiKT2HpRtwypWm4JVu04eO8JWCIQ2s8b7spSb

点击中间区域
呼出菜单
上一章
目录
下一章
×