摘要:随着互联网技术的高速发展和各種网络开发环境的优化,软件工程变得炙手可热。如何提高软件开发效率,优化软件工程管理,本文将根据国内外软件工程发展现状和未来发展趋势提出一些可行性建议。
关键词:软件工程;现状;发展方向
随着信息技术的快速发展,计算机软件开发的规模和其复杂程度不断的增加,软件工程中的一系列问题也应运而生。为了减少在开发过程中不必要的人力和物力浪费,加强软件工程管理势在必行。这样才能提高软件企业的竞争力,进而推进我国信息化建设。
一、国内外软件工程发展现状
作为信息时代计算机发展的核心技术,软件工程是目前就业非常热的一门专业,市场需求量在逐年增加。同时,它又是一门非常复杂的技术,其技术的主要目的就是通过抽象方法把现实世界中的复杂问题转化为软件空间中的解题程序,然后通过计算机的分析最终得到解题方案。
软件工程兴起于八十年代,它的兴起带来了计算机的革命,欧美许多国家纷纷投入大量资金、开展研讨会等商讨详细的发展计划,在研究方面投入了巨大的人力和财力。软件工程的核心是研究其支撑技术,并在此基础上将其推向智能化、高集成化。目前国外软件工程的技术发展相对比较成熟,业界一些主流的开发工具和集成开发环境都是有国外的公司设计和定义的。
我国软件工程技术起步比较晚,相比较国外发达国家还有相当大的差距。但是我们虽然起步晚,发展却很快,短短这么些年,已经开发出了属于我们自己知识产权的软件技术,例如早期的XYZ系统、B-45系统等等,这些都是我国软件发展的先驱。同时,我们还制定了一系列的符合我们自己国情的政策和发展计划,都取得了不小的成功。
二、存在的问题
(1)缺乏比较完善的软件工程管理体制
在软件开发中,项目经理是软件项目管理的第一负责人,在整个开发过程中起着极其重要的作用。但是目前在大多数软件企业中,并没有专门的人员来管理负责整个开发团队。因此往往不能很好的协调整个研发团队的工作,导致开发效率较慢。
(2)人员、进度控制不理想
人员控制是对开发组织内部人员的控制,要求保证开发人员的积极性和稳定性。人员的频繁更换和流动会导致程序出错的几率加大,因此,开发团队中的人员不宜做大幅度的调动,至少应该保证软件工程和软件周期中人员的稳定性。但目前很多软件开发公司却没有意识到这点的重要性,从而导致不少产品生产效率很慢甚而不合格。
(3)开发过程求全求快
在开发过程中,团队之中难免会有一些人希望能尽早将软件应用于计算机,这固然是种积极的心态,但没有认识到的是:软件开发是一个漫长的过程,也不是一个能靠人海战术就可以缩短的工期。此外,即使计算机具有强大的数据处理能力,一个系统也无法包罗万象,贪大求全。而应该根据现有的硬件条件量力而行。同时,系统的复杂度越高,开发所耗费的时间就越长,出错的几率便会变大也可能导致整个系统的失败。
三、解决方案
(1)实行项目组负责体质
大型软件开发系统的项目管理可实行两级责任制。第一级负责人是“项目主管”,主要负责项目中与合同有关的事宜,进行企业与开发公司之间的协调。同时负责整个研发团队之间的交流沟通,协调各小组之间的进度。第二级负责人是“项目组长”,主要负责项目开发中的技术管理,监督各小组的进度以及审核产品的质量。这样实行的二级责任制可有效的解决软件开发中分工不明确,领导人不能两头都抓的问题。
(2)明确的进度和质量管理
在软件项目中,进度控制是非常重要的一个环节,主要有两方面举措可以加强这个环节。一是制定进度计划,二是实施进度控制。在软件开发初期制定初步规划,首先按照各子程序项目的规模,估计各小组工作量;再按照各子系统及应用程序的性质及负责度安排合理的开发顺序,并且能及时合理的调配人员。
四、发展方向
实行开发过程的工程化管理。所有软件,不论其规模、用途、语言有多大的差异,都有一个共同的特点,就是要么遵循生命周期规律,要么遵循原型规律。这是软件开发的共同特点,由此衍生出了两种工程化管理模式。即生命周期管理模式和原型管理模式。
两种方法想结合的模式有宏观和微观两个侧面。宏观上,采用传统的生命周期法,有明显的阶段性;微观上,在设计和编程过程中,如果有必要,则采用原型法,这样两种管理模式有机的结合起来,以生命周期法为主线,有需要时,以原型法为辅助,这样既解决了开发的阶段性,又解决了需求不明确性和责任不明确性的问题。
总之,现今的软件开发环境日益趋于完善,我们在这个竞争激烈的环境中,要切实认识到自身的不足,有针对性的做好软件工程管理工作,所谓“三分靠技术,七分靠管理”,树立重技术、抓时效、保质量的管理意识,真正发挥出软件工程的潜能,打造强有力的开发团队。
参考文献:
[1] 赵晓亮.浅析软件工程管理[J].科技情报开发与经济,2002
[2] 司良,张晓宁.国内外软件发展现状[J].专业论文,2011
[3] 李辉.软件工程开发方法的现状与展望[J].福建广播电视大学学报,2011
作者简介:陈宇( 1983—),男,河北软件职业技术学院,讲师,主要负责软件设计开发方面专业课程。