资源预览内容
第1页 / 共76页
第2页 / 共76页
第3页 / 共76页
第4页 / 共76页
第5页 / 共76页
第6页 / 共76页
第7页 / 共76页
第8页 / 共76页
第9页 / 共76页
第10页 / 共76页
亲,该文档总共76页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
软件工程基础,第3章 需求分析,问题,什么是需求? 如何获取需求? 如何表达用户的需求? 谁负责完成需求分析?,本章目标,了解需求分析的任务及过程 了解需求获取方法 理解功能性需求和非功能性需求 掌握结构化需求分析的方法 能阅读和理解需求分析说明书,并掌握编写文档的要领。,团队成员的责任,分析人员: 主要负责与客户交互和需求。 开发人员:主要负责设计、实现和单元测试。 测试人员:主要负责功能、性能和系统测试。 项目经理: 主要负责持续的项目团队的跟踪并关注关键的交付产物。,本章内容,一、需求分析概述 二、需求分析任务 三、与用户沟通获取需求的方法 四、分析建模与规格说明 五、实体-联系图 六、数据规范化 七、状态转换图 八、其他图形工具 九、验证软件需求,需求分析定义? 需求分析是指开发人员要准确地理解用户的要求,进行细致的调查分析,将用户非形式化的需求陈述转化为完整的需求定义,再由需求定义转化为相应的软件需求规格说明书(即需求分析的结果)的过程。 需求分析是理解、分析和表达“系统必须做什么”的过程。 需求分析是为目标系统建立一个概念模型,是对需求的抽象描述。,需求分析概述,需求分析做什么? 准确地回答”系统必须做什么?”这个问题; 对系统提出完整、准确、清晰、具体的要求; 写出软件需求规格说明书; 用户要很好地参与到需求分析过程中来;(需求要不断迭代) 分析系统的”数据模型”、细化的“逻辑模型”和“行为模型”;(关键所在),Is What Not How,需求分析概述,需求分析的重要性 (1)许多大型应用系统的失败,最后均归结到需求分析: 要么获取需求的方法不当,使得需求分析不到位或不彻底,导致开发者反复多次地进行需求分析,致使设计、编码、测试无法顺利进行; 要么客户配合不好,导致客户对需求不确认,或客户需求不断变化,同样致使设计、编码、测试无法顺利进行。 (2)需求分析报告是客户、软件开发人员、软件测试人员和项目管理人员四者共同工作的基线,是项目测试的准则,是供方交付产品和需方验收产品的依据。 (3)需求分析要占用整个软件开发时间或工作量的30%左右。 (4)需求获取中的错误,属于软件开发中的早期错误,将给项目成功带来极大风险,会在后续的设计和实现中进行发散式的传播。 根据以上四项原因,常常派经验最丰富的人员去作项目需求。,需求分析概述,本章内容,一、需求分析概述 二、需求分析任务 三、与用户沟通获取需求的方法 四、分析建模与规格说明 五、实体-联系图 六、数据规范化 七、状态转换图 八、其他图形工具 九、验证软件需求,需求分析的任务,具体任务: 确定对系统的综合要求(系统需要什么?) 分析和设计系统的数据要求 在可行性分析的基础之上分析和设计系统的功能模型 分析和设计描述软件动态变化的行为模型(系统的状态是如何改变的) 编写软件需求规格说明书,可能需要修正系统开发计划 编写初步软件测试计划,功能要求 性能要求 可靠性和可用性要求 出错处理要求 接口要求 约束 逆向要求 扩展要求,基本的、核心的。定义系统做什么。,时间、存储量、安全性。反应系统工作时的特性。,故障率、可用时间,对环境错误应该如何响应,用户(界面)、硬件、软件、通信,限制条件、精度、工具和语言,对系统可能的扩充或修改,系统不应该做什么,用于澄清事实。,1、确定系统的综合要求,需求分析的任务,讨论,要建立一个图书管理系统,用户提出如下要求,请分析以下描述,它们是否属于图书管理系统的用户需求?如果是需求,它是哪种需求? 普通读者必须注册成合法用户才可以使用该系统。 用户可以预订目前借不到的图书资料。 用户不希望自己的借阅记录被他人查阅。 系统通过ADO 与图书资料数据库连接,并从图书资料数据表中获得图书资料的基本信息。 系统应该具有良好的可扩展性。,软件系统的本质是对数据进行处理。 通常要求建立完整的概念模型(E-R模型) 数据字典缺乏直观性(考虑图形化描述复杂数据的组成) 必要时需要对数据模型进行规范化(范式) 阶段性成果: E-R图 层次方框图或Warnier图,2、分析和设计系统的数据要求,需求分析的任务,确定了系统综合要求和数据要求,可导出详细的系统功能模型。 阶段性成果: 细化后并经过多次校验的数据流图(DFD) 与数据流图相辅相存的数据字典(DD) 概要性的描述主要加工的处理算法(IPO),3、分析和设计系统的功能模型,需求分析的任务,4、分析和设计系统的行为模型 确定系统的动态变化的方式,采用状态转换图来描述。 阶段性成果: 状态转换图(STD),需求分析的任务,5、编写需求规格说明书和开发计划 根据上述的阶段性成果,汇总为“软件需求规格说明书”,以提交评审 在可行性分析的基础上,较准确地估计系统的开发成本和进度 修正开发计划,需求分析的任务,需求分析的任务-举例,图书馆的需求分析流程,修改开发计划,需求分析的任务,总结: 通俗地说,需求分析的任务就是准确地定义未来系统的目标,确定为了满足用户需求的系统必须做什么。用 规范的形式准确地表达用户的需求。 需求分析阶段关键在于“理解”和“表达”。 “理解”是开发人员对系统需求的理解 (1)挖掘用户需求; (2)修正需求。 “表达”是对理解用逻辑模型描述出来,一方面能让用户看懂,另一方面能让程序员理解。,需求分析任务,总结:,物理模型到逻辑模型举例,问题描述:学校教材科根据业务的需要,建立一个学校教材购销管理系统,提高教材采购、销售和信息管理的效率。,学生,张秘书 301,购书单,王会计 302,张秘书 301,赵保管 303,学生,购书证明,发票,领书单,书,学生,审 查有效性,购书单,开发票,开领书单,发书,学生,有 效购书单,发票,领书单,书,学生,审查并 计算金额,购书单,打印领书单,学生,已交款证明,领书单,2)去掉具体模型中的非本质因素,抽象出当前系统的逻辑模型,1)通过对现实环境的调查研究,获得当前系统的具体模型,3)分析当前系统与目标系统的差别,建立目标系统的逻辑模型。,本章内容,一、需求分析概述 二、需求分析任务 三、与用户沟通获取需求的方法 四、分析建模与规格说明 五、实体-联系图 六、数据规范化 七、状态转换图 八、其他图形工具 九、验证软件需求,需求获取是否彻底与成功,直接关系到软件开发的成败。 需求获取为什么难? (1)用户需求具有动态性,即需求的不稳定性:在整个软件生命周期内,需求会随着时间的进展而有所变化。 (2)用户需求具有模糊性:由于用户的需求表达不很清楚也不够明确。,与用户沟通获取需求的方法,1、需求获取技术 需求获取的关键在于通过与用户的沟通和交流,收集和理解用户的各项要求。 需求获取技术 用户面谈 问卷调查 现场考察 数据流图(基于用例的方法) 简易的应用规格说明技术 原型化方法,访谈,与用户沟通获取需求的方法,与用户沟通获取需求的方法,一、访谈 1) 用户面谈 一种理解商业功能和商业规则的最有效方法 面谈过程需要认真的计划和准备 面谈之前 确立面谈目的 确定要包括的相关用户 确定参加会议的项目小组成员 建立要讨论的问题和要点列表 复查有关文档和资料 确立时间和地点 通知所有参加者有关会议的目的、时间和地点,与用户沟通获取需求的方法,信息收集中的主要问题,与用户沟通获取需求的方法,一、访谈 2)问卷调查 可用于确认假设和收集统计倾向数据 问卷需要快速回答,允许匿名方式 在完成最初的面谈和分析后,作为一项协作技术可以收到良好的效果。,与用户沟通获取需求的方法,一、访谈 3)现场观察商业过程和工作流程 掌握用户如何实际使用一个系统以及到底用户需要哪些信息,最好的办法是亲自观察用户是如何完成实际工作的。 一般方法 对办公室进行快速浏览,了解布局、工作流程总体情况。 观察用户是如何实际完成他们的工作,理解用户实际使用计算机系统和处理事务的细节。 像用户一样接受训练和做实际工作,发现关键问题和瓶颈。,与用户沟通获取需求的方法,2、面向数据流的自顶向下求精(结构化分析) 数据是需求分析的起点 系统分析员一定要搞清楚数据的细节 分析的对象:高层数据流图(什么阶段得到的?) 主要目标:把数据流和数据存储定义到元素级别(不可分解为止),数据的来源、去向、数据结构定义等,2、面向数据流的自顶向下求精 从数据流图的输出端着手分析,这是因为系统的基本功能是产生这些输出的关键原因。 输出数据决定了系统必须具有的最基本的组成元素(包括功能、数据结构等)。,自顶向下,逐层细化的方法,与用户沟通获取需求的方法,与用户沟通获取需求的方法,2、面向数据流的自顶向下求精 可行性分析中给出了数据流图的分析方法,其目的主要是导出较高层次较粗糙的数据流图 为了准确地收集需求,采用本章的从数据流图的输出向输入的回溯方法。,与用户沟通获取需求的方法,2、面向数据流的自顶向下求精 回溯过程中需要回答两个问题 输出数据的组成? 输出数据的来源?,深入调查,外部输入或系统生成,与用户沟通获取需求的方法,加工: f g k,输入数据,输出数据,输入数据:x,y,输出数据:a,b,c,d,af(x,y) bg(x) c? dk(w),结论: 1.缺乏一个得到输出数据c的加工 2.缺少一个输入数据,例子回溯分析法,与用户沟通获取需求的方法,2、面向数据流的自顶向下求精 回溯时常遇到的问题:为了得到某个数据元素需要用到数据流图中还没有的数据元素,或者得出这个数据元素要用的算法尚不完全清楚。 因此,需要向用户等有关人员请教,使分析员对目标系统的认识更深入具体,更多的数据元素被划分出来,更多的算法搞清楚了。 把分析过程中得到的数据元素记录在数据字典中,把对算法的简明描述记录在IPO图中,并添加到数据流图的适当位置上。,数据流图是帮助用户复查需求的极好工具; 分析员向用户解释数据的来源(组成和处理,反映了分析员对系统已有的认识。) 用户要及时纠正和补充分析员的认识 它验证了已知的元素,补充了未知的元素,填补了文档中的空白; 分析员对系统的认识是一个螺旋式上升的过程。,与用户沟通获取需求的方法,需求分析的过程示图,与用户沟通获取需求的方法,面向数据流方法的分析举例,来源、数据组成是什么?,来源:由哪个加工产生或从哪个文件读出? 数据组成:查数据字典确定包括哪些数据项?,面向数据流方法的分析举例,名字:定货报表,别名:定货信息,描述:每天一次送给采购员的,需要定货的零件表,定义:定货报表,= 零件编号 +零件名称+,定货数量+目前价格+主要供应商+次要供应商,位置:定货报告,定货信息,库存清单,逐一确定元素的来源,面向数据流方法的分析的应用,仓库管理员,采购员,1 处理 事务,2 产生 报表,事务,定货报表,库存清单,D1,定货信息,D2,1,2,3,4,6,5,包含零件编号、名称、目前价格,形成定货数量,面向数据流方法的分析举例,仓库 管理员,采购员,1.1 接收 事务,2 产生 报表,事务,定货报表,库存清单,D1,定货信息,D2,1.2 更新 库存,1.3 处理 定货,事务,库存信息,1,2,3,5,6,4,8,7,3、简易的应用规格说明技术 前两种方法中,用户比较被动 本技术是一种面向团队的需求收集方法,是一种主流技术 它提倡用户与开发者密切合作、共同标识问题、提出解决方案,确定基本需求,与用户沟通获取需求的方法,初步访谈,待解决问题的范围和方案 分别写产品需求,召开讨论会,是否需要这个功能点以及对需求进行组合,针对每个议题制定一统一的需求列表,分会讨论,单独议题需求列表的讨论,汇总需求,完整的需求规格说明书,与用户沟通获取需求的方法,简易的应用规格说明技术流程 要求开发者与用户不分彼此,齐心协力,密切合作,3、简易的应用规格说明技术,4、快速原型法 快速建立起来的旨在演示目标系统主要功能的可运行的程序。 它是最准确、有效
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号