一个产品的开发需要经历一个漫长的生命周期,对于软件来讲,一般称为软件生存周期。软件的生命周期有多种模式,但目前大部分软件开发采用的仍然是著名的"瀑布模型",它是最早被总结出来,也是应用最广泛的软件开发模型。"瀑布模型"将软件开发分为六个阶段,依次为:制定计划、需求分析、软件设计、程序编写、软件测试和运行维护。其中,软件需求分析是进行软件设计之前必经的环节。所谓软件需求分析,就是要明确软件的设计目标,完整准确的描述软件的设计规格。
根据使用者的特性,本系统定义了两个用户角色:一类为使用本系统进行三维扫描的普通用户,另一类为使用本系统进行算法开发的研究人员。作为不同的用户角色,对系统的需求也大相径庭,因此详细的调研了两种角色的用户需求。
对于普通用户来讲,用户需耍使用三维扫描系统完成如下任务:通过运动执行机构,自动完成扫描全过程;在扫描过程中,通过软件界面实时了解扫描效果;完成扫描后,能够快速重建三维实体模型。
在这一系列过程中,软件的操作应当尽可能简单,学习成本低,能够全自动或半自动完成。程序稳定可靠,不能在扫描巧程中发生中断。扫描结果也应当能够简单可靠的获取,不能因为误操作造成扫描结果的丢失。扫描完成后,软件当能够快速完成建模,减少等待时间,所建立的模型应当有足够的辨识度,用户通过肉眼能够直观的判断扫描效果。对于扫描结果,用户应当能够进行简单的编辑或后处理,并且可方便的输出模型。
所建立的三维扫描系统,不光针对普通用户,其另一项主要目的是为学科组搭建后续开发的开发平台和实验平台。因此,必须从开发人员的角度,考虑软件的扩展能力,二次开发能力以及为开发人员提供可视化能力,编辑修改能力。同时对于硬件设备,要减少软件开发人员在硬件设备使用和调试上花费的时间,使其专注于算法研究等核心内容,因此,对于开发人员,用户需要使用三维扫描系统完成如下任务:数据获取、保存和重放;在扫描过程中,通过软件界面实时了解扫描效果及原始数据;点云的导入导出、可视化及操作;三维重建算法验证。
同时,开发人员对系统提出了一些基本要求。首先,系统要具有可移植性,能够跨平台开发,以便后续工作的开展。第二,系统耦合度低,方便加入新的算法和功能模块。第三,执行机构简单可靠,具有可编程逻辑功能。第四,输入数据一致,便于使用不同参数进行对比试验。