摘 要:在计算机高速发展的今天,信息化技术正在影响和改变着人们的工作和生活方式,软件技术作为信息化技术的核心之一,奠定了信息化发展的基石,在信息化发展道路上起到举足轻重的作用。软件技术从程序设计演变而来,再发展形成如今的软件工程,大致经历了三个阶段,并形成了一个新兴的产业和独立的学科地位。本文从软件工程的起源,软件工程的形成及其规范和研究内容、所处学科地位、我国软件工程的发展现状,并结合国际形势对未来软件工程的发展趋势进行了简要的探讨。
关键词:软件工程;模块化;开放计算;开发治理;对象
中图分类号:TP311.52
1 软件工程的定义及发展历程
软件工程一词是在1968年首次提出,被普遍认可的定义是:运用现代科学技术知识来设计并构造计算机程序,研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护这些程序所必需的相关文件资料,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来而形成的一门独立学科。软件工程发展至今,主要经历了程序设计阶段、软件设计阶段和软件工程三个阶段,是在程序和程序设计发展到一定规模而形成的新兴学科专业。
2 软件工程研究内容及实现目标
软件工程研究内容和专业方向涵盖软件工程(SE)、计算机科学(CS)、计算机工程(CE)、信息系统(IS)、信息技术(IT)以及其他有待扩展的领域,是一个涵盖多个学科领导而形成的独立学科专业。其主要实现目标是:用生命周期法、原型化方法、面向对象等软件开发方法,根据用户描述的功能,给定的成本和进度的前提下,开发出具有适用性、有效性、可修改性、可靠性、可理解性、可重用性、可移植性、可追踪性、可维护性、可互操作性和满足用户需求的软件产品,在教育、科研、企业生产及人们生活中发挥重要作用,是信息化发展的基础。
3 软件工程所处学科地位
软件工程随着行业需求增长,正在蓬勃发展,“十一五”时期,我国软件和信息技术服务业持续快速发展,年均增速达28.3%,具有广阔的就业前景。软件工程作为一级学科,学科同时涵盖科学与工程两个方面,从软件系统的可信性度量和演化的基本规律出发,研究现代软件系统面临的复杂性、开放性、演化性等挑战性问题,同时立足软件工程应用和产业发展需求,研究提高软件开发效率和质量的方法、技术和工具。注重向下拓展软件工程理论基础研究,向上拓展软件服务应用研究。为了适用市场对专业化、高素质的人才需求,很多高校把软件专业从计算机科学与技术学院分离出来,专门设立独立的软件(技术)学院,来满足该行业不断增长的各层次人才需求。专业层次从本科、研究生到博士,具有完整、规范的专业体系和延续性,在各大高校专业学科中占据重要地位。
4 软件工程专业发展现状及发展趋势
软件工程的产生源于“软件危机”暴发,计算机的硬件不断更新升级,大容量、高速度的计算机层出不穷,传统落后的软件生产方式无法满足操作系统的发展以及迅速增长的计算机软件需求。软件危机所暴露的软件开发和维护过程中所遇到的一系列严重问题,迫使人们不得不研究、改变软件开发的技术手段和管理方法,在计算机软硬件发展的相互作用下,并逐步形成如今独立的软件工程学科。
4.1 我国软件工程发展现状。从20世纪60年代末至今,软件工程的发展经历了初始阶段(萌芽阶段)、形成阶段(成长阶段)和软件工程化技术运用与研究(工程学引入后)3个阶段。在40多年的发展中,在市场环境和需求的驱动下,部分国家的软件工程已经形成了软件产业化发展态势。
而我国软件工程的发展起步较晚,2002年,各大高校才陆续开设有软件工程专业课程,软件人才培养落后。目前为止,软件研发未能形成团队化、产业化,规模化发展,无法形成产业规模。在面对国内市场每年对软件人才的需求高达80万,而各高校计算机专业毕业生中的软件工程人才还很缺乏,高素质的软件工程人才在国内尤为短缺。
“十二五”时期,中央颁布了国发[2011]4号《国务院关于印发进一步鼓励软件产业和集成电路产业发展若干政策的通知》,迎来了我国软件和信息技术服务业加快发展和提升的重要战略机遇期,这将促使我国软件产业的深入发展。
4.2 软件工程发展趋势。随着全球化的软件产业发展更迭,在市场竞争压力下,软件工程的发展趋势正向模块化、开放计算、合理的开发治理、全球化软件协作交付等方面发展。
模块化:即通过抽象、封装、分解、层次化等基本的科学方法,对各种软件构件和软件应用进行打包,基于此思想提出的有SOA技术。模块化的优点在于,可把一个复杂的庞大系统分解成若干个相地独立的子系统,有利于开发者专注于某一功能的开发,最大优点在于具有独立的功能并在系统中运转,同时提供不同的接口供系统的其他模块调用,在系统的升级更新中只需替换相应模块就能实现系统的升级而不影响到整个系统的运行,通用的模块子系统还可供其他系统直接“拿来”使用,而不必重新开发。
开放计算:开放计算的核心是“开放标准”、“开放架构”、“开源软件”,利用开放的资源让更多的软件工程集成在一起,形成互连互通的软件开发标准,从而打破文化、语言等界线,实现软件开发的协作交流。Linux、Jazz、Android等软件的开源,促进了开放计算的发展,同时也在改变着软件开发技术的格局。在互联网普及的推动下,开放计算迎来了前所未有的机遇,它把原本分散的开发人员通过互联网聚在一起,在合适的基础和框架下,通过集体的智慧,能高效的开发出更多、更优秀的产品级的软件。
合理的开发治理:建立有效的软件开发团队,根据用户需求,用软件工程的方法明确“做与不做”、“做什么”、“怎么做”,以此来定义软件产品的功能,以保证软件产品的质量。如今,软件系统越来越庞大,系统越来越复杂化,如何开发出一款满足用户需求的软件产品?开发治理的目的在于協调开发团队之间的关系,通过采集和分析软件系统中的源代码,揭示软件系统中各项功能之间、功能与接口之间的相互依赖关系,去实现软件变更质量管控,最终开发出符合用户需求描述的软件产品,为客户带来预期价值。
全球化软件开发协作:聚集全球化的分散人才和领先技术,形成分布式的软件开发团队,以软件外包或任务驱动等模式协作完成软件产品,以此实现全球化的软件开发、测试,软件产品交付,全球软件服务化等。同时,全球“软件服务化”大潮也正在悄然改变软件的制造、交付和应用模式。
5 结束语
软件工程由最初的程序设计发展成为一门学科,其成长时间虽然不长,但在短短的几十年中发展中,虽存在技术创新、观念创新、管理创新等不足之处,但其成就和贡献是举世瞩目的。软件工程在未来的发展道路上,将不断完善创新,在不断的积累迭代中,必将在各个领域发挥重要作用。
参考文献:
[1]陈云芳,孙力娟.件工程专业课程体系研究[J].高等工程教育研究,2009(02):141-143.
[2]金海.软件工程发展趋势综述[J].华章,2003(17):320.
[3]陈佳闻.新一代软件技术的发展趋势[J].科技信息,2008(17).
[4]朱仲英,虞慧群.软件技术发展趋势研究[J].微型电脑应用,2010(09).
[5]熊丽婷.浅谈软件工程的发展[J].科技经济市场,2010(02).
[6]徐祥运,贾银山.软件工程的发展与展望[J].自然辩证法研究,1998(06).
[7]钟志永,姚珺.大学计算机应用基础[M].重庆:重庆大学出版社,2012:230-231.
[8]刘朝阳.软件的黄金时代[M].北京:人民邮电出版社,2009.
作者简介:张忠华(1978.02-),男,四川江油人,助理工程师,工程硕士,研究方向:软件工程、工程管理。
作者单位:四川工程职业技术学院,四川德阳 618000