




已阅读5页,还剩66页未读, 继续免费阅读
(交通信息工程及控制专业论文)ARTiSAN+Realtime+Studio在CBTC车载三模冗余系统中的研究与应用.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
中文摘要 摘要:针对目前嵌入式实时系统开发的迫切需求,旨在改进当前建模技术中不利 于嵌入式实时系统开发的方面,本文引入了嵌入式实时系统开发的新方法 a r t i s a n 实时透视法( r t p ) ,以及基于实时u m l 的建模工具a r t i s a nr e a l t i m e s t u d i o ( r t s ) ,以降低嵌入式实时系统开发的复杂度,缩短开发周期。 论文介绍了避错容错技术的概念和分类,以及容错技术在轨道交通信号系统中 的应用,研究了面向对象的建模技术和统一建模语言u m l 的应用发展情况,分析 了由u m l 模型到代码自动生成的必要性。 论文详细阐述了a r t i s a n 实时透视法的体系结构和开发过程,对基于实时 u m l 的嵌入式实时系统丌发环境进行了选型分析,并对r t s 下的代码生成与同步 开发平台进行了描述。通过对新方法r t p 和建模工具r t s 的介绍,以及与传统开 发方法和工具的比较,明确了采用r t p 和r t s 的原因和优势。最后对r t s 图的类 型和扩展机制进行了介绍。 本课题结合基于a r t i s a n 实时透视法的建模设计分析方法,对c b t c 车载三 模冗余系统进行了探索性的研究。首先分析了a r t i s a n 实时透视法在车载三模冗 余系统中应用的可行性,然后分别从系统需求体系结构、系统解决方案体系结构 和系统模型行为验证等方面进行了设计和分析,初步实现了从系统需求分析到建 模实现的过程。整个过程遵循了a r t i s a n 实时透视法的体系结构和开发过程,使 得应用系统的缺陷能较早的被捕获,降低了系统的风险,保证了系统在安全可靠 性方面的要求。 本文对代码自动生成技术的实现方法以及a r t i s a nc + + s v i l d d i l i z e r 下的代 码生成和同步过程进行了研究,并针对车载三模冗余系统模型进行了探索性的应 用。首先定义了u m l 扩展集,扩展了类图的有效信息,并对更新后的类模型进行 了代码生成和同步的应用。最后对代码生成和同步中存在的问题进行了分析和总 结,并进行了v x w o r k s 下的仿真机模拟测试。 关键词:c b t c ;三模冗余;u m l ;a r t i s a nr e a l t i m es m d i o ;a r t i s a n 实时透 视法;建模分析;代码生成与同步 分类号:u 2 8 a bs t r a c t a b s t r a c t :w i t l lt h ec u r r e n tu r g e n td e m a n do fd e v e l o p i n g 曲e d d c dr e a l - t i m e s y s t e m s an e wd e v e l o p m e n tm e t h o do fa r t i s a n r e a l - t i m ep e r s p e c t i v e ( r t p ) ,a sw e l l a sam o d e l i n gt o o lo fa r t i s a nr e a l t i m es t u d i o ( r t s ) b a s e do nr e a l t i m eu m l ,w a s b r o u g h ti nt oi m p r o v et h ed i s a d v a n t a g e si n c u r r e n tm o d e l i n gm e t h o d s ,r e d u c et h e c o m p l e x i t yo fd e v e l o p m e n ta n d s h o r t e nt h ed e v e l o p m e n tc y c l e i nt h ep a p e r , t h ec o n c e p t sa n dc l a s s i f i c a t i o no ff a u l t - t o l e r a n tt e c h n o l o g yw e r e i n t r o d u c e d ,a sw e l la st h ea p p l i c a t i o ni nr a i l w a yt r a f f i cs i g n a ls y s t e m t h e n t h e o b j e c t o r i e n t e dm o d e l i n gt e c h n o l o g ya n dt h ea p p l i c a t i o no fu m l w e r er e s e a r c h e d ,t h e n e e do fg e n e r a t i n gc o d ea u t o m a t i c a l l yb yu m lm o d e lw a sa n a l y z e d 1 nm ep a p e r , t h ea r c h i t e c t u r ea n dd e v e l o p m e n tp r o c e s so fr t pw e r ee l a b o r a t e d t h e nt h es e l e c t i o no fe m b e d d e dr e a l t i m es y s t e m sd e v e l o p m e n te n v i r o n m e n tw a s a n a l y z e d ,a n dt h ec o d eg e n e r a t i o na n ds y n c h r o n i z a t i o np l a t f o r mu n d e rr t sw a s d e s c r i b e d t h r o u g ht h ei n t r o d u c t i o no fr t pa n dr t s ,a sw e l la st h ec o m p a r i s i o nw i t h t r a d i t i o n a lm e t h o da n dt o o l s ,t h e r e a s o n sa n da d v a n t a g e so fr t pa n dr t sw e r e u n d e r s t o o d f i n a l l y ,t h ed i a g r a mt y p e sa n dp r o f i l e m e c h a n i s m so fr t sw e r ei n t r o d u c e d i nt h ep a p e r , b a s e do nm o d e l i n gd e s i g na n da n a l y s i sm e t h o d so fr t p 。c b t c o n - b o a r dt m rs y s t e mw a sr e s e a r c h e de x p l o r i n g l y f i r s t l y ,t h ea p p l i c a t i o nf e a s i b i l i t yo f r t pw a sa n a l y z e d ,t h e nt h er e q u i r e m e n t sa n ds o l u t i o na r c h i t e c t u r ea n a l y s i sa n dt h e m o d e lb e h a v i o rv e r i f i c a t i o nw e r eb u i l tw i t hr t s t h u st h ep r o c e s sf r o ms y s t e m r e q u i r e m e n t sa n a l y s i st om o d e l i n gr e a l i z a t i o nw a s r e a l i z e dp r i m a r i l y t h ew h o l ep r o c e s s f o l l o w e dt h ea r c h i t e c t u r ea n dd e v e l o p m e n tp r o c e s so fr t p , m a k i n gt h es y s t e md e f e c t s c a nb ec a u g h te a r l i e r , r e d u c i n gt h er i s ko ft h es y s t e mt oe n s u r et h es a f e t ya n dr e l i a b i l i t y i nt h i sp a p e r ,t h em e t h o d sa n dt e c h n o l o g i e so fa u t o m a t i cc o d eg e n e r a t i o nw e r e r e s e a r c h e d a sw e l la st h ec o d eg e n e r a t i o np r o c e s su n d e ra r t i s a nc + + s y n c h r o n i z e r , a n dt h ep r i m a r ya p p l i c a t i o nf o ro n - b o a r dt m rs y s t e mw a sp r o c e s s e d f i r s t l y ,au m l p r o f i l ew a sd e f i n e da n dt h ee f f e c t i v ei n f o r m a t i o no f t h ec l a s sm o d e lw a se x t e n d e d ,t h e n c o d eg e n e r a t i o na n ds y n c h r o n i z a t i o na p p l i c a t i o n sw e r eb u i l t f i n a l l y , e x i s t i n gp r o b l e m s w e r ea n a l y z e da n ds u m m a r i z e d 。a n ds i m u l a t i o nt e s tu n d e rv x w o r k sw a sp r o c e s s e d k e y w o r d s :c b t c :t m r :u m l ;a r t i s a nr e a l t i m es t u d i o ;a r t i s a nr e a l t i m e p e r s p e c t i v e ;m o d e l i n ga n a l y s i s ;c o d eg e n e r a t i o n c i a s s n o :u 2 8 j 匕塞交通态堂亟堂位途塞图塞到 图索引 图1 常用的容错计算机系统结构4 图2 用多个模型描述系统8 图3 实时透视法体系结构1 4 图4 解决方案体系结构1 5 图5 实时透视法开发过程框架1 6 图6 应用和组件开发过程1 7 图7 基于模型架构基础的应用和组件开发过程1 8 图8 传统的瀑布开发模式1 8 图9 基于a r t i s a nr e a l t i m es t u d i o 的实时系统开发建模环境1 9 图l o 代码生成:单一模型到多种语言2 l 图l l 构造型、标签定义和标签值的关系2 4 图12c b l 系统组成框图2 6 图1 3c b t c 车载设备结构框图2 7 图1 4 车载三模冗余系统基本结构2 8 图1 5 系统用例图3 0 图1 6 用例图中的模犁引用,3 l 图1 7 乍载三模冗余系统功能层次划分3 2 图1 8 系统架构图3 4 图1 9 结构图3 5 图2 0 系统类图3 7 图2 l 系统间交互的序列图3 8 图2 2 系统软件平台工作流程3 9 图2 3 系统状态图4 0 图2 4 通信任务并发图4 l 图2 5 系统间交互的序列图动画4 2 图2 6 系统软件平台工作流程动画4 3 图2 7m d a 开发过程4 5 图2 8s t u d i o 和m d a 4 6 图2 9 a r t i s a nc hs y n c h r o n i z e r 下的代码生成和同步过程4 7 图3 0 系统框架层4 7 图3l 扩展集1 m re x a m p l ep r o f i l e 5 0 图3 2 更新后的系统类图5 2 图3 3a r t i s a nc + + s y n c h r o n i z e r 下模型到代码的生成示意图5 4 图3 4a r t i s a nc 阡s y n c h r o n i z e r 下的代码生成过程一5 5 图3 5a r t i s a nc i s y n c h r o n i z e r 下代码到模型的逆向丁程示意图5 6 图3 6 代码和模型的同步5 7 图3 7 逻辑分析结果图5 8 图3 8s h e l l 环境测试结果分析图5 9 i 匕塞窑遒厶堂亟堂位途塞麦塞到 表索引 表la r t i s a n 实时透视法的特定应用领域1 3 表2a r t i s a nr e a l t i m es t u d i o ( r t s ) 的优势2 2 表3r t s 图的类型及功能2 3 表4 定义u m l 扩展集4 9 表5 应用对象对应的构造型、标签定义和标签值一5 l 表6 类模型特征及代码映射信息5 2 学位论文版权使用授权书 本学位论文作者完全了解北京交通大学有关保留、使用学位论文的规定。特 授权北京交通大学可以将学位论文的全部或部分内容编入有关数据库进行检索, 并采用影印、缩印或扫描等复制手段保存、汇编以供查阅和借阅。同意学校向国 家有关部门或机构送交论文的复印件和磁盘。 ( 保密的学位论文在解密后适用本授权说明) 学位论文作者签名: 戒瑶 导师签名: 1, 钒晓 签字日期:口咖宫年6 月f 日 签字日期:加踢年g 月1 e t = j e 京交适太堂亟堂僮论童独剑娃崖明 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作和取得的研 究成果,除了文中特别加以标注和致谢之处外,论文中不包含其他人已经发表或 撰写过的研究成果,也不包含为获得北京交通大学或其他教育机构的学位或证书 而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均己在论文中作 了明确的说明并表示了谢意。 学位论文作者签名:签字日期: 础年6 月l1 日 6 7 致谢 研究生的学习生活就要接近尾声了。这两年是我成长最快的一段时间,付出 了许多,也收获了许多。不仅获得了学业上的成就,更重要的,是关怀我,帮助 我的老师、同学和朋友。在此,我要对我的导师、所有关心和教育我的老师、一 路陪伴我成长的同学、朋友表示最诚挚的谢意! 首先,衷心感谢我的导师唐涛教授两年来对我的关心和指导! 本论文的工作 是在唐涛教授的悉心指导下完成的,唐老师严谨的治学态度和科学的工作方法给 了我极大的帮助和影响,他的人格魅力深深影响着我,他所倡导的严谨求实的治 学态度、一丝不苟的钻研精神、勤于思考的作风将使我终生受益。 感谢轨道交通控制与安全国家重点实验室的郜春海、马连川、王海峰、李开 成、刘波、袁磊、张建明、黄友能、王悉、周达天、燕飞、刘中田、徐田华等老 师指导我参与实验室的科研工作,研究生期间使我的科研能力得到了很大的提高 并对我的论文提出了很多宝贵意见和建议,使我的思路开阔了很多,在此表示衷 心的感谢! 还要感谢北京奥索泛亚科技有限公司的杨昆明工程师给予我的指导和 帮助。 在实验室工作及撰写论文期间,曹源、陈树泉、陆启进、刘朔、孙琳、刘雨、 刘超等师兄师姐给予了我热情帮助,杨旭文、滕竹、张亦南、谢雨飞、孟军、袁 彬彬、张振兴、姜璐、王呈等也给我提供了不少帮助,并对我的论文提出了许多 宝贵意见,在此向他们及其实验室其他共处过的同学表达我的感激之情。 另外要感谢我的家人,他们的关爱、支持与鼓励始终温暖着我,他们的理解 和支持使我能够在学校专心完成我的学业。 最后,衷心感谢为评阅论文和参与论文答辩而付出辛勤劳动的各位专家学者, 感谢您的宝贵意见! 1 引言 1 1 选题目的和意义 伴随着嵌入式应用的不断增长,嵌入式系统需求的复杂性、不确定性也在不 断地提高,系统规模也在逐步地扩大,而产品的研发周期又在不停的缩短。这给 嵌入式系统的开发带来了新的挑战。同时,嵌入式系统的开发者必须面对由于芯 片性能的增长、嵌入式操作系统平台等技术方面不断变化所带来的各种压力。越 来越多的嵌入式系统项目在开发过程中被迫取消,相当部分的软件在开发完成时 成本已超出预算的一半。因此,传统的嵌入式系统的开发方式面临着新的挑战。 面向对象技术由于内在地支持了对系统的抽象、分层和复用技术,能够很好 的控制系统的复杂性,因此在控制领域得到越来越广泛的应用。而统一建模语言 u m l 则是面向对象建模技术事实上的标准【l 】,它提供了从需求分析到软件设计等 一整套完整的面向对象方法,并越来越受到广大开发人员的青睐,是设计开发大 型系统( 包括实时系统) 的有效工具。然而,面向对象技术在嵌入式实时系统开发中 并未得到广泛运用,其主要原因是u m l 在一些关键实时应用领域还有所欠缺,特 别是u m l 在对资源和时间定量表示上的不足阻碍了其在实时系统的应用,尤其 对多进程并发、调度时所产生的时效需求、性能需求,基本u m l 缺乏直接的表达 机制【2 j 。而且大部分u m l 建模工具只注重对系统软件分析与设计,而对于嵌入式 实时系统实时性与硬件结构描述缺乏足够的支持,这对于嵌入式实时系统市场来 说是不可接收的,嵌入式实时系统开发要求实时的完整的描述整个系统而并非只 是软件部分。随着嵌入式微处理器的发展,很显然嵌入式实时系统开发需要新的 方法与工具【3 1 。 本论文针对目前嵌入式实时系统开发的迫切需求,旨在改进当前建模技术中 不利于嵌入式实时系统开发的方面,引入a r t i s a n 实时透视法的建模思想和相关 的技术方法,以及基于实时u m l 的建模工具a r t i s a nr e a l t i m es t u d i o ( r t s ) ,以 降低嵌入式实时系统开发的复杂度,缩短开发周期。 论文拟从理论和实践两个方面展开,结合嵌入式实时系统的一些基本特征, 研究基于实时u m l 的嵌入式实时系统开发的建模过程,详细论述a r t i s a n 实时 透视法的体系结构、开发过程、相关建模技术和方法。同时以北京交通大学自主 开发的基于通信的列车控伟i j ( c b t c ) 系统中的车载设备三模冗余系统作为实例进行 探索性的研究,拟从系统需求体系结构、系统解决方案体系结构和系统模型行为 验证等方面对系统进行设计和分析,并在r t s 下实现其建模过程。整个过程遵循 a r t i s a n 实时透视法体系结构和开发过程的引导,使得应用系统的缺陷能较早的 被捕获,降低系统风险,以保证系统在安全可靠性方面的要求。论文还拟对r t s 所具有的代码生成和同步功能进行研究,并由车载设备三摸冗余系统的u m l 模型 生成代码。这样,论文中建模阶段存储的有价值的部分工作就可以用到实现阶段, 减少重复劳动。自动代码生成和同步的研究则能够大幅提高设计品质,提高代码 质量,提高代码的可复用性,降低开发时间和成本,缩短调试时间,具有较高的 经济和学术意义。 1 2 计算机系统可靠性技术概况 1 2 1 避错和容错技术的概念 随着计算机技术不断发展,以通用计算机技术为基础的自动控制系统越来越 广泛的应用在轨道交通、航空航天、能源以及化工等领域,越来越多的部门,尤 其是关键部门,对计算机呈现了很强的依赖性。一旦计算机发生故障,将带来无 可估量的生命和财产的损失。因此,对计算机系统的安全性、可靠性、可用性的 要求更高,以保证系统能安全、可靠、不间断地工作。提高计算机系统的可靠性 具有强烈的迫切性和极大的必要性【4 】。 设计错误、环境因素、硬件失效、电磁干扰以及软件代码中的隐含错误都将 导致计算机系统故障,降低系统的可靠性。设计错误、环境因素导致的故障是可 避免的;而硬件失效,电磁干扰以及软件代码中的隐含错误导致的故障是不可避 免的。为了提高计算机系统的可靠性,人们进行了长期的研究,总结出了两种技 术方法来解决上述两类故障。对于前者,采用质量控制以及环境防护等避错技术, 对于后者,采用容错技术加以屏蔽。 避错和容错技术是提高计算机系统可靠性的两种主要技术手段。所谓避错, 其手段是采用j 下确的设计和质量控制方法尽量避免把故障引进系统,靠预先排除 所有故障来提高可靠性,以尽量减少系统发生故障的概率。要绝对做到这一点实 际上是不可能的,一旦系统出了故障,则需要通过检测和核实来消除故障的影响, 进而自动地或人工地恢复系统。所谓容错,是指当系统中出现某些指定的硬件故 障或软件错误时,系统仍能正确地执行规定的一组程序( 或算法) ,或者说程序不会 因系统中的故障而中止或被修改,并且执行结果也不包含系统中故障所引起的差 错。容错的基本思想是在系统体系结构上精心设计,利用外加资源的冗余技术来 达到掩蔽故障的影响,从而自动地恢复系统或达到安全停机的目的【5 】。 2 采用避错和容错两种技术可提高计算机系统和数字系统的可靠性。尤其是容 错技术,它是构造高可靠系统的最有力手段,也是当今最活跃的一个研究领域。 后文将着重介绍容错技术。 1 2 2 避错和容错技术的分类 避错的目标是尽量减少故障出现的概率,是提高系统可靠性的最直观的方法, 是任何生产过程和设计过程都必须考虑的。其方法有环境防护技术,质量控制技 术和提高元件的集成度等【5 】。 容错主要依靠冗余设计来实现,以增加资源来换取可靠性。冗余设计可以是元 器件级的、部件级的或系统级的。 由于资源的不同,冗余技术分为以下几种类型: ( 1 ) 硬件冗余:以检测或屏蔽故障为目的而增加一定硬件设备的方法,即增加 线路、设备、部件,形成备份; ( 2 ) 软件冗余:为了检测或屏蔽软件中的差错而增加一些在正常运行时所不需 要的软件方法,目的是提供足够的冗余信息和程序,使得开发人员能及时发现 编程错误并采取补救措施,以提高可靠性; ( 3 ) 信息冗余:为检测或纠正信息在运算或传输中的错误而外加的一部分信 息,在通信和计算机系统中,信息常以编码的形式出现,采用奇偶码、循环码 等冗余码就可检错和纠错; ( 4 ) 时间冗余:采用附加一定时间的方法来完成系统功能,这些附加的时间主 要用在故障检测、重复执行或故障屏蔽上; 上述几种冗余技术类型最终在计算机系统中体现为硬件冗余和软件冗余。各 种冗余要有机地相互配合使用才能达到较高的可靠性目标。 1 2 3 容错技术在轨道交通信号系统中的应用 在轨道交通信号系统中,计算机得到越来越广泛的应用,作为组织列车行车 管理和保证行车安全的信号系统,其自动化水平不断提高,规模日益扩大,复杂 性也迅速提高,因此不仅要求系统具有极高的可靠性、可用性和安全性,还要具 备故障安全性能,即在正常工作时保证系统安全,在发生故障时确保系统由 故障倒向安全。计算机化的轨道交通信号设备依据容错技术,通过软、硬件的容 错设计,可以非常有效地提高其可靠性,进而提高安全性。 目前轨道交通信号领域常用的容错计算机系统结构有双模结构和三模结构【9 】。 双模结构一般由两个独立的单机构成,双机具有相同的硬件结构,都能完成 规定的功能,根据双机之间关系的不同,这种结构又可分为冷备,温备和热备, 其中双机热备系统最为常用。双机热备容错计算机系统的主体由两个硬件结构完 全相同的计算机组成,根据一定逻辑关系定出主机和备机。主备双机使用相同的 程序,处理同样的任务,但只有主机输出结果。主备双机均应具有自诊断功能, 一旦发现本机发生故障,应立即切断输出,进行切换或转到安全模式。同时双机 还要进行状态和输出结果的比较,一旦发现不一致系统则导向安全状态。基本结 构如图1 ( 曲所示: ( a )( b ) 图i 常用的容错计算机系统结构 f i g u r e1g e n e r a ls t m c t l l r eo ff a u l t t o l e r a n tc o m p u t e ra r c h i t e c t u r e 三模冗余系统( t r i p l em o d u l a rr e d u n d a n c y ,t m r ) 也是最常用的容错计算机结 构之一,如图l ( b ) 所示,该结构具有三个完全相同的单机,执行同样的操作,以承 认“多数模块的输出是正确的 为基本出发点,实行“少数服从多数的纠错原 理,以多数相同的输出作为表决系统的正确输出,这样就可以屏蔽任意一个模块 的故障。在正常情况下,三个模块同时给出三个相同的输出,表决器输出一个结 果作为三个模块的正确输出。如果任一模块出错,其输出不同于其它两个模块, 表决器仍然输出正确结果。只要不出现两个性质完全相同的错误,就能保证系统 输出是正确的,而出现两个同样性质错误的概率是非常低的,因此该系统具有比 较高的可靠性和安全性。 一般三模冗余系统采用分布式结构,即由多个独立的计算机系统组成。模块 间的联系依靠相互间的消息传递,随着计算机硬件价格的大幅下降,分布系统的 模块性,并行性和自治性等优点越来越多地体现出来。 在容错计算机系统结构方面,己由单机向分布式发展,采用现有的微处理器 及微计算机来实现高性能的分布式容错系统已成为目前的主要趋势。在理论方面, 4 嚣 对分布式系统的形式描述以及在分布式环境下的行为特性研究和理解还不够,在 实际应用方面,实现冗余管理和错误处理方面还有许多困难【5 】,依靠传统的可靠性 以及结构化设计和分析方法已远远满足不了分布式系统的开发需求。要构建一个 良好的分布式容错计算机系统,无论在理论方面还是在实际应用方面都还有许多 工作要做。 1 3 面向对象的建模方法 1 3 1 面向对象的建模技术 。面向对象技术( o o ) 自8 0 年代初问世以来,由于它的模块性、封装性、继承性、 多态性和动态性等特点,能够满足软件工程要求的局部化、易维护、可重用和易 扩充性,以及当今多媒体和分布式计算的诸多要求,一时成为计算机各项领域争 相采用的新技术焦点【l2 1 。 面向对象的方法认为客观世界是由各式各样的对象组成,每种对象都有各自 的内部状态与运动规律,不同对象间相互作用构成不同的系统。可见,对象是一 种普遍适用的基本逻辑结构,是包含了大量信息的实体。它既可表示抽象概念, 也可表示具体模型、软件或者硬件【l5 1 。面向对象的目的是框架化,手段是抽象, 即一个大型工程是分层次结构的,每个层次又由许多抽象的结构连接为整体( 框架 化) ,各个抽象结构之间是彼此独立的,可以独立进化的( 继承、多态) ;层次之间、 结构之间各有统一的通讯机制( 消息、事件机, t j ) t 1 3 】。 模型是对现实存在的实体的抽象和简化,提供了系统的蓝图。模型过滤非本 质的细节信息,抽象出问题的本质,使问题更容易理解。抽象是一种允许我们处 理复杂问题的方法,为了建立复杂的系统,我们必须抽象出系统的不同视图,使 用精确的符号建立模型,验证这些模型是否满足系统的需求,并逐渐添加细节信 息把这些模型转变为实现。这就是模型形成的过程。建模是捕捉系统本质的过程, 即把问题从问题领域转移到解决领域的过程。现在的系统越来越大,大多数系统 的功能都很复杂,从而使得系统开发变得复杂和难以把握。解决这一问题最有效 的方法之一是分层理论,将复杂问题分为多个问题逐一解决。模型就是对复杂问 题进行分层,从而更好的解决问题。有效的系统模型有利于分工与专业化生产, 从而节省生产成本。 面向对象建模( 通常叫做面向对象的分析和设计,或者o o a d ) 的基本思想就是 将概念从面向对象编程提升到建模层次上,并且完成图形化,其目的是把要设计 的结构和系统的行为联系起来,并对系统的体系结构进行可视化和控制【1 4 】。面向 5 对象的可视化建模是使用一些图形符号进行建模,其作用如下:使用模型便于从 整体上、宏观上把握问题,可以更好的解决问题;可以加强人员之间的沟通;可 以更早的发现问题或疏漏的地方;模型为代码生成提供依据;模型帮助我们按照 实际情况对系统进行可视化;模型允许我们详细说明系统的结构或行为;模型给 出了一个指导我们构造系统的模板;模型对我们做出的决策进行文档化。 传统的结构化设计所建立的模型不能反映源代码,与程序设计脱节,源代码 和模型几乎没什么关系;这样的模型不能生成代码,更不可能从代码生成模型, 模型大多数是表面功夫,所以不能保证软件质量,更不宜软件的维护,没什么约 束力也没有监测的标准,其弊端是显而易见的。而面向对象的建模技术利用面向 对象方法,把应用程序分成许多小块( 对象) ,这些对象是相互独立的,然后组合这 些对象,建立程序【l 引。 1 3 2 面向对象的建模语言u m l 由于面向对象的各种建模方法及其工具为数众多,各有优缺点,彼此之间在 概念、表示符号、面向对象分析模型及文档组织方面存在着明显的差异,使得设 计开发人员很难做出选择和进行技术交流。基于此背景,由美国r a t i o n a l 公司发起, 在面向对象方法发展过程中卓有建树的三巨头g r a d yb o o c h 、i v a r j a c o b s o n 及j a m e s r u m b a u g h 参与和领导下,并与其它几十家公司共同推出了一个“统一的方法 , 即统一建模语言u m l ( u n i f i e dm o d e l i n gl a n g u a g e ) 1 0 1 。 u m l 是一种标准的图形化建模语言【1 4 】,是面向对象分析与设计( o o a d ) 的一 种标准表示。它不是一种可视化的程序设计语言,而是一种可视化的建模;不是 工具或知识库的规格说明,而是一种建模语言规格说明,是一种表示的标准;不 是过程,也不是方法,但允许任何一种过程和方法使用它。 u m l 的目标【6 j 是: 易于使用、表达能力强,进行可视化建模; 与具体的实现无关,可应用于任何语言平台和工具平台; 夺与具体的过程无关,可应用于任何软件开发的过程; 简单并且可扩展,具有扩展和专有化机制,无需对核心概念进行修改; 为面向对象的设计与开发中涌现出的高级概念( 例如协作、框架、模式和 组件) 提供支持,强调在软件开发中,对架构、框架、模式和组件的重用; 与最好的软件工程实践经验集成; 可升级,具有广阔的适用性和可用性; 有利于面向对象工具的市场成长。 6 u m l 是最广泛使用的面向对象建模语言,其重要性在于表示方法的标准化有 效地促进了不同背景的人们的交流,有效地促进了软件设计、开发和测试人员的 相互理解。无论分析、设计和开发人员采取何种不同的方法或进程,他们提交的 设计产品都是用u m l 来描述的,这有利地促进了相互之间的理解。 u m l 尽可能地结合了世界范围内面向对象项目的成功经验,因而它的价值在 于它体现了世界上面向对象方法实践的最好经验,并以建模语言的形式把它们打 包,以适应开发大型复杂系统的要求。尽管u m l 本身没有对过程有任何定义,但 u m l 对任何使用它的方法( 或过程) 提出的要求是:支持用例驱动( u s e - c a s ed r i v e n ) 、 以架构为中,i 二, ( a r c h i t e c t u r e c e n t r i c ) 以及递增( i n c r e m e n t a l ) 和迭代( i t e r a t i v e ) 的开发。 尽管u m l 很强大,但也和其它语言一样,是有局限性的。对于许多组织,建 模的任何方法都要定制,包含与其他组织、客户和项目相关的标准、符号和信息。 这就需要扩展语言的建模能力。而且u m l 在一些关键实时应用领域还有所欠缺, 特别是对资源和时间的定量表示上不足,这也阻碍了u m l 在实时系统和嵌入式系 统的应用。因此,有必要扩展一系列附加的和补充的技术来辅助实时系统的开发。 实时u m l 是标准u m l 的扩展,它为标准u m l 提供了最小限度的但足够的扩展, 支持标准u m l 中定义的所有技术,鼓励和促进工业范围内实时扩展的标准化【1 7 】。 在实时系统分析时,通过对u m l 进行扩展,就可以从现存的构造块衍生地创建专 f - j m 于解决实时系统的新构造型【2 】,从而增加模型的灵活性。详细的扩展机制将在 第二章中描述。 1 3 3 利用u m l 建模 u m l 被用来为系统建模,可应用的范围非常广泛,可以描述许多类型的系统。 最直接的是用u m l 为软件系统创建模型,也可用来描述其它非计算机软件的系 统,或者是商业机构或过程。 u m l 常见的应用有:信息系统( i n f o r m a t i o ns y s t e m ) 、技术系统( t e c h n i c a l s y s t e m ) 、嵌入式实时系统( e m b e d d e dr e a l t i m es y s t e m ) 、分布式系统( d i s t r i b u t e d s y s t e m ) 、系统软件( s y s t e ms o f t w a r e ) 、商业系统( b u s i n e s ss y s t e m ) - - , c - - - 等【6 1 。通常大多 数系统都不是单纯属于某一种系统,而是一种或多种的结合。本论文研究的c b t c 车载三模冗余系统就同时有分布式和实时的需要。 用u m l 语言建造系统模型的时候,并不是只建一个模型。在系统开发的每个 阶段都要建造不同的模型,建造这些模型的目的也是不同的。建模的过程一般被 分为几个连续的重复迭代阶段:需求分析阶段、设计阶段、实现阶段和展开阶段, 相应的阶段有相应的模型。需求分析阶段建造的模型用来捕获系统的需求、描绘 7 与真实世界相应的基本类和协作关系;设计阶段的模型是分析模型的扩充,为实 现阶段作指导性的、技术上的解决方案;实现阶段的模型是真正的源代码( s o u r c e c o d e ) ,编译后的源代码就变成了程序;另外还有展开模型,它在物理结构上解释 系统是如何展开的。虽然这些模型各不相同,但通常情况下,后期的模型都是由 前期的模型扩展而来。因此,每个阶段建造的模型都要保存下来,以便出错时返 回重做或重新扩展最初的分析模型。如图2 所示。 图2 用多个模型描述系统 f i g u r e2u s i n gm u l t i p l em o d e l st od e s c r i b es y s t e m u m l 语言具有阶段独立性,即同样的通用语言和同样的图可以在不同的阶段 为不同的事情建模。这使得建模者能把更多的精力放在考虑模型的结构和适用范 围上。 使用建模语言需要相应的工具支持。即使人工在白板上画好了模型的草图,建 模者也需要使用工具,因为模型中很多维护、同步和一致性检查等工作,人工做 起来几乎是不可能的。最初的建模工具( 又叫c a s ei 具) 不成熟,几乎和画图工具 一样,仅提供了建模语言和很少的一致性检查。经过人们不断的改进,今天的c a s e 工具拥有了丰富的功能。另外每种工具都有属于自己的建模语言,或者至少有自 己的语言定义,这也限制了这些工具的发展。随着统一建模语言u m l 的发展,工 具制造者现在可能会花较多的时间来提高工具的质量,减少定义新方法和语言所 花费的时间。 一个现代的c a s ei 具应提供下述功能: 画图:提供方便作图和为图着色的功能,能够理解图的目的并知道简单的 语义和规则,这样的好处是当建模者不适当的或错误的使用模型元素时, 工具能自动告警或禁止其操作; 积累:以便系统能够把收集到的模型信息存储下来,如果在某个图中改变 了某个类的名称,这种变化必须及时地反映到使用该类的其他所有图中; 导航:使建模者能够容易地从一个图到另一个图来跟踪模型元素或扩充对 模型元素的描述; 夺多用户支持:多个用户可以在一个模型上工作,彼此之间没有干扰; 产生代码:该功能可以把模型中的所有信息翻译成代码框架,把该框架作 8 为实现阶段的基础; 令逆转:一个高级的c a s e 工具要有阅读代码并依据代码产生模型的能力, 即模型可由代码生成,它与产生代码是互逆的两个过程,对于开发者来说 可以用建模工具或编程两种方法建模; 集成:即与开发环境( 比如编辑器、编译器和调试器) 和企业工具( 比如配置 管理和版本控制系统1 等的集成; 令覆盖模型的所有抽象层:能够容易地从对系统最上层的抽象描述向下导航 至最低的代码层; 令模型互换:模型或模型中的图能够从一个工具输出,然后输入到另一个工 具中,也应支持用明确定义的语言描述模型之间的互换( 输出输入) 。 1 4u m l 模型到代码的自动生成 众所周知,软件开发的最终目的是产生可执行代码。在大多数软件开发环境 中,建模和编码过程缺少有机的统一,其主要原因是缺少功能强大、简单清楚、 标准统一的建模语言。u m l 的出现以及被对象管理组织o m o ( o b j e c tm a n a g e m e n t g r o u p ) 接受为标准,为消除这个障碍提供了一个很好的起点。 代码自动生成机制应根据u m l 语言多种模型动态协作、关系复杂的特点,首 先界定u m l 的语义和面向对象编程语言的语义,研究专用语义机制描述面向对象 模型和语言中动态与静态机制,建立两者的语义模型。然后,再在该语义模型下 建立两者的映射模型,并研究代码自动生成技术和独立于u m l 语言本身的编程语 言的特殊机制。代码自动生成机制在研究与实现时,还应考虑逆向转换机制的需 求【1 3 1 。 在软件工程高度发展的今天,多数的软件开发人员仍然使用手工编写代码的 方法。这种传统软件开发方式通常效率较低而且开发周期较长,并且其中存在大 量的重复劳动。在这种情况下,通常出现大型软件项目的延期、成本超出计划、 性能低于预期,甚至中途夭折等,这些问题迫使软件开发人员对于如何降低软件 开发和维护成本、提高开发效率、减小需求变更对系统的影响以及延长系统的生 命周期进行思考。然而在传统的开发方式中,这些问题总是很难得到完善的解决。 这就需要一种可以避免低水平重复开发、能够实现标准化生产的软件开发新方式, 以帮助企业应对快速变化的市场环境。代码自动生成技术在一定程度上解决了这 个问题3 9 1 。 随着模型到代码自动生成工具的普及,越来越多的设计人员开始放弃手工编 写控制代码,转向使用自动工具。设计人员可以通过建模软件开发工具对所开发 9 的项目进行描述,建立整套系统的u m l 模型,然后模型到代码自动生成工具就可 以根据该模型生成各种语言的源代码,这样建模阶段存储的有价值的部分工作就 可以直接用到实现阶段,减少重复劳动。自动生成代码能够大幅提高设计品质: 提高代码质量,提高代码的可复用性,减低开发时间和成本,缩短调试时问,与 设计完全吻合( 如果设计更改,程序代码保持一致) 。这是一种充分的、能够完全被 理解的系统设计方法,因为开发者的想法被自动地实现,在集成到目标设备之前 允许在一台主机上进行仿真,验证更加规范和全面【1 3 】。 作为一种软件开发方式,代码自动生成技术还在不断的发展中,越来越多的 系统开发都采用了代码自动生成技术。尽管代码自动生成技术仍然存在着许多的 不足,但在许多方面,代码自动生成技术对软件开发的完善具有重大的促进作用, 并且提高了软件开发的效率。 1 5 论文研究内容及组织结构 本论文
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 如何学建筑方案设计软件
- 楼房施工方案有哪些类型
- 咨询流程方案
- 美国建材营销方案设计
- 旧建筑修缮技术方案设计
- 网络营销合作方案书
- 广东钢结构住宅施工方案
- 预算管理实施咨询方案
- 家园2级建筑方案设计
- 咨询顾问能力评测方案
- GB/T 24720-2009交通锥
- GB/T 15065-2009电线电缆用黑色聚乙烯塑料
- Frenchay构音障碍评定
- 陈嘉庚生平介绍(中文+英文版)
- 建筑装饰施工技术-轻质隔墙工程施工课件(-)
- DB21T 3354-2020 辽宁省绿色建筑设计标准
- 我和我的祖国课件
- 语言领域核心经验《学前儿童语言学习与发展核心经验》
- 肉制品加工技术完整版ppt课件全套教程(最新)
- 《基因组学》课程教学大纲(本科)
- GB∕T 11032-2020 交流无间隙金属氧化物避雷器
评论
0/150
提交评论