详细设计说明书(GB8567——88)基于协同的在线表格forture-sheet

详细设计说明书

1引言

1.1编写目的

该文档在概要设计的基础上,进一步的细化系统结构,展示了软件结构的图标,物理设计、数据结构设计、及算法设计、详细的介绍了系统各个模块是如何实现的,包括涉及到的算法,逻辑流程等。

预期的读者:程序员

1.2背景

  1. 待开发系统的名称:基于协同的在线表格
  2. 本项目的任务提出者:老师引导下小组成员共同讨论的结果;
  3. 开发者:**
  4. 用户:使用Excel表用户
  5. 安装软件:WebStorm、MongoDB

1.3定义

系统结构:对系统整体布局的宏观的描述
算法:对于程序内部流程计算的逻辑表达方式。

1.4参考资料

可行性研究报告、项目开发计划、软件需求分析、概要设计说明书

《软件工程概述》 李存珠编著 南京大学计算机系出版 2001年8月

《软件工程事务》刘学俊 李继芳 刘汉中 编著 浙江大学出版社

《软件工程》齐治昌 谭庆平 宁洪 高等教育出版社 1997年第一版

《实用软件工程》郑人杰 殷人昆 陶永雷 清华大学出版 1997年第二版

2程序系统的结构

详细设计说明书(GB8567——88)基于协同的在线表格forture-sheet

3程序1(标识符)设计说明

从本章开始,逐个地给出各个层次中的每个程序的设计考虑。以下给出的提纲是针对一般情况的。对于一个具体的模块,尤其是层次比较低的模块或子程序,其很多条目的内容往往与它所隶属的上一层 模块的对应条目的内容相同,在这种情况下,只要简单地说明这一点即可。

3.1程序描述

每当用户在表格上做操作,一个Op列表会通过onOp回调发出。Op描述了如何从当前数据修改为用户操作后的新数据的步骤。例如,当用户在A2单元格上设置了加粗,生成的op如下:

[

{

“op”: “replace”,

“id”: “0”,

“path”: [“data”, 1, 0, “bl”],

“value”: 1

}

]

Op对后端数据修改和同步在线协同数据非常有用。

我们在 backend-demo 目录中展示了一个例子,使用 Express (后端) and MongoDB (数据库) 实现。

通过 node index.js 运行后端服务器,然后访问 Collabration example 即可体验。

3.2功能

详细设计说明书(GB8567——88)基于协同的在线表格forture-sheet

3.3性能

(1)输入精度

软件的输入精度:只保留整数部分
软件的输出精度:只保留整数部分
传输过程中的精度:只保留整数部分

(2)灵活性

运行环境的变化:该软适用于现在流行的操作系统、
精度和有效时限的变化:因不同情况而变化
计划的变化和改进:根据用户的需求随时软件做出更新和升级。

(3)时间特性的要求

相应时间:0.5s内
更新处理时间:0.5s内
数据的更换和传送时间:1s内

3.4输 入 项

名称

标识

数据类型

值示例

属性值

安全保密

单元格值格式

celltype

String

{“fa”:”General”, “t”: “g” }

ct

背景颜色

background

String

fff000

bg

字体

fontfamily

String

微软雅黑

ff

字体颜色

fontcolor

String

fff000

fc

粗体

bold

String

0 常规1 加粗

bl

斜体

italic

String

0 常规1斜体

it

字体大小

fontsize

String

14

fs

删除线

cancelline

String

0 常规 、 1 删除线

cl

下划线

underline

String

0 无 、 1 有

un

垂直对齐

verticaltype

String

0 中间、1 上、2下

vt

水平对齐

horizontaltype

String

0 居中、1 左、2右

ht

合并单元格

mergecell

String

主单元格{ r:0, c:0, rs: 2, cs:2 },辅单元格{ r:0, c:0 }

mc

竖排文字

textrotate

String

3

tr

文字旋转角度

rotatetext

String

介于0~180之间的整数,包含0和180

rt

文本换行

textbeak

String

0 截断、1溢出、2 自动换行

tb

原始值

value

String

v

显示值

monitor

String

m

公式

function

String

f

批注

comment

String

height: 140,//批注框高度

ps

3.5输出项

名称

标识

数据类型

值示例

属性值

安全保密

单元格值格式

celltype

String

{“fa”:”General”, “t”: “g” }

ct

背景颜色

background

String

fff000

bg

字体

fontfamily

String

微软雅黑

ff

字体颜色

fontcolor

String

fff000

fc

粗体

bold

String

0 常规1 加粗

bl

斜体

italic

String

0 常规1斜体

it

