




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、案例:交互式图形编辑系统案例:交互式图形编辑系统l概要设计概要设计 系系统静态模型统静态模型 系系统动态模型统动态模型l详详细设计细设计 细化的静态模型细化的静态模型 细细化的动态模型化的动态模型静态模型的建立静态模型的建立l确认主要对象(领域对象)确认主要对象(领域对象) 图形编辑器图形编辑器 DiagramEditor 图形图形Diagram 文本、直线、矩形、椭圆文本、直线、矩形、椭圆l抽象出图元抽象出图元Element 图形元素的共性图形元素的共性 一般特殊关系一般特殊关系l图形与图元图形与图元 整体与部分关系整体与部分关系ElementDiagramDiagramEditor新建、浏
2、览新建、浏览创建图元、创建图元、删除、显示删除、显示LineRectangleEllipseText1*+ 类描述字典(属性、方法)类描述字典(属性、方法)1*l按照使用案例,采用按照使用案例,采用UML序列图、协作序列图、协作图或动作图,通过各个对象中间的交互图或动作图,通过各个对象中间的交互过程,描述各个使用案例的工作过程。过程,描述各个使用案例的工作过程。l例如,交互式图形编辑系统中例如,交互式图形编辑系统中 图形创建的用例图形创建的用例 图形编辑的用例图形编辑的用例 。l按照用例,分析创建图形的过程按照用例,分析创建图形的过程图形编辑器图形编辑器用户用户要求创建要求创建新建新建选建矩形
3、选建矩形新建新建图形图形选择位置选择位置新建新建r: 矩形矩形t: 文本文本加图元加图元r选择终点选择终点加图元加图元t输入内容输入内容选择起点选择起点选建文本选建文本l按照用例,分析编辑图形的过程按照用例,分析编辑图形的过程用户用户图形编辑器图形编辑器选择图形选择图形图形图形选择直线选择直线选择选择l: 直线直线t: 文本文本return l显示显示选择端点选择端点选择点选择点return true拖动拖动修改修改选择选择选择文本选择文本return t选择内容选择内容输入文本输入文本修改修改l图形编辑器图形编辑器 交互丰富,功能复杂交互丰富,功能复杂 不同状态下,操作响应不同不同状态下,操
4、作响应不同 适于采用状态机来模拟适于采用状态机来模拟l编辑状态的分析编辑状态的分析 初始状态:初始状态: 创建图元状态:等待图元位置的输入创建图元状态:等待图元位置的输入 选中图元状态:显示图形、当前图元选中图元状态:显示图形、当前图元 修改图元状态:正在编辑当前图元的内容修改图元状态:正在编辑当前图元的内容l消息消息=输入命令输入命令 决定了编辑状态如何改变决定了编辑状态如何改变l输入命令的分析输入命令的分析 新建:新建: 显示空图形,进入初始状态显示空图形,进入初始状态 浏览:浏览: 显示指定的图形,进入初始状态显示指定的图形,进入初始状态 选择图元:选择图元: 鼠标点击,进入选中图元状态
5、鼠标点击,进入选中图元状态 修改图元:修改图元: 拖动控制点(或编辑文本)拖动控制点(或编辑文本) 创建各种图元:创建各种图元:进入创建图元状态,等待进入创建图元状态,等待输入新输入新图元位置、内容图元位置、内容选中图元选中图元状态状态创建图元创建图元状态状态修改图元修改图元状态状态创建图元创建图元创建图元创建图元拖动拖动点选图元点选图元选择控制点选择控制点输入位置输入位置和内容和内容拖动或输入拖动或输入初始初始状态状态点选图元点选图元创建图元创建图元l类名:类名:DiagramEditorl对象关联:对象关联: 图形集合、当前图形、当前图元图形集合、当前图形、当前图元l方法:方法: 各种控制
6、命令:各种控制命令: 图形的浏览、创建、删除图形的浏览、创建、删除 各种图元的创建、删除各种图元的创建、删除 鼠标操作鼠标操作 显示(图形、图元)显示(图形、图元)l目标:定义系统的结构目标:定义系统的结构 描述一组对象类描述一组对象类l使用案例图的欠缺使用案例图的欠缺 对象可能动态创建和撤消对象可能动态创建和撤消 对象连接可能动态建立对象连接可能动态建立l系统构造的需求系统构造的需求 从变化的模型中抽象出静态结构从变化的模型中抽象出静态结构l交互过程交互过程 多种图元的创建和编辑(状态太多)多种图元的创建和编辑(状态太多) 交互过程过于复杂,如何分解交互过程过于复杂,如何分解l解决方法解决方
7、法 对于不同的编辑过程,委托不同对象来处理对于不同的编辑过程,委托不同对象来处理 分解状态图为几个子图,用不同对象实现分解状态图为几个子图,用不同对象实现 设置多种工具类,承担不同的编辑任务设置多种工具类,承担不同的编辑任务l设置工具类控制不同的编辑过程设置工具类控制不同的编辑过程 新建图元:新建图元: CreateTool 直线直线 LineTool控制直线的创建控制直线的创建 矩形矩形 RectangleTool控制矩形的创建控制矩形的创建 椭圆椭圆 EllipseTool控制椭圆的创建控制椭圆的创建 文本文本 TextTool控制文本的创建控制文本的创建 修改图形:修改图形: EditT
8、ool 控制修改操作控制修改操作 菜单选择菜单选择 由由 DialogEditor 控制控制EditToolCreateToolLineToolRectangleToolTextToolEllipseToolDialogEditormenu(item)press(pos)move(pos)release(pos)Diagram* dlgs Diagram dToolpress(pos)move(pos)release(pos)Diagram dl按照细化的静态模型按照细化的静态模型 包括各种工具类的模型包括各种工具类的模型l细化各种使用案例的细化各种使用案例的UML描述描述 基于各种工具类的编
9、辑过程,如:基于各种工具类的编辑过程,如: 图形创建、编辑过程图形创建、编辑过程 各种图元的创建过程各种图元的创建过程创建图形创建图形用户用户编辑系统编辑系统1.选选“新建新建”2.选选“新建直线新建直线”3.选选“新建矩形新建矩形”4.选选“新建文本新建文本”1.创建空图创建空图2.创建直线创建直线3.创建矩形创建矩形4.创建文本创建文本创建矩形创建矩形用户用户编辑系统编辑系统1.点选左上角点选左上角2.释放右下角释放右下角1.记录记录2.创建矩形创建矩形创建文本创建文本用户用户编辑系统编辑系统1.点选位置点选位置2.输入内容输入内容1.记录记录2.创建文本创建文本e:DiagramEdit
10、ord:Diagram新建新建Diagram( )t:RectangleTool创建矩形创建矩形RectangleTool(e)select(d):RectangleToolr:Rectangle move(pos) press(start)Rectangle(start,stop)release(stop)d:Diagramadd( r ) move(pos) drawline(start, pos)endCreate( ):DiagramEditor:DiagramEditor:RectangleTool:Diagram:Rectangle1*edit compose ofTool:Tex
11、tToold:Diagramr:Text1:move(pos)2.1:Text(start)2.2:input(r)2:press(start)3:press(pos)3.1:add(r):DiagramEditor3.2:endCreate( )编辑图形编辑图形用户用户编辑系统编辑系统1.选择图形选择图形2.选择矩形选择矩形3.移动矩形移动矩形4.选择直线选择直线5.选择文本选择文本1.显示图形显示图形2.高显矩形高显矩形3.修改位置修改位置4.编辑直线编辑直线5.编辑文本编辑文本编辑直线编辑直线用户用户编辑系统编辑系统1.点选直线点选直线2.点选端点点选端点3.拖动拖动1.高亮度图元高亮度
12、图元2.指示点指示点3.修改点位置修改点位置编辑文本编辑文本用户用户编辑系统编辑系统1.点选文本点选文本2.点选内容点选内容3.输入文本输入文本1.高亮度图元高亮度图元2.指示输入位置指示输入位置3.显示文本显示文本 press(pos) find(pos)d:Diagrammove(pos) next( )r:Rectangle contains(pos)return truereturn r :EditTool move(pos) release(pos ):DiagramEditorredraw( )highlight( r )select(d) press(pos)d:Diagramh
13、ighlight(r) move(pos)r:Line findControl(pos)return true:EditTool move(pos) release(pos) press(pos) find(pos) contains(pos)return truereturn r moveControl(pos):DiagramEditorfocus(r,pos) release( )redraw()moveControl(pos)redraw()l目标:目标: 详细描述对象的动态性质详细描述对象的动态性质l交互图的欠缺交互图的欠缺 基于个别事件,约束条件的表示不明确基于个别事件,约束条件的
14、表示不明确l约束条件约束条件 消息接收顺序消息接收顺序 基于自身状态(历史)的消息响应基于自身状态(历史)的消息响应l可采用的方法可采用的方法 状态图、动作图状态图、动作图定位定位调整大小调整大小move/move selected elementmovequitpresson element move/drag control point移动移动出错出错movepressno elementreleasereleasereleasepresson control elementl采用对象类图采用对象类图 Class diagram 描述描述 扩展系统分析产生的静态模型扩展系统分析产生的静态模
15、型l从使用方法中抽象出一般特殊关系从使用方法中抽象出一般特殊关系 从从LineTool、TextTool等命令类抽象出等命令类抽象出CreateTool 从从CreateTool、EditTool抽象出抽象出Tooll从消息关系分析对象关联从消息关系分析对象关联 发送者必须能够访问到接收者发送者必须能够访问到接收者 从从Tool访问访问Diagram、 DiagramEditor 和和 Tool 的互相访问的互相访问CreateToolRectangleToolLineToolEllipseToolElementRectangleLineEllipseDiagram1*0.11多重性多重性mu
16、ltiplicity类的继承类的继承依赖关系依赖关系实例化实例化DiagramElementToolCreateToolEditTool0.11selected0.111*l属性属性 对象自身的属性,如:图元位置对象自身的属性,如:图元位置 对象的状态,如:当前选中图元、鼠标按下状态对象的状态,如:当前选中图元、鼠标按下状态l方法方法 交互图中的消息响应交互图中的消息响应 对象关联的访问、属性的访问对象关联的访问、属性的访问 方法参数:依赖关系的对象标识方法参数:依赖关系的对象标识l基类方法基类方法 描述派生类的通用方法、通用算法描述派生类的通用方法、通用算法开始定位开始定位停止定位停止定位m
17、ove/update imagemovepressrelease/add element适用于LineTool、RetangleTool 和 EllipseToolltemplate methodCreateToolpress(pos)move(pos)release(pos)create()update()LineToolcreate()update()RectangleToolcreate()update()EllipseToolcreate()update()TextToolpress(pos)move(pos)release(pos)Toold : Diagramdlg : Diagr
18、amEditorpress(Point)move(Point)release(Point)select(Diagram)DiagramEditord : Diagramds : Diagram * tool : Toolmenu(item)move(Point)press(Point)release(Point)redraw( )highlight(Element)focus(Element,pos)endCreate( )Diagramelems * : Elementadd(Element)find(pos) : Elementremove(Element)Element position* : Pointcontains(Point): BoolfindControl(Point) :Boolmove(Point)moveControl(Point)l类名:类名:Element 说明:表示一般的图元说明:表示一般的图元l对象关联对象关联 派生矩形、线、椭圆、文本框等各种图元派生矩形、线、椭圆、文本框等各种图元l属性:属性: Point * : Position组成图元的点集合组成图元的点集合l行为:行为: contains(Point) : Bo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 供货分销合同样本样本
- 冰淇淋套餐转让合同样本
- 当月生产计划的有效制定
- ups设备销售合同标准文本
- 2025简易借款合同范本
- 农村供水委托运营合同样本
- 农户养殖种植合同范例
- 关于员工劳动合同范例
- 出口家具订购合同样本
- 2025铁路运输合同简易协议书
- 施耐德电气EcoStruxure:智能电网技术教程.Tex.header
- 5维11步引导式学习地图-人才研修院
- 配电线路工(中级)技能鉴定理论考试题库(浓缩400题)
- 2024年重庆市中考英语试卷真题B卷(含标准答案及解析)+听力音频
- (正式版)QB∕T 2761-2024 室内空气净化产品净化效果测定方法
- DL-T-5161.4-2018电气装置安装工程质量检验及评定规程第4部分:母线装置施工质量检验
- CJJ 232-2016 建筑同层排水工程技术规程
- 三菱PLC应用技术培训(讲稿)第一部分
- 医院感染管理与公共卫生培训
- 中国大学mooc《高级财务会计(暨南大学) 》章节测试答案
- 第7课 全球航路的开辟和欧洲早期殖民扩张(教学课件)-【中职专用】《世界历史》(高教版2023•基础模块)
评论
0/150
提交评论