正在加载图片...
的两重特性。程序员规定条件和相应的动作这是过程性的部分,并且指出想要的结果,这是 非过程部分。然后由4GL语言系统运用它的专门领域的知识来填充过程细节 Martin把第四代语言分为以下几种类型: 查询语言:用户可利用查询语言对预先定义在数据库中的信息进行较复杂的操作。 ■程序生成器:只需很少的语句就能生成完整的第三代语言程序,它不必依赖预先定 义的数据库作为它的着手点 其它4GL:如判定支持语言、原型语言、形式化规格说明语言等。 (3)程序设计语言的选择 为某个特定开发项目选择程序设计语言时,既要从技术角度、工程角度、心理学角度评 价和比较各种语言的适用程度,又必须考虑现实可能性。有时需要作出某种合理的折衷 在选择与评价语言时,首先要从问题入手,确定它的要求是什么?这些要求的相对重要 性如何?再根据这些要求和相对重要性来衡量能采用的语言 通常考虑的因素有①项目的应用范围:②算法和计算复杂性;③软件执行的环境 ④性能上的考虑与实现的条件:⑤数据结构的复杂性:⑥软件开发人员的知识水平和心理 因素等。其中,项目的应用范围是最关键的因素 针对计算机的4个主要应用领域,为语言做一个粗略的分类。例如,在科学与工程计算 领域内,C,C++语言得到了广泛的应用,但 FORTRAN仍然是应用最广泛的语言。在商业 数据处理领域中,通常采用 COBOL,RPG语言编写程序,当然也可选用SQL语言或其它专 用语言。在系统程序设计和实时应用领域中,汇编语言或一些新的派生语言,如BLSS,PL /S,Ada,C++等得到了广泛的应用。在人工智能领域以及问题求解,组合应用领域,主要 采用LSP和 PROLOG语言。 新的更强有力的语言,虽然对于应用有很强的吸引力,但是因为已有的语言已经积累了 大量的久经使用的程序,具有完整的资料、支撑软件和软件开发工具,程序设计人员比较熟 悉,而且有过类似项目的开发经验和成功的先例,由于心理因素,人们往往宁愿选用原有的 语种。所以应当彻底地分析,评价,介绍新的语言,以便从原有语言过渡到新的语言。 5.程序复杂性度量 程序复杂性主要指模块内程序的复杂性。它直接关联到软件开发费用的多少,开发周期 的长短和软件内部潜伏错误的多少。同时它也是软件可理解性的另一种度量。 减少程序复杂性,可提高软件的简单性和可理解性,并使软件开发费用减少,开发周期 缩短,软件内部潜藏错误减少 (1)代码行度量法 度量程序的复杂性,最简单的方法就是统计程序的源代码行数。此方法基于两个前提 ·程序复杂性随着程序规模的増加不均衡地增长 ·控制程序规模的方法最好是采用分而治之的办法。将一个大程序分解成若干个简单的 可理解的程序段。 方法的基本考虑是统计一个程序模块的源代码行数目,并以源代码行数做为程序复杂性 的度量。若设每行代码的出错率为每100行源程序中可能有的错误数目,例如每行代码的出 错率为1%,则是指每100行源程序中可能有一个错误。 Thayer曾指出,程序出错率的估算范围是从0.04%~7%之间,即每100行源程序中可 能存在0.04~7个错误。他还指出,每行代码的出错率与源程序行数之间不存在简单的线性 关系。 Lipow进一步指出,对于小程序,每行代码的出错率为1.3%~1.8%;对于大程序, 每行代码的出错率增加到27%~3.2%之间,但这只是考虑了程序的可执行部分,没有包括 程序中的说明部分。 Lipow及其他研究者得出一个结论:对于少于100个语句的小程序,源10 的两重特性。程序员规定条件和相应的动作这是过程性的部分,并且指出想要的结果,这是 非过程部分。然后由 4GL 语言系统运用它的专门领域的知识来填充过程细节。 Martin 把第四代语言分为以下几种类型: ▪ 查询语言 :用户可利用查询语言对预先定义在数据库中的信息进行较复杂的操作。 ▪ 程序生成器 :只需很少的语句就能生成完整的第三代语言程序,它不必依赖预先定 义的数据库作为它的着手点。 ▪ 其它 4GL :如判定支持语言、原型语言、形式化规格说明语言等。 (3) 程序设计语言的选择 为某个特定开发项目选择程序设计语言时,既要从技术角度、工程角度、心理学角度评 价和比较各种语言的适用程度,又必须考虑现实可能性。有时需要作出某种合理的折衷。 在选择与评价语言时,首先要从问题入手,确定它的要求是什么? 这些要求的相对重要 性如何? 再根据这些要求和相对重要性来衡量能采用的语言。 通常考虑的因素有 ① 项目的应用范围;② 算法和计算复杂性;③ 软件执行的环境; ④ 性能上的考虑与实现的条件;⑤ 数据结构的复杂性;⑥ 软件开发人员的知识水平和心理 因素等。其中,项目的应用范围是最关键的因素。 针对计算机的 4 个主要应用领域,为语言做一个粗略的分类。例如,在科学与工程计算 领域内,C,C++ 语言得到了广泛的应用,但 FORTRAN 仍然是应用最广泛的语言。在商业 数据处理领域中,通常采用 COBOL,RPG 语言编写程序,当然也可选用 SQL 语言或其它专 用语言。在系统程序设计和实时应用领域中,汇编语言或一些新的派生语言,如 BLISS,PL /S,Ada,C++等得到了广泛的应用。在人工智能领域以及问题求解,组合应用领域,主要 采用 LISP 和 PROLOG 语言。 新的更强有力的语言,虽然对于应用有很强的吸引力,但是因为已有的语言已经积累了 大量的久经使用的程序,具有完整的资料、支撑软件和软件开发工具,程序设计人员比较熟 悉,而且有过类似项目的开发经验和成功的先例,由于心理因素,人们往往宁愿选用原有的 语种。所以应当彻底地分析,评价,介绍新的语言,以便从原有语言过渡到新的语言。 5. 程序复杂性度量 程序复杂性主要指模块内程序的复杂性。它直接关联到软件开发费用的多少,开发周期 的长短和软件内部潜伏错误的多少。同时它也是软件可理解性的另一种度量。 减少程序复杂性,可提高软件的简单性和可理解性,并使软件开发费用减少,开发周期 缩短,软件内部潜藏错误减少。 (1) 代码行度量法 度量程序的复杂性,最简单的方法就是统计程序的源代码行数。此方法基于两个前提: ·程序复杂性随着程序规模的增加不均衡地增长; ·控制程序规模的方法最好是采用分而治之的办法。将一个大程序分解成若干个简单的 可理解的程序段。 方法的基本考虑是统计一个程序模块的源代码行数目,并以源代码行数做为程序复杂性 的度量。若设每行代码的出错率为每 100 行源程序中可能有的错误数目, 例如每行代码的出 错率为 1%,则是指每 100 行源程序中可能有一个错误。 Thayer 曾指出,程序出错率的估算范围是从 0.04%~7%之间,即每 100 行源程序中可 能存在 0.04~7 个错误。他还指出,每行代码的出错率与源程序行数之间不存在简单的线性 关系。Lipow 进一步指出,对于小程序,每行代码的出错率为 1.3%~1.8%; 对于大程序, 每行代码的出错率增加到 2.7%~3.2%之间,但这只是考虑了程序的可执行部分,没有包括 程序中的说明部分。Lipow 及其他研究者得出一个结论:对于少于 100 个语句的小程序,源
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有