软件开发环境(Software Development Environment,SDE)

来源:互联网 发布:淘宝宝贝权重查询 编辑:程序博客网 时间:2024/04/24 00:41

      软件开发环境(Software Development Environment,SDE)是指在基本硬件和宿至软件的基础上,为支持系统软件和应用软件的工程化开发和维护而使用的一组软件,简称SDE。它由软件工具和环境集成机制构成,前者用以支持软件开发的相关过程、活动和任务,后者为工具集成和软件的开发、维护及管理提供统一的支持。

      SDE在欧洲又叫集成式项目支援环境(Integrated Project Support Environment,IPSE)。

      软件开发环境的主要组成成分是软件工具。人机界面是软件开发环境与用户之间的一个统一的交互式对话系统,它是软件开发环境的重要质量标志。存储各种软件工具加工所产生的软件产品或半成品(如源代码、测试数据和各种文档资料等)的软件环境数据库是软件开发环境的核心。工具间的联系和相互理解都是通过存储在信息库中的共享数据得以实现的。

      软件开发环境数据库是面向软件工作者的知识型信息数据库,其数据对象是多元化、带有智能性质的。软件开发数据库用来支撑各种软件工具,尤其是自动设计工具、编译程序等的主动或被动的工作。

      较初级的SDE数据库一般包含通用子程序库、可重组的程序加工信息库、模块描述与接口信息库、软件测试与纠错依据信息库等;较完整的SDE数据库还应包括可行性与需求信息档案、阶段设计详细档案、测试驱动数据库、软件维护档案等。更进一步的要求是面向软件规划到实现、维护全过程的自动进行,这要求SDE数据库系统是具有智能的,其中比较基本的智能结果是软件编码的自动实现和优化、软件工程项目的多方面不同角度的自我分析与总结。这种智能结果还应主动地被重新改造、学习,以丰富SDE数据库的知识、信息和软件积累。这时候,软件开发环境在软件工程人员的恰当的外部控制或帮助下逐步向高度智能与自动化迈进。

      软件实现的根据是计算机语言。时至今日,计算机语言发展为算法语言、数据库语言、智能模拟语言等多种门类,在几十种重要的算法语言中,C&C++语言日益成为广大计算机软件工作人员的亲密伙伴,这不仅因为它功能强大、构造灵活,更在于它提供了高度结构化的语法、简单而统一的软件构造方式,使得以它为主构造的SDE数据库的基础成分——子程序库的设计与建设显得异常的方便。

      事实上,以C&C++为背景建立的SDE子程序库能为软件工作者提供比较有效、灵活、方便、友好的自动编码基础,尤其是C++的封装等特性,更适合大项目的开发管理和维护。

软件开发环境可按以下几种角度分类:

      (1)按软件开发模型及开发方法分类,有支持瀑布模型、演化模型、螺旋模型、喷泉模型以及结构化方法、信息模型方法、面向对象方法等不同模型及方法的软件开发环境。

      (2)按功能及结构特点分类,有单体型、协同型、分散型和并发型等多种类型的软件开发环境。

      (3)按应用范围分类,有通用型和专用型软件开发环境。其中专用型软件开发环境与应用领域有关,故又软件开发方法(Software Development Method)是指软件开发过程所遵循的办法和步骤。软件开发活动的目的是有效地得到一些工作产物,也就是一个运行的系统及其支持文档,并且满足有关的质量要求。软件开发是一种非常复杂的脑力劳动,所以经常更多讨论的是软件开发方法学,指的是规则、方法和工具的集成,既支持开发,也支持以后的演变过程(交付运行后,系统还会变化,或是为了改错,或是为了功能的增减)。

      关于组成软件开发和系统演化的活动有着各种模型(参见软件生存周期,软件开发模型,软件过程),但是典型地都包含了以下的过程或活动:分析、设计、实现、确认(测试验收)、演化(维护)。

      有些软件开发方法是专门针对某一开发阶段的,属于局部性的软件开发方法。特别是软件开发的实践表明,在开发的早期阶段多做努力,在后来的测试和维护阶段就会使费用较大地得以缩减。因此,针对分析和设计阶段的软件开发方法特别受到重视。其它阶段的方法,从程序设计发展的初期起就是研究的重点,已经发展得比较成熟(参见程序设计,维护过程)。除了分阶段的局部性软件开发方法之外,还有覆盖开发全过程的全局性方法,尤为软件开发方法学注意的重点。

      对软件开发方法的一般要求:当提出一种软件开发方法时,应该考虑许多因素,包括:①覆盖开发全过程,并且便于在各阶段间的过渡;②便于在开发各阶段中有关人员之间的通信;③支持有效的解决问题的技术;④支持系统设计和开发的各种不同途径;⑤在开发过程中支持软件正确性的校验和验证;⑥便于在系统需求中列入设计、实际和性能的约束;⑦支持设计师和其他技术人员的智力劳动;⑧在系统的整个生存周期都支持它的演化;⑨受自动化工具的支持。此外,在开发的所有阶段,有关的软件产物都应该是可见和可控的;软件开发方法应该可教学、可转移,还应该是开放的,即可以容纳新的技术、管理方法和新工具,并且与已有的标准相适应可称为应用型软件开发环境。

      ⑷按开发阶段分类,有前端开发环境(支持系统规划、分析、设计等阶段的活动)、后端开发环境(支持编程、测试等阶段的活动)、软件维护环境和逆向工程环境等。此类环境往往可通过对功能较全的环境进行剪裁而得到。软件开发环境由工具集和集成机制两部分构成,工具集和集成机制间的关系犹如“插件”和“插槽”间的关系。

      工具集:软件开发环境中的工具可包括:支持特定过程模型和开发方法的工具,如支持瀑布模型及数据流方法的分析工具、设计工具、编码工具、测试工具、维护工具,支持面向对象方法的OOA工具、OOD工具和OOP工具等;独立于模型和方法的工具,如界面辅助生成工具和文档出版工具;亦可包括管理类工具和针对特定领域的应用类工具。

      集成机制:对工具的集成及用户软件的开发、维护及管理提供统一的支持。按功能可划分为环境信息库、过程控制及消息服务器、环境用户界面三个部分。

      环境信息库:是软件开发环境的核心,用以储存与系统开发有关的信息并支持信息的交流与共享。库中储存两类信息,一类是开发过程中产生的有关被开发系统的信息,如分析文档、设计文档、测试报告等;另一类是环境提供的支持信息,如文档模板、系统配置、过程模型、可复用构件等。

      过程控制和消息服务器:是实现过程集成及控制集成的基础。过程集成是按照具体软件开发过程的要求进行工具的选择与组合,控制集成并行工具之间的通信和协同工作。

      环境用户界面:包括环境总界面和由它实行统一控制的各环境部件及工具的界面。统一的、具有一致视感(Look & Feel)的用户界面是软件开发环境的重要特征,是充分发挥环境的优越性、高效地使用工具并减轻用户的学习负担的保证。

      较完善的软件开发环境通常具有如下功能:
(1)软件开发的一致性及完整性维护;
(2)配置管理及版本控制;
(3)数据的多种表示形式及其在不同形式之间自动转换;
(4)信息的自动检索及更新;
(5)项目控制和管理;
(6)对方法学的支持。
 

原创粉丝点击