严熙 沙佰荣 郑威
摘 要: 当前成熟的软件系统分析与设计方法大多关注于软件系统的功能性,而可信性并未得到充分的考虑。随着软件本身及其运行环境日渐复杂,功能实现过程中软件的可信性引起人们越来越多的关注。为了构建出既满足功能性需求又满足可信性需求的对象模型,提出一种扩展用例驱动的设计方法,运用现有开发方法ICONIX方法,对软件分析设计过程中的健壮性分析过程进行扩展。引入一种新的用例来实现软件功能性和可行性的结合,并最终得出所需对象模型。
关键词: 软件分析; 可信性; 扩展用例; 对象模型
中图分类号: TN911?34; TP311 文献标识码: A 文章编号: 1004?373X(2016)08?0033?04
Analysis and application of extended use case driving technology in software system
YAN Xi, SHA Bairong, ZHENG Wei
(School of Electronics and Information, Jiangsu University of Science and Technology, Zhenjiang 212003, China)
Abstract: Current mature software analysis and design methods are mainly concerned with the function of the software system, but the credibility of the software has not been fully considered. Since the software and its running environment become more and more complex, the software reliability in the realization process of its function has attracted more and more attention. In order to build the object model, which not only meets the functional requirements, but also satisfies the demand of the credibility, a design method of the extended use case is proposed in this paper. The existing method, ICONIX method, is used to extend the analysis process of robustness in software analysis and design process. A new use cases was introduced to achieve a combination of software functionality and feasibility, and the object model needed for software design was obtained.
Keywords: software analysis; credibility; extended use case; object model
0 引 言
随着软件系统应用领域越来越多,软件系统使用中也正面临着各式各样的功能性以外的干扰(比如网络恶意攻击、用户操作失误等);在这些情况下,构建一个可信属性的系统已成为开发人员所面临解决的一大难题。然而,怎样在软件分析与设计中综合考虑功能性和可信性,目前并无行之有效的方法。文中基于当前常用的用例驱动分析设计方法 ICONIX,提出了一种扩展用例驱动的方法,将可信软件系统建模为一个有前馈和反馈控制的系统。过程中,系统将通过引入的前馈和反馈控制来应对自身可能出现的行为偏差以及外在存在的威胁,从而提高可信性,最终构建出既满足功能性需求又满足可信性需求的对象模型。
1 用例驱动方法
ICONIX[1]是众多用例驱动开发方法中比较轻量级的一种,过程的规模大概在重量级Rational Unified Process(RUP)和轻量级的极限编程(XP)之间,在软件系统分析设计的过程中使用一个最小的UML核心子集(4种UML元素:用例图、健壮性图、时序图、类图)来实现对用例驱动的OO设计。ICONIX方法的基本设计过程包含领域建模、用例建模、健壮性分析、交互建模[2]四个步骤;该动态过程的目标是不断精化,并运用适当方式进行测试[3]以完善用例系统对象模型设计。其中,领域建模和用例建模构成需求分析阶段的主要活动,健壮性分析和交互建模则构成在统设计阶段的主要活动。
在开发可信性软件系统时,主要考虑“影响系统的可信性的潜在因素有哪些?”,从根本出发,将可信的软件系统建模为前馈?反馈控制系统[4?5],被控对象是软件系统的核心,其对外展现了系统的基本行为和所有服务。其中,前馈控制主要用来应对需求分析时出现的威胁,然而在分析阶段过程中很难预计运行时所将面临的各类威胁,因而需要反馈控制来应对处理运行过程中出现的行为偏差。通过两者相互协作,确保软件系统能够保障行为符合预期、服务可信赖,从而提高自身可信性。
2 扩展用例驱动的方法
2.1 扩展用例驱动模型
扩展用例驱动模型是对原有用例驱动模型进一步扩展,在其中引入一个新的用例。如图1所示的系统元模型图展示了用例相关的各个概念及之间存在的关系。
图1中新引入用例的主要作用是控制其他用例以及自身的活动序列,并从中采取相应控制措施来保障软件系统自身的可信性。图1中前馈控制描述的是软件系统在威胁出现时采取的应对措施,这里所诉的威胁一般是发生在系统外部,并对系统行为产生了一定影响的干扰事件。反馈控制则描述的是软件系统在应对自身行为偏差时所采取的措施。其中行为偏差指的是系统运行中,实际行为对设计时行为的偏离。常见有系统服务时间延迟、服务不可用、输出数据有误等。
2.2 设计过程
扩展用例驱动方法主要是在原有用例驱动过程上引入新的用例来进行扩展。需求分析中,分别针对系统功能性和可信性需求进行建模[6],包含领域建模、用例建模、新引入用例建模并得出最终的扩展用例模型图;设计过程中则根据需求分析所得模型图进行系统模型设计,其中主要包含扩展的健壮性分析以及交互建模,并最终得出所需的系统类图,具体过程如图2所示。过程中主要包含4个活动:领域建模、扩展用例建模、扩展的健壮性分析以及交互建模。其中:
(1) 领域建模活动与ICONIX方法中的相应活动相同,目标都是根据问题域的描述来确定一个词汇表,并构成系统对象模型的雏形,也就是对系统对象类的最初猜想。
(2) 扩展用例建模是从用户的角度出发并基于原有的用例系统模型,在引入新的用例后建立起来的扩展模型,是对原有用例模型的扩展,以及功能性中可信性的实现。
(3) 扩展的健壮性分析基于ICONIX方法中的健壮性分析[7?8]活动,在引用新的用例后重新进行健壮性分析,也是需求分析和详细设计之间的桥梁。目的是根据新引入用例的描述设计扩展健壮性模型图,来识别实现扩展用例的功能对象和可信保障对象。该活动中,将用例描述的需求离散化为各类对象(参与者、边界对象、实体对象、与控制对象)的交互所构成的健壮性模型图。
(4) 扩展的交互建模的目标则是基于ICONIX方法中的交互建模[9]活动来对系统进行详细设计,将系统行为分配到扩展健壮性分析过程所识别到的边界对象和实体对象中。根据新引入用例的描述来绘制对象之间消息交互的序列图,并分配新引入用例所描述的系统功能性行为和可信性行为到各个对象中,并考虑两种行为之间存在的联系。
下面,通过具体案例的需求分析和系统设计两部分内容,来介绍本文所提出的方法。
3 案例分析
本节以某购票系统为例,说明扩展用例驱动的分析与设计方法的应用。客户可以通过系统查询各种情况(票的价格、车次的情况、站点情况),再通过系统数据库给予的实时信息提示去预定车票,完成订票过程,客户也可通过系统对已订购的票进行退订、改签等操作。
3.1 需求分析
基于购票过程的描述,初步确定在线购票系统参与者包括:用户、管理员。分别从这些参与者角度出发,建立在线购票系统用例模型如图3所示。其中,用户可以完成很多操作,比如改签、订票、退订等,这些操作的前提是登录系统。用户在操作过程中会出现一些突发情况,比如:订单信息填写不正确,系统订单交易异常等。其中,管理员拥有修改票务相关信息和管理用户权限。
由图4可知,用户与系统进行交互过程中会有新引入用例来进行相应控制处理,避免突发性威胁以及系统行为偏差,达到对系统可信性的保障[10?11]。
登录用例中,信息输入后前馈控制对信息进行加密处理,避免账户信息被盗用。除此之外,前馈控制也会限制用户对于密码的输入次数,防止恶意破解密码的行为。在提交订单过程中,控制用例体现的尤为重要,用户在向系统提交订单时会针对系统行为偏差或者存在的威胁进行相应控制处理。提交信息会被前馈控制先进行加密处理后再提交给系统,这样可以避免账户信息被盗用。
交易过程中可能会出现系统访问异常而无法连接问题,此时前馈控制就会启用系统预先设定好的默认备用连接,以确保交易正常进行。此外,系统也会优化订单处理时间,借助于反馈控制将会解决订单提交延迟等问题。从系统需求分析中可以看出,引入新的用例后将会提升整个系统的可信性[12]。
3.2 系统设计
针对图4所示的扩展用例模型图,接下来着重以用例“提交订单”为例来说明扩展用例驱动在售票系统的设计过程。由需求分析中描述知,用例“提交订单”中“订单加密”所描述的都是静态控制措施,而“降低处理时间”和“启用备用链接”却都是动态的措施,且直接作用于“提交订单”。接下来对新入用例“订单加密”进行健壮性分析,识别出此用例所支持的控制对象。将这些对象全部添加到用例的扩展健壮性模型图如图5所示。图6为基于图5的健壮性模型图所绘制的序列图。图7是根据“登录”、“提交订单”及新引入用例等用例对应的健壮性分析及交互建模更新后所得的扩展对象模型(图7的类图采用了ICONIX开发方法采用风格)。
4 结 语
为了实现功能性和可信性在软件系统分析与设计中的综合应用,本文基于当前成熟的用例驱动分析与设计方法,提出了一种扩展用例驱动方法来应对软件系统中出现的突发性异常威胁以及系统行为偏差。应用了在线购票交易系统来说明该方法的可行性。软件系统在后期运行过程中可能面临的威胁和偏差远远不止以上所叙述的这些,可能会出现一些意外情况,比如服务器崩溃、系统内部组件失效、管理员操作不当等。
接下来的过程中会继续对该方法进行改进。另外,软件系统设计过程中也需要以更加有效的方式来组织对新引入用例的描述,以致可以更好地描述可信性需求,并最终将其转化为设计,便于后续的软件开发与应用,这也将会是未来的研究方向。
参考文献
[1] ROSENBERG Doug, SCOTT Kendall. Applying use case driven object modeling with UML [M]. [S.l.]: Post & Telecom Press, 2005.
[2] 张友生.系统分析与设计技术[M].北京:清华大学出版社,2005.
[3] 刘春玲,雷海红.黑盒测试用例设计方法研究[J].现代电子技术,2012,35(20):46?48.
[4] 薛定宇.反馈控制系统设计与分析[M].北京:清华大学出版社,2000.
[5] CAI K, CANGUSSU J W, DECARLO R A, et al. An overview of software cybernetics [C]// Proceedings of the 11th Annual Intl Workshop on Software Technology and Engineering Practices. Amsterdam: IEEE, 2003: 77?86.
[6] 崔晓燕,袁刚.基于ICONIX方法的O&M架构设计与分析[J].软件导刊,2008(12):22?23.
[7] 张春娣,康春农.健壮性分析在软件开发中的应用[J].计算机与现代化,2009(6):48?51.
[8] 韩建亚,吴智博,刘卓钺,等.基于使用剖面分析的系统健壮性评测方法[J].计算机工程与设计,2012,33(3):973?977.
[9] 王鑫宁.UML软件建模在污染源在线监测系统中的应用研究[D].青岛:中国海洋大学,2012.
[10] 王环环,詹永照,陈锦富.可信软件分析与测试研究进展[J].计算机应用研究,2011,28(7):2401?2406.
[11] 姜兴杰,杨峰辉.软件可靠性分析与设计[J].现代电子技术,2011,34(7):135?137.
[12] DONZELLI Paolo, BASILI Victor. A practical framework for eliciting and modeling system dependability requirements: experience from the NASA high dependability computing project [J]. The Journal of systems & software, 2005, 79(1): 107?119.