浅谈工程设计在软件开发过程中的应用[1]

[入库:2006年2月23日] [更新:2007年3月24日]

本文简介:

浅谈工程设计在软件开发过程中的应用

人类从事的各种有目的活动,都离不开设计。关于设计,其最初含意是:将符号、记号、图形之类记下。我国《辞海》把设计解释为“在正式做某项工作之前,根据一定目的要求,预先制订方法、图样等”。可以认为,广义上的设计是指人们为达到一定的目标,事先为它寻找几种实现形式或模式的活动这种活动主要表现为,人围绕目标进构思,创造出一种模式、模型或观念建构,并把这记录下来。

设计类型很多,最常见之一是工程设计,好为工业生产或工程建设进行的设计它的目标是通过设计建立新的具有特定功能的技术系统,如房屋、道路、桥梁、车辆、机器设备、生活用品,等等,以满足人们的生活和生产需要。工程设计的实质让是从了解现实入手,运用各种科学知识和经验,改造自然资源使之向人所需要的形式转化。就程序而言,它是在技术原理基础上的再创造过程,是技术原理和技术思想的具体化、现实化,是技术创造观念建构过程的最后一环,也是这种观念物化过程的起点。就作用来说,它是人类生产活动的一个重要环节,是技术原理物化为技术创造物的桥梁,是组织生产施工的重要依据。

早期的软件开发采用个体工作方式,开发工作主要依赖于开发人员的个人技能和程序设计技巧。当时的软件通常缺少与程序有关的文档,软件开发的实际成本和进度往往与预计的相差甚远,软件的质量得不到保证,开发出来的软件常常不能使用户满意。随着计算机应用的需求不断增长,软件的规模也越来越大,然而软件开发的生产率远跟不上计算机应用的增长速率。上述问题严重的阻碍了软件的发展,60年代中期,人们把上述软件开发和维护中的各种问题称为“软件危机”。

1968年在德国召开的NATO会议上,首次提出了“软件工程”一词,希望用工程化的原则和方法来克服软件危机。在此以后,人们开展了软件开发模型、开发方法、工具与环境的研究,提出了瀑布模型、演化模型、螺旋模型、喷泉模型等开发模型,出现了面向数据流方法、面向数据结构的方法、面向对象方法等开发方法,以及一批CASEcomputer aided software engineering)工具和环境。

自从1968年首次提出“软件工程”一词以来,“软件工程”已成为计算机软件的一个重要分支和研究方向。“软件工程”是指应用计算机科学,数学及管理科学等原理,以工程化的原则和方法来解决软件问题的工程。其目的是提高软件生产率,提高软件质量,降低软件成本。软件工程涉及到软件开发以、维护、管理等多方面的原理、方法、工具与环境。

工程设计的一个特点就是目标明确性。工程设计一开始具有明解的目标,即满足人们各种各样的具体物质需求。其任务是在产品投产或工程实施之前,提供关于诸如这项产品或工程的构造、性能、工艺、制造施工程序等的图纸、文件或诸如此类的东西。在软件工程中这一特点则表现为“需求分析”的过程。在这一阶段,通过开发人员与用户之间的广泛交流,不断澄清一些模糊的概念,最终形成一个完整的、清晰的、一致的需求说明。可以说,需求分析的好坏将直接影响到所开发的软件的成败。

工程设计的另一个特点就是综合性。工程设计的对象往往是复杂、具体的实际问题,目标要求多,有时甚至互相矛盾,而客观条件又有限。所以,要达到设计要求,除从技术上考虑工程技术的合理性和现实可能以外,还要综合考虑其他现实因素,如投资额、成本效益、管理水平、市场状况、公众心理以及与环境的协调性等。对方案的分析和评价,也要从技术、经济、社会影响等方面综合考虑,满足科学、适用性、经济性、安全、美观性,甚至时间性、地域性等特殊要求。由于涉及问题多,工程设计往往需要综合运用许多专业的知识并结合个人经验。因此,对于实际工程问题,要求提出多个方案,并从总体和各有关因素进行深入考虑,综合分析、权衡各方面要求和条件,进行优或折衷,得到满意方案。而在“软件工程”中,“可行性分析”阶段对这一特性有淋漓尽致的体现。可行性分析的任务是从技术、经济、使用上、法律上分析需解决的问题是否存在可行的解。其目的是在尽可能短的时间内用尽可能小的价来确定问题是否有解。在进行可行性分析时,通常要先研究目前正在使用的系统,然后根据待开发系统的要求导出新系高层逻辑模型。有时可提出几个供选择的方案,并对每个方案从技术上、经济上、法律上进行可行性分析,在对各方案进行比较后,选择其中的一个作为推荐方案,有时可能也要在几个方案中进行折衷,最后推荐方案给出一个明确的结论,如“可行”、“不可行”,可“等某某条件成熟后可行”。

本文关键:浅谈工程设计在软件开发过程中的应用
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top