温室传感网络控制系统的软件度量方法研究

2017-03-30 04:20徐识溥涂尾龙杜庆峰王运圣
上海农业学报 2017年1期
关键词:用例连接件复杂性

徐识溥,刘 勇,涂尾龙,杜庆峰,王运圣*

温室传感网络控制系统的软件度量方法研究

徐识溥1,2,刘 勇1,涂尾龙3,杜庆峰2,王运圣1*

(1上海市农业科学院农业科技信息研究所,上海 201403;2同济大学软件学院,上海 201804;3上海市农业科学院畜牧兽医研究所,上海 201106)

基于温室传感网络,提出了复杂网络理论及软件体系结构复杂性度量思想,借助复杂网络理论和用户案例分析估算方法进行复杂性度量,利用实际应用案例进行了验证。

温室;无线传感器网络;复杂网络;复杂性度量;案例分析

蔬菜温室作为设施农业的一种形式,它使得蔬菜生产能够摆脱自然环境和传统生产条件的束缚,为人们提供高产、优质、高效、安全的蔬菜。蔬菜温室技术经历了小棚、中棚、塑料大棚、普通温室、现代化温室等发展阶段,其科技含量和自动化水平在不断提高,如今温室的大型化和自动化已成发展趋势。随着无线传感器网络(Wireless sensor network,WSN)技术发展越来越成熟,传感网络控制系统在温室环境中的应用也愈加广泛。因作物生长环境要求较高,网络架构的复杂度随之提高。

复杂性科学是一门新兴、交叉的学科,国内外许多学者认为,它是21世纪科学技术发展的前沿。复杂系统是具有中等数目基于局部信息做出行动的智能性、自适应性主体的系统,是一个很难定义的系统,它存在于这个世界的各个角落[1]。复杂网络打破了线性、均衡、简单系统的传统模式,是具有自组织、自相似、吸引子、小世界、无标度中部分或全部性质的网络[2-4]。鉴于此,本论文研究复杂网络与软件系统结构的复杂性度量[5],通过理论与实际相结合的方式进行软件系统的复杂性度量,以此在更高的层次理解系统的复杂性。

1 复杂网络

复杂网络,即呈现高度复杂性的网络。其复杂性主要表现在以下几个方面:

1)结构复杂,表现在节点数目巨大,网络结构呈现多种不同特征。

2)网络进化,表现在节点或连接的产生与消失。例如,网页或链接随时可能出现或断开,导致网络结构不断发生变化。

3)连接多样性,节点之间的权重存在差异,且有可能存在方向性。

4)动力学复杂性,节点集可能属于非线性动力学系统。例如,节点状态随时间发生复杂变化。

5)节点多样性,复杂网络中的节点可以代表任何事物。例如,人际关系构成的复杂网络节点代表单独个体,万维网组成的复杂网络节点可以表示不同网页。

6)多重复杂性融合,即以上多重复杂性相互影响,导致更为难以预料的结果。例如,设计一个电力供应网络需要考虑此网络的进化过程,其进化过程决定网络的拓扑结构。当两个节点之间频繁进行能量传输时,他们之间的连接权重会随之增加,通过不断的学习与记忆逐步改善网络性能[6-7]。

目前,复杂网络研究的内容主要包括:网络的几何性质,网络的形成机制,网络演化的统计规律,网络上的模型性质,以及网络的结构稳定性和网络的演化动力学机制等问题。其中在自然科学领域,网络研究的基本测度包括:度及其分布特征,度的相关性,集聚程度及其分布特征,最短距离及其分布特征,介数及其分布特征,连通的规模分布[8-11]。

簇系数(Clustering coefficient)可以衡量复杂网络集约化程度,该指标指复杂网络中节点之间的连通程度,或网络节点的局部传递程度。平均路径长度(Average path length)指复杂网络中所有节点对之间的平均最短距离。最短距离是指从一个节点到另一个节点所经过的边的最小数目。大量研究表明,真实复杂网络具有较大的簇系数和较小的平均路径长度[12-13]。

2 软件体系结构复杂性及度量

2.1 软件体系结构复杂性

