《基于UML和形式化方法的面向方面实时系统模型》-毕业论文(设计).doc

《基于UML和形式化方法的面向方面实时系统模型》-毕业论文(设计).doc

  1. 1、本文档共105页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
广东工业大学工学硕士学位论文 基于UML和形式化方法的面向方面 实时系统模型 A Dissertation Submitted to Guangdong University of Technology for the Degree of Master Aspect-Oriented Model for Real-Time systems Based on UML and Formal Methods Master Candidate: Liu Ruicheng Supervisor: Prof. Zhang Lichen May 2006 Computer Faculty Guangdong University of Technology Guangzhou, Guangdong, P.R.China, 510090 摘要 关注分离在软件工程上是一种广泛应用的原理,认为难于理解的复杂问题应该被划分为一系列容易理解的简单问题,并且能够容易解决和集成到原处,从而解决原来复杂的问题。由于问题被分解为人容易理解的小单元,而且适合于各种需求的变化,因此这种方式开发软件能够给程序带来更好的可理解性、维护性、适应性和重用性。 实时系统已经广泛应用于各个领域,但是实时系统具有很多非功能需求(例如实时性),且这些非功能需求往往横切整个系统模块,引起代码混乱和代码分散等问题,导致系统难于设计、重用和维护,严重影响系统的性能。 面向方面编程作为一种基于关注分离的新软件开发范例,能够通过引入实现横切关注点的方面来获得更高的功能性和非功能性关注点的分离,而且系统不同的方面能够进行单独的设计,并织入系统。它不仅能够解决面向对象编程在设计横切关注点时陷入的“应该设计不足还是宁可过分设计”的两难境地,还能够很好的解决上述遇到的问题。 目前面向方面编程的实现语言已经不少,例如AspectJ等,但仍然没有适用面向方面程序设计的建模语言。因此,我们利用UML和形式化方法来表达面向方面程序,并建立相应的面向方面软件设计模型来设计实时系统。 本文分析介绍了实时系统、面向方面软件设计以及UML等技术;总结了UML建模实时系统现有的方法;论述了扩展UML建立的时间模型;提出一种新的基于UML的面向方面软件设计模型(AOSDM-UML),通过扩展UML表达AOP的相关概念,在UML的元模型层次上设计AOSD的模型框架,从结构模型、行为模型和方面织入等几部分建立面向方面的设计模型,并结合实例说明整个建模过程,即利用UML的类图实现方面的结构模型、方面与核心组件以及方面之间的静态关系,协作图表达方面与核心组件之间的动态行为,最后通过状态图细化系统的动态行为,实现在状态图中表达方面与核心组件以及方面之间的织入关系。接着进一步结合形式化语言RTL对AOSDM-UML进行实时扩展,并通过电梯例子来说明实时系统的建模过程。 为了从形式化方法的角度来设计实时系统,本文根据AOP技术把系统不同的方面利用不同的形式化语言来表示,用LOTOS描述实时系统的功能性方面,而实时方面用随机实时时序逻辑SQTL表达,并通过定义迁移系统LTS和事件调度器利用时间自动机来实现方面的织入。根据分布式实时系统的特性,还进一步提出把时间方面划分为确定的、不确定的和模糊的时间子方面,并且把不同的时间子方面分别利用随机实时时序逻辑(SQTL)和模糊时间Petri网(FTN)来设计,然后各个时间子方面都转化为时间自动机组合到系统中,实现系统的实时特性。 关键词:面向方面编程;面向方面软件开发;实时系统;UML;形式化方法 Abstract Separation of Concerns is a common, widely used principle in software engineering. It suggests that a complex problem that is hard to understand be divided into a series of smaller problems that are less complex and easier to comprehend. These smaller problems may than be solved one at a time and finally may be put back together again to solve the big problem. Developing software this way leads to a greater comprehensibility, maintainability, adaptability, and reusability of programs

您可能关注的文档

文档评论(0)

花好月圆 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档