(计算机软件与理论专业论文)基于多值逻辑状态机的需求分歧研究.pdf_第1页
(计算机软件与理论专业论文)基于多值逻辑状态机的需求分歧研究.pdf_第2页
(计算机软件与理论专业论文)基于多值逻辑状态机的需求分歧研究.pdf_第3页
(计算机软件与理论专业论文)基于多值逻辑状态机的需求分歧研究.pdf_第4页
(计算机软件与理论专业论文)基于多值逻辑状态机的需求分歧研究.pdf_第5页
已阅读5页,还剩46页未读 继续免费阅读

(计算机软件与理论专业论文)基于多值逻辑状态机的需求分歧研究.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 论文题目:基于多值逻辑状态机的需求分歧研究 学科专业:计算机软件与理论 研究生:尹鹏 指导教师:张毅坤教授 摘要 签名: 签名: 当今的软件日趋复杂,软件开发已成为涉及众多权益相关者的一个长期复杂的过程 在这个过程中,形成了目标系统的多个部分模型,由于不同权益相关者所持的不同出发点, 这些模型可能存在分歧。分歧的存在对于软件开发虽然有不利影响,但是分歧的出现揭示 了潜在的需求问题,对于改进软件需求过程,提高需求分析质量有促进作用:另一方面, 新的软件开发方式在客观上造成了分歧现象的加剧,需求分歧已经成为软件开发中的常见 问题。因此,对需求分歧的研究有着重要意义。 本文讨论了现有的需求分歧分析方法的局限性,并根据这些方法局限性的形成原因, 将自动机理论与多值逻辑相结合,提出了基于多值逻辑状态机的需求分歧分析方法。在描 述方法上,将软件需求分为状态集合和事件集合,用自动机进行描述,有利于保存全局信 息;在分歧处理上。使用多值逻辑进行事件分歧分析,提高了分歧消除的灵活性和通用性 最后,介绍了根据本文方法实现的一个需求分歧分析工具s a ,并用通过一个实例证 明了本文方法的有效性 需求本质上属于主观意愿范畴,用户的意愿对于需求至关重要,因此追求需求分歧处 理的完全自动化不仅实现复杂,而且不具有太大的实际意义。本文方法在力求改进需求分 歧处理的过程中,重视用户意见的参与,通过不断的调整达到最好的分歧处理结果 关键字:需求分歧;状态机;多值逻辑 西安理工大学硕士学位论文 t i t l e :s o f r w a r er e q u i r e m e n l si n c o n s l s t e n c yr e s e a r c h 0 nm u 啊- v a l u e dl o g i cb a s e ds t 酊em a c h i n e n a m e :p e n gy i n w i t ht h ed e v e l o p m e n to fs o f t w a r ee n g i n e e r i n g , t h ed e v e l o p m e n to fs o f t w a r es y s t e m s n o w a d a y si sac o m p l e xa n dl e n g t h ya e t i v i t yt h a ti n v o l v e st h ep a r t i c i p a t i o na n dc o l l a b o r a t i o no f m a n ys t a k e h o l d e r s t h i sr e s u l t si nm a n yp a r t i a lm o d e l so ft h ed e v e l o p i n gs y s t e m t h e s em o d e i s 啪b ei n c o n s i s t e n tw i t h e a c ho t h e rs i n c et h e yd e s c r i b et h es y s t e mf r o md i f f c r e n tp e r s p e c t i v e s a n dr e f l e c tt h ev i e w so ft h es t a k e h o l d e r si n v o l v e di nt h e i rc o n s t r u c t i o n a i t h o u 曲i n c o n s i s t e n c y h a sn e g a t i v ee f f e c t si nt h es o f t w a r ed e v e l o p m e n t t h ep o t e n t i a lp r o b l e mi n c o n s i s t e n c yr e v e a l e d m a yi m p r o v er e q u i r e m e n ta n a l y s i sp r o c e s sa n dl e a dt ob e t t e rr e q u i r e m e n ti n c o n s i s t e n c y a n a l y s i sr e s u l t 0 n et h eo t h e rh a n d ,t h em o d e md i s t r i b u t e dr e q u i r e m e n t se l i c i t a t i o na l s om a k e s i n c o n s i s t e n c yac o m n l o np h e n o m e n o ni nt h es o f t w a r ed e v e l o p m e n t t h e r e f o r e 。t h er e s e a r c ho n t h er e q u i r e m e n t si n c o n s i s t e n c yi sv e r yi m p o r t a n t t h i sp a p e ri n t r o d u c e dt h er e c e n ti n c o n s i s t e n c yh a n d l i n gm e t h o d sa n dd i s c u s s e dt h e p r o b l e m so ft h e s em e t h o d sa sw e l la st h ec a u s e so ft h ep r o b l e m s an e wi n c o n s i s t e n c ya n a l y s i s m e t h o di sp r e s e n t e db a s e do ns u c hd i s c u s s i o n i nt h en e wm e t h o d , s t a t er o a c h i n ea n d m u l t i v a l u e dl o g i c si sc o l l a b o r a t e dt or e s o l y er e q u i r e m e n t si n c o n s i s t e n c y t h e r ca r et w op a r t s r e q u i r e m e n t sd e s c r i p t i o na n di n c o n s i s t e n c yr e s o l v i n gm e t h o d , i nt h em e t h o d t h er e q u i r e m e n t s d e s c r i p t i o ni so ft w os e i s 。s t a t es e ta n de v e n ts e t ,a n dd e t m e da sas t a t em a c h i n et or e s e r v e g l o b a lc o n t e x ti n f o r m a t i o n t h ei n c o n s i s t e n c yr e s o l v i n gm e t h o di sr e a l i z e db ym u l t i v a l u e d 1 0 9 i co p e r a t i o nt oi m p r o v ef l e x i b i l l t ya n dc o m m o n a l i t v i nt h el a s t , a na u x i l i a r yt o o lo f r e q u i r e m e n t sa n a l y s i s s r i a , b a s e do nt h i sm e t h o di si n t r o d u c e dt op r o v et h ef e a s i b i l i t yo fo u r m e t h o d s o f t w a r er e q u i r e m e n t sa r ee s s e n t i a l l ys u b j e e t i v ed e s i r e s t h es t a k e h o l d e r s o p i n i o ni ss o i m p o r t a n tt ot h er e q u i r e m e n t sa n a l y s i st h a tt h ec o m p l i c a t e df u l l ya u t o m a t i o no fi n c o n s i s t e n c y h a n d l i n gi sm o s t l yn o td e s i r a b l ei nc o m m o np r a c t i c a lw o r k i nt h i sm e t h o d , t h es t a k e h o l d e r s i n t e n t i o ni si m p l e m e n t e db ya p p l y i n gs p e c i f i cm u l t i v a l u e dl o g i co p e r a t i o na n dt h eq u a l i t yo f i n c o n s i s t e n c yh a n d l i n gi si m p r o v e db yc o n t i n u o u s l ye v a l u a t i o n k e yw o r d s :r e q u i r e m e n t si n c o n s i s t e n c y ;s t a t em a c h i n e ;m u l t i - v a l u e dl o g i c 2 独创性声明 秉承祖国优良道德传统和学校的严谨学风郑重申明:本人所呈交的学位论文是我个 人在导师指导下进行的研究工作及取得的成果。尽我所知,除特另1 1 j j n 以标注和致谢的地 方外,论文中不包含其他人的研究成果。与我一同工作的同志对本文所论述的工作和成 果的任何贡献均已在论文中作了明确的说明并已致谢。 本论文及其相关资料若有不实之处,由本人承担一切相关责任 论文作者签名:孕鸥 学位论文使用授权声明 6 月z 日 本人 霉虹! 殳马在导师的指导下创作完成毕业沦文。本人已通过论文的答辩,并 已经在西安理工大学申请博士硕士学位。本人作为学位论文著作权拥有者,同意授权 西安理工大学拥有学位论文的部分使用权,即:1 ) 已获学位的研究生按学校规定提交 印刷版和电子版学位论文,学校可以采用影印、缩印或其他复制手段保存研究生上交的 学位论文,可以将学位论文的全部或部分内容编入有关数据库进行检索;2 ) 为教学和 科研目的,学校可以将公开的学位论文或解密后的学位论文作为资料在图书馆、资料室 等场所或在校园网上供校内师生阅读、浏览。 本人学位论文全部或部分内容的公布( 包括刊登) 授权西安理工大学研究生部办 理。 ( 保密的学位论文在解密后,适用本授权说明) 论文作者签名:颦鸺 导师签名:护7 年z 月2 日 舛 绪论 1 绪论 1 1 立题背景 在软件工程中,软件的生命周期包括问题分析、设计、编码,测试和维护,其中问题 分析阶段包括需求获取和需求分析。作为软件生命周期的起点,需求的获取和分析对其后 的软件生命周期的各个阶段起着决定性的作用,准确全面的需求描述是成功的软件开发的 前提条件,有很多好处: 减少开发阶段的返工 降低改进成本 加快开发速度 减少沟通上的错误 减少项目混乱 更准确的进行估算和预期 增加客户和开发团队的满意度 需求在软件工程中占有如此重要的地位,因此如何得到一个良好的需求规格说明就成 了一个不容忽视的问题,k a r le w i e g e r s 用四项指标衡量一个良好的软件需求规格说 明:完整、一致、可修改和可跟踪。其中的一致就是指同一个事物的软件需求不能相互冲 突,所有需求中的不一致必须要在开发之前消除。这个定义暗示了一种客观现象分歧。 软件需求中的分歧是指在软件需求分析阶段,不同个体对同一事物描述不一致的现象需 求分歧产生的原因有两大类,内部原因和外部原因。软件需求分歧的内部原因源于描述需 求的人,多样性决定了人类个体之间总是存在差异的在软件需求领域,这种多样性表现 在人不同的教育背景,不同的所处环境,不同思维方式等等,所有这些因素都能导致不同 的人对同一需求产生不同的描述 分歧的产生也有外部原因。网络通讯和分布式技术的发展在促进了不同地域人们的交 流的同时,也影响着很多行业的工作方式当今,在软件开发过程中,设计、编码、测试 和维护等各个阶段都呈现了分布化的趋势乜。分布式的需求获取由于扩展了需求获取的范 围,有利于提高需求获取的准确性,因而受到了广泛的欢迎。但是在提高需求描述准确性 的同时,分布式的需求获取也加剧了需求分歧的问题。 客观的说,分布式软件需求获取也是适应软件的使用和开发的全球化趋势的必然结 果,而人类自身的多样性也是自然选择的结果。这两种因素共同作用,使需求分歧成为需 求分析中无法避免的问题,“需求是对预期的实现的描述州,是其他各个软件开发环节 西安理工大学硕士学位论文 的基础。不良的需求描述会导致人力物力的浪费,软件质量的下降,开发进度的延误,甚 至扼杀整个软件开发。因此,如何获得准确的需求描述一直是一个热烈讨论的问题,对需 求分歧分析方法的研究具有重要的意义。 1 2 研究现状 分歧的研究是计算机科学研究的一个重要内容,对分歧的研究伴随着计算机科学的诞 生和发展。二十世纪八十年代,随着软件工程领域的崛起,对于软件系统的分歧的研究逐 渐发展起来。二十世纪九十年代是软件需求分歧理论发展的高峰期,随着大量新方法的提 出,需求分歧理论体系逐渐建立起来,其中的代表有: 3 1 提出“污染标记”( p o l l u t i o n m a r k e r ) 的概念,用于在开发过程中降低一致性约束,实现分歧容忍。1 4 1 提出了视点的 概念,利用视点的概念对不同用户的描述加以区分,有利于分歧的确认和分析。这种方法 的优点在于能够容忍不同需求描述之间的分歧。k 5 l 在视点的框架内描述需求,使用经典 逻辑方法进行分歧处理。在分布式软件工程中,不同的需求描述被保存为分布式的对象, 这些对象被称为视点。视点结合了“行动者”和。知识来源”的观念。用软件术语来描述, 视点是包含了某个领域内的部分知识的松耦合、分布式的对象。分布式的视点之间允许存 在分歧,分歧的处理通过应用一系列的规则实现。这些规则定义了不同视点之间的部分一 致( p a r t i a lc o n s i s t e n t ) 的关系。9 6 1 同样基于视点表示需求模型,在分歧解决的方法上以 逻辑公式( d ,e ) 的形式进行分歧分析,d 是一个逻辑公式的集合用来表示多个用户的视点, e 是协调和控制不同视点的一致性约束的逻辑描述。消除分歧的过程是在检测到分歧以 后,使用一种元知识的方法来捕获消除分歧的动作。9 7 l 也是基于视点描述需求模型,在 分歧消除的方法上引入了场景的概念,其作用是在进行大规模的需求分析时,可以将原问 题分解为多个单独的场景,分别处理,这样能够有效的缩小问题规模,处理一些使用其他 方法无法处理的复杂问题。为了适应场景的描述形式,在分歧消除的方法上也做了相应的 调整,即将一致性规则划分为两种:视点内规则和视点间规则。【8 】中将分歧的检测和消 除统一到重叠分析中,以规格描述的形式定义重叠关系,并对重叠关系的性质进行了分析, 阐述了重叠对分歧检测的影响。 9 1 提出了k a o s 方法来进行目标驱动的需求分析,g r a i l 是使用k a o s 方法的环境,包含图形视图、文字视图、抽象语法视图和对象基本视图来描 述需求。【1 0 1 总结了目标在软件工程中的重要作用,提出了以目标描述需求的思想,使 用k a o s 方法描述需求模型。k a o s 方法包括了一种多模式的规约语言和一种以目标为导 向的分析方法。规约语言采用语义网为目标、主体、对象等系统元素建模,使用时态逻辑 对目标、需求等进行规约,支持需求和领域描述的严格分离。【1 1 】首先提出了使用准经 典逻辑解决分歧问题。作者介绍了准经典逻辑的概念、语义和逻辑运算,比较了准经典逻 辑与经典逻辑的不同,并介绍了运用准经典逻辑进行分歧推理的方法和过程,并进行了证 2 明,为使用非经典的逻辑方法进行分歧处理奠定了基础。【1 2 】实现了一个框架用于评估 u m l 需求模型中的不一致性。在这个框架中,使用对象约束语言描述一致性规则和显著 性标准。需求模型的不一致性是根据一致性规则作用于显著性标准的结果来衡量。框架中 还建立了信任函数用来衡量模型元素之问的差距,并以此对显著性标准进行调整。【3 3 l 中,用z 语言进行对视点的描述。通过定义前置条件,后置条件和运算精炼以及数据精炼 为用z 语言描述做好了准备,使用合并算法进行视点分歧的处理,达到了分歧分析自动化 的目的 以上的这些方法各有侧重,互有长短。总结起来,常见需求分歧的分析方法可以分为 两大类:基于逻辑推理的方法和基于目标的方法。基于逻辑推理方法的主要思想是将需求 模型转换为经典逻辑或非经典逻辑能够处理的命题,通过对命题的推理来发现和消除分 歧,这种方法的优点是能够实现分歧分析处理的自动化。缺点是将需求描述转换为逻辑命 题的过程中,可能会造成全局信息的丢失,经过逻辑推理的分歧处理结果对于全局来说不 一定是最优的,甚至可能是不合理的;基于目标的方法的主要思想是以目标为导向进行需 求的分歧处理,这种方法与人工分歧处理思想比较一致,因此在表达能力上优于基于逻辑 的方法,但是基于目标的描述方法目前还没有比较完善的分歧消除方法,现在比较常见的 基于启发规则的分歧消除方法,需要针对每次需求分歧制定特定的规则,通用性较差,效 率还不高 1 3 本文的目标和主要研究内容 对于需求分歧的消除的方法论研究目前已经有了相当的发展,其中的大多数都是将需 求分歧消除分为需求描述方法和分歧消除方法两部分这两部分相互作用,共同完成消除 需求分歧的任务 需求描述方法是解决分歧的前提,也是分歧消除方法所依赖的基础,良好的描述方法 能从根本上避免一些需求分歧消除方法的缺陷。例如使用经典逻辑进行需求描述,虽然能 够实现分歧消除的自动化,但是由于经典逻辑的性质,仍然不能避免。逻辑爆炸”情况 分歧消除方法在分歧描述的基础上进行分歧消除,受到描述方法的约束,因此描述方法对 分歧消除方法的处理能力的影响很大。当然,分歧消除方法是最终达成消除分歧的过程, 如果能发挥描述方法的优势,可以很大的改善分歧分析处理的效果 针对已有的两类分歧分析方法的缺陷,本文的首要目标是对现有的需求描述方法进行 改进,避免基于逻辑方法在描述需求中的不足,使之具备全局的描述能力,为分歧消除打 下良好的基础 在改进的需求描述的基础上,找到一种更好的分歧解决方法。这种方法应该兼顾通用 性和灵活性,具各处理冲突信息的能力,另外根据需求本质上主观性的特点,需要具备用 户交互能力,使用户能够参与到需求分歧的过程中,通过不断调整分歧消除策略,达到提 3 西安理工大擘硕士学位论文 高分歧消除效果的目的。 总结起来,本文的研究内容包括三点: 针对现有方法的不足,找到一种具备更好的需求表达能力的描述方法 在描述方法的基础之上,找到一种通用、灵活和高效的分歧消除方法 实现这种方法,利用实例证明其有效性。 4 软件需求和需求分歧 2 软件需求和需求分歧 2 1 软件需求 需求工程是随着计算机科学的发展而发展的,随着软件系统规模的扩大,需求分析与 定义在整个软件开发与维护过程中越来越重要,直接关系到软件的成功与否。上世纪 年代中期,形成了软件工程的子领域一需求工程。上世纪9 0 年代以后,需求工程成为研 究的热点之一 2 1 1 软件需求的层次 软件需求包括三个不同的层次:业务需求、用户需求和功能需求。业务需求反映了组 织机构或客户对系统、产品高层次的目标要求,它们在项目视图与范围文档中予以说明 用户需求文档描述了用户使用产品必须要完成的任务,在使用实例文档或方案脚本说明中 予以说明功能需求定义了开发人员必须实现的软件功能,使得用户能完成他们的任务, 从而满足了业务需求。 作为补充,软件需求规格说明还应包括非功能需求,它描述了系统展现给用户的行为 和执行的操作等。它包括产品必须遵从的标准、规范和合约;外部界面的具体细节;性能 要求;设计或实现的约束条件及质量属性。所谓约束是指对开发人员在软件产品设计和构 造上的限制。质量属性是通过多种角度对产品的特点进行描述,从而反映产品功能。多角 度描述产品对用户和开发人员都极为重要 2 1 2 软件需求过程 软件需求过程可以分为:需求获取、 学求分析、编写需求规格和需求验证四个阶段 需求获取阶段: 这一阶段的核心任务就是确定三个层次的需求,对于业务层要强调明确业务总目 标及使用范围,对于用户层,要强调明晰用户工作流程,对于功能层还要收集系统运 行环境的限制等非功能性需求不同的时间、不同的用户会由于不同的业务目标及使 用范围而提出不尽相同的需求,同时由于没有约定提出方式也会有各不相同的表现形 式。针对上述问题,首先要确定用户代表并对其在需求中的主次地位于以划分:其次 要确定需求的整个开发过程,最后还要明确不同层次的需求要以约定的形式出具文档, 以备双方的交流及问题检查 5 西安理工大学硕士学位论文 需求获取的来源总结起来有五个:目标、领域知识、利益相关者、运行环境和组 织环境。目标指软件的全局的、高层的目的和任务;领域知识指对特定目标领域专业 相关的知识,软件使用的领域决定了软件需要对所在领域的认识和理解;利益相关者 指软件需求需要从所有相关权益方获得,并尽量满足所有方面的愿望;运行环境指软 件在开发之前就要了解其运行环境,以使软件的设计和实现能够满足环境的要求;组 织环境指需要理解软件所服务的业务流程。 需求获取的方法“”总结起来有五种:交谈法、场景方法、原型法、联合讨论法和 观察法。 需求分析阶段。 需求分歧阶段n 的主要任务有三个: 1 1 发现并消除需求中的不一致 2 1 确定软件的边界和软件同所处环境的交互作用 3 ) 分析目标系统需求以确定软件需求 这一阶段的核心任务就是确定并完善需求初期阶段所获得的大量需求往往是不 系统、不完整甚至个别需求是错误的、不必要的,只有通过提炼、分析和仔细审查需 求,彼此沟通,采用适当的表现形式,比如绘制业务目标关联图、绘制功能结构示意 图、编制数据字典、编写用户实例等,明白需求含义并找出其中的错误、遗漏或不足 的地方,尤其是应采用特定符号标识需求优先级。 编写需求规格阶段: 编写需求规格阶段的主要工作是将已收集并做分析处理的需求经编制整理形成规范 化的可视文档这些文档量化的定义了对软件各个方面的要求,如功能方面和性能方面。 需求规格通常分为三类: 6 1 ) 系统定义文档 需求定义文档( 也被称作用户需求文档) 记录了系统的需求。它定义了领域的高 层系统需求,需求定义文档的读者包括了客户和用户代表,因此需求定义文档的内容 必须使用领域专用术语。在文档中定义了系统总体目标、背景、系统环境、系统要求 以及非功能性的需求,需求定义还可能包含描述系统运行相关情况的概念模型,比如: 运行场景信息、领域实体和工作流等 系统需求规格说明 软件需求和需求分歧 具有大量软件部件和非软件部件的系统,如民航客机上的系统,通常会将系统描 述和软件模型区分开来。在系统需求规格说明中,描述了系统整体需求,主要是对系 统非软件部分的需求描述。严格地讲,系统需求规格说明的主要内容已经超出了软件 需求工程的领域 3 ) 软件需求规格说明 软件需求规格说明的作用是为客户和软件提供者建立一个对软件系统进行评价的 基础。对于没有技术背景的读者,软件需求规格说明通常需要和软件需求定义文档一 起提供。 需求验证阶段 本阶段是需求开发工作的最后阶段,要确定在编写需求规格阶段所编制的需求文档是 否与预期结果一致,是否符合高质量需求的评价标准这项工作可以通过评审来完成。验 证的方法主要有四种; 1 ) 评审 评审可以根据用户代表的个人偏好、习惯予以审查需求,也可以遵循行业质量控 制办法制定严格的步骤进行审查,这主要取决于项目的大小、需求及各个部分的重要 程度 2 ) 原型法 原型法是一种验证软件人员对系统理解的常用方法。这种方法的优点是能够更简 单的使客户理解软件工程人员的想法,方便交流和信息的反馈;缺点是有可能使用户 的注意力被分散,不能集中于核心的功能或业务上,另外由于需要开发原型,这种方 法对资源的要求也比较高 模型验证 模型验证特别适用于在分析阶段对模型性能的检验比如,在一个对象模型中, 使用静态分析检验对象之间的通讯 4 ) 验收测试 对需求验证也可以采用测试的方法验收测试通常用来进行功能性需求的验证, 对于非功能性需求,需要首先将这些需求进行量化,才能进行验收测试。 7 西安理工大学项士学位论文 2 2 需求分歧 2 2 1 基本概念 软件需求分歧是指在软件需求分析阶段,对同一事物出现不同定义或描述的情况。软 件模型通常从不同角度和不同层次,使用不同表示方法的描述目标系统,所有这些相异性 都可能产生模型之间的不一致,也就是需求分歧。具体的讲,需求分歧的产生是由于模型 对目标系统的某个方面做出了使多方无法共同满足的假设或预期。 需求分歧是需求过程中的双刃剑,对软件开发既有影响也有促进。需求分歧的不利影 响是会延迟需求分析过程、增加成本、损害分歧一方或多方的利益、增加维护的难度;促 进作用表现在分歧有利于暴露需求分析中隐藏的错误、明确需求获取的方向以提高需求分 析的质量。 需求分歧研究成为研究的热点不仅由于分歧在需求分析阶段发挥的重要作用,也是因 为需求分歧一直是需求工程乃至软件工程中的困难问题之一,分歧解决的困难之处在于 l m : 需求说明形式多种多样,精细程度也各有不同。有的需求说明仅仅为了说明概念,比 较简单,有的需求说明则精确和细致。 需求说明本身存在错误和矛盾。 需求在软件生存过程中可能会发生变化。 对复杂的需求说明中的分歧进行检测和消除需要大量的计算。 2 2 2 分歧的产生 软件需求理论n 1 要求良好的需求应该是一致的、无分歧的,但是实际需求分析中的 分歧现象却时有发生。在当今软件开发全球化的环境下,需求获取的来源不断扩大,几乎 所有的复杂软件的需求分析都存在分歧的情况。既然分歧的现象如此普遍,要确保得到无 分歧需求就有必要了解分歧产生原因。 b a s h a rn u s c i b c h 1 认为需求是一种无法避免的现象,即使最完善的开发过程中,也 经常会出现不确定或者相互矛盾的情况。因为需求从根本上来说是对未来将要实现的功能 的预期,不同的个体根据自身的需要会提出不同的需求。因此,软件需求过程是一个不同 观点相互妥协的过程,其中必然出现不一致的情况。另外,由于是对未知的预测,需求也 必然包含不确定,不具体的因素,这也是导致分歧的原因之一b a s h a rn u s e i b e h 将分歧 的产生归结为以下几个因素: 不同的观念 不同的个性、教育背景、所处环境都会导致不同的观念,因此不同观念是分歧产生 b 软件需求和需求分歧 最根本的原因,也是最无法避免一种分歧类型。 不同的语言 这里的语言并不是指用英语和用日语会导致不同的需求,而是指不同专业领域的 语言会导致分歧的产生比如,在房地产的领域中,地产商和购房者对面积的理解就 会不同。 不同的关注点 对系统不同方面的关注,是导致分歧最直接的原因,通常表现为不同的功能性需 求比如,对于财务管理系统来说出纳人员和会计人员的需求就可能出现不一致, 这源于他们不同的关注点:出纳人员通常更注重现金收支的记录,而会计人员通常更 注重帐务记录。 不同的目的 目的的不一致,一般导致非功能的需求分歧。即使不存在功能需求上的分歧,由 于目的的不同,仍然会导致分歧的产生比如:捧序算法中经典的时间复杂度和空间 复杂度的矛盾。 2 2 3 需求分歧的解决过程 软件工程界从上世纪八十年代开始对需求分歧的研究,逐渐提出了一系列的理论和方 法用于解决不同环境下的各类需求分歧问题,经过不断的发展,已经形成了完整的知识体 系。目前,需求分歧的解决过程主要包括四个步骤: 重叠检测 分歧检测 分歧分析 分歧消除 下面对这四个步骤进行具体的介绍: 2 2 3 1 检测重叠 需求中的重叠是指不同需求描述中对同一事物的描述,有三种类型“”: 1 )完全重叠,指两个需求描述完全一致,是自反、对称、传递的关系。 包含重叠,指一个需求描述包含另一个,是反自反、反对称、传递的关系 部分重叠,指两个需求描述不一致,但是有重叠的部分,是反自反、对称的关系 重叠检测是分歧检测的前提,重叠检测的方法主要有下列四种: 1 1表示惯例1 8 1 1 9 1 1 最简单和最常用的表示惯例是假设具有相同名字的需求元素之问完全重叠,其他元素 9 西安理工大学硕士学位论文 之间没有重叠。这种表示惯例从模型检查发展而来。同样的表示惯例也形成了经典统一 算法的基础,经典统一算法在以一阶逻辑语言表示的术语中查找最长公共元,用这种语 言表示的术语通常是常量变量符号,或者以冒号连接其他术语的功能符号。统一算法 对术语进行此法匹配,对于以功能符号开始的术语,只有这些符号完全一致时,匹配才 能成功。变量符号可以自由匹配其他变量符号。 表示惯例重叠检测方法的优点是简单,实现方便。缺点是对异构同义的模型过于敏 感,只能用于使用相同语言描述的重叠检测 2 )共享本体 共享本体的重叠检测方法对进行检测的需求模型的元素建立标记“筮”。建立 的标记应该能够解释特定领域的专业术语,从而到达对不同领域术语进行重叠检测的目 的。共享本体中的完全重叠表示两个模型使用了相同的标记进行解释。 共享本体重叠检测方法的优点是能够用于不同语言描述的模型的重叠检测。缺点是 只能进行粗粒度的重叠检测 3 1相似度分析 相似度分析的重叠检测方法利用建模语言的性质进行自动化的重叠检测。例如:在 面对对象语言中的“i s a ”关系可能表示完全重叠或部分重叠,这是因为“i s a ”关系通 常具有包含的语义。相似度分析中的比较方法能够计算出不同模型之间结构和语义上的 相似度,重叠的检测过程被形式化为一个图的匹配问题。 相似度分析的重叠检测方法的优点是能实现重叠检测的自动化,能够用于不同语言 描述的模型的重叠检测。缺点是对异构模型过于敏感,重叠检测结果没有保证。 舢人工审查 人工审查的方法往往在其他重叠检测方法不能奏效或效果不佳的时候使用,对于如 何更好的进行人工审查,很多学者有不同的意见:s y n o p t i c ,y 法1 认为利益相关者需要 对完全重叠和部分重叠做出不同的阐述;类似的,d e l u g a c h 瞄认为利益相关者应该对 模型之间的相应描述进行判断;z a v e 和j a c k s o n 恤1 建议使用描述图来对不同描述中的谓 词符号进行联系,以便进行重叠判断;f i a d e i r o 和m a i b a u m 啪1 建议使用类别理论( c a t e g o r y t h e o r y ) 来表示不同模型之间的重叠,他们将模型形式化为类别并使用函子( f u n c t o r ) 来为 这些类别建立关联。 人工审查的重叠检测方法的优点是能够避免所有其他方法的缺陷。缺点是需要大量 的人工劳动。 2 2 3 2 检测分歧 检测分歧主要有四类方法: 1 )基于逻辑的检测 软件需求和需求分歧 基于逻辑的分歧检测方法对使用形式化建模语言描述的软件模型使用形式化的推理 技术来进行分歧的检测。目前常见的形式化建模语言有一阶经典逻辑m 儿汹1 、时态逻 辑、准经典逻辑1 1 1 对象约束语言1 1 2 1 1o - t e l o s 断言语言d 和z 语言踟”。 基于逻辑检测方法的优点是处理流程清晰,语义明确;缺点是一阶逻辑仅具备半可确 定性,定理证明在效率上比较低。 模型检测 模型检验的分歧检测方法要求用面向状态的语言对模型进行描述。这种方法首先被用 于检测硬件设计中的错误,上世纪9 睥代被引入到软件工程领域检测软件中的不一致。用 于进行分歧检测的模型检测算法很多,s m v 啪1 和s p i n “是其中的典型代表。 模型检测方法的优点是通用性强,处理流程清晰;缺点是无法用于过于复杂系统的分 歧检测,分析计算量过大。近期的一些研究“1 尝试使用摘要技术,例如变量限制和变量 消除技术,来解决这个问题。 3 )专门的自动分析 很多的分歧管理方法和技术使用专门的方法检查软件模型的一致性,包括嘲仰1 ” 由s n d a l d s 和f i n k c l s t c i n 提出的调和函数根据规贝q 检查i m 模型的一致性,这种方 法使用距离函数比较模型元素,识别并量化差异。c l a r k e 1 也对具有相似描述的i 咖类 图进行重叠判断,但是使用了一种更简单的原理。i ) e i g a c h 憎提出根据两种条件对以概念 图描述的需求模型进行重叠判断,即具备相同描述和相互反证。 专门的自动分析方法的优点是具备良好的分歧检测流程缺点是通用性不强,只能处 理特定的模型 舢手工协作检查 基于手工写作检查的分歧检测方法有很多,包括s y n o p t i c 憎1 、o a r c cn “、d e a l s e n b e i 1 和v o r d ”。 这种方法的优点是唯一能够处理非形式化描述的需求模型;缺点是需要大量人力劳 动 2 2 3 3 分析分歧 分歧分析方法主要有四类: 1 ) 准经典逻辑 h u n t e r 和n u s e i b e h “首先提出了利用准经典逻辑进行形式化软件模型中分歧来源的 确定。 准经典逻辑方法的优点是可以自动的判断分歧的来源,缺点是计算量大,效率较低 2 ) s - e x p r e s s i o n s s p a n o u d a k i s 和k a s s i s n 钉建立了显著度分析框架来评估分歧造成的影响。框架中定义 了一个特性集合用来表示u m l 中主要类型( 类、属性、方法和关联) 的显著度,使用信 1 1 西安理工大学项士学位论文 任函数估计模型对元素的信任程度。 s - e x p r e s s i o n s 方法的优点是能够实现细粒度的分歧分析,计算方便;缺点是对于冲突 仅能做出定性判断,无法定量分析 3 ) d c a l s c r i b c r o b i n s o n 和p a w l o w s k i 憎1 提出使用需求“竞争”和“平均潜在冲突”的概念来衡量冲 突的需求描述的影响。使用d c a l s c r i b e 描述的需求声明之间存在五种关系:非常冲突、冲 突、中立、支持和非常支持。需求之间的“竞争”程度通过非常冲突关系和冲突关系在所 有关系中的比例计算出来,“平均潜在冲突”程度根据与冲突关系和非常冲突关系相关的 冲突的平均可能性计算得到。 d v a l s c i b c 方法的优点是能够有效的区分冲突的显著程度缺点是需要对所有冲突提 供主观可能性预测,不易实现。 ov o r d k o t o n y a 和s o m m e n , i l l e 帕1 提出了v o r d 方法,即由利益相关者根据其需求元素的重 要程度提出权值,利用这些权值计算需求模型之间的分歧程度。 v o r d 方法的优点是能够对非正规的需求模型进行分析;缺点是无法区分需求之问 的轻重关系。 2 2 3 4 分歧消除 分歧消除方法主要有6 类: 1 1 s y n o p t i c “ e a s t e r b r o o k 提出了一种通用框架来消除需求模型中的分歧。在这个方法中,在检测 到分歧之后,利益相关者需要加入到分歧解决方法的设计中,这个过程成为s y n o p t i c 。 s y n o p t i c 方法的优点是用户自主度高,支持非正式需求描述缺点是需要用户人工进 行分歧消除,质量没有保证,效率较低。 2 ) o z 系统啪1 o z 系统是基于o z 工具的需求分歧分析系统。o z 工具能够检测分歧,生成解决方案, 从而最终得到一个统一模型。解决方案由一系列独立于领域的策略构成,包括:修补、重 新规划、放松约束、再形成和扩展。 o z 方法的优点是能够对分歧消除解决方案进行确认和评估,有利于改进分歧消除的 效果;缺点是需要人工参与,效率较低。 调和方法1 7 1 调和方法生成并提供给利益相关者一系列动作,来解决u m l 模型中的分歧问题。动 作是根据计算两个模型之间的“距离”生成的 这种方法的优点是用户能够控制动作的进行,能自动生成处理动作。缺点是动作由用 户控制,无法自动化处理 1 2 软件需求和需求分歧 4 1k a o s 剐 v a nl a m s w e e r d e 提出了用于解决分歧的方法和启发规则,这种方法将导致分歧的软 件模型进行变换,使用启发规则进行分歧消除。对模型的变换方法有四种:引入新目标、 弱化产生分歧的目标、将目标分解为不产生分歧的子目标和将目标转换为不产生冲突的新 目标。 k a o s 方法的优点是具有明确的语义,用户能够控制动作的进行;缺点是通用性差, 只能用于处理特定的分歧消除。 5 ) 视点框架“1 f i n k e l s t e i n 提出了视点的框架。在这个框架中,使用独立于领域的公理来描述对分歧 的处理方法。当两个视点的分歧被检测到以后,框架会启动动作来进行分歧消除这些动 作使用一个真理维护系统,这个真理维护系统可由用户设置。 视点方法的优点是能够实现分歧处理的自动化;缺点是需要对需求描述进行转换,用 户无法控制分歧处理过程 6 ) 准经典逻辑“1 1 h u n t e r 和n u 洳建议在特定的情况下,对分歧的处理应该识别模型中的各个部分, 以便能够在出现分歧的情况下将推理继续进行。他们提出了种基于准经典逻辑的分析形 式这种分析能识别分歧模型中的最大一致子集,并且根据一致子集进行推理的量化。 准经典方法的优点是具备明确的语义,能实现分歧推理的自动化;缺点是需要人工确 定动作之间的关联关系,计算量较大。 2 3 小结 本章为介绍本文方法做铺垫。首先介绍了软件需求的背景知识,软件需求有三个层次: 业务需求、用户需求和功能需求,软件需求过程分为四个阶段:需求获取、衙求分析、编 写需求规格和需求验证。然后介绍了需求分歧的概念,产生和作用最后着重介绍了已有 的需求分歧分析方法,以及这- - 磐t y 法的优缺点 1 3 相关理论 3 相关理论 3 1 状态机 广义上的状态机是任何一种能够保存状态并能根据输入改变状态的设备。比如电热水 壶,它能够记录水温,并根据水温确定应该加热还是保温。狭义的状态机是指一种计算模 型,这种模型由初始状态,状态集合,输入字母表和转移函数四部分组成,状态之间的转 换由输入和转移函数确定。除了在计算机科学,状态机被广泛的用于电子工程、语言学、 哲学、生物学、数学和逻辑学中。在计算机科学中,自动机经常被用于系统建模、硬件数 字系统设计、软件工程、编译器、网络协议和计算理论中。作为对系统的常用建模方法, 状态机具有如下有特点: 易于理解 可预测性,给定一系列输入和当前的状态,就能够确定系统的状态转移路径,便于 进行测试 由于状态机的简单性,它易于被设计、实现和运行。 是经过长期发展和实践的理论,可靠性高 灵活性高,方便与其他理论和技术结合 3 1 1 构成 从构成上来说,状态机由状态、转移和动作组成。状态是构成状态机的重要元素,用 于保存历史信息,反应从系统开始到当前的输入变化。转移表示状态的变化,用产生这种 状态变化的条件来表示动作表示在某个时刻进行的活动有如下几种类型: 1 ) 入口动作, 劲出口动作, 3 ) 输入动作, 4 ) 转移动作, 表示进入状态时发生的动作 表示离开状态时发生的动作。 表示根据当前状态和当前输入发生的动作。 表示发生转移时发生的动作。 3 1 2 状态机的分类 接受器识别器 这种类型的状态机产生二元的输出,表示输入是否能够被状态机接受。状态机中所有 的状态都只有两种情况:可接受和不可接受当状态机处理输入时,如果当前状态是可接 西安理工大学项士学位论文 受的,表示该输入可被接受,否则表示这个输入被拒绝。 转换器 这种类型状态机的原理是通过动作根据输入和或状态产生输出,通常用于进行控制 的目的,有两种类型;m o o r e 状态机和m e a l y 状态机。 1 ) m o o r e 状态机 m o o r e 状态机只使用入口动作,即输出仅仅依赖于状态。这种状态机的优点是运行简 单。 图3 - 1 m o o r e 状态机 f f g3 - 1m o o r es l a t em a c h i n e 图3 - 1 所示的m o o r e 状态机表示了一个电梯的自动门,它识别两种命令:c o m m a n d o p e n 和c o m m a n dc l o s e ;这两种动作都能引发状态的改变。o p e n i n g 状态的入口动作e 启动马 达开门,c l o s i n g 状态的入口动作e 启动马达关门状态o p e n e d 和状态c l o s e d 不发生任 何动作,仅仅向外界说明自动门当前的所处的状态。 m e a l y 状态机 m e a l y 状态机只使用输入动作,即输出依赖于输入和状态两种因素。这种状态机经常 用于精简状态数量。 1 6 相关理论 n q o f o 弹捌 图3 - 2 m e a l y 状态机 f i g3 - 2m e a l ys t

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论