APP下载

软件工程技术发展的趋势研究

2018-12-08张程乾

数字技术与应用 2018年8期
关键词:结构化发展趋势

张程乾

摘要:本文探讨了软件工程技术的发展历程,分析了当前主流的软件工程技术,研究了软件工程技术的未来发展趋势。

关键词:软件工程技术;结构化;发展趋势

中图分类号:TP311.5 文献标识码:A 文章编号:1007-9416(2018)08-0195-01

20世纪六七十年代,“软件工程”作为一个全新的概念被北约科学委员会正式提出,旨在将人类文明中的知识概念、技术方法等通过软件这个载体记录并应用,从而提高生产效率与生活质量,随后软件工程的发展进入了快车道,当前各类软件随处可见,软件被广泛应用于当前的工业生产、企业办公、日常生活等领域,带来了极大的便利性,正是由于软件的广泛应用,工业生产效率、人们生活水平等都得到了显著提升。软件工程技术是开发技术是软件的核心,经过30多年的发展,软件工程技术不断改革、发展,软件的功能也更加系统、全面,朝着智能化的方向迈进。

1 软件工程技术的发展历程

在软件工程技术的发展历程中,有三次具有里程碑意义的革新,极大的推动了软件工程的发展,很多技术原理与开发理念影响至今。20年代六七十年代,随着一些高级语言的不断应用,在此基础上诞生了结构化程序设计技术,同时诞生了相关的开发工具;随后在上世纪的八十年代初,计算机辅助软件工程(即case)应用而生,case是集图形处理技术、程序生成技术、关系数据库技术和各类开发工具与一体的开发技术,简而言之就是软件工具与开发方法的集成化工具系统;随后,面向对象的软件开发技术横空出世,使得软件工程技术的发展进一步提速,面向对象的设计方法将对象作为设计基本单元,将程序与数据内封其中,提升了软件的灵活性与扩展性,正因如此,面向对象的程序设计方法迅速成为主流设计方法。随着人工智能技术的崛起,在软件设计过程中也融合了人工智能相关技术。

2 当前主流的软件工程技术

2.1 结构化程序设计方法

结构化程序设计方法是以模块为单元进行,在这种开发方法中,只有三种基本的程序结构,即顺序、选择与循环,这三种基本结构进行有机整合、嵌套等,最终形成复杂的设计程序。结构化程序设计方法起源于对无条件转移语句的争论,同时更是对软件设计理念的更新,随着人们对于软件需求的提升,程序的可维护性、可读性、清晰性等方面需要进一步提升,需要对基本的语句、结构等进行规范,将程序设計的重点从过分追求编程技巧转化到软件的实用功能上。结构化程序设计的精髓是当面对一个复杂问题的时候,将问题按照自上而下、逐层细化的原则进行分解,将整体步骤分解为结构化程序框图,即在每一层与每一阶段都通过顺序、选择、循环这三种基本控制构造来实现相关功能,这样的话就可以将复杂问题简单化,而且每一层的基本构造都固定化,这样就显著提升了程序的可读性、清晰度等。在结构化程序设计方法中,结构化分析是其中的关键技术,分析过程中遵循分解与抽象的原则,按照数据计算需求与流程,定义系统各功能模块,这是程序设计第一步;接下来就要分析阶段确定的数据流图转化为软件系统将结构。需要注意的是结构化的程序设计实施的“单入口单出口”的结构,整体思路清楚,目标明确,设计工作阶段性非常强,有利于进度管理与进度控制,各个模块之间互相独立,互不影响,这提升了程序的可扩展性;但是该设计方法存在开发周期长、难以适应需求变化等相关缺陷。

2.2 面向对象的程序设计方法

面向对象的出发点和基本原则是尽可能的模拟人类习惯的思维方式,使开发软件的方法、过程尽可能的接近人类认识世界解决问题的方法与过程,将程序看成是互相独立对象的集合,而不是一系列的过程或函数的集合。

