▶2.2.3.1 按工作阶段划分
软件工作是一个长期的、多阶段的过程,各个阶段对信息和信息处理的需求不同,相应的工具也就不相同。粗略地说,可以把软件开发工具分为三类:设计工具、分析工具、计划工具。
(1)从工作的抽象程度来看,设计工具是最具体的,它是指在实现阶段对人们提供帮助的工具。例如各种代码生成器、一般所说的第四代语言和帮助人们进行测试的工具(包括提供测试环境或测试数据)等,都属于设计工具之列。它是最直接地帮助人们编写与调试软件的工具。
(2)分析工具主要是指用于支持需求分析的工具。例如,帮助人们编写数据字典的、专用的数据字典管理系统(如DEC公司的CDD,HP公司的Dictionary/3000),帮助人们绘制数据流程图的专用工具——FLOW,帮助人们画系统结构图或ER图的工具等。它们虽不是直接帮助人写程序,但是它们帮助人们认识与表述信息需求与信息流程,从逻辑上明确软件的功能与要求。前面已经讲过,需求分析已被公认为是软件开发中的一个首要的,不可缺少的阶段。
(3)计划工具则从更宏观的角度去看待软件开发。它不仅从项目管理的角度帮助人们组织与实施项目,并且把有关进度,资源、质量、验收情况等信息有条不紊地管理起来,而且考虑到了项目的反复循环、版本更新,实现了“跨生命周期”(Close Life Cycle)的信息管理与共享,为信息以及软件的重用创造了条件。
在实践中,设计工具是出现得最早、数量最大的。原因是它们直接为开发软件中的编程、调试、文档编写工作提供帮助。即使是一个人单独开发的软件,也可以从这种工具的使用得益。分析工具则出现得较晚,数量也少一些,因为需求分析的复杂程度与项目的规模有直接的关系。对于功能单纯、规模较小的软件来说,需求分析比较简单,数据的结构与流程比较容易弄清,不必用专门的工具就可以进行。然而对于功能众多、关系复杂、规模较大的软件系统,工具的应用就成为必不可少的了。正因为这样,除了少量专用的工具外,多数的分析工具都是作为较大型计算机的专用系统出现的,例如上面提到的CDD和Dictionary/3000。至于计划工具则完全是为项目主管人员服务的。这类软件开发工具保存与管理的信息。都是与整个项目有关的宏观信息。这样的工具当然只有在软件规模达到一定程度时才会需要,才会产生。所以它的出现与开发都比较晚。但是从另一方面看,正是软件产业的规模越来越大,才使计划工具的出现成为必然的趋势。它的重要性及地位将随着软件产业的发展而越来越为人们所认识,尽管现在它还不那么普遍。有些地方还把软件开发工具分为上游工具与下游工具,这大致相当于前面所说的分析工具与设计工具。所谓上下游是指在开发过程中的时间先后关系。
▶2.2.3.2 按集成程度划分
虽然把集成化作为一个发展的新阶段看待,但是直到今天,还是专用的工具多,而真正集成化的工具少。在实践中切实发挥作用的往往还是某些专用工具。显然,真正集成化的软件开发工具,要求人们对于软件开发过程这样的复杂事物有更深入的认识和了解。这方面的不成熟反映出人类在认识、描述、管理、控制复杂性方面还处于很初步的阶段。这并不是说集成化没有必要或者没有可能,而是说至少在目前,或在可以预见的一段时期内,我们还是应当充分利用各种专用的、面对某一环境或某一工作的软件开发工具。至于开发与应用集成化的软件开发工具,是应当努力研究与探索的课题,而真正做到集成化的、统一地支持软件开发全过程的工具,还是相当少见的。集成化的软件开发工具也常常被称为软件工作环境。
▶2.2.3.3 按与硬件、软件的关系划分(www.xing528.com)
软件开发工具又可以按它与硬件、软件的关系来分类。有的软件开发工具依赖于特定的计算机或特定的软件(如某种数据库管理系统)。另一类软件开发工具则是独立于硬件与其他软件的。这当然与工具自身的情况有关。一般来说,设计工具多是依赖于特定软件的,因为它生成的代码或测试数据不是抽象的,而是具体的某一种语言的代码或该语言所要求的格式的数据。例如ORACLE的CASE所生成的当然就是ORACLE的代码,HP/9000机器上的4GL生成的就是在HP/9000上可运行的代码。而分析工具与计划工具则往往是独立于机器与软件的,集成化的软件开发工具又常常是依赖于机器与软件的。
软件开发工具是否依赖于特定的计算机硬件或软件系统,对于应用的效果与作用是有直接影响的。这个问题是研究和使用它所必须注意的。
软件开发工具的种类很多,以上各种分类方法反映出这种多样性。研究和使用者应当从广泛的意义上去理解和认识软件开发工具。
【注释】
[1]冼泽华.绿色软件开发[M].北京:清华大学出版社,2014.
[2]陈明.软件工程学教程[M].北京:北京理工大学出版社,2013.
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。