《软件工程》实验指导书---计科09本(软件工程)、数信08本(信息与计算科学)
软件工具是“可用来帮助和支持软件需求分析、软件开发、测试、维护、模拟、移植或管理等目的而编制的计算机程序或软件。”它一般是为专门应用而开发,其主要目的是为了提高软件生产率和改善软件的质量。如今,软件工具重视用户界面的设计,不断地采取新理论和新技术,正由单个工具向多个工具集成的方向发展,且注重工具间的平滑过渡和互操作性。软件工具的商品化推动着软件产业的发展,而软件产业的发展,又增加了对软件工具的需求,促进了软件工具的商品化进程。
软件工具的范围很广,它既包括比较成熟的传统工具,如操作系统、编译程序、解释程序和汇编程序等,又包括支持软件生存周期各阶段,如需求分析、设计、编码、测试、维护等的开发和管理工具。例如,一项分类标准把软件工具分为13类,它们是系统模拟和模型工具、需求追踪工具、需求分析工具、设计工具、 编码和单元测试工具、测试和集成工具、文档工具、项目管理工具、配置管理工具、质量保证工具、度量工具、软件再用工具、其他工具。
2. 软件开发环境
软件开发环境是指在计算机基本软件的基础上,为了支持软件的开发而提供的一组工具软件系统。1985年第八届国际软件工程会议提出的关于“软件开发环境”的定义是:“软件开发环境是相关的一组软件工具集合,它支持一定的软件开发方法或按照一定的软件开发模型组织而成。”
一般说来,软件开发环境都具有层次式的结构,例如可区分为四层: 1)宿主层:它包括基本宿主硬件和基本宿主软件。
2)核心层:包括工具组、环境数据库、通信设施和运行时刻支持设施。
3)基本层:包括一组工具,如编译程序、编辑程序、调试程序、连接程序和装配程序等。这些工具都是由核心层来支持的。
4)应用层:以特定的基本层为基础,包括一些补充工具,借以更好地支持各种应用软件的研制。
按内容分,软件开发环境一般由环境数据库、接口软件和工具组等构成。
1)环境数据库。这是软件开发环境的核心,其中存放的信息有被研制软件在其生存周期中所必需的信息和软件研制工具的有关信息等。例如,它把经过各种软件工具加工后的软件产品和半成品(如各种文件、源代码及测试数据)存入库内,以便根据需要进行查询、修改或输出等。在环境数据库中,可以分别标识的信息组称为对象;作为一组相关的版本而存在的一组对象称为版本组。把一个项目中各个不同的“对象组”组合起来,就可
6
《软件工程》实验指导书---计科09本(软件工程)、数信08本(信息与计算科学)
以构成各种不同的软件配置。
2)接口软件。包括系统与用户的接口、子系统和子系统之间的接口。开发环境要求所有的接口都具有统一性。例如,为了实现用户和各种系统的通信,要求有统一调用方式。
3)工具组。软件开发环境中的工具彼此有交互作用。工具组中的各个工具被设计成由一些基本功能成分组成。这些成分可以组合,供用户选用,并且可通过环境数据库进行通信。
? 语言工具。它一般提供编译(或解释)程序、连接装配程序、调试程序、 静态
及动态分析程序等一系列语言支撑工具。也有的系统支持非过程语言的运行。 ? 质量保证工具。目前大量使用的仍是静态、动态测试技术以及各种形式的评审技
术。与形式方法相联系的程序证明和验证技术已为许多专家所重视。
? 需求分析及设计工具。主要由文本编辑工具、图形工具及一致性检验工具等支持。 ? 配置管理工具。对于不同用户或不同的硬件配置,一个系统往往需不同的软件配
置;即使同一软件也有不同的版本;加上软件产品的修改需要进行严格的管理等原因,软件的配置管理已成为软件生产管理的重要课题。
软件开发环境的发展方向是集成化的软件工程环境,即软件生存周期中各个阶段的开发环境(工具与支持系统)集成为一致的用户接口,包括制定各种标准接口。以下一些名称具有相同或类似的含义:软件开发环境(SDE)、软件工程环境(SEE)、软件支持环境(SSE)、项目支持环境(PSE)、自动开发环境(ADE)、 集成化程序设计环境(IPE)、工具盒(Toolbox)、工具箱(Toolkit)。
3. 计算机辅助软件工程(CASE)
CASE 是一组工具和方法的集合,用来辅助软件开发生命周期各阶段进行软件开发,它是软件开发管理、软件开发方法、软件开发环境和软件工具等方面研究和发展的产物,CASE 把软件开发技术、软件工具和软件开发方法集成到一个统一的框架中,并且吸取了计算机辅助设计(CAD)、软件工程、操作系统、数据库、 网络和许多其他计算机领域的原理和技术。因而,从产业角度讲,CASE 是种类繁多的软件开发和系统集成的产品及软件工具的集合。
7
《软件工程》实验指导书---计科09本(软件工程)、数信08本(信息与计算科学)
CASE 可以简单到单个工具,它支持某个特定的软件工程活动,或者复杂到一个完整的环境,包含了工具、数据库、人员、硬件、网络、操作系统、标准以及许多其他部件。
CASE的构造积木块如图 1-1 所示。
每个构造积木块是形成其上一层的基础,而 CASE工具位于构造积木块的顶部。 环境体系结构由硬件平台和操作系统(包括网络和数据库管理软件)构成, 铺设了CASE的基石。但是,CASE 环境本身要求其他的构造积木块。一组可移植服务提供了CASE工具及其集成框架与环境体系结构间的连接桥梁。集成框架是一组专用程序,它们使得单个的 CASE工具可以和其他工具相互通信,能够创建项目数据库,以及使终端用户(软件工程师)看到同样的软件界面。可移植服务允许CASE工具及其集成框架能够跨越不同的硬件平台和操作系统使用,而不需要大量的相应修改。
某些CASE工具保持“点解决方案”,即工具被用于辅助某个特定的软件工程活动(如分析建模),但并不直接和其他工具通信,不关联到一个项目数据库,也不是某个集成CASE环境的一部分。这种方案虽然不很理想,但CASE工具仍可以被有效地使用。
对 CASE 工具的分类,可以根据功能、它们被作为管理工具还是技术工具、它们在软件工程过程各个步骤中的使用、支撑它们的环境体系结构(硬件和软件)、或者它们的起源或价格来划分。
按使用的功能来进行分类,主要有: ? 信息工程工具。 ? 过程建模和管理工具。 ? 项目计划工具。 ? 风险分析工具。 ? 项目管理工具。
8
《软件工程》实验指导书---计科09本(软件工程)、数信08本(信息与计算科学)
? 需求跟踪工具。 ? 度量和管理工具。 ? 文档工具。 ? 系统软件工具。 ? 质量保证工具。 ? 数据库管理工具。 ? 软件配置管理工具。 ? 分析和设计工具。 ? 原型和仿真工具。 ? 界面设计和开发工具。 ? 原型工具。 ? 编程工具。 ? 集成和测试工具。 ? 静态分析工具。 ? 动态分析工具。 ? 测试管理工具。 ? 客户/服务器测试工具。 ? 再工程工具。
4.GB/T15853—1995软件支持环境
GB/T15853—1995《软件支持环境》规定了软件支持环境(software support environment)的基本要求,软件开发支持环境的内容及实现方法,以及对软件生存期支持部门软件支持能力的具体要求,适用于软件支持环境的设计、建立、管理和评价。
GB/T15853—1995 定义的软件支持环境由一个宿主机系统,加上其他有关的设备和规程而构成。它能对目标机系统(或对功能和物理上相关的一组目标机系统)的软件提供全面的支持,包括性能评价、系统与软件生成、开发与修改测试、模拟与仿真、培训、软件集成、配置管理、软件的运行分配。
软件支持环境又分为软件开发支持环境和软件生存期支持环境两种类型。前者是由软件开发单位确定、并经任务委托单位认可的资源,用于支持合同项目中的软件需求;而后者是由软件生存期支持部门使用的(属于任务委托单位的)资源,用于为指定的目标机系统提供整个生存期内的软件支持。
9
《软件工程》实验指导书---计科09本(软件工程)、数信08本(信息与计算科学)
1.2.2 实验目的
1)熟悉软件工具、软件开发环境以及 CASE 工具的基本概念及其分类。 2)了解主流的软件工具和软件开发环境产品。
3)通过 Internet 搜索与浏览,了解软件工具、软件开发环境和 CASE 工具的发展与应用状况,进一步掌握通过专业网站丰富软件工程最新知识的学习方法,尝试通过专业网站的辅助与支持来开展软件工程应用实践。
4)了解 GB/T15853-1995《软件支持环境》的相关内容。
1.2.3 工具/准备工作
在开始本实验之前,请预习教科书第一章的相关内容。请联系指导老师或者熟识软件工程技术的人士,如软件企业的职员和具有丰富开发经验的老师等,了解他(她)们所在的企业或开发团队在软件研发活动中, 是否使用以及使用了哪些软件工程的工具和开发支持环境,在什么地方可以找到关于这些软件工具、开发环境和 CASE 工具的技术资料和信息。
需要准备一台带有浏览器、能够访问因特网的计算机。
1.2.4 实验内容与步骤
在本实验中,我们复习相关的技术概念,列举并简单介绍一些主流和优秀的软件工具、软件开发环境和 CASE 工具产品。
1. 软件工具、开发环境和 CASE 的概念
在软件工程技术中,无论采用哪一种开发方法,重要的是要尽可能地使用自动化工具来提高系统开发工作的速度和质量。
1)请查阅有关资料(例如教材、本实验的“背景知识”和专业网站等),结合自己的理解,给出“软件工具”、“软件开发环境”和“CASE 工具”的定义:
① 软件工具:
软件工具是指为支持计算机软件的开发、维护、模拟、移植或管理而研制的程序系统。它是为专门目的而开发的,在软件工程范围内也就是为实现软件生存期中的各种处理活动(包括管理、开发和维护)的自动化和半自动化面开发的程序系统。
② 软件开发环境:
软件开发环境(Software Development Environment,SDE)是指在基本硬件和宿至软件的基础上,为支持系统软件和应用软件的工程化开发和维护而使用的一组软件,简称SDE。它由软件工具和环境集成机制构成,前者用以支持软件开发的相关过程、活动和任务,后者为工具集成和软件的开发、维护及管理提供统一的支持。
10