已阅读5页,还剩98页未读, 继续免费阅读
(计算机科学与技术专业论文)柔性软件自动化生产线研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 自动化生产线是自动化技术在制造业中广泛应用的标志性产物,为制造业带来了空前的 生产力。在软件行业步入产业成熟期的时刻,探索工艺技术,研究适用于软件业的自动化生 产线具有重大的应用价值。论文从模型( 工件) 转换自动化和活动( 流程) 自动化两方面对 软件自动化生产线进行了深入的研究。 论文由现有自动化开发框架的不足之处着手,在全面分析、比较制造业和软件业的共同 点和区别的基础上,研究了软件业可以借鉴的制造业4 项关键创新,得出了一个适用于软件 业的s a p c 模型,这个模型能够在今后很长一段时问内持续指导软件行业的技术更新方向; 论文批评了软件开发只能停留于手工艺层面而不能工业化的观点,提出了软件业实现、应用 自动化生产线的基础:引进基于确定的技术框架和系统架构的工艺设计过程,并定义了工艺 设计过程的主要任务。 论文在多层面的综合集成及管理控制基本框架指导下,在应用管理、工程化原理和目的 以及对s a p c 模型的贯彻基础上,借鉴制造业的产品生命周期管理p l m 和集成化项目支撑 环境1 p s e ,提出了柔性软件自动化生产线f s a p 概念,说明了f s a p 的定义,所必须具备的 柔性特征,结构和核心元素关系。 在模型( 工件) 转换自动化方面,论文提出了模板工程以及一种通用模型转换工具一模 板转换引擎结构;详细分析了模板转换所需要的两个层次的模式,结合了具体模板实例加以 说明在s 诅t e 、e w 、m o d c l 、p e r s j s t e n t m o d e l4 个方面的映射模式;提出了贯彻面向对象思 想的旧s 模式以及基于状态的面向对象方法学s o o 。 在活动( 流程) 自动化方面,论文分析了软件过程、流程和活动的区别,详细说明了3 种软件流程。在此基础上,实现了一个完整的以过程为核心的软件工程环境。在过程引擎方 面引入了最具柔性的工作流引擎技术o s w d r k n o w 以及对应的具有完备语言描述机制的过程 建模语言;在对象管理系统方面,在将所有工件视为结构化程度不同的x m 吐文档、引入 n x d 引擎以及l a m 框架和o w l 赋予的语义联系基础上,f s a p 实现了一个能够在元素级 别对于模型( 工件) 进行控制的工件引擎;在活动p d c a 元流程支持方面,基于a 鼬n 技 术实现了个人流程和组织流程的接口,并提出了一个2 阶段任务分配算法。 f s a p 柔性软件自动化生产线使得软件生产对于工件的控制粒度将细化到模型的元素级 别,为使用模板转换引擎对工件所表述的模型进行转换以及模型的有效性验证提供了坚实的 基础。基于f s a p ,软件组织的开发过程可以得到全面的自动化控制,不仅组织、团队和个 人三级的嵌套开发过程可以得到有效的支持,而且可以有效地实现团队中的任务安排以及工 作量平衡,并完整地收集个人的生产力数据,达到定量管理的目的。 柔性软件自动化生产线的诞生将促进软件开发方式从个体作坊转变为基于、引进软件自 动化生产线的开发,这个转变将显著地提升软件开发的自动化程度,有效地提高软件生产率 以及软件产品质量。 关键词:软件开发自动化,软件工程环境,以过程为核心的软件工程环境,自动化生产 线,柔性生产线,工艺设计,模板工程,并行工程,软件过程 i i a b s l b r a c t a s 龇呲撕0 nt e c h n o l o 静i sw i d e l yl l s e di 1 1m a l l u 风m 肛i i l g 协d l l s 舡y ,m j t o m a 廿衄p r o d u 酣蚰 l i l l eh 髂锄呼d 船ai 龃d m a r ko 呦m e 锄db r o u 曲t 瑚p r e c e d e n t e dp m d i i 嘶v 埘t 0t l l ei n d u s 订y d 嘣n gt 1 1 ep e r i o dw 血e nt h es o f n v a r ei n 血s n _ yi sg r a d u a l l yc o m i i 唱t om a n 埘劬i ti so fg r e a t p r a c t i c a i 删u ct oe x p l o r ct l l ec r mt e c h 舯l o 盱锄da c c o m p l i s h 蛐a u i o m 撕o np r o d u 州o nl i 鹏 印p l i c 曲l et om es o f t w a r ei n d u 蚰啊h e n c e ,f b mt i i e t w oa s p e c t so fm o d e l ( a r t i f k t ) c o n v e r s i o n a u t o m 撕0 na n da c 廿v i t yo r o c e s s ) a u l o m 缸i o n ,血i sd i s s e r 眦i o nh a sm a d eat 1 1 0 r o u g l la n de x 把n s i v e r e s e a r c h ns t a r t sw “h 姐强a k g i so f1 l i ed r a w b a c k so f 也ec u r 他n ts o f t w a r ed e v e l o 翻m e n t 蹦吐o 】n a :【i o n e w o r k 锄dt l l e nc o m p a r e s 柚d 锄a l y z e st l l es i m i l a r i t i e s 锄dd i 丘b r e i l c e so f t l l em a n u f 如州n g 锄ds o f h ,a 代砌u s 自吼b a s e do nt 1 1 i s ,j tf h r i l l e rp o i n t sa u tm ef o l l rc r i 吐c a la r l di n n o 、r a 廿v es a i : m o d e l s ,w h i c hc a nb eb o r r o w e df 岫m 也em a n u f k m r i n gt 01 h es o 丹w a r ei l l d u 蛐l y ( t h e s ef o u r i 衄o v a 廿o n sc a i lg u i d en l et e c l l i l o l o g i c a li 1 1 n o v a t i o n 访t h es o r w a r ei n d u 曲叮f o ra1 0 n gp e r i o do f 廿m e ) ,c 喇c i z e s 也eb e l i e ft 1 1 a ts o f h ,a r cd e v e l o p m e mc 锄0 n l ys t a yo nt 1 1 eh a n d i c ml e v e li l l s t e a d o fb e i l l gi n d u s 砸a i i z e d ,p r e s e n t st 1 1 ef 0 岫d a t i o no ft l l er e a l i z a t i o n 锄da p p l i 例0 no fa u t o m 觚0 n p r o d u c t i o n1 i l l e - i n 仃o d u c m gt 1 1 ec 糟nd e s i g i lp r o c e s sb a s e do nd e f i n j t es o r w a r et e c h n o l o 留 f h m e w o r k 髓ds y s t e ma r c h i t e c t 哦,蛐dd c t i n e st h e 硼m a r yt a s k si nt h ec r a f td e s i 印p r o c e s s b e s i d e s ,帆d e rm e 出r e c 廿o n o f m eb a s i c f h m e w o r ko f m u l t i - l e v e lc o m p r e h e 珊i v e m t e 汀a t i o n 柚dm a l l a g 咖e mc o n n d l ,柚do nt h eb i so f a p p l i c a t i o nm a n a g e m e n p r o j e c tt h e o r ya i l dg o a l 锄d 也ee x e c 曲o n0 fs a p cm o d e l ,i tr e f e r st om ep r o d u c tu f b c y d em a i l a g e m e n t 阻m ) 如dm e i n t e 酽a t j v ep r o j e c ts u p p o r te n “r o 啪e m ( i p s e ) i nm em 蛐u n gi n d u s 廿ya i l dp r e n 协a c o n c e p t :日e x i b l es o f h a r ea u t o m a t i o np r o d u c 6 叽1 i n e ( f s a p ) w i 血醅d e f i n m o n ,f l e x j b l e c h a r a c t e r s ,曲m c t l l r ea n dc o r ee l e m e n t sr e l a t i o n s h i pd e a l tw i 也 i nt h ev i e wo fm o d e l i f 如t ) c o n v e r s i o na u t o m a t i o n ,i tp u 乜f b n v a r dt e m p l a t ee n g i n e e r i n g 卸dag e n e m lm o d e lc o n v e r s i o nt o o l ,n a r n e l yt l l et e m p l a t ec o n v e r s i o ne n 西n es 廿u c t u r e ,a n d e x p o l l n d sm ep a n e m so ft w o1 e v e ln e e d e db yt e m p l a t ec o n v e r s i o n s o m et e m p l a t ee x 锄p l e sa r c l l s e dt oe x p l a i nt l l em 印p i n gp a 陆m so fs t a i e ,e w ,m 0 d e la n dp e r s i s t e n tm 0 d e l 1 l la d d n i o n ,h p r e s e n t st h eo b j e c t - t 嗽dv m p sp 执m 锄d 恤es t a t e - b 鲢e do b j e c t - 0 r i e n t e dm e m o d o l o 时s o o i nt e 珊so fa c t i v i 抓p r o c e s s ) a u t o m a t i o n ,n 锄a l y z e st l l ed i f i b r e n c eb e t w e e nt h ep r o c e s s , w o r 如o w 柚da c t i v i t yo fs o f t w a r ed e v e l o p m e m ,柚dt h r e e 帅e so fs o f h ew o 舢o w a c c o r d i r l 9 1 y ,ac o m p l e t ep r o c e s s - c e n t e r e ds o r w a r ee n g i l l e e r i n ge n v i r o n m e mi sr c a l z e d a st o p r o c e s se n g m e ,i ti n 仃o d u c e sam o s tn 喇b l ew o r l 田o we n g i n et e c h n o l o 秭o s w o r 如o w ,锄d 恤e c o r r e s p o n d i n gp r o c e s sm o d e l i n gl a i l g u a g ew i mp e 睡c tl a l l g u a g ed e s c r i p t i o nm e c h a l l i s m ;i nt e r n l s o fo b j e c tm a n a g e m e ms y s t e m ,f s a pa c h i e v e sam o d e l - c o n n o l i i n ga r t i f k te n g i n eo nt l l el e v e lo f e l e m e n b 弘e do na l la n i f a c t sc o n s i d e r e d 船x m ld o c 啪e n t so nd i 虢r e n ts t r u c t u r a li e v e l s n x d e n 西n ea n d l a m 觑衄e w o r ka i l d t h es e m a n t i cr e l a t i o n s 蛐po f o w l i n 廿o d u c e d ;m t e m so f p d c a m e 诅。p r o c e s ss u p p o r t ,i tm a r 蛾g e st 1 1 ei n t e m 嵋eo fa g e n t - b a s e dp e r s o n a ip r o c e s sa 1 1 do r g a n i z a t i 仰 w o r k 妇o wa l l dp r e s e n t st 、v op h r a s et a s kd i s 廿i b u 廿o n 撕廿l i l l e t i c f s a pm a l 【e sc o n n d l 鲫n u l a r i t yo fa n i f a c ti ns o f t 、v a r ep r o d u c t i o nr e d u c e dt oe l e m e n t 盯a d eo f m o d e j ,w h i c hp r o v i d et l l es o l i df o u n d a t i o nf o rm o d e lc 彻v e r s i o n sb yt e m p l a t ec o n v e r s i o ne n g i n e a i l dv a l i d i t yo fm o d e l b a s e do nf s a p ,s o 脚a r cd e v e l 叩m e n tp r o c e s sc 锄g e t0 v e r a l la u t o m a t i c c o n 仃0 1 o n 吐l eo n eh 如d ,山ed e v e l o p 哪e n tp r o c e s so fo 堵a n i z a t i o l l t e i i na n dp e r s o nm a yw i i l s u p p o r te 丘b c 廿v e l y ;o nt 1 1 eo l l l 盯h a n d ,i tw i l ls u c c e s s 如l l yr 明l i z ct h et a s ka r r a n g e m e n ti nt 1 1 e t e 锄w o r k ,b a i a n c eo f w o r k l o a d ,锄dc o l l e c tp e r s o n a lp r o d u c 廿“t yd a t a ,m u sa c l l i e v i l l g 也eg o a lo f q u 锄t n i v em 锄a g e m e n t t h ee 1 1 1 e 聊c yo ff s a pw i l li 1 1 e “t a b l yh e l p 衄l s f c rt l l ew a yo fs o 脚a r ed e v e l 叩m e n t 胁m i r l d v i d u a lw o f k s h o pt os o f t w a r ca u t o m a d o np r o d u c t i o n1 i n e t h i st m n s f e rw i np m m m e n 廿y h e i 曲t e l lm ea u t o m 撕o nl e v e lo f s o f h v a r ed e v e l o p m e n t 锄di m p m v et l l es o f h v a r ep r o d u c 廿v n y 粕d s o f h a r ep r o d u c tq l l a l i 吼 i ( e y w o m s : s o f h v a r e d e v e l o p m e n ta m o m a t i o n , s o f t w a r e e n g i n e e r h 培e n v i m n r n e n t s , p r o c e s s c e n t e r c d s o f t 、v a r e e n g m e e r i n ge n v i r o m n e m s ,a u t o m a t i cp r o d u c t i o n1 i n e , n e 】【i b l e p m d u c t i o nl i n e ,c r a rd e s i g 也t e :m p l a t ee n g m e e r i l l 舀p a r a l l e le i 培i n e e r m 舀s o f t w a r ep r o c e s s 博士论文:柔性软件自动化生产线研究 第l 章绪论 上世纪9 0 年代,软件行业发起了一次席卷全世界的互联网热潮,在这次热潮中上演了 许多活生生的“现代乞丐故事”一纽约街头有位乞丐一直过着穷困潦倒的日子,忽然有一天。 他听到路人说现在搞c o m 的人都非常有钱,于是他灵机一动,在乞讨碗上的b e g 后面写 了c o m 几个字母,果然,乞讨到的美元就明显比其他的乞丐多了;不久,他又听到路人纷 纷说现在正流行e b l l s i n e s s 电子商务,于是他又在b e g 前面加了个字母e ,结果投到碗里的 钱又多了不少,不仅如此,还常常有些华尔街的银行家跑来和他洽谈“上市”的问题 虽然这次热潮最终因为资本的过度炒作而成为泡沫在2 0 0 0 年破灭,软件行业也因为这 次泡沫的消退而发展停滞,但是在回顾互联网的发展时,大多数人都认为它是7 5 年来最伟 大的发明之一 1 】。它不仅让人们的生活更加丰富多彩,享受到网络带来的便利,还极大地 推动了社会经济的发展,促进了企业间的交易行为,人们都认为互联网最终将根本改变人类 生活、工作的方式。 事物的发展就是这样的一个辩证过程,都遵循着周期起伏跌宕的一个螺旋上升过程,软 件行业也是如此。在过去的半个多世纪里,软件行业确实取得了辉煌的成绩,但越来越多的 迹象也表明,这个曾经度被称为“新驱动力”的行业创新越来越少,不再能给人们带来 项又一项令人耳目一新的新技术。 文献【2 】将整个软件行业的发展轨迹归纳为著名 的创新曲线模式,见右图。如创新曲线模式所描述: 个不连续的创新为一个新的技术时代奠定基础。起 初的发展开始是快速的,随着基础逐渐稳固和成熟,徐僻 发展速度逐渐慢下来。最后,这个基础失去了继续创 新的能力,达到发展的顶峰。与此同时,另一个不连 续的创新为另一个新技术时代的到来奠定基础,于是 上述模式得以重复。 时 j ;l 】 模式转变发生在需要改变现状以继续前进的交汇 图l 创新曲线模式 时刻,软件行业就正处在这样的一个交汇时刻,一场工艺革命正悄然而至。这次工艺革命可 能在几年内将应用软件开发效率提高数倍甚至数十倍,一个激动人心的大时代的序幕正在揭 开。 1 1 软件行业现状 从全球范围来看,软件产业正处于成长期向成熟期转变的阶段。软件产业还未成熟主要 表现在两个方面:第一,与软件开发的相关技术和理论还没有成熟。软件开发中的根本任务 仍然没有找到一个行之有效的解决方法;第二,软件工程化水平不成熟。在传统行业,无论 是制造业还是建筑业,其生产过程和生产工艺都非常成熟,都形成了一定的标准。但在软件 博士论文:柔性软件自动化生产线研究 产业,这些问题没有成熟的答案,更没有成熟的做法【3 】。 软件行业已经发展了半个多世纪,但是从目前的情况来看,软件开发的速度缓慢、代价 高昂而又极易出错,常常会生产出存在大量缺陷的产品,在可用性、可靠性、性能、安全以 及其他服务质量方面造成严重的问题。“软件危机”依然困扰着整个行业。实际上,软件开 发并没有脱离“软件作坊”的发展阶段。现在开发软件的方法与十年前没有什么不同,方法 和实践实际上没有太大的改变,相应的成本和风险同样也没有太大的改变。生产率只获得了 有限的提高,而这些提高基本上依赖于培育起来的学徒制一成功地增加了合格开发人员的数 量并提高了开发人员的平均水平,软件开发仍然是一项劳动密集型的产业。 软件行业已经为其他行业提供了很多帮助;科学研究与工程、军事、商业、通讯、办公、 交通、医药、娱乐等等,已经成为这些行业的信息化和自动化的驱动弓l 擎。另一方面,软件 开发自身却还是处于初级阶段,主流的自动化开发环境仍然基于上世纪8 0 年代开发的配置 管理工具如v i s u a ls o u r c e s a f c 、c v s ,少量的模型工具如r a t i o n a lr o s e 、p 0 w e r d e s i g i l e r 【4 】 等,软件行业仍在上演着“鞋匠弦子”的故事。 1 2 软件开发自动化的定义 为了解决软件危机生产力低下的问题,2 0 世纪8 0 年代人们开始对软件开发自动化进 行研究,随着研究的深入,人们发现完全自动化地制造软件非常困难,原因是多方面的 5 。 完全自动化是软件开发自动化的终极目标,在达到这个目标之前,必定还有很长的段路程 要走。当人们认识到完全自动化这条路是走不通的,那么退而求其次要求能够通过采取一些 必要的措施和方法,自动化或半自动化的产生具体的软件系统。在这样的一个前提下,本文 对于软件开发自动化提出了一个非形式化的定义: 定义1 1 软件开发自动化是将传统开发过程的人力活动尽可能自动化直至完全自动化, 尽可能多地把困难、复杂的工作留给计算机处理,尽可能地减轻开发人员的负担。 从这个定义出发,实现开发自动化具体可以从以下三方面着手: 1 尽量减少软件开发的工作流程、活动以及工件; 2 将原来必须由人来完成的模型( 工件) 映射、转换活动自动化或半自动化,从而使 得由高层工件能够依据预定义好的模式、规则自动转换为低层工件; 3 将原来必须由人来完成的活动的交接、模型( 工件) 的传递自动化或半自动化,从 而使得一项活动结束后,后继活动的进入条件能够得到满足并得以自动开始。 这三方面的工作也可以解释为其他途径,譬如尽量向业务领域描述靠拢,采用模型变换 技术等【6 】,但实质没有区别。为了实现以上两方面的工作,需要对软件开发有深层次的理 解,只有更好地把握软件开发的本质才能进行对软件开发的流程、活动简化以及自动化。 1 3 现有自动化开发框架分析 自动化开发方面的研究最先达到的成果是一些自动化工具,譬如模型自动化验证工具、 博士论文:柔性软件自动化生产线研究 自动化测试工具、u i 自动生成工具【7 】等等。这些工具归纳起来,大致出于3 类自动化开发 方法、目的:构件组装、模型( 工件) 转换自动化和活动( 流程) 自动化。 构件组装和组装推导构成了基于构件的软件工程( c o m p o n e n tb 觞e ds m w m e n g i n e e r i n g ,c b s e ) 的两项关键技术 8 ,依据的是定义1 1 导出的方法一,模型( 工件) 转 换自动化的目标在于用自动化机械替代人执行开发的基本活动一模型转换,遵循的是方法 二,活动( 流程) 自动化侧重与人与人之间话动、工件的传递自动化,可以归纳为遵循的是 方法三。 1 3 1 构件组装方法 1 3 1 1 软件工厂 微软公司( m i c m s o rc o r p o r a t i o n ) 提出了称之为软件工厂( s o f | w w ef a c t o r y ) 9 】的方 法学,这个方法学代表了构件组装的思想。所谓软件工厂就是指为了支持某种特定应用程序 的快速开发而配置的开发环境。具体来说就是通过软件架构、模式、模型、框架和工具装配 应用程序。软件架构定义了用于生成软件产品系列成员的方法。软件模板包括可以加载到可 扩展工具( 例如交互式开发环境或企业生命周期工具套件) 中的代码和元数据,以便自动执 行系列成员的开发和维护。在成熟的软件工厂中,应用程序开发主要包括构件选择、自定义、 改装、扩展和装配。随着产品开发人员越来越多地依赖于外部供应商,供应链会逐渐形成, 就像在其他行业中一样。软件工厂通过划分软件架构( 纵向或横向) 以便将职责转移给外部 供应商来促进供应链的形成。 软件工厂还包括一个重要的概念一领域特定语言d s l ( d o m a i ns p e c m cl a n g u a g e s ) 。 d s l 在整个框架中的作用与u l m 。十分相似,可以说,d s l 就是关注特定开发环境的工具, d s l 可以帮助抽象某个特定领域的复杂度( 例如架构、过程、技术标准等) 。软件工厂一项 主要的任务就是帮助提供一系列的工具以帮助开发人员在图形化环境下定义、编辑d s l , 简单地构建d s l 并实现它们。这样开发人员能够将他们的经验用d s l 的方式进行封装和描 述,以更快地得到特定领域的业务逻辑,使得开发过程更快更有效。 软件工厂建立在对系统化重用、模型驱动开发、装配式开发和过程框架中的关键思想进 行融合的基础之上,它的自动化开发核心基础是软件模板一可以加载到可扩展工具( 交互式 开发环境( i d e 或企业生命周期工具套件) 中的代码和元数据以便自动执行系列成员的开 发和维护。软件工厂其中的许多思想都没有什么新颖之处。真正的新颖之处在于将它们综合 成一种集成式方法,以便使具有领域专业知识的组织能够实现软件工厂模式,并且生成语言、 模式、框架和工具以自动执行狭窄领域中的开发。 1 3 1 2 青鸟软件生产线 国内北京大学提出了青鸟软件生产线的概念和思想 1 0 ,其主要目的在于形成软件产业 内部的合理分工,实现软件的工业化自动生产。在青鸟软件生产线中,软件的生产过程依据 文献 1 1 】的分类法划分为3 类不同的生产车间;应用构架生产车间、构件生产车间和基于构 件、构架复用的应用集成( 组装) 车间,相应地,软件开发人员也被划分成3 类:构件生产 3 博士论文;柔性软件自动化生产线研究 者、构件库管理者和构件复用者。青鸟软件生产线以构件模型( 以对象计算模型为基础进行 设计,支持多种不同构件形态:类、抽象类、类簇、类树、框架和构架) 和构件描述语言 j b c d l ( j a d eb 矾c o m p o n e n t sd e s c r i p t i o nl a n g u a g e ) 为基础,主要包括以下几个主要组成 部分:构件库系统j b c l ( j a d eb i r dc o l n p o n e n t su b r a r y ) ,程序理解及构件获取工具集j b p s ( j a d eb i r dp r 0 f m a n a l y s i ss y 啪m ) ,面向对象系列开发工具集,构件组装工具等。这些平 台、系统和工具紧密结合,支持以产品复用( 复用已有的软件构件,通过构件集成、组装得 到新系统) 为核心的软件开发,实现了以可复用构件、构架库为核心,支持基于复用的软件 开发技术和过程。 在应用平台的支持下,青鸟软件生产线的软件开发过程可以概括为3 个过程:使用领域 工程技术对现有系统进行分析,提取该特定领域的软件构架,对构架进行描述后加入构架库: 对现有系统进行程序理解和构件提取( 对于非面向对象的系统需要进行向面向对象构件的再 工程) ,对构件进行封装、规约及分类后加入构件库;在实际开发时,首先根据软件构架进 行需求规约和设计,然后依据构架从构件库中选取构件,进行必要的适应性修改( 或生产新 的构件) ,组装成为目标系统,在这个过程中生产的新构件也可以经过封装、规约及分类后 加入构件库。 在青鸟软件生产线中,关键在于以构件模型和构件描述语言为基础,通过可视化的构件 组装工具自动或半自动的进行构件组装。在对可复用构件进行描述、管理、存储和检索过程 中,构件库系统采用了以刻面分类策略为主,多种分类策略相结合的策略,为构件在各个刻 面中关联一组术语、属性和一组关键词,并在构件之间建立各种关系。 1 3 2 模型( 工件) 转换自动化方法 模型的自动化转换领域还很年轻,国内还没有出现这方面的框架。模型( 工件) 转换自 动化方法的典型代表是2 0 0 2 年国际对象管理集团( 0 b j e c tm a n a g e m e mg r o u p o m g ) 提出 的模型驱动架构( m o d e ld r v a r c h i t e c t u r e ,m d a ) 1 2 。o m g 的构想是将目前的开发行为 提升到更高的抽象层级分析模型级,针对特定计算平台( 譬如j 2 e e 、n e t ) 的编码工作 则由执行引擎自动完成。从而使得业务逻辑与实现技术被成功地解耦,模型的价值在包容已 有技术的条件下得到最大化。 m d a 在目前技术的基础上,分离出了两个抽象级别的模型:平台无关模型( p l a t f o m i n d e p e n d e mm o d e l ,p i m ) 和平台相关模型( p la t 】 o ms p e c i a l i z em o d e l ,p s m ) ,p “是一个纯 粹的不考虑实现技术的分析模型,而p s m 可以视为一个基于特定实现技术,比如j 2 e e 的 设计模型。工程师们只需要建立表达业务逻辑的p 【m 剩下的工作都将由执行引擎自动完成。 为此,o m g 制定了一系列的标准:u m l 、元对象机制( m e t ao b j e c tf a c i l i t y ,m o f ) 、元数 据交换机制( x m l - b a s e dm e t a d a t ai m e r c h a i l g e ,x m i ) 等,以解决模型建立、模型扩展、模 型交换、模型变换方面的问题。o m g 试图通过标准化的定义、可扩展的建模语言环境,使 得j t 厂商可以自由实现自己的建模语言,以及语言到可执行代码的映射。模型转换技术是 4 博士论文:柔性软件自动化生产线研究 m d a 能够成为一个自动化开发框架的关键。在2 0 0 2 年,作为m o f2 o 标准版的一部分, o m g 提出了建立允许用户查询、建立并维护视图以及转换m o f 模型的标准的建议,这一 标准被称为q v t ( o u 鲥e s 丘e v 懵厂i h n s f o m a t i o n s ) 。 在佃a 的基础上,文献【1 3 】提出了x m d a ( e x e c l l t a b l em d a ) 框架,x m d a 对于m d a 最大的改进在于,该框架使用x l ,( e x e c u t a b l eu 他) 来定义平台无关模型p i m ,弥补了 i m ,对于动态模型描述方面的欠缺,这使得模型在需求阶段就实现了强健的模型分划准则、 完备准则,使得模型在早期即可验证并具备了较高的质量。 1 3 3 活动( 流程) 自动化 9 0 年代以后,出现了以过程为核心的软件工程环境( p r o c e s s c e n t e r e ds o f t w a r e e n g i n c 甜n g e n v 岫e n 乜,p s e e 伊c e ) 1 4 】。p s e e 的目的在于将软件生产置于过程模型的指 导和控制之下,实现活动( 流程) 的自动化,通过活动( 流程) 对于软件工程一些重要原则、 方法的融合以提高软件的生产率和产品质量。p s e e 学术界和工业界实例、原型众多,一些 重要的包括a l f 1 5 】、e p o s 1 6 】、m a r v e l 【1 7 】、 m e r l i n 【1 8 】、m ,m a c 【19 】、o o s 【2 0 】、 s p a d e f 2 l 】以及国内的i s p e 【2 2 】、p c l a g e n d a 【2 3 】、b p r o c e s s 2 4 】和j b p s e e 【2 5 ,2 6 。 p s e e 的核心思想是将软件过程模型作为软件工程环境的输入参数,环境只是执行过程 模型。p s 髓一般包括三个主要部分:过程引擎( p r o c e s se n g i n e ,p e ) 、过程建模语言( p r o c e s s m o d e l i n gl a i l g u a g e ,p m l ) 和对象管理系统( o b j e c tm a n a g e m e ms y s t e m ,o m s ) ,其中过程 建模语言的功能是用于描述和定义过程,建立过程模型。过程引擎解释、执行过程建模语言, 同时对过程运行中的各种事件做出相应的反应。对象管理系统对各类对象采取统一的处理方 式,提供有效的存取和访问机制。 1 3 4 现有框架局限性 在这些现有的框架中,m d a 强调的是在更高抽象层次上的基于模型的开发,主要解决 了模型对于不同技术平台的适应性以及可转换性,实质是提出了一个基于m o f 元模型的各 层次模型的定义以及转换标准化规范。m d a 部分实现了活动层面上的自动化,将原来必须 由人来完成的模型转换工作变为模型转换语言所描述的自动化操作,但对于动态模型的建立 和转换方面却有所不足,缺乏完备的描述能力,另外,对于流程级别的自动化并没有涉及。 软件工厂和青鸟软件生产线类似,这两者的思想在于产品复用和产业内部的分工协作。 软件工厂强调的是基于供应链提供的构件使用软件模板进行装配式开发,基于领域专业知识 的构件组装、重用;青鸟软件生产线则基于应用构架生产车间、构件生产车间通过构件组装 工具进行构件组装。而遍观行业现状,只看到少数几个基于系统化产品系列的自动化产品开 发案例,产品复用技术对软件产业的影响并不尽如人意,适用的领域十分狭窄,只限于已存 在成熟系统产品的领域,并且对于流程的自动化没有提供任何支持。 p s e e 较好地实现了对于流程自动化的支持,但在另外一方面,对于开发自动化的另外 两种方法基本没有考虑在内。这3 个自动化开发框架严格说来并没有展示出一个完整的框架 5 博士论文:柔性软件自动化生产线研究 模型,那么一个完整的自动化开发框架应该具有哪些核心关键元素? 究竟应该遵循怎么样的 一个自动化开发流程? 1 4 论文的研究目标和内容 传统制造业经历了几代技术创新,已经进入到现代大工业时代,自动化技术得到广泛应 用,标志性产物就是自动化生产线。自动化生产线为制造业带来了空前的生产效率、质量的 提高和相应的人力、原材料等资源消耗的减少。相比之下,软件行业经过半个多世纪的发展, 整体仍然处于初始的手工业阶段。出于弥补软件行业与制造业之间巨大的技术落差,借鉴给 制造业带来重大改变的创新的目的,软件生产线等概念自然而然随之诞生。 现有的自动化开发框架、软件生产线概念仍局限于初级的基于构件组装的标准化以及构 件生产的产业化方面,并没有意识到一些更高级别的、已经给制造业带来巨大收益的创新的 存在,譬如自动化、流水线、并行工程等,也不清楚这些创新将给软件行业带来如何的改变、 释放多少潜在的生产力。 本文从分析、借鉴制造业为提高生产力所做出的创新历史着手,从更广阔的角度探索了 一套完整自动化开发框架应该具备怎样的架构。研究的主要目标、内容包括: 1 回顾制造业为提高生产力所做出的创新历史,研究构成这些创新的技术基础,借鉴 制造业的这些关键性创新。考察这些创新是否具有应用到软件行业的可行性。 2 分析、对比制造业和软件业的生产过程,揭示软件生产过程的特殊性。 3 研究软件行业发展历史中的为生产力发展带来重要革新的n a t i v e 技术,以及管理、 工程化的原理和目的的贯彻、实现机制。 4 考察真正的、完整的生产线概念在软件业是否可行。 5 从软件工程环境角度着手,从模型( 工件) 转换自动化和活动( 流程) 自动化两方 面探索、构造一套完整自动化开发框架。 6 如何集成、应用软件行业在成长期所积累的丰富产品技术,将这些产品技术为工艺 技术的改进服务。 1 5 论文的组织结构 本文第一章阐述了软件行业正面临着怎样的阶段转变,现有自动化开发框架的局限性, 提出了软件开发自动化研究的背景和意义。 第二章在产业发展阶段模型的指导下,分析了软件生产线的可行性,并指出了可行性的 基础是引进现阶段软件开发过程中缺少的工艺设计过程。 第三章在应用管理、工程化原理和目的以及对第二章所得出的关键性创新s a p c 模型的 贯彻基础上,提出了柔性软件自动化生产线f s a p 概念。说明了f s a p 的定义,柔性特征, 结构和核心元素关系。 第四章提出了模板工程以及一种通用模型转换工具一模板转换引擎结构,通过模板工程 6 博士论文:柔性软件自动化生产线研究 和层语言的映射转化来支持、实现自动化开发流程。并详细描述了f s a p 在s e 、m o d e l 、 v i e w 、业务规则4 个方面的映射模式。 第五章分析了软件过程、流程与活动的区别,提出了一种软件过程分类法和层次映射模 型i 川m ,并详细说明了3 种类型的软件流程。 第六章描述了f s a p 在过程引擎、过程建模语言和对象管理系统三方面的具体实现,并 在s e e 服务框架下与p s e e 进行了对比和分析,最后给出了一个典型的f s a p 原型使用用例。 第七章对全文进行了总结和展望。 博士论文;柔性软件自动化生产线研究 2 1 引言 第2 章软件生产力的提高途径 在其他行业,诸如机械制造、电气、建筑、汽车等行业,提高生产能力的途经是从手工 作业过渡到机械生产。1 9 世纪的工业革命,通过标准化的生产形成社会化的分工,促使制 造业从手工作坊走向了社会化大生产的时代,带来了人类文明的一次飞跃。近年来,业界人 士一直期盼着下一轮软件创新。 近年来高科技产业市场泡沫的破灭标志着软件产业进入壮年期。随着技术逐步走向成 熟,具备丰富经验的优秀开发人员越来越多,这个壮年产业正酝酿着一场以软件开发自动化 和业务构件灵活组装为核心的软件开发工艺革命。新的工艺与工具将会大大提高自动化程 度,并降低对软件人员的技术要求,这次工艺革命可能在几年内将应用软件开发效率提高数 倍甚至数十倍。 2 2 产业发展阶段模型概述 2 2 1 产品技术与工艺技术创新 产业发展与产业生产技术发展密切相关。所谓产业生产技术是指服务于产业所提供的产 品与服务的生产技术,可以分为两大类:一类是有助于产品或服务本身不断变化、革新的产 品技术,另一类是有助于产品或服务有效产出的工艺技术。没有产品技术就不能创造出现在 熟悉、使用的各种产品,如个人电脑、移动电话、数码相机等等:没有工艺技术,就不可能 将这些产品大批量、低成本地生产出来以满足消费者巨大的需求。这两类技术缺一不可,如 果只有产品技术设有工艺技术,那么新产品只能停留在实验室:而如果只有工艺技术没有产 品技术,那么人们只能被迫接受那些落后的东西。 生产技术发展的显著形式就是技术创新。u 钍e r b a c k 【2 7 】的产品及工艺技术创新理论认 为,在技术创新的循环过程中,往往是先出现产品技术创新,而紧随其后的是工艺技术创新。 一项新产品开发出来之后,往往并不是很完善的,存在着这样或那样的缺陷。因此在开始的 时候,市场需求量不会很大,产业处于诞生期。一段时间以后,随着技术的进一步改进以及 消费者认识的加深,市场需求会逐渐增加,产业迅速成长,此时竞争就会渐渐加剧,此时产 品技术创新处于产业竞争的核心地位。 盒式录像机( d e oc a s s e 恤r e c o r d e r v c r ) 的产品发展历史就是如此。在产品刚出现 的时候很少有人问滓,后来随着市场需求的增加,与之间的竞争也就激烈了。在这场竞争中。 b e t a 和v h s 之间的竞争也就激烈了。在这场竞争中,v h s 的设计技术被消费者广泛认可, 成为该产业的“主导设计”,产业的技术标准依此而建立起来。此时,竞争的基础已从产品 技术创新转移到产品的价格与特色方面,也即工艺技术创新方面上来。其主要目的是,在主 博士论文:柔性软件自动化生产线研究 导设计不变的情况下,增加产品特色,提高生产率,降低成本,降低价格,以便迅速占领市 场。于是,工艺技术创新处于产业竞争的核心地位。在工艺技术刨新方面的竞争一直会持续 到另一种新产品或替代工艺出现( 如v c d 机取代录像机) ,从而导致第二轮工艺技术竞争 开始。可见,产品技术与工艺技术的创新发展推动了产业的成长演化,具体如下圈所示。 创新 程度 主导设计i主导设计i i时闯 图2 技术创新与工艺刨新【2 7 1 因此可以说产品技术帮助了产业的诞生
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 脑卒中急性期护理措施指南
- 体积最大化盒体设计研究
- 感染科医院感染防控措施培训规范
- 糖尿病足康复训练方案
- 新员工入职宣讲
- ICU危重病患导尿管护理措施
- 《安全用电》课件
- 康复医学科脊柱损伤康复训练规范
- 东航公司期货投机介绍
- TLS加密性能优化实践课程设计
- 2026年新能源动力电池系统检修题库含答案
- 2026年安全知识竞赛及答案
- 2026四川德阳绵竹市金申投资集团有限公司第一批招聘40人笔试备考试题及答案解析
- 2026江苏中考地理押题必刷卷含答案
- 中信银行社招笔试题目
- 2025年高频党校教师面试题及答案
- GA 990-2025爆破作业单位资质条件和管理要求
- 房屋征收责任制度
- 大学生如何规范网络行为
- 儿童眼睛保健知识宣传
- ip地址管理规范制度
评论
0/150
提交评论