“古文字识别助手与众包平台”项目规格说明书
一、引言
1编写目的
为明确本项目软件需求、安排项目规划与进度、组织软件开发与测试,撰写本文档。
2软件需求分析理论
软件需求分析(Software Reguirement Analysis)是研究用户需求得到的东西,完全理解用户对软件需求的完整功能,确认用户软件功能需求,建立可确认的、可验证的一个基本依据。
软件需求分析是一个项目的开端,也是项目实施最重要的关键点。据有关的机构分析结果表明,设计的软件产品存在不完整性、不正确性等问题80%以上是需求分析错误所导致的,而且由于需求分析错误造成根本性的功能问题尤为突出。因此,一个项目的成功软件需求分析是关键的一步。
3软件需求分析目标
软件需求分析的主要实现目标:
1)对实现软件的功能做全面的描述,帮助用户判断实现功能的正确性、一致性和完整性,促使用户在软件设计启动之前周密地、全面地思考软件需求;
2)了解和描述软件实现所需的全部信息,为软件设计、确认和验证提供一个基准;
3)为软件管理人员进行软件成本计价和编制软件开发计划书提供依据;
需求分析的具体内容可以归纳为六个方面:软件的功能需求,软件与硬件或其他外部系统接口,软件的非功能性需求,软件的反向需求,软件设计和实现上的限制,阅读支持信息。
软件需求分析应尽量提供软件实现功能需求的全部信息,使得软件设计人员和软件测试人员不再需要需求方的接触。这就要求软件需求分析内容应正确、完整、一致和可验证。此外,为保证软件设计质量,便于软件功能的休整和验证,软件需求表达无岔意性,具有可追踪性和可修改性。
4参考文献
1.《软件工程基础》 赵一丁 北京邮电大学出版社
2.《软件需求》 劳森 (作者), 刘晓晖 (译者) 电子工业出版社
3.《软件需求工程:原理和方法》 金芝,刘璘,金英 科学出版社
4.《实用软件工程》第三版 殷人昆 清华大学出版社
二、需求概述
2.1项目背景
项目名称:古文字识别助手与众包平台;
项目背景:从目前的考古发掘看,尚未明确证实发现有关夏代的文字资料。山东大学考古美学研究所刘凤君教授发现的骨刻文有很大可能是早于甲骨文的古文字,但是由于破译难度很大,因此需要使用技术手段将类似文字的痕迹提取出来并加以分析,然而采用图片识别的方法提取的效果并不理想,因此本项目采取众包算法以及EM算法,将人工描绘的刻画痕迹对比分析后选取最优值,从而进一步提取出雕纹的字符库;
开发时间:2022年2月25日——2022年6月5日;
开发的项目平台:微信小程序端,web端;
2.2需求概述
1.搭建一个古文字识别助手平台,使得用户能够通过平台(web端和小程序端)进行骨刻文痕迹的刻画;
2.利用EM算法和众包算法给用户描绘出的痕迹进行打分,并设置排行榜,根据排名设置奖励机制从而激发用户的参与兴趣;
3.搭建web端骨刻文官网首页,将骨刻文的发现历史,以及分析文献等做一个阐述,起到对于骨刻文的一个宣传作用;同时搭建社区,使得用户可以在社区内讨论骨刻文刻画过程中的心得,可以在社区内设立栏目对骨刻文的由来,历史等进行宣传,吸引更多的用户加入进来;
2.3系统结构
系统的项目形式有两种: web端平台、微信小程序;
由于众包算法的系统是为了让更多的人通过描绘图像而获取更多的原始数据,所以在手机端的功能流程不能做的太复杂,否则用户会直接被过于复杂的流程劝退,于是,经过小组的讨论,本项目决定依托于微信小程序进行用户信息的存储。原本是打算使用用户的手机号码作为用户的唯一标识来存储用户信息,但是经过微信小程序开发文档的查阅,发现个人开发者并不能直接获取到用户的手机号,即使用户已经通过微信进行授权登录了,所以也没办法,只能另寻他法。最后我们确定下来的是使用基于小程序id的openid号作为用户的唯一标识,相当于用户在小程序里的身份证。
结构:
1.终端用户层:作为系统向各种手机,web终端提供展现层,手机用户通过安装微信小程序实现手动绘制痕迹,web端通过小程序扫码登录后即可通过鼠标操控进行痕迹绘制,小程序端和web端的数据是同步的。
2.业务逻辑层:系统核心业务处理层,主要支撑小程序和web端平台的功能实现、小程序端的数据请求处理,包括网络请求模块,拦截器模块,业务层模块,控制层模块等。
3.持久层:利用数据库存储待用户完成的图片,存储已注册登录用户的openid以及其他的基本公开信息,存储个人已经完成的得分情况,以及各参考文献等。
三、系统功能需求
1.文字骨骼数字化存储:PC端web展示提取出的文字以及相应的研究成果Android手机端手绘app(小游戏形式向大众开放)
2.搭建一个众包平台,通过小游戏的形式收集用户对雕纹图片的手绘(PC端及小程序端);
3.采用EM算法,经过多次迭代,在众多样本中,选择出最优的最接近于真值的痕迹;
4.将字符库的字符根据主笔画进行分类;
5.将字符库的字符与甲骨文、小篆的字库尝试进行对比;
6.完善web端平台,能够展示骨刻文学术动态和描绘痕迹的同时,实现发帖,回帖等功能;
四、软硬件或其他外部系统接口需求
1.用户界面
用户界面是程序中用户能看见并与之交互作用的部分,设计一个好的用户界面是非常重要的。同时本项目又要注意将核心功能描绘骨刻文痕迹放在显眼的位置,便于用户点击,因此小程序端应在底部导航栏直接有一个直达绘制界面的按钮;web端亦是如此,只不过通常情况下的导航栏应该位于上方。
2.接口需求
本项目应该采用目前比较主流且成熟的微服务框架(后端采用springboot,前端采用react),使得软件产品具有良好的分层设计,且扩展性良好,能够在以后根据业务的发展或变更及时跟进更新;
首先讨论过后决定由于有小程序端,为了进一步节约用户的成本,采用小程序端扫码登录的方式进行web端平台的登录;网站应用微信登录是基于OAuth2.0协议标准构建的微信OAuth2.0授权登录系统。 在进行微信OAuth2.0授权登录接入之前,在微信开放平台注册开发者帐号,并拥有一个已审核通过的网站应用,并获得相应的AppID和AppSecret,申请微信登录且通过审核后,可开始接入流程。故需要有微信开放平台的OAuth2.0授权登录有关的功能接口。
五、非功能性需求
1.性能需求
处理能力
系统处理能力主要考虑系统能承载的最大并发用户数,按照实际情况的规划,系统至少能承载的最大并发用户数要求达到400。
响应时间
为了能够及时准确的将用户描绘的痕迹上传到后台储存,系统应该能够快速地响应提交请求。用户最终得到结果的响应时间除了与系统响应速度有关外,还与网络状况有关,以提出的是对WEB查询页面查询响应速度的需求。
3.安全性需求
需要保证用户的数据隐私不被泄漏,通过微信授权登录能够大大减少泄露的可能性,同时在数据传输时应该使用数据加密算法,使得数据即使泄漏、被截获后,也无法识别相关的数据内容,确保数据安全。对于客户端与服务器交互的数据,使用安全套接子层(SSL,SSL加密传输主要是针对WEB的数据传输,基于重要信息的传输安全考虑而设计的。)进行信息交换,并在客户移动终端和服务器之间重要的信息的交换。
4.扩展性需求
本项目应该采用目前比较主流且成熟的微服务框架(后端springboot,前端vue或者react等),使得软件产品具有良好的分层设计,且扩展性良好,能够在以后根据业务的发展或变更及时跟进更新;
5.可移植性需求
本项目在微信小程序端的平台,由微信已经实现了跨平台,可以在ios以及windows,android等运行;
本项目在web端的平台,亦均可以在不同平台直接通过浏览器访问,可移植性良好。
**总结:**本文只是软件需求规格说明书的初版,后续会在开发过程中逐步细化每个需求的实现方式,商讨出某一阶段的需求说明书之后,再根据需求规格说明进行此阶段的开发。