第03章需求工程

上传人:仙*** 文档编号:243912723 上传时间:2024-10-01 格式:PPT 页数:42 大小:137KB
返回 下载 相关 举报
第03章需求工程_第1页
第1页 / 共42页
第03章需求工程_第2页
第2页 / 共42页
第03章需求工程_第3页
第3页 / 共42页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,复旦大学计算机科学与工程系 软件工程课程,*,/42,软件工程,第,3,章 需求工程,内容摘要,需求工程概述,需求获取,需求分析、协商与建模,需求规约与验证,需求管理,2,复旦大学计算机科学与工程系 软件工程课程,内容摘要,需求工程概述,需求获取,需求分析、协商与建模,需求规约与验证,需求管理,3,复旦大学计算机科学与工程系 软件工程课程,Alan Davis,把需求工程定义为“直到(但不包括)把软件分解为实际架构构件之前的所有活动”,Herb Krasner,定义了需求工程的五阶段生命周期:需求定义和分析、需求决策、形成需求规格、需求实现与验证、需求演进管理,Matthias,Jarke,和,Klaus Pohl,提出了三阶段周期的说法:获取、表示和验证,4,复旦大学计算机科学与工程系 软件工程课程,本书将软件需求工程细分为:,需求获取,、,需求分析与协商,、,系统建模,、,需求规约,、,需求验证,和,需求管理,六个阶段。,5,复旦大学计算机科学与工程系 软件工程课程,需求获取,系统分析人员通过与用户的交流、对现有系统的观察及对任务进行分析,确定系统或产品范围的限制性描述、与系统或产品有关的人员及特征列表、系统的技术环境的描述、系统功能的列表及应用于每个需求的领域限制、一组描述不同运行条件下系统或产品使用状况的应用场景以及为更好地定义需求而开发的任意原型。,需求获取的工作产品为进行需求分析提供了基础,6,复旦大学计算机科学与工程系 软件工程课程,需求分析与协商,需求获取结束后,分析活动对需求进行分类组织,分析每个需求其它需求的关系来,检查需求的一致性、重叠和遗漏的情况,并根据用户的需要对需求进行排序。,在需求获取阶段,经常出现以下问题:,用户提出的要求超出软件系统可以实现的范围或实现能力;,不同的用户提出了相互冲突的需求,7,复旦大学计算机科学与工程系 软件工程课程,系统建模,建模工具的使用在用户和系统分析人员之间建立了统一的语言和理解的桥梁,同时系统分析人员借助建模技术对获取的需求信息进行分析,排除错误和弥补不足,确保需求文档正确反映用户的真实意图。,常用的分析和建模方法有面向数据流方法、面向数据结构方法和面向对象的方法。,8,复旦大学计算机科学与工程系 软件工程课程,需求规约,软件需求规约是分析任务的最终产物,通过建立完整的信息描述、详细的功能和行为描述、性能需求和设计约束的说明、合适的验收标准,给出对目标软件的各种需求。,需求规约作为用户和开发者之间的一个协议,在之后的软件工程各个阶段发挥重要作用。,9,复旦大学计算机科学与工程系 软件工程课程,需求验证,作为需求开发阶段工作的复查手段,需求验证对功能的正确性、完整性和清晰性,以及其它需求给予评价。为保证软件需求定义的质量,评审应以专门指定的人员负责,并按规程严格进行。,10,复旦大学计算机科学与工程系 软件工程课程,在实际的开发过程中,获取、分析、建模、编写规约和验证这些需求开发活动不会是线性地、顺序地完成。实际上,这些活动是交叉的、递增的和反复的。,11,复旦大学计算机科学与工程系 软件工程课程,需求管理,需求工程包括获取、分析、规定、验证和管理软件需求,而“软件需求管理”则是对所有相关活动的规划和控制。,换句话说,需求管理就是:一种获取、组织并记录系统需求的系统化方案,以及一个使用户与项目团队对不断变更的系统需求达成并保持一致的过程。,12,复旦大学计算机科学与工程系 软件工程课程,内容摘要,需求工程概述,需求获取,需求分析、协商与建模,需求规约与验证,需求管理,13,复旦大学计算机科学与工程系 软件工程课程,软件需求包括,功能需求,性能需求,用户或人的因素,环境需求,界面需求,文档需求,数据需求,资源使用需求,安全保密要求,可靠性需求,软件成本消耗与开发进度需求,其他非功能性要求,14,复旦大学计算机科学与工程系 软件工程课程,需求获取方法与策略,建立顺畅的通信途径,访谈与调查,观察用户操作流程,组成联合小组,用况,(,Use Case,),15,复旦大学计算机科学与工程系 软件工程课程,建立顺畅的通信途径,建立分析所需要的通信途径,以保证能顺利地对问题进行分析。,16,复旦大学计算机科学与工程系 软件工程课程,访谈与调查,在具体的实践中,通常采用折衷的方法,即适当地计划好面谈,但不要过于详细,允许有一定的灵活性。一般按照如下原则进行准备:,所提问的问题应该循序渐进,从整体的方面开始提问,接下来的问题应有助于对前面的问题更好的理解和细化;,不要限制用户对问题的回答,这有可能会引出原先没有注意的问题;,提问和回答在汇总后应能够反映用户需求的全貌。,17,复旦大学计算机科学与工程系 软件工程课程,例子:“赛艇比赛成绩计算系统”的第一次面谈的准备计划,初次与,Dartchurch,航行俱乐部的航行秘书(,DR,)接触,面谈有关事宜。,(,在电话交谈时,了解到他们希望得到的是一个“价廉”的,基于,PC,的系统,以用于计算赛艇比赛成绩,),时间:,2005-6-5,地点:对方场地,主要问题,确定基本问题。,确定,DR,的角色,还涉及其它人员吗?,调查财物方面事宜。,系统(大致上)是如何运作的?,当前存在的问题是什么?,他们都希望做些什么?,18,复旦大学计算机科学与工程系 软件工程课程,观察用户操作流程,到用户的实际工作环境中对用户的工作流程进行观察,了解用户实际的操作环境、操作过程和操作要求,对照用户提交的问题陈述,对用户需求可以有更全面、更细致的认识。,19,复旦大学计算机科学与工程系 软件工程课程,组成联合小组,便利的应用规约技术,(Facilitated Application Specification Techniques,FAST),:打破用户(需方)和开发者(供方)的界限,共同组成一个联合小组,发挥各自的长处,共同负责项目的推进,这样有助于发挥各自优势并增进解和协调,20,复旦大学计算机科学与工程系 软件工程课程,FAST,基本原则,在中立的地点举行由开发者和用户出席的会议;,建立准备和参与会议的规则;,建议一个足够正式的议程以便可以进行自由的交流;,一个“协调者”,(,他可以是用户、开发者或其他外人,),来控制会议;,使用一种“定义机制”,(,它可以是工作表、图表、墙上胶黏纸或墙板,),;,目标是标识问题、提出解决方案的要素、商议不同的方法、以及在有利于完成目标的氛围中刻画出初步的需求。,21,复旦大学计算机科学与工程系 软件工程课程,FAST,会议 步骤,1),当举行了开发者和用户之间的初步访谈后,确定一个,FAST,会议的时间地点,并在会议日之前将产品请求发布给所有的与会者。,2),要求每个,FAST,出席者会前列出一组围绕系统环境的对象,以及对这些对象的操作或对象之间的交互功能,并开发出约束列表,(,如,成本、规模大小、权重,),和性能标准列表,(,如,速度、精度,),。这些列表可以不是穷尽的,但是,希望每套列表反映的是每个人对系统的感觉。,3),进行,FAST,会议时,当团队的每个成员提出单个列表后,整个团队将创建一个组合的列表,该组合列表删去冗余项,并加入在表达过程中出现的新思想。在建好所有主题的组合列表后,开始讨论活动。缩短、加长或重新组合列表以适当地反映将被开发的产品。,22,复旦大学计算机科学与工程系 软件工程课程,FAST,会议 步骤,(,续,),4),一旦创建了意见一致的列表,应该将团队分为更小的小组,每个小组力图为每个列表中的一个或多个项开发出小型的规约(即对包含在列表中的单词或短语的精细化)。每个小组然后将他们开发的每个小规约提交给所有的,FAST,出席者讨论,进行添加、删除或进一步的精化等工作。(在所有讨论过程中,团队可能提出某些不能在会议过程中解决的问题,此时要保留问题列表以使这些思想在以后的活动中产生作用。),5),在小规约完成后,每个,FAST,的出席者提出一个针对产品的确切标准列表,并将该列表提交给团队,然后创建一个意见一致的确定的标准列表。这个列表作为需求获取的结果,为需求分析和建模提供基础信息。,23,复旦大学计算机科学与工程系 软件工程课程,用况,(,Use Case,),当需求作为非正式会议、,Fast,的一部分而收集起来之后,分析员就可以创建一组标识一串待建造系统的使用场景。,创建用况模型的主要步骤如下:,确定谁会直接使用该系统,即参与者(,Actor,),选取其中一个参与者,定义该参与者希望系统做什么,参与者希望系统作的每件事将成为一个用况,对每件事来说,何时参与者会使用系统,通常会发生什么,这就是用况的基本过程,描述该用况的基本过程,24,复旦大学计算机科学与工程系 软件工程课程,内容摘要,需求工程概述,需求获取,需求分析、协商与建模,需求规约与验证,需求管理,25,复旦大学计算机科学与工程系 软件工程课程,需求分析原则,1,必须能够表示和理解问题的信息域,2,必须能够定义软件将完成的功能,3,必须能够表示软件的行为,(,作为外部事件的结果,),4,必须划分描述数据、功能和行为的模型,从而可以分层次地揭示细节,5,分析过程应该从要素信息移向细节信息,26,复旦大学计算机科学与工程系 软件工程课程,信息域,信息域:,包括信息内容、信息流、以及信息结构。,信息内容,表示了单个数据和控制对象,目标软件所有处理的信息集合由它们构成。,例如,数据对象“工资”是一组重要数据体的组合:领款人的姓名、净付款数、付款总额、扣除额等等,27,复旦大学计算机科学与工程系 软件工程课程,信息流,表示了数据和控制在系统中流动时的变化方式,输入对象被变换为中间信息,(,数据和,/,或控制,),,然后进一步被变换为输出,信息结构,表示了各种数据和控制项的内部组织,数据或控制项将被组织为,n,维表还是树形结构?,在结构的语境内,什么信息是和其他信息相关的?,信息包含在单个结构中,还是使用不同的结构?,在某信息结构中的信息如何和在另一个结构中的信息相关?,28,复旦大学计算机科学与工程系 软件工程课程,抽象、分解与多视点分析,问题抽象方法,要求分析人员在分析过程中捕捉用户描述或问题本身固有的,一般,-,特殊关系,首先关注一般问题的解决途径,进而指导特殊问题的解决方法。,29,复旦大学计算机科学与工程系 软件工程课程,问题分解,的目的是要能以层次化的方式对问题进行分解和不断细化。,较大规模或较为复杂的问题可以被分解为若干子问题进行理解和分析,分解可以逐级进行,直至子问题被分解为一个容易分析理解的部分,例如,横向分解,纵向分解,30,复旦大学计算机科学与工程系 软件工程课程,需求协商,协商的过程就是讨论需求冲突,找出每个人都满意的折衷方案,协商不是简单的逻辑或技术上的争论,要注意组织和行政方面的因素,不一致的目标,责任的丧失或转移,组织文化,组织管理态度和士气,部门差异,31,复旦大学计算机科学与工程系 软件工程课程,通常会议是解决冲突最快的方式,参加者应该包括发现冲突、遗漏或重叠的分析员,以及可以解决发现的问题的项目相关人员,会议应该讨论那些非正式讨论不能解决的问题,通常会议分为三个阶段:,叙述阶段,讨论阶段,决策阶段,32,复旦大学计算机科学与工程系 软件工程课程,需求建模,在软件需求分析阶段,所创建的模型,要着重于描述系统要,做什么,,而不是,如何去做,目标软件的模型不应涉及软件实现细节,33,复旦大学计算机科学与工程系 软件工程课程,常用的分析方法:,面向数据流的结构化分析方法,(SA),面向数据结构的分析方法,面向对象的分析方法,(OOA),34,复旦大学计算机科学与工程系 软件工程课程,内容摘要,需求工程概述,需求获取,需求分析、协商与建模,需求规约与验证,需求管理,35,复旦大学计算机科学与工程系 软件工程课程,需求规约的原则,1,从现实中分离功能,即描述要“做什么”而不是“怎样实现”。,2,要求使用面向处理的规约语言(或称系统定
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!