字体大小

fontsize

String

14

fs

删除线

cancelline

String

0 常规 、 1 删除线

cl

下划线

underline

String

0 无 、 1 有

un

垂直对齐

verticaltype

String

0 中间、1 上、2下

vt

水平对齐

horizontaltype

String

0 居中、1 左、2右

ht

合并单元格

mergecell

String

主单元格{ r:0, c:0, rs: 2, cs:2 },辅单元格{ r:0, c:0 }

mc

竖排文字

textrotate

String

3

tr

文字旋转角度

rotatetext

String

介于0~180之间的整数,包含0和180

rt

文本换行

textbeak

String

0 截断、1溢出、2 自动换行

tb

原始值

value

String

v

显示值

monitor

String

m

公式

function

String

f

批注

comment

String

height: 140,//批注框高度

ps

3.6算法

“协同”是在线表格最为核心的功能。传统表格软件和网页组件相比,最大的区别就是对协同编辑的支持和协同编辑的体验。因此,我们在开发FortuneSheet时,非常重视这一功能,在项目开始之初的架构阶段就思考好了具体的方案,并在版本更新迭代中优先加入。同时,提供了一个简单的后端demo来实现数据交互、存储。

计算公式:

详细设计说明书(GB8567——88)基于协同的在线表格forture-sheet

计算步骤:

(1)E-step:找到最佳的虚拟变量分布

在这一步,重点是通过已有的相关系数矩阵(虚拟变量和实际变量之间),以及原虚拟变量分布参数,计算出更合适的虚拟变量分布参数。(先计算X的分布概率q,再根据X的分布概率计算虚拟变量分布)

(2)M-step:找到最佳的相关系数矩阵

根据新的虚拟变量分布参数,计算出更合适的最佳相关系数矩阵。

3.7流程逻辑

详细设计说明书(GB8567——88)基于协同的在线表格forture-sheet

3.8接口

详细设计说明书(GB8567——88)基于协同的在线表格forture-sheet

3.9存储分配

名称

标识

数据类型

值示例

属性值

安全保密

单元格值格式

celltype

String

{“fa”:”General”, “t”: “g” }

ct

背景颜色

background

String

fff000

bg

字体

fontfamily

String

微软雅黑

ff

字体颜色

fontcolor

String

fff000

fc

粗体

bold

String

0 常规1 加粗

bl

斜体

italic

String

0 常规1斜体

it

字体大小

fontsize

String

14

fs

删除线

cancelline

String

0 常规 、 1 删除线

cl

下划线

underline

String

0 无 、 1 有

un

垂直对齐

verticaltype

String

0 中间、1 上、2下

vt

水平对齐

horizontaltype

String

0 居中、1 左、2右

ht

合并单元格

mergecell

String

主单元格{ r:0, c:0, rs: 2, cs:2 },辅单元格{ r:0, c:0 }

mc

竖排文字

textrotate

String

3

tr

文字旋转角度

rotatetext

String

介于0~180之间的整数,包含0和180

rt

文本换行

textbeak

String

0 截断、1溢出、2 自动换行

tb

原始值

value

String

v

显示值

monitor

String

m

公式

function

String

f

批注

comment

String

height: 140,//批注框高度

ps

3.10注释设计

(1)在模块首部注释说明模块开始编写时间、编写人员及其基本功能

(2)在变量声明阶段,大概说明变量的类型和用途

(3)在判断、循环或者顺序枝分点上注释说明程序代码的功能

3.11限制条件

(1)电脑环境配置正常

(2)程序正常连接到服务器

(3)懂得相关表格操作要求

(4)协同需要多人同时测试

3.12测试计划

  1. 测试用例:选取有代表性的数据,避免使用穷举法
    (2)测试方法:使用白盒测试法,语句覆盖、判定覆盖、条件覆盖等操作

(3)测试内容:格式设置、行和列操作、公式和函数、分享及写作等等

3.13尚未解决的问题

插入图片 (支持JPG,PNG,SVG的插入、修改和删除,并且随表格的变动而产生变化)

