




已阅读5页,还剩25页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于JAVA的儿童绘画软件的设计与实现摘要随着社会节奏的日益加快,忙于工作的家长没有更多的时间顾及孩子的生活和教育,孩子缺少一种生动、易懂的学习途径。而儿童绘画软件作为一种新型的学习工具,能够有效缓解家长压力,让孩子独立学习。父母或教师若想引导孩子走进美术世界,给幼儿美术教育一个好起点,就必须能充分了解孩子与生俱来的种种本能,为孩子选择好的启蒙工具。随前计算机的普及,画图软件是一个不错的选择。本文主要对儿童绘画软件进行需求分析,设计儿童绘画软件的功能模块,包括基本的色彩、图元编辑、图形文件处理等。在需求分析的基础上,各个模块进行了详细设计实现,最后对整个绘画软件进行运行及测试。该系统采用MYECLIPSE,JAVA,JFRAME,JFLASH作为开发工具。关键词JAVA;JFRAME;儿童工具;绘画软件摘要IABSTRACTII1绪论111课题背景和意义112儿童绘画软件现状113本文主要工作22系统关键技术321JAVASWING组件技术322JDK4221JDK组成4222JDK常用的包4223JDK常用工具523JFRAME概述5231JFRAME功能概述5232JFRAME特点6233使用JFRAME开发软件7234JFRAME核心价值8235团队结构对比924TOMCAT的功能103系统需求分析1131系统功能需求1132性能分析1133系统质量需求114儿童绘画软件的功能实现1341JAVA简介1342C/S简介1343系统功能实现1444系统运行截图215总结与展望24参考文献25致谢261绪论11课题背景和意义美术教育作为促进智力发展、培养各种能力(如观察力、创造力、想象力等)、陶冶情操的重要手段,已为人们所普遍认识和重视。然而,在传统儿童家庭绘画教育中,人们往往通过简单地购买白板、画笔、荧光小画板、或者磁粉画板等,如图1所示,来建立儿童的“涂鸦”环境,或者简单地通过购买绘画临摹本和彩笔的方式来让儿童认识各种形状和颜色,并临摹和勾勒物体。由于人们往往不了解儿童美术教育的科学过程,不了解儿童绘画与儿童认知发展之间的密切关系,因此无法将这些美术教育工具科学有序地整合。这就导致家庭儿童绘画教育往往呈现出简单、零散、无序的情形。在家庭儿童绘画教育方面,几乎完全处于放任儿童自我发展的状态。为此,需要开发一款基于JAVA的儿童绘画启蒙软件。该软件包括如下基本功能1)具备一般绘画软件的色彩、图元编辑、图形文件操作等功能;2)考虑儿童兴趣,加入卡通元素及声音元素等;3)使用几何图形,填充日常生活中的各种图形,包括房子、各种动物和花草、树木等。同时,为了保证系统的性能,可修性,易用性等重要质量属性,本文将采用MYECLIPSE平台的JAVAAPPLICATION开发过程,对儿童绘画软件进行分析和设计。本文主要关注软件体系架构的设计和实现方面,通过构建一个合理的软件体系架构,来满足“涂鸦”在可修改性,性能,易用性等系统的质量属性和商业质量属性方面的要求。结合系统的交互和用户界面的设计,以及软件测试的保证,最终实现儿童绘画软件。12儿童绘画软件现状目前以儿童绘画类教育为主题的应用软件多不胜数。这些应用软件主要有涂鸦、填色、临摹这3个主要功能,虽然都是以教育儿童绘画为前提,但是却没有做到有效引导儿童绘画,它们忽略了儿童的绘画认知过程,没有从基础开始的一个循序渐进的过程,功能没有有效地组合起来,缺乏了真正的教学过程。目前它们主要存在如下问题1)在一定程度上,忽视了儿童绘画教育的认知过程,缺少从基础开始的一个循序渐进的过程,因此它们虽然都是以教育儿童绘画为目标,但是不能有效引导儿童绘画;2)没有通过简单有效的方法将涂鸦、填色和临摹结合起来;3)系统设计时,许多软件都忽视了系统相关的一个隐含用户,即儿童绘画教育的启蒙老师;4)缺少明确的认知主题,对绘画以外的其它教育功能重视不够;5)缺少多通道并行交互能力,交互方式不够丰富;6)对于儿童绘画的结果,缺少后期处理;7)缺少一些吸引儿童的卡通元素。儿童绘画软件是在对儿童教育应用进行分析后设计的,它以贴纸的形式将儿童对几何图形的认知,颜色的认知以及对临摹的学习融入其中。它具有以下特点1)为儿童营造了一个虚拟的涂鸦空间,包括画室、画笔、颜料、画板、绘画模板、绘画参考等;2)通过建立某种有意义的主题,例如蝴蝶或昙花的生命过程,来组织儿童涂鸦在认知上由浅入深的心理过程,进而组织儿童的涂鸦绘画过程,包括涂鸦、填色和临摹等活动;但是经过系统分析,我们发现由于采用了更加丰富的人机交互,以及系统的功能的增加,尤其是系统智能性的提升,会带来系统开发周期明显加长,系统的复杂性明显提高。因此,系统的开发期、修改期和交付期的质量属性成为需要考虑的重要问题,例如,系统的可扩展性,可修改性和系统性能等。另外,JAVA“人机交互指南”,对交互和用户界面方面提出了比较高的要求,而且系统的用户界面和交互需要频繁变更,这需要系统在软件体系结构层面提供良好的可修改性支持,从而保证系统的易用性。13本文主要工作本文主要研究的内容是如何通过JFRAME、JFLASH设计一个满足所需的软件体系架构,论文的主要贡献在于研究并实现了一个具有商业价值的儿童绘画软件系统;2)建立了一个典型的儿童绘画应用软件的MVC架构,将为日后围绕此软件架构,开发软件产品线具有重要的意义,是重要的组织资产。论文组织结构如下第一章绪论。介绍了儿童绘画软件的研究背景及意义。对早期的绘画软件版本功能进行了简单介绍介绍,以及存在的问题。第二章系统关键技术介绍,包括JFRAME、JFLASH以及JAVASWING等。第三章儿童绘画软件的需求分析。从功能需求,质量需求和商业质量属性需求的角度来分析儿童绘画软件。第四章儿童绘画软件的详细设计,针对各个功能模块,从数据结构设计,类图设计等方面给出详细的描述。第五章总结与展望。总结本文实现的内容,阐释在实现儿童绘画软件过程中吸收的经验以及本系统存在的不足之处。2系统关键技术21JAVASWING组件技术JAVASWING是由SUN公司与NETSCAPE网景公司合作创建的新一代图形界面标准。JAVASWING技术使得程序能够以一种简洁的“搭积木”的方式将各种图形用户组件组织在一起,形成实际可用的图形用户界面。JAVASWING在开发图形用户界面具有着无可比拟的优势,以至于影响到不同开发领域里的GUI的设计与开发。JAVASWING技术发展到现在,已经被许多开发人员作为图形开发的首选,成为图形开发的主流。1)跨平台特性JAVASWING是一种轻量级组件,占用系统资源少,完全由JAVA开发实现,不再依赖本地平台的图形界面,所以可以在所有平台上保持相同的运行效果,对跨平台支持比较出色。并且跨平台的特性还使得JAVASWING开发不会产生与平台相关的BUG。2)MVC设计模式JAVASWING组件都采用MVCMODELVIEWCONTROLER,即模型一视图一控制器设计模式。SWING把一个组件的处理分为图形部分和数据部分,其中图形部分由编程环境统一处理V,而数据部分由一个数据处理模型进行处理M。从而可以实现GUI组件的显示逻辑与数据逻辑的分离,允许开发人员自定义RENDER来改变GUI组件的显示外观,提供更多的灵活性。如图21为SWING组件的MVC模式示意图。图21JAVASWING组件的MVC模式3)LOOKANDFEEL通过LOOKANDFEEL机制,我们可以使程序的设计者任意转换程序的人机界面来对应不同的操作系统平台。由于SWING组件采用MVC模式来维护各组件,所以当组件的外观改变时,对组件的状态信息由模型维护没有任何影响。因此,SWING可以使用插拔式外观感觉PLUGGABLELOOKANDFEELPLAF来控制组件外观,使得SWING图形界面在同一个平台上运行时能拥有不同的外观。SWING提供了多种独立于各种平台的LAFLOOKANDFEEL,用户可以在程序运行期间自由选择喜欢的程序外观,从而给JAVA桌面应用程序开发带来巨大的进步。22JDKJDKJAVADEVELOPMENTKIT是SUNMICROSYSTEMS针对JAVA程序员开发的产品。自从JAVA推出以来,JDK已经成为使用最广泛的JAVASDK。JDK是整个JAVA的核心,包括了JAVA运行环境,JAVA工具和JAVA基础的类库。JDK是学好JAVA的第一步。而专门运行在X86平台的JROCKET在服务端运行效率也要比SUNJDK好很多。从SUN的JDK50开始,提供了泛型等非常实用的功能,其版本也不断更新,运行效率得到了非常大的提高。221JDK组成JDK包含以下基本组件1)JAVAC编译器,将源程序转成字节码。2)JAR打包工具,将相关的类文件打包成一个文件。3)JAVADOC文档生成器,从源码注释中提取文档。4)JDBDEBUGGER,查错工具。5)JAVA运行编译后的JAVA程序CLASS后缀的。6)APPLETVIEWER小程序浏览器,一种执行HTML文件上的JAVA小程序的JAVA浏览器。7)JAVAH产生可以调用JAVA过程的C过程,或建立能被JAVA程序调用的C过程的头文件。8)JAVAPJAVA反汇编器,显示编译类文件中的可访问功能和数据,同时显示字节代码含义。9)JCONSOLEJAVA进行系统调试和监控的工具。其中JAVAC是JAVAC语言编程编译器。JAVAC工具由JAVA语言编写的类和接口定义,并将它们编译成字节代码的CLASS文件。JAVAC可以隐式编译一些没有在命令行中提及的源文件。用VERBOSE选项可跟踪自动编译。222JDK常用的包1)JAVALANG这个是系统的基础类,比如STRING等都是这里面的,这个包是唯一一个可以不用引入(IMPORT)就可以使用的包。2)JAVAIO这里面是所有输入输出有关的类,比如文件操作等。3)JAVANIO为了完善IO包中的功能,提高IO包中性能而写的一个新包,例如NIO非堵塞应用。4)JAVANET这里面是网络有关的类,比如URL,URLCONNECTION等。5)JAVASQL这个是数据库操作的类,CONNECTION,STATEMENT,RESULTSET等。6)JAVAXSERVLET这个是JSP,SERVLET等使用到的类。223JDK常用工具1)JAVACJAVA源程序编译器,将JAVA源代码转换成字节码。2)JAVAJAVA解释器,直接从字节码文件执行JAVA应用程序的字节代码。3)APPLETVIEWEREXEJAVAAPPLET浏览器。APPLETVIEWER命令可在脱离万维网浏览器环境的情况下运行APPLET。4)JARJAVA应用程序打包工具,可将多个类文件合并为单个JAR归档文件。5)JAVADOCJAVAAPI文档生成器,从JAVA源程序代码注释中提取文档,生成API文档HTML页。6)JDBJAVA调试器DEBUGGER,可以逐行执行程序,设置断点和检查变量。23JFRAME概述231JFRAME功能概述JFRAME应用软件开发平台是一个基于JAVAEE的面向应用软件开发的框架及自动化化代码生成平台。通过使用JFRAME应用软件的开发不需再重头做起,只需通过JFRAME自动代码生成工具配置、生成业务代码,并在自动生成的代码基础上简单地补充的业务逻辑即可。JFRAME降低了软件研发的要求,开发人员也无需掌握太多的高升技术,只需掌握JAVA基础知识和JAVASCRIPT基础知识,就可在平台上进行二次开发。JFRAME的目标是“直接降低软件企业80的研发成本,缩短项目开发发周期,提升客户满意度”;应用软件开发过程中80的重复工作将由JFRAME来完成,20的特殊业务逻辑由程序员在JFRAME应用开发平台基础上补充完善。JFRAME应用软件开发平台就如“一套毛胚房”,提供了软件的基本框架和相关基础设施;软件开发团队获取该平台后,可以对其进行“装修”,根据自己的业务需求,在其基础之上进行二次开发,实现满足业务需求的应用软件。JFRAME应用软件开发平台作为作基础软件,能够满足您应用软件开发的各种需求,而且特别适合于各类管理信息系统的开发。JFRAME与其他软件开发平台不同,JFRAME是面向程序员的,而不是面向最终用户的。JFRAME不承诺可以实现“零代码”开发,因为业务逻辑千变万化,不可能有真正的“零代码”开发平台,但它却是解决软件工程问题的“银弹”。JFRAME应用软件开发平台是一个技术平台,它提供了优美的分层架构和通用的基础功能模块。它采用MVC多层架构技术将整个系统分为展现层、控制层、业务逻辑层、数据操作层等4个层次。层与层之间相对独立、界面清晰、接口单一,每一个层次均有较大的灵活性。1)系统框架系统框架是整个JFRAME的核心,它集成了当前流行技术,向开发人员提供统一、规范、简单、简洁的程序开发模式。同时,系统在各个层次中均采用了缓存技术,大大的提高了系统的性能。2)基础类库在JFRAME每一个层次中都提供了丰富的基础类库,对各种底层技术、开源技术进行了封装,并向开发人员提供了简单的调用接口。通过JFRAME,开发人员不必再化大量的时间去专研技术,只需熟悉并调用这些程序接口即可。此外,天择研发人员,将持续对各类技术进行升入研究,将其封装后,以最简单的形式提高给开发人员使用。3)公共业务子系统在一个软件系统中有许多功能是必备且通用的,如身份认证、安全审计、单点登录、数据字典、系统监控、配置管理、工作流程管理、元数据管理、内容管理、消息发布等功能。JFRAME在框架中提高了这些功能,并且提供了相应的接口,程序员可以直接使用或调用其接口对其扩展以使其能满足业务的需求。此外,天择研发人员,还将持续优化、扩展、增加这些通用的功能模块。客户单位程序员也可根据自身需要向天择提出需求,由天择研发人员来完成这部分功能的开发。4)代码自动化生成工具正如前面所述,业务功能模块80的工作是重复的实现业务表的增删改查;JFRAME代码自动生成工具可帮助程序实现这些功能。程序员只需做简单的配置,即可生成出简洁的代码。所生成代码功能完整、程序简洁、可维护性高,即使最复杂功能模块,也不会超过100行。232JFRAME特点JFRAME是一套基于JAVAEE体系结构的软件架构及自动化开发平台,追随当前流行而又成熟的技术,吸其精华弃其糟粕。JFRAME包容并吸收了FREEMARKEREASYUISIGMAGRIDJQUERYDWRSPRINGHIBERNATE等技术和JFRAME研发人员的丰富经验。总体上JFRAME具有如下特点1)设计精良的系统架构JFRAME吸收了JFRAME高级研发人员丰富的经验,设计了高度可扩展、灵活系统架构。2)丰富的基础类库JFRAME对各种技术、通用功能代码作了高度的封装,开发人员只需调用这些方法即可完成复杂的操作。开发人员开发特殊业务逻辑时,直接引用这些类库即可;如需扩展其功能开发人员只需继承该类扩展其函数即可。3)技术整合JFRAME系统框架对许多常用开源技术进行了整合、封装;使研发人员不再需要深入专研这些开源技术,调用简单的几行代码就可以实现对相关开源技术的引用。如对FCK或SIGMAGRID的引用只需引用几个函数即可。4)界面美观、整洁、统一JFRAME采用了FREEMARKER、EASYUI、SIGMAGRID、JQUERY、AJAX、DWR等展现层技术,使用了EASYUI、SIGMAGRID、JQUERYUI的漂亮界面组件,采用DWR技术实现界面无刷新,增强用户体验。同时,天择制定了一整套的界面及操作规范,使基于JFRAME开发的系统界面风格统一、美观、整洁。5)代码自动生成JFRAME提供了代码自动生成工具,开发人员只需做简单的数据库表及字段配置,即可自动生成强大、简洁的业务逻辑代码;一般的业务功能代码无需作二次开发即可满足客户的需求。JFRAME代码自动生成工具与ECLIPSE作了完美结合,代码生成后,只需在ECLIPSE中作“刷新”操作,即可在浏览器中访问、测试,也可直接通过ECLIPSE对生存的代码作二次开发。6)代码量少JFRAME通过封装、整合已对通用的业务代码(包括所有的增删改查等)做了整合、封装;程序员在编写应用程序时可以充分利用这些代码;进而使程序员只需关注,并引用JFRAME提供的丰富基础类库来实现特殊业务逻辑代码即可。因此,JFRAME留给开发人员的工作量是很少的。代码量少,意味着基于JFRAME的应用系统具有很强的可维护性。7)性能卓越、稳定JFRAME系统框架在系统的各个层次采用了针对性的缓存技术、AJAX、页面静态化技术等大大的提升了系统的性能;JFRAME性能优越,一般情况下最终用户可不必采购商业WEB中间件和数据库,直接使用免费TOMCAT、MYSQL即可得到,商业中间件的性能,直接为最终用户省下一笔巨大的投入。同时JFRAME系统架构由天择高级研发人员研发,系统每一个算法的实现均通过研发人员深思熟虑,系统瓶颈不会在JFRAME系统框架中产生。JFRAME系统框架在上市前,已经在各类项目中得到了广泛的应用,甚至有些基础类库已经工作了十几年。8)可移植性强JFRAME数据库操作层对HIBERNATE技术作了高度封装,使JFRAME可同时支持各种流行数据包括ORACLE、DB2、SQLSERVER、MYSQL、JAVADBDERBY。JFRAME采用JEE技术,其本身支持跨操作系统与跨WEB中间件,研发人员已经在各平台中进行了深入的测试,在各类型客户中得到了检验。9)代码简洁、规范、可维护性高JFRAME系统框架定义一套完整的代码规范,整个JFRAME系统框架的代码均遵循该规范。建议使用本系统框架的开发人员也遵循该规范,以提高系统的可维护性。10)开发、可扩充JFRAME是一个可灵活扩展的系统,它是一个工程包,在其工程包中,开发人员可根据自己的需要增加其他功能模块,或者与您现有的资源文件进行整合,充分利用企业现有资产。11)技术支持JFRAME是商业系统框架,提供了完整的文档、培训、技术支持、升级等服务。233使用JFRAME开发软件使用JFRAME开发软件是一个很简单的事。开发人员无需掌握各种复杂的软件开发技术如SPRING、HIBERNATE、JQUERY、DWR等等技术,也不要从头做起,只需将JFRAME工程包导入到MYECLIPSE开发环境中后,即可使用JFRAME实施快速开发;开发过程可遵循如下几步,如图22所示。图22基于JFRAME的软件开发步骤1)登录JFRAME自动化开发平台,参照业务系统设计文档配置功能模块,生成业务功能代码。2)在ECLISPSE中作刷新操作,将生成代码装载到MYECLIPSE工程中,即可打开浏览器测试生成代码。3)如不满意,可再次修改功能配置,重新生成代码,直到满意为止。4)如果业务逻辑较为复杂,JFRAME生成代码不能够完全满足业务需求需求,也可通过MYECLIPSE打开代码,对其进行修改(修改时可调用JFRAME提供的丰富基础类库,也可用手头上的现有程序资源),直到满意为止。234JFRAME核心价值JFRAME应用软件开发平台将带来开发模式的革新,和传统软件开发模式相比,能够大幅降低软件开发技术门槛,减少软件开发投入成本和对开发人员的要求,缩短软件开发周期,提升软件质量。1)降低企业研发成本JFRAME软件开发平台,可有效降低对软件开发人员的技术要求,开发人员无需深入的研究各类软件技术;并可通过平台自动生成业务代码;基于JFRAME开发的应用程序代码量少、规范、简洁,提升了系统的可维护性。JFRAME的目标是降低软件企业80的研发成本。2)缩短开发周期使用JFRAME软件开发平台,将直接缩短软件的开发周期,可以快速制作系统原型,开发人员只需在原型基础之上对业务代码进行二次开发;因此,JFRAME将大大缩短软件的开发周期。3)提升软件质量JFRAME软件开发平台,经许多软件开发团队应用,不断的优化和完善代码和功能,提升其性能与系统的可操作性,因此使用JFRAME软件开发平台将大大提升软件质量。4)减少对核心程序员的依赖基于JFRAME开发的代码结构清晰、代码量少;同时JFRAME团队将提供后方技术支撑和完善的开发文档。软件开发团队可完全规避核心程序员离职带来的风险。235团队结构对比首先,由于软件开发团队规模的缩小,开发团队可以不用配置专职的项目经理和系统分析设计人员,而可由系统分析设计人员兼任。第二,JFRAME本身已经提供了一个完善的系统架构,已经解决了各种技术问题,提供了各种常用的类库和使用说明文档;开发团队无需再从头做起,只需经稍微培训就会使用团队无需再聘请系统架构师。第三,JFRAME已经解决了各种技术难题,开发团队不再需要解决这些问题,因此团队对高级程序员的需求可以减少。第四,JFRAME提供了自动化代码生成工具,开发人员不再重复的编写、测试雷同的代码,只需通关工具快速生成;而且JFRAME提供了丰富的类库,开发人员不再需要编写这些复杂的技术代码。第五,JFRAME系统功能稳定、性能卓越,系统测试成本将可直接降低。第六,由于使用JFRAME开发系统业务代码规范、量少,因此很容易维护,对于不熟悉系统的业务逻辑的人员,也可很快上手对系统进行后期维护。使用TOMCAT能够使应用程序的部署变得非常简单,只需在TOMCAT的WEBAPPS目录下放入WAR,之后TOMCAT就会自行检查到该文件,并对其进行解压。一般情况而言,第一次在浏览器中访问这个应用时会非常慢,这是因为TOMCAT要把JSP变换为SERVLET文件,之后才会进行编译。当编译结束以后,访问速度会加快。另外TOMCAT也提供了一个名叫MANAGER的应用方式。该方式需要用户名和密码来访问这个应用,而在XML文件中通常储存着用户名和密码。用户可以通过这个应用远程进行WEB部署和撤销应用。24TOMCAT的功能使用TOMCAT能够使应用程序的部署变得非常简单,只需在TOMCAT的WEBAPPS目录下放入WAR,之后TOMCAT就会自行检查到该文件,并对其进行解压。一般情况而言,第一次在浏览器中访问这个应用时会非常慢,这是因为TOMCAT要把JSP变换为SERVLET文件,之后才会进行编译。当编译结束以后,访问速度会加快。另外TOMCAT也提供了一个名叫MANAGER的应用方式。该方式需要用户名和密码来访问这个应用,而在XML文件中通常储存着用户名和密码。用户可以通过这个应用远程进行WEB部署和撤销应用。TOMCAT不单是一个SERVLET,它也拥有传统WEB服务器的特点,如处理HTML页面。但它处理静态HTML效果不如APACHE。除此以外,TOMCAT给出了REALM支持。REALM可以看作UNIX中的GROUP。在UNIX里,系统里的一定资源对应着一个GROUP,而一个GROUP不能访问不归属于它的资源。TOMCAT用REALM来对不同的应用可以看作系统资源赋予给不同的用户可以看作GROUP),如果用户没有权限则不能访问这个应用。TOMCAT一共给出了三种REALM1JNDIREALM,基于LDAP的服务器里储存着用户信息,通过JNDI获取。2JDBCREALM,数据库里存储着用户信息,通过JDBC来进行验证。3MEMORYREALM,XML文件里储存用户信息,通过REALM方便地验证访问某个应用的客户。事实上,JSP和SERVLET的开发已经基本上涵盖了TOMCAT的主要开发,而这两种技术的开发也非常简单,只需要通过普通的文本编辑器进行编写,然后在打包成WAR。3系统需求分析31系统功能需求系统通过构建不同的贴纸主题,在每个贴纸主题内部系统提供丰富的由几何形状构成的贴纸。用户可以使用几何贴纸组成这些更复杂的贴纸,不同颜色的几何贴纸需要用户自己创建生成。完成后的主题场景可以进行分享。结合对儿童教育软件的分析,以及对系统的产品定义,我们确定了系统的主要功能需求包括一般绘画软件的色彩、图元编辑、图形文件操作等功能;考虑儿童兴趣,加入卡通元素及声音元素等选择贴纸主题。32性能分析相容性也可称为扩展性,在设计本系统时需要预先留出一些接口,供其他系统进行调用或使用数据。同样,需要预留出相应的接口用于将来进行系统功能扩展和系统升级。共享性为了达到资源共享的目标,我们要保证系统数据表能与其他系统的交互使用,数据可以通过各系统进行动态维护。安全性系统中保存有很多重要的数据,这些数据我们要保证其不能外泄,必须从多方面进行安全保护。硬件上我们考虑加装硬件防火墙,关闭不必要的端口,软件上也要安装相应防火墙,及时打上系统补丁,重要数据要进行加密保存。可靠性系统实现信息化无纸化处理,这里我们要保证数据的正确性和安全性。所以在系统运行中,我们要考虑众多异常情况,确保数据的完整性及原子性。运用相关的容错技术,自动恢复技术保正系统安全有效运行。33系统质量需求由于质量概念很难抽象定义,质量属性驱动的架构方法采用具体的场景来刻画质量属性,包括源,制品,环境,刺激,响应,响应度量等方面。下面我们采用这种方法给出系统的质量需求。并用以驱动后续的架构设计。表31可用性场景1属性场景可用性场景源设计人员制品用户界面环境用户界面设计时刺激想要快速有效地学习系统特性响应及时有效地提示;界面元素为用户所熟悉响应度量首次完成任务时间;首次完成任务的犯错率;用户不需要先验知识表32可用性场景2属性场景可用性场景源设计人员制品用户界面环境用户界面设计时刺激想要有效使用系统,快速完成用户任务响应支持在界面中有效导航;支持多通道交互;封装文件系统操作响应度量完成任务平均时间表33可用性场景3属性场景可用性场景源设计人员制品用户界面环境用户界面设计时刺激想要使错误的影响最低,鼓励用户自主探索用户界面响应对关键资源的操作提供撤销还原功能;对不能还原的功能给予提示响应度量错误数量;误操作比例表34可用性场景4属性场景可用性场景源设计人员制品用户界面环境用户界面设计时刺激想要减少记忆负担响应显示用户主任务;界面元素为用户所熟悉响应度量无4儿童绘画软件的功能实现41JAVA简介JAVA是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由SUNMICROSYSTEMS公司于1995年5月推出的JAVA程序设计语言和JAVA平台(即JAVAEE,JAVAME,JAVASE)的总称。JAVA自面世后就非常流行,发展迅速,对C语言形成了有力冲击。JAVA技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。在全球云计算和移动互联网的产业环境下,JAVA更具备了显著优势和广阔前景28。JAVA服务器页面是由SUNMICROSYSTEMS公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML(标准通用标记语言的子集)文件HTM,HTML中插入JAVA程序段SCRIPTLET和JSP标记TAG,从而形成JSP文件,后缀名为JSP。用JSP开发的WEB应用是跨平台的,既能在LINUX下运行,也能在其他操作系统上运行。42C/S简介C/S架构软件有诸多优点,同时存在着一些不足。1)应用服务器运行数据负荷较轻。最简单的C/S体系结构的数据库应用由两部分组成,即客户应用程序和数据库服务器程序。二者可分别称为前台程序与后台程序。运行数据库服务器程序的机器,也称为应用服务器。一旦服务器程序被启动,就随时等待响应客户程序发来的请求;客户应用程序运行在用户自己的电脑上,对应于数据库服务器,可称为客户电脑,当需要对数据库中的数据进行任何操作时,客户程序就自动地寻找服务器程序,并向其发出请求,服务器程序根据预定的规则作出应答,送回结果,应用服务器运行数据负荷较轻。2)数据的储存管理功能较为透明。在数据库应用中,数据的储存管理功能,是由服务器程序和客户应用程序分别独立进行的,前台应用可以违反的规则,并且通常把那些不同的(不管是已知还是未知的)运行数据,在服务器程序中不集中实现,例如访问者的权限,编号可以重复、必须有客户才能建立定单这样的规则。所有这些,对于工作在前台程序上的最终用户,是“透明”的,他们无须过问(通常也无法干涉)背后的过程,就可以完成自己的一切工作。在客户服务器架构的应用中,前台程序不是非常“瘦小”,麻烦的事情都交给了服务器和网络。在C/S体系的下,数据库不能真正成为公共、专业化的仓库,它受到独立的专门管理。3)C/S架构的劣势是高昂的维护成本且投资大。首先,采用C/S架构,要选择适当的数据库平台来实现数据库数据的真正“统一”,使分布于两地的数据同步完全交由数据库系统去管理,但逻辑上两地的操作者要直接访问同一个数据库才能有效实现,有这样一些问题,如果需要建立“实时”的数据同步,就必须在两地间建立实时的通讯连接,保持两地的数据库服务器在线运行,网络管理工作人员既要对服务器维护管理,又要对客户端维护和管理,这需要高昂的投资和复杂的技术支持,维护成本很高,维护任务量大。43系统功能实现本文考虑儿童兴趣,加入了卡通元素及声音元素等。在进入软件时,先播放一段FLASH,再进入绘图界面。实现FLASH播放功能部分代码如下PUBLICCLASSBFFLASHEXTENDSJFRAMEPUBLICGRIDLAYOUTLAYOUTNEWGRIDLAYOUT;PUBLICGRIDBAGCONSTRAINTSCONSTRAINTSNEWGRIDBAGCONSTRAINTS;PUBLICFLASHPLAYERFLASHPLAYERNEWFLASHPLAYER;PUBLICBFFLASHJPANELJPNEWJPANEL;JPSETLAYOUTLAYOUT;FLASHPLAYERSETFLASHFOLDER“/FLASH“;FLASHPLAYERSETFILENAME“123SWF“;FLASHPLAYERPLAY;CONSTRAINTSFILLGRIDBAGCONSTRAINTSBOTH;CONSTRAINTSWEIGHTX1;CONSTRAINTSWEIGHTY1;CONSTRAINTSANCHORGRIDBAGCONSTRAINTSCENTER;JPADDFLASHPLAYERFLASHPANEL;THISSETCONTENTPANEJP;/THISSETDEFAULTCLOSEOPERATIONJFRAMEEXIT_ON_CLOSE;THISSETLOCATION350,120;THISSETSIZE750,560;THISSETVISIBLETRUE;绘图等几乎所有的操作集成在画布上,实现画布的部分代码如下PUBLICCLASSMYCANVASEXTENDSCANVASINTX1,Y1,X2,Y2,X3,Y3,R;INTD3;INTHUABI1;DOUBLEXNEWDOUBLE8,YNEWDOUBLE8;INTX4NEWINT8,Y4NEWINT8;DOUBLEXNEWDOUBLE8,YNEWDOUBLE8;COLORC;MYCANVASSETBACKGROUNDCOLORWHITE;SETSIZE800,850;VOIDSETX1INTX1THISX1X1;VOIDSETY1INTY1THISY1Y1;VOIDSETX2INTX2THISX2X2;VOIDSETY2INTY2THISY2Y2;VOIDSETX3INTX3THISX3X3;VOIDSETY3INTY3THISY3Y3;VOIDSETCOLORCOLORCTHISCC;VOIDSETARCINTDTHISDD;VOIDSETRINTERE;VOIDSETHUABIINTHUABITHISHUABIHUABI;PUBLICVOIDPAINTGRAPHICSG,INTIGSETCOLORC;GRAPHICS2DG_2DGRAPHICS2DG;BASICSTROKEBSNEWBASICSTROKEHUABI,BASICSTROKECAP_ROUND,BASICSTROKEJOIN_MITER;G_2DSETSTROKEBS;IFI1GDRAWOVAL10,10,100,100;ELSEIFI2GDRAWLINEX1,Y1,X2,Y2;ELSEIFI3GDRAWRECT10,10,100,100;绘图等一些功能性操作都在JFRAME窗体里面执行。实现JFRAME窗体功能的部分代码如下PUBLICMYFRAMEIMAGEICONBACKGROUNDBACKGROUNDSETIMAGEBACKGROUNDGETIMAGEGETSCALEDINSTANCE1200,800,IMAGESCALE_DEFAULT;JLABELLABELNEWJLABELBACKGROUND;/把背景图片显示在一个标签里面/把标签的大小位置设置为图片刚好填充整个面板LABELSETBOUNDS0,0,BACKGROUNDGETICONWIDTH,BACKGROUNDGETICONHEIGHT;/把内容窗格转化为JPANEL,否则不能用方法SETOPAQUE来使内容窗格透明IMAGEPANELJPANELGETCONTENTPANE;IMAGEPANELSETOPAQUEFALSE;/内容窗格默认的布局管理器为BORDERLAYOUTIMAGEPANELSETLAYOUTNEWFLOWLAYOUT;GETLAYEREDPANESETLAYOUTNULL;/把背景图片添加到分层窗格的最底层作为背景GETLAYEREDPANEADDLABEL,NEWINTEGERINTEGERMIN_VALUE;PLAY;CANVASNEWMYCANVAS;CHOICENEWCHOICE;CHOICE3NEWCHOICE;PANEL1NEWPANEL;PANEL2NEWPANEL;PANEL3NEWPANEL;PANEL4NEWPANEL;/B1NEWBUTTON“圆“;B1SETBACKGROUNDCOLORBLUE;B2NEWBUTTON“椭圆“;B4NEWBUTTON“长方形“;B5NEWBUTTON“箭头“;/B6NEWJBUTTON“清除“;B7NEWJBUTTON“退出“;B8NEWJBUTTON“橡皮擦“;B9NEWJBUTTON“绘画“;BUTTON1NEWJBUTTON“小燕子“;BUTTON2NEWJBUTTON“拔萝卜“;BUTTON3NEWJBUTTON“虫儿飞“;BUTTON4NEWJBUTTON“唐老鸭“;BUTTON5NEWJBUTTON“彩虹“;BUTTON6NEWJBUTTON“喜羊羊“;CHOICEADD“红“;CHOICEADD“绿“;CHOICEADD“蓝“;CHOICEADD“黄“;CHOICEADD“青“;CHOICEADD“橙“;CHOICEADD“黑“;CHOICE3ADD“1“;CHOICE3ADD“3“;CHOICE3ADD“8“;CHOICE3ADD“10“;CHOICE3ADD“13“;CHOICE3ADD“16“;/B1ADDACTIONLISTENERTHIS;B2ADDACTIONLISTENERTHIS;B4ADDACTIONLISTENERTHIS;B5ADDACTIONLISTENERTHIS;/BUTTON1ADDACTIONLISTENERTHIS;BUTTON2ADDACTIONLISTENERTHIS;BUTTON3ADDACTIONLISTENERTHIS;BUTTON4ADDACTIONLISTENERTHIS;BUTTON5ADDACTIONLISTENERTHIS;BUTTON6ADDACTIONLISTENERTHIS;B6ADDACTIONLISTENERTHIS;B7ADDACTIONLISTENERTHIS;B8ADDACTIONLISTENERTHIS;B9ADDACTIONLISTENERTHIS;CHOICEADDITEMLISTENERTHIS;CHOICE3ADDITEMLISTENERTHIS;BOX1BOXCREATEHORIZONTALBOX;BOX1ADDBOXCREATEHORIZONTALSTRUT4;BOX1ADDBUTTON1;BOX1ADDBOXCREATEHORIZONTALSTRUT8;BOX1ADDBUTTON2;BOX1ADDBOXCREATEHORIZONTALSTRUT8;BOX1ADDBOXCREATEHORIZONTALSTRUT8;BOX1ADDBUTTON3;BOX1ADDBOXCREATEHORIZONTALSTRUT8;/BOX1ADDB5;/BOX2BOXCREATEHORIZONTALBOX;BOX2ADDBOXCREATEHORIZONTALSTRUT8;BOX1ADDBUTTON4;BOX2ADDBOXCREATEHORIZONTALSTRUT5;BOX1ADDBUTTON5;BOX2ADDBOXCREATEHORIZONTALSTRUT5;BOX1ADDBUTTON6;BOX2ADDBOXCREATEHORIZONTALSTRUT5;BOX3BOXCREATEHORIZONTALBOX;BOX3ADDBOXCREATEHORIZONTALSTRUT5;BOX3ADDCHOICE;BOX3ADDBOXCREATEHORIZONTALSTRUT5;BOX3ADDBOXCREATEHORIZONTALSTRUT5;BOX3ADDBOXCREATEHORIZONTALSTRUT5;BOX3ADDBOXCREATEHORIZONTALSTRUT5;BOX3ADDBOXCREATEHORIZONTALSTRUT5;BOX3ADDBOXCREATEHORIZONTALSTRUT5;BOX3ADDCHOICE3;BOX4BOXCREATEHORIZONTALBOX;BOX4ADDBOXCREATEHORIZONTALSTRUT8;BOX4ADDBOXCREATEHORIZONTALSTRUT8;BOX4ADDBOXCREATEHORIZONTALSTRUT8;BOX4ADDBOXCREATEHORIZONTALSTRUT8;BOX4ADDBOXCREATEHORIZONTALSTRUT8;BASEBOXBOXCREATEVERTICALBOX;BASEBOXADDBOX1;BASEBOXADDBOXCREATEVERTICALSTRUT5;BASEBOXADDBOX2;BASEBOXADDBOXCREATEVERTICALSTRUT5;BASEBOXADDBOX3;BASEBOXADDBOXCREATEVERTICALSTRUT5;BASEBOXADDBOX4;PANEL1ADDBASEBOX;PANEL1SETBACKGROUNDCOLORYELLOW;PANEL3ADDPANEL1,BORDERLAYOUTWEST;PANEL2ADDB6;PANEL2ADDB7;PANEL2ADDB8;PANEL2ADDB9;PANEL2SETBACKGROUNDCOLORYELLOW;PANEL3ADDPANEL2,BORDERLAYOUTEAST;/CANVASSETLOCATION200,200;/CANVASSETSIZE400,350;ADDPANEL3,BORDERLAYOUTNORTH;ADDCANVAS,BORDERLAYOUTCENTER;CANVASADDMOUSELISTENERTHIS;CANVASADDMOUSEMOTIONLISTENERTHIS;实现音乐播放功能的部分代码如下PRIVATEVOIDPLAY/播音乐TRYISSTOPTRUE;/停止播放线程/等待播放线程停止WHILEHASSTOPSYSTEMOUTPRINT“;TRYTHREADSLEEP10;CATCHEXCEPTIONESYSTEMOUTPRINTLN“;FILEFILENEWFILEFILENAME;/取得文件输入流AUDIOINPUTSTREAMAUDIOSYSTEMGETAUDIOINPUTSTREAMFILE;AUDIOFORMATAUDIOINPUTSTREAMGETFORMAT;/转换MP3文件编码IFAUDIOFORMATGETENCODINGAUDIOFORMATENCODINGPCM_SIGNEDAUDIOFORMATNEWAUDIOFORMATAUDIOFORMATENCODINGPCM_SIGNED,AUDIOFORMATGETSAMPLERATE,16,AUDIOFORMATGETCHANNELS,AUDIOFORMATGETCHANNELS2,AUDIOFORMATGETSAMPLERATE,FALSE;AUDIOINPUTSTREAMAUDIOSYSTEMGETAUDIOINPUTSTREAMAUDIOFORMAT,AUDIOINPUTSTREAM;/打开输出设备DATALINEINFODATALINEINFONEWDATALINEINFOSOURCEDATALINECLASS,AUDIOFORMAT,AUDIOSYSTEMNOT_SPECIFIED;SOURCEDATALINESOURCEDATALINEAUDIOSYSTEMGETLINEDATALINEINFO;SOURCEDATALINEOPENAUDIOFORMAT;SOURCEDATALINESTART;/创建独立线程进行播放ISSTOPFALSE;THREADPLAYTHREADNEWTHREADNEWPLAYTHREAD;PLAYTHREADSTART;CATCHEXCEPTIONEEPRINTSTACKTRACE;44系统运行截图系统主要进行一些基本的儿童绘图操作。考虑到一些吸引儿童的因素,系统界面必须做到简洁性与可玩性的结合。程序部分运行截图如图41、42、43、44、45所示。图41程序进入启动界面图42程序初始界面图43播放音乐按钮图44换背景图片按钮图45绘图界面5总结与展望本文主要研究的内容是如何通过JFRAME、JFLASH设计一个满足所需的软件体系架构,论文的主要贡献在于研究并实现了一个具有商业价值的儿童绘画软件系统;2)建立了一个典型的儿童绘画应用软件的MVC架构,将为日后围绕此软件架构,开发软件产品线具有重要的意义,是重要的组织资产。本课题从色彩、界面构图、界面交互三个方面符合儿童的喜好需求。儿童不是成人的缩小版,他们是作为独立人格存在的。通过观察记录儿童绘画的特点,发现了儿童在造型喜欢简洁造型,色彩喜欢鲜艳的红、黄、绿、蓝、橙、粉红等,构图多采用平衡居中的构图方式。在理论依据的基础上进行需求分析,在需求分析的基础上详细设计了各个功能模块。本文具体实现了以下功能具备一般绘画软件的色彩、图元编辑、图形文件操作等功能,除此之外考虑儿童兴趣,加入了卡通元素及声音元素等。本文最终完成了系统的设计与实现,但是由于本人水平有限,虽然目前该系统已经实现了一些功能,但是在很多方面还可以进行更细致更人性化、适用范围更广的需求开发,使动态界面的效果进一步提高。总之,随着人们生活水平的不断
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年甘肃省武威市、嘉峪关市、临夏州中考地理真题含答案
- 专业婚礼策划与摄影服务合同
- 生物学细胞生物学概念考察
- 甲醇中试平台建设的技术路线与工艺选择分析
- 建设工程安全施工合同
- 加强党组织在学校治理中的核心引领作用
- 英语听说读写全方位训练
- 2025年心理学与教育跨学科考研试题及答案
- 2025年艺术心理学基础理论与实践测试题及答案
- 2025年食品科学与工程研究生入学考试试卷
- 浙江省浙南名校联盟2024-2025学年高二下学期4月期中生物试卷(含答案)
- 2025公需课《新质生产力与现代化产业体系》考核试题库及答案
- 医疗供应链精细化管理保障药品安全与供应策略
- 公司适用职业健康安全法律法规标准清单
- 种子萌发过程中的生物化学动态研究
- 外科创伤处理-包扎技术课件
- 小三断绝关系协议合同
- 二级注册计量师考试知识点大全2025
- 医院护理清单式管理流程
- 2025云南省德宏州瑞丽市人民医院合同制聘用人员招聘(2人)笔试参考题库及答案解析
- 无人配送车辆故障诊断与维护-深度研究
评论
0/150
提交评论