第3章需求分析剖析

上传人:今*** 文档编号:106892996 上传时间:2019-10-16 格式:PPT 页数:76 大小:1.04MB
返回 下载 相关 举报
第3章需求分析剖析_第1页
第1页 / 共76页
第3章需求分析剖析_第2页
第2页 / 共76页
第3章需求分析剖析_第3页
第3页 / 共76页
第3章需求分析剖析_第4页
第4页 / 共76页
第3章需求分析剖析_第5页
第5页 / 共76页
点击查看更多>>
资源描述

《第3章需求分析剖析》由会员分享,可在线阅读,更多相关《第3章需求分析剖析(76页珍藏版)》请在金锄头文库上搜索。

1、软件工程基础,第3章 需求分析,问题,什么是需求? 如何获取需求? 如何表达用户的需求? 谁负责完成需求分析?,本章目标,了解需求分析的任务及过程 了解需求获取方法 理解功能性需求和非功能性需求 掌握结构化需求分析的方法 能阅读和理解需求分析说明书,并掌握编写文档的要领。,团队成员的责任,分析人员: 主要负责与客户交互和需求。 开发人员:主要负责设计、实现和单元测试。 测试人员:主要负责功能、性能和系统测试。 项目经理: 主要负责持续的项目团队的跟踪并关注关键的交付产物。,本章内容,一、需求分析概述 二、需求分析任务 三、与用户沟通获取需求的方法 四、分析建模与规格说明 五、实体-联系图 六、

2、数据规范化 七、状态转换图 八、其他图形工具 九、验证软件需求,需求分析定义? 需求分析是指开发人员要准确地理解用户的要求,进行细致的调查分析,将用户非形式化的需求陈述转化为完整的需求定义,再由需求定义转化为相应的软件需求规格说明书(即需求分析的结果)的过程。 需求分析是理解、分析和表达“系统必须做什么”的过程。 需求分析是为目标系统建立一个概念模型,是对需求的抽象描述。,需求分析概述,需求分析做什么? 准确地回答”系统必须做什么?”这个问题; 对系统提出完整、准确、清晰、具体的要求; 写出软件需求规格说明书; 用户要很好地参与到需求分析过程中来;(需求要不断迭代) 分析系统的”数据模型”、细

3、化的“逻辑模型”和“行为模型”;(关键所在),Is What Not How,需求分析概述,需求分析的重要性 (1)许多大型应用系统的失败,最后均归结到需求分析: 要么获取需求的方法不当,使得需求分析不到位或不彻底,导致开发者反复多次地进行需求分析,致使设计、编码、测试无法顺利进行; 要么客户配合不好,导致客户对需求不确认,或客户需求不断变化,同样致使设计、编码、测试无法顺利进行。 (2)需求分析报告是客户、软件开发人员、软件测试人员和项目管理人员四者共同工作的基线,是项目测试的准则,是供方交付产品和需方验收产品的依据。 (3)需求分析要占用整个软件开发时间或工作量的30%左右。 (4)需求获

4、取中的错误,属于软件开发中的早期错误,将给项目成功带来极大风险,会在后续的设计和实现中进行发散式的传播。 根据以上四项原因,常常派经验最丰富的人员去作项目需求。,需求分析概述,本章内容,一、需求分析概述 二、需求分析任务 三、与用户沟通获取需求的方法 四、分析建模与规格说明 五、实体-联系图 六、数据规范化 七、状态转换图 八、其他图形工具 九、验证软件需求,需求分析的任务,具体任务: 确定对系统的综合要求(系统需要什么?) 分析和设计系统的数据要求 在可行性分析的基础之上分析和设计系统的功能模型 分析和设计描述软件动态变化的行为模型(系统的状态是如何改变的) 编写软件需求规格说明书,可能需要

5、修正系统开发计划 编写初步软件测试计划,功能要求 性能要求 可靠性和可用性要求 出错处理要求 接口要求 约束 逆向要求 扩展要求,基本的、核心的。定义系统做什么。,时间、存储量、安全性。反应系统工作时的特性。,故障率、可用时间,对环境错误应该如何响应,用户(界面)、硬件、软件、通信,限制条件、精度、工具和语言,对系统可能的扩充或修改,系统不应该做什么,用于澄清事实。,1、确定系统的综合要求,需求分析的任务,讨论,要建立一个图书管理系统,用户提出如下要求,请分析以下描述,它们是否属于图书管理系统的用户需求?如果是需求,它是哪种需求? 普通读者必须注册成合法用户才可以使用该系统。 用户可以预订目前

