APP下载

通用接口在增量式开发中的应用

2014-09-24房超

无线互联科技 2014年7期
关键词:功能模块增量中断

房超

摘要:设计是软件开发中的重要一环,决定着软件产品的生命。现代的软件开发许多是增量式开发,如何才能提高增量式开发的效率以及质量,这对软件的设计提出了很高的要求。本文从设计的原则说起,之后用一个开发实例阐述了通用接口方法在增量式开发中的运用,希望能帮开发人员拓宽思路,设计出更高质量的产品。

关键词:软件设计原则;增量式开发;通用接口现代的软件开发已经具有规模化,产业化的特点,一个软件产品往往凝结了成百上千开发人员的心血。软件产品的功能日益增多,开发人员的开发手法,开发风格的不一致,往往导致了在后期增量式开发中由于对原代码理解不完全而产生各种副作用,而在实际的开发中,由于没有设计文档,或者代码与设计文档已有偏差,或者代码量巨大等各种原因,要完全理解原始代码基本上是不现实的。基于这种背景,我们希望在增量式开发中能够通过一种良好的设计来尽量回避深入理解以及修改原始代码,这样无论在副作用的消减以及后期的测试甚至于再将来的扩展开发中都能起到积极作用。

1软件设计的原则

一个软件产品是否成功在很大程度上取决于该软件的设计。软件设计与开发平台无关,与开发的生命周期模型无关。一般来说,软件的设计需要遵循下面的几个原则。

功能性:设计的软件需要实现既定的功能。这是最基本的要求,在实际的操作中,软件产品基本都能做到实现想要的功能,但容易出现的问题是,对异常的处理不足,在得到异常的输入时,由于不能正常拦截而导致产品瘫痪从而使得功能无法实现。

易用性:设计出的产品方便易用。如果一项产品在操作上复杂难懂,需要设置的步骤很多,那么即使是它功能强大,也不会吸引到很多的客户。所以尽量要设计简单清晰的界面和方面的操作。

效率性:产品要高效运行。在软件设计中,效率的高低往往与算法优劣,内存消耗量多少密不可分。设计人员要综合考虑这几方面的因素,在这几项的平衡中尽量提高效率。

可维护性:尽量采用通用的设计模式,通用的建模语言来提高代码的可读性与可维护性。

可扩展性:设计柔软,易于扩展,可以快速的对应用户需求的改变以及功能等的追加。

可移植性:软件的平台依赖性低,易于从一个平台移植到另外一个平台。一般来说,这需要在设计时就将对平台有依赖的内容单独打包,这样在移植时,平台无关的内容可以直接平移,平台相关的内容重新定义即可。

2通用接口应用例

下面将通过本人开发过的一个大规模集成电路中的增量开发项目来说明通用接口设计在增量式开发中的应用。

2.1 功能原型

本项目的功能原型如下图所示:

在既存的功能模块中,接收两种中断类型,根据中断的不同,做出不同的中断处理。在该项目中,笔者需要对应的是,新追加一种中断方式并对应该种方式的中断处理操作。

2.2 对应方式

①一种简单的对应方式:

如果借助于既存代码的设计,最简单的对应方法就是在原始的通用功能模块中将新追加的中断方式直接嵌入,并在中断发生时调用该种中断方式的处理操作,即在操作上采用與Pulse/Level中断相平行的处理方法。

采用该种处理方式,在理解上比较简单,但是由于需要改动之前的代码,所以需要理解修改原始代码,在测试时为防止副作用的带入还需要对原始的代码操作进行验证。可以说虽不经过复杂的设计,但是却带来了巨大的工作量。所以从追求效率以及品质的角度来说,这种做法并不可取。

② 基于通用接口的对应方式

从功能原型中可以看到,各种中断方式的入口对应共通的通用功能模块,根据中断方式的不同,中断的处理各不相同。因此,我们可以将通用功能模块抽出,并为中断的接收做一个独立的事件通知模块,在此事件通知模块中,不对中断类型加以细分,只是作为一个媒介,接收中断类型并将该类型传出。如此以后不论追加或者修改何种类型的中断,都可以不改动通用功能模块而直接流用。对中断的事件处理,我们采用通用接口技术,将中断处理作成一个通用的接口,以后如果需要追加新的中断处理方式,只需要继承该接口并独立实现,这样既不会影响其它的中断操作,又能保证该处理的单纯性。改造后的对应方法如下图所示:

从图中可以看到,当有事件发生时,通用功能模块中的事件通知部分将发生中断的类型传递给事件处理器,事件处理器根据此类型从配置表中调用使用了通用接口技术的中断处理者,此后由相应的中断处理者来执行相应的操作。

2.3 对应方式比较

在上面所介绍的两种方式中,如果只是一次追加,则方式①要简单一些,但如果之后还有类似的需求,我们可以通过下表来对应两种方式的优劣:

从上表可以看出,当采用方式②来对应该问题后,由于通用接口的使用,使得每种中断可以独立的只负责执行自己的操作而不影响到其他种类,这样不仅可以大大提高需求对应的效率,而且还可以保证产品的质量,达到保质保量快速对应的效果。

3结束语

通过本文的例子可以看出,优秀的设计会使得后续开发变得高质高效。但设计能力的培养不是一蹴而就的,需要经过书本知识的学习以及大量的实习演练来获得。希望本文能抛砖引玉,能提醒大家在设计时多花一点心思,采用最合适的模式,设计出高质量的产品。

猜你喜欢

功能模块增量中断
提质和增量之间的“辩证”
“价增量减”型应用题点拨
跟踪导练(二)(5)
千里移防,卫勤保障不中断
基于ASP.NET标准的采购管理系统研究
基于均衡增量近邻查询的位置隐私保护方法
输电线路附着物测算系统测算功能模块的研究
M市石油装备公服平台网站主要功能模块设计与实现
功能模块的设计与应用研究
德州仪器(TI)发布了一对32位增量-累加模数转换器(ADC):ADS1262和ADS126