传统软件工程方法学概述

发布时间 : 星期三 文章传统软件工程方法学概述更新完毕开始阅读

传统软件工程方法学

随着计算机应用领域的不断拓广,各种各样的问题也不断涌现,当问题严重到开发人员无法控制的时候便产生了软件危机。软件危机的出现,促使了软件工程学的形成和发展。随之整合整套技术的软件工程方法学广泛应用,主流之一就是传统方法学。传统方法学在软件开发过程中占据相当大的比重,因为其悠久的历史而为很多软件工程师青睐。如果说自然语言和编程语言之间有一道难以跨越的鸿沟,传统方法学就是跨越这道鸿沟的桥梁。

传统方法学又称生命周期方法学或结构化范型。一个软件从开始计划起,到废弃不用止,称为软件的生命周期。在传统的软件工程方法中,软件的生存周期分为需求分析、总体设计、详细设计、编程和测试几个阶段。

传统方法学使用的是结构化分析技术来完成需求分析阶段的工作。软件工程学中的需求分析具有两方面的意义。在认识事物方面,它具有一整套分析、认识问题域的方法、原则和策略。这些方法、原则和策略使开发人员对问题域的理解比不遵循软件工程方法更为全面、深刻和有效。在描述事物方面,它具有一套表示体系和文档规范。但是,传统的软件工程方法学中的需求分析在上述两方面都存在不足.它在全局范围内以功能、数据或数据流为中心来进行分析。这些方法的分析结果不能直接地映射问题域,而是经过了不同程度的转化和重新组合。因此,传统的分析方法容易隐蔽一些对问题域的理解偏差,与后续开发阶段的衔接也比较困难。

在总体设计阶段,以需求分析的结果作为出发点构造出一个具体的系统设计方案,主要是决定系统的模块结构,以及模块的划分,模块间的数据传送及调用关系。详细设计是在总体设计的基础上考虑每个模块的内部结构及算法,最终将产生每个模块的程序流程图。但是传统的软件工程方法中设计文档很难与分析文档对应,原因是二者的表示体系不一致,所谓从分析到设计的转换,实际上并不存在可靠的转换规则,而是带有人为的随意性,从而很容易因理解上的错误而留下隐患。

编程阶段是利用一种编程语言产生一个能够被机器理解和执行的系统,测试是发现和排除程序中的错误,最终产生一个正确的系统。但是由于分析方法的缺陷很容易产生对问题的错误理解,而分析与设计的差距很容易造成设计人员对分析结果的错误转换,以致在编程时程序员往往需要对分析员和设计人员已经认识过的事物重新进行认识,并产生不同的理解。因此为了使两个阶段之间能够更好的衔接,测试就变得尤为重要。

软件维护阶段的工作,一是对使用中发生的错误进行修改,二是因需求发生了变化而进行修改。前一种情况需要从程序逆向追溯到发生错误的开发阶段。由于程序不能映射问题以及各个阶段的文档不能对应,每一步追溯都存在许多理解障碍。第二种情况是一个从需求到程序的顺向过程,它也存在初次开发时的那些困难,并且又增加了理解每个阶段原有文档的困难。

传统软件工程方法面向的是过程,它按照数据变换的过程寻找问题的结点,对问题进行分解。由于不同人对过程的理解不同,故面向过程的功能分割出的模块会因人而异。对于问

1

题世界的抽象结论,结构化方法可以用数据流图,系统结构图,数据字典,状态转移图,实体关系图来进行系统逻辑模型的描述,生产一个最终能满足需求且达到工程目标的软件产品所需要的步骤。

传统软件工程方法学强调以模块为中心,采用模块化,自顶向下,逐步求精设计过程,系统是实现模块功能的函数和过程的集合,结构清晰,可读性好,是提高软件开发质量的一种有效手段。结构化设计从系统的功能入手,按照工程标准,严格规范地将系统分解为若干功能模块,因为系统是实现模块功能的函数和过程的集合。然而,由于用户的需要和软硬件技术的不断发展变化,作为系统基本组成部分的功能模块很容易受到影响,局部修改甚至会引起系统的根本性变化。开发过程前期入手快而后期频繁改动的现象比较常见。

当然,传统的软件工程方法学也存在很多的缺点,主要表现在生产效率非常底,从而导致不能满足用户的需要,复用程度低,软件很难维护等。虽然如此,传统方法学仍然是人们在软件开发过程中使用的十分广泛的软件工程方法学,在开发某些类型的软件时也比较有效。因此传统软件工程方法学的价值并不会因面向对象方法学的出现而减少,并且它还是学习面向对象方法学的基础。

2

联系合同范文客服:xxxxx#qq.com(#替换为@)