新闻动态

力求视觉与交互的完美契合,以规范的流程和专注的态度,为您提供全方位的设计服务

计算机的迅速发展对软件开发工程未来发展的影响

更新时间:2015-07-16 15:52:38   点击次数:4229次
    软件开发工程的发展不可能是孤立的,所以我们就需要了解一下计算机的发展和软件开发本身的变化和趋势,再由此来推测软件工程未来的发展趋势。
    由于计算能力向服务器端的快速集中,提供高并行计算能力和可用性的中间件技术被广泛采用,甚至已经成为构建大型软件系统的必选项。
    因为采用了中间件技术,软件开发团队可以更集中关注于业务逻辑,而可以将许多细节交给中间件来管理,这大大减少了需要编写的代码行数,也直接导致了软件开发团队的规模变得越来越小,但角色变得越来越专业化(如了解行业的需求分析员,了解中间件技术和领域构架的架构师等)。
    计算能力的增强,使软件越来越容易使用,从而使软件变得无处不在,需要的软件开发人员数量急剧增长(组织形态是大量的小规模开发团队);同时在降低成本的压力下,开发外包变得非常普及;互联网的普及,将原来分散工作的开发人员聚合在一起,只要有一个好的基础和好的框架,他们就可以开发出各种产品级的工具软件(以Eclipse,JBoss,MySQL,Subversion为例),这一趋势使得B/S结构的系统非常容易升级,进而软件交付和升级的速度大大加快了(从以年月为单位,到以周天为单位)。
    那么在这些大趋势下,软件工程会如何发展呢?我觉得在未来几年我们会看到如下的变化:需求工程,渐成热点:专业化的角色,日益复杂的业务创新,全球分布的团队以及互联网级的交付速度,这些趋势都对需求获取的正确性和有效性提出了更高的要求;预计需求工程的研究和实施会成为近期的热点。
    随着软件交付周期的日益加快,迭代化开发就会成为大多数软件开发团队的必选项。但是迭代对整个团队的需求、架构、协同及测试能力有很高的要求,现在许多开发团队都在试图导入迭代化开发的过程中,敏捷被看成迭代化开发的一种有效导入方式,不过敏捷的范围其实比迭代化开发更大一些。敏捷的三个要素是迭代开发、坦诚合作和自适应性。而坦诚合作其实才是敏捷的精髓,如Ivar所说,敏捷其实是有关Social Engineering的。敏捷的主要贡献在于他更多地思考了如何去激发开发人员的工作热情,这是一个在软件工程几十年的发展过程中相对被忽略的领域。
    基于实践的过程框架,方兴未艾:开发角色的专业化和分布全球化都要求软件开发过程要更加规范,而敏捷又要求过程必须紧密贴合项目的实际需要,因此传统的大一统无法符合这一需求。新一代的过程必将是以实践为核心,项目可以通过组装所需的不同实践来获得贴近项目要求的过程。
    依据过程专家长时间的经验,他(她)们很小心、很仔细地将一个完整的开发过程组件化,从开发过程中抽象分离出一个个可以被单独导入又可以被组装到一起的实践,从而使逐步求精式的过程改进成为可能。对于一个软件组织而言,如果已经建立一个比较成熟的软件开发流程,但觉得这一流程并不适合所有项目的实际需要,那么就可以考虑用实践的方式去重新梳理现有流程,以使项目组能够以实践为单位来组装出切合项目实际的流程;另外,该组织也可以将适用于本组织的业界流行的实践导入到现有流程当中。
    随着开发团队规模的日益减小,配置管理的复杂性大大降低,我们注意到越来越多的用户转向使用开源的配置管理工具,未来的配置管理工具更多的以一种全生命周期管理平台的方式出现,弱化了单项的配置管理能力而强调了全流程的整合。
(编辑:hengkaikeji)