APP下载

基于大数据时代背景下的软件工程分析

2021-07-05李奇旻

电子技术与软件工程 2021年10期
关键词:数据流范式软件

李奇旻

(华东师范大学 上海市 200062)

自上个世纪90年代初,信息高速公路在美国提出以来,历经近30年的发展演进,信息技术发展突飞猛进,信息化领域的新技术、新词语层出不穷,诸如IT 技术、互联网技术、大数据技术、区块链技术、人工智能等。并且对人们的生产、生活方式产生了深刻的影响,认为现在进入了大数据时代、万物互联时代、智能化时代等。笔者认为,一直以来,其中除了硬件的发展,还有两个关键因素同样值得关注,一是数据,其是基础和目的;二是软件,其是方法和工具。唯如此,才能实现在软件生命周期即设计、开发、运行、优化,实现与大数据生命周期即获取、清洗、集成、分析、呈现等的互动。[1]换言之,现在来说,就是大数据和软件工程,二者助推了信息技术的发展,同时也是信息化的产物,在大数据时代背景下,研究软件工程技术的应用,对于经济社会的发展有着十分重要的意义。

1 大数据和软件工程简述

1.1 大数据简述

沃尔玛的“啤酒与尿布”是众所周知的大数据经典案例,大数据已经是当今信息社会炙手可热、耳熟能详的词汇,而且已形成共识,即人类已经进入大数据时代。上个世纪80年代初,《第三次浪潮》一书风行全世界。该书作者美国社会思想家阿尔文•托夫勒就在文中将人类社会发展划分为三次浪潮,即以“农业文明”为主导的第一次浪潮,以“工业文明”为主导的第二次浪潮,以“信息化”为主导第三次浪潮。[2]其中首次提出了“大数据”(Big Data)一词,并且,以“第三次浪潮的华彩乐章”这样的用词对其进行热情的讴歌。[3]全球著名咨询公司麦肯锡于2011年5月发布了《大数据:创新、竞争和生产力的下一个前沿》报告,公认此报告宣告了大数据时代的到来。由于大数据概念的提出源于不断的发展实践,其本身并没有严格、权威的定义。通常认为,大数据的大即大数据集的规模一般应达到10TB 左右,现在已经达到了PB 级的数据量。维基百科称“大数据”是这样一个术语,即其是用以描述用传统的数据处理应用软件无法完好处理的庞大的或者复杂的数据集。但“大数据”这一概念并不仅仅指数据规模的庞大,还包括对这些数据对象的处理以及应用活动。IBM 提出大数据通常具有“5V”特征:Volume(数据体量大)、Variety(数据类别多样)、Velocity(处理速度快)、Veracity(数据真实性高)、Volume(数据价值高)。[4]

大数据技术分类并分平行关系,而是呈纵向、层级状结构,详见图1所示。

图1:大数据技术分类

1.2 软件工程简述

软件工程本身并没有严格、权威的定义。并且,也是直到20世纪60年代初才出现了“软件”一词,于此之前,更多的是程序的概念,后来人们认识到与程序相关的文档也有着相当重要的作用,才有了“软件”一词的出现。软件发展至今天,已经远远不是程序个体或者程序员合作的方式能够完成的,即使能够完成,也会是效率低下、程序运行可靠性差,或者说根本就无法完成。于是,在1968年召开的大西洋公约学术会议上提出了软件工程的概念,简单理解,就是以工程的方法来进行软件系统设计、开发、运行、维护、优化等技术的总和,进一步言之,就是用“计算机科学、数学管理科学等原理,以工程化方法制作软件的工程”,属于一门交叉学科。[5]通常认为其包含有四个要素:

(1)软件工程目标;

(2)软件工程范型;

(3)软件工程过程;

(4)软件工程原则。

2 大数据与软件工程的结合方式

