一、学习内容
(一)概述
- 软件开发环境的主要组成成分是软件工具;
(二)软件开发环境的概念
1. 什么是软件开发环境
- 软件开发环境是指在计算机的基本软件基础上,为了支持软件的开发而提供的一组工具软件系统;
- IEEE和ACM定义:软件开发环境是相关的一组软件工具集合,它支持一定的软件开发方法按照一定的软件开发模型组织而成;
- 分为4层:
(1)宿主层:包括基本宿主硬件和软件; (2)核心层:包括工具组、环境数据库和会话系统; (3)基本层:包括最少限度的一组工具(编译工具、编辑、调试、连接和装配程序); (4)应用层:以特定的基本层为基础,但可包括一些补充工具,用于更好地支援各种应用软件的研制;
2. 软件开发环境的发展
- 20世纪70年代,软件开发与设计方法由结构化程序技术设计SP向结构化设计SD技术发展,后面又发展了SA-SD的方法学;
- 20世纪80年代中后期,实时系统设计方法,以及面向对象分析和设计方法的发展克服了结构化技术的缺点;
- 20世纪90年代,系统集成方法和集成系统研究;
3. 对软件开发环境的要求与特性
- 目标:提高软件开发的生产率和软件产品的质量;
- 要求
(1)应是高度集成的一体化的系统; (2)应具有高度的通用性; (3)应具有高度的适应性和灵活性; (4)应是可应用性好且易使用的、经济高效的系统; (5)应是辅助开发向半自动开发和自动开发逐步过渡的系统。 - 特性:可用性、自动化程度、公共性、集成化程度、适应性、价值;
4. 软件开发环境的分类
- 按解决问题分类:程序设计环境、系统合成环境、项目管理环境;
- 按软件开发环境的演变趋向分类:以语言为中心的环境、工具箱环境、基于方法的环境;
- 按集成化程度分类:建立在操作系统上、具有真正的数据库、建立在知识库系统上;
(三)软件开发工具的概念
1. 什么是软件开发工具
- 软件工具:为支持计算机软件的开发、维护、模拟、移植或管理而研制的程序系统,通常由工具、工具接口、工具用户接口三部分组成;
- 软件开发工具:用辅助软件生命周期过程的基于计算机的工具;
- 软件开发工具概念的3个要点:
(1)它是在高级程序设计语言之后,软件技术进一步发展的产物; (2)它的目的是在人们开发软件过程中能够给予不同方面、不同程度的支持或帮助; (3)它支持软件开发的全过程,而不是仅限于编码或其他特定的工作阶段。 - 软件工具的发展特点
(1)由单个向多个工具集成化方向发展; (2)重视用户界面的设计; (3)不断地采用新理论和新技术; (4)推动了软件产业的发展。
2. 软件开发工具的功能要求
1. 认识与描述客观系统(需求分析阶段); 2. 存储及管理开发过程中的信息; 3. 代码的编写或生成; 4. 文档的编制或生成; 5. 软件项目的管理。
3. 软件开发工具的性能要求
1. 表达能力或描述能力; 2. 保持信息一致性的能力; 3. 使用的方便程度; 4. 工具的可靠程度; 5. 对硬件或软件环境的要求。
(四)CASE的概念
1. CASE定义
- 含义:
(1) CASE是一组工具和方法的集合; (2) 可以辅助软件开发生命周期各个阶段进行软件开发; (3)使用CASE工具的目标一般是为了降低开发成本; (4) 达到软件的功能要求、取得较好的软件性能; (5) 使开发的软件易于移植; (6) 降低维护费用; (7) 开发工作按时完成,及时交付; - 作用:
(1)一个具有快速响应、专用资源和早期差错功能的交互式开发环境; (2)对软件开发和维护过程中很多环节实现了自动化; (3)通过一个强有力的图形接口,实现了直观的程序设计。
2. CASE分类
- CASE技术种类:支持软件开发过程本身的技术、元-CASE技术;
- CASE工具的分类:
(1)支持单个过程任务的工具; (2)工作台支持某一过程所有活动或某些活动; (3)环境支持软件过程所有活动或至少大部分活动。 - CASE工具和软件工具的不同:
(1)支持专用的个人计算环境; (2)使用图形功能对软件系统进行说明并建立文档; (3)将软件生存期各阶段的工作连接在一起; (4)收集和连接软件系统中从最初的需求到软件维护各个环节的所有信息; (5)用人工只能技术实现软件开发和维护工作的自动化。
3. CASE集成
- 平台集成;
- 数据集成:不同的软件工程能交换数据;
- 表示集成:一个系统中的工具使用共同的风格,以及采用共同的用户交互标准集;
- 控制集成:支持对系统其他工具的访问;
- 过程集成:CASE系统嵌入了支持活动所需的工具知识;
4. CASE工作台
- 程序设计工作台(下游CASE工具);
- 分析和设计工作台(上游CASE工具);
- 测试工作台;
(五)发展历史与集成化趋势
1. CASE技术的发展历史
- 应用:
(1)20世纪70年代用第三代语言写成的批处理系统,出现了更复杂的数据密集型的交互处理系统和帮助用户分析数据的决策支持系统; (2)20世纪80年代发展了第四代语言和第四代技术,应用系统要求自动推理和自动生成; (3)20世纪90年代需要更复杂的应用技术实现功能需求,是CASE技术发展的主要驱动力量。 - 方法:
(1)20世纪70年代结构化方法出现,描述问题不精确且有二义性; (2)20世纪80年代中后期,实时系统的设计和面向对象的分析和设计方法出现; (3)快速原型发的出现,推动了CASE工具的发展。 - 工具:
(1)20世纪70年代早期,第一代CASE工具是基于文件的; (2)20世纪80年代早期,第二代CASE工具支持使用图形的结构化方法; (3)20世纪80年代晚期,出现基于数据库的CASE工具; (4)20世纪90年代CASE工具的集成时期,CASE工具发展为CASE环境。
2. 集成化发展趋势
- 工具的集成与提高工具的互操作性代表了当前CASE发展的主要趋势;
(六)问题与对策
1. 软件开发环境的折旧问题
- 定义:软件开发环境的折旧,是对软件开发环境逐渐转移到软件成本或构成组织费用的那一部分价值的补偿;
- 折旧率计算方法
(1)年限平均法:年折旧率=1/预计使用年限100%; (2)工作量法:每一工作量折旧额=软件开发环境原值/预计共工作量; (3)双倍余额递减法:年折旧率=2/预计的折旧年限100%; (4)年数总和法:年折旧率=尚可使用年限/预计使用年限的年数综合*100%。
2. 对策
- 软件组织要提高资金的软件开发能力;
- 将软件开发环境的建设认为是固定资产的投资。
二、练习
(一)名词解释
1. 软件开发环境
答:是指在计算机基本软件的基础上,为了支持软件开发而提供的一组工具软件系统;
2. 软件工具
答:为了支持计算机软件的开发、维护、模拟、移植或管理而研制的软件系统;
3. CASE
答:是一组工具和方法的集合,可以辅助软件开发生命周期各阶段进行软件开发;
(二)简答
1. 软件开发环境包括哪4个层次
答:宿主层、核心层、基本层、应用层;
2. 请简述软件开发环境的特性
答:可用性、自动化程度、公共性、集成化程度、适应性、价值;
3. 软件工具有哪些功能要求
答:(1)认识与描述客观系统; (2)存储及管理开发过程中的信息; (3)代码的编写或生成; (4)文档的编写或生成; (5)软件项目管理。
4. CASE的作用是什么
答:(1)一个具有快速响应、专用资源和早期差错功能的交互式开发环境; (2)对软件的开发和维护过程中许多环节实现了自动化; (3)通过一个强有力的图形接口,实现了直观的程序设计。
5. 什么是软件开发环境的折旧
答:是对软件开发环境逐渐转移到软件成本或构成组织费用的那一部分价值的补偿。
(三)分析题
1. 请简要分析软件开发环境的不同分类
答:(1)按解决的问题分类,分为程序设计环境,系统合成环境和项目管理环境; (2)按软件开发环境的演变趋势分类,分为以语言为中心的环境、工具箱环境和基于方法的环境; (3)按集成化程度分类,分为建立在操作系统上的第一代、具有数据库的第二代和建立在知识库系统上的第三代。
2. 请简要分析CASE的集成
答:(1)平台集成; (2)数据集成:在不同软件功能能相互交换数据; (3)表示集成:指一个系统中的工具使用共同的风格以及采用共同的用户交互标准集; (4)控制集成:支持工作台或环境中一个工具对系统中其他工具的访问; (5)过程集成:指CASE系统嵌入了关于过程活动、阶段、约束和支持这些活动所需的工具的知识。
|