您好,欢迎访问三七文档
软件工程(SoftwareEngineering)沈阳工业大学信息科学与工程学院魏东Slide1第四章需求分析软件工程(SoftwareEngineering)沈阳工业大学信息科学与工程学院魏东Slide24.1需求分析概述需求分析的目标与任务目标:弄清用户对系统的细节要求,完整、准确、清晰、具体地回答目标系统“做什么”。任务:是对用户提出的软件功能、性能等应用问题及其环境进行分析与理解,采用一系列的分析方法和技术,把系统分析阶段产生的系统规格说明和项目规划逐步精确化、完全化、一致化,借助于当前系统的逻辑模型导出目标系统逻辑模型,最终形成需求规格说明文档的过程。具体过程:需求的获取、建模、文档、验证;软件工程(SoftwareEngineering)沈阳工业大学信息科学与工程学院魏东Slide34.1需求分析概述需求开发是技术范畴,需求管理是管理范畴。在软件工程课里通常讲述需求分析是指需求工程当中的需求开发部分需求分析=需求开发软件工程(SoftwareEngineering)沈阳工业大学信息科学与工程学院魏东Slide44.1需求分析概述需求分析的必要性软件开发是用户与开发者共同参与的过程,项目涉众人员之间必须经过充分交流;用户与开发者的知识领域不同,缺乏共同语言,存在对问题理解的歧义;软件开发失败的原因大约超过50%是需求不合理而急于编程引起的;在需求分析阶段的错误会引起错误的放大,后期发现错误时要花费更大的精力修改;软件工程(SoftwareEngineering)沈阳工业大学信息科学与工程学院魏东Slide54.1需求分析概述需求分析是RUP生命周期的“细化”阶段产品目标业务建模初始阶段细化阶段层面:面向决策层(商务层面)活动:问题定义;可行性研究人员:领域决策人+领域专家IT决策人+IT专家层面:面向终端用户层(应用层面)面向设计层面(技术层面)活动:获取;建模;描述;验证人员:领域专家+终端用户IT专家(分析师、架构师、设计师)需求建模软件结构软件工程(SoftwareEngineering)沈阳工业大学信息科学与工程学院魏东Slide64.1需求分析概述从问题定义到需求分析是个逐步细化的过程,到需求分析阶段把需求的细节搞清楚问题定义可行性研究需求分析软件规模、性质、约束在约束条件下客户提出的软件的功能能否实现软件功能的细节要求对软件的要实现的功能逐步细化的过程,前者是后者的子集<<软件工程(SoftwareEngineering)沈阳工业大学信息科学与工程学院魏东Slide74.1需求分析概述需求分析的参与者开发方用户方分析师需求分析设计师架构师部门负责领域专家终端用户软件工程(SoftwareEngineering)沈阳工业大学信息科学与工程学院魏东Slide84.1需求分析概述需求工程:也称需求过程或需求阶段。包括了需求开发和需求管理,所涉及到的具体工作如下图所示软件工程(SoftwareEngineering)沈阳工业大学信息科学与工程学院魏东Slide94.1需求分析概述任务讲究目标,过程要讲究方法:需求获取(需求提出)Gatheringdetailedrequirementsisthefirstpartoftheprojectlifecycle问题分析(分析建模)Theanalysisphase:Understandingwhatthecustomerwants需求说明(需求文档)Capturetherightuserrequirementswiththesebestpracticesforwritingsoftwarespecifications需求验证(需求评审)Determineuserrequirementsnowtoavoidproblemslater软件工程(SoftwareEngineering)沈阳工业大学信息科学与工程学院魏东Slide104.1需求分析概述需求获取:调查软件需求,弄清用户对目标软件系统在功能、性能、行为、设计约束等方面的期望。手段:通过现场调查、核实、归纳,用自然语言描述。需求建模:是对现实世界进行抽象的过程。通过符号和文字说明描述系统模型使用户和开发者间建立共同语言基础,消除理解上的歧义;从原始模型分析找寻目标模型,从物理模型过渡到逻辑模型,作为设计阶段的依据;手段:采用建模语言和工具软件工程(SoftwareEngineering)沈阳工业大学信息科学与工程学院魏东Slide114.1需求分析概述需求说明:需求说明书是需求分析阶段的最终成果,也是需求分析阶段复审的依据;是用户领域专家、软件分析师、软件设计师共同交流的途径和媒介;是交付给用户文档的一部份;手段:编写文档需求评审:根据需求说明书,对需求的正确性、一致性、完整性、无二义行进行评审、确认。手段:分析师、设计师、客户会审文档软件工程(SoftwareEngineering)沈阳工业大学信息科学与工程学院魏东Slide124.1需求分析概述需求分析的步骤需求分析过程:是一个从模糊概念出发,经过分析、综合评价,到概念逐步清晰的过程。需求分析过程就是四项任务的工作流程,一般分四个步骤。需求分析四个步骤并不遵循线性的顺序,这些活动是相互隔开、增量和反复的。需求获取分析建模需求描述需求验证软件工程(SoftwareEngineering)沈阳工业大学信息科学与工程学院魏东Slide134.2需求获取需求获取的内容分为:功能性需求:搞清系统做什么;非功能性需求:定义了系统工作时的特性(环境、性能、可靠性、安全保密性、成本消耗、资源利用、用户接口等);需求获取的特性需求获取不是一次完成,不仅仅在分析阶段,在问题定义、可行性研究阶段都需要,是逐步深化的结果。需求获取是有层次的,不同层面的需求内容取自不同的对象,不同层面的需求写在不同的文档及章节里。需求获取的内容经过整理要写进“需求规格说明书”的“用户里,软件工程(SoftwareEngineering)沈阳工业大学信息科学与工程学院魏东Slide144.2需求获取软件需求的层次软件工程(SoftwareEngineering)沈阳工业大学信息科学与工程学院魏东Slide154.2需求获取软件需求包括三个不同的层次:业务需求;用户需求;功能需求--也包括非功能需求。业务需求(businessrequirement)反映了组织机构或客户对系统、产品高层次的目标要求,它们在项目视图与范围文档中予以说明,通常就是“问题定义”或在SRS中的项目背景、系统目标所指(调查谁?)。用户需求(userrequirement)描述了用户使用产品必须要完成的任务,采用业务领域的术语,使用用户与开发者都能理解的语言和图形表达。如结构化的DFD图+加工说明,面向对象的用例(usecase)图+用例脚本(scenario)。它是经过调查、归纳后双方认同的结果(调查谁?)。功能需求(functionalrequirement)定义了开发人员必须实现的软件功能,用软件行业术语,通常是需求建模的结果即目标系统的逻辑模型,如结构化的功能模型、数据模型、行为模型,面向对象的类模型等(写在哪?)。特性(feature)是指逻辑上相关的功能需求的集合,给用户提供处理能力并满足业务需求(非功能需求)。例子(P76)软件工程(SoftwareEngineering)沈阳工业大学信息科学与工程学院魏东Slide164.2需求获取需求获取方法需求获取是调查研究的结果,获取方法以采访、观察、座谈、对先前的系统版本的测试等。必要时采用快速原型法。先集中在使用者对系统的观点上,以收集用户原始资料,数据、工作方式、工作流程、使用要求等为工作起点,深入到部门、车间、班组,做好原始纪录;然后根据对问题及其环境的理解与软件开发经验,改正用户需求的模糊性、歧义性和不一致性,排除由于用户的片面性和短期行为所导致的不合理要求、挖掘用户尚未提出但具有价值的潜在需求,并在用户的帮助下对相互冲突的要求进行折衷,使用户需求逐步精确化、一致化和完全化;需求获取不是一次完成,不仅仅在分析阶段,在问题定义、可行性研究阶段都需要,是往复进行、逐步深化的结果。需求获取的内容经过整理形成“用户需求”最终要写进“需求规格说明书”,结果由客户确认。三步法(P77)软件工程(SoftwareEngineering)沈阳工业大学信息科学与工程学院魏东Slide174.3需求建模需求建模的意义建模就是把客观世界的领域问题模型化,通过逐步细化模型最终映射到计算机世界里。需求建模是模型化的开始。需求模型就是根据用户需求建立的目标软件的逻辑模型。需求模型起到承上启下的作用。承上:面向用户,指与领域专家的沟通,反映用户的需求。通过建立需求模型进一步清除用户需求的模糊性、歧义性和不一致性,也就是对需求获取的校验。如果需求获取不完整、不清楚,建立模型就会有所反应,甚至无法进行。这就要重新调研,完善需求获取。启下:面向设计,指需求模型作为设计阶段的输入,反映系统要实现的功能。模型细化的下一步就是设计,设计的依据就是这里的需求模型。软件工程(SoftwareEngineering)沈阳工业大学信息科学与工程学院魏东Slide184.3需求建模建模的过程建模的一般过程获得当前系统的物理模型抽象出当前系统的逻辑模型。建立目标系统的逻辑模型。问题定义、可行性(系统规格说明)需求分析(需求规格说明)软件设计(设计说明)实现(程序代码)软件工程(SoftwareEngineering)沈阳工业大学信息科学与工程学院魏东Slide194.3需求建模建模的方法形式化的方法,采用严格的数学模型,这种方法目前常见的是Z语言和petri网。非形式化的方法,如用自然语言、半形式化语言、图形符号、表格等方式对需求规格进行描述。形式化方法得到的需求模型更加严密和精确,容易过渡到编码,但往往难以掌握,特别是不易与用户沟通。非形式化方法的需求模型更加直观和易于理解,要通过逐步细化(映射)到编码。目前普遍应用以非形式化为主。无论采用形式化还是非形式化的、是传统的还是现代的分析方法,所遵循的原则是一样的。软件工程(SoftwareEngineering)沈阳工业大学信息科学与工程学院魏东Slide204.3需求建模非形式化的两种建模技术结构化分析建模SA(StructuredAnalysis),又分面向数据建模和面向数据流建模。主要应用技术:数据流图(DFD);数据字典(DD);加工说明(PESPEC);实体关系图(E-R);状态变迁图(STD)等。软件工程(SoftwareEngineering)沈阳工业大学信息科学与工程学院魏东Slide214.3需求建模结构化分析模型的组织结构数据流图(DFD)E-R图状态变迁图(STD图)加工说明控制说明数据对象说明数据字典(DD)软件工程(SoftwareEngineering)沈阳工业大学信息科学与工程学院魏东Slide224.3需求建模非形式化的两种建模技术面型对象分析建模OOA(Object-OrientedAnalysis)主要应用视图:用例图(UseCase);时序图(Sequence);状态图(Statechart);类图(Class);构件图(Component);部署图(Deployment)等。软件工程(SoftwareEngineering)沈阳工业大学信息科学与工程学院魏东Slide234.3需求建模面向对象分析模型的组织结构对象-关系模型对象-封装模型对象-行为模型使用实例(UseCase)操作、软件工程(SoftwareEngineering)沈阳工业大学信息科学与工程学院魏东Slide244.3需求建模建模过程举例通过对现实环境的调查,获得当前系统的物理模型教务科审批2#楼D座304王老师领书申请领书单财务科交款办公
本文标题:软件工程需求分析
链接地址:https://www.777doc.com/doc-5838313 .html