版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
中国地质大学长城学院本科毕业设计题目基于iOS系统的在线音乐播放器手机app设计系别管理科学与工程系专业信息管理与信息系统学生姓名学号指导教师职称高级工程师2016年3月7日中国地质大学长城学院毕业论文任务书学生姓名学号专业班级2012级信管2班指导教师职称高级工程师单位中国地质大学长城学院毕业论文题目基于iOS系统的在线音乐播放器手机app设计毕业设计主要内容和要求: 主要内容:近年来,随着智能手机的大众化,越来越多的人使用智能手机。用手机听音乐也成为当今社会人们必不可少的一项娱乐活动,市场上的音乐播放器品牌繁多,定位不一,充分满足了各层次消费者的需求。最新的调查显示比较大的音乐播放器市场,并不是很乐观。而外形新颖、小巧轻便灵活的迷你播放器却很受年轻人的青睐和欢迎。此次设计是基于ios系统,为了使用户体验更加方便,开发简洁优化的在线音乐播放器,并将所学知识运用到设计过程中去。App的内容主要包括:从网络上搜索想要的歌曲、播放本地货网上的歌曲、暂停歌曲播放等。要求:严格按照软件开发思想和管理系统的开发步骤,以系统开发过程为主线,从需求分析,概要设计、详细设计、系统编码以及系统测试、实施各阶段的主要内容和成果,包括系统结构图、业务流程用途、数据流程图、数据字典、界面设计等等。要求整个系统的设计完整,功能齐全,代码正确,符合编程规范。使用ios布局文件搭构界面,使用IOS开发工具Xcode进行设计。毕业论文主要参考资料:[1]MarkDalrymple/ScottKnaster.Objectie-C基础教程[M].人民邮电出版社,2009.7[2]AppleInc.多线程指南[M].有米移动广告指南,2008.1[3]张立明.iOS高级内存管理编程指南[M].苹果公司,2011.6[4]林超旗.HTTP协议详解[M].2010.6[5]罗建川,刘守印,胡君红,彭新生.实时传输协议RTP的研究及其应用计算机工程与应用[M]2001.8[6]杨正洪.Objective-C程序设计[M],清华大学出版社,2001.7[7](美)坎贝尔.iPhoneSDK3开发快速上手[M],机械出版社,2011.8[8]MarkDalrympleScottKnasterObjective-C基础教程[M].北京人民邮电出版社。2012.7[9]StephenG.KochanObjective-C程序设计(第四版)[M].北京电子工业出版社2011.1[10]王水软件工程[M]河南科学技术出版社2012.8[11]萨丹IPhone开发秘籍[M].人民邮电出版社2010.1毕业论文应完成的主要工作:1.完成该课题的开题报告、系统的具体功能设计、界面设计和代码编写。.2.需要对当前存在的类似客户端进行数据挖掘,对用户的需求做出准确的需求分析。3.开题报告之前要撰写出毕业设计的大纲,并根据开题报告中教师提出的意见进行修改。4.确定大纲之后认真的撰写论文和进行app的设计,并根据指导教师的意见进行修改。.5.必须实现包括上述功能实用性强的软件系统,提交可执行代码以及相应文档说明,论文终稿按要求打印上交。毕业论文进度安排:序号毕业论文各阶段内容时间安排备注1确定论文题目2016年9月6日-9月9日2下达论文任务书2016年9月10日-9月12日3撰写开题报告2016年9月13日-10月18日4开题答辩2016年9月19日5毕业实习,搜集论文资料,撰写论文初稿2016年10月21日-2016年3月31日6将论文初稿交指导老师评阅,在老师的指导下修改论文,直至最终定稿2016年4月1日-4月30日7专家评阅毕业论文2016年5月1日-5月15日8毕业论文答辩2016年5月16日-5月27日9评定论文成绩2016年5月28日-5月30日课题信息:课题性质:设计√论文□课题来源:教学□科研□生产□其它□发出任务书日期:指导教师签名:年月日中国地质大学长城学院毕业论文开题报告学生姓名:学号:专业班级:2012级信管2班指导教师:职称:高级工程师单位:中国地质大学长城学院课题性质:设计√论文课题来源:科研□教学□生产√其它□毕业论文题目基于iOS系统的在线音乐播放器手机app设计一、研究目的和意义随着科技的发展,手机的音乐播放功能已经是大家比较关注的一部分了,几乎市场上所有的手机都拥有一个自带的音乐播放软件,通过软件可以对音乐欣赏中一些必要的元素进行人性化的设置,同时在操作的时候也能得到一定的便利,最新调查发现,外形新颖、小巧轻便灵活的迷你播放器很受年轻人的青睐和欢迎,所以本次设计就致力于开发一款基于ios手机平台的在线音乐播放器,来满足用户的使用需求。二、研究现状随着电子产品的大众化,高科技给我们生活带来了便捷,舒适,高效的体验,基于ios操作系统的苹果产品已经成为当今中国电子市场上不可或缺的一部分,在众多智能手机操作系统中,吴洁明在《软件工程实例教程》中指出IOS操作系统现对于安卓系统稳定很多且操作简单,在IOS系统上只做一款小巧精美,并且功能强大的音乐播放器会很受欢迎。冯冲在《界面中的注意力设计》中阐明一款好的音乐播放器的人性化界面和扩展性是各种音乐播放器的特色所在,大部分商业版播放软件往往将界面打造的非常华丽,操作也十分方便,但也缺乏简洁性,支持的格式也较少,非开源播放软件一般能够很好地进行界面简化,支持较多的音乐格式。此次设计的在线音乐播放器就是基于iOS平台设计的,支持mp3等主流音频,资源占用率小,运行效率高,操作简洁,扩展功能强。在线音乐播放器开发过程中采用Objective-C语言和Sqlite数据库编程开发,杨正洪在《Objective-C程序设计》中指出iOS操作系统相对于其他手机操作系统具有良好的编程风格和界面设计以及系统封装性好,方便用户操作。三、研究内容在线音乐放器的设计可分为基本程序编译,UI界面设计,UI网络连接等内容。自己综合现有音乐播放器的特点以及用户的需求评价,具体设计内容如下:完成虚拟机的安装与配置实现在线试听功能实现歌曲搜索功能自己设计播放器界面完成相关程序编码并提交;四、进度安排序号毕业论文各阶段内容时间安排1确定论文题目2016年9月6日-9月9日2下达论文任务书2016年9月10日-9月12日3撰写开题报告2016年9月13日-10月18日4开题答辩2016年9月19日5毕业实习,搜集论文资料,撰写论文初稿2016年10月21日-2016年3月31日6将论文初稿交指导老师评阅,在老师的指导下修改论文,直至最终定稿2016年4月1日-4月30日7专家评阅毕业论文2016年5月1日-5月15日8毕业论文答辩2016年5月16日-5月27日9评定论文成绩2016年5月28日-30日六、预期结果通过对在线音乐播放器的设计,开发出一款集登录注册、歌词同步、单曲循环播放、观看MV等功能于一体的高性能APP,实现足不出户收听高品质音乐,而且在线音乐播放器具有边听边缓存的功能,爱听音乐的朋友在使用的时候可以不连接网络就可以享受高品质音乐带来的乐趣。每个用户可以注册一个自己的账号,然后把自己喜欢的歌曲收藏在文件夹里,防止错过每一首好歌,在使用过程中假如遇到一些问题可以通过意见反馈对话框反映给开发者,使它能够更贴近用户的需求,实现不断的自我完善。七、参考文献[1]乔纳森AppStore掘金[M]人民邮电出版社2010.1[2]吴洁明软件工程实例教程[M]清华大学出版社2010.11[3]冯冲界面中的注意力设计北京交通大学2012.10[4]杨正洪著,Objective-C程序设计[M],清华大学出版社,2001[5](美)坎贝尔著,刘红伟译,iPhoneSDK3开发快速上手[M],机械出版社,2011[6]王珊,萨师煊.数据库系统概论[M].北京:高等教育出版社,2006[7]金福生,李朴之.iOS应用程序开发方法与实践[M].北京:人民邮电出版社,2012[8]陈禹.信息分析与设计[M].北京高等教育出版社,2006[9]夏梦.基于iOS的车联网手机客户端的设计与实现[D].南昌大学2014[10]冯冲界面中的注意力设计北京交通大学.2012指导教师意见:指导教师签名:年月日教研室意见:审查结果:同意□不同意□教研室主任签名:年月日中国地质大学长城学院本科毕业设计文献综述系别:管理科学与工程系专业:信息管理与信息系统姓名:学号:2016年3月7日前言现今移动互联网成为人们热议的话题,各式各样的移动操作平台也层出不穷,以下是几个现今比较流行的移动操作平台:iOS、Android、BlackBerry、Java
ME、Windows
Phone、mobile
web。其中苹果系统以其开放性、良好的用户体验、性价比高等等优点,(2014年底苹果占全球份额的85%)抢占了移动互联网市场的大部分。而基于iOS移动终端的音乐播放器的设计是一门集计算机技术和数字多媒体技术于一体的综合设计。随着中国计算机技术、宽带网络的发展,越来越多的人开始重视多媒体播放器的发展与应用,在当今信息社会以多媒体为特征的信息技术和信息产业的发展及应用对人类社会产生的影响和作用愈来愈明显,愈来愈重要。而音乐作为多媒体的一个重要组成部分能改变信息的包装,实现知识信息数字化,为人们获得知识信息提供极大地方便和无穷的乐趣。友善的人界面、有人的电子游戏项目、身临其境的多媒体导购系统等等,无不渗透着多媒体的作用,他引导人们进入一个有声有色的世界。同时,多媒体的发展和应用,极大地推动了各行各业的相互渗透和飞速发展,大大改变了人类社会的工作环境和生活方式,可毫不夸张的说,多媒体产业的形成与发展,不仅引起了计算机工业的一次革命,也正在深刻影响着人类社会发生巨大的变革。多媒体技术的发展在很大程度上依靠于多媒体软件开发的水平。
2国外研究状况在国际音乐市场上,因为互联网极大的降低了数据流动的成本和音乐这种容易被数字化的特征,音乐数据在互联网上被快速广泛的传播是必然的事情,这就造成了互联网上大量的音乐盗版下载不断发生,直接导致了“互联网杀死音乐产业”的论调。苹果则打破了这种桎梏,其iPod用户通过iTunes,可以轻松找到想要的音乐,便宜的价格,便捷的付费,从外观到内容,苹果为音乐迷提供更好的用户体验,通过这种模式,苹果很快控制了整个在线音乐服务,向下掌控用户,向上掌控音乐开发商。从业界的角度分析,依托苹果生态凭借互联网优良的流动性,音乐数据化技术的成熟,以及支付方式的便捷有效降低交易成本,以及音乐领域的长尾效应。3国内研究状况国内与国外相比算是起步比较晚的了。国内自2011年起步以来,其规模和系统完善性都有待提高,伴随智能手机的普及,越来越多的人接受了苹果手机,并开始慢慢习惯了简单快捷的操作方式,省时省力的挑选流程,使人们认识到了iOS系统的优东华理工大学毕业设计(论文)系统设计点,目前,各种各类的移动互联网APP的开发如雨后春笋般地活跃在市场上,在国内也有一大块蓝海等着大家去发现也挖掘。如果能把我住这个机会,我想一定能创造出堪比BAT的神话。iPhone在中国极受欢迎。国内的各大通信运营商都看到了iPhone在国内的前景,都纷纷地与苹果公司合作(合约机、优惠套餐等方式)。APPle公司也没有这些运营商、客们失望,凭借iPhone自身的优点慢慢地国内市场上发出光芒。虽然iOS在国内兴起不超过五年,但是在国内已经有了大量的相关学习的机会和学习资料。给我我们自学提供了良好的环境。在播放器方面,国内移动增值业务科伟异彩纷呈,其中人气最旺的当属无线音乐。迅速崛起的多媒体音乐,给用户带来了崭新的娱乐体验,成为推动多媒体音乐全面崛起的生力军,数字多媒体音乐的迅猛发展,是无数企业对其青睐不已。音乐行业未来发展的方向在于数字音乐,中国互联网多媒体音乐用户占世界前列,只要解决了版权问题,数字多媒体音乐的收入未来几年就可能出现几十倍或者上百倍的增长,前景十分乐观。4总结通过以上的文献阅读和参考,使我更加深了对iOS应用开发的理解,并很好地应用到了实践中,音乐播放器手机客户端应用程序能够很好的完成也要感激于这些文献的引导,虽然在做的过程中遇到一个又一个困难,不过最后也都一一解决,我会在今后不断的实践中努力完善自己,不断学习,以提高自身水平。参考文献[1]叶佳俊基于“云”技术的音乐播放器设计.中国量学院.2012[2][美]DaveMark,JackNutting,JeffLaMarcheiOS5基础教程.人民邮电出版社.2012[3]冯冲界面中的注意力设计北京交通大学.2012[4][美]StephenG.Kochan.Objective-C程序设计[M].电子工业出版社.2012[5][美]JonatbanZdziarskiAppStore掘金.人民邮电出版社.2010[6][美]DaveMark,JackNutting,JeffLaMarche.iOS基础教程[M].人民邮电出版社.2012[7]王珊,萨师煊.数据库系统概论[M].北京:高等教育出版社,2006[8]金福生,李朴之.iOS应用程序开发方法与实践[M].北京:人民邮电出版社,2012[9]陈禹.信息系统分析与设计[M].北京:高等教育出版社,2005[10]夏梦.基于iOS的车联网手机客户端的设计与实现[D].南昌大学2014[11]许振.TeleNavTrack产品及手机客户端软件分析与设计[D]山东大学2007[12]丁增五.基于MAS的通用手机客户端系统构建[D].复旦大学2010[13]李立锋.基于位置服务Internet查询系统的手机客户端软件开发[D].兰州大学2012[14]CarloChung.Objective-Cprogrammingway[M].WileyPublishing,2011[15]JivaDeVoe.GoodknowledgeofObjective-C[M].WileyPublishing,2012中国地质大学长城学院本科毕业论文题目基于iOS系统的在线音乐播放器手机app设计系别管理科学与工程系专业信息管理与信息系统学生姓名学号指导教师2016年3月7日基于iOS系统的在线音乐播放器手机app设计摘要基于iOS系统的在线音乐播放器,是为了给用户提供更好的音乐播放效果,更家方便的用户操作,享受音乐带来的乐趣。目前大多数音乐播放器都是以计算机和电子设备做为载体,在享受音乐带来乐趣的同时,占用系统内存比较大,此次设计的音乐播放器可以合理避免内存过大造成闪退的状况。基于iOS的在线音乐播放器针对iPhone设备研发。因为移动设备的便利性,使音乐播放器的方便性和易操作性得到了很大的提高。本设计对开发中遇到的问题和解决方法进行了详细的讨论,该音乐播放器集播放、暂停、停止、快进、快退、下一曲、上一曲、音量调节等功能于一体,性能良好。第一阶段先对项目进行全面的、仔细的需求分析,并准确做出项目进度安排,明确每个阶段的任务;第二阶段是进行项目分模块编码;第三阶段对项目进行全面测试和系统集成测试。在程序的开发上,因为OC语言的不可跨平台性,所以只在OSX系统上进行编码,目前,基于iOS的在线音乐播放器的手机客户端已经完成测试,达到预期效果。关键词:音乐播放器;iOS;Objective-CAbstractIOSsystembasedontheonlinemusicplayer,inordertoprovideuserswithbettermusictoplaytheeffect,moreconvenientoperationoftheuser,toenjoythefunofmusic.Atpresent,mostmusicplayersarebasedoncomputersandelectronicequipmentasthecarrier.IOSbasedonlinemusicplayerforiPhoneequipmentresearchanddevelopment.Becauseoftheconvenienceofmobiledevices,themusicplayer'sconvenienceandeaseofoperationhasbeengreatlyimproved.ThisdesignusingtheObjective-ClanguageandXcodecompilationtoolsfortheplayertowrite,andgivesthedetailedsystemdesignprocess,partoftheinterfacediagramandmainfunctionflowchartoftheoperation,thispaperalsoontheproblemsencounteredinthedevelopmentandsolvingmethodsarediscussedindetail.Themusicplayer,setplay,pause,stop,fastforward,rewind,asong,asong,adjustthevolumeandotherfunctions,goodperformance,inthedevelopmentprocessusingthewaterfallmodel.Thefirststagetotheprojectofcomprehensiveandcarefuldemandanalysis,accuratelymakingtheprojectschedule,cleartasksineachstage;thesecondstageistheprojectsubmodulecoding;thethirdstageoftheprojectofcomprehensivetestingandsystemintegrationtesting.Inthedevelopmentprocess,becausetheObjective-Clanguagecannotbecrossplatform,soonlyintheOSXencode,atpresent,basedonendofmobilephoneclientofIOSmusicplayeronlinetestinghasbeendonetoexpectedresults.Keywords:MusicPlayer;iOS;Objective-C目录257361前言 1170541.1软件开发背景及意义 1201071.2发展现状及趋势 16211.3主要研究方法及过程 2166982相关技术简介 343912.1OC语音简介 3269572.2AVaudioplayer技术 35832.2.1AVaudioplayer的体系结构 3101202.2.2AVaudioplayer混频原理 4107222.3JDK技术 5175173需求分析 7266773.1功能需求 7230623.1.1播放器的基本控制需求 716533.1.2功能需求分析 7282313.2运行及其它需求分析 8223223.3可行性分析 8178563.3.1经济及技术可行性 878923.3.2运行及法律可行性 98444软件结构及界面设计 10308884.1打开文件菜单下的详细设计 13128254.1.1打开文件设计 13244244.1.2退出系统设计 1323784.2播放菜单下的详细设计 14312674.3显示菜单下的详细设计 1441704.4帮助菜单下的详细设计 15141264.5播放列表的详细设计 16235904.6播放按钮的详细设计 17243895.结论 19770参考文献 2018156外文翻译 2118156致谢 21前言1.1课题来源及研究背景 当今社会的生活节奏越来越快,人们对手机的要求也越来越高,由于手机市场发展迅速,使得手机操作系统也出现了不同各类,现在的市场上主要有三大手机操作系统,Windowsphone,Android,以及iOS操作系统,其中iOS系统有很大的发展前景。那么能否在手机上拥有自己编写的个性音乐播放器呢,本文的音乐播放器就是基于iOS手机平台的播放器。1.2开发目的及意义 现今社会生活紧张,而欣赏音乐是其中最好的舒缓压力的方式之一。随着人们的生活水平越来越高,人们对音乐的需求也越来越高,而传统的音乐播放器又限于手机内存,在音乐的分类和管理上有着很大的局限性。本设计的实现的是对音乐能够控制播放,暂停,停止,上一曲,下一曲,音量调节,视觉外观,播放列表和歌曲文件的管理操作等多种播放控制功能,界面简明,操作简单。添加了对网络音乐的支持,使得手机只需要联网就会瞬间拥有百万首歌曲,不必在局限于手机内存。丰富的歌曲分类功能,使得繁多网络歌曲的管理,更加的仅仅有条。这样就打破的传统播放器内存的限制,是人们能够享受到更加丰富的歌曲。本项目是一款基于iOS手机平台的音乐播放器,使iOS手机拥有个性的多媒体播放器,使手机显得更生动灵活化,与人们更为接近,让手机主人随时随地处于音乐视频的旋律之中。使人们的生活更加多样化。也使设计者更加熟练iOS的技术和其它在市场上的特点。1.3课题研究内容 本系统紧跟当前移动手机开发趋势,使用Objective-c语言开发一个基于iOS平台的音乐播放娱乐系统,实现基于iOS平台的音乐播放娱乐系统的基本功能。歌的切换以及列表显示,在听歌的同时能够更好娱乐1.4论文的组织与结构 第一章为绪论,介绍了本文的选题背景和意义,总结国内外音乐播放器研究现状,同时对论文研究内容安排进行阐述。第二章对系统中涉及的相关理论和关键技术进行了研究,对Objective-C开发语言、iphone手机系统和MacOS相关技术进行了介绍和分析。第三章对系统进行研究,阐述了系统的功能和性能和UI界面的设计和实现。第四章在前面三章基础上研发出iPhone的音乐播放软件,同时,对系统各模块设计和实现进行分析,其中对关键技术给出了详细实现过程。最后是论文的总结。2.相关技术概述2.1系统架构及开发环境简介 开发iOS软件需要使用苹果官方发布的Xcode工具软件,Xcode软件目前已更新到第6版本,是一款相当强大的开发工具。使用Xcode我们将按图2-1来实现播放器的功能。用户基本操作用户基本操作播放暂停上一首下一首快进快退播放模式单曲循环顺序播放随机播放图2-1播放器功能图2.2音乐播放器应用控件及组件介绍 开发iOS软件使用OC语言,并使用苹果公司所开发集成的Xcode软件,开发音乐播放器需使用到下列方法。SystemSoundServicesSystemSoundServices是最底层也是最简单的声音播放服务,调用AudioServicesPlaySystemSound这个方法就可以播放一些简单的音频文件,使用此方法只适合播放一些很小的提示或者警告音,因为它有很多限制:如:声音长度要小于30秒、InlinearPCM或者IMA4(IMA/ADPCM)格式的打包成.caf,.aif,或者.wav的文件、不能控制播放的进度、调用方法后立即播放声音、没有循环播放和立体声控制,另外,它还可以调用系统的震动功能,方法也很简单。具体的代码可以参考官方的示例
SysSound,但是官方的示例只有一些简单的用法,从文档中我们发现可以通过AudioServicesAddSystemSoundCompletion方法为音频播放添加CallBack函数,有了CallBack函数我们可以解决不少问题,比如可以克服SystemSoundServices本身不支持循环播放的问题。AVAudioPlayer类AVAudioPlayer是AVFoundation.framework中定义的一个类,所以使用要先在工程中引入AVFoundation.framework。我们可以把AVAudioPlayer看作是一个高级的播放器,它支持广泛的音频格式,主要是以下这些格式:AAC、AMR(AdaptiveMulti-Rate,aformatforspeech)、ALAC(AppleLossless)、iLBC(internetLowBitrateCodec,anotherformatforspeech)、IMA4(IMA/ADPCM)、linearPCM(uncompressed)、μ-lawanda-law、MP3(MPEG-1audiolayer3
。AudioQueueServices如果以上两种音频播放的解决方案都无法满足你的需求,那么我想你肯定需要使用AudioQueueServices。使用AudioQueueServices对音频进行播放,你可以完全实现对声音的控制。例如,你可以在声音数据从文件读到内存缓冲区后对声音进行一定处理再进行播放,从而实现对音频的快速/慢速播放的功能。MPMusicPlayerController有两种播放器可以选择,一种是applicationmusicplayer,另外一种是iPodmusicplayer。第一种播放器是一种内部播放器,当程序对出后停止播放;而第二种播放器则与iPod播放器内的信息相关,退出之后不会停止播放。在播放之前需要设置队列。MPMoviePlayerControllerMPMoviePlayerController与AVAudioPlayer有点类似,前者播放视频,后者播放音频,不过也有很大不同,MPMoviePlayerController可以直接通过远程URL初始化,而AVAudioPlayer则不可以。不过大体上用起来感觉差不多。格式支持:MOV、MP4、M4V、与3GP等格式,还支持多种音频格式2.3音乐播放器的生命周期 音乐播放器行业市场供给分析及市场供给预测包括现在音乐播放器行业市场供给量估计量和预测未来音乐播放器行业市场的供给能力。音乐播放器行业市场需求分析及音乐播放器行业市场需求预测包括现在音乐播放器行业市场需求量估计和预测音乐播放器行业未来市场容量及产品竞争能力。通常采用调查分析法、统计分析法和相关分析预测法。音乐播放器行业市场需求层次和各类地区市场需求量分析即根据各市场特点、人口分布、经济收入、消费习惯、行政区划、畅销牌号、生产性消费等,确定不同地区、不同消费者及用户的需要量以及运输和销售费用。音乐播放器行业市场竞争格局包括市场主要竞争主体分析,各竞争主体在市场上的地位,以及行业采取的主要竞争手段等;估计音乐播放器行业产品生命周期及可销售时间即预测市场需要的时间,使生产及分配等活动与市场需要量作最适当的配合。通过市场分析可确定产品的未来需求量、品种及持续时间;产品销路及竞争能力;产品规格品种变化及更新;产品需求量的地区分布等。音乐播放器行业市场分析报告可为客户正确制定营销策略或投资策略提供信息支持。企业的营销策略决策或投资策略决策只有建立在扎实的市场分析的基础上,只有在对影响需求的外部因素和影响购、产、销的内部因素充分了解和掌握以后,才能减少失误,提高决策的科学性和正确性,从而将经营风险降到最低限度。2.4音乐播放器应用技术的介绍 Objective-C是非常实际的语言。它是一个用C写成、很小的运行库,只会令应用程序的尺寸增加很小,和大部分OO系统使用极大的VM执行时间会取代了整个系统的运作相反。Objective-C写成的程序通常不会比其原始码大很多。而其函式库(通常没附在软件发行本)亦和Smalltalk系统要使用极大的内存来开启一个窗口的情况相反。因此,Objective-C它完全兼容标准C语言(C++对C语言的兼容仅在于大部分语法上,而在ABI(ApplicationBinaryInterface)上,还需要使用extern"C"这种显式声明来与C函数进行兼容),而在此基础上增加了面向对象编程语言的特性以及Smalltalk消息机制。Xcode最新版本是Xcode6,整合了苹果在WWDC大会上发布的新语言Swift。3系统分析2.1可行性分析可行性分析指的是对APP需求的主要内容以及开发条件全面分析,例如市场需求分析、资源供应、建设规模大小、制造工艺路线、型号、筹措资金、盈利方式等。从各个方面(技术、经济、规模)统筹分析,计算出预算、客观地预估经济收益。来判定该项目是否可行。从而提出该项目是否值得投资以及意见,为项目决策提供了有力依据的一种综合性的系统分析方案。2.1.1经济可行性分析既然我们选择了做APP,我们必不可少的要关注经济可行性分析。比如我们APP的赢利点在什么地方、我们在开发过程中需要计算我们开发这个项目的资金成本、时间成本、是否我们后期的收益可以弥补这些前期的投入。当然我们也不能一味的去追求经济效益。经济可行性分析中的“经济”不仅仅是普遍意义上的经济,也代表着社会经济效益。所以在开发中我不们开发者不能时时刻刻着想着钱,更应该从更多更片面的角度去看待经济可行性分析工作。一般来讲,开发APP的成本花销主要由以下四部分组成的:1)购置、安装软硬的费用。2)系统开发的费用。3)系统安装、运行、维护的费用。4)员工培训的费用。所以结合毕设的整个开发过程可以知道开发网络音乐播放盒所需要的全部软件平台都是免费的,所以从经济可行性上来看是完全可行的。2.1.2技术可行性分析技术可行性也是开发一款APP必不可少的工作。这个工作要求开发人员根据自身或者团队的整体技术能力来判断需求是否能满足客户需求。哪一些我们现在的能力可以完全胜任,又有哪一些我们需要调研学习之后可以做到,还有哪一些我们做不到,需要更优秀的人才来补充。这个过程中我们要做充分的考察,尤其是在遇到了我们可能无法解决的问题的时候,我们不要轻易地说放弃。我们要充分利用互联网带来的便利,我们可以去网上去搜素相关的资源。这一切的一切最终的目的就是要尽最大可能去满足客户的需求。但本毕设因为只是我一个人在做并且项目涉及的业务逻辑也并不是很复杂,所以技术可行性分析我并没有太多去考虑。2.2需求分析需求分析是指在建立一个新的APP的时候,对这个APP的目的、定义、功能这些方面所要做的工作进行统一规划。需求分析是完成一APP不可或缺的部分。开发APP的过程中,我们必须跟客户先进行一个认真的沟通并大致地了解客户的需求。然后我们根据客户的需求来做产品设计,做完之后将产品设计上交给客户,让客户来提修改意见。如此反复我们才能最终敲定好一款APP的外形。万丈高楼平地起,我们不要忽视这个过程,更不能懈怠这个过程。因为如果我们在这个过程中进展的很成功,那么我们后期开发起来会非常得心应手。如果外形靓丽、小巧灵活的mini音乐播放盒却很受年轻人们的青睐。市场的发展前景不容忽视。综上,设计音乐播放盒子的重点要偏向于靓丽的外观和吸引人的性能表现,小体积却能够实现相对更多的功能。新型的mini音乐播放盒也要附加功能,这样就能够更好地抓住用户的眼球。2.3系统定义针对基于iOS系统酷狗APP的需求分析,实现基本的音乐播放器功能,并允许用户访问豆瓣服务器,播放豆瓣服务器的多媒项目。2.4功能需求此次APP的设计的大致运行流程:首先,用户在苹果设备APP,立马映入眼帘的是APP的新版本介绍新特性。新特性描述了新版本音乐播放盒所具备的改动与新添加的功能。因为APP所用的资源几乎都来自Internet,因此,新特性只是完成一个功能的体现新特性是通过手势滑动UIScrollView来完成的,最后一页有进入按钮,单击这个进入按钮,可以直接进入到APP的主界面。程序的主界面分为两条路线。之所以是两条路线,后面的系统设计会有提到。一条路线为本地音乐,另一条路线为网络音乐。本地音乐—用户可以对其中的单个或者多个歌曲进行收藏、播放、暂停、删除等个性化操作。满足用户最基本的需求的同时还可以动态浏览播放歌曲的歌词。本地音乐列表的操作是可以单曲操作,也可以批量操作。还可以浏览音乐的详情(歌手、歌词、时长、专辑)。网络音乐通过验证登录豆瓣服务器,获取多媒体音乐文件。我们在对回传的Json格式的数据进行解析从而得到多媒体资源,APP可以访问电台,用户可以根据自己的洗好来选择自己偏爱的电台。网络音乐用例图如图2-1所示。UUser对音乐列表的操作播放歌曲暂停歌曲上一首、下一首、快进登陆豆瓣电台搜索歌曲退出图2-1网络音乐用例图3.系统设计3.1功能描述随着移动端互联网的普及,智能手机已渐渐地渐被人们接受。它也成为了移动互联网经济主体的一个重要成分,智能手机被越来越多人所接受、习惯;移动APP是基于操作系统开发。越来越多、各式各样的功能层出不穷。Android系统的开源性导致了移动客户端的质量参差不齐,但是由于iOS限制了开发者开发中必备的条件,因此,本程序只能在MAC模拟器上或者iPhone设备上使用,无法在APPLEAPPStore上下载。首先,用户在苹果设备APP,立马映入眼帘的是APP的新版本介绍新特性。新特性描述了新版本音乐播放盒所具备的改动与新添加的功能。因为APP所用的资源几乎都来自Internet,因此,新特性只是完成一个功能的体现,并不是真正意义上的新特性描述次版本的新功能,在APP的使用过程中,请不要将新特性描述放到关注重心上。新特性是通过手势滑动UIScrollView来完成的,最后一页有进入按钮,单击这个进入按钮,可以直接进入到APP的主界面。APP主页有两个选项卡。之所以是两条路线,后面的系统设计会有提到。其中一个选项卡为本地音乐,另一个选项卡为网络音乐。其中本地音乐是通过文件归档到SandBox(本地保存Plist文件)对音乐的保存。而网络音乐是利用主界面上的登陆按钮验证连接豆瓣的服务器,来访问外网服务器资源。本地音乐—用户可以对其中的单个或者多个歌曲进行收藏、播放、暂停、删除等个性化操作。满足用户最基本的需求的同时还可以动态浏览播放歌曲的歌词。本地音乐列表的操作是可以单曲操作,也可以批量操作。还可以浏览音乐的详情(歌手、歌词、时长、专辑)。网络音乐通过验证登录豆瓣服务器,获取多媒体音乐文件。进入网络音乐页面,我们看到了两个选项卡,一个是“歌手”选项卡,一个是“电台”选项卡,歌手选项卡是通过搜索歌手的姓名来搜索音乐的,同是提供下载、播放、浏览。默认歌手是刘德华。电台资源向豆瓣服务器发送GET请求,然后服务器传递回来数据。我们在对回传的json格式的数据进行解析从而得到多媒体资源。服务器上已经将同类别频道的音乐归并到一起了,这使得APP可以访问电台,用户可以根据自己的洗好来选择自己偏爱的电台。3.2系统功能模块化设计3.2.1新特性模块显示的条件:首次进入APP||判断info.Plist中的version如果与上一版本不符。此功能主要是让用户更好、更快地了解APP包含的新功能、已经修复的内容。此功能适用以营利为目的的商业客户需求,为追求更好的用户体验而制作的。因为资源有限,所以本模块功能基本来源于网络,不能用于与商业。3.2.2本地列表模块本地列表模块主要包含以下几个功能:修改功能:单击界面上的“pen”图标,可对列表中的歌曲进行修。列表的修改可以是单个歌曲,同样也可以多个歌曲。其中修改操作包括模式修改(模式修改指的是,用户在播放音乐的时候选择的播放顺序:随机、顺序、循环、单曲4个模式)、全选、加载(加载存储在本地资源包中的Plist文件,因为本APP采取DE是以Plist的方式存储,因此无法修改。又由于iOS的封闭性,导致了无法浏览本地音乐。所以此功能算是一个比较限制用户体验的功能;删除(此功能可以与全选功能配合,也可以对单个歌曲进行操作。)。音乐播放功能:本APP的名字就是音乐播放器,那么自然音乐播放成为了它的核心内容。此功能利用了OC语言分装的AVAudioPlayer类实现播放功能歌词浏览功能:此功能可以浏览存储在本地SandBox的歌词文件,因为部分的歌词文件兼容很差,所以有时会显示乱码,但基本不影响用户的正常使用。单一歌曲操作功能:对选择的歌曲个性化地放到我喜欢数组中(平时可以单独地播放我喜欢列表,这样可以完善了更好的用户体验)。3.3系统总体结构图根据需求调研结果确定APP主要包括以下几个功能模块。系统功能结构图如图3-1所示。图3-1系统功能结构图3.3数据库设计3.3.1数据库设计概述从1980至今,数据库技术在商业领域的巨大刺激下以及客户对数据库技术需求的迅速增长,致使数据库技术得到了飞速的发展。尤其表现在:数据库和各平台的相互嵌入。众所周知,SQLite是基于嵌入式的方式开发的,所以SQLite或者其他的数据库都可以和各种平台合理的嵌入,这就使得数据库领域有各式各样的变化与组合,这里我们有两种方式来设计数据库:一:以信息需求为主,处理需求为辅。这种方法称为面向数据的数据库设计方法;二:以处理需求为主,信息需求为辅。这种方法称为面向过程的数据库设计方法。数据库设计的特点如下:1.反复性(Iterative)。2.试探性(Tentative)。3.分步进行。数据库设计的过程6各阶段:需求分析、概念结构设计、逻辑结构设计、数据库物理设计、数据库实施、数据库运行和维护在设计的过程中我们应该包含两方面的内容:(1)数据结构设计:也就是设计数据库框架和数据库结构,数据库模式是各应用程序共享的结构,是稳定的、永久的结构,所以一个数据库的合理设计可以让我们后期的开发奠定一个良好的开始与基础。(2)行为(处理)设计:即设计应用程序、事务处理等结构特性不能与行为特性分离。静态的结构特性的设计与动态的行为特性的设计分离,会导致数据与程序不易结合,增加数据库设计的复杂性。3.3.2E-R图简述我理解中的ER图:将功能模型与数据模型的关系以图形的方式展示给开发人员。这样便于我们理解内容联系。更直观、更容易理解。实体型:用矩形表示,矩形框内写明实体名;属性:用椭圆形表示,并用无向边将其与相应的实体连接起来;联系:用菱形表示,菱形框内写明联系名。3.3.3系统数据库设计针对播放盒APP的特点,数据库设计各个部分的数据项与数据结构如下所示。本地音乐模型图如图3-2所示。豆瓣登陆E-R图如图3-3所示。图3-2本地音乐豆瓣登陆Alta豆瓣登陆AltavatarcreateddescIs_bannedIs_suicideIoc_idloginnametypesignatureuid其主要的表结构如下。我的音乐表如表3-1所示,豆瓣服务器表如表3-2所示。表3-1我的音乐表字段名说明类型长度可否为空主键Name歌曲名称String50否主键Singer歌手名称String10是Time歌曲时长String4否Index索引String8否Geci歌词文件String50是Playurl播放地址String1000否表3-2豆瓣服务器字段名说明类型长度可否为空主键Alt网址String300否主键avatar头像String300是created创建时间String10否desc描述String100否Is_banned字段Boolean1是Is_suicide字段Boolean1否Large_avatar大图String10否Loc_idIDString10否login登陆Boolean1否signature字段String10否type类型String10否uidIDString1000否4.系统实现4.1UI实现 播放器播放界面功能实现播放功能的具体代码如下:-(void)startMusic{openOrClose++;if(openOrClose%2==1){[startButtonsetBackgroundImage:[UIImageimageNamed:@"play_bar_passed.png"]forState:UIControlStateNormal];[smallProgressViewprogressViewBegin];currentMusicName.text=[musicArrayobjectAtIndex:curMusicNumber];NSURL*audioFileUrl=[NSURLfileURLWithPath:[[NSBundlemainBundle]pathForResource:[musicArrayobjectAtIndex:curMusicNumber]ofType:@"mp3"]];audioPlay=[[AVAudioPlayeralloc]initWithContentsOfURL:audioFileUrlerror:nil];audioPlay.delegate=self;[audioPlayplay];[smallProgressViewtheTotalTimeOfMusic:audioPlay.duration];inti=(int)audioPlay.duration/60;intj=(int)audioPlay.duration%60;totalTime.text=[NSStringstringWithFormat:@"%02d:%02d",i,j];[lastArrayaddObject:[musicArrayobjectAtIndex:curMusicNumber]];}else{[startButtonsetBackgroundImage:[UIImageimageNamed:@"playarticle_play.png"]forState:UIControlStateNormal];[smallProgressViewprogressViewStop];}}播放功能的实现是通过AVAudioPlayer类库来实现的,其中audioFileUrl是要播放音乐的本地路径。在播放的过程中通过自己封装的进度条类来判断歌曲播放的时间。4.2功能实现 播放进度的跟踪显示在播放音乐的时侯,我们希望可以看到播放的进度,通过拉动进度条来方便快捷的实现对歌曲的快进,快退的功能。通过创建一个计时器,利用计时器来实时更新进度条。而进度条的进度显示是用UISlider控件控件。其value的值为0到1,利用正在播放的时间与一共的时长之比来控制UISlider的值,达到进度条的跟着显示。UISlider具有一个change事件,可以改变value的值来设置当前播放的一个进度,来达到一个快进,快退的功能具体代码如下:-(id)init{if(self==[superinit]){self.curTime=[[UILabelalloc]init];self.curTime.backgroundColor=[UIColorclearColor];self.curTime.font=[UIFontsystemFontOfSize:12];self.curTime.textColor=[UIColorwhiteColor];}returnself;}-(double)theTotalTimeOfMusic:(double)totalTime{allTime=totalTime;returnallTime;}-(double)theTimeOfMusicRun{returntheTimeHaveRun;}-(void)progressViewBegin{theTimeHaveRun=0.0;if(theTimeHaveRun<=allTime){time=[NSTimerscheduledTimerWithTimeInterval:1.0target:selfselector:@selector(changeProgressView)userInfo:nilrepeats:YES];}}-(void)progressViewStop{[timeinvalidate];}-(void)progressViewGoOnRunning-(void)changeProgressView{theTimeHaveRun+=1.0;if(theTimeHaveRun>allTime){[timeinvalidate];}else{[selfsetProgress:theTimeHaveRun/allTime];}inti=(int)theTimeHaveRun/60;intj=(int)theTimeHaveRun%60;curTime.text=[NSStringstringWithFormat:@"%02d:%02d",i,j];}其中init方法是自动生成本身的元素,在此类中包含了进度条开始的方法,进度条暂停的方法,进度条改变的方法,以及向其他的类传输数据的方法,例如传输播放了多长的时间等等。歌词的同步显示有了以上功能,对歌词的显示以上一个必不可少的功能。即是以“时间+歌词”的格式存储。那么歌词的显示形式主要是通过播放的时间与歌词显示的时间相对比,如果一致则显示。因此,通过将歌词和时间分别用两个数组装入,当正在播放的时间与数组中某个时间相对应的时侯,显示出当前的歌词。界面上的显示方式主要是通过UILable来显示的。有的人不喜欢一句一句的看歌词,想看更多的歌词,那么就加入了全屏歌词的显示。全屏显示的歌词采用的是将所有的歌词装入可变字符串,并对每一句添加分隔符,装入UItextView中,通过正在播放时间与歌词的时间对比,来调整UItextView内容的高度。而textview具有着滑动的动画效果,使得整个歌词上移的效果更加平滑代码如下-(id)init{if(self==[superinit]){musicLicArray=[[NSMutableArrayalloc]initWithCapacity:0];totalLicArray=[[NSMutableArrayalloc]initWithCapacity:0];getAllOfMusicLrc=[[NSMutableArrayalloc]initWithCapacity:0];lineOfMusicLrc=0;}returnself;}-(void)getTheMusicLicStr:(NSString*)str{musicLicArray=[NSMutableArrayarrayWithArray:[strcomponentsSeparatedByCharactersInSet:[NSCharacterSetcharacterSetWithCharactersInString:@"[\n"]]];[musicLicArrayremoveObject:@""];for(NSString*stringinmusicLicArray){NSMutableArray*son=[[NSMutableArrayalloc]initWithCapacity:0];NSArray*arr=[stringcomponentsSeparatedByString:@"]"];NSArray*num=[[arrobjectAtIndex:0]componentsSeparatedByCharactersInSet:[NSCharacterSetcharacterSetWithCharactersInString:@":."]];CGFloatnu=[[numobjectAtIndex:0]integerValue]*6000+[[numobjectAtIndex:1]integerValue]*60+[[numobjectAtIndex:2]integerValue];NSString*number=[NSStringstringWithFormat:@"%.0f",nu];//[sonsetObject:[arrobjectAtIndex:1]forKey:number];[sonaddObject:number];[sonaddObject:[arrobjectAtIndex:1]];[totalLicArrayaddObject:son];}for(inti=0;i<[totalLicArraycount];i++){[getAllOfMusicLrcaddObject:[[totalLicArrayobjectAtIndex:i]objectAtIndex:1]];}}-(NSString*)getTheTimeOfMusic:(double)time{doubledoi=time*100;for(inti=0;i<[totalLicArraycount];i++){if(doi>=[[[totalLicArrayobjectAtIndex:i]objectAtIndex:0]doubleValue]&&doi<[[[totalLicArrayobjectAtIndex:i+1]objectAtIndex:0]doubleValue]){lineOfMusicLrc=i;return[[totalLicArrayobjectAtIndex:i]objectAtIndex:1];}}returnnil;}-(NSMutableArray*)getTheTotilOfMusicLrc{returngetAllOfMusicLrc;}-(NSInteger)getTheNmuberOfMusicLrc{returnlineOfMusicLrc;}本段代码的运行过程是,在歌曲开始进行播放后,将播放的歌曲名传给此类,此类从自己相应的地方得到全部的歌词。歌词是以lrc格式存储起来的,歌词类得到全部歌词后,根据自己的相应方法,将全部的歌词分成一句句的显示在相应的UITableView上。其中将全部歌词变成一句句的方法是getTheMusicLicStr。此方法根据得到的歌词格式进行分割字符串,并将每一句以字符串的形式存储到totalLicArray数组中。播放列表功能重要代码如下:-(void)downLoadFromUrl:(NSURL*)url{myData=[[NSMutableDataalloc]init];NSURLRequest*request=[NSURLRequestrequestWithURL:url];myConnection=[[NSURLConnectionalloc]initWithRequest:requestdelegate:self];}-(void)connection:(NSURLConnection*)connectiondidReceiveData:(NSData*)data{[myDataappendData:data];}-(void)connection:(NSURLConnection*)connectiondidReceiveResponse:(NSURLResponse*)response{[myDatasetLength:0];}-(void)connectionDidFinishLoading:(NSURLConnection*)connection{if([delegaterespondsToSelector:@selector(downLoadComplited:)]){[delegatedownLoadComplited:self];}}播放列表主要采用了表示图:UITableView来进行显示。这样可以更加直观,更加方便的显示数据。可以通过设置它的代理UITableViewDelegate。实现的主要形式是:设置tableView的组件为1个:numberOfSectionsInTableView:,设置行数:numberofRowsInSection:,设置每行的内容:cellForRowAtIndexPath。当点击的时侯会出发didselect事件,实现歌曲的播放。搜索功能网络歌曲的搜索对于快速查找到自己想找的歌曲是十分有必要的。这里选择的歌曲搜索库是来至于网络的。比如我们选择一首叫滴答的歌曲。只需要使用ASIHttpRequest来请求接口:/music.so?query=%B5%CE%B4%F0&class=1&st=&ac=1&pf=&_asf=&_ast=1338472690&p=&w=&w=02009900&sut=3384&sst0=滴答。这就是搜狗的一个搜索页面,通过它来获取需要的歌曲信息。对于获取到的字符串信息,可以通过UItableview来显示。4.3存储操作实现 实体联系模型主要是由实体、属性以及实体之间的联系组成[12]。通过对现实世界的概念模型的抽象,确立实体为歌曲、歌词、用户。根据音乐播放器的功能需求的分析结果,得出数据库的E-R图5-5如下所示:根据数据字典中的数据存储、数据流、处理逻辑、实体的属性及以上数据库设计中的概念结构设计模型,建立相关表进而得到数据库的逻辑结构设计,即数据库表。结束语在经过为期两个月的毕业设计后,基于iOS的音乐播放器的功能得以实现。在开发之初就应该想好总体框架结构以及如何进行每一步的操作。开发者需要有清晰地逻辑思路并以科学的方法来开发应用。本设计的题目为“基于iOS的音乐播放器的设计与实现”。音乐播放器设计的主要内容是进行音乐的播放、下载等功能模块的实现上。因此为能够很好的实现系统设计目标,突出音乐播放器所需实现功能,在开发过程中,由于自己开始没有思考全面导致后来开发程序的过程中出现了一些偏差,以至于使自己引入了许多的变量来标志这些数组、UItableView。本人开发的这款音乐播放器的特点是几乎所有的操作都在一个视图控制器中进行,而UItableView的显示、选择也只能都在这一个视图中进行。使每一个产生的UItableView都只能运行这个控制器中的唯一的显示、选择方法。在开发到最后发现自己在这控制器中增加变量的方法,很是繁琐,后悔开始时为何不将UItalbeView单独写成一个类,在类中添加他自己的标志变量。这程序中所有的UItableView,他们具有不同的关系。他们之间的关系,在运行程序的过程中与哪个引导出了哪个,以便程序可以按照原路返回。由于自己开发经验不足知识有限,在开发过程中出现了许多冗余代码。在设计中同样遇到很多之前调试系统所没有遇到过的异常、错误信息。通过这次设计本人得到的启示是在开发过程中要有清晰地设计思路,尽量简化设计。同时通过这次的设计使自己更好地了解到在知识方面的不足,明确今后需要努力的方向。参考文献[1]叶佳俊基于“云”技术的音乐播放器设计.中国量学院.2012[2][美]DaveMark,JackNutting,JeffLaMarcheiOS5基础教程.人民邮电出版社.2012[3]冯冲界面中的注意力设计北京交通大学.2012[4][美]StephenG.Kochan.Objective-C程序设计[M].电子工业出版社.2012[5][美]JonatbanZdziarskiAppStore掘金.人民邮电出版社.2010[6][美]DaveMark,JackNutting,JeffLaMarche.iOS基础教程[M].人民邮电出版社.2012[7]王珊,萨师煊.数据库系统概论[M].北京:高等教育出版社,2006[8]金福生,李朴之.iOS应用程序开发方法与实践[M].北京:人民邮电出版社,2012[9]《Objective-C基础教程[M]》作者:Mark
Dalrymple,Scott
Knaster出版社:人民邮电出版社.[10]《iPhone开发入门经典[M]》作者:John
Ray,Sean
Johnson出版社:人民邮电出版社[11]《认知与设计:理解UI设计准则[M]》作者:Jeff
Johnson出版社:人民邮电出版社[12]凌宁.基于iOS系统的安全性研究[D].北京邮电大学2014[13]孔晓波.物联网概念和演进路径[J].电信工程技术与标准化.2009(12)[14]黄涛.褚淑杰.基于红外通信的智能家居系统[J].微计算机信息2005(01)[15]齐冬梅,杜亚军,李战胜.个性化智能搜索引擎爬行虫算法[J].计算机应用.2004(S2)致谢本次毕业设计是在***老师指导下完成的。在设计过程中,赵老师仔细耐心地对我的毕业设计任务及内容进行及时指导,并在最后对成果系统的设计说明书做出了全面、合理、仔细得修改批注,竭尽全力帮助我完成本次的毕业设计任务。在这里,忠心表示对赵老师的悉心关怀和耐心指导的无限感谢与感恩。更重要的是,在设计的过程,赵老师所具备的严谨求真为学的务实精神,也是我之后无论是在学习还是在工作中的学习榜样。最后,在这里,也要感谢在大学四年期间的所有任课老师,感谢他们教授于我的知识。正是老师们的无私付出和认真负责使我摆正学习态度,树立人生目标不再虚度光阴浪费青春。最后再一次在这里也对所有教过我的老师们表示衷心的感谢。中国地质大学长城学院本科毕业论文外文资料翻译系别:管理科学与工程系专业:信息管理与信息系统姓名:学号:2016年3月7日外文资料翻译译文一种新的网络应用程序开发框架——MVC摘要:MVC(Model/View/Controller)的设计模式出现在在Smalltalk-80,并在软件的设计中广泛应用。本文介绍一种基于MVC框架的的新网络应用程序。这种框架把实施逻辑与表现形式独立开来。它也提高了系统的可维护性,可扩展性以及使用模块数据库备案、模板数据库,通讯对象和缓冲队列的性能。关键词:MVC、设计模式、网络应用程序1.简介网络应用系统是一个基于B(rowser)/S(erver)模型应用系统。它利用多种动态网页开发技术。目前,软件设计的主题之一是网络应用开发模式和工具的。它们直接影响系统的几个关键因素,比如可维护性、可扩展性、稳定性和安全性。本文中,基于MVC[1]的网络应用程序的设计模式是为解决这两类因素——扩展性和可维护性这些不易处理的问题。把MVC设计模式引入网络应用程序开发,执行逻辑可以独立于系统的表现形式。MVC由三种对象组成。1)模型:是应用对象,2)视图:是它的屏幕的显示,3)控制器:定义用户界面并对输入的信息做出响应。在出现MVC之前,用户界面的设计倾向于把这些东西做在一起。然而,MVC独立了它们,增加系统的灵活性和可重用性。MVC把视图和模型独立开来,在它们之间建立了“subscribe/notify”协议。一个视图必须确保其正确反映模型的状态。每当模型的数据发生改变,视图会得到相应的通知。作为回应,每个视图都会有更新自身的机会。这个方法可以让你附上一个模型的多个视图以便提供不同的报告。你也可以不改变原模型同时创建新的视图。2.背景和存在的问题虽然MVC的设计模式已经在smalltalk-80中提出了,并广泛应用于软件设计,介绍它到网页应用程序
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论