软件工程技术发展趋势
2019-11-30井世丽宦亮
文/井世丽 宦亮
软件与其他产品有着许多不同之处,是作为一种知识密度较强且生产较难的产品。由于上世纪计算机刚刚兴起,计算机高级语言还没有出现,其设计成本较高,在使用计算机软件编写程序时,只有很少一部分人能够认识和掌握,计算机软件的发展被这种最初的现象极大的制约了。直到上世纪六十年代,人们才认识到计算机软件的重要性,并得到了行业的极大关注,随着市场中计算机硬件平台的广泛应用,逐渐过渡到了对计算机软件需求量的激增,并且对于软件设计的要求也越来越高,这就需要软件工程技术不断的改革与创新。从行业发展的需求出发,对软件工程技术发展趋势进行有效的研究是非常有必要和迫切的,在研究过程中,我们首先考虑的是软件工程和计算机发展中的变化,不可能对软件工程技术发展进行孤立研究,这样才能进一步预测和分析软件工程的发展趋势。
1 计算机发展的变化
在冯·诺依曼理论体系中,从计算机模型产生的时候起,一直在沿用计算机二进制码,但就计算机能力而言,其在以下几方面发生的变化尤为突出:
(1)CUP的运算能力在摩尔定律出现后,其运算能力有了很大提高,达到了前所未有的高度,但运算能力在单科CPU的提升方面上,是一项非常困难和缓慢的技术,目前仍没有快速提高的有效办法;
(2)并行运算技术以及并行多核、多线程技术,这两种技术依靠多任务处理系统得到了一定程度的提升,并给服务器处理带来了很大的便利,致使许多计算机发展方向转向了服务器架构,突破了服务器C/S传统模式下的处理瓶颈,瘦客户端结构B/S模式受到了人们的普遍欢迎,而胖客户端结构C/S模式已经不再具有广阔的应用市场;
(3)大数据的应用需求有效推进了云计算发展,更快的在互联网的迅速发展过程起到了催化剂的作用,为工业信息化起到了巨大的推进作用。
2 软件工程发展的变化
软件工程在计算机技术发展过程中,主要体现在以下几个方面:
(1)由于在计算机中使用了诸如COM、DCOM、CORBA等中间件技术,分布式应用软件在不同的软件技术中间很容易的实现了资源共享,这不仅可以帮助软件开发人员节省精力与时间,还可以协助计算机对一些分布式计算进行有效交互和处理,有利于软件开发人员在业务逻辑投入中节省大量时间,使软件开发规模逐渐缩小,进而精简了代码结构,对软件工作人员进行了更好的定位,使其更好的完成本职工作;
(2)目前计算机能力已经逐渐倾向于服务器端,实用的中间件技术和较快的计算机运算处理能力,不仅是开发大型软件过程中的必经之路,也是新技术发展的主要趋势;
(3)原本较为分散的散件开发人员,随着互联网的不断普及和发展,跨网络平台、跨系统领域都在标准接口协议的统一下被重新整合在了一起,他们在开发软件过程中,只要基础平台与协议框架合适,就可以很好的把软件实用工具开发出来;
(4)系统软件和应用软件的紧密耦合,促使系统软件的平台服务能力、底层扩展能力、二次开发能力均得到了普遍的提高。
3 软件工程技术发展趋势
3.1 全球化趋势
软件开发行业在技术发展过程中,随着全球化趋势的不断加速,也发生了前所未有的改变,在此过程中,若使用传统管理方式对软件开发进行管理,就会显得十分吃力,因为信息化不断普及,软件开发不断深化,许多软件对开发的环境也有了更高的要求。与此同时,在软件全球化共同协作发展过程中,软件外包的发展步伐也逐渐加快,一些从事软件外包工作的公司也应运而生,这些软件外包公司把软件需求、软件发布、软件维护、软件测试、设计思想以及编程等各部分各模块分离开来,通过合理利用软件工程模块化协作的方法,分配给不同的国家和地区完成。许多外包公司已经把这个分配过程作为主要发展手段,并成功推向了市场,从而实现了软件信息全球化协作的基础。
3.2 广泛应用软件技术
软件工程领域中一种新趋势,就是开放性软件计算方式。由于全球化协同合作的加强,再加上软件本身就是一种开放性共用技术,所以在未来软件发展过程中,软件工程的重点和方向必然是这种新趋势。与此同时,开放性计算有利于开发者之间的交流与沟通,给软件技术开发人员带来了便利,这也是一个实现共赢的方式,在后期维护中,对客户与开发者而言,变得更加简单化及专业化。
3.3 挑战模块化思想
随着软件工程的全球化发展,不仅给软件工程带来了一定的难度与挑战,也给软件开发者带来了新机遇。在发展过程中,各软件公司竞争越来越激烈,促使软件开发在此种激烈竞争下,逐渐朝着模块化思想发展。其本质是将已知和相似的软件结构以科学手段进行分类,将模块思想通过一定方式进行模块化,主要是基于和解决传统技术在实际生活中不灵敏问题。这种模块化设计思想的提出,不但促进了软件工程技术的未来发展,还提高了企业之间的软件开发效率和竞争力。
4 结束语
综上所述,随着计算机软件的全面创新和发展,基于计算机平台硬件的不断完善,软件工程也朝着更规范化与更高效的方向推进。目前,工程支持技术、软件开发模型、工程管理技术以及软件设计方案等软件工程所研究的主要内容,均促使软件不再单一化和独立化,伴随着软件工程化的实施,软件成为了一种集有效性、复杂性以及科学性为一体的新技术,与此同时,也不可避免的出现了软件过于庞大、调度过于复杂、测试过于专业等新的问题,为了解决这些问题,应加大对软件的研发力度,及时找到解决办法,在发展的同时摒弃掉传统开发模式下固有的弊端,从而推动软件工程技术朝着可持续稳定健康的目标前进。