已阅读5页,还剩50页未读, 继续免费阅读
(计算机软件与理论专业论文)面向方面需求工程方法研究与应用.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
、 户 独创性声明 本人郑重声明:所提交的学位论文是本人在导师指导下独立进行研究 工作所取得的成果。据我所知,除了特别加以标注和致谢的地方外,论文 中不包含其他人已经发表或撰写过的研究成果。对本人的研究做出重要贡 献的个人和集体,均已在文中作了明确的说明。本声明的法律结果由本人 承担。 学位论文作者签名: 支i 霞乳趣 日期: 兰! ! ! :兰3 学位论文使用授权书 本学位论文作者完全了解东北师范大学有关保留、使用学位论文的规 定,即:东北师范大学有权保留并向国家有关部门或机构送交学位论文的 复印件和电子版,允许论文被查阅和借阅。本人授权东北师范大学可以将 学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩 印或其它复制手段保存、汇编本学位论文。 ( 保密的学位论文在解密后适用本授权书) 学位论文作者签名:釜l 盛叠药指导教师签名:堑塑鸯 日 期:丝! ! :叼 日 期:a 型! :日 学位论文作者毕业后去向: 工作单位: 通讯地址: 电话: 邮编: 曰 寻 粤 p - i 1 i f - 、i l + 1 摘要 面向方面方法是一个崭新的研究领域,近年来,随着软件开发人员对面向方面思想 的进一步了解和在软件开发中的广泛应用,研究人员开始意识到在需求阶段就引入方面 的概念和思想是十分必要的,面向方面需求工程方法应运而生。面向方面需求工程 ( a o r e ) 是为在需求阶段提高关注点分离程度、很好地处理“横切关注点 而提出的 一种新的需求模块化方法。现有的基于用例的面向方面需求工程方法( a u c ) 只能识别 粗粒度的非功能横切关注点,不能很好的反映出方面在软件开发后期的实现,无法实现 从需求阶段到系统分析和设计阶段的顺利过渡。本文首先介绍了现有一些较为成熟的面 向方面需求工程方法的主要思想,并对这些方法进行综合的比较与分析。指出每种方法 的适用范围及优缺点,为研究人员和系统开发人员研究及使用面向方面需求工程方法提 供了参考依据;其次本文通过改进非功能需求框架( n f rf r a m e w o r k ) ,使之与a u c 方 法相结合,形成了一种新的面向方面需求工程方法一a u c n f r 方法。a u c n f r 方 法弥补了a u c 方法只能识别粗粒度非功能横切关注点的不足,该方法不仅能准确的识 别出功能性横切关注点,而且对非功能性横切关注点的识别粒度更小,实现了从需求阶 段到设计阶段的平滑过度。最后,在方面复合阶段,为了实现形式化方法的推理证明等 机制,我们运用模式规约和状态机等相关知识对方面复合规则进行形式化表示,从而建 立了规格说明统一的语义,进而降低了软件开发的复杂性,提高了系统的可维护性 关键词:面向方面,需求工程,功能性横切关注点,非功能性横切关注点,用例, 非功能需求框架,状态机,模式规约 a b s t r a c t a s p e c t - o r i e n t e dm e t h o di sab r a n dn e wr e s e a r c ha r e a i nt h er e c e n ty e a r s ,w i t ht h e d e v e l o p m e n to fa s p e c t o r i e n t e d m e t h o da n di n c r e a s i n g l yb e i n ga p p l i e di ns o f t w a r e d e v e l o p m e n t , t h er e s e a r c h e r sn o t et h a ti n t r o d u c i n gt h ei d e a so fa s p e c t - o r i e n t e dm e t h o di n t h er e q u i r e m e n te n g i n e e r i n g a sac o n s e q u e n c eo ft h i st r e n d ,a s p e c t - o r i e n t e dr e q u i r e m e n t e n g i n e e r i n gg e n e r a t e d a s p e c t - o r i e n t e dr e q u i r e m e n te n g i n e e r i n g( a o r e ) i san e w a p p r o a c ho fi m p r o v i n gm o d u l a r i t yi nt h er e q u i r e m e n t sw h i c hm a k ei tp o s s i b l et ob e g i n t a c k l i n gt h ep r o b l e mo ft a n g l i n g , s c a t t e r i n go ft h er e q u i r e m e n ta se a r l ya si nr e q u i r e m e n t a n a l y s i sp h r a s ea n dh e n c eh e l pd i s c o v e rc r o s s c u t t i n gc o n c e r n si nr e q u i r e m e n tp h a s ea n d i m p r o v et h ed e g r e eo fs e p a r a t i o no fc o n c e r n s i na l la s p e c t u a lu s e - c a s ed r i v e na p p r o a c h ( a u c ) ,t h ed e s c r i p t i o no fn o n f u n c t i o n a lr e q u i r e m e n t si sn o ts p e c i f i ce n o u g h i ts h o u l dn o t b ew e l lm 印p e di ni m p l e m e n t a t i o no ft h el a t ed e v e l o p m e n t ,t h u si tc a l ln o ta c h i e v eas m o o t h t r a n s i t i o nb e t w e e nt h es y s t e ma n a l y s i sa n dt h ed e s i g n i nt h i sp a p e r ,w ef i r s ts u m m a r i z e m a i ni d e a sa n dc u r r e n tp r o b l e m so fr e l a t i v e l ym a t u r ea o r ea p p r o a c h e s ,a n a l y z ea n d c o m p a r et h e s ea o r ea p p r o a c h e sw i t hr e s p e c tt ot h ek e yi s s u e so fi d e n t i f y i n gc r o s s c u t t i n g c o n c e r n s t h i sp a r ta l s os e lv e sa sar e f e r e n c ef o rr e s e a r c h e r sa n ds y s t e md e v e l o p e r sw h oa r e i n t e r e s t e di na o r ea p p r o a c h e s s e c o n d l y ,w ea d a p tt h en f rf r a m e w o r kt oa u ca n dt h e r e s u l t i n gm e t h o di s c a l l e da u c n f ra p p r o a c h a u c n f ra p p r o a c hn o to n l yi d e n t i f i e s f u n c t i o n a l c r o s s c u t t i n gc o n c g t l l sb yt e m p l a t e ,b u t a l s oc a r l g e tt h e f i n e rg r a i no ft h e n o n f u n c t i o n a lc r o s s c u t t i n gc o n c e r n s t h e r e f o r e ,i ta c h i e v e sas m o o t ht r a n s i t i o nb e t w e e nt h e s y s t e ma n a l y s i sa n dt h ed e s i g n f i n a l l y , i nt h ea s p e c tc o m p o s i t i o np h a s e ,i no r d e rt oa c h i e v e f o r m a lm e t h o d sa n du s et h er e a s o n i n ga n dp r o o fm e c h a n i s m s ,w eu s ep a t t e r ns p e c i f i c a t i o n s a n ds t a t em a c h i n e st of o r m a l i z et h ea s p e c tc o m p o s i t i o nr u l e sa n dc r e a t et h eu n i f i e ds e m a n t i c s o ft h es p e c i f i c a t i o n , t h u sr e d u c i n gs o f t w a r ed e v e l o p m e n tc o m p l e x i t ya n di m p r o v et h e m a i n t a i n a b i l i t yo ft h es y s t e m k e yw o r d s :a s p e c t - o r i e n t e d , r e q u i r e m e n t se n g i n e e r i n g , f u n c t i o n a lc r o s s c u t t i n gc o n c e r n , n o n f u n c t i o n a lc r o s s c u t t i n gc o n c e r n ,u s ec a s e ,n f rf r a n e w o r ls t a t em a c h i n e ,p a t t e r n s p e c i f i c a t i o n s 0 、 i 目录 摘 要”一”“”“”一一”“”i a b s t r a c t i i 目录 i oq o o 第一章前言1 1 1 面向方面需求工程背景1 1 2 研究现状0 0 0000 2 1 3 待研究问题2 1 4 本文主要工作及论文组织结构3 第二章面向方面需求工程4 2 1 面向方面需求工程概述4 2 1 1 基本概念4 2 1 2 面向方面需求工程基本过程5 2 1 3 关键问题7 2 2 面向方面需求工程主要方法絮8 一- 。 2 2 1 基于组件的面向方面需求工程方法8 2 2 2 基于视点的面向方面需求工程方法9 2 2 3 基于目标的面向方面需求工程方法1 0 r 。 2 2 4 基于用例和场景的面向方面需求工程方法1 1 2 2 5 基于非功能需求框架的面向方面需求工程方法1 3 2 2 6t h e m e d o c 方法1 3 第三章面向方面需求工程方法综合比较与分析1 5 3 1 需求模型种类1 5 3 2 复合规则b ggi ooo oo oa 1 5 3 3 冲突处理1 6 3 4 影响分析0 0000oo jo lo oob o 1 6 3 5 工具支持o oo oo oo oq e00o0 1 5 第四章a u c n f r 模型1 9 4 1 识别功能性需求并画出用例图1 9 4 2 识别并描述全局性非功能软目标o oo ooo o000 ooq00 2 0 4 3 在用例图的非功能需求连接点处关联非功能软目标2 0 4 4 识别和解决冲突2 1 4 5 精化用例图并识别功能性横切关注点2 2 i i i 4 6 分解非功能软目标2 2 4 7 精化用例图中连接点处的子软目标并识别非功能性横切关注点o 0 ooqo000 d 00 2 3 第五章方面复合规则的形式化2 4 5 1 相关概念0 0 0oq 2 4 5 1 1 模式规约6 0 00100 00 0o oo qb 000 000 2 4 5 1 2 模式规约状态机2 5 5 1 3 有限状态机o i oi o0 00 2 6 5 2 方面复合q o oo i oos eo0o0 g o0 000 2 6 5 2 1 例化规则0 0 00 000d 2 7 5 2 2 复合规则o q gg od 2 8 第六章实例应用3 0 6 1 识别功能性需求并画出用例图0 o o00 og 3 0 6 2 识别并描述全局性非功能软目标3 0 6 3 在用例图的非功能需求连接点处关联非功能软目标3 1 6 4 识别和解决冲突3 2 6 5 精化用例图并识别功能性横切关注点3 2 6 6 分解非功能软目标0 1 00 10qo0 3 4 6 7 精化用例图中连接点处的子软目标并识别非功能性横切关注点3 5 6 8 方面的复合3 5 第七章总结与展望4 2 7 1 工作总结4 2 7 2 工作展望4 2 参考文献4 3 致谢“4 5 在学期间公开发表论文及著作情况q o ooo qoog 4 6 f 东北师范大学硕士学位论文 第一章前言 1 1 面向方面需求工程背景 随着软件系统规模和复杂性的不断增加,系统各个组件之间的相互影响变得越来越 复杂。这些相互影响可能会限制软件的重用性和可扩展性。传统的系统工程已经不能适 应和满足日益复杂的系统开发要求。复杂系统工程成为一个越来越重要的研究领域,而 对其中最关键的阶段一需求工程的研究则变得尤为紧迫。自从6 0 年代提出“软件危 机 以来,需求问题被认为是导致这种危机产生的最重要原因之一,需求工程应运而生。 我们可以将系统看作由一组关注点组成。所谓关注点,就是一个特殊的目标、概念 或感兴趣区域。“分离关注点 被广泛认为是软件工程应遵循的基本原则,其基本思想 就是一次处理系统的一个属性,即每次确定、封装和分析一个系统中与某个特定兴趣点 相关的那些部分。在需求阶段,更好地贯彻这种原则成为复杂系统需求工程的关键。在 过去的几十年里,关注点分离技术己经有了很大的发展,如面向过程的方法、面向对象 的方法等。面向过程开发方法接近于计算机世界的物理实现,将程序分离为数据结构和 相应的算法,实现了一定程度上的模块化,关注点分离程度不高。面向对象由于采用类 和对象对数据和行为进行了封装,达到了功能和数据的高度统一,获得了较好的功能关 注点分离能力。所以逐渐成为当今主流的软件开发方法。但是当系统非常的复杂的时候, 对象间的关联也将趋于复杂,因此会产生一些分散于系统各处的横切关注点,所谓横切 关注点就是指那些具有公共逻辑的,与其他模块的核心逻辑纠缠在一起的行为称为“横 切关注点 。而面向对象方法对这些横切关注点却没有提供很好的支持。这些横切关注 点分散于系统的各个模块中,破坏了系统的模块化,引起了代码的絮乱。考虑到这一点, 出现了新一代的关注点分离技术。面向方面软件开发方法。面向方面的方法是系统地确 定、模块化、表示和复合横切关注点,从而使横切关注点抽象化和模块化,并且很好地 进行复合。面向方面需求工程方法是近年来随着面向方面( a o ) 的概念、程序设计方 法( a o p ) 以及软件开发方法( a o s d ) 而提出来的。面向方面方法最早是由施乐( x e r o x ) 公司在美国加州硅谷p a l o a i t o 研究中心( p a r c ) 的首席科学家、加拿大大不列颠哥伦 比亚大学教授g r e g o rk i c g a l e s 1 】等人首次在1 9 9 7 年的欧洲面向对象编程大会 ( e c o o p9 7 ) 上提出的,是通过引入方面概念,改进关注点的分离,减少代码缠结( c o d e t a n g l i n g ) ,解决横切关注点的问题,提高软件质量和效率。a o p 是通过运用a s p e c t 这 种程序设计单元,允许开发者使用结构化的设计和代码,使设计和代码更加模块化、更 具结构化,使关注点局部化而不是分散于整个系统中。同时通过关注点和系统其他部分 保持良好定义的接1 :3 来真正达到“分离关注点,分而治之 的目的。随着对面向方面思 想的进一步了解和在软件开发中的广泛应用,研究人员开始意识到在需求阶段就引入方 东北师范大学硕士学位论文 面的概念和思想是十分必要的,因为这样就可以在软件开发早期就确定和模块化横切关 注点,为后面的体系结构设计和编码提供决策支持,也可以尽早对软件的复杂度和成本 进行估计。面向方面需求工程方法通过在需求阶段引入方面( a s p e c t ) ,可以在系统开 发早期就很好地支持功能性和非功能性横切( c r o s s c u t t i n g ) 属性的分离。方面( a s p e c t ) 指的是对横切关注点的模块化定义,包括:识别出横切关注点并把该横切关注点封装到 一个模块中,同时给出如何与其他关注点的结合方式。对于一个( 软件) 系统来讲,在 不同的开发阶段,方面的抽象度不同: 实现阶段,方面对应的是横切代码段; 设计阶段,方面对应的是体系结构中的具有横切属性的部分; 需求阶段,方面对应的是横切属性的部分需求; 面向方面的需求工程( a o r e ) 是为在需求阶段提高关注点分离程度、很好的处理 “横切关注点 而提出的一种新的需求模块方法,是一个崭新的研究领域。 1 2 研究现状 面向方面需求工程的研究是个较新的领域,经过国内外研究人员的不懈努力,已经 产生了一批面向方面需求工程方法,这些a o r e 方法可以分为两大类:一类是扩展现有比 较成熟的需求工程方法,在现有的需求工程方法中加入了识别横切关注点的机制。如基 于组件的面向方面需求工程方法、基于视点的面向方面需求方法、基于目标的面向方面 需求方法、基于用例和场景的面向方面需求方法、基于非功能需求框架的面向方面需求 工程方法:另一类是一种基于需求文本的面向方面需求工程方法,立1 t h e m e d o c 方法。现 在也有一些研究人员正致力于用其它学科的知识去改进现有一些面向方面需求工程方 法,如基于概念格的面向方面需求工程方法【2 】。 目前常用的几种面向方面需求工程方法基本上都处于理论研究阶段,这些方法都有 各自适用条件和优缺点。 1 。3 待研究问题 尽管目前关于面向方面需求工程的研究取得了一些成果,但是仍然很不成熟,还有 很多问题有待解决,这包括: ( 1 ) 大多数方法都是针对非功能性需求的横切关注点,还有一部分方法只是针对 功能性需求的横切关注点,而没有把功能性需求和非功能性需求同时考虑来处理横切关 注点问题; ( 2 ) 分析的需求文档通常都是基于非形式化的文本,或者是半形式化的模型( 如 u m l ) ,横切关注点的识别大都基于自然语言处理,通常只是找到重复出现的关键字,需 要用户干预的情形很多,因此应用起来比较被动; ( 3 ) 尽管已经开展了关于复合方面的工作,但是这些工作仅仅处于初期阶段,需 2 东北师范大学硕士学位论文 要提供更完全的复合语义和交汇点模型; ( 4 ) 缺乏合理而有效的关注点形式模型,对横切关注点的规范描述也大都基于非 形式的文本模板: 1 4 本文主要工作及论文组织结构 本文所做的主要工作有以下内容: 1 给出了面向方面需求工程主要方法综合比较与分析,这部分内容构成了本文的 第三章。 2 提出了一种新的面向方面需求工程方法a u c n f r 模型,模型的前七步构成了 本文的第四章。 3 方面复合规则形式化,形成完整的a u c n f r 模型,这部分内容构成了本文的第 五章。 4 a u c n f r 模型在停车场系统的应用,构成了本文的第六章。 论文组织结构: 第一章,介绍面向方面需求工程背景、研究现状、待研究问题和本文主要工作及论 文组织结构。 第二章,介绍面向方面需求工程的相关概念和主要方法。 第三章,面向方面需求工程主要方法综合比较与分析。 o j 第四章,详细讲解a u c n f r 建模的前七个步骤。 第五章,首先介绍复合规则中所使用的模式规约和状态机等相关概念并详细讲解方 面复合规则形式化方法。 , 第六章,将a u c n f r 模型应用到停车场系统中。 第七章,对文章进行总结,提出对未来研究的展望。 3 东北师范大学硕士学位论文 第二章面向方面需求工程 “关注点分离”( s e p a r a t i o no fc o n c e m s ) 是软件工程各个阶段应遵循的基本原则之 一。这个观点最早由d i j k s t r a 在ad i s c i p l i n eo fp r o g r a m m i n g ) ) 一书中提出来,其基 本思想就是一次处理系统的一个属性,即每次确定、封装和分析一个系统中与某个特定 兴趣点相关的那些部分。随着软件系统的规模和复杂度不断增大,“关注点分离”的必 要性变得越来越突出,因为通过分离关注点可以对大型复杂系统进行合理的模块化分 解,从而降低复杂度,便于实现软件维护、软件重用和软件演化。然而,在当前的软件 开发技术框架下,一些关注点( 如:安全、通信、事务等) 很难被模块化,它们往往与 其它多个关注点彼此贯穿,被称为“横切关注点”( c r o s s c u t t i n gc o n c e m s ) 。以分离关 注点为核心的面向方面需求工程( a s p e c to r i e n t e dr e q u i r e m e n te n g i n e e d n g ) ,通过 在需求阶段引入方面( a s p e c t ) 的概念,在系统开发早期对功能性和非功能性横切关注 点的分离给予了很好的支持,是一个非常有前途的需求工程方法。本章将分别介绍面向 方面需求工程中汲及的基本概念、识别方面的基本过程和当前几种主要的面向方面需求 工程方法及各种方法的综合比较与分析。 2 1 面向方面需求工程概述 本节首先明确面向方面需求工程一些相关概念,然后给出面向方面需求分析的基本 过程,最后指出面向方面需求工程应解决的关键问题。 2 1 1 基本概念 关注点( c o n c e m ) 指的是一个特定的目标、概念、或者兴趣域。 横切关注点( c r o s s c u t t i n gc o n c e m ) 指的是符合下面情形的一个关注点: 该关注点的规格说明或者实现分散于其他多个关注点之中; 该关注点贯穿了规格说明中的多个需求集合; 该关注点表示一个范围较广的属性,如:安全性,实时性和分布性等。这些属 性将同时影响多个需求,而这些需求又将对接下来的开发起很大的作用。 方面( a s p e c t ) 指的是对横切关注点的模块化定义,包括:识别出横切关注点并把该 横切关注点封装到一个模块中,同时给出如何与其他关注点的结合方式。对于一个( 软 件) 系统来讲,在不同的开发阶段,方面的抽象度不同: 实现阶段,方面对应的是横切代码段; 设计阶段,方面对应的是体系结构中的具有横切属性的部分; 需求阶段,方面对应的是横切属性的部分需求: 4 东北师范大学硕士学位论文 面向方面程序设计方法是为了解决“代码缠结( c o d e t a n g l i n g ) 和“代码分散”( c o d e s c a t t e d n g ) 1 6 - j 题而提出的,其主要思想是:把横切关注点代码模块化成一个,横切关注 点和非横切关注点的开发独立进行,提供编织( w e a v i n g ) 技术用于在横切关注点的结合 点( j o i n t p o i n t ) 把横切关注点代码插进来,从而得到最终可运行的系统。 面向方面软件开发方法是解决如何在软件开发各个阶段系统地识别、模块化、表示 和复合横切关注点,并且保证在不同的阶段对横切关注点的可追踪性。 面向方面需求工程( a o r e ) 是把面向方面的思想引入到需求阶段,从而可以在需求 阶段就处理和解决需求的缠结、分散和复合的问题,尽早发现横切关注点,把它们封装 成a s p e c t ,从而提高需求的模块化程度,有利于对需求进行综合的分析和验证。 图2 1 给出了需求横切关注点的例子,图2 2 给出了a o r e 如何处理图2 1 中的横 切关注点,两个横切关注点被模块化成两个a s p e c t ,并且指出它们在两个需求中的结 合点。 越: 给每个账户圆, 确保交易事件正确完成, 缳留审计历史记最。一 横切关注点 横切关注点 越: 允许客户从他们的账户圆, 确保交易事件正确完成, 烬留审计历史记录。 图2 1 需求横切关注点例子 图2 2a o r e 处理横切关注点方法 2 1 2 面向方面需求工程基本过程 关于面向方面需求工程的研究可以说才刚刚起步,因此,目前还没有一个公认的需 求分析过程。综合相关文献 3 ,4 可以得到如图2 3 所示的a o r e 过程框架,其中包含 如下7 个主要需求工程活动: 东北师范大学硕士学位论文 图2 3a o r e 的基本过程框架 ( 1 )需求获取 在a o r e 中,可以先进行需求的获取,在得到全部的需求后再做与横切关注点相关 的任务,也可以是需求的获取和识别关注点同时进行。需求的获取可以借鉴很多已有的 方法,基于视点的方法、基于目标的方法、基于用例的方法、基于领域模型的方法等, 需求的规格说明可以采用文本方式、u m l 模型或者形式化描述。 ( 2 )关注点的识别 通过分析已建立的需求集合,识别出将开发系统的所有关注点,并且把每个关注点 和相关的需求建立链接。一个关注点对应的是一个或者多个涉众所关心的某个问题或者 系统的某个特性等,通常一个关注点被定义为一个相互关联的一组需求。 ( 3 )关注点的规范描述 为定义关注点提供一个模板,列出一个关注点应包含的所有信息。基于这个模板给 出每个关注点的严格定义( 可以是较严格的文本定义或者可视化表示形式) ,形成关注 点模型。对于每个关注点,需要明确其职责、优先级、和对需求和其它关注点的作用等。 ( 4 )横切关注点的确定 如果一个关注点影响或者限制了多个需求,则该关注点被确定为横切关注点。为了 确定横切关注点,需要对每个关注点以及它所影响的所有需求进行详细的分析。横切关 注点的确定还有另一种方法:建立关注点之间的相互影响关系,当多个关注点需要同一 个关注点时,该关注点被称为横切关注点。 ( 5 )方面的规范描述 确定横切关注点后,要把每个横切关注点封装起来,定义为一个a s p e c t ,给出其规 范描述。对一个系统的需求集合可以依据某种原则进行划分,如果此时一个横切关注点 仅仅影响同一组中的多个需求,则这个横切关注点不被当作a s p e c t 。对a s p e c t 的规范 描述过程需要反复进行,从而使得对每个a s p e c t 的描述更加具体化。 ( 6 )方面的复合 确定每个方面的匹配点( m a t c h p o i n t ) ,即在相关需求中的插入点,然后为每个匹配 点提供复合规则,这样可以把一组关注点复合成一个整个系统。 6 东北师范大学硕士学位论文 ( 7 )冲突的检测和解决 在复合方面的前后,都有可能检测到需求之间的冲突,针对不同情形的冲突,给出 相应的解决方法。当发现冲突时,可能需要修改或者删除某些需求,也可能需要重新建 立关注点模型。 在上述a o r e 活动完成之后,可以对方面进行影响分析,主要包括: 把需求阶段的方面映射到系统的某个特性功能、某个设计决策或者实现策略, 从而可以跟踪和分析该方面对其映射的影响: 需求阶段的一个方面可能影响开发周期中不同阶段的不同关键点,从而可以跟 踪和分析该方面对后续开发阶段所产生的一系列影响,因此可以提前为后面的 开发提供决策支持。 2 1 3 关键问题 从a o r e 的基本过程可以看出,a o r e 方法的核心问题是如何在需求阶段识别、描 述和复合横切关注点,为此需要解决如下一些关键问题 2 6 ,2 8 : ( 1 ) 采用何种需求模型 不论是在已生成的需求集合上处理横切关注点,还是在生成需求的同时处理横切关 ” 注点,都需要明确将采用的需求模型。不同的需求模型对需求的表示方式不同,必将导 致不同的横切关注点识别方法。 ( 2 ) 如何建立关注点空间模型( c o n c e ms p a c em o d e l ) 。1 : 通常情况下,a o r e 方法首先要确定系统的所有关注点,其中有些关注点是所有软 件系统共有的,如安全性等,有些关注点是领域相关的,还有一些关注点是该系统本身 特有的,因此,建立一个合理的关注点空间模型,有效定义各个关注点之间关系,是十 分有必要的。 ( 3 ) 如何识别和形式定义横切关注点 在确定系统的所有关注点后,需要识别出其中的横切关注点并且给出它们的形式定 义。发现横切关注点的过程需要反复进行。如果建立的关注点模型比较合理,那么横切 关注点的识别也会比较容易。 ( 4 ) 如何定义复合规则 a o r e 方法是把横切关注点与其他关注点复合起来,从而获得整个系统的需求。在 复合过程中可以检查需求之间是否有冲突,因此,如何给出语义清楚的复合规则,从而 允许每个横切关注点在其匹配点上与其他关注点的需求进行有效的复合,成为关键性问 题。 ( 5 ) 不同冲突的检测与解决方法 尽可能发现横切关注点相关的需求冲突,并且针对不同的冲突类型,给出它们应满 足的条件和具有的特征,并且找出对应的冲突解决方法。 ( 6 ) 如何进行与软件开发其它阶段的影响分析 在需求阶段处理横切关注点的目的之一就是为后续软件开发阶段提供影响分析。建 7 东北师范大学硕士学位论文 立需求阶段的方面与软件开发后续阶段的方面之间的相互影响关系,可以指导整个软件 开发过程,提高软件开发的可追踪性和可维护性。 ( 7 ) 支持工具 在建立完善的a o r e 方法和相关技术的基础上,设计并实现相应的支持工具是十分 必要的,可以为a o r e 方法的推广和实践提供有力的保障。 2 2 面向方面需求工程主要方法 面向方面需求工程( a o r e ) 是为在需求阶段提高关注点分离程度、很好地处理“横 切关注点 而提出的一种新的需求模块化方法。a o r e 的研究是一个较新的领域,本节 介绍的几种面向方面需求工程方法大多也处在理论研究阶段或试验阶段,还远未达到成 熟和实用化的程度,还有待于继续研究和完善。 2 2 1 基于组件的面向方面需求工程方法 1 9 9 9 年w a i k a t o 大学的g r u n d y 提出了基于组件的面向方面需求工程方法【5 】,他是最 早把面向方面软件开发应用到需求工程的研究。 基于组件的面向方面需求方法( a o r e c ) 是针对基于组件的软件系统,强调如何确定 和规范描述与系统的关键方面相关的组件需求。a o r e c 的主要思想是:首先明确系统 级的方面( 如:用户接口、协作工作等) ,然后把系统级方面精化成方面细节表,列出 组件将提供和需要的服务,最后建立方面和组件之间的相互关系。a o r e c 不支持冲突 检查和横切关注点的识别。 a o r e c 方法的基本过程如图2 4 ,包括: 系统需求被用来确定候选组件,并且给出每个组件的需求解释; 确定每个组件的方面; 精化每个组件的方面,确定每个组件需要提供和要求的方面的细节;方面被用 于对组件复合和配置进行分析验证; 如果精化后的方面对于一组组件或者整个系统是合适的,则被用于聚合方面( 为 一组相关联的组件定义的方面) 的分析: 被确定的聚合方面定义为一个新的组件,再反过来修改己分析过的组件。 8 东:l l :j j 币范大学硕士学位论文 臣困 l 系统需求 新修改的组件 修改的组件 l 细化的方面 图2 4a o r e c 过程 a o c r e 方法首先将面向方面的途径结合到基于组件的开发并应用到需求工程中,。7 使得需求工程师更加关注于一组相关联组件间的内部联系,同时在面向方面的观点看 来,面向方面的组件需求中的个组件可以很自然地精化为设计层的软件组件方面。因 此,基于组件的a o r e 对于组件,组件间的内部关联以及组件规约更易理解。 但是在a o c r e 方法中也存在很大的不足:首先,a o c r e 只能局限于基于组件的软 件开发,不具有通用性;其次,a o c r e 对每一个组件中方面的确定没有进行明确规定。 2 2 2 基于视点的面向方面需求工程方法 2 0 0 2 年l a n c a s t e r 大学的r a s h i d 提出了基于视点a o r e 横型【6 】,并于2 0 0 3 年 对原有的模型进行了修改【7 】,增加了对横切关注点及其复合的表示方法,形成了现有比 较成熟的基于视点a o r e 横型,其主要思想是: 不同的需求相关者根据其不同的观察角度给出需求定义,这样一个系统的所有 需求依据不同视点进行了划分; 确定系统的所有关注点,并且建立每个关注点和需求之间的依赖关系; 如果一个关注点影响或者约束了多个视点中的不同需求,则该关注点被确定为 候选方面; 给出所有候选方面的规范描述; 定义复合规则,通过对不同方面的复合来确定它们之间的相互作用和冲突。为 了解决方面之间的冲突,可以给每个方面一个优先级; 9 东北师范大学硕士学位论文 最后分析已经确定的所有方面对后续软件开发阶段可能产生的影响。 基于视点的a o r e 方法通过采用x m l 作为统一的定义语言,很好地解决了关注点、 视点、需求和复合规则的形式化表示问题;通过给出简单但是强大而灵活的复合操作和 动作,很好地支持了对横切关注点和非横切关注点的复合;通过识别和解决冲突,很好 地提供了在整个软件开发阶段验证和追踪需求的可能性。 图2 5 给出了基于视点的a o r e 过程模型: 识别和规范描述 识别和规范描述关注卜 识别和规范描述需求 l: 确定关注点和需求之间地大致 修改需求影响 关系 规格说明分析 i , 。 确定后选方面 , , , - , 0 复合处理冲突 定义复合规则 解决给有冲突的 建立 - - 冲突方面赋权值 作用表 复合方面和需求 图2 5 基于p r e v i e w 的a o r e 方法过程模型 该方法实现了开发早期阶段横切属性的分离,并且能够确定所有方面对后续软件开 发阶段可能产生的影响。这就使得在开发周期的早期确定冲突成为可能,而且提高了贯 穿于系统开发,维护以及进化的对需求及约束的可追溯性。但是它对非功能需求的描述 不够具体,特别是对抽象和主观的非功能需求的描述和处理过于描象化,不能很好的反 映方面在后期开发中的实现,从而无法实现到系统分析和设计阶段的顺利过渡。此外该 方法虽然可以识别出不同的关注点,但是不能识别视点之间的关系,而且复合信息也隐 藏在各个视点中。 2 2 3 基于目标的面向方面需求工程方法 2 0 0 4 年t o r o n t o 大学的y i j u ny u 8 提出了基于目标的面向方面需求工程方法【8 1 , 它的主要思想是: 在面向目标的需求分析过程中,把功能性目标( g o a l ) 和非功能性目标( 软目标 s o f t g o a l ) 分解成子目标和子软目标,并且建立它们之间的关系:目标与软目标 1 0 东:l l :l j i f 范大学硕士学位论文 之间是协作关系,目标和软目标的协作形成一个任务。这种关系用v - 图表示, 见图2 6 。 对目标和软目标不断地进行分解,形成目标依赖图; 从目标依赖图中确定方面,如果发现冲突,则提供解决方案。 图2 6v r 图 基于目标的面向方面需求方法的过程可以概括为两大步: ( 1 ) 分解过程,又划分为: ( i ) 分解:读入目标结点和软目标节点集合,不断把它们分解成子目标和子软目 标,直到把它们归结到一个特定的任务; ( i i ) 关联:建立目标和子目标、子目标和子软目标之间的链接。每个子目标或者。 子软目标到其父亲目标或者父亲软目标的链接上都标记着一个作用记号 ( s a t i s f y 或者d e n y ) 和一个从0 到1 的权值。这个作用标记和权值会向上 传播。 一 ( i i i ) 冲突:如果一个子目标到其父亲目标的作用是负的,则认为有冲突,将删除 该标记对应的链接。 ( 2 ) 识别方面过程a s p e c t l i s t 对于一个软目标,收集对其有作用的任务,则一个方面是对某个功能性目 标有作用的软目标的操作组合。 这个过程应是单调的。方面就是对某个功能性目标有作用的软目标的操作组合。但 是由于分解过程的单调性,所以目标没办法充分分解,也就不能充分映射到目标和任务 i - _ 。 2 2 4 基于用例和场景的面向方面需求工程方法 基于用例和场景的面向方面方法是从用户的角度、以交互的方式对系统的行为特征 进行描述的,只支持功能性需求横切关注点的获取,但是它不支持非功能性需求的横切 关注点分离。已有的基于用例和场景的面向方面方法主要包括q u a l i t ya o r e 模型【9 】、 a o u m l 模型【1 0 】、s m a 模型【1 1 】、a u c 模型【1 2 】、u c s o c 模型【1 3 】和s r e 模型【14 】。 ( 1 ) a u c 方法 a u c ( a s p e c t u a lu s ec a s ed r i v e na p p m a c h ) 方法是对用例模型进行扩展,使之 包含非功能性需求,以及横切功能性用例的识别。此外,a u c 方法还提供复合机制,支 持把所有关注点分离出来的用例集成为一个完整的模型。 l l 东北师范大学硕士学位论文 a u c 方法的过程如图2 7 所不,包括如下步骤: 确定参与者和用例; 对确定的用例进行精化,并把分散于不同用例的功能提出来,封装在i n c l u d e 或者e x t e n d 用例中; 对功能性关注点进行模块化后,明确非功能性关注点,提供模板表示这些非功 能性关注点; 确定下来的非功能性需求被集成到用例模型中,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年阳泉市矿区中小学教师招聘笔试参考试题及答案解析
- 2025年和田县中小学教师招聘笔试参考题库及答案解析
- 2025年牙科种植手术服务合同(术后疼痛管理)
- 棒垒球内场训练
- 2025年曲靖宣威市教师招聘考试参考题库及答案解析
- 重度脂肪肝健康宣教
- 2025年上海市浦东新区教师招聘参考题库及答案解析
- 【必做】广东省道路工程检测培训考核历年考试真题库及答案(高频500题)
- 2025年虚拟形象商业化授权协议
- 2025年肥西县中小学教师招聘笔试备考试题及答案解析
- 基础有机化学实验智慧树知到期末考试答案章节答案2024年浙江大学
- 深圳地区分布式光伏电站并网流程
- JJG 621-2012 液压千斤顶行业标准
- 质量管理课程-Weibull分布
- 普华永道品牌管理课件
- 经皮肺穿刺活检术护理查房
- 物业工程部人员服务意识培训
- 统计学基础及其应用总体分布分析
- 戴氏教育集团企业文化
- 植物学第五章第一二节蕨类课件
- 美容皮肤科学智慧树知到答案章节测试2023年西安海棠职业学院
评论
0/150
提交评论