软件开发环境与工具相关概念
软件开发环境与工具相关概念
Concept of Software development environment and tool
2016/3
提纲
• 概述 • 软件开发环境简介 • 软件开发工具简介 • CASE工具简介 • 软件开发环境的折旧方法
1. 概述
• 在软件工程学中,方法和工具是一个问题的两个方面: • 方法是工具研制的先导 • 工具是方法的实在体现
软件开 发环境
工
工
具1
具2
工 具n
2. 软件开发环境简介
• 软件开发环境概述 • 软件开发环境的发展 • 软件开发环境的要求 • 软件开发环境的特性 • 软件开发环境的分类
2.1 软件开发环境的概述
• 软件开发环境是指在计算机的基础软件(比如操作系 统)上,为了支持软件的开发而提供的一组工具软件 系统
2.1.5 软件开发环境数据库的组成
1. 通用子程序数据库(比如函数库) 2. 可重组的程序加工信息库(编译环境) 3. 模块描述与接口信息库(接口,.h文件) 4. 软件测试与纠错依据信息库(测试文档) 5. 可行性和需求信息档案(需求文档) 6. 阶段设计详细档案(设计文档) 7. 测试驱动数据库(测试案例) 8. 软件维护档案等(维护文档)
2.1.6.4 软件开发环境的应用层
• 应用层是以特定的基本层为基础而引入的配套补充工具, 比如:
1. 界面生成器 2. 版本管理器 3. 性能分析器等
2.2 软件开发环境的发展
• 软件开发环境的发展依赖于软件开发方法的发展 • 20世纪70年代:结构化开发方法,主要是高级语言开
发工具的发展 • 20世纪80年代:面向对象方法,主要是面向对象开发
2.5.1 按照解决问题分类
1. 程序设计环境 程序设计的基础,比如Eclipse 2. 系统合成环境 快速构建特定应用的开发环境,比如
游戏引擎,IBM BlueMix应用程序合成环境等 3. 项目管理环境 进行软件项目的管理,比如Project,
Clear case等
2.5.1.1 合成开发环境举例
2.1.6.2 软件开发环境的核心层
• 核心层是软件开发环境本身的支持基础,包括 1. 工具组,比如与操作系统相联系的工具 2. 环境数据库,工具自身和开发产品的数据基础
2.1.6.3 软件开发环境的基本层
• 基本层是软件开发工具的工作工具集,包括 • 最少限度的一组工具,比如 1. 编译工具 2. 连接工具 3. 调试工具等 • 这些工具由核心层支持
3.1.3 软件开发工具的发展特点
1. 软件开发工具由单个工具向多个工具集成化方向发展 2. 重视用户界面的设计 3. 不断采用新理论和新技术(软件工程) 4. 软件工具的商品化推动了软件产业的发展,软件产业的
Visual Studio 6.0界面
3. 软件开发工具
• 软件开发工具概述 • 软件开发工具功能要求 • 软件开发工具性能要求
3.1 软件开发工具概述
• 基本概念 • 目标 • 发展特点
3.1.1 软件工具的概念
• 软件工具是指为支持计算机软件的开发、维护、模拟、移 植或管理而研制的程序系统
2.1.6 软件开发环境的分层
• 软件开发环境通常分为4层:
1. 宿主层
2. 核心层 3. 基本层
应用层
4. 应用层
基本层
核心层
宿主层
2.1.6.1 软件开发环境的宿主层
• 宿主层是软件开发环境依赖的计算机基础,包括 1. 基本宿主硬件,如计算机、工作站、服务器等 2. 基本宿主软件,如操作系统
• 软件工程方法的研究成果只有最终实现软件工具和系 统,才能充分发挥软件工程方法在软件开发中的作用
1.1 软件开发环境与工具的关系
• 软件开发环境是围绕着软件开发的一定 目标组织在一起的一组相关软件工具的 有机集合
• 软件开发环境是由工具构成的
• 软件工具是计算机技术发展的产物,随 着技术的发展,工具逐渐集成形成了软 件开发环境
• 软件工具通常由工具、工具接口和工具用户接口三部分组 成
3.1.2 软件开发工具概念
• 软件开发工具是用于辅助软件生命周期过程的基于计算 机的工具
• 软件开发工具的3个要点: 1. 是高级语言进一步发展的产物 2. 目的是在软件开发过程中给予开发人员不同方面和程度
的支持和帮助 3. 支持软件开发的全过程
2.1.1 不同的定义
• IEEE和ACM的定义 软件开发环境是一组软件工具的集合,它支持一
定的软件开发方法或按照一定的软件开发方法模型组 织而成
• 美国国防部的定义 软件工程环境是一组方法、过程及计算机程序的
整体化构件,它支持从需求定义、程序生成直到维护 的整个软件生存期
2.1.2 软件开发环境举例
LabView 软件开发环境(NI公司开发)
2.1.3 软件工程环境举例
Visual Studio2010 软件工程环境
2.1.4 软件开发环境的组成
• 软件开发环境由3个部分构成 1. 人机接口 软件工具环境的重要质量标志 2. 软件环境数据库 软件开发环境的核心 3. 各种软件开发工具,完成具体的工作
2.4 软件开发环境的特性
• 软件开发环境的特性包括: 1. 可用性 2. 自动化程度 3. 公共性 4. 集成化程度 5. 适应性
2.5 软件开发环境的分类
• 软件开发环境与软件生存期、软件开发方法、软件 处理模型紧密相关,有多种分类方法:
• 按问题分类 • 按软件开发环境的演变趋势分类 • 按集成化程度分类
工具的发展 • 20世纪90年代:系统集成方法,CASE集成开发环境开
始出现
2.3 软件开发环境的要求
• 软件开发环境的目标是提高软件开发的生产率和软件产 品的质量,要求如下:
1. 高度集成化的系统 2. 具有高度的通用性 3. 易于定制,具有高度的适应性和灵活性 4. 具有易用性 5. 具有半自动或自动化的开发能力
BlueMix 在云服务系统
2.5.2 按照开发环境ቤተ መጻሕፍቲ ባይዱ变趋势分类
1. 以语言为中心的环境 比如C++开发环境Visual Studio 6.0
2. 工具箱环境 由一整套工具组成,比如Visual Studio 2010
3. 基于方法的环境 专门用于支持特定的软件开发方法, 比如LabView
2.5.2.1 语言开发环境举例