毕业设计
基于Java技术的音频播放软件的设计与实现
李鸿青
200730800113
指导教师
戴占海讲师
学院名称
理学院
专业名称
光信息科学与技术
论文提交日期
2011年4月
论文答辩日期
年 月
答辩委员会主席____________
评阅人____________
摘要
随着计算机系统的日趋复杂,人们逐渐感觉到旧有软件设计体系的局限性。由此,对旧有软件设计体系的变革也应运而生。在面向过程的软件设计方法中,人们渐渐感受到将系统模块化这样的设计方法可以让系统更富有可用性、可伸缩性、可靠性、可维护性,从而在不断变化的需求中获得较为理想、较为适应的解决方案。但是这显然是不够的,因为由面向过程的程序设计语言所带来的局限性始终无法更大程度地解放人们的大脑,所以面向对象的编程语言开始诞生。
本文设计基于Java SE平台,使用Java Sound和Java spi架构设计,以模块化为设计指导。
本文设计的Java播放器主要由以下几个模块组成:
(1)插件系统:主要包括对于整个系统的初始化,加载播放核心,加载插件,插件管理等功能。
(2)日志记录模块:使用成熟的log4j解决方案。
线程池:用于多线程操作时避免线程初始化/销毁等操作所带来的高资源消耗。
(3)播放核心:使用Java Sound架构,实现基本的播放控制逻辑,实现对DSP支持的接口。
(4)控制台模块:简单的控制台程序,实现对播放器的控制,作为插件被插件系统加载。
(5)GUI模块:简单的GUI界面,实现对播放控制的可视操作,作为插件被插件系统加载。
本文基于Java平台Java Sound框架设计并开发实现了音频播放软件的基本功能以及其插件系统。尽管这个音频播放软件还十分粗糙,还仅仅只是个原型。但这些不足以及没有实现的功能都可以通过延续本文的设计思路,设计相关的插件来完善。
关键词 Java Sound 音频播放 面向对象 面向接口编程 插件系统
目录
1 引言 5
软件开发的困难 5
复杂性是软件开发过程中所故有的特质 5
计算机表达能力的局限性 5
软件开发困难的解决方法 5
面向对象的编程方法 5
Java语言 6
2 面向对象的软件开发 6
软件需求 6
可行性分析 7
系统概要设计 8
使用技术简介 9
采样音频 9
Java Sound 10
Java SPI 12
JNI与JNA 12
Swing 12
3 关键模块设计 13
插件系统 13
PluginSystem 13
PluginSystemDelegator 15
LplayerPlugin 16
Lplayer 17
配置管理器 18
日志记录系统 19
线程池 20
已实现插件 21
Console for LPlayer 21
SimpleGUI 22
4 结论 22
致谢 24
参考文献 25
Abstract 26
1 引言
软件开发的困难
复杂性是软件开发过程中所故有的特质[1]
在70年代,软件系统已经变得极其复杂,无论是开发还是维护都是一项成本高昂的工作。而随着软件系统的越来越庞大,其复杂度也以更大的比率增长着。
复杂度的提高,这就要求人们要有更好的管理方法、开发方法让软件开发变得更加可控。
计算机表达能力的局限性
软件系统的开发本身就是在将人类大脑中的虚拟印象表达出来。而计算机系统与人类的沟通途径就是通过各种各样的编程语言来实现。通过编程语言这样的媒介,人们可以把要实现的东西告诉计算机。这样计算机才知道怎么去做。
这就引出了一个问题,编程语言这种媒介在人们与计算机之间的沟通桥梁是否有效,是否高效?这就是计算机表达能力的局限性。而随着时代在发展,计算机编程语言也在不断进步。从一开始的二进制指令到汇编语言、从汇编语言到面向过程的编程语言、再到面向对象的编程语言。这一切都是在降低沟通的消耗。
而另一方面,人类大脑的想象力、创新能力是无穷的,但是计算机系统的能力确实有限的。如何在有限的能力里将无穷的可能给创造出来,这也是一门科学。
软件开发困难的解决方法
软件开发的困难一方面是软件开发本身所具有的复杂性。另一方面则是人们与计算机系统之间沟通工具的可用性及计算机系统本身能力的局限性。
而人们在面对这些问题的时候,很大程度上是通过改进编程
面向对象的软件开发 来自淘豆网m.daumloan.com转载请标明出处.