目录
第8章 软件工程
8.4.1 软件开发环境
1.软件开发环境的分类
2. 集成机制
3. 集成计算机辅助软件工程
8.4.2 软件开发工具
1. 软件工具的分类
2. 开发工具的选择
3. 快速开发工具
附录:DevOps工具集
软件开发环境 (Software Development Environment , S D E ) 是指支持软件的工程化开发和维护而使用的一组工具和支撑软件,由软件工具集和环境集成机制构成。
软件工具是指 C A S E工具,用以支持软件幵发的相关过程、活动和任务;
环境集成机制是指为工具集成和软件开发、维护及管理提供统一的支持。
通过环境集成机制,各工具用统一的数据接口规范存储或访问环境信息库,采用统一的界面形式,保证界面的一致性,同时,为各工具或开发活动之间的通信、切换、调度和协同工作提供支持。
备注1:
因此,要能高效的构建目标软件系统,只有业务领域的知识和计算机领域的知识是远远不够的,还需要支撑的舞台,一个高效的支撑舞台,能够极大的提升目标系统软件开发的效率。
没有高效支持的舞台,开发目标系统不仅仅低效,还成了空中楼阁!!!
对于成型的公司,都有成熟的支撑舞台,这样,软件的开发人员就可以不用把自己的精力放在支撑软件和工具上,可以把自己的精力聚焦在如何实现系统上,聚焦在业务知识上和计算机领域知识上。
然后,对于初创公司,什么也没有,连最近的表演的舞台都没有,还主要自己去搭建这些舞台。
备注2:
除了工具和支撑软件,支撑软件开发系统开发的还包括:
软件开发环境应支持多种集成机制,例如,平台集成、数据集成、界面集成、控制集成和过程集成等。软件开发环境应支持小组工作方式,并为其提供配置管理,环境的服务可用于支持各种软件开发活动,包括分析、设计、编程、调试和文档等。
较完善的软件幵发环境通常具有多种功能,例如,软件开发的一致性与完整性维护,配置管理及版木控制,数据的多种表示形式及其在不同形式之间的自动转换,信息的自动检索与更新,项目控制和管理,以及对开发方法学的支持。
软件开发环境具有集成性、开放性、可裁减性、数据格式一致性、风格统一的用户界面等特性,因而能大幅度提高软件生产率。
软件开发环境可按以下儿种角度进行分类:
(1) 按软件幵发模型与开发方法分类,有支持瀑布模型、演化模型、螺旋模型和喷泉模型等不同模型,以及结构化方法、面向对象方法等不同方法的软件开发环境。
(2) 按功能与结构特点分类,有单体型、协同型、分散型和并发型等多种类型的软件幵发环境。
(3) 按应用范围分类,有通用型和专用软件幵发环境。其中专用型软件幵发环境与应用领域有关。
(4) 按开发阶段分类,有前端开发环境(支持系统规划、分析、设计等阶段的活动)、后端开发环境(支持编程、测试等阶段的活动)、软件维护环境和逆向工程环境等。
集成机制根据功能的不同,可划分为环境信息库、过程控制与消息服务器、环境用户界面三个部分。
(1) 环境信息库。
环境信息库是软件开发环境的核心,用以存储与系统幵发有关的信息,并支持信息的交流与共享。环境信息库中主要存储两类信息:
一类是开发过程中产生的有关被开发系统的信息,例如,分析文档、设计文档和测试报告等;
另一类是环境提供的支持信息,例如,文档模板、系统配置、过程模型和可复用构件等。
(2) 过程控制与消息服务器。
过程控制与消息服务器是实现过程集成和控制集成的基础。
过程集成是按照具体软件开发过程的要求进行工具的选择与组合,控制集成使各工具之间进行并行通信和协同工作。
(3) 环境用户界面。
环境用户界面包括环境总界面和由它实行统一控制的各环境部件及工具的界面。统一的、具有一致性的用户界面是软件幵发环境的重要特征,是充分发挥环境的优越性、高效地使用 T 具并减轻用户的学习负拘的保证。
目前,随着软件开发工具的积累与自动化工具的增多,软件幵发环境已经进入了第三代,即集成计算机辅助软件工程 (Integrated Computer-Aided Software Engineering ,I C A S E ) 阶段。集成方式经历了从点到点的数据转换(早期 C A S E 采用的集成方式),到公共用户界面(第二代 C A S E , 在一致的界面下调用众多不同的工具),再到目前的信息库方式。这 是 I C A S E 的主要集成方式。 I C A S E 不仅提供数据集成和控制集成,还提供了一组用户界面管理设施和一大批工具,包括垂直工具集(支持软件生命周期各阶段,保证生成信息的完备性和一致性)、水平工具集(用于不同的软件开发方法)和幵放工具槽 (用于连接新的工具)。I C A S E 的信息库不仅定义了面向对象的数据库管理系统,提供了数据-数据集成机制,还建立了可以被环境中所有工具访问的数据模型,提供了数据-工具集成机制,实现了配置管理功能。 I C A S E 的进一步发展则是与软件开发方法的结合,以及智能化的I C A S E 〇,I C A S E 的最终目标是实现应用软件的全自动开发,即开发人员只要写好软件的需求
规格说明书, I C A S E 就能自动完成软件开发工作,即自动生成供用户直接使用的软件和
有关文档。
软件幵发环境中的工具可包括支持特定过程模型和开发方法的工具(例如,支持瀑布模型及数据流方法的工具,支持面向对象方法的工具等)和独立于模型和方法的工具(例如,界面辅助生成工具和文档出版工具等),也可包括管理类工具和针对特定领域的应用类工具 。所有 这些工具可分为贯穿整个开发过程的工具(例如,项目管理工具)和解决软件生命周期中某一阶段问题的工具(例如,软件估算工具等)。
在软件生命周期屮,要使用很多软件工具,从其功能上进行划分,可以分为软件开发工具、软件维护工具、软件管理和支持工具三类。
(1) 软件开发工具 =》 开发人员
软件开发工具用来辅助开发人员进行软件开发活动,包括需求分析工具、设计工具、编码与排错工具等。
软件开发工具,就是直接与软件生命周期的开发活动直接相关的工具。
(2) 软件维护/支持工具 =》 配置管理人员
软件维护工具用来辅助维护人员对软件代码及其文档进行各种维护活动,包括版本管理工具、文档分析工具、开发信息库工具、逆向工程工具和再工程工具等。
(3) 软件管理、支持工具 =》 项目管理人员
软件管理和支持工具用来辅助管理人员和软件支持人员的管理活动和支持活动,以确保软件高质量的完成。包括项目管理工具、配置管理工具和软件评价工具等。
开发工具的选择是软件项目成功的要素之一。
对软件开发工具的评价和选择,要参照具体软件项目对幵发工具的标准和要求,从功能、易用性、稳健性、硬件要求和性能,以及服务和支持等方面来衡量。简单地说,开发工具的选择主要决定于两个因素,分别是所开发系统的最终用户和开发人员。最终用户需求是一切软件的来源和归宿,也是影响幵发工具的决定性因素;开发人员的爱好、习惯和经验也影响着开发工具的选择。需要强调的是,幵发工具的比较没有绝对的标准。评价一种幵发工具,不仅要看它对设计模式和对象结构,以及管理的支撑情况,更重要的是要针对具体的使用环境、开发方法、软件架构和开发人员,以及最终用户来评价一种工具的适宜程度。
在 R A D 方法中,所包括的工具主要有数据库编程语言、界面生成器和报告生成器等。 R A D 工具主要使用可视化技术。可视化技术是一种通过集成细粒度可复用构件来构造软件的一种方法,其主要思想是用图形工具和可复用构件来交互地编制程序。目前,
常用的 RAD 工具有 WebSphere Studio 、 Delphi 、 PowerBuilder 、 J 2 EE 和 .NET 等。
一般的可视化编程工具还有应用向导提供模板,按照步骤对程序员进行交互式指
导,让用户定制自己的应用,然后就可以生成应用程序的框架代码,用户再在适当的地
方添加或修改以适应自己的需求。
目前,各种开发工具的功能相互大量重复,一个大而全的工具几乎总是可以被几个别的工具代替。工具的选择确实非常让人迷惑,但是,无论是开发人员还是管理人员,都应该意识到,工具只能起到辅助作用,严格的软件工程管理和幵发人员的技术水平才是软件开发成功的关键。