软件工程实践(4)需求课件_第1页
软件工程实践(4)需求课件_第2页
软件工程实践(4)需求课件_第3页
软件工程实践(4)需求课件_第4页
软件工程实践(4)需求课件_第5页
已阅读5页,还剩57页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第四讲需求分析内容需求分析概念需求分析过程需求分析方法需求分析产品软件需求的定义客户定义的“需求”对开发者是一个较高层次的产品概念。开发者所说的“需求”对用户来说像是详细说明。软件需求包含多个层次,不同层次的需求从不同角度与不同程度反映着细节问题。IEEE软件工程术语(1997)的需求定义:(1)用户解决问题或达到目标所需的条件或能力。(2)系统或系统部件要满足合同、标准、规范或其它正式强制性文件所需具有的条件或能力。(3)反映上面(1)或(2)所描述的条件或能力的文档说明。上述定义包括从用户(外部)、从开发者(内部)角度来阐述需求。需求的层次业务需求(businessrequirement):反映组织机构或客户对系统、产品高层次的目标要求。用户需求(userrequirement):描述用户使用产品必须要完成的任务。功能需求(functionalrequirement):定义开发人员必须实现的软件功能。需求规格说明中还包括非功能需求。软件需求各组成部分之间关系业务需求用户需求功能需求系统需求质量属性其它非功能需求约束条件项目视图与范围文件使用实例文档软件需求规格说明高质量需求过程的获益开发后期和整个维护阶段的重做的工作大大减少Boehm发现可以节省成本68倍有研究认为可以节省成本200倍强调产品开发中的通力合作,面向市场,让用户积极参与,可以建立忠实的客户关系,避免在无用功能上白耗精力,弥补用户期望和开发者实际开发间的期望鸿沟采用系统方法将需求分配到各子系统可以简化集成有效的变更控制和影响分析能降低变更的负面影响清晰、无二义的需求文档有利于测试需求说明的特征完整性正确性可行性必要性划分优先级无二义性可验证性需求规格说明的特点完整性先用TBD标明缺项在开发前必须解决所有TBD一致性可修改性每项需求只在SRS中出现一次可追踪性结构、粒度方便设计、实现、测试的追踪客户的权利1要求分析人员使用符合客户语言习惯的表达2要求分析人员了解客户的业务及目标3要求分析人员编写软件需求规格说明4要求得到需求工作结果的解释说明5要求开发人员尊重你的意见6要求开发人员对需求及产品实施提供建议7描述产品易使用的特性8调整需求,允许重用已有的软件组件9要求对变更的代价提供真实可信的评估10获得满足客户功能和质量要求的系统客户的义务1给分析人员讲解你的业务2抽出时间清楚地说明并完善需求3准确而详细地说明需求4及时地作出决定5尊重开发人员的需求可行性及成本评估6划分需求优先级别7评审需求文档和原型8需求出现变更要马上联系9应遵守开发机构处理需求变更的过程10尊重开发人员采用的需求工程过程对签定需求协议的认识签约是客户同意需求的标志行为客户不应当忽略签约的严肃性开发方不应当因此拒绝变更签约应当建立在一个需求协议的基线上应当理解为:“我同意这份文档表达了目前我们对项目软件需求的了解。进一步的变更可在此基础上通过项目定义的变更过程来进行。我知道变更可能会使我们要重新协商成本、资源和项目时间工期任务等。”需求获取的内容在同用户的交流过程中收集各种用户的信息认真理解用户的各项要求澄清模糊排除不合理明确约束分析人员的两个信条第一:只有在彻底了解和掌握了用户的全部意图之后,才有可能建立起成功的软件系统。第二:一切从用户的角度着想,在条件允许的情况下,应尽可能地保证用户从所构造的软件系统中获得最大的利益。容易产生的问题交流障碍误解各方缺乏共同的语言“完整性”问题需求永远会变化用户本身的意见不一致错误的要求认识上混淆目标和需求建立模型的步骤分析现有系统和过程,建立物理模型抽取特征,建立旧系统的逻辑模型根据新的要求,补充和建立新的逻辑模型需求分析的内容提炼、分析和仔细审查已收集到的需求确保所有利益相关者都明白其含义并找出其中的错误、遗漏或其它不足的地方是从用户最初的非形式化需求到满足用户要求的软件产品的映射过程是对用户意图不断进行提示和判断的过程需求分析的过程绘制系统关联图创建用户接口(界面)原型分析需求可行性确定需求的优先级别为需求建立模型创建数据字典使用质量功能调配(QFD)明确哪些是客户最关心的特征需求规格说明的作用为用户、分析人员和设计人员之间的交流提供方便支持目标软件系统的确认控制软件开发进程软件需求规格说明文档条目1范围2引用文档3工程需求3.1外部接口需求3.2功能需求3.3内部接口3.4数据元素要求3.5适应性要求3.6容量和时间要求3.7安全要求3.8保密要求3.9设计约束3.10软件质量因素3.11人的工程需求3.12需求的可跟踪性4合格性需求4.1合格性方法4.2特殊的合格性需求5交付准备SRS编写风格(Kovitz1999)保持语句和段落的简短采取主动语态的表达方式编写具有正确的语法、拼写和标点的完整句子使用的术语和词汇表中所定义的应该一致需求陈述应该采用一致的样式,如“主体+动作+可观察的结果”避免使用模糊的、主观的术语以避免不确定性避免使用比较性的词汇需求验证审查需求文档以需求为依据编写测试用例编写用户手册确定判别产品合格的准则需求验证的内容一致性:任何需求不与其它需求矛盾可行性:现有技术条件下可以实现完整性:包括用户需要的每一个功能和性能有效性:正确有效,确实能够解决用户面对的问题知识培训培训需求分析人员培训软件需求的用户代表和管理人员让开发人员了解应用领域的基本概念编写项目术语汇编分析员的职责1)作为管理员、用户和顾客的顾问;2)从各种来源收集数据,并综合问题的解答;3)分析新的系统,并评价现有的系统;4)准备文档和管理报告;5)理解硬件和软件的界面;6)为了产生软件需求规格说明,必要时要进行一些研究工作;7)为编写软件需求规格说明主持座谈会;8)不断吸收先进技术。分析员的素质1)能够合乎逻辑地、象征性地、抽象地、创造性地思考问题;2)能作为小组中的一个成员很好地开展工作;3)熟悉计算机硬件和软件的能力;4)自觉遵守时间,能按规定的进度完成任务;5)在系统的分析和设计中能发挥其他人的作用;6)能保持教师和学生的双重身份,愿意培养其他人,而他本人亦能通过夜校、自学、培训班等不断提高;7)能够倾听别人的意见,但又能根据客观事实来作决策,而不是依赖别人的意见;8)熟悉商业和政策管理部门的组织、原则。分析员应该显示的性格特征1)善于领会一些抽象的概念,重新整理使之成为各种逻辑成分,并根据各种逻辑成分综合出问题的解决办法。2)善于从各种相应冲突或混淆的原始资料中汲取恰当的依据。3)能够理解用户——需求者的环境。4)具备把系统的硬件部分和(或)软件部分应用于用户——需求者环境的能力。5)具备良好的用书面或口头形式进行讨论及交换意见的能力。6)具有“既能看到树木,又能看到森林”的能力。需求管理确定需求变更控制过程建立变更控制委员会(CCB)进行需求变更影响分析跟踪所有受需求变更影响的工作产品建立需求基准版本和需求控制版本文档维护需求变更历史记录跟踪每项需求的状态衡量需求稳定性使用需求管理工具与需求分析相关的项目管理选择一种合适的软件开发模型基于需求的项目计划发生需求变更时协商项目约定文档化和管理与需求相关的风险跟踪需求工程耗费的工作量描述工具数据流图(DataFlowDiagram,简称DFD)控制流图(ControlFlowDiagram,简称CFD)状态转换图(StateTransitiondiagram,简称STD)数据字典(DataDictionary,简称DD)处理说明模型结构过程模型PSPECDFD控制模型CSPECCFD控制输入数据输出控制输出数据输入数据条件过程启动数据流图图符2.1打印数据流DataFlow加工处理Process外部实体ExternalEntity数据存储DataStore数据流图图符说明数据流:箭头表示数据流方向。一般在旁边标注数据流名。加工处理:对数据进行加工、处理和变换,从而实现某个功能或操作外部实体:表示要加工处理的数据是从外部得到或从外部提供,同时也是数据结果的接收者,可以是人、组织、其它系统数据存储:表示处理过程中存放各种数据的文件建立DFD的步骤由外向里:先画系统的输入输出,然后画系统的内部,再画处理的内部。由顶向下:顶层、中间层、底层数据流图逐层分解:从外向里顶层DFD用一个加工处理表示软件含所有相关外部实体含外部实体与软件中间的数据流不含数据存储唯一描述软件的作用范围,对总体功能、输入、输出进行抽象描述,反映软件和系统、环境的关系ABC软件abcd中间和底层DFD2.1aaa2.2bbb2.3cccddd数据DFD规则和注意事项数据存储不出现在顶层图中,外部实体通常不出现在顶层图外数据存储之间不应该有数据流仔细、恰当地为处理命名:处理+对象仔细、恰当地为数据流命名:反映整体含义对处理建立唯一、层次性编号每个处理通常要求既有输入又有输出一个DFD的处理个数为7±2(魔数7±2)不要试图让DFD反映处理的顺序检查数据流图的正确性a.数据守恒某个处理用以产生输出的数据没有输入给这个处理,即出现遗漏另一种是一个处理的某些输入并没有在处理中使用以产生输出b.数据存储(文件)的使用数据存储(文件)应被数据流图中的处理读和写,而不是仅读不写、或仅写不读c.父图和子图的平衡父子关系和平衡规则父图表示子图间的接口,即数据流的方向和数量子图代表父图中某个处理的细节子图个数不大于父图中的处理个数所有子图的输入、输出数据流和父图中相应处理的输入、输出数据流必须一致控制板传感器家庭安全软件电话线警报控制板显示警报类型传感器状态用户命令和数据显示数据电话号码信号与用户交互1配置系统2启/停系统3显示消息状态5处理口令4监控系统6配置信息用户命令和数据配置请求配置数据启/停口令配置数据配置数据启/停消息显示消息传感器信息有效标识消息传感器状态电话号码信号警报类型评价防备设置6.1显示格式化6.2生成警报信号6.3拨电话6.5读传感器6.4配置信息传感器标识,类型传感器状态电话号码配置数据传感器标识,定位警报数据传感器信息电话号码信号控制流图(CFD)2.1打印控制流ControlFlow加工处理Process外部实体ExternalEntity数据存储DataStore控制说明与用户交互1配置系统2启/停系统3显示消息状态5处理口令4监控系统6配置信息显示动作状态(完成、进行中)控制板控制板显示警报电话线传感器传感器事件闪烁标志警报状态时间溢出警报信号启/停开关数据字典(DD)数据字典是对所有与系统相关的数据元素的一个有组织的列表,以及精确的、严格的定义,使得用户和系统分析员对于输入、输出、存储成分和中间计算结果有共同的理解。数据字典把不同的需求文档和分析模型紧密结合在一起数据字典的内容DD包含的信息名称别名何处使用/如何使用内容描述补充信息数据的层次关系原数据元素组合项重复项选择项可选项数据字典基本符号=表示“等于”,“定义为”,“由什么构成”+表示“与”,“和”[|]表示“或”,即选择括号中用“|”号分隔的各项中的某一项{}表示“重复”,即括号中的项要重复若干次,重复次数的上下限也可以在括号边上标出()表示“可选”,即括号中的项可以没有**表示“注释”数据字典示例电话号码=[当地分机号|外地号码]当地分机号=[2001|2002…|2999]外地号码=9+[当地号码|长途号码]当地号码=前缀+访问的号码长途号码=(1)+区号+当地号码前缀=[795|799|874|877]访问的号码={[0|1|2|3|4|5|6|7|8|9]}4区号=状态转换图(STD)通过描述状态以及导致系统改变状态的事件来表示系统的行为STD可以被用来描述CSPECSTD的基本符号:(1)状态(2)转移STD示意系统在“状态1”当“事件1”发生时采取“动作1”将状态转移到“状态3”状态1状态3状态2事件1动作1事件2动作2事件3动作3事件4动作4读用户输入监控系统状态基于传感器事件的动作显示用户反馈闪烁标记引发显示消息与状态时间溢出引发与用户交互启/停开关引发监控系统无传感器事件引发监控系统传感器事件引发显示消息与状态启/

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论