自然辩证法与软件工程xx软件学院xxxxx摘要:以自然辩证法的观点探讨了软件工程以及计算机工业的发展历程,运用自然辩证法的基本理论和方法及概念,系统分析了软件工程学科及计算机语言的历史、现状和未来,并对其发展趋势和未来模式做了探索性研究和预测,同时以哲学的观点阐述其发展的因果关系,揭示其事物发展的共性问题。本文以五大部分,诠释了这些理论,并提出软件工程的发展目标是从根本上克服软件危机,逐步实现软件开发的简单化、标准化、可持续化和全球化。关键词:自然辩证法科学技术方法论软件工程学科发展计算机语言互联网自然辩证法的研究对象是自然界发展和科学技术发展的一般规律、人类认识和改造自然的一般方法以及科学技术在社会发展中的作用。科学技术方法论作为自然辩证法的一个有机的组成部分,对我们正确的学习理论知识有着重要的指导作用。作为软件工程专业,我深深体会到软件工程在生活中实践中的重要性,同时其特性也最能体现出科技方法论的指导作用。本文以自然辩证法的观点认识和分析软件工程学科的发展历程,通过科技方法论和软件工程学科相结合的方式做探索性研究和预测,将有助于更加准确地掌握软件工程的发展目标。一、自然辩证法是马克思主义哲学的一个重要的组成部分,它包含了辩证唯物主义的自然观、辩证唯物主义的科学技术方法论和辩证唯物主义的科学技术观。其中,科学技术方法论是关于科学技术研究中常用的一般方法的理论,是关于科学研究和工程技术研究一般方法的性质、特点、内在联系和发展变化的理论体系。科技方法论对我们正确2的学习各科理论知识有着重要的指导作用。首先,它提出了实践是一切科学问题的来源,这是“实践是检验真理的唯一标准”这一马克思主义理论在科学实践中的具体应用而得出的结论。一切问题的来源都是人们的生产实践和科学实践。其次,它强调了用系统的方法去分析问题和解决问题。当今的时代,科学已经发展为大科学,技术发展为高技术,科学技术比以往任何时候都更加贴近我们的生活,已经成为我们这个社会大系统的一个组成部分。这使我们必然的用系统的眼光来看问题。即使是单个的学科,由于研究的深入,它和其他学科的联系越来越密切,越发的表现出边沿性和交叉性,用系统的观点来研究问题也就成了必然的选择。二、在早期的软件开发过程中,形成了一系列的错误理论和方法,在实践中或多或少地采用了错误的方法和技术,使软件问题最终发展成软件危机。例如,对软件成本和进度估计不准确,软件质量缺乏保证,缺少必要的文档,软件风险管理重视度低,软件项目管理体系不健全等。因此,根据实际工作中出现的情况与原有软件开发理论之间的矛盾,计算机科学家们开始寻找一条新的软件开发途径。这种原有软件开发理论与实践的矛盾内在推动了软件工程的产生和发展。从科学技术发展的历史过程来看,各门学科之间的发展是不平衡的,这种不平衡推动了新学科的产生或旧学科的发展。在上世纪60年代末,由于微电子学技术的进步和硬件工程的发展,硬件生产取得了巨大的飞跃,计算机的运算速度成倍提高,质量也越来越好。然而,计算机软件成本却在逐年上升,而且质量没有保证。最终导致计算机科学家不得不去探讨新的软件生产方法,以适应计算机硬件发展的需要。可见,计算机软件与硬件发展的不平衡对软件工程的产生和发展起了巨大的推动作用,成为软件工程发展的外部动力。三、技术在工程化中不断地创新,技术自身也在历史的进程中向前发展。软件工程经过四十余年的发展,达到今天如此丰富的程度,关键在于技术创新。在软件工程概念提出之前,凡是提到工程,接会被认为是传统的硬件建设,从来没3有把软件开发这种性质的工作当作工程来看待。软件工程这一概念的提出,超越了人们对“工程”概念的传统认识,开创了一个新的研究领域,将软件开发工作提到了非常高的地位,为软件危机的解决开辟了道路。早期软件开发时,没开发一个软件,所有开发工作都要从头做起。因此,如果在开发新软件的过程中,能将过去开发其它软件用过的材料直接重复使用或简单修改后再使用,即可大大提高软件开发效率,这样就出现了软件的重复使用。使用软件重用技术可以减少软件开发活动中大量的重复性工作,这样就能提高软件生产率,降低开发成本,缩短开发周期。同时,由于软构件大都经过严格的质量认证,并在实际运行环境中得到校验,因此,重用软构件有助于改善软件质量。此外,大量使用软构件,软件的灵活性和标准化程度也可望得到提高,构件组装模型、中间件技术显著地降低了软件开发成本、提高了软件开发效率。在软件开发实践中证明,采用先进的开发技术和开发工具后,许多软件开发组织的软件生产率和软件质量仍然存在问题,经过人们的考察发现,问题的关键在于“管理”。在无规则和混乱的管理下,先进的开发技术和开发工具并不能发挥作用。于是,美国卡内基梅隆大学软件工程研究所在20世纪80年代末建立了CMM(软件过程能力成熟度模型),要求人们在开发软件时不是单纯地考虑开发技术和开发工具,还要考虑软件过程管理。CMM将能力成熟度定义为5个等级:初始级、可重复级、已定义级、已管理级和优化级,给出了评价软件机构能力的标准。通过建立CMM,帮助软件开发机构建立一个有规律的、成熟的软件过程,使其软件过程能力得到质的飞跃。传统的软件开发方法操作过程复杂繁琐,没有发挥开发团队中每个人的创造力,没有注意到开发团队中人与人相互沟通所产生的巨大效益,轻视与用户的亲密合作,缺乏迭代控制和风险管理,很难提高软件的生产率。2001年,美国犹他州城里敏捷联盟,发布了敏捷软件开发宣言,提出敏捷软件开发方法,重视适应变动和以人为本的核心理念,是软件开发方法的一次重要创新。其中,极限编程XP(eXtremeProgramming)就是敏捷方法的典型代表,将开发过程分为计划、设计、编码和测试四个阶段,强调沟通、反馈、简单、勇气4条核心价值,在许多中小型软件项目开发中得到令人满意的结果。计算模式的发展经历了中央主机模式、客户机/服务器模式以及分布式计算模式。其中,分布式计算是近年新提出的一种计算方式。所谓分布式计算就是由两个或多个软件4互相共享信息,这些软件既可以在同一台计算机上运行,也可以在通过网络连接起来的多台计算机上运行。分布式计算技术已经成为计算技术的主导,它将对软件工程技术和软件产业的发展带来深刻影响。四、马克思主义唯物辩证法的发展观告诉我们,整个世界是无限发展的,要用发展的眼光看待事物的发展趋势,了解过去,观察现在,预测未来。而运用自然辩证法来看待软件工程,能得到以下几个特征点:1.软件系统构件化因为B/S体系的出现及广泛使用,更多的能力要素放入web服务器端及数据库服务器端,对于插件及元件的要求变的很高,必须要求能够重用,以此来提高计算机的工作速度,因此软件系统的整体构件化趋势成为不可阻挡。2.新的标准的出现软件的需求分析、详细设计、代码实现以及软件测试的流程逐渐清晰,软件的交付周期也由此快速缩短,而且大多数中大型企业及其软件开发团队都将其列入或不可缺的项目。周期缩短能让软件开发进程加快,但同时也带来了很多其他方面的问题,因此需要我们提出新的标准。3.智能极速化,集成密集化软件开发的一个重要保证就是其集成式发展、更新、迭代带来的质量保证。人工智能在生活中的比重逐渐扩大,机器学习跟深度学习也成为学习的重中之重,软件工程体系逐渐将人工智能融入,这种不断的更新于包容将会使得整个软件工程变得更智能,集成也越来越密集。4.全球化进程加快,模式方式的改变5在当今的二十一新世纪,最主要的一个特征便是全球化进程极速加剧。因为这一特征逐渐明显,各国之间的界限也渐渐变得薄弱,交互就变得极为重要。软件产业的一个至关重要的廉价劳动力驱动推动了当今软件产业由简至繁,由浅到深,提供了早期开发的动力需求,奠定了一个良好的基础。最初的软件劳动力,作用在发展中国家,特别是印度,随着软件产业逐步的深度发展,软件工业产品在全世界开始大范围的产出,外包业不再占据主导,新兴的技术以及新一代的高科技人才随着全球化的进程掌控了软件产业。海外市场也成为各大公司的重点,从初始的技术及代码编写外包,到因为全球化进程中软件设施、软件咨询、软件维护等全面的海外包揽。]五、言而总之,在实践中运用新兴的知识及技术、强大快捷的开发工具成为了当代软件工程开发体系最首要的整体发展目的跟趋势,为了加剧这个进程,我们当代大学生应当注重程序代码的实践要身体力行,同时也要专注对基本知识的学习强化理论知识,最后还要注重创新思维的培养,创造出更新更优化的技术。只有这样才能克服软件工程潜在的危机因素,逐步实现软件开发的简单化、标准化、可持续化和全球化。信息化时代的巨大发展机遇肯定会被蓬勃发展的中国牢牢地把握住,软件工程这门学科一定会在广大年轻人中光速传播,软件工程也绝对会强烈地带动中国的科技与经济的飞速发展及跳跃。参考文献[1]徐治立,田大山等.自然辩证法概论[M].北京:北京航空航天大学出版社,2008.[2]葛伟丽.计算机语言发展和自然辩证法[J].科技资讯,2008(36).[3]张海藩.软件工程导论(第4版)[M].北京:清华大学出版社,2007.[4]许为民,当代自然辩证法[J].浙江大学出版社,2011[5]麻志毅.面向对象分析与设计[M].北京:机械工业出版社,2008.[6]栾玉广,自然辩证法原理[J],中国科学技术大学出版社,2007