摘 要:软件工程自二十世纪六十年代末诞生以来, 经历30 余年的坎坷, 它已经成为计算机科学领域一门综合性和工程性的独立学科. 现在以及未来若干年内, 软件工程的研究热点将主要集中在软件重用和软件构件技术、中间件、标准化技术等方面. 了解和掌握这些热点技术问题的研究现状, 对我们进一步学习和研究软件工程无疑具有一定的参考意义.
关键词:软件工程;软件重用中间件;标准化
1.软件重用和软件构件技术
软件重用和软件构件技术是软件工程领域长期研究的一个主要热点问题. 其中, 构件是核心和基础, 重用是方法和手段. 构件的重用, 能使软件开发人员减少甚至摆脱写代码的低效工作, 致力于更高层次的搭构件, 把更多精力放在问题定义过程, 促使问题空间与求解空间尽可能一致. 早在1968 年, 软件构件与软件组装生产线的思想就在国际NATO 软件工程会议上被提出来. 从那以后,采用构件技术实现软件重用, 采用搭积木的方式生产软件, 成为软件业长期的梦想.构件化应用开发必须要有开发工具的支撑, 包括集成开发环境、应用运行环境、应用管理及构件库管理等.
基于构件的软件工程最需要解决的问题是如何建造构件模型和确立软件体系结构即构架. 构件模型决定了软件系统构架的思维逻辑. 在构件和构架模型中, 有必要把构件与构件间的交互作用相分离, 以提高构件的独立性和可重用性. 业界目前关注的问题主要集中在构件和构架的清晰准确地描述、构件库的管理、可重用构件和构架的获取等方面. 目前流行的NET 和J2EE 采用两种不同的构件模型和技术, NET 采用COM/COM+ 模型, J2EE 采用EJB 模型.
据美国专家研究预测, 2005 年以后至少70%的新应用将主要建立在软件构件和应用框架的基础上. 也有专家进一步指出, 软件重用与净室模型、自动开发技术一起被认为是今后高效开发高质量软件产品过程的发展方向, 而基础是重用技术. 无论怎么说, 以软件重用为代表, 基于构件的技术将使软件工程及其软件开发方式发生巨大的改变.
2.中间件技术
软件重用及构件化应用开发和运行需要有不同层次的中间件平台的支撑. 中间件兴起以后, 构件技术才逐渐走向现实. 构件必须在中间件平台上才能发挥作用, 只有在适当的中间件平台上, 软件才有可能被抽象和隔离, 最终成为构件. 因此中间件技术近年来成为软件工程关注的焦点和软件业发展的关键.中间件按功能大致可分为5 类: 数据库访问、远程过程调用、通信、事务处理和分布对象中间件.中间件技术将对软件重用和软件构件技术的发展
带来深刻的影响.
首先, 中间件本质上是对分布式应用的抽象,它抛开了与应用相关的业务逻辑的细节, 保留了典型的分布交互模式的关键特征. 应用在中间件提供的环境中可以更好地集中于业务逻辑上, 并以构件化的形式存在, 最终自然而然地在异构环境中实现良好的协同工作.第二, 基于构架的构件化软件开发应当是面向需求的, 即设计者集中精力于业务逻辑本身, 而不必为分布式应用中的通信、效率、互操作、可靠性、容错性、完整性等大量与业务无直接关系但又非常重要的问题去耗费大量的精力, 理想的构架在这些方面应当为构件软件提供良好的运行环境. 事实上, 这些正是中间件所要解决的问题. 在大型软件工程系统中有70%的错误来自于需求分析和系统设计, 中间件的发展为人们解决这一问题提供了有力的支撑.第三, 中间件最大的特点就是屏蔽多样的系统资源. 它是位于底层基础平台( 硬件和操作系统) 和高层应用之间的通用服务. 这些服务具有标准的程序接口和协议. 针对不同的操作系统和硬件平台,它们可以有符合接口和协议规范的多种实现, 以提供开发和实现分布式系统及与环境隔离的构件开发模式. 应用构件开发者只需要按照中间件规定的模式进行设计开发, 不必考虑下层的系统平台, 这就为构件可重用甚至即插即用提供了保障.
总之, 中间件作为应用软件系统集成的关键技术, 保证了构件化思想实施, 并为构件提供了真正的运行空间. 中间件领域工业化标准的制定、统一及实现, 使基于构件的应用开发成为可能. 反过来,构件对新一代中间件产品也起到促进作用. 中间件平台化和应用构件化的结果将导致软件工程方法的继续演变, 也将导致软件产业链的组成发生变革. 中间件的研究开发需要引入现代软件工程方法, 而软件工程的发展又需要借助中间件等一类新兴软件技术的牵引和推动.
3.标准化技术
标准化既是软件重用和软件构件技术发展的需要, 也是其必然结果, 同时还是软件产业健康发展的强力支撑. 软件工程标准包括软件标准和软件过程标准. 而软件过程标准的建立是软件工程成熟的重要标志.
最近几年, 国际软件工程标准化活动异常活跃, 产生了从企业到国际一级的各种各样的标准,对世界软件产业产生了巨大的规范化引导作用. 目前, 国际流行两大软件工程标准框架. 一个是国际标准化组织( ISO/IEC) 的 软件工程和系统工程标准分技术委员会提出的软件工程标准框架. 这个框架从支持软件工程各个基本要素的角度出发, 表述了软件工程对标准的需求. 另一个是美国国防部提出的软件工程标准指南. 这个框架性指南围绕软件工程环境、软件生存周期过程、软件工程安全性、程序设计语言和语言联编等提出了强制要求和建议采用的支持软件系统工程化的标准.虽然这两个框架在覆盖范围和详细程度上有所不
同, 但其共同之处都是以ISO/IEC12207 为主线标准, 并且针对支持软件工程中的离散活动和连续活动, 考虑了其他一些必要的标准. 国际标准ISO/IEC 12207软件生存周期过程归纳了整个软件生存周期中的普遍被认为行之有效的各个过程( 即关于活动的描述) , 以及它们之间和它们与供、需方之间的关系. 围绕这个标准的是一批支持各个过程实施的过程规范标准. 在现行的50 多个ISO/IEC 有关软件工程的标准中, 与上述离散活动对应的标准约占1/3, 与连续活动对应的标准约占2/3.
我国软件工程标准制定工作相对于软件产业而言, 起步较早. 上个世纪80 年代初, 我国就开始了软件工程标准的制定工作. 在软件质量标准方面, 首先是针对中文信息处理产品制定了大量标准, 其次, 密切跟踪国外软件质量标准化的进程, 着手分析研究工作. 就专业领域而言, 我国的国家标准和行业标准基本上覆盖软件工程的过程一类, 在其他类别上覆盖率还比较低.下一阶段, 软件工程标准化工作的重点仍然是软件过程的标准化, 其发展方向主要是基于软件生存周期的整个软件开发流程的标准化和具体系统的标准化, 包括针对各种用途的软件开发流程标准和开发环境及专用工具系统标准. 而且, 软件过程标准化和软件标准化将进一步紧密结合并协调发展, 在此基础上逐步产生软构件标准、中间件标准和自动化生产标准.
参考文献:
[ 1] 仲萃豪. 软件开发的三大突破性成果[ J] . 中国信息导报, 2005, ( 1) : 60- 61.
[ 2] 杨芙清. 软件工程技术发展思索[ J] . 软件学报, 2005,16( 1) : 1- 7.