软件体系结构(Softarchitecture,SA)具有一定形式的结构化元素,即构件的集合,包括处理构件、数据构件和连接构件。处理构件负责对数据进行加工,数据构件是被加工的信息,连接构件把体系结构的不同部分组合连接起来[14]。这一定义注重区分处理构件、数据构件和连接构件,这一方法在其他的定义和方法中基本上得到保持。与最初的大型中央主机相适应,最初的软件结构体系也是主机结构,该结构下客户、数据和程序被集中在主机上,通常只有少量的图形用户界面(GUI),对远程数据库的访问比较困难[15]。随着个人电脑(PC)的广泛应用,该结构逐渐在应用中淘汰。在80年代中期出现了Client/Server分布式计算结构,应用程序的处理在PC(客户端)和服务器(主机或服务端)之间分担;请求通常被关系型数据库处理,PC机在接受到被处理的数据后实现显示和业务逻辑;系统支持模块化开发,通常有GUI[16]。Client/Server结构因为其灵活性得到了极其广泛的应用。

根据Garlan&Shaw的定义:SA={构件,连接件,约束}。此定义认为SA是超越计算过程中的算法设计和数据结构设计,系统是由构件、连接件和约束构成[16-17]。其中,构件是一组代码或一个独立的程序,构件相对独立,仅通过接口与外部相互作用;连接件是构件的粘合剂,把不同的构件连接起来;约束是构件与连接件连接时的规则,并指明构件连接的势态和条件。通过SA定义可知,SA的复杂性与构件和连接件的连接有直接关系。同时,构件与连接件的连接存在方向性,并且连接件不存在长短问题,所以,可通过有向无权复杂网络理论来度量SA的复杂性。在建立复杂网络模型时,构件映射为复杂网络的节点,连接件映射为复杂网络的边,约束限定了节点与边之间的连接。

2.2 复杂性的度量

在本文中利用SA的平均路径和用户案例点数(Use case points,UCP)估算方法,对基于WSN路由算法的温室传感网络复杂性进行度量。

2.2.1 软件体系架构的平均路径

某个节点的平均路径长度是指该节点到其他所有节点的最短路径的平均,网络的平均路径长度是指网络中所有节点对之间最短路径的平均值,即任意两个节点之间要经过的边的数目的平均值。定义SA的平均路径长度:

其中,V表示节点(构件)集合,N=|V|为节点总数,d(u,v)表示节点u到节点v的最短距离[18]。

平均路径长度表明了节点所代表的构件在SA中的中心度。节点的平均距离越短,则该节点所代表的构件与其他节点所代表的构件所需要经过的连接件越少,说明该节点所代表的构件的中心度越高[19]。根据软件工程思想,系统结构层次不能太深,构件尽量调用其紧邻下层构件,避免越级访问,所以,SA所转化的有向复杂网络模型应该具有较小的平均路径长度。

2.2.2 UCP估算方法

Infosys公司采用的用例点方法是基于理性的做法,类似于功能点方法。这种方法在使用的情况下要求比较规范,基本步骤如下。

1)每个用例的等级分为简单、中等和复杂。这种分类的基础是一个用例的事物操作的数量。事务的定义是一个原子集合,要么是完全或者根本不执行的活动。一个简单的例子有3个或更少的事务,中等的用例有4到7个事务,以及复杂的用例有多于7个事务。一个简单用例的因子被分配为5,中等用例的因子分配为10,一个复杂用例的因子分配为15。表1给出了分类因子情况。

表1 分类与因子Table 1 Classification and factors

2)获得未调整用例点(UUCPs)的总数,这是用例因子的加权总和。也就是说,对于每三个复杂类,首先获得的一个特别复杂的使用案例的数目和针对复杂的因子的乘积。三种类型的总和即为UUCPs。

3)根据项目的复杂性和类似项目的经验,调整原始UUCP值。根据表2给出的因素,评级每一个因子为0—5,0评级意味着该因素是无关的项目;5意味着它是必不可少的。对于每一个因素,从表中乘其评级由它的权重,加上这些数字因子。使用这个公式计算出技术复杂性因子(Technical complexity factor,TCF):TCF=0.6+0.01×TF(技术因子)。

表2 技术因素与权重Table 2 Technical factors and weights