宏观上讲,软件工程是比大数据更为宽泛的概念,大数据的技术与应用被软件工程所涵摄。如图1所示意,虽然大数据的各项技术与应用属于垂直领域,而软件工程牵涉的是横向领域,更加关注软件产品及软件系统工程上的实现及其管理。但是,大数据无论是其产品还是其系统的完成与落地,都离不开软件工程方法论的支持。换言之,软件工程的方法与技术贯穿于大数据的开发与应用,大数据也只是在软件工程发展过程中出现的概念。

软件工程开发具有综合性,其应用渗透于各个学科和领域,大数据的技术与应用当然是软件工程所关注和研究的对象,或者说大数据技术的每一环节都离不开软件工程的支持。大数据应用的基础是要依赖数据链条的完整性,采用相应的算法于海量的数据中进行规律分析,算法要依据相应的实际环境进行相应的升级,遵循开发的基本原理,充分调整数据分布,从而在研究过程中将大数据技术与软件工程方法结合起来。并在开放的环境中通过网络与通信技术实现数据的共享,在此过程中,软件技术和水平亦能得到进一步的提高。在二者相互作用渗透的过程,软件效率得到提高,软件效益得以提升,从而实现客户需求的最大化。

在软件开发过程中,还需要有必备的硬件和软件的支撑,来支持相应的数据流,随着数据流的增长,对于硬件和软件就会有更高的要求。工程技术人员在对数据流进行分析研究的同时,专家学者还会对在线服务进行研究。但是,数据流是重点,包括对数据流的使用方法的研究,对支撑数据流的软件和硬件的研究。另外,从软件工程开发角度看,无论是在服务端还是在用户端,软件的运行当然会产生大量的数据流,都将产生大量的数据信息,这些数据流对于软硬件的使用寿命有着决定性的影响。因此,在软件工程的开发中,对于海量数据产生的环境下,更有必要做好数据流的管理,要高度重视数据流的分析研究,并且对于原始数据进行深入的研究也应该引起重视,以期延长软件的使用周期。[6]

3 大数据时代的软件服务工程

软件服务工程即所谓的面向服务的软件工程,强调的是其相对于传统软件工程的扩展。近些年来得到了很快的发展,已经成为当今时代的主流社会需求之一,服务功能已经是软件开发的基本原则。另一方面,也可以将其直观理解为“软件(Software)+服务(Service)+工程(Engineering)”三个方面的交叉融合,或者软件工程与服务工程两者的融合等。其内涵可以理解为研究面向服务的软件工程原则、软件工程方法以及软件工程技术,同时利用相应的软件服务设施和平台,开发较高水平的软件服务系统。[7]软件开发者根据需求变化,在社会实际实用中,以面向服务作为主要建设目标。在开发的初期就要首先搭建好软件的框架,充分利用编程语言、构思好编程思路,确保开发软件能够提供可靠的服务应用,保障软件运行时的稳定与可靠。在实际的服务过程中,要求开发者运用分布式应用程序,以虚拟操作的方式提供用户相应的服务。在应用中,融合大数据技术,能够实现对数据进行编程,达到软件互操作的效果,并提高对数据的主动协调。软件工程开发工程师可以对数据信息共享,实现各种学习交流,对软件进行协同开发,并结合用户的反馈,对软件系统进行优化处理,提高软件的性价比。

近年来,开源软件是较为成功的软件习作模式,但是,其采用常规的研究方法,应用价值还不是很高。与开源软件相比,群体软件工程属于一种分布式软件开发模型,能够依靠网络进行任务分配,并能实现创造性的查询,通过众包形式的开发,解决开发过程中的难题。并且,在整个开发过程中,众包开发可以贯穿其全过程。所谓众包,一如其字面含义,是一种分布式的生产开发模式和问题解决方案。通过该种方式,开源软件和商业软件均可通过网络进行任务和责任分配。[8]

随着我国计算机科学技术的不断发展进步,软件工程技术也取得了长足发展,软件服务工程也支持得到拓展和延伸。在大数据时代背景下,我们应当加快大数据技术和软件工程技术的融合与创新,提升对海量网络数据进行编程处理的能力,提高软件的安全和效能,增强其稳定性和可操作性,进一步整合软件工程系统的集成度。