6、借不到的图书资料。 用户不希望自己的借阅记录被他人查阅。 系统通过ADO 与图书资料数据库连接,并从图书资料数据表中获得图书资料的基本信息。 系统应该具有良好的可扩展性。,软件系统的本质是对数据进行处理。 通常要求建立完整的概念模型(E-R模型) 数据字典缺乏直观性(考虑图形化描述复杂数据的组成) 必要时需要对数据模型进行规范化(范式) 阶段性成果: E-R图 层次方框图或Warnier图,2、分析和设计系统的数据要求,需求分析的任务,确定了系统综合要求和数据要求,可导出详细的系统功能模型。 阶段性成果: 细化后并经过多次校验的数据流图(DFD) 与数据流图相辅相存的数据字典(DD) 概要性的

7、描述主要加工的处理算法(IPO),3、分析和设计系统的功能模型,需求分析的任务,4、分析和设计系统的行为模型 确定系统的动态变化的方式,采用状态转换图来描述。 阶段性成果: 状态转换图(STD),需求分析的任务,5、编写需求规格说明书和开发计划 根据上述的阶段性成果,汇总为“软件需求规格说明书”,以提交评审 在可行性分析的基础上,较准确地估计系统的开发成本和进度 修正开发计划,需求分析的任务,需求分析的任务-举例,图书馆的需求分析流程,修改开发计划,需求分析的任务,总结: 通俗地说,需求分析的任务就是准确地定义未来系统的目标,确定为了满足用户需求的系统必须做什么。用 规范的形式准确地表达用户的

8、需求。 需求分析阶段关键在于“理解”和“表达”。 “理解”是开发人员对系统需求的理解 (1)挖掘用户需求; (2)修正需求。 “表达”是对理解用逻辑模型描述出来,一方面能让用户看懂,另一方面能让程序员理解。,需求分析任务,总结:,物理模型到逻辑模型举例,问题描述:学校教材科根据业务的需要,建立一个学校教材购销管理系统,提高教材采购、销售和信息管理的效率。,学生,张秘书 301,购书单,王会计 302,张秘书 301,赵保管 303,学生,购书证明,发票,领书单,书,学生,审 查有效性,购书单,开发票,开领书单,发书,学生,有 效购书单,发票,领书单,书,学生,审查并 计算金额,购书单,打印领书

9、单,学生,已交款证明,领书单,2)去掉具体模型中的非本质因素,抽象出当前系统的逻辑模型,1)通过对现实环境的调查研究,获得当前系统的具体模型,3)分析当前系统与目标系统的差别,建立目标系统的逻辑模型。,本章内容,一、需求分析概述 二、需求分析任务 三、与用户沟通获取需求的方法 四、分析建模与规格说明 五、实体-联系图 六、数据规范化 七、状态转换图 八、其他图形工具 九、验证软件需求,需求获取是否彻底与成功,直接关系到软件开发的成败。 需求获取为什么难? (1)用户需求具有动态性,即需求的不稳定性:在整个软件生命周期内,需求会随着时间的进展而有所变化。 (2)用户需求具有模糊性:由于用户的需求

10、表达不很清楚也不够明确。,与用户沟通获取需求的方法,1、需求获取技术 需求获取的关键在于通过与用户的沟通和交流,收集和理解用户的各项要求。 需求获取技术 用户面谈 问卷调查 现场考察 数据流图(基于用例的方法) 简易的应用规格说明技术 原型化方法,访谈,与用户沟通获取需求的方法,与用户沟通获取需求的方法,一、访谈 1) 用户面谈 一种理解商业功能和商业规则的最有效方法 面谈过程需要认真的计划和准备 面谈之前 确立面谈目的 确定要包括的相关用户 确定参加会议的项目小组成员 建立要讨论的问题和要点列表 复查有关文档和资料 确立时间和地点 通知所有参加者有关会议的目的、时间和地点,与用户沟通获取需求

11、的方法,信息收集中的主要问题,与用户沟通获取需求的方法,一、访谈 2)问卷调查 可用于确认假设和收集统计倾向数据 问卷需要快速回答,允许匿名方式 在完成最初的面谈和分析后,作为一项协作技术可以收到良好的效果。,与用户沟通获取需求的方法,一、访谈 3)现场观察商业过程和工作流程 掌握用户如何实际使用一个系统以及到底用户需要哪些信息,最好的办法是亲自观察用户是如何完成实际工作的。 一般方法 对办公室进行快速浏览,了解布局、工作流程总体情况。 观察用户是如何实际完成他们的工作,理解用户实际使用计算机系统和处理事务的细节。 像用户一样接受训练和做实际工作,发现关键问题和瓶颈。,与用户沟通获取需求的方法

