IT项目管理详细设计文档.doc
《IT项目管理详细设计文档.doc》由会员分享,可在线阅读,更多相关《IT项目管理详细设计文档.doc(15页珍藏版)》请在冰豆网上搜索。
![IT项目管理详细设计文档.doc](https://file1.bdocx.com/fileroot1/2022-10/7/96888919-6652-4aaa-ad1d-4bbb080034d2/96888919-6652-4aaa-ad1d-4bbb080034d21.gif)
SmartGeometry
详细设计说明书
ITProjectManagement
SCUT
Copyright
1概述
1.1系统简述
由于目前的主流电子课件系统,无法满足教师在课堂教学互动中需要与用户界面自然、高效、连续性交互的要求。
我们准备用我们的实际行动来试图改变这一现状,本项目拟实现一个能在ipad上运行的智能几何教育平台,其功能包括草图识别,手势识别,动态几何约束等。
由于时间有限,动态几何约束求解与动态几何可视化这部分的功能暂不准备实现。
非功能性的需求有系统出错处理及易操作性。
1.2软件设计目标
本项目系统概要设计说明书是基于SmartGeometry智能几何教育平台需求分析书进行编写的。
该项目将以笔代替鼠标键盘,能够连续添加笔迹批注,勾画并识别几何草图,用笔手势操纵界面元素。
本概要设计同时也是为详细设计及后续开发,提供指导作用。
预期的读者:
详细设计人员
开发人员
测试人员
用户
1.3参考资料
《ipad开发应用实战》,《iphone4与ipad开发基础教程》,《Objective-c基础教程》,《ipad开发基础教程》,《ipad应用开发实例》。
2术语表
本文档所涉及到的属于包含如下:
1、Stroke:
笔迹,用户一次落笔提笔
2、Pen_Info:
预处理
3、Graph:
图形类
4、Guint:
图元类
5、Graph_Edit:
图形编辑类
6、Constraint:
图形与图形之间的约束,一个图形拥有多个约束,由约束的类型来标识。
7、特征点:
用于划分图元的点,比如三角形的顶点。
8、点集:
一系列点的集合
9、图元:
组成图形的最小单位,比如三角形的边。
10、双线程:
当开始录制视频时,创建新的线程进行录制操作。
11、切割:
通过特征点来划分点集属于的图元类型。
12、拟合:
将被划分好的图元计算出最能代表该点集的方程表达式。
3用例
上图表明使用本系统的用户需要打开软件系统,就能使用系统,用户输入图形进行草图识别,并可以对识别出来的图形进行清空、保存等功能。
用例描述
序号
用例编号
用例名称
简单描述
1
UC_01
graph-input
用户进行草图输入
2
UC_02
graph-save
用户对识别出来的图形进行保存
3
UC_03
graph-load
用户读取已经保存的图形
4
UC_04
graph-delete
用户对识别出来的图形进行清空删除
5
UC_05
graph-adjust
用户对已绘制的图形进行调整
6
UC_06
graph-handle
对输入的草图进行的一系列处理过程
7
UC_07
pre-handle
系统对输入的草图进行预处理
8
UC_08
graph-cut
系统根据特征点进行图元的分割
9
UC_09
graph-recognization
系统对分割出来的图元进行识别
10
UC_10
graph-rebuild
系统根据划分出来的图元进行图形的重组
11
UC_11
graph-reshape
系统对重组出来的图形进行规整
12
UC_12
graph-constraint
系统对已有图形保持几何约束
13
UC_13
graph-output
系统输出一系列图形处理步骤后产生的图形
4设计概述
4.1简述
本系统主要采用面向对象设计、主机的结构模式进行开发,利用数学的几何知识进行求解问题。
4.2系统非功能描述、约束与估算
4.2.1系统非功能描述和约束如下表
任何一台具有一定的内存、无问题的CPU、一定的数据存储量的可使用的iPad即可。
4.2.2估算
暂无问题。
4.3系统的复用计划
库、框架、模式、构件等方面的复用暂不考虑。
4.4系统结构设计
4.4.1系统边界模型
1.可有效识别出基本图形,比如直线,三角形,圆形等。
2.同时具有实时调整图形的功能。
3.提供保存和重新载入功能。
4.提供录音和录频的功能。
5.提供笔形,笔色,背景色选择功能。
6.提供坐标系坐标功能。
4.4.2系统功能架构
1、智能几何(smartgeometry)系统技术框架主要包括七部分:
笔交互信息收集,用户意图判断器,笔迹识别,图形选定,编辑,存储。
2、笔交互信息收集:
负责从外部硬件环境中获取最初的点集信息(Pen_Info),并对收集到的点集信息进行早期的预处理,包括平滑和消除躁点处理,最后得到经过预处理以后的点集信息信息,被称为笔迹(Stroke)。
3、笔迹识别:
分别对图元或者手势进行识别:
<1>对图元的识别包括先对笔迹(Stroke)进行分割,产生一系列图元对象(Gunit)集合,并对其识别和重构,最终得到图形对象(Graph),其中图元对(Gunit)包括点图元(Point_Unit),直线图元(Line_Unit),曲线图元(Curve_Unit),图形对象(Graph)是由多个图元(Gunit)对象构成,包括点图形(Point_Graph),直线图形(Line_Graph),曲线图形(Curve_Graph)(圆,椭圆或者弧),三角形(Triangle_Graph),四边形(Rectangle_Graph),和特殊图形(Other_Graph)。
<2>对手势的识别包括从专家库中获取判断手势意图的规则,最后识别出手势的意图。
4、图形选定:
负责对存在约束的图形几何的选定,主要通过图形探查器对图形进行选定操作,选定的图形被称为Selected_Obj。
5、编辑:
用户进入编辑态时,可以对选定图形进行缩放,变形,移动,旋转四种编辑。
6、存储:
对用户操作完后的图形进行存储。
4.4.3系统的逻辑架构
笔交互信息收集转换器:
负责从外部硬件环境中获取最初的点集信息Pen_Info,并对Pen_Info进行早期预处理,包括平滑和消噪处理,最后得到经过预处理以后的点集信息,被称为笔迹Stroke。
用户意图判断器:
负责从笔迹Stroke中判断用户意图,用户意图包括画图意图Sketch和手势意图Gesture。
识别器:
分别对图元和手势进行识别:
对图元的识别包括先对笔迹Stroke进行分割,产生一系列图元对象Gunit集合,并对其识别和重构,最终得到图形对象Graph,其中图元对象Gunit包括点图元Point_Unit、直线图元Line_Unit、曲线图元Curve_Unit,图形对象Graph是由多个图元Gunit对象构成,包括点图形Point_Graph、直线图形Line_Graph、曲线图形(圆、椭圆或者弧)Curve_Graph、三角形Triangle_Graph、四边形Rectangle_Graph、和非特殊图形Other_Graph;对手势的识别包括从专家库中获取判断手势意图的规则,最后识别出手势的意图。
图形选定器:
负责对存在约束的图形几何的选定,主要通过图形探查器对图形进行选定操作,选定的图形被称为Selected_Obj,跟当前选中图形Selected_Obj存在约束的图形将通过约束探查器查找几何约束表来一起选定,一起选定的图形被放在一个链表里,该链表被称为Selected_Graph_List。
动态几何约束器:
负责对存在约束的几何图形之间进行编辑操作时候的动态约束保持,核心模块为动态几何处理器,将存在几何约束的选中图形的集合Selected_Graph_List作为输入,可对改集合里面的图形进行旋转、平移、缩放和拖动顶点等编辑操作,用户进行编辑操作的时候,图形与图形之间的几何约束关系将得到动态保持。
存储转换器:
负责将图形的性质和图形跟其他图形之间的动态关系存储下来。
绘图器:
负责图形和图形之间几何约束关系的表示以及其他特殊类型图形标识的绘制,其中每个图形可用用户自定义的画笔进行绘制,且图形与图形之间的几何约束和特殊类型图形的标识都采取常见的标识。
4.4.4系统的物理架构
系统的运行环境:
iOS操作系统(4.3及以上)
开发环境:
MacOSXLion操作系统,Xcode
4.4.5系统数据模型
编号
名称
说明
1
Point
由两个整形组成,记录点的坐标
2
Vector
链表,用于记录数据类型为T的一系列数据
3
Gunit
图元类,有一个List数据成员,表示该图元的点信息
4
Constrain
用于记录图形与图形的约束,由约束的类型和与其相关联的图形的指针
5
Line_unit
直线图元类,是Gunit的子类,拥有Point类型的数据成员,分别表示直线的起点和终点,这条直线和效率的截距
6
Curve_unit
二次曲线类,是Gunit的子类,拥有6个double类型的参数,分别是二次曲线方称Ax2+Bxy+Cy2+Dx+Ey+F=0
7
Graph
图形类,并具有一个vector的约束列表记录与该图形有关的约束
8
Line_Graph
包含一个line_unit,图形类的子类
9
Curve_Graph
曲线图形,包含一个curve_unit,图形类的子类
10
Triangle_Graph
包含三个line_graph,用于直线的约束,也拥有三角形的约束
11
Rectangle_Graph
包含四条直线
12
Other_Graph
存储非二次曲线轨迹
各个类的数据成员都设为Public,可以直接通过点访问。
整个系统分为两部分数据:
图形集和约束集系统使用十字链表来存储图形,通过约束建立图形与图形之间的联系。
在实现动态的约
束保持的时候使用该十字链表,通过遍历有约束的图形从而得到一起变化的图形。
4.5系统的接口设计
4.5.1用户接口
基于笔交互的概念整个界面与传统GUI界面设计风格不同,本系统将提供一个简洁的界面,只需要使用手指就可以轻松地进行操作。
在草图绘制勾画区域,落笔可以进行相应的草图绘制
1、点击Penstyle图标就可以进行笔形的选择
2、点击PenColor图标可以进行笔色选择
3、点击Record图标再在里面选择开始,暂停,终止进行录制或者暂停终止等操作
4、点击save图标,进行存储操作
5、点击Open图标,选择需要打开的文件则可以重新载入原本的文件
6、点击clear图标,就可以清除掉画板上的所有图形
7、点击chart图标,可以坐标及坐标系
8、点击Minimum图标,就可以将程序最小化
9、点击Exit图标,就可以退出该运行程序
4.5.2外部接口
无
4.5.3内部接口
说明本系统之内的各个系统元素之间的接口的安排。
编号
作用
函数原型
1
预处理
vectorPen_Info:
:
getNewPen_Info()
2
特征点识别
voidCut(vectorpList,vectorgList)
3
图元分割
GUnit*GUnit:
:
recognize(vector&pList)
4
图元重组
boolStroke:
:
rebuild(vector&real,vector&special)
5