4 数据密集型科研第四范式

图灵奖获得者、关系数据库研究专家詹姆士•格雷 (James Gray)曾经从科学哲学的层面将人类科学研究模式总结划分为最初的实验科学阶段,之后的理论科学阶段,到通过模拟的方法进行的计算科学三个阶段,相对应地称之为科学研究的第一范式、第二范式、第三范式。但是伴随着模拟连同实验所产生的海量的数据,需要由软件处理这些由各种仪器或者模拟实验产生的海量数据,并将处理得到的信息和知识存储于计算机中。之后,科研人员只需要对这些存储于计算机中的少量数据进行分析研究,不再是直接通过仪器或者模拟进行研究。因而基于数据密集型科学研究独特的技术以及其显著的不同于以往研究的特点,詹姆士•格雷在2007 于其科研报告中提出了将这种数据密集型的科学研究模式从计算机科学类型中单独区分出来的思想,随之产生了一种被称之为第四范式的新的科研模式。该报告整理后题名“吉姆•格雷论e‐Science:一种科研模式的变革”,成为微软于2009 发布的年首次全面对数据密集型数据进行描述的论文集《e‐Science:科学研究的第四种范式》的开篇文章。[9]

当前,相当多的计算机领域的专家学者对数据密集型科研第四范式予以了关注,并进行了相应的研究,探索出了相应的方式方法,第四范式的研究被认为是大数据时代背景下软件工程技术研发的关键。

信息化的发展与渗透,导致一切的事物都在随之发生着变化。包括实验、理论分析和计算科学均在数据泛滥的影响下与之前大不相同,软件工程技术既要适应科研第四范式,又在其中扮演着更加重要的作用。传统范式下的目的与探索之间不能够很好地衔接,数据信息的应用效率难以保障,难以满足项目管理目标的实现。数据密集型科研第四范式下的技术以及理论相关内容,与大数据技术特别是其中的存储技术有着紧密的关联性,其待探索的空间和应用价值相当广阔,其数据信息研发急需相应的理论支撑,该范式下的软件工程技术应用模块,亦能够对其他范式下的数据信息进行分析,对于更好地实现数据的存储与处理,提升处理效率,有着重要的研究价值。在第四范式模式下,对集成密集型数据的软件服务价值进行评估是首要的,需要摒弃以往的数据统计方法,构建新的针对大数据进行信息统计和分析的方法,这对软件工程技术的发展起着重要的作用。在软件工程技术的研究中,应当更新传统理念,重视其对大数据的处理和分析能力,使软件产业呈现全新的面貌,从而亦能促进其对大数据的数据分析能力。在第四范式的基础上,亦能够更好地支持第三范式,甚至于第一范式。该范式研究在我国软件工程开发中还处于初级阶段,软件工程开发人员需在强化已有数据模型研究基础上,加速由第三范式向第四范式的转变,尽快实现其应用层面的服务价值。

5 结语

概言之,大数据时代背景下,信息化程度高度发达,社会各行各业都被大数据所包围和渗透,且都离不开软件工程技术。在电子支付、远程控制、自动驾驶、智能入住、智能售货等应用中,软件都在其中扮演着越来越核心的作用。因此,大数据背景下应该加大对于软件工程技术研究和软件研发的经费投入力度,加大软件工程人才的培养力度,特别是软件工程复合型人才的培养力度,加大软件工程技术人员与相关产业与领域的深度融合,不断推动和实现软件工程技术的创新和发展。

猜你喜欢

数据流范式软件
禅宗软件
范式空白:《莫失莫忘》的否定之维
孙惠芬乡土写作批评的六个范式
软件对对碰
管窥西方“诗辩”发展史的四次范式转换
一种提高TCP与UDP数据流公平性的拥塞控制机制
基于数据流聚类的多目标跟踪算法
谈软件的破解与保护
北医三院 数据流疏通就诊量