1、下午4时18分,软件开发环境与工具相关概念 Concept of Software development environment and tool 2016/3,任课老师:黄武,59,1,下午4时18分,提纲,概述 软件开发环境简介 软件开发工具简介 CASE工具简介 软件开发环境的折旧方法,59,2,下午4时18分,1. 概述,在软件工程学中,方法和工具是一个问题的两个方面: 方法是工具研制的先导 工具是方法的实在体现软件工程方法的研究成果只有最终实现软件工具和系统,才能充分发挥软件工程方法在软件开发中的作用,59,3,下午4时18分,1.1 软件开发环境与工具的关系,软件开发环境是围绕着
2、软件开发的一定目标组织在一起的一组相关软件工具的有机集合软件开发环境是由工具构成的软件工具是计算机技术发展的产物,随着技术的发展,工具逐渐集成形成了软件开发环境,59,4,下午4时18分,2. 软件开发环境简介,软件开发环境概述 软件开发环境的发展 软件开发环境的要求 软件开发环境的特性 软件开发环境的分类,59,5,下午4时18分,2.1 软件开发环境的概述,软件开发环境是指在计算机的基础软件(比如操作系统)上,为了支持软件的开发而提供的一组工具软件系统,59,6,下午4时18分,2.1.1 不同的定义,IEEE和ACM的定义软件开发环境是一组软件工具的集合,它支持一定的软件开发方法或按照一
3、定的软件开发方法模型组织而成美国国防部的定义软件工程环境是一组方法、过程及计算机程序的整体化构件,它支持从需求定义、程序生成直到维护的整个软件生存期,59,7,下午4时18分,2.1.2 软件开发环境举例,LabView 软件开发环境(NI公司开发),59,8,下午4时18分,2.1.3 软件工程环境举例,Visual Studio2010 软件工程环境,59,9,下午4时18分,2.1.4 软件开发环境的组成,软件开发环境由3个部分构成 人机接口 软件工具环境的重要质量标志 软件环境数据库 软件开发环境的核心 各种软件开发工具,完成具体的工作,59,10,下午4时18分,2.1.5 软件开发
4、环境数据库的组成,通用子程序数据库(比如函数库) 可重组的程序加工信息库(编译环境) 模块描述与接口信息库(接口,.h文件) 软件测试与纠错依据信息库(测试文档) 可行性和需求信息档案(需求文档) 阶段设计详细档案(设计文档) 测试驱动数据库(测试案例) 软件维护档案等(维护文档),59,11,下午4时18分,2.1.6 软件开发环境的分层,软件开发环境通常分为4层: 宿主层 核心层 基本层 应用层,59,12,下午4时18分,2.1.6.1 软件开发环境的宿主层,宿主层是软件开发环境依赖的计算机基础,包括 基本宿主硬件,如计算机、工作站、服务器等 基本宿主软件,如操作系统,59,13,下午4
5、时18分,2.1.6.2 软件开发环境的核心层,核心层是软件开发环境本身的支持基础,包括 工具组,比如与操作系统相联系的工具 环境数据库,工具自身和开发产品的数据基础,59,14,下午4时18分,2.1.6.3 软件开发环境的基本层,基本层是软件开发工具的工作工具集,包括 最少限度的一组工具,比如 编译工具 连接工具 调试工具等 这些工具由核心层支持,59,15,下午4时18分,2.1.6.4 软件开发环境的应用层,应用层是以特定的基本层为基础而引入的配套补充工具,比如: 界面生成器 版本管理器 性能分析器等,59,16,下午4时18分,2.2 软件开发环境的发展,软件开发环境的发展依赖于软件
6、开发方法的发展 20世纪70年代:结构化开发方法,主要是高级语言开发工具的发展 20世纪80年代:面向对象方法,主要是面向对象开发工具的发展 20世纪90年代:系统集成方法,CASE集成开发环境开始出现,59,17,下午4时18分,2.3 软件开发环境的要求,软件开发环境的目标是提高软件开发的生产率和软件产品的质量,要求如下: 高度集成化的系统 具有高度的通用性 易于定制,具有高度的适应性和灵活性 具有易用性 具有半自动或自动化的开发能力,59,18,下午4时18分,2.4 软件开发环境的特性,软件开发环境的特性包括: 可用性 自动化程度 公共性 集成化程度 适应性,59,19,下午4时18分
7、,2.5 软件开发环境的分类,软件开发环境与软件生存期、软件开发方法、软件处理模型紧密相关,有多种分类方法: 按问题分类 按软件开发环境的演变趋势分类 按集成化程度分类,59,20,下午4时18分,2.5.1 按照解决问题分类,程序设计环境 程序设计的基础,比如Eclipse 系统合成环境 快速构建特定应用的开发环境,比如游戏引擎,IBM BlueMix应用程序合成环境等 项目管理环境 进行软件项目的管理,比如Project,Clear case等,59,21,下午4时18分,2.5.1.1 合成开发环境举例,BlueMix 在云服务系统,59,22,下午4时18分,2.5.2 按照开发环境演
8、变趋势分类,以语言为中心的环境 比如C+开发环境Visual Studio 6.0 工具箱环境 由一整套工具组成,比如Visual Studio 2010 基于方法的环境 专门用于支持特定的软件开发方法,比如LabView,59,23,下午4时18分,2.5.2.1 语言开发环境举例,Visual Studio 6.0界面,59,24,下午4时18分,3. 软件开发工具,软件开发工具概述 软件开发工具功能要求 软件开发工具性能要求,59,25,下午4时18分,3.1 软件开发工具概述,基本概念 目标 发展特点,59,26,下午4时18分,3.1.1 软件工具的概念,软件工具是指为支持计算机软件
9、的开发、维护、模拟、移植或管理而研制的程序系统软件工具通常由工具、工具接口和工具用户接口三部分组成,59,27,下午4时18分,3.1.2 软件开发工具概念,软件开发工具是用于辅助软件生命周期过程的基于计算机的工具软件开发工具的3个要点: 是高级语言进一步发展的产物 目的是在软件开发过程中给予开发人员不同方面和程度的支持和帮助 支持软件开发的全过程,59,28,下午4时18分,3.1.3 软件开发工具的发展特点,软件开发工具由单个工具向多个工具集成化方向发展 重视用户界面的设计 不断采用新理论和新技术(软件工程) 软件工具的商品化推动了软件产业的发展,软件产业的发展,反过来又促进了软件工具的发
10、展(Visual Studio,LabView,Matlab,LoadRunner),59,29,下午4时18分,3.2 软件开发工具功能要求,软件开发工具5个方面的功能要求 认识与描述客观系统:需求阶段 存贮及管理开发过程中的信息:比如配置管理,核心:保证数据的一致性 代码的编写和生成:编辑、编译、链接,核心:通过代码自动生成方式及软件重用提高效率,59,30,下午4时18分,3.2.1 软件开发工具功能要求续,文档的编制与生成:Word类工具,核心:保持文档与软件的一致性软件项目管理:为管理人员提供支持,59,31,下午4时18分,3.3 软件开发工具的性能要求,软件开发工具5个方面的性能
11、要求 表达能力和描述能力 保持信息一致性的能力 使用的方便程度 工具的可靠程度 对硬件和软件环境的要求(Swift的开发环境,VisualStudio2010开发环境,云计算开发环境),59,32,下午4时18分,4. CASE工具概述,CASE工具概述 CASE发展历史 CASE集成 CASE工作台 CASE环境的组织框架结构 集成CASE环境的策略 CASE发展趋势,59,33,下午4时18分,4.1 CASE工具概述,基本概念 目标 作用 分类 CASE与其它开发软件的不同,59,34,下午4时18分,4.1.1 CASE的概念,CASE(Computer-Aided Software
12、Engineering)是一组工具和方法的集合,可以辅助软件开发生成周期各阶段进行软件开发,59,35,下午4时18分,4.1.2 CASE目标,CASE工具要到达以下目标: 高效及时完成开发工作 降低开发成本 达到软件的功能要求 取得较好的软件性能 降低软件维护费用 提高生产率,提高质量,59,36,下午4时18分,4.1.3 CASE作用,提供一个具有快速响应、早期查错功能的交互式开发环境 对软件的开发和维护过程中的许多环节实现自动化 通过一个强有力的图形接口,实现直观的程序设计,59,37,下午4时18分,4.1.4 CASE分类,CASE工具可以分为3类: 支持单个过程任务的工具 工作
13、台支持某一过程所有活动或某些活动 环境支持软件过程所有活动或大部分活动,59,38,下午4时18分,4.1.5 CASE与其它软件的不同,将软件生存期各个阶段的工作连接在一起收集和连接软件系统中从最初需求到软件维护各个阶段的所有信息用人工智能技术实现软件开发和维护工作的自动化,59,39,下午4时18分,4.2 CASE 的发展历史,CASE技术是软件技术发展的产物,它既起源于软件工具的发展,又起源于软件开发方法学的发展,同时还受到实际应用发展的驱动 应用的发展 方法的发展 工具的发展,59,40,下午4时18分,4.2.1 应用的发展,CASE用以支持应用系统的开发,新的应用必然驱动系统开发
14、方法、工具的演变,应用的发展经历了以下3个年代 20世纪70年代 批处理系统,数据库的发展,出现了决策支持系统 20世纪80年代 专家系统,应用要求自动推理和自动生成 20世纪90年代 更加复杂的应用技术,比如组合建模、交互图形操作等 问题:未来的软件应用方向什么?,59,41,下午4时18分,4.2.2 方法的发展,软件方法随着应用的需要也经历了3个年代的发展 20世纪70年代 结构化方法 20世纪80年代 面向对象方法 20世纪90年代 快速原型法,59,42,下午4时18分,4.2.3 工具的发展,软件工具随着方法的需要也经历了3个年代的发展 20世纪70年代 基于文件的CASE工具以及
15、支持图形和结构化设计的前端工具 20世纪80年代 基于数据库的CASE工具 20世纪90年代 逐渐从单一的CASE工具发展为集成化的CASE环境,59,43,下午4时18分,4.3 CASE的集成,CASE工具包括5个方面的集成 平台集成(同一操作系统下) 数据集成(文件、数据结构及共享仓库) 表示集成(共同的用户操作界面) 控制集成(控制不同工具的访问) 过程集成(阶段支持),59,44,下午4时18分,4.4 CASE 工作台,一个CASE工作台是一组工具集,支持图形化设计、编码实现或测试等特定的软件开发阶段,可以分为: 分析和设计工作台(上游CASE工具) 程序设计工作台(下游CASE工
16、具) 测试工作台,59,45,下午4时18分,4.5 CASE环境的组织框架结构,组织框架结构就是把CASE环境放在一个开发和管理的环境中 在企业层进行基本结构计划和设计 在工程层进行系统工程管理和决策 在单人和队组层进行软件开发过程管理,59,46,下午4时18分,4.6 集成CASE环境的策略,CASE的环境策略 语言为中心的环境,用一个特定的语言全面支持编程 面向结构的环境,使用户可以独立于特定语言而直接对结构化对象进行加工 基于方法的环境,由一组支持特定过程或方法的工具组成 工具箱式的环境,由一套独立于语言的工具所组成,59,47,下午4时18分,4.7 CASE 的集成化发展趋势,C
17、ASE的集成化发展变为趋势,集成化包括: 界面集成 数据集成 控制集成 过程集成,59,48,下午4时18分,4.7.1 CASE 工具的界面集成,界面集成是指一个系统中的工具使用共同的风格,以及采用共同的用户交互标准 界面集成的目的是通过减轻用户的认知负担而提高用户使用环境的效率和效果,59,49,下午4时18分,4.7.2 CASE 工具的数据集成,数据集成是指不同软件工程能相互交换数据 数据集成的目的是确认开发环境中的所有信息都作为一个整体数据被各部分操作或转换 数据集成包括:通用性、非冗余性、一致性、同步性和交换性五个方面属性,59,50,下午4时18分,4.7.3 CASE 工具的控
18、制集成,控制集成支持工作台或环境中一个工具对系统中其它工具的访问 控制集成的目的是为了让工具共享功能 工具之间的控制关系包括: 供给:一个工具被别的工具使用 使用:一个工具使用其他工具,59,51,下午4时18分,4.7.4 CASE 工具的过程集成,过程为开发软件所需要的阶段、任务活动序列,许多工具都服务于一定的过程 过程集成是指CASE系统嵌入了关于过程活动、阶段、约束和支持这些活动所需要的工具的知识 过程集成属性包括: 过程段 事件 约束,59,52,下午4时18分,4.8 总结,怎样看待和使用工具?工具背后隐藏着技术和方法,如果不熟悉这些背后的技术和方法,工具是无法使用的 工具、环境和
19、CASE之间的关系 工具对应具体的技术 环境对应各种不同的开发方法 CASE对应计算机软件工程开发方法,59,53,下午4时18分,5. 软件开发环境的折旧问题,软件开发环境的价值随着软件开发环境的使用而逐渐转移到生产的软件成本中,有多种折旧方法: 年限平均法 工作量法 双倍余额递减法,59,54,下午4时18分,5.1 年限平均法,年限平均法是将软件开发环境的折旧均衡地分摊到各期的一种方法,公式如下:年折旧率=1 / 预计使用年限 100%月折旧率=年折旧率 / 12月折旧额=软件开发环境原价月折旧率,59,55,下午4时18分,5.2 工作量法,工作量法是根据实际工作量计算折旧额的一种方法
20、,公式如下:每一工作量折旧额=软件开发环境原值 / 预计总工作量月折旧额 = 当月开发工作量每一工作量折旧额,59,56,下午4时18分,5.3 双倍余额递减法,双倍余额递减法是常用的加速折旧方法,其特点是在软件开发环境使用的前期提取折旧多,使用后期提取折旧逐渐减少的方法,公式如下:年折旧率 = 2 / 预计使用年限 100%月折旧率 = 年折旧率 / 12月折旧额 = 软件开发环境账面净值月折旧率,59,57,下午4时18分,课堂讨论,为什么说软件开发环境的信息库是其核心?谈谈你以前设计软件的流程,处理,输入,输出,59,58,下午4时18分,作业,名次解释 软件开发环境 软件开发工具简答题 软件开发环境包括哪些层次 双倍余额递减法折旧软件工具的公式是什么,59,59,