4)同样,根据表3,每个因子值从0到5,对于体验的相关因素计算环境因子(Environment factor,EF),0表示在这个问题没有经验,5表示专家,而3则表示平均水平。对于动机,0意味着该项目没有动力,5表示积极性高,而3则表示平均水平。有关要求的稳定性,0表示极不稳定的要求,5是指不变的要求,而3则表示平均值。对于兼职员工,0表示没有兼职技术人员,5是指所有兼职员工,而3则表示平均水平。用于编程语言困难,0意味着易于使用的编程语言,5指非常困难的编程语言,而3则表示平均值。加权和给出E值,EF由下面的公式得出:EF总=1.4+(-0.03)×EF。

5)使用这2个因子(TCF、EF),计算最终用例点:UCP=UUCP×TCF×EF。对于工作量估算与分配,在整个生命周期里平均20人时每个UCP。当然,这是一个粗略的估计。但是可以通过进一步完善这个原则可以得出更为精确的估计。换句话说,每个UCP的范围为20—28人时,项目经理可以决定的,这取决于各种因素。

表3 团队环境因素与权重Table 3 Environmental factors and weights

3 温室传感网络的复杂性度量

通过前期网络技术和传感器等硬件方面的研究,上海市农业科学院数字农业团队开发了一套基于WSN路由算法的温室传感网路控制系统,该系统服务于农科院所属基地的实际生产,服务对象为基地普通工人和相关技术人员,本系统包括对温室大棚的温湿度、光照、水肥一体化、生长模型自动调节等4个子模块。

3.1 利用软件体系架构的平均路径进行度量

由于本系统的结构较单一,故选择本系统中的生长模型自动调节子模块,该子模块主要是根据已有的植物生长模型对温室环境进行自动调节。该模块的体系结构如下图1所示。

图1 生长模型自动调节子模块功能结构Fig.1 Functional configuration of grow th model’s self-ad justment submodule

图2 形式化结构图Fig.2 Form alized structure diagram

通过分析,图3中10个节点的度(节点入度与出度的和)分别

图3 系统网络图Fig.3 System network diagram

3.2 利用UCP估算方法进行度量

该系统主要用户分为3类:普通工人、技术管理员和系统管理员,包含功能点见表4—6。

表4 普通工人的功能点Table 4 Function points of ordinary workers

表5 技术管理员的功能点Table 5 Function points of technical adm inistrators

表6 系统管理员的功能点Table 6 Function points of system administrators

根据表4—6得出,简单S个数:16,中等M个数:14,复杂C:6。故UUCP=16×5+14×10+6×15=310。根据表2得出TCF=0.6+0.01×TF=0.6+0.01×45=1.05。根据表3得出EF总=1.4+(-0.03)× EF=1.4+(-0.03)×17=0.89。故UCP=UUCP×TCF×EF=310×1.05×0.89=289.695。

通过对本温室传感网络控制系统进行SA复杂性度量和UCP估算验证,发现该子系统复杂性与一般复杂网络的特性相似。同时,该子系统具有较合适的簇系数和较短的平均路径,系统度分布比较合理,符合软件工程开发思想。

4 结论与讨论

本文使用了2种方法来进行软件的度量,第1种是利用复杂网络理论和技术,将SA转化为有向复杂网络模型,并通过节点的度与度分布、簇系数、平均路径长度等属性来度量复杂性。第2种方法是使用UCP估算方法对系统进行精确定量分析。最后,通过基于WSN路由算法的温室传感网络控制系统作为实例,验证了其SA的复杂性和UCP方法验证。实践表明,这2种方法能较好地度量所开发系统的SA的复杂性,有效地提高所开发系统的质量及可靠性。

[1]杨芙清.软件工程技术发展思索[J].软件学报,2005,16(1):1-7.

[2]NIRMAN E F,SHARIL P.Softwaremetrics[M].2nd ed.Beijing:China Machine Press,1997.

[3]MCCABE T J.A complexitymeasurement[J].IEEE Transaction Software Engineering,1976,2(4):302-308.

[4]VALVERDE S,SOLE R V.Logarithmic growth dynamics in software networks[J].Europhysics Letters,2005,72(5):858-864.

[5]李兵,马于涛,刘婧,等.软件系统的复杂网络研究进展[J].力学进展,2008,38(6):805-814.

