1、软件工程国内外技术发展现状,存在问题及发展趋势 引言 计算机软件是计算机系统执行某项任务所需的程序、数据及文档的集合,它是计算机系统的灵魂。从功能上看,计算机软件可以分为系统软件、支撑软件和应用软件,系统软件和支撑软件也称为基础软件。它是具有公共服务平台或应用开发平台功能的软件系统。计算机软件的目的是为用户提供符合应用需求的计算服务。因此,应用需求和硬件技术发展是推动软件技术发展的动力。 软件技术是信息技术产业的核心之一,软件技术的发展是与信息技术产业的发展互相促进的。当今世界,信息技术正处于新一轮重大技术突破的前夜 1。预计今后 2030 年是信息科学技术的变革突破期,可能导致 21 世纪下
2、半叶一场新的信息技术革命 2。近年来,从 IT 界到一些国家首脑,都高度关注以物联网为标志的新一轮信息技术的发展态势,认为这是继 20 世纪 80 年代 PC 机、 90 年代互联网、移动通信网之后,将引发 IT 业突破性发展的第三次 IT 产业化浪潮。每一次重大的技术变革都会引起企业间、产业间甚至 国家间竞争格局的重大变化,也促进了软件技术与软件产业的重大变革与发展。 2008 年的国际金融危机,引发了各国抢占科技制高点的新技术革命,全球将进入空前创新密集和产业振兴的时代。软件因其具有知识密集、低能耗、无污染、高成长性、高附加值、高带动性、应用广泛与市场广阔的特点,而成为知识生产型、先导性、
3、战略性的新兴产业,成为信息技术产业的核心和国民经济新的增长点,也成为世界各国竞争的焦点之一。 随着应用需求的日益增长、信息技术的迅速发展和计算机硬件环境的升级换代,信息化应用更为广泛深入,计算机网络技术,特别是互联 网 (Internet)及其应用的快速发展,使软件所面临的运行环境,从静态、封闭逐步走向动态、开放。为此,系统软件和支撑平台,朝着基于 Internet 网络、基于构件的分布计算、基于网络环境的需求工程和新型中间件平台的方向转型与发展。网络操作系统、 JAVA 语言、中间件等的出现与发展就是明证。 现在,信息化应用环境正经历着新的变化:“云计算”、“无线网”、“传感网”、“物联网”
4、、“泛在网”、“智慧地球”等的出现与发展,必然导致软件技术为适应这种新变化,而发生巨大的变革与发展;同时,信息技术和人工智能技术的发 展与融合,促使数据处理、信息处理向知识处理的阶段转型与发展,由此将催生新的软件技术与软件产业,这是值得密切关注的信息技术和软件技术发展的新趋势。 一、 国内外技术发展现状 很多国内搞计算机的专家都认为:国内的软件研发过程,个人色彩比较浓。过分地依靠个人无法形成产业规模,而没有规模就谈不上产业化了。 不管怎么样,我们大家还是先要来看一看国内软件厂商到底提供给我们多少有震撼力的软件产品,从技术和利润的角度讲,软件系统最核心的部分还是操作系统、编译系统然后就是开发平台
5、之类的东西,接下来就是一些应用系统,比如图形开发、游 戏开发、企业应用、网站建设、杀毒、网络工具等等。 操作系统以中科院为中心,做了一个 COSIX,这个本质上是一个 UNIX 系统, UNIX最初的源代码是公开的,尽管 COSIX 是一个被称为中国的操作系统并是 UNIX 系列的( IX 就代表 UNIX 系列),但是其中到底有多少独创的技术成分我们暂时还不知道,但有一点可以肯定,它现在的市场覆盖率绝对不大,而且能否在上面运行各种各样的编译系统、数据库、群件和应用系统可能还需要进一步测试。然后就是对硬件平台的支持也需要进一步完善。 然后就是轰轰烈烈的 Linux 系统, Linux 是遵守
6、GNU 标准的操作系统,中国有很多家公司推出了自己的 Linux 并且还有汉化的 Linux,这就有比较疑惑的一点,为什么不在 Linux 上构架一个类似 UNICODE 这样的东西,而只做汉化这么本地化的产品呢?不知道是眼光还是市场的问题了。 MIS 系统、财务软件是中国软件行业的重头戏,它们彻底的暴露了中国软件开发无序和重复低效劳动的一面。教育软件在某一种层面上看就是电子题库,当然也有优点,比如加入了多媒体教学(可视化程度不错)和所谓寓教于乐的特点,但是从本质上说还是题库。杀毒软件据说是中国软件的骄傲,由中国权威机构评测 是达到了世界领先水平,但是好象还没有得到国际权威机构的认可。游戏软件
7、就不用提了,国内业界能够流行的游戏软件成功的秘诀众所周知,不是技术和创意,实在是归功于我们悠久的历史。字处理软件和排版软件客观的说国内的也做的不错,但是从系统的扩展性和体系结构上说和 MS 和 Adobe 相比,差距也放在那里。 近年来,信息技术、软件技术、软件系统与软件产业的发展备受关注,已有不少论述、分析与判断,其中较重要的有: 2008 年 10 月,江泽民在“上海交通大学学报”撰文“新时期我国信息技术产业的发展”提出:“ 20 世纪 90 年代 以来,信息技术继续朝着数字化、集成化、智能化、网络化方向前进”。 软件系统加快向网络化、智能化和高可信的阶段迈进”。 2008 年 10 月,
8、工业和信息化部颁布的软件产业“十一五”专项规划分析软件技术发展趋势时指出:“我国信息化的不断推进和网络的广泛普及,对软件技术和产品提出了更多需求。软件技术正朝着网络化、可信化、服务化、工程化和体系化方向发展,软件技术的不断创新和广泛应用,将促进和带动软件和软件服务的发展”。 2009 年 6 月,国家工业和信息化部部长李毅中在“第十三届中国国际软件博览会”演讲中再次提 出:“当前,软件系统加快向网络化、智能化和高可信的阶段迈进,软件即服务是重要的发展方向”。 2009 年 9 月,中国科学院信息领域战略研究专家组认为, 21 世纪信息科学技术发展呈现出开放化、融合化、泛在化的新特点和新的发展趋
9、势;近 10 年内网络技术经历宽带化、移动化和三网融合将走向基于 Ipv6 的下一代互联网, 2020 年以后,世界各国将共同构建 IP 后 (post-IP)的新网络体系。即构建“惠及全民、以用户为中心、无处不在的信息网络体系 (Universal, Useroriented, Ubiquitous InformationNetwok Systems,U-INS)”。 2010 年 1 月,国家 863 计划信息技术领域办公室和国家 863 计划信息技术领域专家组,在上海举办“信息 -物理融合系统 CPS( Cyber-Physical System)发展战略论坛”,提出“信息 -物理融合系
10、统 CPS 是一个综合计算、网络和物理环境的多维复杂系统,是信息和物理世界的深度的融合交互,可实现大型工程系统的实时感知、动态控制和信息服务,使系统更加可靠、高效与实时协同,使得人类物理现实和虚拟逻辑逐步融合,具有重要 而广泛的应用前景。 二、 存在问题 1.观念技术管理的创新 ( 1)观念创新 我国的软件企业对软件技术本身的了解大于对应用的了解,技术与市场的脱离使我们产生了一些高技术的软件,但没有获得市场价值的回报。在技术与市场的结合方面,没有找准技术变成价值的方向,中国的软件业要发展必须走出这个观念的误区。另外,目前软件服务已经成为巨大产业,软件服务将企业运营的重心由产品转向服务。用户不仅
11、关心是否拥有自己的计算机、网络和软件,他们更关心以较低的成本建立和维护满足自身竞争力需要的业务。应用系统用户已经逐渐认识到,花钱获得高效便捷的专业化服务是必要的。未来的软件公司将成为传统产业的一个虚拟的“ IT 部门”,这个部门必具备资深的行业背景,能够提供全方位的满足客户咨询、培训、系统实施、系统增值的解决方案。 ( 2)技术创新 作为产业,在运用技术的同时,必须认识到对产业而言技术是否能换来市场的回报,这是对技术价值衡量的标准。没有市场回报的技术是技术的垃圾,或者是技术转移体制有问题。高技术的高回报是对技术、市场策略和市场环境有效利用的综合描述。盲目地把技术的先进看成是市场成功的唯一因素而
12、忽视社会环境对技术的需要和适应能力,是中国 很多软件企业以及科研院所常见的错误。只有以市场的观念来准确地表达技术,才是技术成功的关键。另外,以创新带动产业,注重软件关键技术的研究开发与创新,设立操作系统、数据库管理系统和网络信息安全系统等关键领域的研究开发专项,进而培养我国在软件关键技术和核心产品上的国际竞争力。 ( 3) 管理创新 软件质量的控制已成为软件产业一步步走向世界的成功因素之一。我国软件产业缺乏软件工程的管理,缺乏对软件过程的控制,没有走上规范化发展的道路,仍处于混沌状态,所有的行为基本是反应式的;软件过程是临时拼凑的;对进度、经费的估计无实 际根据,硬件限定时常在质量上让步;在质
13、量管理上,难以预测可能出现的问题,对出现问题的判断没有基础;进度滞后时,常常是减少或取消评审、测试等保证质量的活动;人员安排不合理,忙的忙死,闲的闲死。后果是模块重用程度降低、产品文档编写不甚完备、软件开发工程效率得不到保障,最终软件产品的可靠性无法得到权威认证,无法得到国际市场的认同,严重制约了我国软件业的发展。在质量的控制上,我们应该学习印度的软件企业。印度软件企业将产品和服务的质量品牌作为企业发展的基础,将 ISO9000 认证看作发展的第一步,将 SE-CMM等级作 为质量管理基准,将最高级别 5 级作为企业追求的目标。截止 2000 年 6 月统计在全球已经注册的 38 家 CMM-
14、5 级企业中印度就占了 15 家,在世界上被公认为质量信得过的软件提供国。另外,软件产业是一个团队的产业。从产品的设计到产品的批量生产,软件产业需要一大批有技术和多层次的人才协同工作。一个全部由高层次人才组成的软件队伍,往往会带来协同中的矛盾,使高水平的群体的生产效率低下。而团队的协作在围绕企业价值观而要求软件开发人员为产品而服务时往往带来了个人创新与产品的矛盾。因此,团队意识的强化,必须始终贯穿在企 业运行的过程之中。 2. 理论上有待突破 面对软件开发长期受挫的事实,人们期待着理论有所突破。研制与实践一种新的开发方法已迫在眉睫。软件开发中出现的一系列成本、进度、质量问题会严重影响着软件产品
15、的交付使用。项目开发中暴露出来了问题不断揭示着管理上深层次的混乱。软件产品质量与技术和管理均息息相关。软件产品的质量包括技术含量与管理的含量,因此,开发技术应考虑技术和管理两个方面。融合技术就是具有突破性的研究成果,它已被我们不断的软件开发与监理实践验证。通过长期的实践与研究,人们逐渐认识到:以往的理论或是忽视管理而重视技术,或者反之。事实上,软件开发是项目 思想、管理组织、管理方法、管理技术、管理方式的综合体现,其中,技术是其质量保证的坚实基石,而过程管理是另一项决不可忽视的措施。惟有消除管理与技术的隔阂,将两者融合,“有效性”和“实用性”最终才能真正落到实处,并使两者的优势得到充分的发挥。
16、我们致力于的融合技术的研究方法已被许多成功的实践所证明:针对项目开发常见问题该技术提出的防范措施是行之有效的,它使各阶段的质量控制有章可循,对指导软件的质量管理具有重要的借鉴作用。 三、 发展趋势 (1)模块化 随着全球化的发展趋势和全球化市场竞争压力的增加,一方面企业需要更多 的业务灵活 性和创新能力;另一方面企业面临的 IT 环境复杂度的增加和历史遗留系统的增加,对企业的 IT 提出了新的挑战。模块化的思想恰恰能够帮助企业从根本上解决了这一问题,它一方面通过抽象、封装、分解、层次化等基本的科学方法,对各种软件构件和软件应用进行打包,提高对企业现资产的重用水平和能力;另一方面,基于模块化思想
17、,业界提出了 SOA 技术,它提供一组基于标准的方法和技术,通过有效整合和重用现有应用系统和各种资源,对各种服务进行服务组件化,并基于服务组件实现各种新的业务应用的快速组装,帮助企业很好应对业务的灵活性要求。它通过有效平衡业务的灵活性和 IT 的灵活性、平衡业务的灵活性和IT 的复杂度,为 IT 人提供了一个业务视角,让 IT 人学会用业务的眼睛看世界,有效的拉近了 IT 和业务的距离 。 ( 2)开放计算 虽然软件工程方法、技术和工具的发展可谓百花齐放,但谈到趋势,我们必须首先强调的是能够确定行业基础框架,指导行业发展和技术融合的 “开放计算 “,它融 合了 “开放标准 “、“开放架构 “和
18、 “开源软件 “三个方面,如图 1.7 所示。通过坚持 “开放标准 “,不同企业开发和使用的软件可以互连互通,不同的软件工程工具能够更好地集成,不同国界和不同文化能够更好地协作交流,用户的投资能够得到很好的保证。正是它为全球化趋势奠定了重要基础;“开放架构 “通过一组开放的架构标准和技术,有效地解决了商业模式的创新对 IT 灵活性要求的增加和现有 IT 环境的复杂度之间的矛盾,第一次使 IT 和业务走得如此之近,其典型代表包括 SOA、 REST 等。而 “开源软件 “不但书写了 Linux、 Eclipse、 Jazz 等一个又一个的神奇故事,而且它还有效地促进了开放标准的发展,同时有效利用
19、社区驱动的开发与协作创新, 优化软件设计中的网络效应,开源软件越来越被中小企业和个人用户所认可。 ( 3)合理的开发治理 软件开发治理的研究对象是软件开发团队,其目的是在软件开发生命周期中,通过定义整个开发组织中的各种角色、职责和技能要求,明确 “谁 “、在 “什么时间 “、做 “什么 “、 “怎么做 “和如何评测等内容,不断改进软件团队的生产效率和软件产品质量。软件开发流程和软件工程工具是软件开发治理的两个重要组成部分, 首先,全球化的软件交付和社区 驱动的软件交付模式对软件工程方法提出了新的要求。环顾当今软件开发方法, RUP、敏捷开发、MSF 可谓百花齐放,当不同学说的支持者互相不屑一顾
20、的同时,其实我们不难看到,不管是那一种软件开发过程,它都有自己合适的软件开发团队和软件开发场景。这就好比中国的饮食文化,粤菜以鲜闻名,川菜以麻辣著称,鲁菜鲜咸,而淮扬菜则追求本味。但如果问起哪种菜系最为好吃时,则十有八九不同的人会有不同答案。即使是同一个人,在不同年龄、不同经历下,也可能有不同答案。软件开发过程也正如菜系,不同的团队、不同的文化、不同的规模、不同的软件类型 、不同的质量要求,都会影响开发团队对软件开发方法和过程的选用。 Rational 在 2004 年时提出了 “可适应的流程 “概念,其核心是通过重用组织过程资产库中的最佳实践构件,能够为不同的项目、不同的团队量体裁衣,快速装
21、配特定团队所需要的流程, Rational Method Composer(简称 RMC)是一个软件交付过程的定义、裁剪、配置和发布工具平台,它赋予了 RUP 以全新的生命力。 RMC 提供了可重用的、统一的方法架构和定义语言,同时整合了 RUP 和更多的业界标准、成功经验和方法论(以流程组件的方式存在方法库中), 使企业能够基于 RUP 和其它业界最佳实践,快速定义、配置和发布自己的软件交付过程和其他管理过程(例如 ITUP),实现了流程的重用、可配置和可适应。基于 RMC,企业可以首先将各种管理活动的最佳实践总结成流程构件,然后基于各种最佳实践流程构件建立统一的方法库。通过重用方法库中的各
22、种流程构件,面向不同类型的、不同规模的 IT组织或软件团队,企业能够快速地量身定做出适用的 IT 治理流程或软件开发流程,保证了流程的灵 活配置能力。 ( 4)全球化软件协作交付 全球化的世界必然带来全球化的软件交付模式。根据 Forrester 的数据,目前 87% 的开发团队是分布式的, 56%有两个以上的开发地点 ,同时企业的合并和收购趋势不断产生众多新的分布式开发团队,企业为了提供全球化的 24 x 7 支持和开发能力,也在不断加强全球化软件协作交付能力。 全球化软件协作交付的另一个重要的驱动力来自于软件外包行业的发展。放眼今天,外包从最初的在印度公司购买廉价的劳动力,到今天在全球全面
23、展开;从最初的以使用海外更廉价的劳动力为目的 ,到今天的有效使用海外更多人才和领先技术;从最初的技术编程为主的外包 ,到今天的咨询、 BPO、 SOA 和基础设施的全面外 包;从企业最初的有无数战略外包供应商,到今天建立 3 至 5 家战略性外包供应商,我们都不难看到外包和全球化交付正在成为软件交付发展的标准模式,而不再是个例 。 ( 5)网络化 随着信息网络技术的不断进步和运行环境的多样性,在软件发展过程中,开放化、分布化、虚拟化、无线化、互联化、物联化与泛在化等都是其网络化的不同表现形态 ,,使网络化的内涵更加丰富多彩。网络化引发了“以机器为中心”向“以网络为中心”的重大变革,并将改变应用
24、与技术模式。软件技术也面临“以网络为中心”的变革,新一代软件将基本以网络为中心来实现各种复杂的分布 式应用 3。软件技术网络化走向开放化主要表现在标准化、源代码开放与互连互通 3 个方面。软件中的核心 系统软件由 16 位、 32 位虚拟地址向 64 位虚拟地址过渡,向满足互联网接入方面发展;开放式操作系统 Linux 成为互联网新的生力军,它有 3 大优势:代码开放、分布式开发环境和适应各种平台,并且是首先执行 TCP/IP 协议的操作系统之一。网络作为基础,在网络上运行的是各种分布计算,如普适计算 (Pervasive Computing)、网格计算 (Grid Computing)、服务
25、计算 (Services Computing)、云计算 (Cloud Computing)等,它们都是分布式计算技术的具体应用和发展。作为第三代计算模式代表的普适计算是当前计算技术的研究热点,在普适环境下人们能够使用任何设备,通过任意网络、在任意时间都可以获得一定质量的网络服务 10;普适计算可以看成是从人机交互的角度来探讨未来网络系统的应用模式;同样地,云计算作为一种新兴的计算模式,是并行计算、分布计算和网格计算的发展,是计算能力通过互联网的聚合和共享,是分布计算技术的高层次应用模式,可以把网络中的各种资源虚拟成一台计算机 ,向用户提供所需的计算资源;云计算平台作为一种实现海量计算动态分配的
26、新技术平台,将构成未来数据中心大规模应用的基础,是中间件技术发展的重要趋势,是实现物联网中高效、动态、海量计算的基石之一;云计算可以看成是从资源共享与管理的角度探讨 未来网络系统的应用与构造模式。网络软件的发展趋势是在网络体系结构的基础上,建造网络应用的支撑平台,为网络用户和应用系统提供良好的运行环境和开发环境。网络中各种软件技术将相互融合、相互促进,软件的基本模型越来越符合人类的思维模式。在计算机网络软件方面,未来主要的研究方向有:全网界 面一致的网络操作系统,不同类型计算机网络的互连(包括远程网与远程网、远程网与局域网、局域网与局域网),网络协议标准化及其实现,协议工程(协议形式描述、一致
27、性测试、自 .动生成等),网络应用体系结构和网络应用支撑技术研究等。 以传感网与物联网为标志的第三波全球 IT 产业化浪潮的来临,将催生大量传感网与物联网系统中的软件 (包括感知层、传输层与应用层 )、各类网络的接入与互连 (包括传感与移动通信网,移动通信网与互联网、物联网与互联网 )、中间件以及数据挖掘与分析软件;软件和中间件是物联网的灵魂。需要集中攻克制约物联网 软件发展的各种因素:计算与物理的差异性,程序的时空特性、系统的不确定性、物联网领域语言与高可信软件验证等。 四、 我的认识 我个人的理解,软件工程就是按照工程 学 的 管理方式 ,有组织、有计划的,在一定的质量基础、时间限度和成本
28、范围内,实现功能明确的 软件系统 。而且,软件工程在企业范围内运行,一定需要 企业资源 的支持,要与企业的经营、决策、 管理体系 联系在一起,才能够被踏踏实实的落实下来。 软件工程项目是一个繁琐的项目,需要一步一步的计算,分析思考而来的,并不是一蹴而就的事情,需要我们不断思考,研究不断进步, 软件业作为一个 服务业 ,要想得到发展,首先必须形成一个对软件服务有迫切需要的市场。其次,这个市场中的消费者必须具备足够的 购买力 。软件的消费群体简单一点,可以分为个体消费和企业消费。中国的企业群体,数量庞大,但是质量不高。上规模的企业极少,因此,中国的企业对大型软件的消费肯定是有限的,软件的个人消费,
29、至少目前在中国,还是不成气候。因此,国内目前能够形成比较大规模的独立市场的,肯定是小规模的软件系统。 软件工程 随着信息化时代的到来其地位越来越受到人们的重视,软件工程从一个学科,或是某一个研究方向来说,人员仅仅是过程,方法的执行者,所以人员素质往往被忽略,软件工程是一门实践性很强的学科,所以在实际的软件研究过程中,人员的素质占有很重要的地位。要有出色的软件问世,研发人员的素质至关重要! 理论来源于实践,同样也高于实践,现有的软件工程理论也是经过了众多的科研工作者,业界人士和用户的创造,修改和更新所得出的经验总结。可以预想,软件工程理论的理论仍会随着软件产业发展壮大而不断被推进改善。没有坚实理
30、论的支持,实践就没有明确 方向。作为软件研发工学习者,既要务实理论基础,制定解决方案,又要创新实践模式,完善产品功能,软件工程的发展前景还是值得期待的! 作为软件工程的学习者应该不断创新,不断去尝试,不断去实践,不断的研究和学习,中国的软件工程技术依旧滞后于国外一些软件工程技术,作为新一代的学习者应该担当起振兴起中国软件事业,使中国科技得到高速发展! 现在已经是信息化时代,信息化潮流不断涌现,想要掌握主动权就是掌握信息化的发展方向,这就需要我们不断学习,时间,研究,学习国外的先进技术,转变自己的技术,然后融合,创新。 随着社会需要的 增长,软件开发模式也遇到诸多困难,原先那些研发模式已经不在满足人们的需求,这叫我们研究开发新模式,现在的软件工程项目不再是一个人手工设计,而是需要一个研发小组,分工合作,研发出令人满意的软件! 软件技术不是一成不变的,是随着社会的进步的不断进步,不需要不断的创新,不断的改善的,需要我们不断的学习,不断的研究,不断进步!