CAD交互行为模型实现与组织_第1页
CAD交互行为模型实现与组织_第2页
CAD交互行为模型实现与组织_第3页
CAD交互行为模型实现与组织_第4页
CAD交互行为模型实现与组织_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、CAD交互行为模型实现与组织摘要:通过对CAD交互行为研究,描述了该类行为的形式化模型,并基于软件工程思想给出了该模型的统一方法及其组织设计方法。关键词:交互;行为模型;软件工程中图分类号:TP391.72文献标识码:A文章编号:1007-9599(2010)14-0000-02CADInteractionsModel,AchieveandOrganizationWuZhinan(JiangxiYichunUniversity,Yichun336000,China)Abstract:TheinteractionsofCADresearch,describestheformalmodelofsu

2、chbehaviorandthoughtsonsoftwareengineeringofthemodelgiventheirorganizationsunifiedmethoddesign.Keywords:Interactive;Behaviormodel;Softwareengineering一、引言CAD类系统是一类同用户交互密集的图形应用系统。它的强交互性是软件设计成败的重要指标之一。目前对人机交互界面的宏观模型较多,而因各个软件交互行为存在较大的差异,对微观用户行为难以形成统一的行为描述,本文通过研究CAD类软件用户交互行为的特点出发,从微观角度给出了单个具体交互行为统一模型,并结合

3、设计模式给出具体实现方法,并结合软件工程思想,给出行为集的组织方法。二、CAD交互行为模型CAD软件系统一般都提供的较多的图形操作功能,且大多步骤多且连续,例如画线、画圆,放样等功能,每个功能包含多个过程,如三点绘制圆弧就包括“开始、取圆弧始点、取圆弧终点、拖曳、取圆弧中点,确定绘制圆弧、结束”等多个状态,每一状态都由前一状态转换而来,每个状态还可接受取消等操作。由此可见,CAD的用户交互行为大多是由一个多个微操作的组成过程,该操作满足偏序关系,每个操作过程都是基于当前状态,每个用户交互过程就是由初始状态向终止状态的状态转换过程,该过程包含若干中间状态转换,每一个当前状态随着操作不同转换到下一

4、个状态,且该转换是确定的。由此可见,CAD的交互行为很适合确定有限状态机来描述,但其由于事件响应对状态表现力不够,这里结合王云鹏在其博士论文提出的执行机的概念,对传统的有限状态进行改进,对CAD系统的每一个软件交互行为用以下六元组模型进行描述:EM=(Q,M,MH,q0,F,SH)对各元素含义描述如下:1 .Q是有限状态集。2 .M系统接收的消息集合,在任何一个确定的时候,只能接收一个消息。3 .MH是M相应的有限消息处理函数的集合,它与消息集合一一对应,主要完成状态的转变,相当于状态迁移函数。4 .q0初始态,其包含于Q。5 .F是终止状态,F包含于Q。6.SH是状态处理函数集,负责状态处理

5、时需处理的功能操作,是状态转变的时发生的操作行为集合。自动机从初始状态q0起,进入消息循环状态,准备接收消息。当接到某一消息时,根据当前状态、当前消息和转移函数H决定自动机的下一步状态;如果自动机处于终结状态集合F的某一个状态,这表示该功能已经完成或取消。三、设计与实现由以上分析可知,一个完整的CAD行为自动机应包括完整的六个部分:有限状态集、消息集、消息响应集函数、初始状态,终止状态集、状态处理函数集。因此一个状态机的实现其实就是如何将状态机各组成元素封装和处理的过程。在实际的软件设计过程中,可用状态模式来实现。这里就以三点圆弧绘制为例,其状态机的形式化描述如下:ArcOpEM=(Q,M,M

6、H,q0,F,SH)其中各元素的定义如下:有限状态集:Q=S_STAR,TS_GETFIRST,PST_GETENDP,TS_DRAG,S_END,S_CANCEL;消息集:M=WM_KEYDOWN,WM_LBUTTONDOWN,WM_ONMOUSEMOVE;消息响应处理函数集:MH=OnLButtonDown(),OnKeyDown(),OnMouseMove();初始状态:q0=S_START;终止状态集:F=S_END,S_CANCEL;状态处理函数集:SH=DoGetFirstP(t),DoGetEndP(t),DoEnd(),DoMove(),DoCance()l;采用状态模式来实现

7、,其状态机实现的解决方案如图1所示:从上图可以该方案结构可以看出,主要分为两大模块。一是CArcOperation,一是CState其中CArcOperation主要负责拥有该事件的公有的事件响应方法以及关于动作的受保护的状态处理方法,它主要负责状态机的结构的实现以在某状态要实现的功能,并不管理在某状态下的状态转移关系。而CState类的各派生类则代表该状态机的各个状态类,该状态类是一些没有属性的纯方法类,只提供状态的逻辑处理操作,负责本状下状态的迁移逻辑。四、行为集的组织CAD软件通常有很多操作行为,从以上可知,我们把各种行为操作抽象成统一的行为模型,但在调用每个行为操作时,每个操作类的生成

8、必须知道具体的操作类,如当选择绘制圆弧菜单或工具栏时,其中实现必定有如下语句:CarcOperation*pOp=newCarcOperation();CarcOperation是一个具体类,这说明在框架中必须依赖于某个具体操作类,这使得程序易受具体类的变化的影响,不容易扩展和维护。根据设计模式中的依赖倒置的原则,我们应当依赖于一个抽象接口,从而得以避免大多数的变化。可以用工厂(FACTOR)Y模式来解决这个问题。工厂模式主要思路是,提供一个创建一系列相关或相互依赖的接口负责整个操作类的集中生成,而无需指定它们具体的类。这样以来我们只依赖于该接口,应用程序类只需调用该接口数就可达到生成新的操作

9、对象的功能,从而使应用程序框架得以与具体类相脱离。在这种方式下的操作类的组织与类图如下:在上图中的COperationFactor1中有一个函数Cretate,其C+例型为:COperationFactorCOperationCretate(OpertationIDoperID);Cretate其实现为:COperationCoperationFacto:r:Cretate(OpertationIDoperID);If(operID=ArcOperation)returnnewCarcOperation();If(operID=LineOperation)returnnewCLineOpera

10、tion();If(operID=MoveOperation)returnnewCMoveOperation();If(operID=RotateOperation)returnnewCRotateOperation();其在主程序调用可为:VoidCNapView:OnArc()COPerations=factory.Creat(eArcOperation);至此,CAD的软件行为模型实现和组织得到较好的设计,使可使界面事件调用接口与具体行为功能解藕,达到较好模块分解效果。五、结束语虽然CAD系统功能繁多,软件开发的工作量大,但每个功能通常有共同的操作如拾取、智能捕捉,且每个具体操作响应的消息、状态都具有很大的相似性,采用状态机理论模型的形式并结面向对象设计方法、设计模式可使软件结构更加清晰,简化了开发,使系统更易扩充,提高了可维护性,其分析和设计可为类似软件开发提供有益的借鉴。参考文献:1刁成嘉.UML系统建模与设计M.北

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论