[6]李丽萍,缪淮扣,钱忠胜.基于复杂网络面向对象集成测试的研究[J].计算机科学,2008,35(12):254-257.

[7]张大陆,王志晓,刘雯.基于复杂网络的本体结构分析[J].同济大学学报,2009,37(2):258-261.

[8]MYERSC.Software systems as complex networks:Structure,function,and evaluability of software collaboration graphs[J].Physical Review E,2003,68(4):046116.

[9]何克清,马于涛,李兵,等.软件网络[M].北京:科学出版社,2008.

[10]闫栋,祁国宁.大规模软件系统的无标度特性与演化模型[J].物理学报,2006,55(8):3799-3804.

[11]HALSTEAD M H.Elements of Software Science[M].New York:Elsevier North-Holland,1977.

[12]韩定定.复杂网络的拓扑、动力学行为及其实证研究[D].上海:华东师范大学,2008.

[13]BRITO F,ABREU E.MOOD-metrics for object-oriented design[C]//OOPSLA'94Workshop on Pragmatic and Theoretical Directions in Object-Oriented Software Metrics.Portland:OR,1994.

[14]WEYUKER E.Evaluating software complexitymeasures[J].IEEE Transactions on Software Engineering,1988,14(9):1357-1365.

[15]CHIDAMBER SR,KEMERER CF.Ametrics suite for objectoriented design[J].IEEE Transactions on Software Engineering,1994,20(6):476-492.

[16]WATTSD J,STROGATZSH.Collective dynamics of small-world networks[J].Nature,1998,393:440-442.

[17]BATABASIA L,ALBERT R.Emergence of scaling in random networks[J].Science,1999,286:509-512.

[18]LIU B,LID,LIB.Mining representative nodes in scale-free networks[J].Dynamics of Continuous,Discrete and Impulsive Systems(Series B:Applications and Algorithms),2006,13(3):395-400.

[19]VALVERDE S,SOLER.Hierarchical small-worlds in software architecture:SFI/03-07-044[R].Waterloo,Canada:Santa Fe Institute,2003.

(责任编辑:程智强)

Research on softwaremetrics of greenhouse sensor network controlling system

XU Shi-pu1,2,LIU Yong1,TUWei-long3,DU Qing-feng2,WANG Yun-sheng1*
(1Agriculturɑl Informɑtion Institute of Scienceɑnd Technology,Shɑnghɑi Acɑdemy of Agriculturɑl Sciences,Shɑnghɑi201403,Chinɑ;2Softwɑre Engineering School of Tongji University,Shɑnghɑi201804,Chinɑ;3Animɑl Husbɑndryɑnd Veterinɑry Reseɑrch Institute,Shɑnghɑi Acɑdemy of Agriculturɑl Sciences,Shɑnghɑi201106,Chinɑ)

On account of greenhouse wireless sensor network,this article proposes complex network theory and complexitymetrics thought of software architecture,carries out complexitymeasure bymeans of the complex network theory and user case analysis,and makes a verification according to an actual application case.

Greenhouse;Wireless sensor network;Complex network;Complexitymeasure;Case analysis

S625

A

1000-3924(2017)01-166-06

2016-01-25

上海市市级农口系统青年人才成长计划[沪农青字(2015)第1-24号];上海市农委科技攻关项目[沪农科攻字(2015)第6-4-1号]

徐识溥(1986—),男,硕士,助理研究员,主要从事农业物联网及农业信息化的研究。E-mail:xushipu39706879@163.com

*通信作者:王运圣(1971—),男,博士,副研究员,研究方向:作物信息科学。Tel:021-37195791-512;E-mail:wysl88@163.com

猜你喜欢
用例连接件复杂性
制作吸管塔台
UML用例间包含关系与泛化关系的比较与分析
UML用例模型中依赖关系的比较与分析
施工缺陷对半灌浆套筒连接件性能的影响*
PFNA与DHS治疗股骨近端复杂性骨折的效果对比
简单性与复杂性的统一
联锁软件详细设计的测试需求分析和用例编写
從出土文獻用例看王氏父子校讀古書的得失
CJ/T493—2016给水用高性能硬聚氯乙烯管材及连接件
基于试验设计的汽车悬架轻量化设计