正在加载图片...
要使用的语言不熟悉,那么在成本及进度估算时必须把学习的工作量估算在内。 旦确定了软件需求,待选用的程序语言的技术特性就显得非常重要了。如果需要复杂 的数据结构,就要仔细衡量有哪些语言能提供这些复杂的数据结构。如果首要的是高性能及 实时处理的能力,就可选用适合于实时应用的语言或效率高的语言。如果该应用有许多输出 报告或繁杂的文件处理,最好是根据软件的要求,选定一种适合于该项工作的语言。 软件的设计质量与程序设计语言的技术性能无关(面向对象设计例外)。但在实现软件 设计转化为程序代码时,转化的质量往往受语言性能的影响。因而也会影响到设计方法 语言的技术性能对测试和维护的影响是多种多样的。例如,直接提供结构化构造的语言 有利于减少循环带来的复杂性(即 Mccabe复杂性),使程序易读、易测试、易维护。另一方 面,语言的某些技术特性却会妨碍测试。例如,在面向对象的语言程序中,由于实行了数据 封装,使得监控这些数据的执行状态变得比较困难:由于建立了对象类的继承结构,使得高 内聚、低耦合的要求受到破坏,增加了测试的困难。此外,只要语言程序的可读性强,而且 可以减少程序的复杂性,这样的程序设计语言对于软件的维护就是有利的 总之,通过仔细地分析和比较,选择一种功能强而又适用的语言,对成功地实现从软件 设计到编码的转换,提高软件的质量,改善软件的可测试性和可维护性是至关重要的。 (2)程序设计语言的分类 目前,用于软件开发的程序设计语言已经有数百种之多,对这些程序设计语言的分类有 不少争议。同一种语言可以归到不同的类中。从软件工程的角度,根据程序设计语言发展的 历程,可以把它们大致分为4类。 ①从属于机器的语言(第一代语言):它是由机器指令代码组成的语言。对于不同的机 器就有相应的一套机器语言。用这种语言编写的程序,都是二进制代码的形式,且所有的地 址分配都是以绝对地址的形式处理。存储空间的安排,寄存器、变址的使用都由程序员自己 计划。因此使用机器语言编写的程序很不直观,在计算机内的运行效率很高但编写出的机器 语言程序其出错率也高。 ②汇编语言(第二代语言):汇编语言比机器语言直观,它的每一条符号指令与相应的 机器指令有对应关系,同时又增加了一些诸如宏、符号地址等功能。存储空间的安排可由机 器解决。不同指令集的处理器系统就有自己相应的汇编语言。从软件工程的角度来看,汇编 语言只是在高级语言无法满足设计要求时,或者不具备支持某种特定功能(例如特殊的输入 /输出)的技术性能时,才被使用。 ③高级程序设计语言(第三代语言) 传统的高级程序设计语言:如 FORTRAN、 COBOL、 ALGOL、 BASIC等。这些程序 语言曾得到广泛应用。目前,它们都已有多种版本。有的语言得到较大的改进,甚至形成了 可视的开发环境,具有图形设计工具、结构化的事件驱动编程模式、开放的环境,使用户可 以既快又简便地编制出 windows下的各种应用程序。 通用的结构化程序设计语言:它具有很强的过程功能和数据结构功能,并提供结构 化的逻辑构造。这一类语言的代表是PL1, PASCAL,C和Ada。此外, COBOL78、 Turbo BASIC 等也应归入第三代程序语言范围。 ■专用语言:专用语言是为特殊的应用而设计的语言。通常具有自己特殊的语法形式, 面对特定的问题,输入结构及词汇表与该问题的相应范围密切相关。有代表性的专用语言有 APL、Lisp、 PROLOG、 Smalltalk丶C++、 FORTE等。从软件工程的角度来看,专用语言支 寺了特殊的应用,将特定的设计要求翻译成可执行的代码。但是它们的可移植性和可维护性 比较差。 ④第四代语言(4GL):4GL用不同的文法表示程序结构和数据结构,但是它是在更高 一级抽象的层次上表示这些结构,它不再需要规定算法的细节。4GL兼有过程性和非过程性9 要使用的语言不熟悉,那么在成本及进度估算时必须把学习的工作量估算在内。 一旦确定了软件需求,待选用的程序语言的技术特性就显得非常重要了。如果需要复杂 的数据结构,就要仔细衡量有哪些语言能提供这些复杂的数据结构。如果首要的是高性能及 实时处理的能力,就可选用适合于实时应用的语言或效率高的语言。如果该应用有许多输出 报告或繁杂的文件处理,最好是根据软件的要求,选定一种适合于该项工作的语言。 软件的设计质量与程序设计语言的技术性能无关(面向对象设计例外)。但在实现软件 设计转化为程序代码时,转化的质量往往受语言性能的影响。因而也会影响到设计方法。 语言的技术性能对测试和维护的影响是多种多样的。例如,直接提供结构化构造的语言 有利于减少循环带来的复杂性(即 McCabe 复杂性),使程序易读、易测试、易维护。另一方 面,语言的某些技术特性却会妨碍测试。例如,在面向对象的语言程序中,由于实行了数据 封装,使得监控这些数据的执行状态变得比较困难;由于建立了对象类的继承结构,使得高 内聚、低耦合的要求受到破坏,增加了测试的困难。此外,只要语言程序的可读性强,而且 可以减少程序的复杂性,这样的程序设计语言对于软件的维护就是有利的。 总之,通过仔细地分析和比较,选择一种功能强而又适用的语言,对成功地实现从软件 设计到编码的转换,提高软件的质量,改善软件的可测试性和可维护性是至关重要的。 (2) 程序设计语言的分类 目前,用于软件开发的程序设计语言已经有数百种之多,对这些程序设计语言的分类有 不少争议。同一种语言可以归到不同的类中。从软件工程的角度,根据程序设计语言发展的 历程,可以把它们大致分为 4 类。 ① 从属于机器的语言(第一代语言):它是由机器指令代码组成的语言。对于不同的机 器就有相应的一套机器语言。用这种语言编写的程序,都是二进制代码的形式,且所有的地 址分配都是以绝对地址的形式处理。存储空间的安排,寄存器、变址的使用都由程序员自己 计划。因此使用机器语言编写的程序很不直观,在计算机内的运行效率很高但编写出的机器 语言程序其出错率也高。 ② 汇编语言(第二代语言):汇编语言比机器语言直观,它的每一条符号指令与相应的 机器指令有对应关系,同时又增加了一些诸如宏、符号地址等功能。存储空间的安排可由机 器解决。不同指令集的处理器系统就有自己相应的汇编语言。从软件工程的角度来看,汇编 语言只是在高级语言无法满足设计要求时,或者不具备支持某种特定功能(例如特殊的输入 /输出)的技术性能时,才被使用。 ③ 高级程序设计语言(第三代语言) ▪ 传统的高级程序设计语言 :如 FORTRAN、COBOL、ALGOL、BASIC 等。这些程序 语言曾得到广泛应用。目前,它们都已有多种版本。有的语言得到较大的改进,甚至形成了 可视的开发环境,具有图形设计工具、结构化的事件驱动编程模式、开放的环境,使用户可 以既快又简便地编制出 windows 下的各种应用程序。 ▪ 通用的结构化程序设计语言 :它具有很强的过程功能和数据结构功能,并提供结构 化的逻辑构造。这一类语言的代表是 PL/1,PASCAL,C 和 Ada。此外,COBOL78、Turbo BASIC 等也应归入第三代程序语言范围。 ▪ 专用语言 :专用语言是为特殊的应用而设计的语言。通常具有自己特殊的语法形式, 面对特定的问题,输入结构及词汇表与该问题的相应范围密切相关。有代表性的专用语言有 APL、Lisp、PROLOG、Smalltalk、C++、FORTH 等。从软件工程的角度来看,专用语言支 持了特殊的应用,将特定的设计要求翻译成可执行的代码。但是它们的可移植性和可维护性 比较差。 ④ 第四代语言(4GL):4GL 用不同的文法表示程序结构和数据结构,但是它是在更高 一级抽象的层次上表示这些结构,它不再需要规定算法的细节。4GL 兼有过程性和非过程性
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有