Original: https://blog.csdn.net/qq_45037155/article/details/128410443
Author: 书启秋枫
Title: 详细设计说明书(GB8567——88)基于协同的在线表格forture-sheet

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/795505/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • django中的cookie、session和token

    发展史 1.早期的时候,网站都没有保存用户功能的需求,所有用户访问网站返回的结果都是一样的,比如新闻、文章等网站! 2.但是,随着网站的发展,出现了一些需要保存用户信息的网站,比如…

    Python 2023年11月1日
    039
  • Ubuntu 安装matplotlib

    这里尝试两种方式安装matplotlib: 1) pip3 2)conda Step 1: 使用pip3 安装 matplotlib pip3 install matplotlib…

    Python 2023年8月31日
    055
  • 2021/6/13爬虫第七次周复盘

    一、码代码总结 (码前)页面分析真正理解代码(run前)注意缩进看是否有明显错误(出现BUG)先看URL yieldxpathsettings细节:使用Images Pipelin…

    Python 2023年10月4日
    044
  • 近日关于是scrapy的学习—-day1

    整个框架是简历再twisted异步模型上的 异步:调用在发出后,这个调用直接返回,不管有没有结果 非阻塞:关注的是程序在等待调用结果(消息,返回值)时的状态,指在不能立刻得到结果之…

    Python 2023年10月6日
    052
  • 【深度思考】如何优雅的校验参数?

    在日常的开发工作中,为了保证落库数据的完整性,参数校验绝对是必不可少的一部分,本篇文章就来讲解下在项目中该如何优雅的校验参数。 假设有一个新增学员的接口,一般第一步我们都会先校验学…

    Python 2023年10月11日
    052
  • Python Pytest数据驱动测试DDT

    前言 数据驱动测试是自动化测试非常重要的原则。一般进行接口测试时,一般会考虑正向、逆向等多种组合case,而这些case除了传参和预期不同外,其实并没什么区别。这个时候就可以利用数…

    Python 2023年9月9日
    044
  • python学习笔记(08)—(内置容器-集合、字符串)

    目录 第七章 内置容器(四) 5.集合 (1)概念:集合是一个无序不重复的序列 (2)作用:用于关系测试,消除重复值 (3)集合使用大括号{}框定元素,逗号分割 (4)格式:set…

    Python 2023年9月20日
    088
  • PyQt5 图表 QtChart

    PyQt5 图表 QtChart 安装 PyQt5 与 PyQtChart 安装 PyQt5 与 PyQtChart,PyQtChart 是主要用来呈现数据可视化的包。安装完后记得…

    Python 2023年8月7日
    047
  • 如何评估小红书投放效果?投放完了别偷懒忘了这一步

    品牌方应该如何评估小红书投放效果呢?很多人觉得这个很难,其实我们可以通过数据来判断一下,今天就来教大家通过投放前后的几个数据分析来判断小红书的投放效果,并怎么以此调整策略。 如何评…

    Python 2023年10月8日
    062
  • Kinect 骨骼/人体追踪的python开发环境搭建

    Kinect 骨骼/人体追踪的python开发环境搭建 开发环境:windows10目标设备:Kinect xbox one 安装pycharm 开发环境(略)SDK 下载:htt…

    Python 2023年9月19日
    049
  • 【疫情动态条形图】用Python开发全球疫情排名动态条形图bar_chart_race

    一、开发背景 二、讲解代码 2.1 获取数据 2.2 数据清洗 2.3 可视化开发 三、附完整源码 一、开发背景 你好,我是 @马哥python说 ,这是我用Python开发的全球…

    Python 2023年10月20日
    040
  • 利用Scrapy进行数据爬取

    目录 爬虫框架Scrapy简介 Scrapy爬取步骤 Step1:安装Scrapy Step2:新建项目 Step3:创建爬虫文件 Step4:编写爬虫代码 Step5:运行爬虫项…

    Python 2023年10月2日
    045
  • 用Python写简单游戏的一般步骤

    自己用python写过几个简单的游戏后,发现对于已经写过的这些游戏而言,其创作流程都有一些相通性,自此小结一下用python写游戏的一般步骤。 从我看来,目前python仍然是写游…

    Python 2023年9月20日
    0129
  • 论文阅读 CVPR2022《Rethinking Semantic Segmentation:A Prototype View》

    文中作者一直强调关于一张图片里的像素投射的embedding space的结构是缺乏关注的,这个思想在他去年的一项工作里就有涉及,他提出了一个insight的问题,如下图红字。 O…

    Python 2023年9月30日
    055
  • pytest测试框架-数据驱动 yaml/excel/csv/json

    数据驱动:数据的改变从而驱动自动化测试用例的执行,最终引起测试结果的改变。简单说就是参数化的应用。 测试驱动在自动化测试中的应用场景: 测试步骤的数据驱动; 测试数据的数据驱动; …

    Python 2023年9月9日
    049
  • 开启浏览器sourcemap调试生产环境代码

    开启浏览器sourcemap调试生产环境代码 Source Map介绍 在做网站性能优化的时候,我们经常会做 js和css代&#…

    Python 2023年9月29日
    029
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球