第九周会议:
验收
-
Demo集成测试
已完成。额外工作:附着完成。
-
普通富文本框、说明书
单元测试完成,但未完成集成。
-
需求分析和需求规格说明书
大部分完成。缺少旋转、对齐。
-
后端驱动模块、技术文档
完成。
-
核心框架情况、技术文档
尚未完成目标,仍在完善。
重点讨论内容
(需求:来自需求描述和规格说明书,设计约束明确前后端边界:前端发起、前端SVG只读、后端SVG只写)
-
事件系统(已经遇到的问题:响应速度;可能遇到的问题:坐标系)
-
附着和附着点(已部分完成)
-
对齐(点对齐:网格对齐、线条对齐、附着点对齐;组件对齐:网格对齐、轴线对齐)
-
通用性(重点是逻辑关系和实际关系的区分)
-
与前端交叉内容的明确
-
布局(位置、旋转、改变大小)
思路一:布局位置与旋转由前端实现,布局围绕着BoundingBox。位置是BoundingBox左上角位置、旋转是相对BoundingBox中心的旋转。前端需要利用BBox和矩阵进行坐标系变换,计算得到画布坐标系点坐标在组件坐标系上的位置。改变大小需要与后端共同完成,后端须等比例变换关键点位置。
思路二:完全由后端实现,布局围绕后端的非精确的计算数据。位置是某个后端维护的点、旋转是相对某个计算中心的旋转。后端利用核心提供的坐标系变换实现,组件分为两层,一层是内部使用组件坐标系维护,另一层是对外可见使用画布坐标系维护。
(最后选择思路二)
-
分组(创建矩形分组框)
关于坐标系问题和布局相关。
关于创建,只能前端创建;维护只能后端维护。
(由前端计算得到矩形框,后端提供维护;分组在逻辑上是树形关系,但组件是序列关系)
-
附着和锚点~~(已明确)~~
附着和锚点通过七个基本图形元素内部属性计算得到;前端完全维护附着关系。附着的响应由后端完成,等价于移动关键点。
### 新问题
-
性能问题
集成测试中断开电源时响应非常慢。猜想:事件响应问题、socket问题。
-
对齐
需求分析中没有涉及对齐。明确了对齐为前端工作。
-
文本框集成测试
没有创建与之对应的组件,造成搁置。
计划及调整
(所有开发上的完成,表示经过单元测试和模拟集成测试;文档上的完成,表示被公开、被审阅、被接受)
1. 第十周
- 前端根据需求描述和规格文档,尤其通过规格中的事件流,完成事件系统。编写对应的技术文档。
- 前端进行对齐、附着的开发与完善。
- 后端完成组件通用框架(面向对象,包括组件、逻辑关系等);随之定义接口(面向函数);完成文档。
- 前端基于接口,引入事件系统。(包括样式)
- 核心部分完成主要核心。(全部的属性、部分的SVG元素,并完成测试)
- 后端利用框架,完成矩形组件、类矩形组件;线形组件视情况。
- 文本框完成集成测试,引入Latex解决方案。
2. 第十一周
-
后端完成线形组件。(其余时间实现和测试自定义组件)
-
前端完成解释器,开始通信测试。
-
前后端进行基于矩形的集成测试。(测试内容:对齐、附着、还有Demo中包含的基本功能。测试相关方:全体。)
-
核心部分完成核心。
-
Markdown文本框。
3. 第十二周
主要工作收尾,进行修复和优化阶段。届时完成其他外围功能;并增加组件。
4. 第十三周
第十二周的延续,整理文档。适时添加新功能。