微博

QQ

跨媒体、跨平台的软件工程模式化再构(上)

2004-12-03 赵季伟 辽宁电视台 依马狮网


    [摘要]   随着数字媒体MAM、SMS、DRM、ERP、EAI等软件工程技术的大量应用,把电视工程系统技术从硬件工艺集成推向软件模式集成。本文通过软件工程方法学的研究,探索跨媒体、跨平台软件集成与开发的一般性规律。
    [关键词]   模式化运动   软件模式   宏对象类   软件再工程   反面模式

    前言
    从熙熙攘攘的NAB2004到浩浩荡荡的IBC2004,国际主流广电技术提供商共同的技术大趋势,已经面向广电多变的数据化、网络化,为结构模式化的需求提供并非单一功能的软件工程。而且,从事软件工程研究的专家还告诫广电:“当前摆在软件工程面前的一个重要课题,是从理论上理解面向对象编程(OOP) 具有强大生命力的天然合理性,并完善软件工程方法学的理论体系。” 
    美国研究软件工程的学者Stave Halladay和Michael Wiebel教授曾这样说:“一般的OOP思路不过是绞尽脑汁抽象出来的‘对象’而已。倘若程序员经验不足,系统规模又很大,那么采用OOP只能把你引入漫无边际的泥沼之中。”广电既存(或既成)的软件工程毕竟还是少,但数字电视应用平台却越做越大,类与超类对象也越来越多,伴随着数字电视业务的不断拓宽,整合繁杂的运营业务,跨越媒体的开发平台,在宽阔的技术平台上,研究“面向对象”是什么?什么是面向对象软件工程(OOSE)再构系统,以及什么样的“软件再工程”建造 “模式化运动”?这对未来电视媒体系统工程的发展至关重要。
    在辽宁数字电视节目平台项目的设计与实践中,随着电视台系统工程的传统电视节目制作、播控中心及演播室系统等等,逐渐被新兴的数字电视媒体码流快速编辑系统、网络化演播室和自动化播控系统、归档管理的智能编播系统、媒体资产管理系统(MAM)、运营资源支撑系统(SMS)、版权与授权管理系统(DRM)、媒体资源规划管理系统(ERP)以及企业业务集成(EAI)所取代,从“形象思维”到“逻辑思维”的演绎,推动了数字电视系统集成内容发生根本性变革,把以往各种功能器件(设备)IN/OUT物理连接的系统组合,变为软件工程构建业务应用开发平台的设计和集成。实践表明,在广电“数据化”开发和应用的生存期内,软件工程的技术储备远远不及硬件工程,而从事研发和编程的大批程序员都很优秀,然而,担负系统工程设计的“总体框架师”却很薄弱,造成设计者与开发者的对象不清,上下不明,以至返工的现象时有发生,很有必要对数字媒体系统开发引入OOSE方法学,适宜展开行业技术的 “模式化运动”,以不变的理念升华适应多变的技术发展和市场需求。

    一.软件工程创建 “模式化运动” 
    上世纪90年代,“软件模式(Software Patterns)”被引入软件工程,确切地说,是软件工程的“再工程”引入了软件模式。这可能是软件工程自诞生以来最大一次理论飞跃,同时,也开创了“模式化运动”的新理念。
    美国加利佛尼亚大学环境结构中心研究所所长Alexander博士用了约20年的时间,对舒适住宅和周边环境进行了大量的调查和资料收集,发现人们对舒适住宅和城市环境存在着共同的认同规律。他从Context(模式可适用的前提条件)、Theme或Problem(在特定条件下要解决的目标问题)、Solution(对目标问题求解过程中各种物理关系的记述)等3个侧面描述这些规律,并从用户需求条件分析,到建筑环境结构设计,直至经典实例的过程建立模型,归纳成为253个模式。Alexander的贡献主要有2方面:一是集既往之大成,归纳了迄今为止各种风格建筑师的共同设计规则,给东西方、古代派、现代派建筑设计与城市规划提供了共同的语言和准则;二是他不仅给出了方法,还给出了最优解决方案。
    在Alexander研究模式以前,人们注重研究的是高质量、高效率、低成本的系统开发方法,而Alexander的模式注重则是“什么是最好的、成功的”系统。在20年里,Alexander对既存物进行比较分析,寻求优化“模式”;如果没有对大量既存物象的逆向分析,就不可能筛选出最优方案,于是有了“模式思维起源于再工程”的基本定义。 
    1990年,软件工程界开始关注Alexander的重大突破。最早是以“四人帮(Gang of Four)”自称的4位著名软件工程学者(GoF),他们在1994年发表了23种设计模式,力图通过模式来统一面向对象方法在分析、设计和实现之间的沟通关系。 
    所谓“模式”,是指遵从某种规则或规律所反复出现的思维方式或表现。Alexander把模式的集合称为模式语言(Pattern Language)。构成模式语言的各模式是针对某一特定前提的求解,记述频繁发生的现实问题及其基本解法。这些解法可以反复使用,只要出现同类问题就可以使用同一解法,而不必总是一切从头做起。值得注意的是,模式并不是单独存在的,它们可以由粒度小的模式组合而成,也可以与其他模式一起组合而成粒度更大的新模式。 
    软件模式是将“模式”的一般概念用于软件开发,规范总体指导思路或参照样板。软件模式并非仅限于“设计模式”,还有“体系结构模式”、“分析模式”、“过程模式”等等,而且,软件生存期的各个阶段都存在着被认同的模式。换言之,确认软件模式取决于可否按照模式的基本构成方式来描述,并与问题域和软件生存期域内阶段对象无关。近年来,软件工程模式化的研究已将模式概念的应用从软件开发领域推广到组织机构、应用业务、经营活动,甚至日常生活领域。对此,西方称之为“模式化运动”。

    二.面向模式的软件工程
    所谓OOSE方法学,是指组织软件生产过程的一系列方法、技术和规范。许多程序员对于面向对象(OO)的方法很熟悉,而面对面向对象分析(OOA),还有面向对象设计(OOD),以至面向对象编程(OOP),就有些举棋不定;至于OOSE方法学,更是看得过于抽象而无所适从。在软件开发前期,既使是OOP也并不规范,很难在生产过程中抽象一般规律,再加上OOSE方法学,茫然也在所难免。不过,OOSE方法学就是在软件工程技术上对OO方法引入“模式化”思维,而“模式”的思想是基于对既存系统的模式化抽象和既成模式的再利用,以面向模式进入软件再工程,以循环往复的模式化再构,实现模式化抽象的软件重用模式。因此,面向模式可看成软件模式的“宏对象类”,进而在面向对象思路上建立起新的思维体系,这是理解和构建软件模式的一个捷径。“模式”的一般特征是:(1)模式不是特定,而是一般;(2)模式的形态表现为多样性,可以是物理的实现级,也可以是逻辑的抽象级;可以是方法模式,也可以是过程模式以及结构模式;(3)非模式是一对一,模式是一对多;(4)模式可重复使用,并应能得到广泛认同。
   

跨媒体、跨平台的软件工程模式化再构(上)
图1 软模式基本构成
如果再进一步抽象,将“模式”的概念引入软件工程就有了软件模式。软件模式是对软件工程特定“问题”的“解法”的统一表示,它和Alexander所描述的模式定义完全吻合。即:
    软件模式=一定约束条件下的{问题+解法}。 
    如图1所示,软件模式的基础结构由4个部分构成:问题、前提条件、解法和适用结果。目前,尚无对于上述基本构成表述法的约束,因此,用UML、DFD或其他表述法在理论上都认为是被允许的。由于面向模式方法也被解释为“宏面向对象方法”,所以,一般用UML表述较为顺理成章,特别适于对下层使用C++、Java等面向对象语言的软件模式。图2构成UML类图表述的软件模式元模型。
    根据软件模式的基本构成,参照UML元模型,就可以按照模式用户的问题域特征来分类建模。根据软件工程的分割原则,模式是可以细分为多层次,但软件模式究竟应该分成多少

视听科技视频号 广告
发表评论