软件支援环境(Software Support Environment)
目录 |
软件支援环境是指辅助技术人员及管理人员更加高效、可靠地开发各类软件,并对已有软件进行维护的完整的软件系统。
软件支援环境由集成机制和一组工具组成。
主要由环境库、一组环境基本语言、用户界面以及一些辅助设施所组成。环境库用来存放和管理各种软件工具和软件开发项目本身的信息。环境基本语言主要指构造环境的工作语言和使用环境的控制语言。所谓工作语言,是指用来编写软件工具及工具片段的语言,在环境库管理机制的支持下运行。所谓控制语言,是指用来构造软件开发活动的语言,即用来编写软件开发活动的规程,通过对规程的执行来操纵软件工具,实现工具之间的转接,达到某种程度上软件开发活动的脱机执行。现代软件工程环境多采用面向对象的风格来设计用户界面,现代的计算机图形技术可以方便地使这种用户界面非常直观,使用十分简捷。
由通用工具和专用工具所组成。包括系统分析工具、软件设计工具、程序编码工具、软件测试工具、软件理解工具 、配置管理工具 、版本管理工具 、 文档出版工具、联机求助工具等。支持特定软件方法学的环境还包括一些特定的工具,如原型快速生成工具和面向对象开发工具等。在对象库中,它们或以单独的对象存放,或以工具片段的形式存放,在使用前动态生成。但是,它们都与对象库有统一的数据接口,利用消息机制进行通信,实现操作实体的规范式传送,从而使同一软件开发活动中各工具之间的转接变得相当平滑。
软件支援环境的集成主要表现在数据集成、界面集成和过程集成( 又称控制集成 )3个方面,即统一的数据存放方式、统一的表现风格和统一的使用方式上。这三者中数据集成是基础,而面向对象的软件开发方法学使软件支援环境的高度集成变为可能。
现代软件支援环境应具备以下特点。
包括坚定性和可用性两个方面,即环境应不受或少受来自用户和系统错误的影响,具备自我恢复的能力。同时,环境必须能够支持软件开发和维护过程中的各种活动,而不能只支持某一方面、某个阶段的活动;应支持各种层次人员的活动,而不能只支持某类人员的活动。环境必须具有高效、快速和低开销的特点,适应大多数软件人员的工作习惯,尽量使现有软件开发人员少受或不受专门培训就可以方便地使用它来开发大型软件项目。
软件支援环境是按照整体化要求设计的一个整体,在共同的概念基础上,以软件生命周期为线索,集成各种软件开发方法和维护方法,合理地划分工具的功能范围,并使它们协调一致的进行工作。这就需要对工具进行统一的支持,由环境的专门机构(即集成机制)来实现。
软件支援环境可灵活地进行扩充,并方便地接纳外来工具。只要工具按照统一的接口要求设计,就可自由地集成到软件环境中去,而且,环境中的工具可以随时修改和重组。环境的集成性和开放性是两个某种程序上相矛盾的目标,在设计软件支援环境时,合理地确定这些目标并解决这些矛盾是至关重要的。
软件支援环境可以方便地从一台宿主机移到另一台宿主机,应特别注意选用符合国际标准的系统软件来构成环境的运行平台,实现软件一级的高度兼容。
软件支援环境应能支持软件生命周期各个阶段(包括程序设计、系统分析、软件设计、软件测试和软件维护等)的各种技术活动和项目管理活动。其主要任务是支持大型软件项目的开发和维护,达到缩短开发周期、节省开发成本和提高产品质量的目的。依环境的基本设计原则,软件支援环境分为4类。
从具体的程序设计语言出发,以特定语言作为其设计基础。其特点是设计任务具有强烈的一对一倾向,每个程序员一次面对一个程序。在这类系统中,工具是面向特定语言的,尽管在处理模块接口、版本控制、配置管理以及系统构造方面也可以提供扩充的手段,但仍然很难摆脱特定语言的阴影。因此,这种环境很不容易适应用户的特殊要求 ,限制过大 。但是 , 这种环境对熟练的用户而言,却往往具有效率高的特点,而且也便于使用。
从支持整个软件生命周期出发,其特点是可以方便地支持大型软件的开发。它往往强调系统的构造任务,特别重视对系统的版本控制、配置管理和项目管理,常常加入自动重编译、存取控制、修改传播等功能,而把支持程序设计的工作交由传统的工具来做。这类环境的构造明显地要比前一种复杂,在开发控制上有特殊的要求。它可以方便地支持成组软件人员的开发工作,但同样不易适应特殊用户的要求。
这类环境强调以集成工具帮助用户完成特定的任务。在环境设计中,往往与要完成任务的知识密切相关。这类环境在实现软件结构重用方面有着明显的有利条件,在实现控制集成方面也有明显的便利之处,而且,通过类属方法也可以比较容易地适应用户的特殊要求,可以面向同一任务的不同变体。但是,它的适应面较窄,不同任务的环境往往需要重新构造。
这类环境的构造围绕着特定的系统开发方法学,严格地按照某些开发原则来构造 。同第一类环境类似,它对熟悉的用户而言具有效率高、使用方便的优点,但却难以适应大多数用户的不同习惯和爱好 。