敏捷软件开发过程中重构技术的研究

更新时间:2023-06-07 14:35:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第31卷第11期2012年11期

煤炭技术

CoalTechnology

V01.31,No.11November,2012

敏捷软件开发过程中重构技术的研究

徐照兴,杨水华

(江西服装学院服装商贸分院,南昌330201)

摘要:介绍了敏捷方法对开发过程中变动的应对策略、敏捷方法的原则、敏捷方法的实践特征;重点阐述了重构技术,包括重构的概念、何时重构、重构的信号与对应的重构方法、通过重构可以达到的目标、重构应该注意的问题。能有效地帮助读者如何在实际的软件开发中恰当地使用敏捷方法,并适时进行重构,从而实现高效的软件开发。关键词:敏捷;敏捷方法;敏捷软件开发;重构中图分类号:TP311.5文献标识码:A文章编号:1008—8725(2012)11-0223—03

StudyonRefactoringDuringAgile

SoftwareDeveloomentProcess

XUZhao—xing.YANGShui-hua

(Department

method

ofClothingCommerce&Trade,JiangxiInstituteofFashionTechnology,Nanchang

330201,China)

strategies,agile

technique,and

the

Abstract:Describestheagile

methodsin

practice

thedevelopmentofchangesincharacteristics.Expounds

the

coping

principle,agilemethod

includingtherefactoringofthethat

should

to

refaetoringof

the

signal

concept,when

meansof

refactoring,refactoring

can

correspondingrefactoringmethod,by

note.Can

use

refaetoringreader

bethe

achieved,reframetheproblemactual

to

effectivelyhelp

the

howsoftware

development

appropriateagile

methods,and

timely

refaetor,in

orderachieveefficientsoftware

development.

Keywords:agile;agilemethods;agilesoftwaredevelopment;refactoring

谬蛐守韭淳业暴哆净蛆孚蛐替壮替蜉乎哆学蛆谆曲谌啦译哆淳哆萨哆淳弛孛哆铲啦溥曲守哆淳啦蹲够谬皇9博站担廿社韭淖韭净必淖牡浮哆争啦串哆谌眵溥啦潦哆浮抄淳哆班哆淳捧孚啦溥曲净韭溥哆澳捧津辨

照执行顺序将相关的字节码序列翻译成用户终端能成。核心模块负责处理输入倚出模块传输来的命

够直接运行的命令,对程序存储模块进行进一步的令,其中命令分派器是它的核心;而基础操作模块又细化,又可以分为基础操作模块、底层控制模块、核包括文件管理指令和协议基本指令,文件管理指令心控制模块、字节码的控制模块、字节码的解释模块主要是用于创建指令和删除指令。协议基本指令具和用户响应控制模块。体要完成选择、函数状态、读取一段二进制字节串、

其增值业务开发方法是在用户识别模块中设置更新当前字节、查找以特征字串开头的一个记录、更多项增值业务,在用户识别模块中进一步设置管理新记录的值相加、执行校验、在SIM连入GSM网络表,每项增值业务对应一组字节码序列,字节码序列的鉴权、创建STK菜单,应用准备好的数据进行读包括至少一段字节码子序列,管理表存储所有增值业取,并发送给手机等功能;STK模块具体包括STK务相关的字节码序列,并根据执行顺序生成执行结果字节码的解释模块。它又细化为字节码查询模块、进行实时跳转或解释为用户终端能够运行的命令。STK字节码的控制模块和用户响应控制模块。

