基于N-S图的儿童编程软件设计与实现毕业论文
2020-02-16 20:56:07
摘 要
随着计算机、人工智能、大数据的应用和普及,软件设计已经成为21世纪新的教育焦点,为了给广大少年儿童启蒙计算机编程的基础知识,培养计算思维意识,我设计开发了一款编程游戏CodeGame。本论文论述了该软件的设计开发过程,软件采用软件工程的的设计方法理论进行系统设计,基于N-S图进行组件设计,是一款拥有较高容错性、着力于让青少年儿童认识并熟悉三种程序结构的编程游戏。软件通过搭积木的方式进行编程,组件按照N-S图的模式进行设计,生动形象,同时提供多种角色和背景,调动学习积极性。软件具有保存功能,可以再次打开,重复编辑,为项目的保存和传输带来了的方便。
关键字:少儿编程;N-S图;Java GUI
ABSTRACT
With the application and popularization of computer, artificial intelligence and big data, software design has become the focus of new education in the 21st century. In order to enlighten the basic knowledge of computer programming for young children and cultivate the sense of computational thinking, I designed and developed a programming game CodeGame. This paper mainly discusses the design and development process of the software. The software adopts the design method theory of software engineering. Based on the NS diagram, the component design is realized, the software is a programmatic programming game which is high fault tolerance and focuses on letting children understanding and familiarizing three program structures. The software is programmed by means of building blocks. The components are designed according to the N-S diagram mode, vivid image, and provide a variety of roles and backgrounds to mobilize learning enthusiasm. The software has a save function, which can be opened again and edited repeatedly, which brings convenience to the saving and transmission of the project.
Key words:Children programming;NS diagram,;Java GUI
目录
第1章 绪论 1
1.1 研究背景及意义 1
1.2 国内外研究现状 1
1.3 本论文研究内容及章节安排 2
第2章 需求分析 3
2.1 软件定位 3
2.2 功能需求 3
2.3 非功能性需求 3
2.3.1 性能需求 3
2.3.2 可靠性和可用性需求 3
2.3.3 出错处理需求 3
第3章 系统总体设计 5
3.1 系统总体设计原则 5
3.2 总体架构设计 5
3.2.1 Swing容器 5
3.2.2 Swing类库结构 6
3.3 系统功能模块设计 7
3.3.1 界面设计 7
3.3.2 组件设计 7
3.3.3 UML类图描述 7
第4章 系统详细设计与实现 8
4.1 详细设计原则 8
4.2 组件设计 8
4.2.1 顺序结构组件 8
4.2.2 选择结构组件 9
4.2.3 循环结构组件 10
4.3 组件拖拉设计 10
4.3.1 区域内移动拖拽 10
4.3.2 区域间复制拖拉 11
4.4 组件嵌套设计 11
4.4.1 循环结构组件嵌套 11
4.4.2 选择结构组件嵌套 12
4.5 程序运行设计 13
4.5.1 角色选择 13
4.5.2 检测用户程序 13
4.5.3 角色动作设计 13
4.6 计算器设计 14
4.7 项目储存设计 14
4.7.1 保存项目 15
4.7.2 打开项目 15
4.8 软件美化设计 15
第5章 软件运行与测试 16
5.1 软件运行 16
5.1.1 软件界面 16
5.1.2 组件拼接 16
5.1.3 用户程序运行 17
5.1.4 计算器运行 18
5.1.5 项目存储与打开 18
5.1.6 背景与角色更换 19
5.2 软件测试 20
5.2.1 顺序结构组件测试 21
5.2.2 选择结构组件测试 22
5.2.3 循环结构组件测试 23
5.2.4 组件拼接测试 23
5.2.5 计算器测试 25
第6章 总结与展望 27
6.1 总结 27
6.2 展望 27
参考文献 29
致谢 30
绪论
研究背景及意义
自进入21世纪以来,整个世界已然变成一个信息化的世界,世界各国为推动自身科学技术发展逐渐加大了对计算机科学教育的投入,努力培养计算机科学人才,同时,在认识到了青少年编程教育对未来发展计算机科学的重要性后,少儿编程教育已经在悄然兴起。人类同计算机世界进行沟通是通过编程完成的,计算机语言和人类语言并不相同,它准确、容错性小、没有歧义,正是这些特点才造就了计算机能够准确无误的运行,得出精确的结果。但同时也是这些特点,使编程学习的困难度增加,容易使学习者丧失学习兴趣。
少儿编程和编程是不一样的概念,编程是使用某种特定的计算机编程语言,按照该语言的语法规则编写程序的过程。编程者必须严格按照这些规则来编程,计算机才能正确的理解并执行。少儿编程不是像学习编程一样学习如何编写代码和开发应用程序,而是通过一些可视化的编程游戏来启发计算机知识,重点是培养思考方式,逻辑能力和创新能力。在少儿编程过程中,锻炼他们分解拆分任务的能力,逐渐深入,理解更深层次的计算机思想。
二十一世纪已经全面进入信息时代,信息科技给人们的生活工作带来了巨大的变革,从网络聊天、网络购物、移动支付到今天的大数据、云计算、人工智能无一不是计算机科学给我们带来的便利,同时各行各业也都逐渐信息化,青少年儿童若具备计算机基础知识,以后深入学习计算机科学知识也会更加容易。早在1984年2月,邓小平和王震在上海观看小学生操作简易电子计算机时,提出“计算机的普及要从娃娃做起”,软件产业要缩短和美国的差距,程序设计也要从娃娃抓起。
国内外研究现状
中国青少年科技辅导员协会的研究报告[1]指出,少儿编zwnj;程教育是在国外起步,现已得到较为成熟的发展,同时许多国家制定了帮助少儿编程行业发展的政策。在美国,前任总统奥巴马在2012年提出了“一小时编程”的宣传,引来了扎克伯格、比尔盖茨等人现场解说计算机概念;2013年,英国首相卡梅伦对全国中小学大纲进行改革,将“计算机科目”列为必修科目,并于2014年落地实施;日本在2017年颁布的《新一期学习指导要领解说》提出中小学生进行STEAM理念办学;欧盟中很多国家也都在中小学里设置了编程课程。
2016年,我国发布了《教育信息化“十三五”规划》,2017年国务院发布《国务院关于印发新一代人工智能发展规划的通知》,都强调了青少年编程教育的重要性,鼓励全民参与计算机教育,强调要在中小学开办与人工智能相关的课程。从上面这些政策可以看出,我国也大力支持对青少年进行计算机科学教育,为编程教育提供政策支持。
得益于这些良好的政策环境和科学技术优势,国内外都已经有了一些非常成熟的少儿编程软件案例。 Scratch是一款由麻省理工学院(MIT)的“终身幼儿园团队”进行设计和开发的一款编程软件。它面向青少年儿童,即便用户不会使用键盘,不认识英文单词,也能通过拖动组件的方式,将模块拖动到程序编辑区来设置程序命令和参数,从而运行程序。编程猫是一款国产软件,用户可以借助编程猫,轻松创建游戏、软件、动画、互动故事等作品,它重在培养孩子们的推理和逻辑能力。编程猫现已拥有上千款课程,总的作品数量已经突破300万。
本论文研究内容及章节安排
基于这样的背景,本论文设计开发了一款少儿编程软件并论述了它的设计开发流程,软件基于NS图进行设计,利用NS图生动直观的特点设计组件,使用户能够轻松理解三种计算机程序结构,软件可为用户提供编程功能,以搭积木的方式来进行编程,不需要计算机专业知识,能够激发孩子们的动手能力和创造力。软件容错性较高,同时提供存储功能,为用户提供了便利。
本文第一章为绪论,第二章论述了软件的需求分析,第三章论述软件的总体设计,第四章论述了软件的详细设计与实现,第五章进行软件运行和测试,然后对整个软件和行业做了总结和展望。
需求分析
软件定位
本软件是一款少儿编程软件,目标用户是青少年儿童,目的是让青少年儿童在编程的过程中理解计算机程序设计中的三种结构,即顺序机构、选择结构和循环结构[2]。少儿编程软件不应涉及到太多专业的计算机知识,应该简单、明了、易操作,让他们潜移默化地开发逻辑思考能力、创新能力。为了充分激发孩子们的创造力和想象力,软件应当具有较高的容错性,应当避免错误操作影响他们学习兴趣降低的情况发生。
功能需求
- 可以为用户提供几个角色,如小人、猫、兔子、花朵、小树、蘑菇等。
- 可以通过程序控制角色走动。
- 提供三种程序结构基本组件,即顺序结构组件、选择结构组件和循环结构组件。
- 用户可以拖动组件在编辑区编辑。
- 当用户点击运行按钮,角色可以根据程序做出指定动作
- 能够完成简单的计算题。
- 软件可以设置并切换背景
- 软件应当具有保存项目和打开项目的功能,方便用户传输和再次编辑修改。
具体需求级别规格详见图2.1功能需求用例图。
非功能性需求
性能需求
本软件是一款少儿编程软件,要避免让用户等待丧失学习兴趣的情况发生,所以要做到即时响应用户请求,用户的各种操作不应该出现延迟,用户保存的文件要尽可能小,方便用户传输。
可靠性和可用性需求
软件要做到安全可靠、平稳运行,不应出现闪退或者弹出系统错误提示框。其中各个模块要相互分离,互不影响,即便单一模块运行错误也不能影响其他模块使用。
出错处理需求
软件中包含大量的组件拖拉和设置,软件应该对组件做初始化设置,对重要参数提供默认值,防止用户忘记对组件进行设置发生错误。对用户的输入操作做出限制,尽量避免用户输入错误字符。在进行简单计算时,算式由用户进行输入,如果用户输入了错误字符应该给出提示帮助用户更改。
图2.1 功能需求用例图
- 系统总体设计
系统总体设计原则
- 从主要功能做起,一个好的编程游戏软件必然拥有很多细小的功能,应当着眼于软件的主要功能进行开发,在主要功能完成之后,再设计开发次要及细小功能。
- 用发展的眼光设计软件,考虑到未来可能的拓展以及新功能。
- 充分考虑到安全性,要尽量避免用户的错误输入,为各项输入值提供默认值。
- 保护现有资源,在确保能够添加新特性时,尽量不修改现有特性。
- 为保证软件能够在多个平台运行,采用Java进行开发。
总体架构设计
为确保系统的开发成功,本系统采用AWT/Swing进行GUI开发。AWT是Abstract Window Toolkit的缩写,AWT主要提供了一套接口,通过这套接口,我们可以与本地图形界面进行对话。AWT提供的图形功能是与操作系统提供的功能一一对应的,我们把这种对应关系称为同行。实际上就是,我们在使用AWT来构建图形化界面的时候,实际上调用的是操作系统所提供的图形库[3]。不同的操作系统提供的图形库可能不同,因此在某一平台上实现的功能可能在其他平台上无法实现。为了实现Java语言的“一旦编译,无论在哪里都要执行”的概念,AWT通过丢弃一些功能,来实现跨平台的特性。Swing是一套新的图形化接口系统,它是基于AWT进行构建的,所以Swing提供了AWT所提供的所有功能,同时大幅扩展了AWT的功能。例如树形控件在某些操作系统中没有被支持,Swing可以利用AWT提供的基本作图方法来模拟树形控件。
Swing容器