软件需求工程——方法及工具

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:jbl6055871
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:文中从需求工程的基本概念和研究内容出发,简单介绍了需求工程生命周期和需求规范等概念;比较全面地总结了现有的有代表性的需求工程开发方法和工具,对其中一些重要的方法及工具作了分类和评述。
  关键词:需求工程;需求规格;需求分析
  中图分类号:TP311.56文献标识码:A 文章编号:1009-3044(2007)17-31339-02
  Software Requirement Engineering:about Methods and Tools
  ZHANG Yi-jie
  (Department of Computer Science and Technology, Soochow University,Suzhou 215006,China)
  Abstract:Based on the basic concept and research contents of requirements engineering (RE),some concepts of the life cycle of RE and requirements specification are introduced in the present paper。There center present ative RE methods and tools are summarized。Some important tools and methods are classified and reviewed。
  Key words:RE (Requirement Engineering); SRS (Softwere Requirement Specification);RA (Requirement Analysis)
  
  1 引言
  
  需求工程是随着计算机的发展而发展的。在计算机发展的初期,软件规模不大,软件开发所关注的是代码编写,需求分析很少受到重视。后来软件开发引入了生命周期的概念,需求分析成为其第一阶段。随着软件系统规模的扩大,需求分析与定义在整个软件开发与维护过程中越来越重要,直接关系到软件的成功与否。人们逐渐认识到需求分析活动不再仅限于软件开发的最初阶段,它贯穿于系统开发的整个生命周期。80年代中期,形成了软件工程的子领域——需求工程(requirement engineering,RE)。
  进入90年代以来,需求工程成为研究的热点之一。从1993年起每两年举办一次需求工程国际研讨会(ISRE),自1994年起每两年举办一次需求工程国际会议(ICRE),在1996年Springer-Verlag发行了一新的刊物——《RequirementsEngineering》。一些关于需求工程的工作小组也相继成立,如欧洲的RENOIR(Requirements Engineering Network of International Cooperating Research Groups),并开始开展工作。
  
  2 需求工程基本内容
  
  需求工程是指应用已证实有效的技术、方法进行需求分析,确定客户需求,帮助分析人员理解问题并定义目标系统的所有外部特征的一门学科;它通过合适的工具和记号系统地描述待开发系统及其行为特征和相关约束,形成需求文档,并对用户不断变化的需求演进给予支持。RE可分为系统需求工程(如果是针对由软硬件共同组成的整个系统)和软件需求工程(如果仅是专门针对纯软件部分)。软件需求工程是一门分析并记录软件需求的学科,它把系统需求分解成一些主要的子系统和任务,把这些子系统或任务分配给软件,并通过一系列重复的分析、设计、比较研究、原型开发过程把这些系统需求转换成软件的需求描述和一些性能参数。本文以下如无特别说明,需求工程主要是指软件需求工程。
  2.1 需求工程的阶段
  需求工程是一个不断反复的需求定义、文档记录、需求演进的过程,并最终在验证的基础上冻结需求。80年代,HerbKrasner定义了需求工程的五阶段生命周期:需求定义和分析;需求决策;形成需求规格;需求实现与验证;需求演进管理。近来,MatthiasJarke和KlausPohl提出了三阶段周期的说法:获取、表示和验证。综合了几种观点,我们把需求工程的活动划分为以下5个独立的阶段:
  (1)需求获取:通过与用户的交流,对现有系统的观察及对任务进行分析,从而开发、捕获和修订用户的需求;
  (2)需求建模:为最终用户所看到的系统建立一个概念模型,作为对需求的抽象描述,并尽可能多的捕获现实世界的语义;
  (3)形成需求规格:生成需求模型构件的精确的形式化的描述,作为用户和开发者之间的一个协约;
  (4)需求验证:以需求规格说明为输入,通过符号执行、模拟或快速原型等途径,分析需求规格的正确性和可行性;
  (5)需求管理:支持系统的需求演进,如需求变化和可跟踪性问题。
  2.2 需求规格
  IEEE为需求作如下定义:
  (1)用户解决问题或达到系统目标所需要的条件;
  (2)为满足一个协约、标准、规格或其他正式制定的文档,系统或系统构件所需要满足和具有的条件或能力;
  (3)对上述条件的文档化的描述。
  规格就是一个预期的或已存在的计算机系统的表示。它可以作为开发者和用户之间协议的基础,来产生预期的系统。规格定义系统所有必须具备的特性,同时留下很多特性不做限制。通常,我们要求规格比组成特定系统的实际的软件和硬件更简洁、更全面、更易于修改。
  需求工程的主要结果是软件需求规格(SRS,Softwere Requirement Specification), SRS是对外部行为和系统环境(软件、硬件、通信端口和人)接口的简洁完整的描述性文档。项目管理者用它来对项目进行计划和管理,在许多情况下,它也被作为是用户的使用手册或帮助用户理解系统的文档。它广泛地适用于对各类应用领域中的客户问题进行理解与描述,实现用户、分析员和设计人员之间的通信,为软件设计提供基础,并支持系统的需求验证和演进。
  
  3 需求工程活动
  
  需求工程的活动可分为3个层次:方法学——即整体的、全面的、指导性的方法;方法——具体的、详细的实现途径和策略;工具——指一步步形成的手工或自动的辅助过程。下面我们将讨论这3个层次的应用及发展。
  3.1 需求分析方法分类
  需求分析方法可大致分为4类,如图1所示。
  3.2 需求工程代表性方法
  需求工程方法和上述的生命周期及方法学模型是一致的。新的需求工程的方法层出不穷,我们不可能覆盖所有的方法,在这里仅讨论一些成熟的、有代表性的、广泛应用在需求工程或软件工程领域中的一些重要的方法。
  图1需求分析方法分类图
  (1)JAD方法——Joint Application Developmen
  这一方法由IBM于1977年开发出来,在80年代初首先投入使用。这一技术的核心在于一高度结构化的工作研讨会,研讨组由行政人员、项目管理者、用户、系统专家、技术人员、JAD辅助人员及文档记录人员组成。用户得到系统人员的帮助及经验丰富、客观的项目的辅助者的指导。这个辅助者与项目管理者和用户会谈一起定义项目的范围和目标。JAD方法能够加速持不同观点的用户之间的协商,加深对软件需求的理解,并生成供用户参考的模型或原型。JAD成功之处在于它对群体需求获取的协调,同类方法还有NCOSE和CRC。
  (2)AMORE——Advanced Multimedia Organizer for Requirements Elicitation
  这一方法是卡内基?梅隆大学软件工程研究所开发的,提出用多媒体的方法进行需求捕获和建模。AMORE采用层次或网状结构,如分层的数据流图、控制流图,对象层次图、任务分解图等形式来组织大量的需求。并提供浏览和导引工具来促进需求的捕获。需求分析人员把AMORE作为最接近其需求产生自然形式的需求存储平台,以获得最大限度的可跟踪性及促进对用户最初的需求意图的理解。而且填补了需求产生的最初形式和被一些需求规格方法和CASE工具所采用的形式化表示法之间的距离。
  3.3 基于操作方法需求工程工具
  STATEMATE 这一工具是由I-logic公司在1980年于曼彻斯特开发,是为了获得一个被Harel称为状态流图(statechart)的有限状态机的扩充。状态流图有助于需求量分析人员对复杂实时系统行为无二义性的建模。使用STATEMATE,需求分析能从功能、行为及结构3方面描述系统。这一工具最强大功能之一是它的仿真能力,这3个视图任一方在屏幕上出现,通过一个描述系统功能和行为的可执行的模型,系统就能观察其在仿真的实时环境下的行为。典型的操作方法的工具还有JSD,软件所在80年代末开发的RSL/RSA等。上述工具的共同特点即它们最终结果是严格的形式化需求规格,对快速原型提供支持,需求能得到及时的验证和反馈。可执行规格和原型技术无疑为RE提供了很好的实现途径。上述几种方法又各有侧重,如STATEMATE主要适于嵌入式实时系统,GIST在AI和数据库系统的应用比较广泛。
  3.4 基于知识的需求工程工具
  (1)RA——Requirement Apprentice
  RA是由MIT研究人员开发的基于知识的系统,为需求的开发提供了一个智能助手。RA建立在特定需求领域的知识库基础上,帮助分析人员建立和修订需求规格。其核心是缩小非形式化和形式化需求规格的距离,实现前者到后者的转化。RA进程是对需求的产生一个机器可操纵的需求表示。它能回答询问和为需求分析人员、用户和系统设计者生成各种文档。这一需求分析方法的一个优点在于它能产生不同的信息表示,并根据最终用户、分析员、设计者的不同需要作相应改动。从AI的角度来看,RA所面临的主要问题是知识获取。RA是要从起初杂乱无章且欠精确的声明中导出一内部协调的需求声明。为此,RA要依靠一些技术,如相关定向推理,混合知识表示和通用构件的重用。
  (2)TMMRP——Technology to Manage Multiple Requirement Perspective
  TMMRP是德国USU公司基于元模型(metamodel)对各种不同需求进行管理的工具。需求模块是对现实世界或理想世界的抽象表示,元模型则是对已存在或目标需求模块及其相互关系的抽象表示。概念库(ConceptBase)在知识表示机制方面对这种多级抽象的管理提供了很好的支持。它是一个客户机/服务器式的元数据管理器,服务器存储、查询、更新元模型,客户端通常是一建模工具。概念库及先进的询问功能软件的支持,使得简单且可定制的元模型方法能在很短的时间内产生高质量的需求文档。
  3.5 需求跟踪工具
  (1)ARTS——The Automated Requirement Traceability System
  ARTS是LMSC公司为软件工程师开发的需求跟踪性系统。它以“需求树”的形式链接用户定义的需求,并以这种分层结构提供对可跟踪性的支持。其首要解决的问题是选择一个数据库管理系统并加入可跟踪性构件。ART是一个数据库管理系统,在这个系统中需求是作为数据库中的记录被定义的,这些记录是由包含和需求对象有关的信息的域和属性组成,数据库系统能对需求进行选择、存储和操作。ART的开发方法是建立在快速原型和渐增模型二者结合的基础之上的。
  (2)TOOR——Traceability of Object-Oriented Requirement
  TOOR是牛津大学Francisco等人开发的需求跟踪工具。TOOR对面向对象的形式化规格说明语言FOOPS(for functional and object-oriented programming system)的结合使得它适于面向对象的系统开发。它使用类FOOPS模型来声明需求并在项目演进的过程中自动生成新的需求链。TOOR还提供超媒体工具以更近似的反映分析人员的直观想法和活动。它由以下3部分组成:操作管理器:用于控制和执行所有对象并对操作进行建模;数据库管理器:用于控制对TOOR数据库的访问;通信管理器:用于控制和其它系统及通信用户间的交互。
  
  4 结束语
  
  从需求工程的过程各阶段的作用来看,日后研究的重点还应放在需求分析、建模和可跟踪性问题的研究。当前软件开发中的一些热点技术,如面向对象技术、自动化工具、构件技术,以及传统的形式化技术、领域建模技术的发展,仍将继续为需求工程的研究提供有力的支持。RE研究现状中另一明显的不足是理论解决方案通常是在对实际问题简化的基础上得到的,理论研究和实践脱节。要获取需求突破,改善需求工程的开发效率和质量,很重要一点是探索有效的解决途径,缩小理论和应用之间的正在增长的差距,使开发出的系统和模型切实满足应用领域的需要。我们期待着在需求工程领域的研究在与丰富的计算机科学实践经验结合的过程中,提炼出更多成熟、完善的方法和工具,从而推动整个需求工程的进程。
  
  参考文献:
  [1]杨一平.现代软件工程技术与CMM的融台[M].北京:人民邮电出版社,2002.
  [2]Wiegers KE.软件需求[M]。陆丽娜译.北京:机械工业出版社,2000.
  [3]刘积仁,康晓东,饶友玲.软件开发项目管理.北京:人民邮电出版社,2002.
  [4]计算机软件工程规范国家标准汇编2000.北京:中国标准出版社,2002.
  [5]葛乃康,罗四维.信息工程建设监理[M].北京:电子工业出版社,2002.
  [6]北京信息安全测评中心.信息系统工程监理[M].北京:中国标准出版社,2003.
  注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。