12、,2、面向数据流的自顶向下求精(结构化分析) 数据是需求分析的起点 系统分析员一定要搞清楚数据的细节 分析的对象:高层数据流图(什么阶段得到的?) 主要目标:把数据流和数据存储定义到元素级别(不可分解为止),数据的来源、去向、数据结构定义等,2、面向数据流的自顶向下求精 从数据流图的输出端着手分析,这是因为系统的基本功能是产生这些输出的关键原因。 输出数据决定了系统必须具有的最基本的组成元素(包括功能、数据结构等)。,自顶向下,逐层细化的方法,与用户沟通获取需求的方法,与用户沟通获取需求的方法,2、面向数据流的自顶向下求精 可行性分析中给出了数据流图的分析方法,其目的主要是导出较高层次较粗糙的

13、数据流图 为了准确地收集需求,采用本章的从数据流图的输出向输入的回溯方法。,与用户沟通获取需求的方法,2、面向数据流的自顶向下求精 回溯过程中需要回答两个问题 输出数据的组成? 输出数据的来源?,深入调查,外部输入或系统生成,与用户沟通获取需求的方法,加工: f g k,输入数据,输出数据,输入数据:x,y,输出数据:a,b,c,d,af(x,y) bg(x) c? dk(w),结论: 1.缺乏一个得到输出数据c的加工 2.缺少一个输入数据,例子回溯分析法,与用户沟通获取需求的方法,2、面向数据流的自顶向下求精 回溯时常遇到的问题:为了得到某个数据元素需要用到数据流图中还没有的数据元素,或者得

14、出这个数据元素要用的算法尚不完全清楚。 因此,需要向用户等有关人员请教,使分析员对目标系统的认识更深入具体,更多的数据元素被划分出来,更多的算法搞清楚了。 把分析过程中得到的数据元素记录在数据字典中,把对算法的简明描述记录在IPO图中,并添加到数据流图的适当位置上。,数据流图是帮助用户复查需求的极好工具; 分析员向用户解释数据的来源(组成和处理,反映了分析员对系统已有的认识。) 用户要及时纠正和补充分析员的认识 它验证了已知的元素,补充了未知的元素,填补了文档中的空白; 分析员对系统的认识是一个螺旋式上升的过程。,与用户沟通获取需求的方法,需求分析的过程示图,与用户沟通获取需求的方法,面向数据

15、流方法的分析举例,来源、数据组成是什么?,来源:由哪个加工产生或从哪个文件读出? 数据组成:查数据字典确定包括哪些数据项?,面向数据流方法的分析举例,名字:定货报表,别名:定货信息,描述:每天一次送给采购员的,需要定货的零件表,定义:定货报表,= 零件编号 +零件名称+,定货数量+目前价格+主要供应商+次要供应商,位置:定货报告,定货信息,库存清单,逐一确定元素的来源,面向数据流方法的分析的应用,仓库管理员,采购员,1 处理 事务,2 产生 报表,事务,定货报表,库存清单,D1,定货信息,D2,1,2,3,4,6,5,包含零件编号、名称、目前价格,形成定货数量,面向数据流方法的分析举例,仓库

16、管理员,采购员,1.1 接收 事务,2 产生 报表,事务,定货报表,库存清单,D1,定货信息,D2,1.2 更新 库存,1.3 处理 定货,事务,库存信息,1,2,3,5,6,4,8,7,3、简易的应用规格说明技术 前两种方法中,用户比较被动 本技术是一种面向团队的需求收集方法,是一种主流技术 它提倡用户与开发者密切合作、共同标识问题、提出解决方案,确定基本需求,与用户沟通获取需求的方法,初步访谈,待解决问题的范围和方案 分别写产品需求,召开讨论会,是否需要这个功能点以及对需求进行组合,针对每个议题制定一统一的需求列表,分会讨论,单独议题需求列表的讨论,汇总需求,完整的需求规格说明书,与用户沟通获取需求的方法,简易的应用规格说明技术流程 要求开发者与用户不分彼此,齐心协力,密切合作,3、简易的应用规格说明技术,4、快速原型法 快速建立起来的旨在演示目标系统主要功能的可运行的程序。 它是最准确、有效

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号