版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
讨“前右尢孝软件工程课程论文题目:软件工程方法在Android开发中的
应用实例作者姓名 指导教师 所在学院专 业 班 级完成日期年月日目录TOC\o"1-5"\h\z\o"CurrentDocument"关键词 3\o"CurrentDocument"摘要 3\o"CurrentDocument"绪论 3\o"CurrentDocument"从模块角度分析程序 3\o"CurrentDocument"多模块设计 3\o"CurrentDocument"提高内聚,降低耦合 3\o"CurrentDocument"编码规范 4\o"CurrentDocument"标准化版面设计 4\o"CurrentDocument"注释的使用 5\o"CurrentDocument"变量名命名 5\o"CurrentDocument"合理判断 5\o"CurrentDocument"交互体验与性能的平衡 6\o"CurrentDocument"总结 7\o"CurrentDocument"参考文献 7\o"CurrentDocument"Keywords 7Abstract 8关键词软件工程,Android,移动开发,高效编码,规范编码,开发实例摘要随着软件开发人员自身水平的不断提高,开发者都会不断地提高自身的编程能力。不仅是在于编写的熟练程度上,更重要的是在驾驭代码的能力上。在实际的开发过程中,初级开发者常常会随心所欲,开发出来的的代码质量低下,标准化严重缺失。本文通过一个简单的项目实例,用软件工程的方法对代码进行优化,最终形成代码质量较高的代码,对学习者将来编写代码规范具有一定的参考价值。.绪论在软件开发过程中,掌握了基本的开发语法知识以及其他基本的语句之后,需要了解的便是对程序进行优化改良,并以此为基础,减少程序运行所需的系统资源,并简化开发的过程,减少语句,以使系统不断改良。对于这个问题,需要解决的不仅仅是开发代码的问题,还有开发习惯以及标准化的问题。本文将多个方面来说明,提高综合效率。.从模块角度分析程序多模块设计在软件系统中,将较大的复杂的问题分解为许多小的容易解决的问题,就变得更加容易解决。但是模块过多又会在模块连接时产生过多的问题,增加连接的成本。所以,将程序分成若干个合适的模块,使软件的开发维护成本降到最低。在绘图开发应用程序中,整个项目大致分为了基本数据定义、初始化模块(程序初始化,初始化设置菜单,画布初始化,新建)、绘画(画布上绘画,清除绘画,绘画的屏幕触摸事件监听)、设置菜单监听、保存(文件名设置,保存)等模块,各个模块通过互相调用和修改全局变量的值来进行工作。提高内聚,降低耦合内聚是从功能角度来度量模块内的联系,一个好的内聚模块应当恰好做一件事。它描述的是模块内的功能联系。耦合是软件结构中各模块之间相互连接的一种度量,耦合强弱取决于模块间接口的复杂程度、进入或访问一个模块的点以及通过接口的数据。在绘图项目中,模块内部一般指完成一件事,绘图的模块中只把原有图像和新增的线条绘出,监听模块只进行相应的参数修改和调用更新,保存功能与文件命名分开,提高内聚。而各个模块之间通过方法的调用来实现,一般只传递少量参数,模块之间连接简单,降低耦合。.编码规范标准化版面设计在编码过程中,要时刻注意源代码的版面。良好的层次结构及程序块的分界符定位可以在很大程度上帮助后期开发修改的难度以及其他程序员的理解难度。对于Android开发来说,默认使用Tab键作为缩进的标准数,而且Tab键一般只应用于版面的排版,一般不做其他用途,防止错误识别以及排版混乱等。以{}为函数的开始和结束标示符,一般}与函数首字母对齐,清楚标示作用范围。priblicbooleanonCreateCptionsMErL'^neri'j)-[Menulnflaterinflater=newMenalTiflater(ttiisJ;inflater.inflate(R.nianj.toolsrmena);returnsuper-,orCreateOptLonsMen'a ;>1对于XML布局文件,同样遵循缩进的原则。在一对标签内如果没有内容而只有相应的属性,尤其是只有一行的XML代码,那么可以在属性后面加上空格和/来结束标签,使代码更加有序。<applicatitmandroi-d:e.11owBe.c=nt2?L;e"and二口二d:Lcon= ±卫靠匚上曰4"and二0i_曰;工ab已二=r,匚ring/r,android:t.<eir,e=,r&style/App??iEnze,r>tact.ivityandroid:naiae=rricin.Ya.tuya.Wa.in3i:tivityrrandroLd:2_abe2_=,,i?^ti?ing/apf3namsn><i^t-env-£ilver>Cact.ionandrciJd:na_mc="曰ntird值..intfrit;.厘匚七工口n"血工IU”/>tcategoryandr口二:!:二aiue="a尊色二口:&. 匚己tejory.LAUTJCrfEH”/></iTit.enlL-£ilt.er>注释的使用一般情况下注释的内容占整个程序的20%到50%,在函数的开始部位对函数作用进行说明性注释,对于每个定义的变量,尤其是全局变量,尽量使变量名有意义,否则应该对其含义进行注明。在if-else语句中或switch语句中应当对判断条件进行说明,表达判断内容及作用。cas-eR.id.5ave:try{ctw.save();TV保存绘制的图像:■oatgTl(FarseException.e){e.printStaclcTrace():breaJt;cas'eR.id.nevfils:dw.newfile(dw.cacAecan.vas};77新建国布bvea.kr变量名命名所有的变量名最好有一定的实际意义,最好使用英文单词或者缩写来对所需的变量进行命名,或在某一类型变量数量极少时可以用类名的变形来命名。例如定义一个Bitmap类的对象,而且项目中只会存在一个该类的对象,那么就可以命名为bitmap。在Android中,由于开发语言是Java语言,所以这部分的规则与Java基本相同。在实际项目中,对于一些实际使用的变量虽然使用了可以理解的英文命名,但是对一些可能引起歧义的变量名,最好还是进行简单的注释。intviewwidt/i;“驻窗intviewheigrit;//回布局度floatstarcxr"回竺起始坐标fl&a,tstarty"PatApatri;,•一回选路径pal^€=111111;/小画笔Bitmaptiicmap=null;//画出的图1象Canvascac?iecanvaB=Liull;intwidr/7回笔粗细in七col^〃画笔颜色合理判断与所有的程序相同,判断结构是最经常使用的结构之一。在Java语言的开发中,主要使用两种方式,一种是if-else结构,另一种是使用case语句进行分支,通过参数来决定要执行的程序等。在本项目中,由于需要监听整个菜单选项中的所有内容,便不适合使用if-else结构来进行判断,使用switch语句根据case判断参数值来决定要执行的内容。在case情况中,要把最有可能用到的方法放在最前面,加快程序的运行效率。在项目中,橡皮的使用频率远比其他菜单的频率高,所以理应排在第一位,其他的大致按照可能应用的频率进行排列。publicboolean□nOptiorL5lteniSeJ.ect.ed iten){DrawViewdw=(DrawViewJfindViewEyld(B.id.;dw.paint.serXieiniade(null);取消擦膝效果dw.paint.setEtiokeWidtli(3);设置默认国笛宫度switch(item,getltentld(}}{〃-箫对颜色%粗细、擦出等caseR.±d-dw.cleax(J;调用橡皮擦除icem.setCiiecked(tme);break.;□aseR.id.Elaeii:dw.paint.setCnlnr(Color.BLACK):iteni.setChecked(tree);hr曰3KrcaseR.id.E_LLi6:dw.paint.setColor(Coloi.BJLI7E);icen.setCnecked(true);break.;□aseR.id. :dw.paint.setColox(Colox.GRAY};item.SEtCiiEclrEd(true);t*r巳己k.:□aseR.id.green:dw.paint.BetCnlnr(Cnloi.■GREKN};item.setChecked(trne);breakscaseR.id.ci?drg£:dw.paint.set^olor(0x±±±±6a00};item,set^iiecked(tma);break.;35交互体验与性能的平衡在系统中,某些变量的取值及判断会对软件的交互体验以及运行流畅性和对系统资源的消耗有很大的影响。但是,交互体验与系统资源消耗是成反比的,想要画面更流畅更自然,需要消耗的资源就越多。所以我们需要在这两者之间找到一个平衡点。在绘图项目中,对于在屏幕上移动距离的响应的问题便是很好的一个例子。如果移动很短的距离就做出相应并绘图,能够使得画面更加及时细腻,但是会消耗大量的资源处理监听和存储事件。但是如果移动一段距离之后再进行响应,就会降低用户体验。所以要在这两者6之间找到一个平衡点,保证用户体验的同时减少对系统资源的消耗。根据多个因素考虑,在手指移动一个像素就进行绘图是不现实也没有必要的,只需要移动一段比较小的距离再进行绘图即可。在实际试验之后选择四个像素点作为移动的基本单位来绘图,用肉眼看不出来瑕疵的同时有效的减少了资源的消耗。ca.seMcit.lonEvent. WOVE:float ,白上苫(=-3七口工七工};“看方向移动后与原来点的距图floatdy=Mat.?i.d£i^ 右向转动后与原方向的距离if(dx>4||dy>4)-[〃大于4像素进行事件处理//定义路役用于绘图,起点位置到起终点位置中心,曲线更平滑path.quadTo(staiti:,staity,(jn-5taitx)/2t(y-h^taity}/2);szatzx=x;〃处理过绘图之后故变至新原点5taity=y;break;4.总结要使得代码更加规范和易读,需要的是软件从业者规范的书写以及细心。规范的代码和高效的程序会使得工作更加便捷,修改和阅读也更加容易。总之,规范代码和高效算法,将使程序更加完美。参考文献[1]郑人杰,马素霞,殷人昆.软件工程概论[M].北京:机械工业出版社,2009.11⑵欧阳零.Android编程兵书[M].北京:电子工业出版社,2014.1[3]百度百科.内聚和耦合[EB/OL].[2015-5]http:〃/link?url=aB1uogMfGHyc49rZhYBLoegEEg1pwxQHAAy40VS0csx23FgeLfdSwlIyxUKpq0REZrUVFqpjH8cpTVy20kUHya[4]Android开发网.绘图开发[CP/OL].[2012-4]./android/example/19.htmlKeywordsSoftwareEngineering,Android,MobileDevelopment,EfficientEncoding,StandardEncoding,Deve
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论