其他文献
简要介绍了小波分析的基本原理和分类,及其在图像处理中的应用。重点论述了小波分析在图像增强、降噪、压缩和融合中的应用。通过实例充分说明了小波在图像处理中的实用价值与工程作用。
通过对J2ME和J2EE技术的研究,建立了移动应用系统的基本框架模型,并通过建立一个移动办公系统的实例,探讨了该模型的应用方法。最后对J2ME移动应用系统的安全性进行了一定的分析
目的分析25例患者脑卒中后癫癎发作的临床特点。方法选择2009-03—2012-03我院25例脑卒中后癫癎发作患者的临床资料,对癫癎的发作时间、类型、病灶部位、治疗及预后进行回顾性
目的探究脑血管性痴呆的治疗方法。方法将我院2009-02—2010-06收治的120例脑血管性痴呆患者随机分为3组,A组常规治疗,B组在常规治疗基础上加用安理申,C组在B组基础上加用复
目的 分析胼胝体前部胶质瘤患者的病理学特征以及应用显微手术治疗的安全性及预后效果.方法 选取本院2008-01-2010-12收治的胼胝体前部胶质瘤患者26例为研究对象,回顾性分析
本文根据信息化系统的发展现状和趋势、现代人力资源管理与传统人事管理的本质区别以及人力资源信息系统的用途等方面,对高校人力资源信息化系统建设情况进行了分析总结。针对信息化系统建设和发展中面临的挑战,提出了搞好高校信息化建设和发展的几点建议,以及高校人力资源信息化系统亟待建设和开发的原因,同时制定了高校信息化系统建设的内容和目标。文章根据高校人事改革的特点,并结合高校人力资源信息化系统实际业务要求,遵
《语文课程标准》要求,学生9年课外阅读量要达到400万字以上。一部《红楼梦》73万字,400万字相当于5部半《红楼梦》。2016年部编教材规定了初中生必读的12部名著,同时每册教
新课程标准已经明确提出了要重视培养学生良好的阅读兴趣,并增加学生的阅读量,随着课外阅读内容的不断丰富,且学生的阅读需求也逐渐提高,群文阅读备受语文教师的推崇。群文阅
目的 研究急性脑血管病并发癫(癎)的发病机制、疾病特征、治疗与预后.方法 选取2008-01-2011-12我院862例急性脑血管病患者,其中并发癫(癎)患者73例,给予正规原发疾病的治疗以及
基于喀斯特峰丛洼地坡耕地、草丛、灌丛、人工林、次生林、原生林6种典型生态系统的土壤主要养分、矿质养分和微生物这3组变量共计20个指标的调查、取样和分析,运用多重比较分