著名计算机科学家尼古拉斯—沃斯曾提出“程序=数据结构+算法”的著名公式,从宏观角度上讲,“程序=对象+消息”,在IT领域,数据就是一个个二进制数字的排列组合,代码执行流程就是前文提到的顺序、选择、循环等基本结构的组合,计算机在运算过程中即利用上述基本程序结构对数据进行重新组合,面向对象中的“对象”具体是指利用合理的数据结构将数据组合形成数量更少的信息单元,这些单元就是对象,面向对象的本质就是使对象具有多种状态,把不同对象按照同一特性进行归纳,统一处理,也就是将数据模型与处理模型合二为一,将属性与方法封装在同一个对象中,因此程序的结构就变换成了“程序=基于对象操作的算法+以对象为最小单位的数据结构”,通过封装可以有效减少操作力度与问题复杂程度。面向对象的设计方法实际上模拟了对象之间的通信,基于面向对象而开发的软件都是采用交互式的方式,由消息驱动控制。

3 软件工程技术的未来发展趋势

为了方便生产生活,当前随着人们对计算机软件要求越来越高,落后的软件方式无法满足人们日益增长的计算机软件需求,历史上数次爆发软件危机,软件危机也推动了软件工程技术的不断变革与创新。当前软件工程也面临一些发展瓶颈,例如开发过程复杂繁琐、产生大量难以维护的文档、无法及时对开发过程中的变化进行有效的反馈以及人们期望软件更加智能甚至能完全替代人类工作等等[1]。软件工程技术的发展遵循开发维护成本低、用户体验感觉好、可移植性与兼容性高的方向,具体来讲即如下趋势:

3.1 更加开放的发展环境

未来软件开发平台将会是一个集丰富的软件资源与开放动态多变特性的框架,开发活动集中在基础软件资源的组合,通过初步组合后的系统将会对照客户需求进行优化、整理;同时用户对于软件需求呈现出多样性的趋势,因此对于程序正确性的判断标准不再是单一的,而是一个偏序集,软件体系结构侧重点从基于实体的结构分解转变为基于协同的实体聚合,软件生产过程和环境的变化导致基于Internet 的面向用户的虚拟工厂的形成[2]。在这种背景下,对于软件开发周期,传统固定的软件开发周期这一概念需要调整为“大生命周期”。

3.2 软件的开放方法朝着智能化的方向发展

软件开发方法将朝着智能化的方向发展,例如敏捷(Agile)软件开发方法,就是以人为核心,采用迭代与循序渐进的方法将大项目转化为小项目并分别完成个小项目,这就大大提升了软件对于外部条件变化的适应性,再比如面向Agent的软件开发方法,该方法是指驻留在某一环境中,具有灵活自主性这一行为特征的软件系统,Agent的软件开发方法对于现实的模拟要比面向对象开放方法更加自然、真实,此处所指的灵活自主性具体是指反应性、主动性与社会性,其中反应性具体是指能够感受所处环境的变化并做出相应的反应;而所谓的主动性具体是指能够自动生产目标,并针对这一目标采取相关动作;社会性具体是指可以进行人机交互。这些都是智能化发展趋势的体现[3]。

4 结语

软件工程技术不断革新,在软件工程技术的推动下,信息产业飞速发展,人们对于软件的依赖程度越来越高,更加开放的发展环境与更加智能化的开发技术将会是软件工程技术的未来发展趋势,我们有理由相信,未来软件工程将会不断给人类社会发展带来惊喜。

参考文献

[1]李辉.软件工程开发方法的现状与展望[J].福建广播电视大学学报,2011,(3):59-63.

[2]杨芙清.软件工程技术发展思索[J].软件学报,2005,(1):1-7.

[3]孙亮.面向对象与面向Agent的软件开发方法研究综述[J].科技信息(科学教研),2007,(27):57-58+95.

猜你喜欢

结构化发展趋势
促进知识结构化的主题式复习初探
改进的非结构化对等网络动态搜索算法
结构化面试方法在研究生复试中的应用
左顾右盼 瞻前顾后 融会贯通——基于数学结构化的深度学习
基于图模型的通用半结构化数据检索
基于软信息的结构化转换