当前位置:文档之家› 需求驱动的软件体系结构设计

需求驱动的软件体系结构设计

第25卷第3期合肥工业大学学报(自然科学版)V o l.25N o.3 2002年6月JOU RNAL O F H EFE I U N I V ER S IT Y O F T ECHNOLO GY Jun.2002需求驱动的软件体系结构设计琚川徽, 程 勇, 袁兆山(合肥工业大学计算机与信息学院,安徽合肥 230009)摘 要:利用目标逻辑机制组织软件需求,在需求驱动下,只考虑体系结构设计方案是否满足相应目标,然后使用场景评价体系结构设计方案。

研究表明,这种设计思想扩大了软件体系结构的选择空间和抽象层次,有助于提高软件系统设计质量、可靠性及适应环境变化的能力。

关键词:框架;场景;需求驱动软件体系;结构设计中图分类号:T P311.5 文献标识码:A 文章编号:100325060(2002)0320350205Arch itecture design of requ irem en t-dr iven sof tware systemJU Chuan2hu i, CH EN G Yong, YU AN Zhao2shan(Schoo l of Computer Science and Info rm ati on Engineering,H efei U niversity of T echno logy,H efei230009,Ch ina)Abstract:In th is p ap er,the softw are requ irem en ts are o rgan ized by the logic m echan is m of goals,and the atten ti on in the arch itectu re design of the requ irem en t2driven softw are system is focu sed on w hether the co rresponding goal is satisfied,and certain scenari o can be u sed to evaluate the concrete arch itectu ral design alternative.It is found that w ith th is idea,alternative sp ace of softw are arch itec2 tu re is en larged and the ab stract level is enhanced,w h ich con tribu tes to the i m p rovem en t of design quality,system reliab ility and the ab ility of the system to adap t to diverse environm en ts.Key words:fram ew o rk;scenari o;requ irem en t2driven softw are system;arch itectu re design0 引 言随着电子商务、企业资源规划和移动计算等新的应用领域的出现,逐步改变人们对软件及软件系统的认识,即软件系统必须基于开放的体系结构,并要求能适应新需求的演变,因此,对软件系统健壮性、友好性、可移植性及适应环境变化的能力提出了更高的要求,促使人们改进传统的需求建模技术和软件设计方法,特别是软件体系结构设计方法。

软件体系结构是软件需求、业务技术流程和社会环境因素的整体高层规划,在体系结构设计过程 收稿日期:2001210222基金项目:国家重点实验室开放课题基金资助项目(011601B2)作者简介:琚川徽(1971-),女,浙江江山人,硕士生,安徽大学讲师;袁兆山(1945-),男,山东苍山人,合肥工业大学教授,硕士生导师.中,反映用户需求并根据需求指导软件体系结构设计选择是一个相互作用的过程。

本文利用目标逻辑机制组织软件需求,在需求驱动下,只考虑设计方案是否满足相应目标,然后使用场景评价设计方案,如不能满足目标可以重新考虑目标模型所确定的设计空间中的其它方案。

1 目标、场景模型及表示1.1 建模目标当前,软件系统仅建模了需求的静态和动态本体,即软件做什么和如何去做,这样的系统缺乏灵活性,不能很好地适应技术和组织频繁变化的环境,根本原因是没有建模需求的意愿本体,没有考虑系统为什么要这样建造的问题。

建模用户需求的底层原因及关系是成功开发软件系统的关键,因此,需求工程处理的不仅仅是技术知识,还包括组织、管理、经济和社会问题,需求规约说明不仅仅包括软件规约,还要包括软件系统的外围环境和其它各种信息。

i 3框架[1]提供了行为者概念,行为者可以是主体、职位和角色。

主体是一个具有物理表现的行为者,如一个具体的人,角色是在特定的环境和领域中,社会行为者的一种抽象行为特征,职位处于角色和主体之间,它是一个主体所能充当的角色的集合,职位包括多个角色,而主体只能占据职位,同时主体也能直接担当角色。

i 3框架还建模了行为者之间的社会依赖关系,如目标依赖、软目标依赖、任务依赖及资源依赖等。

目标依赖中,依赖者依赖被依赖者产生某些状态,但不限制被依赖者如何去做,由被依赖者自由选择。

任务依赖中,依赖者依赖被依赖者执行某些活动,任务依赖说明任务如何执行,而不是为什么要执行它。

资源依赖中,一个行为者依赖某个行为者获得某种实体,依赖者能使用某种资源。

软目标依赖中,依赖者依赖被依赖者执行某些任务满足某一软目标,软目标的意义由目标执行过程中所选方法说明,这些概念不仅可以建模需求的前期阶段和后期阶段,而且可用于体系结构设计。

i 3框架中包括策略依赖模型(SDM )和策略原理模型(SRM ),前者描述行为者之间的策略依赖关系,后者通过分析行为者之间的关系支持推理。