现在,GSM通信系统是人们使用最多、最常用4结{暑的移动通信系统。以其中的SIM卡为例,讲解在SIM总之,我国移动通信的飞速发展给智能卡带来卡上通过STK实施的增值业务的系统。该系统的数了极大的发展空间,文中以智能卡中的SIM卡为例,据存储模块用于存储开发的所有增值业务,而程序阐述了智能卡的基本概念以及智能卡中的SIM卡的存储模块实现控制每项增值业务的正常运行。其中功能,并在用户识别模块基础上对增值业务开发平台增值业务数据的格式为:固定3字节的增值业务索进行了设计,旨在丰富智能卡多彩的各种业务应用。引AID、LV格式组成的业务菜单名称、应用所需空参考文献:

间的2字节空间、过程组成的业务数据、按顺序生成[1】王爱英.智能卡技术一Ic卡[M¨E京:清华大学出版社,2000.

排列的应用变量和空间分配变量;系统中还存在一【21李翔.智能卡研发技术与工程实践fMl.北京:人民邮电出版社.

2003.

个公用缓冲区,它提供了400字节的空间,并且对每

【3]曹乐平,李伟章.SIM卡与基于STK的SIM卡业务【J1.中国数据通

个索引提供的公用缓冲区动态的分配大小。

信,2005,7(4):86—90.

业务系统由核心模块,基础模块和STK模块组(责任编辑李富文)

收稿日期:2012—04—20;修订日期:2012—09—18

作者简介:徐照兴(1979一),男,江西临川入,讲师,硕士,研究方向:软件工程、计算机应用技术教学。

224

煤炭技术

第31卷

引言

目前国内很多中小型软件项目开发时间紧迫,需求经常发生变化,使用传统软件开发方法会导致开发资源浪费、质量低下。敏捷软件开发方法为有效解决这种状况提供了良好的解决方案。敏捷开发中的一个很重要的环节是重构,也可以这样讲,软件开发离不开重构。

敏捷方法可以动态地调节软件功能的优先级。相对于以技术术语描述的任务,敏捷方法更重视以用户语言描述的功能,因为这是用户可以理解的,这样有利于与用户的交流,产生更符合用户需求的软件。在每次迭代周期完成时,用户可以重新调整功能的优先级,还可以去掉原有的一些功能或增添新的

功能。2

重构技术

2.1重构的概念

重构是以不改变代码外部行为而改进其内部结1.1敏捷方法对开发过程中变动的应对策略

针对软件开发过程中的变动,敏捷方法的策略构的方式来修改软件系统的过程。这是一种净化代是在整个项目过程中减少变动的成本。以极限编程码以尽可能减少引入错误的严格方法。简而言之,重为例,极限编程要求开发队伍:①在1~3周内发布第构就是在编码完成之后改进代码设计。一个版本,以获得快速的反馈;②采用简单的解决方2.2何时重构

(1)增加新功能时一并重构;案,将来更容易修改;③不断改进设计,提高设计的

(2)修补错误时一并重构;

质量;④不断进行测试,以便减少后期测试和修改的

(3)Review代码时一并重构;

代价;⑤用户参与软件的全过程,并在其中发挥重要

(4)代码实在太混乱,重构还不如重写;的作用。

(5)项目即将结束时避免重构。1.2敏捷方法的原则

敏捷软件开发方法的原则有12条,分别为:①2.3重构信号与对应的重构方法

下面给出代码开发和程序维护过程中经常遇到敏捷开发而言,最重要的是通过尽早和不断交付有

价值的软件来满足客户的需求。②敏捷开发欢迎需的重构的信号与对应的重构方法,当然并不是全部。求的变化,即使是开发后期。敏捷过程能够驾驭变化在开发中应避免出现下面的重构信号。并以此为客户创造竞争优势。③经常交付可以工作2.3.1重复的代码(DuplicatedCode)

重复代码是最常见的“异味”,往往是由于Copy的软件,从几个星期到几个月,时间间隔越短越好。

④业务人员和开发人员应该在整个项目过程中始终&Paste造成的。重构方法:

(1)重复代码在同一个类中的不同方法中,则直

朝夕在一起工作。⑤围绕斗志高昂的人进行软件开

发,给他们提供适宜的环境,满足他们的需要,并相接提炼为1个方法。

(2)如果重复代码在2个互为兄弟的子类中,则信他们能够完成任务。⑥在团队中,最有效率也最有

效果的信息表达方式是面对面的交谈。⑦可以工作将重复的代码提到父类中。

(3)如果代码类似,则将相同部分构成单独函

的软件是进度的主要度量标准。⑧敏捷过程提倡可

持续的开发速度。责任人、开发者和用户应该总是维数,或者用TemplateMethod设计模式。

(4)重复代码出现在不相干的类中,则将代码提

持不变的节奏。⑨对优秀的技能与好的设计的不断

炼成函数或者放在独立的类中

追求将有助于提高敏捷能力。⑩简单一尽可能减少

Methodl

工作量的艺术是至关重要的。Q】)最好的架构、需求和

过长的函数是面向结构程序开发带来的“后遗

设计都源自自组织的团队。旧每隔一定时间,团队都

要总结如何更有效率,然后相应地调整自己的行为。症”,过长的函数降低可读性。重构方法:将独立的功敏捷方法强调2个基本原则:重视当前的代码和有效能提炼成新函数。

的团队沟通和协作。当前的代码告诉开发者和管理人2.3.3过大类(LargeClass)

过大的类使得责任不清晰。重构方法:将过大类

员,他们现在拥有什么,而不是保证将来获得什么,因

为将来的变动是不能预期的。重视当前的代码使得开的功能拆分成多个功能单一的小类。

ParameterList)

