资源描述
,*,/28,Fill in,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,软件需求分析与形式化方法,丁艳辉,E-Mail,:,1,软件需求分,析,析与形式化,方,方法,这是一门什,么,么样的课程,?,?(,What,),为什么要学,习,习这门课程,?,?(,Why,),如何学习这,门,门课程?(,How,),2,软件需求分,析,析与形式化,方,方法,是一门什么,样,样的课程?,软件,软件,是程序以及,开,开发、使用,和,和维护程序,需,需要的所有,文,文档。,软件的开发,举例:盖房,子,子,3,建造过程,确定和分析,需,需求,提出并文档,化,化房子的总,体,体设计,提出房子的,详,详细规格说,明,明,识别并设计,房,房子的组成,部,部分(房子,、,、管道、电,),),构建房子的,每,每一个组成,部,部分,测试房子的,每,每一个组成,部,部分,把房子的各,个,个组成部分,集,集成在一起,,,,在住户搬,进,进来之前做,最,最后的修改,由房子的住,户,户持续进行,维,维护,4,软件的开发,包,包括以下活,动,动,需求分析和,定,定义,系统设计,程序设计,编写程序,单元测试,集成测试,系统测试,系统交付,维护,5,这是一门什,么,么样的课程,?,?,研究如何有,效,效地获得需,求,求(需求开,发,发),,并有效地对,需,需求进行管,理,理(需求管,理,理)。,6,第,2,个问题:为,什,什么要学习,这,这么课?,图,1-1CHAOS,报告数据分,析,析,7,表,1-1,项目超支、,超,超期情况分,析,析,项目超支,项目比例,进度超期,项目比例,20%,15.5%,400%,4.4%,400%,1.1%,8,成功因素,权重,失败因素,权重,用户的参与,15.9%,不完整的需求,13.1%,执行层的支持,13.9%,缺乏用户参与,12.4%,清晰的需求描述,13.0%,资源不足,10.6%,合适的规划,9.6%,不切实际的用户期望,9.9%,现实的客户期望,8.2%,缺乏执行层的支持,9.3%,较小的里程碑,7.7%,需求变更频繁,8.7%,有才能的员工,7.2%,规划不足,8.1%,主权,5.3%,提供了不再需要的,7.5%,清晰地愿景和目标,2.9%,缺乏,IT,管理,6.2%,努力的工作和稳定的员工,2.4%,技术能力缺乏,4.3%,其他,13.9%,其他,9.9%,表,1-2,项目成败因,素,素分析,9,“项目需求,无,无疑是在软,件,件项目前期,造,造成麻烦的,一,一个最大原,因,因,一个又,一,一个研究表,明,明,当项目,失,失败时,需,求,求问题正是,核,核心问题,.”,-R.Glass,10,第,2,个问题:为,什,什么要学习,这,这门课?,软件需求分,析,析与形式化,方,方法,主要在需求,分,分析阶段,,有,有效地发现,和,和解决与需,求,求相关的问,题,题。因此,,需,需要学习这,门,门课。,11,第,3,个问题:如,何,何学习这门,课,课?,多看,多思考,多动手,12,第一章 需,求,求工程概述,1,、什么是软,件,件需求?,例如,对于,选,选课系统,,用,用户有哪些,需,需求?,Davis,认为,,软件需求,是从软件外,部,部可见的,,软,软件所具有,的,的、满足于,用,用户的特点,、,、功能及属,性,性等的集合,。,。,13,IEEE,,软件工程,标,标准词汇表,将,将,需求,定义为:,(,1,)用户解决,问,问题或达到,目,目标所需的,条,条件或能力,;,;,(,2,)系统或系,统,统部件要满,足,足合同、标,准,准、规范或,其,其,它正式规定,文,文档所需具,有,有的条件或,能,能力。,14,关于软件需,求,求还有不同,的,的定义,原,因,因在于一方,面,面需求工程,发,发展过程还,不,不长(,20,世纪,90,年代提出),;,;另一方面,,,,真正的需,求,求实际是在,人,人们的脑海,中,中形成的,,很,很难给予准,确,确的定义。,总的来说,,软件需求,是指软件系,统,统必须满足,的,的所有功能,、,、性质和限,制,制。,15,2,、软件需求,的,的分类,目标需求,:表示组织,或,或客户高层,次,次的目标;,(,(描述了组,织,织为什么要,开,开发一个系,统,统),业务需求,:描述用户,的,的目标,或,用,用户要求系,统,统必须完成,的,的任务;,功能需求,:规定开发,人,人员必须在,产,产品中实现,的,的软件功能,;,;,性能需求,:实际的软,件,件系统功能,应,应达到的技,术,术指标;,约束与限制,:软件开发,人,人员在设计,和,和实现软件,系,系统时的限,制,制。,16,3,、需求规格,说,说明,软件需求规,格,格说明是软,件,件所应满足,的,的全部需求,,,,并可用文,档,档的方式完,整,整和精确地,陈,陈述这些需,求,求。,17,4,、需求工程,指应用工程化的,方,方法、技术和规,格,格来开发和管理,软,软件的需求。,18,5,、需求的开发和,管,管理,需求工程,需求开发,需求管理,需求获取,需求分析,需求描述,需求验证,19,需求获取,:确定和收集与,软,软件系统相关的,、,、来自不同来源,和,和对象的用户需,求,求信息。,需求分析,:对获得的用户,需,需求信息进行分,析,析和综合,即提,炼,炼、分析和仔细,审,审查已收集到的,用,用户需求信息,,并,并找出其中的错,误,误、遗漏或其他,不,不足的地方,以,获,获得用户对软件,系,系统的真正需求,,,,建立软件系统,的,的需求模型。,20,3,)需求定义,:使用适当的描,述,述语言,按标准,的,的格式描述软件,系,系统的需求,并,产,产生需求规格说,明,明及其相应文档,。,。,4,)需求验证,:审查和验证需,求,求规格说明是否,正,正确和完整地表,达,达了用户对软件,系,系统的需求。,21,6,、需求管理,基准需求说明,分析,编写文档,评审、商议,需求变更过程,市场,需求,客户,管理,市场,客户,管理,项目环境,当前基线,需求开发,需求管理,修正后基线,需求变更,项目变更,需求开发与管理之间的界线,22,7,、优秀需求的特,点,点,完整性,:每一项需求都,必,必须将所有实现,的,的功能描述清楚,,,,以便开发人员,获,获得设计和实现,这,这些功能所需的,必,必要信息。,正确性,:每一项需求都,必,必须准确地描述,将,将要开发的功能,。,。,可行性,:每一项需求都,必,必须在已知系统,和,和环境的限制范,围,围内是可以实施,的,的。,23,必要性,:每一项需求都,应,应把客户真正需,要,要的和最终系统,所,所遵从的标准记,录,录下来。,划分优先级,:给每项需求、,特,特性或使用实例,分,分配一个实施优,先,先级,以指明它,在,在特定产品中所,占,占的分量。,无二义性,:对所有需求说,明,明都只能有一个,明,明确统一的解释,。,。,可验证性,:检查每项需求,是,是否能通过设计,测,测试用例或其他,的,的验证方法。,24,8,、,需求工程在软件,开,开发中的地位,需求是制定项目,计,计划的基础。,需求工程所产生,的,的最终产物需求,规,规格说明是软件,设,设计和软件实现,的,的基础。,需求规格说明也,是,是测试工作和用,户,户验收软件系统,的,的依据。,需求规格说明也,是,是软件维护工作,的,的依据。,25,小结,1,、什么是软件需,求,求,2,、软件需求的分,类,类,3,、需求的开发和,管,管理,4,、优秀需求的特,点,点,5,、需求工程在软,件,件开发中的地位,26,
展开阅读全文