策略依赖关系是一个图,它的每个节点表示一个行为者,行为者是一个主动实体,行为者之间的链表示一个行为者为达到其目标而依赖另一个行为者。

策略原理(SR )模型是一个更细化的模型层次,通过分析行为者内部关系对内部意愿关系进行建模,在SR 模型中的意愿元素(目标、任务、资源及软目标)不仅是外部依赖元素,也是内部依赖元素,这些元素根据手段、结果及任务分解关系组成一种层次结构。

1.2 场景模型由于场景可以精确地刻画系统行为,相比形式化方法又显得更为直观,另外,场景概念还极大地方便系统开发者和用户之间的交流协商、文档编写及需求通信等,所以场景概念在软件工程中正得到越来越广泛的应用[2]。

多数学者认为,场景是用户或外部系统对某一特定系统使用情况的部分描述,但是,不同人对场景概念的外延理解和解释可能有较大差异,这依赖于所使用的语义和表示法。

图1 场景4个视图本文从广义上理解场景概念,认为场景不仅帮助描述和揭示系统功能需求,而且可产生规约说明、驱动设计和评价软件体系结构。

从场景的目的、内容、生命周期和形式4个不同的视图理解场景模型[3],如图1所示。

目的是指场景在软件开发过程中所起的作用,如利用场景描述系统功能,考察不同的设计方案或解释系统的缺点与不足等。

内容是指场景表达的知识。

生命周期是指场景的操作过程,如场景管理、场景演化及153第3期 琚川徽,等:需求驱动的软件体系结构设计其它处理问题。

形式是指场景的表达形式,是形式化还是非形式化,是静态、动态还是交互式的表示。

1.3 场景表示形式场景表示方法有多种形式,如u se case 、U se Case M ap s 、UM L 活动图、消息序列图(M SC )、Ch isel 图和Scenari o T rees 等。

本文简单介绍2种场景表示形式,即u se case 和U se Case M ap s ,前者在UM L 中用于获取用户需求,使用非常广泛,后者抽象层次较高,更适合于体系结构的描述。

文献[4]首先提出u se case ,它是对一个执行者使用系统的一项功能时所进行交互过程的一个文字描述序列。

UM L 用例图(u se case diagram s )提供了使用和扩展关系,将常规动作放在基本u se case 中,而将非常规动作放在它的扩展u se case 中,从而使u se case 能复用其它场景的某一部分。

u se case 基本上是基于时间序列的,并可能涉及到多个执行者。

文献[5]首先提出U se Case M ap s ,它是一种可视化的场景表示方法,它描述的是责任间的因果关系,该因果关系能绑定到底层的抽象组件。

U se Case M ap s 在同一张图中表示了多个抽象的相互关联的场景,但U se Case M ap s 并没有说明组件之间的消息交换,而是把它留到详细设计阶段说明,U se Case M ap s 通过动态桩和动态责任表示系统运行时的动态行为。

2 软件体系结构模型软件体系结构的设计模式有多种,如管道体系结构、数据抽象体系结构、通信进程体系结构、隐含调用体系结构、仓库体系结构、解释器体系结构、主程序和子程序体系结构及层次体系结构等模式[6~8]。

这里描述一个抽象的体系结构模型,该模型由组件和连接2类基本元素组成。

组件定义为系统的一个主动的可计算实体,通过一系列端口和它所在的环境进行交互,组件主要指软件组件,也可以扩充物理组件。

基本软件组件有类、可重用组件库及子系统等,每个组件分为说明部分和实现部分,它们又再分为功能部分和非功能部分。

连接定义组件之间的交互,每个连接为某个组件的端口提供一种访问其它组件的方式,并在逻辑上定义组件交互应遵守的协议。

连接实现方式有多种,如方法调用、网络连接、数据共享及消息通讯等。

3 需求驱动的体系结构设计需求分析主要关心问题空间,其主要目标是限定软件系统所解决的问题范围,而软件体系结构是关图2 需求驱动的软件体系结构设计过程于所求解问题的解决方案空间,它的主要目标是确定问题解决方案的结构。

传统的软件开发都是由编程范型驱动,所谓需求驱动是指软件体系结构设计基于需求分析的结果,因此,需求驱动下软件体系结构设计主要是描述所解决问题和解决方案之间的动态关系,其设计过程如图2所示。

需求分析首先在于问题的描述,可并行建立目标模型和场景模型。

随着开发过程,新的功能需求和非功能需求不断出现,对于功能需求,在目标模型中将它抽象为目标,对于非功能需求,将它抽象为软目标。

软目标具有目标的绝大部分属性,唯一差别是其满足标准没有目标明确,只要大多数事实不与软目253 合肥工业大学学报(自然科学版) 第25卷标冲突,就认为软目标是满足的,然后再进一步细化软目标,并对目标进行分解,直至具有可操作性,否则,继续重复这一过程。

相关主题