发工作建立在一个真实可靠的基础上。敏捷方法强调2.3.4过长的参歹t](Long

过长的参数列难以理解,而且容易传错参数。重

面对面的交流,这与读写文档相比,信息交流更便捷,

频繁的交流可以大大减少读写文档的时间,使文档工构方法:将参数列表用参数对象替换。

2.3.5发散式变化(DivergentChange)

作量保持最小;设计师们坐在一起讨论可以获得比单

一个类由于不同的原因而被修改。重构方法:将

个人独自工作更好的设计。有效的团队沟通和协作使

类拆分成多个,每个类只因为一种变化而修改。

得开发质量更好,速度更快,成本更低。

2.3.6霰弹式修改(Shot舢nSurgery)

1.3敏捷方法的实践特征

与发散式变化相反,遇到变化时需要修改许多敏捷方法采用比较短的迭代周期。如果一个开

发团队获取用户反馈的周期长达6个月以上,那么不同的类。重构方法:将类似的功能放到一个类中。他们肯定不会使用敏捷方法。敏捷方法一般采用从2.3.7依恋情结(FeatureEnvy)

函数对某个类的兴趣高过对自己所处的类,通2-6个星期不等的迭代周期来开发软件,每个迭代

周期的开发工作都会根据上一个周期用户的反馈作常是为了取其它类中的数据。重构方法:将函数部分出调整,而且在迭代周期中经常进行权衡和调整以功能移到它感兴趣的类中。

2.3.8数据泥团(DataClumps)

适应新的情况。

敏捷软件开发方法概述

2.3.2过长的e徽(Long

第31卷第11期2012年11期

煤炭技术

CoalTechn0109Y

V01.31.No.11November,2012

层次化IPTraceback算法研究

杜林

(肇庆广播电视大学,广东肇庆526060)

摘要:DDoS攻击是当今互联网最有危害的攻击之一,它具有攻击效果明显,攻击力强,攻击源难以追查等特点。本文提出层次化路径标记算法,在一定程度上解决了IPtraceback问题,从而能比较有效地解决DDoS的威胁。关键词:分布式拒绝服务;IP回溯;层次化标记算法中图分类号:TP393.08文献标识码:A文章编号:1008—8725(2012)11-0225—02

HierarchicalIPTracebackAlgorithms

DULin

(Zhaoqing

Abstract:DDOSattack

RadioandTVUniversity,Zhaoqing

ode

526060,China)

iSthemostoftheharmof

is

oftheattacks.andhehastheattackhasthesource,etc.Thispaperputs

someextent,solvetheIPtraceback,thus

to

trace

obviouseffect,damageisstrong,theattackforwardthehierarchical

can

difficult

pathmarkalgorithm,and,to

effective

to

solvethethreatofDDoS.

Keywords:distributeddenialofservice;IPback;hierarchicalmarkalgorithm

引言

目前,网络中存在一种称为DoS/DDoS的攻击,这种攻击以消耗服务器的资源,降低服务器的服务

攻击路径的重构,称IPTraceback。文中从一个全新的视角出发,设计出了层次化路径标记算法,在一定程度上解决了IPTraceback的问题。

1=殳计原贝9

IP

孽奎为卑孽.,要臀餮主璺筮擘磐,耍呈娶圭耋售垡垡

耋鎏墨羔毖曼芝慧冀塑警望塑乏薯塑翟鹜窑娑耋誓渺湖秽5&j塞蛞戛囊蠹蓬嚣荔巍尝}盏蠹蚕里墼墅鍪

在多个地方看到相同的数据项。例如:多个类中相同的变量,多个函数中相同的参数列表,并且这些数据总是一起出现。重构方法:将这些数据项放到独立的类中。

2.3.9分支语句(SwtichStatements)

Traceback主要解决以下2个问题:

澳鹳粤蜱枣啦4哆淖牡淳哆谬曲馥壮谬丑毒韭尊蛆粤韭啦蜱谭啦咎蜂淳蛐谬哆孚哆净啦孚旦莹淳鲫谬哆毋啦谆哆孚哆尊啦守弘乎牡蹲赂尊蛆淳蚌淳啦浮够淳韭尊蛆尊垫淳蛐守蹿礴韭馥辨孚彗浮牡守够谬弛诤盟

(2)提高程序可读性;(3)助你找到程序错误;(4)助你提高编程速度;(5)提高设计和编码水平。

2.5重构应该注意的问题

大量的分支、条件语句导致过长的函数,并且可读性差。重构方法:应将它变成子类或者使用State和Strategy模式。

2.3.10过度耦合的消息g缝(MessageChainsl

(1)重构必须是理解原有的设计意图;

(2)重构之前,吸收原有设计思路的精华,寻找出哪些部分需要被重构;

(3)避免过度重构和设计。3

一个对象请求另一个对象,后者又请求另外的对象,然后继续……,形成耦合的消息链。重构方法:公布委托对象供调用。

2.3.1l过多的注释(Comments)

代码有着长长的注释,但注释之所以多是因为代码很糟糕。重构方法:先重构代码,再写上必要的

注释。

结语

敏捷软件开发是一种“轻量级”软件开发的思想,它渗透在很多种软件开发工具中,它不拘泥于传统的软件开发模型,更注重成本的节省和效率的提高,而重构是敏捷开发过程中的一个很重要的环节,熟练地掌握它能帮助开发人员实现高效的软件开发。

参考文献:2.3.12夸夸其谈未来 }生-(SpeculativeGenerality)

S.Pressman敬件工程:实践者的研究方法【M】.郑人杰,译.6现在用不到,觉得未来可以用到的代码,要警【1】Roger

版.北京:机械工业出版社,2007.

惕。重构方法:将用不上的代码去掉。121RobertC.Martin.敏捷软件开发:原受【j模式与实践[MI.邓辉,译.北

京:清华大学出版社,2003,2.3.13纯粹的数据类(DataClass)

将数据类中数据以Public方式公布,没对数据[3】MartinFowler.重构:改善既有代码的设计【M】.熊节,译.北京:人民

都电出版社'2010.

访问进行保护。重构方法:将数据封装起来,提供【4】杨娜,周溢辉.论敏捷开发和重构【J】_福建电脑,2008(12):138.Get/Set方法。

2.4通过重构可以达到的目标

(1)持续改进程序设计;

收稿日期:2012—04—20;修订日期:2012—09—18

[5】李航.敏捷型软件开发方法与极限编程概述[J】计算机工程与设

计。2003.24(10):116—121.

(责任编辑李富文)

作者简介:杜林(1978一),男,四川眉山人,讲师,硕士,研究方向:计算机网络。

敏捷软件开发过程中重构技术的研究

作者:作者单位:刊名:英文刊名:年,卷(期):

徐照兴, 杨水华, XU Zhao-xing, YANG Shui-hua江西服装学院服装商贸分院,南昌,330201煤炭技术

Coal Technology2012,31(11)

本文链接:/Periodical_mtjs201211106.aspx

本文来源:https://www.bwwdw.com/article/xui1.html

Top