第27卷第12期计算机应用与软件Vol. 27 2010年12月Computer Applications and Software 软件非功能需求的面向方面建模刘敬勇钟勇2张立臣1l(广东工业大学计算机学院f东f州510006)2(中国科学院成都计算机网用研究所四川成都610041) 摘要软件系统的非功能需求通常横切整个系统,采用面向对象的软件开发方法会导致代码缠结和分散。提出一种面向方面的非功能需求建模方法,通过扩展UML表达面向方面的概念,识别系统的功能需求和非功能需求,根据相应的需求得出系统的功能模型和非功能模型,然后将系统的非功能需求用方面实现,功能需求用组件实现,最后将组件和方面编织在一起形成最终的系统。这种方法降低了软件系统的开发难度,提高了系统的模块性、可重用性和可维护性。最后给出了应用实例。关键词面向方面非功能需求UMLTHE ASPECT -ORIENTED MODELLING OF SOFTW ARE NON-FUNCTIONAL REQUIREMENTS 12 Liu Jingyong,2 Zhong Y ongZhang Lichen 1 I(Fα,culty ofCοmputer. Guangd,οng University of Technology, Guαngzhοu 510006, Guαngdong, Chinα) 2 ( Chengdu 1nstitute of Computer斗pplicαtion,Chines、eAcadem)’ ol s、ctenc时•Chengdu 610041 ,Sichuαn,China) Abstract The non-functional requirements of software system usually erosseut the entire system. The use of objeet-oriented software devel›opment approach may lead to code tangling and scattering. This paper presents an aspect-oriented method to model non-functional require›ments. Functional requirements and non-functional requirements of the system are identified by expanding UML to support concepts of aspect›orientation, the functional models and non-functional models of the system are elicited according to corresponding requirements , and then to re›alize the functional requirements with components and the non-functional requirements with aspects, at last, the final system is formed by wea›ving components and aspects together. This approach reduces the difficulty of software system development and improves the modularity, reus›ability and maintainability of the system. In the end, the application instance was presented as well. Keywords Aspect-oriented Non-funct˛onal requirements UML 和方面,它允许开发者在系统设计时,从功能需求中分离出非功能需求,并且支持方面的组合和绑定来实现系统的集成。因此,o 51盲面向方面技术能有效地处理系统的非功能需求。软件系统的需求可分为功能需求和非功能需求。所谓非功能需求是指除功能需求以外,为满足用户业务需求而对软件系1 非功能需求的面向方面建模方法统提供的质量属性和功能约束llJ质量属性包括软件的安全性、可靠性、可移植性等;功能约束是指开发软件系统时必须遵 面向方面编程技术守的限制条件。例如,软件用户所在行业必须遵守的法律法规、面向方面编程技术丁]是一种基于关注点分离的新技术,系政策方针和行业标准以及采用何种开发技术和运行在操作系统统不同的关注点能够被分离出来并单独进行设计。面向方面的等。软件系统的功能需求没有全部实现可能会降低系统的可用开发步骤大致可以分为三个阶段:方面分解、方面实现和方面织性,但非功能需求没有全部实现往往会导致系统无法使用。然人。方面分解是把横切关注点从系统需求中抽取出来形成方而在许多软件系统的开发中常常忽视了系统的非功能需求,原面;方面实现是把各个分离出来的方面独立实现;方面织人是把因主要有两点:一是软件系统的非功能需求非常复杂,有些甚至已经实现的方面集成到系统的组件从而构成最终的系统。是相互矛盾的,如高性能会降低软件的可用性。此外,非功能需 UML的面向方面扩展求通常横切整个系统功能,这导致其难于描述和模块化;二是缺可以通过扩展UML的构造型来表达面向方面的概念~4 ,S J 乏支持软件系统非功能需求建模的方法、语言和工具,一些成熟的非功能分析手段,如性能分析中的排队网、Petri网等分析方法无法和软件设计有效地结合起来[2J面向方面技术作为软收稿日期:2009 -06 -07 ü国家自然科学基金项目(90818∞8, 件工程学的一种新技术,为软件系统非功能需求的模块化带来60774095) ;广东省自然科学基金项目(07001774)。刘敬勇,讲师,主研了希望。面向方面软件设计方法把系统建模分成两部分:组ft领域:软件工程,实时系统。
第12期刘敬勇等:软件非功能需求的面向方面建模41 扩展的构造型有<< aspect > > :与核心类对应,用于表达横切看护子系统的主要功能是对老人或病人进行看护。每个看护关注单元,与类或其它方面关联。方面除了拥有类的元素、切入子系统服务一位老人或病人,系统中保存有被看护者的相关信息。点和通知外,还包括Boolean型的isPrivileged和isSingleton标记例如,被看护者是否有药物需求、吃药的剂量和时间等。看护子系值。属性isSingleton指定了aspect的实例化方式,如果为true,统可以提醒被看护者按时处理相关事务,如果被看护者忘记了,则则该方面只有一个实例。isPrivileged表示横切类的私有属性能该子系统发送一个消息给看护人员。看护子系统还支持被看护者否被该aspect访问,如果为true,则可以访问。aspect与point与看护人员之间的远程视频交流。其用例如图3所示。cut、advice之间是组合关系。<< advice > > :表达方面类元特二一一飞<<lJse>> l飞报警/\ 性,可为before、after、around、afterreturning和afterthrowingo属4一二一一一一一一一一一-.:'-""'-----一\\-----------~二二二/'--:与控制中必通\性position:Crosscutkind定义横切位置类型的属性。position可飞\J 飞飞\\,吉/ f飞、…、:请求远程视频/\\τ陀取三个值:before 、after和aroundobody: String包含了该横切要\飞-一/\二执行的操作名称。<< joinpoint > > :表达方面与核心类或其它在平均!Ijji盯远程视频\;方面之间的连接点。<< pomtcut > > :一系列joinpoint组成一<:<llse>> 看护子系统用户个pomtcut,属性structural:BooIean指定了以哪种方式对横切对象进行扩展,分为结构性横切和行为性横切两种。declare:图3看护子系统用例图String包含了该方面的横切声明的表示,指示了joinpoint的集控制中心子系统是整个系统的控制部分。它接收看护子系统合。<< crosscut > > :表达方面横切核心功能性组件或与其它或管理子系统的所有消息并将接收到的消息转发给对应的接收者。方面的关系。管理子系统是看护人员操作的子系统。i.亥子系统中保存有 软件系统面向方面开发方法看护人员负责的所有被看护者的家庭信息、医疗信息等。通过采用面向方面技术,软件系统的建模可分为四步,如图l所该子系统,看护人员能为被看护者提供服务。例如,被看护者是示。第一步,识别软件系统的所有功能需求和非功能需求。在否按时处理相关事务,如果没有按时处理,看护人员可以发送消识别功能需求时可以使用用例[软件系统需求息再次提醒他们。此外,看护人员能与被看护者进行远程交流。和模板,在识别非功能需求时.4/ A 系统的非功能需求与建模可以使用检查表、词典和冲突|功能需求非功能需求远程看护系统的非功能需求可分为网络质量需求:网络连解决规则[6J第二步,根据系统军:y_ 接出现问题或者失败要能进行故障排除或通知用户。视频质量非功能模型的每个功能需求和非功能需求功自垠型」需求:视频传输的质量必须达到一定的要求,满足一定的门限建立相应的功能模型和非功能.. 二ι组件方面值,传输图像的分辨率可根据网络的实际带宽自动调整,当实际模型。建立功能模型时可应用(带宽大时,图像传输的分辨率高,当实际带宽小时,图像传输的UML建立角色、用例和类之间~ 分辨率低。组件可用性需求:系统中的每个组件在系统运行时软件系统的联系以及类图、UML时序图必须可用。截止时间需求:每个请求必须在规定的时间内完成,等;建立非功能模型时可应用每个消息也必须在规定的时间发送给接收者,即满足一定的时面向方面建模技术。第二步,图l软件系统面向方面开发框图间要求。本文主要介绍网络质量需求和视频质量需求的建模。将功能模型用一系列组件实现,将非功能模型用一系列的方面对于网络质量需求可以通过周期性的监测网络状态来获得网实现;第四步,将组件和方面编织起来,组成软件系统。络质量,两个通信节点之间的网络连接一旦建立,就可以通过向对方发送PING消息来获取两节点之间的网络延迟值,当网络带宽低2 案例研究:远程看护系统于设定的值时便向用户报告。网络质量方面模型如图4所示。视频质量需求:传输视频的质量必须达到一定的要求,满足 远程看护系统的体系结构一定的门限值。当进行远程视频交流时,便开始周期性的监测远程看护系统的服务对象是独自在家没人照顾的老人或病两个通信节点之间的网络状态,根据两个节点之间实际的带宽人,其主要功能包括非法入侵、火灾、煤气泄漏报警;看护人员与调整图像分辨率。视频质量方面模型如图5所示。老人或病人进行实时双向语音或视频交流;提醒病人按时吃药{) aspedl {) a!>llt>dl Nf’tworkQuahty !臼筒gl,ωn=tn叫VideoQuahty [iI甜glli'ton=rr叫等;听到老人或病人的紧急呼救时及时响应等功能。远程看护[isPnvilt'ged=fa叫[L<;Priv如ged",fals(-j-M豆豆;;;;--lI --~--再雨雨画TinwrValut’ -Timt’rValul" 系统可分解为三个子系统和一个WEB服务器。即看护子系统、+st'odr肌g)+comparf) 管理子系统、控制中心子系统和WEB服务器,本文主要对看护+stopsen(l) i {) Point(万utüAf rCormectPoint(’ut '1悦ru('tundfals自子系统进行详细分析。系统的体系结构如图2所示。I df'clar.('aUl'onnertOpt'rati~fl ! {!; I df'riarecallConnectOperati机! 0 PumtCutO af1RrTiml"-rp()l[ltCul I I {) Poin,Cu的afterτ飞merPointCut{strlJ(阳ralfals句i d!"C’lare(’allTmlerOperatci)n o Pomt白110hl"-fofl"-DisconnectPointCu dec!aucallTimerOperatiqn (1 Point白川b",foff'[儿、('Qnn('ctPointLlll{由u('tur硝fa!&:df'('larecaUDisconnl"-('tOpl"-rat扣{structur3l:falst:: d边rlarecallDisconIlt'ctOperat亭'"。AdvicS)aflRr('ÆJnnl"-ctAd叫'"1.出ition=aflRl'{) Advicdl aftRr吃Conn('rtAdvke{阳sitior国fterbod阳alLsE'ndpintbud沪callb缸dwidthmonit析。AdVÍnOafterTimerA V˝(’1"-{I AdvicED afterTimE;’rAdvicf’ [position= >τbod沪~alkomparr{position= after bod~同allcomparro Advk`l bE>forf’Dis(’onnl"-ctAdvkl"›{I Advic铜ob(’fol’(’Disc’ormectAdv ce {posit归0=,> bo由町a11stopSt'呻, I position= befo町巴旦些旦些~~~~些二一一图4网络质量方面模型图5视频质量方面模型图2远程看护系统的体系结构{下转第85页)
第12期施f全等:基于Silverlight的海洋环境监测信息平台设计与实现85 服务。本系统中连接串是非常关键的,一且连接串出版社,2∞6.[4 J李杰,等.基于民IA的网络科技资源呈现系统的研究与实现[JJ 中的用户名和密码泄密,系统中的数据库将被窃取或篡改,甚至计算机应用与软件,2009,26(4):69. 会遭到致命的破坏。基于此类安全方面的原因,密码将不以明[5J RIA技术专题.http://tech. c叩.cn/zt/RIAlindex. htm. 文的方式存储在数据库中,而是保存用户密码的单向哈希值。在Web数据库和数据库服务器通信上,使用Inte口时协议安全(上接第41页)性(IPSec)来保护它们之间发送的关键数据,本文对 文件中连接串进行加密,其实现算法如下: 方面与组件的组合11生成随机Salt值,并将它作为Base64加密字符串返回看护子系统的结构如图6所示。该子系统由九个组件和两Private string CTeate5alt( int size) 个方面构成,其中TeleVideo组件负责远程视频通信;EncodeDe›111使用加密服务程序(CSP)来实现加密随机数(RNG)code组件负责视频编码与解码;Controller组件负责分析控制中RNGCryptoServiceProvider mg 心发来的消息,并进行相应的响应;Alarm组件负责报警;Data new RNGCryptoServiceProvider( ) ; 组件负责本地数据的存储、添加和修改;ControlUnit组件负责接byte [J buff new byte [ sizeJ ; 收并更新来自控制中心的消息;Unit组件负责存储控制中心发mg. GetBytes( buff) ; 来的消息和数据;Communicator组件负责与控制中心子系统通retum Convert. ToBase64String( buff) ; I 信;Timer组件负责计时。VideoQual即方面在远程视频中负责11基于提供的密码和5alt值生成一个哈希值Private string CreatePasswordHash ( string pwd, string salt) 监测视频质量,它横切TeleVideo组件;NetworkQuality方面在看1 string saltAndPwd String. Concat ( pwd , salt) ; 护子系统与控制中心子系统通信过程中监测网络带宽,它横切string hashedPwd ControlUnit组件。FonnsAuthentication. HashPasswordForStoringlnConfigFile ( saltAndPwd, " SHA1 " ) ; retum hashedPwd; I 利用上面的加密算法,对系统的中连接串加密后生成如下工进制的value值,当系统调用连接串时采用反加密算法进行读取即可实现对后台数据的安全访问。< add key =" dsn" value = "41E21C51 C61831511711EE 19B 1F 114618 1991DE 图6看护子系统结构IE21B4IE11D815617012515AIEO 12FI811 BE 1B 61 B119A 1E 91 DFI C818C 1C 714AI F31F 31741861721 B71 DE 1B 7 1521671071 B5 110 14B 12B 3结论.."/ > 软件系统的非功能需求通常与系统的功能需求缠结在a4结论起,采用面向对象的建模方法不能将非功能需求模块化。面向方面技术是在面向对象技术的基础上发展起来的一种基于关注本文遵循完整性、先进性和开放性的系统开发原则,系统采点分离的新技术,它能将横切系统功能的非功能需求建模成方用开发平台,后台采用SQLServer数据库,利用微软最面,从而非功能需求可以单独设计并模块化,提高了非功能需求新的Silverlight技术以及其核心的DeepZoom图像处理技术,以的模块性、可重用性。本文提出的非功能需求建模方法主要是电子海图为基础,设计完成了全新的海洋环境监削信息平台。针对软件系统的服务质量需求,对于其他的非功能需求,例如容该系统己成功应用于南通市海洋与渔业信息系统中,系统集海错性、可扩展性、可靠性等还需要进一步探索合适的建模方法。洋环境监测信息的记录、传输、存储、提取和表述于一体,具有处理、管理和分析数据能力。系统的实现极大地提高了工作人员参考文献检索统计监测数据信息的效率,并利用电子海图作为表现形式,[ 1 J Keshav Bharadwaj A, Gopalakrishnan Nair T R. Mapping General Sys›动态直观图文并茂地展示海洋环境监测数据等多媒体信息,从t阳emCααhara耐ct拉e时Î囚cs归toNon-Functional Req驯山uJir由町emer而更好地为领导制定海洋环境监测等相关政策提供辅助决策。of the 2009 IEEE Intema时hon咀alAdvance Computing Conf岛-r町古ence,Pa础tiala该系统实际应用表明系统运行稳定可靠,在行业中具有较好的India,2009 : 1634 -1638. 应用推广价值。系统为海洋环境监测信息平台引入先进的管理[ 2 ]杨放春,龙湘明.软件非功能属性研究[1].北京邮电大学学报,理念和管理模式,具有丰富、完善的功能,为推动南通海洋与植2004,27(3) :1-12. 业信息管理科学化和现代化,实施海洋与渔业可持续发展战略[ 3 ] Kiczales G, E Hilsdaleh, Hugunin J, et al. An Overview of aspectJ 发挥出重要作用。[CJIIProceedings of 15th ECOOP ,2001. [ 4 J Zhang L C. Aspect-oriented analysis for emhedded real-time systems 参考文献[ C ] IIProceedirψof advanced software engineering and出applica-tions,China,2008:53 -56. [1 ]丁士锋精通Silverlight:RIA开发技术详解[MJ.北京:人民邮电[ 5 ]丁辉,姚庆文.面向方面建模的研究[1].计算机应用与软件,出版社,2∞,25(4) :109 -111 [2 ]吕高旭.SILVERLIGHT: ASP. NET与AJAX开发实战[MJ.北京:[ 6 ] Bertagnolli S C, Lisboa M L B. The FRIDA Model [ C ] IIProceedings of 清华大学出版社, rkshop on Analysis Aspect-Oriented Software, Gennany ,2003. [ 3 J马骏,郑逢斌,沈夏炯.C#网络应用高级编程[MJ.北京:人民邮电