智能迷宫系统需求分析
第一章 引言
1.1编写目的
为了明确本系统的需求,合理地安排软件的开发计划与进度;保证软件开发人员有目的、有安排地编写程序;使测试人员的测试工作完整、有据可循。
1.2软件需求分析目标
进行软件需求分析的主要目的:
1) 对智能迷宫系统的功能做一个全面的分析和阐述,帮助作者判断该系统实现功能的正确性、一致性和完整性,促使作者在对该系统进行概要设计之前周密地、全面地思考系统的需求。
2) 全面地了解和描述实现该系统所需要的全部信息,为系统的设计、实现和测试提供一个标准
需求分析的具体内容可以总结为以下四个方面:系统的功能需求,系统的主要接口,系统的非功能性需求和技术难点等
1.3参考文献
第二章 需求概述
2.1系统背景
现代社会高速发展,我们的日常生产和生活越来越离不开自动化和人工智能技术。越来越多的工场使用机器人等高科技设备来代替人工完成一些重复性高,精确度高,任务繁重的生产任务。创新工场的CEO李开复先生认为“在未来十年,世界上50%的工作,都会被人工智能所取代”。可见人工智能技术在今后的人类社会中扮演多么重要的角色。
大部分的机器人等智能设备都要涉及到自动寻路这一环节,即机器人可以像人类一样在复杂的环境中实现从起始点到目标点的过程。机器人完成自动寻路需要程序人员事先为其设计好自动寻路的程序,而程序如何快速、稳定地寻找出最佳路径就需要程序人员在众多已有的寻路算法中选择出最适用的算法,或者设计出更高效的寻路算法。
但对于初级程序人员来说,学习和了解自动寻路算法非常抽象,难以理解,所以非常需要一个能够直观地学习、了解寻路算法的工具程序。
2.2需求概述
智能迷宫系统是一个让初级程序人员能够生动、直观地了解、学习各种自动寻路算法的学习工具程序,它内置了几种常用的自动寻路算法和复杂有解迷宫生成算法,使用者可以选择不同的算法来自动生成复杂有解迷宫,能看到选择不同的自动寻路算法让游戏角色从起点走到迷宫终点的动态过程,并且能比较不同算法在不同维度的差别,从而能够直观地了解和学习各种寻路算法。
该系统的主要功能包括迷宫角色管理、复杂有解迷宫的绘制和生成、自动寻路算法的实现及不同算法的多维度比较等。使用者先选择不同的迷宫生成算法,然后点击生成迷宫按钮,接着在主界面可以看到迷宫的动态生成过程,并能够在右侧输出栏看到算法的耗时情况等信息。生成完迷宫之后,可以选择不同的自动寻路算法,然后点击寻路按钮,可以看到迷宫主角从起到一步一步寻路到终点的动态过程,并且右侧信息输出栏会显示算法的耗时情况等信息。使用者还可以选择两种不同的寻路算法点击比较按钮,可以看到所选算法的稍微快一点的动态寻路过程,两种算法寻路都完成后,可以在右侧看到两种算法的比较图表。
2.3系统结构
用户通过与界面进行交互,输入一些操作命令,进入下层的逻辑模块。界面交互主要负责给用户提供美观、友好的操作界面,使得用户不仅可以通过方便、简洁、易于理解的操作步骤完成想要达到的目的,而且可以直观、清晰地看到操作带来的反馈和迷宫的处理过程及结果。
游戏角色的生成,移动和重置模块主要负责对迷宫内的游戏角色进行创建,移动位置,绘制外观,重置角色初始位置等逻辑处理。智能迷宫自动生成模块主要负责根据用户选择的不同复杂有解迷宫自动生成算法来自动创建迷宫,绘制迷宫等逻辑。自动寻路模块主要负责根据用户选择的不同自动寻路算法动态地完成游戏角色的自动寻路过程,其中还要负责控制游戏角色的移动,寻路的动态过程的可视化绘制等逻辑,并把寻路算法执行的信息输出到信息栏和比较图表模块。信息栏和比较图表模块主要负责将寻路算法执行的信息有序、完整地输出到输出栏中,并且能够将不同寻路算法的数据以图表的形式显示出来。
第三章 系统功能需求
3.1游戏角色管理模块
游戏角色管理模块能够完成游戏角色的自动创建,寻路移动和游戏重置功能。当用户自动生成迷宫完成后,游戏角色管理模块需要重置上一盘迷宫游戏的逻辑,并将角色放到本次迷宫的起点。当用户选择某一个自动寻路算法并点击开始寻路后,游戏角色管理模块需要将角色动态地放置到当前寻路步骤角色应该处在的位置上。
3.2智能迷宫自动生成模块
智能迷宫自动生成模块包含至少两种常见复杂随机有解迷宫生成算法供用户选择,第一次打开程序或者用户选择完迷宫生成算法并点击生成按钮之后,迷宫自动生成模块需要先绘制一个M*N大小的方格矩阵,任意相邻方格之间的邻边都是存在的,然后从起始点开始,逐渐去除相邻方格之间的边,使得两两之间联通,最终联通起始点和终点。要求迷宫生成的过程是动态的、逐步的,可见的,并且能够将迷宫生成算法的执行信息发送给信息栏和算法比较图表模块。当用户选择不同寻路并再次点击生成迷宫按钮后,迷宫自动生成模块需要清空上次的迷宫信息,重置迷宫为初始状态,并使用新选择的算法生成与上次不同的迷宫。
3.3自动寻路模块
自动寻路模块至少包含三种常见的路径规划算法供用户选择,当用户选择不同的寻路算法并点击自动寻路按钮后,自动寻路模块需要根据用户选择的寻路算法执行寻路逻辑,一步一步计算角色下一次所处的位置,并将该过程可视化地展现出来。另外,该模块需要将寻路算法执行过程的信息发送给信息栏和比较图表模块。当用户选择两个不同的寻路算法并点击比较按钮后,该模块可以按顺序依次把每个算法的寻路过程显示出来,并且将两种算法的寻路结果用不同颜色加以区分,另外还需要将两次寻路算法的执行数据发送给输出栏和比较图表模块。
3.4信息栏和比较图表模块
信息栏和比较图表模块负责显示迷宫生产算法和自动寻路算法的执行时间,内存占用等信息。在自动生成迷宫的过程中,当该模块收到迷宫自动生成模块发来的信息后,将其按顺序输出到输出栏中。在自动寻路过程中,当该模块收到自动寻路模块发来的信息后,将其按顺序输出到输出栏中,当两种算法比较时,模块收到信息后将两次寻路过程的信息进行缓存,等两次寻路都结束后,输出栏切换到比较图表页签,生成比较图表。
第四章 软硬件及运行环境需求
4.1用户界面
界面主要包含三个部分,上方是操作栏窗口,又细分为三个部分:迷宫生成部分,自动寻路部分和寻路比较部分。下方左侧是整个迷宫游戏的窗口,该系统的主要窗口,下方右侧是信息输出栏,可以切换为文字信息输出和比较图表两种页签。
4.2运行环境
操作系统:windows7 windows10
内存:512MB及以上
CPU:Intel I5 及以上
第五章 其他非功能需求
5.1性能需求
对于两种复杂随机有解迷宫的自动生成算法,执行过程都不能出现可以感觉到的卡顿;对于自动寻路算法,算法的单步执行过程都不能感觉到明显的卡顿,整个寻路过程的动态展示过程都要流畅,不能有明显的卡顿。
5.2扩展需求
作为一个学习寻路算法的工具系统,当有新的算法出现时,系统应该非常容易得添加新的迷宫生成算法,自动寻路算法,只需要把新的算法逻辑添加到相应模块的算法逻辑中即可,无需对前后端做复杂的修改。
5.3用户体验需求
本系统应该带给用户良好的使用体验,保证用户在使用本系统时,可以通过简单的操作步骤,直观、形象地看到自动寻路算法的执行过程,了解和学习不同的自动寻路算法。