




已阅读5页,还剩52页未读, 继续免费阅读
(计算机应用技术专业论文)基于目标和场景的需求建模技术研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于目标和场景的需求建模技术研究 摘要 需求工程是近些年来兴起的软件工程研究的子领域,人们对软件工程中的 需求分析及建模技术的认识越来越重视。需求分析与建模技术在现阶段的研究 中虽然各自有所发展,但技术都是不太成熟。在需求工程的研究方法中,目标 驱动的方法和基于场景的方法对于需求工程而言都非常有用。尽管以目标驱动 和基于场景的建模技术对于需求工程是一种积极有效的尝试方法,但在实际操 作中仍会遇到一系列的困难,本文提出将目标和场景相结合来克服这些困难。 本文利用场景来发掘目标,采用目标发掘指导规则并通过软件环境引出整个过 程;通过相互交错的目标建模和场景设置来完成系统所有目标的发掘。本文的 中心内容在于如何从场景中发掘目标,在目标的发掘过程中,通过需求块 ( r e q u i r e m e n tc h u n kr c ) 的设置引出最初的目标,由这个最初的目标配置对 应的场景,从场景中发掘新的目标。需求块是目标和场景的配对块,其表现形 式为 。本文利用目标发掘指导规则支持目标的发掘,分析 了此方法的应用前景,并通过一个简单的学生管理系统分析了利用此方法潜在 的效益。 关键词:需求工程需求建模耳标建模场景设置目标发掘 r e s e a r c ho nm o d e l i n gt e c h n o l o g i e so fs o f t w a r e r e q u i r e m e n t s b a s e do ng o a l s & s c e n a r i o s a b s t r a c t r e q u i r e m e n te n g i n e e r i n g ) i s as u b d o m a i no fs o f t w a r ee n g i n e e r i n g p e o p l e h a v er e c o g n i z e dt h ei m p o r t a n c eo fr e q u i r e m e n ta n a l y s i sa n dm o d e l i n gt e c h n i q u e i n t h ec o n t e x to fr e q u i r e m e r i t se n g i n e e r i n g ,b o t h g o a l d r i v e n a n ds c e n a r i o - b a s e d a p p r o a c h e s h a v ep r o v e du s e f i x lf o r s y s t e mr e q u i r e m e n ta n a l y s i s e v e nt h o u 曲 g o a l d r i v e na n ds c e n a r i o b a s e dm o d e l i n gi sa ne f f e c t i v et or e q u i r e m e n te n g i n e e r i n g , i ti sh a san u m b e ro fd i m c u l t i e s i no r d e rt oo v e r c o m es o m eo ft h ed e f i c i e n c i e sa n d l i m i t a t i o n so ft h e s ea p p r o a c h e sw h e nu s e di ni s o l a t i o n ,p r o p o s a l sh a v eb e e nm a d et o c o u p l eg o a l sa n ds c e n a r i o st o g e t h e r w h e r e a se x i s t i n gt e c h n i q u e su s es c e n a r i o st o c o n c r e t i z eg o a l s ,w eu s et h e mt od i s c o v e rg o a l s o u r p r o p o s a li st od e f i n ef i x e dr u l e s , w h i c hf o r mt h eb a s i so fas o f t w a r ee n v i r o n m e n tt og u i d et h er e q u i r e m e n t se l i c i t a t i o n p r o c e s st h r o u g hi n t e r l e a v e dg o a lm o d e l i n ga n ds c e n a r i oa u t h o r i n g t h ef o c u so ft h i s t h e s i si so nt h ed i s c o v e r yo f g o a l sf r o ms c e n a r i o s n ed i s c o v e r yp r o c e s si sc e n t e r e d a r o u n dt h en o t i o no fa r e q u i r e m e n tc h u n k ( r c l w h i c hi sa p a i r t h et h e s i sp r e s e n t st h en o t i o no f r c t h er u l e ss u p p o r tt h ed i s c o v e r yo f r c a n di l l u s t r a t et h e a p p l i c a t i o n o ft h e a p p r o a c hu s i n g t h es t u d e n t sa d m i n i s t r a t i n g s y s t e m i ta l s oe v a l u a t e st h ep o t e n t i a lp r a c t i c a lb e n e f i t se x p e c t e df o mt h eu s i n go f t h ea p p r o a c h k e yw o r d s :r e q u i r e m e n t e n g i n e e r i n g ,r e q u i r e m e n tm o d e l i n g , g o a l sm o d e l i n g ,s c e n a r i o sa u t h o r i n g ,g o a l s d i s c o v e r i n g i l 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作及取得的研究成果。据我所 知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写过的研究成果, 也不包含为获得盒胆至些盍堂或其他教育机构的学位或证书而使用过的材料。与我一同 工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示谢意。 学位论文作者签名签字日期:年月日 学位论文版权使用授权书 本学位论文作者完全了解盒壁王些盘堂有关保留、使用学位论文的规定,有权保留并向国 家有关部门或机构送交论文的复印件和磁盘,允许论文被查阅和借阅。本人授权金胆兰些盍堂 可以将学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制 手段保存、汇编学位论文。 ( 保密的学位论文在解密后适用本授权书) 学位论文作者签名 签字日期:年月日 学位论文作者毕业后去向 工作单位: 通讯地址: 导师签名 互心 签字日期:驴争年,月力e l 电话 邮编 致谢 两年的研究生课程学习尽管已经结束,但是各位令人尊敬的老师的形象仍 深深地刻在我的脑海里。我衷一t s , 地感谢两年来传授给我专业知识和思想品德的 合肥工业大学的老师们。 首先,我要非常感谢我的导师王浩博士、教授。王老师渊博的知识、严谨 的科学态度和崇高的思想品德是我终身学习的榜样。王老师不仅教会了我计算 机方面的专业知识,更为重要的是他传授给我敬业、创新、严谨和务实的科学 态度和勇于创新的科研精神。由于我的计算机专业知识基础薄弱,工作任务又 相当繁重,所以我在做论文过程中遇到一系列困难。为了帮助我写出高质量的 论文,王老师不厌其烦、不辞辛苦地教会我如何搜集相关的文献资料,教会我 怎样进行深入的科学研究,同时王老师对论文的内容和格式提出了大量的宝贵 意见和建议。经过近两年的努力,我终于达到一名研究生应该具有的专业知识 水平和综合素质,同时完全具备了进一步研究的能力。 感谢本文所有被引用文献的作者们,没有他们辛勤的劳动就没有本文的资 料来源和灵感。 感谢胡学钢老师、侯整风老师。感谢安徽农业大学基础科学学院吴坚院长、 计算机学院张国平副院长的关心和支持。 最后,非常感谢合肥工业大学计算机与信息学院、研究生院的各位领导和 老师在我学习和做论文期间给予的大量的无私的帮助和指导。 1 i i 作者:董斌 2 0 0 4 年5 月1 1 日 第一章绪论 1 1 引言 软件工程包含需求、设计、编码、测试和维护五个阶段,其中需求分析是 软件工程中第一个也是很重要的一个阶段。但在早期的软件行业中,开发软件 单靠个人的力量,能力强的程序员能够完成软件,能力差的不能完成软件甚至 失败。过去,只有少数人掌握着代码,这就造成一旦掌握核心代码的人离开软 件公司,则该公司就会受到致命的打击。中国的软件业要想快速发展,跟上软 件业发达国家的步伐,必须摆脱原有的小作坊模式,进入大规模的软件工业时 代,这样才能促进中国软件业的巨大发展。 需求工程( r e q u i r e m e n te n g i n e e r i n g r e ) 是软件工程中的一个重要组成部 分。有人通过对美、英、印等软件发达国家的i t 经理调查后发现,软件的失败 大多与软件需求分析有关i lj 。软件产品出现中的4 0 6 0 的问题,都是由于在 需求分析阶段出现的问题所引起的。为了防止和减少软件的错误,必须提高软 件需求分析的质量。软件需求是指用户对目标软件系统在功能、行为、性能、 设计、约束等方面的期望值【2 。软件需求分析的目标是深入描述软件的功能和性 能,确定软件设计的约束、软件同其它元素的接口细节、定义软件的其它有效 性需求。需求分析阶段研究的对象是用户对软件项目的需求。要准确地表达被 接受的用户需求,只有经过确切描述的软件需求才能成为软件设计的基础【3 1 。通 过对相应问题及其环境的理解与分析,为问题涉及的信息、功能及系统行为建 模,对用户的需求进行精确化、完全化,最终实现并形成完整的需求规格说明 书【4 】。良好的、系统的需求分析有助于避免或尽早剔除早期的软件错误,从而 可以提高软件生产率,降低开发成本,提高软件质量。为了保证最终设计的软 件完全符合用户的期望值,必须加强对需求分析的研究和探索,从而为软件的 设计、编码、测试和维护阶段提供强有力的保障,这就是人们为了摆脱软件危 机而日益重视需求分析与建模的原因。 1 2 需求与需求工程 1 9 9 7 年,美国电子电气工程师协会( t h ei n s t i t u t eo f e l e c t r i c a la n de l e c t r o n i c s e n g i n e e r si e e e ) 软件工程标准词汇表将需求定义为:它是用户解决问题或达到 目标所需的约束和能力;是系统或系统部件为满足合同、标准、规范或其它正 式规定文档所需具有的约束和能力;是一种反映上述所描述的约束和能力的文 档说明。这个定义是从开发者和用户的角度来确定的,即需求被系统的外部行 为和内部特性所决定。然而需求必须包含足够多的信息,足以使分析、设计、 开发人员能生产出一个使用户满意的软件产品;需求是以一种清晰、一致且无 二义性的方式对目标系统各个有意义方面陈述的一个集合5 1 。 需求工程( r e ) 是指应用已经证实有效的技术、方法进行需求分析并确定 用户的需求,帮助分析人员理解问题并且定义目标系统所有外部特征的一门学 科。由于软件危机的出现,在2 0 世纪9 0 年代中后期,人们提出了需求工程的 概念,并且取得了许多重要成果。尤其是在模型形式化、建模工具及建模方法 等方面进行了深入和广泛的研究。需求工程通过合适的工具和符号系统,描述 开发系统及其行为特征和相关约束,形成需求分析文档,并对用户不断变化的 需求演进给予支持。 r e 可分为系统需求工程( 针对由软硬件共同组成的整个系统) 和软件需求 工程( 针对纯软件部分) 。软件需求工程是一门分析并记录软件需求的学科,它 把系统需求分解成一些主要的子系统和任务,把这些子系统和任务分配给软件, 并通过一系列重复的分析、设计、比较研究及原型开发等过程把这些需求转换 成软件的需求描述和一些性能参数1 4 1 。需求工程不仅阐述了系统应该做什么,而 且还描述了为什么需要开发目标系统,即不仅解决了“w h a t ”、“h o w ”问题, 还解决了“w h y ”问题,同时还提出了系统性描述概念,这为今后的需求分析、 验证以及设计人员进行系统设计、功能测试和维护提供基础,需求工程定义的 最后强调了需求演进过程以及需求复用的概念,这个需求工程的定义比较全面 的反映了需求需要解决的问题。 需求工程是一个不断反复的需求定义、文档记录、需求演进的过程,并最 终在验证的基础上冻结需求,从而完成需求分析过程1 2 9 1 。近年来,m a t t h i a sj a r k e 和k l a u s p o h l 等需求工程专家提出了需求工程的三阶段周期法,即需求获取、需 求表示和需求验证。总结八十年代的观点与上述观点,需求工程分为以下五个 阶段: ( 1 ) 需求获取:通过与用户的交流,利用现有的系统对任务进行分析,从 而捕获和修订用户最初的需求; ( 2 ) 需求建模:为最终用户所看到的系统建立一个需求概念模型,作为对 需求的抽象描述,并尽可能多的捕获现实世界的语义: ( 3 ) 需求规约说明书:生成需求模型构件精确的形式化描述,作为用户和 开发者之间的一个规约或协议,同时为今后的软件开发提供必备的文档说明; ( 4 ) 需求验证:以需求规约说明书的内容作为输入,通过符号执行,模拟 或快速原型法等途径分析和验证需求规约说明书的正确性和可行性; ( 5 ) 需求管理:支持系统的需求演进,例如需求变化和- i g 艮踪性问题 4 1 。 目前,需求工程界的专家主要围绕需求获取和需求建模方法以及支撑工具 进行了相关的研究,并且取得了巨大的成功。这些研究主要呈现如下的趋势: 从功能分解模型、面向对象模型向面向目标模型发展;从单一表示模式向多视 点模式发展;从非形式化方法、半形式化方法向形式化方法方向发展并将它们 结合起来。需求支撑工具的研究己从零散的机器支持模式向集成化、构件化、 自动化的方向发展,对整个软件生命周期提供支持,并最终实现软件开发过程 全自动化的目标。 i b m 公司的d e v e l o p e rw j r k s 将需求工程分为需求开发和需求管理,它们 所涉及到的具体工作流程如图1 1 所示。需求开发包含如下四个部分: 图1 1 需求工程功能分解图 ( 1 ) 需求分析:有何种需求才有对应的需求分析,软件开发前必须进行需 求分析: ( 2 ) 闯题获取:问题获取又分为业务需求、用户需求和功能需求的获取。 ( 3 ) 编写规约说明书:需求规约说明书是开发者与用户之间的一个文档和 契约; ( 4 ) 验证:通过各种途径分析需求规约说明书的正确性和可行性,并做出 结论: 需求管理也包含如下的四个部分: ( 1 ) 变更控制:一旦需求发生变更,需要根据原有的需求分析变更的影响 并且做出决策,将变更后的需求进行交流和合并,同时需要测定变更后的需求 稳定性: ( 2 ) 版本控制:在需求管理过程中,确定需求的文档版本和单个需求文档 版本; ( 3 ) 需求跟踪:定义对其它需求的连接链,同时定义对其它系统元素的连 接链; ( 4 ) 状态跟踪:定义需求状态,同时跟踪需求每个状态;及时扑捉用户需 3 求的变化。 上述流程更进一步细化了需求工程的各个过程和功能,也为软件开发中的 需求工程提供了可操作性环节,为今后的软件开发提供了更加充实、丰富的文 档管理,同时为软件的自动化设计提供了更好的服务。 需求工程是软件工程中最复杂的工程之一,其复杂性来自于客观和主观两 个方面 4 1 。从客观意义上说,需求工程面对的问题几乎是没有范围的,由于其应 用领域的广泛性,它的实施无疑与各个应用行业的特征密切相关,其客观上的 难度还体现在非功能性需求及其与功能性需求的错综复杂的联系上。当前对非 功能性需求分析建模技术的缺乏大大增加了需求工程的难度和复杂性【7 1 。从主观 意义上说,需求工程需要各方面人员( 如领域专家,领域用户,用户投资人, 系统分析员,需求分析员等) 的参与,每个方面的人员都有不同的着眼点和不 同的知识背景,人员之间交流上的困难给需求工程的分析和实施增加了人为的 难度。 1 3 需求工程的分类 1 3 1 功能需求 功能需求( f u n c t i o nr e q u i r e m e n tf r ) 主要描述系统各功能组件与环境之间交 互的本质,是对目标系统必须具有的结构、功能和服务等可测量特性的描述, 主要表现为对目标系统行为的一组约束。i e e e 对功能需求的定义是:功能需求 是指系统软件必须具有的可执行的功能。一般来说,它是用户提出的主要需求, 通常包含系统的输入、系统所能完成的一些功能、系统的输出以及其它的反映。 1 3 2 非功能需求 非功能需求( n u n f u n c t i o nr e q u i r e m e n tn f r ) 是指软件产品的安全性 ( s e c u r i t y ) 、可用性( a v a i l a b i l i t y ) 、可靠性( r e l i a b i l i t y ) 、延展性( s c a l a b i l i t y ) 、效能 ( p e r f o r m a n c e ) 等系统层次的需求吼在分布式架构到处可见的今天,系统本身所 涉及到的层面越来越复杂,再加上系统服务范围越来越广泛,作用越来越重要, 上述非功能性需求就变得异常重要。由上可知,非功能性需求并不是描述系统 应该做什么,而是描述实现功能的方式,是用户对目标系统满意程度在时间和 空间含义下的具体体现。非功能需求的种类有: ( 1 ) 质量需求 即与目标系统本身性能、行为方式等相关的需求,其中包括目标系统的性 能需求、可行性需求以及可靠性、可维护性、可移植性、可重用性、安全性、 互操作性等。 ( 2 ) 设计、实现和测试过程中的非功能需求 这种非功能需求包含目标系统的开发类型、开发工具、开发方法以及开发 管理。 ( 3 ) 安全、运行和维护等方面的限制需求 这里主要从产品的交付方式、产品的物理限制( 大小、重量) 、系统的使用 频度、运行期限、系统的控制方式( 本地、远程) 、人员的培训、技术水准、目 标系统的空间分布等方面的考虑。 ( 4 ) 其它方面的非功能需求 经济及策略性约束、法律限制、版本约束以及政治、社会等方面的约束和 限制需求。 从开发者的角度来看,他们会更关心软件的结构和软件的可维护性,关心 在开发的不同阶段对软件中间结果的检测和结果分析是否方便:从管理者的角 度来看,他们通常会更注重软件的整体质量,而不是软件的某一个具体的非功 能需求。由此可见,非功能需求内容很多,范围很广,不同的需求之间还存在 相互交叉、相互影响。 无论需求工程多么复杂,最终结果必须获得需求规约说明书,而需求规约 说明书是系统开发各方达成的协议,也是系统今后进行设计、实现、测试和维 护的基本依据,是整个开发周期的根本性文档。这就要求需求分析员在分析过 程中尽量地少犯错误,尽量早地发现系统缺陷并及时修正。达到目标系统最大 程度的完美度【5 】。 1 4 需求分析方法简介 在具体的研究需求分析之前,首先解释一下软件工程这个概念。软件工程分为 三个层次:过程层、方法层、工具层。在基础的过程层,最重要的就是一组被称为 关键过程域( k e yp r o c e s sa r e a sk p a s ) 的框架。关键过程域构成了软件项目管理 控制的基础,它规定了技术方法的采用,工程产品的模型、文档、数据、报告、表 格等的产生以及里程碑的建立、质量的保证及变化的管理。方法层主要是过程在技 术上的实现,它解决的问题是如何做。软件工程方法涵盖了一系列的任务:需求分 析、设计、编程、测试、维护,同时它还包括了一组基本原则,控制每一个关键过 程域。工具层对过程层和方法层提供了自动和半自动的工具支持。这些辅助工具就 称为c a s e ( c o m p u t e r a i d e ds o f t w a r ee n g i n e e r i n g ) 。本文强调的是软件工程的方 法层,同时也涉及到一些过程层的思想,至于工具层则不在我们的讨论之列实际上, 需求分析的方法很多,这里列举出一些常见的方法: ( 1 ) 绘制系统关联图:这种关联图是用于定义系统与系统外部实体间的界限 和接口的简单模型,同时它也明确了通过接口的信息流和物质流; ( 2 ) 创建用户接口原型:当开发人员或用户不能确定需求时,开发个局部的 接口原型,可使许多概念和可能发生的事更为直观明了。用户通过评价原型,使项 目参与者能更好地理解所要解决的问题,在此过程中,应注意找出需求文档与原型 之间所有的冲突之处: 5 ( 3 ) 分析需求可行性:在允许的成本、性能要求下,分析每项需求实旆的可行 性,明确与每项需求实现联系的风险,包括与其它需求的冲突,对外界因素的依赖 和技术障碍: ( 4 ) 确定需求的优先等级:应用分析方法确定使用实例、产品特性或单项需求 实现的优先等级。以优先级为基础确定产品版本将包括哪些特性或哪一类需求。 当允许需求变更时,在特定的版本中加入每一项变更,并在那个版本计划中做出 需要的变更; ( 5 ) 为需求建立模型:需求的图形分析模型是软件需求规格说明极好的补充 说明。它们能提供不同的信息与关系以有助于找到不正确的、不一致的、遗漏的 和冗余的需求。这样的模型包括数据流图、实体关系图、状态变换图、对话框图、 对象类及交互作用图; ( 6 ) 创建数据字典:数据字典是对系统用到的所有数据项和结构的定义,以 确保开发人员使用统一的数据定义。在需求阶段,数据字典至少应定义用户数据 项以确保用户与开发小组是使用一致的定义和术语。分析和设计工具通常包括数 据字典组件; ( 7 ) 使用质量功能调配:质量功能调配是一种高级系统技术,它将产品特性、 属性与对用户的重要性联系起来。该技术提供了一种分析方法以明确哪些是用户 最为关注的特性。质量功能调配将需求分为三类:期望需求,即用户或许并未提 及,但如若缺少会让他们感到不满意:普通需求,即用户最基本的需求,也是系 统最基本的需求:兴奋需求,即实现了会给用户带去惊喜,若没有实现也不会受 到责备; 上面提到的都是需求分析的大方法,事实上还有很多的方法可以采用。例如, 采用软件需求s r s ( s o f t w a r er e q u i r e m e n ts p e c i f i c a t i o n ,s r s ) 模板、指明需 求的来源、为每项需求注上标号、记录业务规范、创建需求跟踪能力矩阵、审查 需求文档、以需求为依据编写测试用例、编写用户手册、确定合格的需求标准等。 1 5 本文的组织形式 本论文共分为五章 第一章绪论: 简单介绍了本论文研究的目的、意义、研究内容、国内外 相关研究工作及全文的组织形式。 第二章基于目标的需求建模:本章简要讨论了基于目标的目标描述和目 标建模以及基于目标的非功能需求建模分析和基于目标的软件体系结构设计。 第三章基于场景的需求建模:本章简要介绍了基于场景的需求建模中的 场景设置和场景描述,基于场景的非功能需求建模的体系结构设计及内容。 第四章基于目标和场景的需求建模:本章是本论文研究的重点。首先详细 介绍了基于目标和场景的相结合的分析技术。其次提出了目标和场景的需求获 取过程,其中包括需求目标分析、设计多样性探索;基于目标的场景设置:判 6 定目标的真实性;排除模糊目标等。最后详细阐述了通过场景分析引出目标的 方法,其中包括组成方法、可选方法和精炼方法,并且利用基于目标和场景相 结合的建模技术分析了学生管理系统实例。 第五章结束语:通过总结前四章内容,简单阐述了本文的主要贡献,需 求建模方法的特点以及将来要进步研究的内容。 7 第二章基于目标的需求工程建模 2 1 基于目标的需求建模方法概述 需求工程是软件工程中的一个重要组成部分,一个系统的成功与否很大程 度上取决于系统需求是否全面和正确。基于目标的需求分析方法是近年来兴起 的一种方法,它与面向对象和以事件驱动的需求分析方法相比更接近现实世界, 与软件系统的目标功能更加紧密相关。以前的需求分析只关心“w h a t ”和“h o w ” 的分析,很少涉及到“w h y ”的分析。1 9 8 7 年初k y u e 首先引入目标概念,他 除了关心“w h a t ”和“h o w ”的需求分析以外,还在对“w h y ”问题理解的基 础上,将目标作为判断需求完整性的依据:即需求如果能够满足当前的目标时, 则说明需求是完整的;如果需求不能满足当前的目标时,则说明需求是不完整 的【5 】。这种方法一经提出,在需求工程界就受到很大的重视,在其后的时间里, 这种方法被需求工程的研究人员广泛地应用到需求工程的各个领域。一般来说, 一个系统的需求在开始很难被完全确定下来,而且需求中的目标有时过于理想, 目标之间常常会产生冲突,因此,怎样识别过于理想的目标,怎样检测目标之 间的冲突并采取适当的技术和方法来解决目标间的冲突成为系统需求是否完全 并且是否正确的关键所在。 基于目标的需求分析方法要求需求的详细说明必须与目标实现紧密相连, 同时,目标为需求说明提供了一个完整性的标准;目标是最终解决需求中的冲 突、偏差和障碍的来源;目标是需求规约说明书中最稳定的信息。不管哪个系 统,一开始的需求分析中都或多或少地存在问题,但是,消除需求中的偏差和 障碍必须在目标级完成,否则损失难以估计。目标有助于人们对客观世界的探 索和思考,更重要的是目标可以被自由地表达,人们可以提出一个目标,而不 必指定其如何被实现。人们通过对目标的简单描述,可以使需求分析人员避免 过早地涉及实现细节,把更多的精力投入到系统的概念设计,有利于人们寻找 和评价多种不同的实现目标的方法。随着人们对目标的认识越来越细致,基于 目标的需求分析方法与技术被认为是未来需求工程重要的方向之一。 2 2 目标概念及理论 随着人们对目标研究的进一步深入,需求分析也从面向数据流图方法、结 构化分析方法、面向对象的需求分析方法( 0 0 a ) ,逐渐转到面向目标的需求分 析方法。目标概念表达了人们对客观世界的渴望,目标产生的结果只有成功或 者失败。面向目标的需求分析方法有利于探索和考虑不同的方法,如决策空间, 折衷和决策的方法。另外,更重要的是目标可以被“自由”地表达。人们可以 在需求分析中首先提出目标,这个目标的含义不一定非常明确,更不必指定其 如何实现。目标结构可用图2 1 表示。很明显,一个目标与一个动词相连,并 且与一个或多个参数相连( 多样性用黑色小圆点表示) ,目标被表示成一个主动 词和几种参数组成的子句,每个参数对应的动词扮演不同的角色。以一个简单 的学生管理系统为例,本文中的目标有四种不同类型的参数,见图2 1 。 图2 1目标结构 四种类型的参数分别描述如下: 对象( t a r g e t ) 对象的标识和命名受到目标的影响,我们区别两种类型的 对象,即客体( o b j e c t s ) 和结果( r e s u l t s ) 。在目标获取以前,客体被假定存 在。例如: 获取( 信息) # # ( 从学生管理系统中) # “信息”是一个客体,因为它已经存在,即它在“获取动作完成之前已 经存在。 “确认( 学生的选择) # $ ” “学生的选择”是目标“确认”的结果。 路径( d i r e c t i o n ) 路径是通过来源与终点确认最初的和最后的目标位置, 例如: “阅读( 上网卡的有效日期) ”( 在显示屏上) a ” “展示( 错误的信息) 目( 给学生) * , 在第一个目标中,上网卡有效期来源于显示屏上:在第二个目标中,学生 是错误信息的最终终点。 方式( m e a n s ) 方式是利用目标的操作来进行标识的,例如: “提供( 信息) n t ( 给学生) * ( 基于系统的手动操作) i # ”。 “方式”是确定目标的获取途径,在图2 1 中表达了目标的一种模式,它 的复杂性就可以通过目标方式表达出来,因此,目标就可以被循环定义。例如 下面的目标描述: “提高( 服务质量) n - ( 通过提供( 信息) 目 ( 给学生) * ( 从上网账户中) $ * ( 基于 学生管理系统的上网卡) a t 】一* ” 它就构成了一个循环的定义方法,通过“提供( 信息) 目镕( 给学生) # a ( 从 学生账户中) + 。( 基于学生管理系统的上网卡) a a ”。显然,这个目标本身包含 一个动词“提供”和四个参数:对象( t a r g e t ) 、终点( d e s t i n a t i o n ) 、来源( s o u r c e ) 和方式( m e a n s ) 。 受益者( b e n e f i c i a r y )收益者是目标获得者个人或者一群人的支持者。 例如: “减少( i - 作负担) ”t ( 为学校管理人员) 女。”,其中学校管理人员为受益者。 根据图2 。1 中的结构可以明显地看出:本文中的一个目标是由一个动词和 多个参数组成,每个参数有四种类型,每种类型有两种形式,这样的目标结构 就非常清晰了。 2 3 基于目标的需求工程建模 需求工程与系统的实现目标、功能及约束有关,同时也与系统行为的说明 及所处的环境有关。r o s s 和s c h o m a n 提出“在当前或可预见的条件下,需求定 义必须说明为什么需要待开发的系统,哪些是内部操作,哪些是外部活动,同 时也需要描述如何构造目标系统”。面向目标的需求分析方法与传统的需求分析 方法相比更接近现实世界。过去很多非形式化系统开发方法包含了基于目标分 析的一些形式,如上下文分析法f 1 9 】,定义研究法【2 0 1 ,共同参与分析法【2 l 】。比较 典型的是在组织、操作和技术环境中分析当前系统,指出问题并进行标识,然 后确认高层目标,进而利用加工来满足这些目标。u m l 的倡导者也承认高层抽 象的需要:“在我的工作中,首先着眼于用户目标,然后用u s ec a s e 来满足它们, 在加工阶段,我希望对我确认的每个用户目标至少有一个系统交互u s ec a s e ” 2 2 】。 需求工程研究已经逐渐认识到目标的主导作用,这个认识导致了目标建模、目 标描述和多用途基于目标的推理,如需求加工、需求确认和需求冲突管理,以 及非形式化的定性到多种形式化的研究。 2 ,3 1 目标建模 目标建模有利于支持在需求工程方案中目标的引出、定性和形式化推理。 目标通常通过它们类型和属性的内在特征以及通过它们与其它目标和需求建模 中的其它成分的连接进行建模。 ( 1 ) 目标类型 目标具有不同类型。功能性目标是系统期望提供的基础服务,而非功能性 目标则指目标系统质量诸如保密性、安全性、性能、可靠性、灵活性、可维护 性、互操作性等。目标的满足主要是满足用户的功能性目标,而非功能性目标 也可以用功能性目标描述方法进行描述。如目标的准确性是软件对象对于准确 反映环境中相应的监测或控制目标状态的非功能性需求口3 1 。这个目标在需求工 程中经常被忽略,从而可能造成重大失败f 2 4 ;性能目标被描述为时间和空问性 能,以前被描述为响应时间和吞吐量【2 5 l ;保密性目标被常常描述为需求的机密 性、完整性和实用性目标“。 f 2 ) 目标属性 耳标属性包括目标的优先级、目标的效用和目标的灵活性。其中目标的优 先级有时经常用来解决目标之间的冲突d 郇,目标的效用解决目标之间的运用的 先后次序,目标的灵活性可以实现不同目标之间的相互转换。 ( 3 ) 目标连接 这里提出“软目标”概念。相对于功能性目标而言,弱化目标概念便于人 们表达具有类似特征的非功能需求。有人用一个表示程度的词语“满意”来表 示软目标,“软目标”对于可选的目标求精和选择哪个日标支持其它目标的情况 将直接借助于a i 中的问题约减方法【2 7 】。a n d o r 图用于获取目标求精连接, a n d 一求精连接一个目标到子目标集合,这表示所有子目标充分满足父目标: o r - 求精连接目标与另一个备选的求精目标的集合。目标之间的冲突连接发生 是指:当一个目标满足时可能阻止另一个目标满足。这些连接关系被用于获取 备选的求精目标和潜在冲突上,并且证明目标求精的正确性。除了目标内部连 接以外,目标通常也被连接其它模型如g o n f r ( g o a l o r i e n t e dn u n f u n c t i o n r e q u i r e m e n t ) 【s l 中,定义各种类型的相互关系和相关关系来描述目标与其它概念 如任务、资源的关系。 2 ,3 2 目标描述 目标描述是对目标进行描述以支持需求加工、验证、确认、冲突协调、解 释和演化等工作。在g o n e r 中同时采用非形式化和形式化规范说明按照目标的 类型、属性和连接声明,提供文本和图形语义。图形语义主要面向用户,而形 式化的描述是面向需求工程的事物处理。我们引用k a o s ( k n o w l e d g ea c q u i s i t i o n i na u t o m a t e d s p e c i f i c a t i o n ) 【1 5 】中的a c h i e v e 、m a i n t a i n 和a v o i d 谓词为带有参 数的目标命名并描述一个实时时序逻辑模型,它们隐含了在将来某个时间应该 达到相应的目标条件,除非某个其它条件达到或达不到的情况总是存在,它的 目的是提供轻量级的可选项来完成目标公式的形式化,目标仍然服从于分析形 式。这个基本集合被定性谓词诸如:i m p r o v e 、i n c r e a s e 、r e d u c e 、 m a k e 等 谓词进行延伸。 2 4 典型的基于目标的需求分析方法 近来,在需求工程领域,出现了许多面向目标的需求获取和需求分析方法。 如k a o s ( k n o w l e d g e a c q u i s i t i o n i n a u t o m a t e ds p e c i f i c a t i o n ) 方法,i + ( d i s t r i b u t e d i m e m i o n ) 框架,g o n f r ( g o a l o r i e n t e dn u n f u n c t i o nr e q u i r e m e n t ) 等。它 们从分析和理解最原始的需求材料开始,从中抽取直接目标,将目标进行分解 和提炼作为模型的构造机制,逐步获取更具体的目标并构造出目标模型,进而 获得多个其它需求模型。下面简单介绍这几种面向目标的需求分析方法。 2 4 1k a o s 方法 k a o s 方法是9 0 年代初提出的一种很有影响力的需求获取和建模方法。它 采用了目标和a g e n t ( a g e n t 是一个封装的软件实体,它处于一定的环境中,并 在环境中自由、灵活地行动,以实现它的设计目标) 概念,并提出了一种从系 统级目标和组织环境目标中获得需求规格说明书的方法,其目的是支持基于目 标的整个需求获取和建模过程,即在复合系统中从可实现的高级业务目标到需 求、约束和指派给各a g e m 操作全过程。这里的复合系统包括系统本身及其所处 的组织环境。k a o s 方法有益于精确定义需求;有益于需求文档的书写:有益于 使需求说明书更容易被他人理解。完整的k a o s 方法包含三个部分 1 7 】。 ( 1 ) 用于需求获取和需求建模的概念模型以及相应的需求获取语言 概念模型提供了丰富的与需求模型有关的抽象概念。它是一个元模型,提 供了一种自描述和可以扩展的建模框架,其目的是在复合系统中能够以精确而 且自然的方式获取尽可能多的功能和非功能需求。元模型以概念图的形式表达, 图中的结点表达抽象概念,连接结点的边表达构造关系链,如提炼关系和任务 指派关系。 ( 2 ) 用于需求获取和构建模型的策略和方法 框架中的需求获取和建模策略定义了一系列可以证明的步骤来指导如何获 取作为元模型部件实例的需求模型部件。换句话说,一个策略就是指一种特定 的通过遍历模型图来获取图中各种不同结点和关系链实例的方法。 ( 3 ) 支持需求分析和建模的辅助工具 辅助工具使用的目的是能够按照某种策略和方法提供自动化的获取和建模 支持,它具有需求库和需求知识库两个数据库,并且要求两个库负责维护当前 建立的需求模型,需求知识库则存储领域知识和元知识。k a o s 方法中的需求获 取语言提供了丰富的基本概念定义,如目标操作、a g e n t 、需求、假定和脚本等。 此语言不仅能获取一般语言所能获取的“w h a t ”需求,而且能够获取“w h y ”, “w h o ”和“w h e n ”三类需求,k a o s 语言是一种具有两级结构的多范例规格 说明语言,其语言具有如下两个特征: 语义网外层:定义概念、概念的属性和概念之间的连接,用于概念模型化, 需求跟踪能力、需求规格说明重用等; 形式化的内层定义:形式化定义概念内层用于形式化推理;在k a o s 方法 中,所有的目标都被明确的建模,并用手段一目的推理来约减,最终获得指派给 不同的a g e n t 的操作。然而,这里的a g e n t 被假设为将完全按模型描述的行为进 行操作,没有考虑a g e n t 的自主性,所以很难分析a g e n t 之间的策略关系及其暗 含的意义。 2 4 2i + 框架 i + 框架是加拿大多伦多大学的e r i cy u 和j o h nm y l o p o u l o s 等人开发的,其目 的是提供一个比当前建模过程的框架更加丰富的建模框架。它是一种根据策略 依赖关系及其原理来理解和重新设计处理过程的面向目标的建模方法i l ”。利用 i + 框架对系统组织环境的构成关系进行建模,不但可以了解系统环境的构成,而 且能理解系统“为什么”要这样构成,是否还有更好的构成方式来满足组织环 境目标等问题。在系统的组织环境中,a g e n t 都具有一定的目标,并利用特定的 方法和资源来实现目标。i + 框架提供了种比其它面向目标需求建模框架更开 放、更具策略性的a g e n t 概念。它将a g e n t 作为具有自主性的社会行为者,可以 根据自己的意愿采取相应的操作,这样就能更好地理解a g e n t 之间的策略关系及 其隐含的意义。i 框架由策略依赖模型( s d ) 年1 1 策略原理模型( s r ) 构成。在s d 中,a g e n t 通过彼此依赖关系实现目标、执行任务和获得资源。在s r 中,描述 了对a g e n t 彼此之间关系的推理。支持通过推理来发掘能够满足目标的其它可选 择方法,并对这些方法进行评价。在s d 模型中,具有目标依赖、任务依赖、资 源依赖和软目标依赖四种类型依赖关系。在s r 模型中,包含四种意愿元素和两 种关系,即目标、任务、资源、软目标元素和手段一日的关系,任务分解关系。 i t 框架能够利用概念建模语言t e l o s 来形式化表达,而且语义可以用扩展意愿概 念关系来刻画,其中包含目标、信念、能力和承诺等。按照意愿依赖关系对系 统组织环境进行建模,在一定程度上描述了环境中行为者所能够处理的不确定 情况。 2 4 3g o n f r 方法 g o n f r 是一种具有文本和图形标记两种描述形式的建模语言,适用于在需 求分析过程中对非功能需求的建模和处理,同时也适用于在需求分析的初始阶 段对系统及其所处的组织环境进行建模和推理。它具有丰富的标识符,可以表 达在需求建模过程中出现的各种类型概念。g o n f r 建模语言由非意愿元素和目 标模型两部分组成。目标模型包括行为者、意愿元素、意愿关系和多个行为者 之间的意愿依赖关系四个部分。非意愿元素一般从外部模型引入。在g o n f r 中 不考虑其语法的语义,只是一般性的运用。面向目标的需求模型既可以是一个 全局的目标模型;也可以由一系列分布于若干行为者之中的目标模型组成。对 于模型的表达有四种方式: 第一图形表示法: 提供给没有太多专业知识背景的用户来使用,使得建 模能以种直观的、容易使用的方式进行; 第二文本表示法:用于记录需求文档,也可以提供给喜欢以文本方式进 行建模的用户来使用; 第三x m l 表示法:以x m l ( 扩展标记语言,e x t e n s i b l em a r k u pl a n g u a g e ) 来描述非功能需求模型,作为支撑环境内部模型的表达形式,也是一种与其它 模型框架相互衔接的方式,此法主要用来描述网上数据交换的数据文档及其格 式: 第四u m l 表示法:u m l ( 统一建模语言,u n i f i e dm o d e l i n gl a n g u a g e ) 是一种建模语言是第三代面向对象的方法。此法是对待开发系统的产品进行 说明、可视化和文档的编制。u m l 取代目前软件业众多的分析和设计语言,成 为一种标准语言,软件业第一次有了一个统一建模语言1 33 1 。这种表示方法有着 广阔的应用前景。 g o n f r 建模方法与以往建模方法有所不同,它的重点是研究“系统为什么 要选择某种特定的行为和结构”以及“为什么要对系统附加某些特定的限制” 等相关的问题。在g o n f r 建模方法中,用户的非功能需求被直接描述为“软
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025二手车评估鉴定与交易中介服务合同
- 2025年度专业保洁公司用工合同样本
- 2025版上海个人商铺租赁合同(含装修费)
- 2025版太阳能电池板市场推广与销售代理合同
- 2025瓷砖铺设劳务合同范本专业适用于文化场馆地面铺设
- 2025版城市穿梭电动单车租赁服务合同范本
- 2025年泰州二手房买卖合同+附赠车位使用权协议
- 2025年趸购电及配套服务合同
- 2025年度城市轨道交通建设人工劳务分包合同模板
- 诺亚家具专业知识培训课件
- 国企内部控制审计服务方案
- 宁德时代笔试题库
- 骨干教师专业成长规划
- 广医三院产房个案护理分享
- 工程人员驻场服务方案
- 中小学校保安服务方案(技术方案)
- 直播供货协议合同范本
- DB3411∕T 0039-2024 废包装桶回收再利用技术规范
- 2024年二次离婚起诉状范文
- 北师大版高中英语让学生自由飞翔
- T-CCSAS014-2022《化工企业承包商安全管理指南》
评论
0/150
提交评论