软件工程的需求分析ppt课件.ppt
《软件工程的需求分析ppt课件.ppt》由会员分享,可在线阅读,更多相关《软件工程的需求分析ppt课件.ppt(159页珍藏版)》请在三一办公上搜索。
1、软 件 工 程,1,第三章 需求分析,获取需求 1.需求获取原则 2.需求获取技术 3.需求调研方法 4.需求获取步骤 5.需求表达与整理 6.需求确认需求分析 1.需求分析目标 2.需求分析任务 3.需求分析方法 4.需求分析过程,5.需求建模 1)功能建模 2)数据建模 3)行为建模 6.结构化分析方法 - E-R图 - 数据字典 - 状态-迁移图 7.实例需求规格说明书需求评审,软 件 工 程,2,3.1 需求获取,1.需求获取原则 2.需求获取技术 3.需求调研方法 4.需求获取步骤 5.需求表达与整理 6.需求确认,软 件 工 程,3,3.1.1 需求定义,需求定义就是识别用户的要求
2、系统分析过程的第一步就是识别用户要求。分析员必须考虑以下问题:,功能和性能 可靠性和质量 总的系统目标 成本与进度限制,制造需求 市场与竞争情况 有效的技术 将来可能的扩充,识别希望的功能和性能范围; 确定系统的功能、性能、约束和接口;,软 件 工 程,4,3.1.2. 需求获取的基本原则,深入浅出 需求获取要尽可能全面、细致。获取的需求是个全集,系统真正实现的是个子集。 细致地调研并不表明在分析时将调研内容都纳入到新系统中, 但有利于以后的扩充。以流程为主线 在与用户交流的过程中,应该用流程将所有的内容串起来。如信息、组织结构、处理规则等。这样便于交流沟通。,软 件 工 程,5,流程的描述既
3、要有宏观,又要有微观。即要强调总体的业务流程、全生存期的业务流程,又要对流程细化,有分支的业务流程。需求获取可能是软件开发中最困难、最关键、最易出错及最需要交流的方面。表现在: 需求的不稳定性:在整个软件生存周期内软件需求会随着时间的推移发生变化; 需求的不准确性:用户和开发人员的认识会随着使用系统实现业务流程的实践逐步提高,一开始不可能设想得面面俱到。需求获取只有通过有效的客户/开发者的合作才能成功。,软 件 工 程,6,3.1.3 需求获取技术,需求获取是在问题及其最终解决方案之间架设桥梁的第一步。获取需求的一个必不可少的结果是对项目中描述的客户需求的普遍理解。一旦理解了需求,分析人员、开
4、发人员和客户就能探索出描述这些需求的多种解决方案。需求获取技术包括两方面的工作: 建立获取用户要求的方法的框架; 支持和监控需求获取的过程的机制。,软 件 工 程,7,1. 弄清软件需求的层次,业务需求反映了组织或客户开展相关业务的工作流和业务规则,是对系统、产品高层次的目标要求,与该组织或客户的业务领域有关。用户需求 描述用户使用软件需要完成哪些任务,可通过用例 (use case) 图或场景说明加以阐明。功能非功能需求 定义了开发人员必须实现的软件功能,而非功能需求如表所示:,软 件 工 程,8,2. 产品功能、性能要求及过程要求,软 件 工 程,9,3.1.4. 需求调研的方法,调研用户
5、的组织结构、岗位设置、职责定义,从功能上区分有多少个子系统,划分系统的大致范围,明确系统的目标。调研每个子系统的工作流程、功能与处理规则,收集原始信息资料,用数据流来表示物流、资金流、信息流三者的关系。 对调研内容事先准备,针对不同管理层次的用户询问不同的问题,列出问题清单。将操作层、管理层、决策层的需求既联系又区分开来,形成一个需求的层次。,软 件 工 程,10,对与用户沟通的情况及时总结归纳,整理调研结果,初步构成需求基线。若基线符合要求,则需求获取完成。需求调研的主要手段: 发调查表; 召开调查会; 向用户领域的专家个别咨询; 实地考察, 跟踪现场业务流程; 查阅与待开发系统有关的资料;
6、 使用各种调查工具等。,软 件 工 程,11,由于软件开发项目和组织文化的不同,对于需求开发没有一个简单的、公式化的途径。下面列出9个步骤,用以指导需求获取活动。,3.1.5 需求获取的步骤,软 件 工 程,12,定义项目的视图和范围 包括组织结构图、各部门的岗位/角色列表。确定用户类 包括人员/责任矩阵。确定目标系统的业务工作流 包括物流、资金流、信息流,建立业务工作流模型。运用需求获取技术开发用例(或数据流图)并设置优先级 用以掌握主要业务规则。收集来自用户的质量特性信息和其他非功能需求 将性能、安全性、可靠性等需求和其他设计约束结合业务规则,形成功能需求。,软 件 工 程,13,分类在用
7、例(或数据流图)中涉及的数据 包括数据的组成和数据之间的关系。详细拟订用例(或数据流图) 建立功能模型,并进行审查,用以澄清需求获取的参与者对需求的理解。开发并评估界面原型 设想输入设备、输出设备、显示风格、显示方式、输出格式等,建立接口规范和信息流传输规则。从功能描述中开发概念测试用例 用测试用例来验证用例(或数据流图)、功能需求和原型。,软 件 工 程,14,3.1.6. 需求整理与表达的方法,采用穷举方法可以避免遗漏。采用归纳方法,通过对各种情况进行综合分类可以使问题条理化。采用抽象方法,可以发现问题的实质,抓住问题的主要矛盾,忽略其次要矛盾。需求整理可以多种手段共用,如组织结构图、业务
8、流程图、多叉树、关系矩阵、文字叙述、表格、图形等。需求描述包括组织结构与岗位定义、业务流程、处理规则、数据项、功能以及上述5个方面的关系。,软 件 工 程,15,3.1.7. 需求确认,将整理好的用户需求说明书让用户确认,软 件 工 程,16,3.2 需求分析,需求分析是软件定义时期的最后一个阶段,它的基本任务是准确理解用户的要求,进行细致的调查分析,将用户非形式的需求陈述转化为完整的需求定义,再由需求定义转换到相应的形式功能规约(需求规格说明书)。即准确地回答“系统必须做什么?”这个问题,软 件 工 程,17,软件开发是要实现目标系统的物理模型。需求分析的任务就是借助于当前系统的逻辑模型导出
9、目标系统的逻辑模型,解决目标系统“做什么”的问题。,软 件 工 程,18,需要能够表达和理解问题的信息域和功能域 信息流:数据和控制通过一个系统时的变化方式。两个功能之间的数据/控制传递就确定了功能间的接口。 信息内容:单个数据或控制对象,它们构成了某个更大的由软件变换生成的信息的集合。 信息结构:各种数据和控制项的内部组织。,3.2.1 需求分析的原则,软 件 工 程,19,以层次化的方式对问题进行分解和不断细化,纵向分解,横向分解,软 件 工 程,20,计算机系统工程,基于计算机的系统 系统是某些元素的一个集合或排列,这些元素被组织起来以实现某种方法,过程或借助处理信息进行控制。分析员必须
10、考虑以下问题: 基于计算机的系统的系统元素包括硬件、软件、人、数据库、文档和过程。,软 件 工 程,21,基于计算机系统的系统元素,输入,系统,过程,硬件,软件,文档,人,数据库,输出,软 件 工 程,22,软件 计算机程序、数据结构、相关文档;硬件 电子计算设备(如CPU,存储器)和外部机电设备(如传感器、马达等);人 硬件和软件的用户;数据库 一个大型的有组织的信息集合;文档 手册、表格和其它用以描述系统使用和操作的信息;过程 定义每一种系统元素的特定使用步骤,或系统驻留的过程性环境。,软 件 工 程,23,系统的层次结构,基于计算机的系统本身可以成为一个更大的基于计算机系统中的一个元素,
11、并称为那个更大系统的宏元素。,软 件 工 程,24,计算机系统工程,计算机系统工程是一个问题求解活动,目的是揭示、分析所期望的功能,并把它们分配到各个单独的系统元素中去。与用户合作确认用户的目标和约束;导出功能、性能、接口、设计约束和信息结构的表示;将它们分配到每一个系统元素中。,软 件 工 程,25,3.2.2 系统分析的目标,识别用户要求评价系统的可行性进行经济分析和技术分析把功能分配给硬件、软件、人、数据库和其他系统元素建立成本和进度限制生成系统规格说明,形成所有后续工程的基础,软 件 工 程,26,系统建模,为了开发系统模型,使用了“结构模板”。系统工程师把各种系统元素分配到模板内的五
12、个处理区域:用户界面;输入;系统功能与控制;输出;维护与自测试。结构模板能帮助分析员建立一个分层结构。,软 件 工 程,27,系统结构上下文图ACD则位于层次结构的顶层(Architecture Context Diagram),软 件 工 程,28,系统结构上下文图建立了待实现系统与系统运行上下文环境之间的信息边界。ACD 定义了 系统使用的所有信息的外部产生者 由系统建立的所有信息的外部使用者 通过接口进行通信或实施维护与自测试的所有实体。,软 件 工 程,29,例:CLSS,抽出功能有:1) 读入条形码输入信息; 2) 读入脉冲计数器信号; 3) 译零件码数据; 4) 数据库查询; 5)
13、 决定料箱位置; 6) 对分流机构生成控制信号。,软 件 工 程,30,CLSS的ACD图,软 件 工 程,31,每一个方框表示一个外部实体,即系统信息的产生者或使用者。整个系统(或位于下层的专门子系统)的符号用圆角矩形表示。因此,CLSS在ACD中间的处理与控制区域内表示。在ACD中附加名字的箭头表示外部实体与CLSS系统之间传送的(数据或控制)信息。外部实体“条形码阅读器”产生条形码输入信息。本质上,ACD把任一系统都置于它的外部环境中。,软 件 工 程,32,系统工程师对ACD图中的矩形详细分析,加细ACD图。建立各种专门子系统完成传输线分类系统(CLSS)的功能。专门子系统定义在从AC
14、D导出的系统结构流程图AFD中(Architecture Flow Diagram)。信息流穿越ACD的各个矩形,可帮助系统工程师开发AFD更详细的CLSS“图解”。系统结构流程图给出了各个专门子系统和重要的(数据与控制)信息流。,软 件 工 程,33,软 件 工 程,34,结构模板把子系统处理划分成五个处理区域。每个子系统可以包含一个或多个系统元素(如硬件、软件、人),它们是系统工程师分配给子系统的。系统结构模板还可能包含一个“结构字典”,列出在模板中出现的每一个信息项及其说明。结构字典是需求中“数据字典”的系统级版本。,软 件 工 程,35,软 件 工 程,36,3.2 软件需求分析,需求
15、分析是软件定义时期的最后一个阶段,它的基本任务是准确地回答“系统必须做什么?”这个问题。,软 件 工 程,37,软 件 工 程,38,需求分析的任务是发现、求精、建模和规格说明的过程。包括确定对系统的综合要求(发现) ;细化在项目开发计划中规定的软件范围;分析系统的数据要求; 创建所需的数据模型、功能模型和控制模型; 分析可选择的解决方案,并将它们分配到各个软件成分中去。,3.2.1 需求分析的任务,软 件 工 程,39,需求分析的过程可以分成四个阶段:问题识别(需求获取)刻划出软件的功能和性能需求;明确用户界面需求;指明软件与其他系统元素的接口需求;建立软件必须满足的约束。从系统角度来理解软
16、件并评审用于产生计划估算的软件范围是否恰当;确定对目标系统的需求;提出这些需求实现条件,以及需求应达到的标准;修正系统开发计划。,3.2.2 需求分析的过程,软 件 工 程,40,问题识别的另一项工作是建立分析所需要的通信途径,以保证能顺利地对问题进行分析。,管理人员,用户,分析人员,软件开发组,软件需求说明,软件实施计划,原型,软件实施计划,软件实施计划,软件需求说明,软件需求说明,原型,原型,软 件 工 程,41,分析与综合,导出软件的逻辑模型(需求建模) 进行各种要求的一致性检查;逐步细化所有的软件功能;分解数据域,分配给各个子功能;找出系统各成分之间的联系、接口特性和设计限制。判断是否
17、存在不合理的用户要求或用户尚未提出的潜在要求。综合成系统的解决方案,给出目标系统的详细逻辑模型。,软 件 工 程,42,编制需求分析阶段的文档软件需求规格说明;初步的用户手册;确认测试计划;修改和完善软件开发计划。需求评审作为需求分析阶段工作的复查手段,应该对功能的正确性、文档的一致性、完备性、准确性和清晰性,以及其它需求给予评价。,软 件 工 程,43,给出系统的逻辑视图和物理视图 软件需求的逻辑视图给出的是软件要达到的功能和要处理的数据之间的关系,而不是实现的细节。 软件需求的逻辑描述是软件设计的基础。 软件需求的物理视图给出的是处理功能和数据结构的实际表现形式,这往往是由设备本身决定的,
18、因此推迟到设计阶段考虑。,软 件 工 程,44,5. 需求整理与表达的方法,采用穷举方法可以避免遗漏。采用归纳方法,通过对各种情况进行综合分类可以使问题条理化。采用抽象方法,可以发现问题的实质,抓住问题的主要矛盾,忽略其次要矛盾。需求整理可以多种手段共用,如组织结构图、业务流程图、多叉树、关系矩阵、文字叙述、表格、图形等。需求描述包括组织结构与岗位定义、业务流程、处理规则、数据项、功能以及上述5个方面的关系。,软 件 工 程,45,3.3 常用的分析方法,面向数据流的结构化分析方法 (SA)面向数据结构的Jackson方法 (JSD)面向数据结构的结构化数据系统开发方法 (DSSD)面向对象的
19、分析方法 (OOA) 等,软 件 工 程,46,结构化分析方法最初只是着眼于数据流,自顶向下,逐层分解,建立系统的处理流程,以数据流图和数据字典为主要工具,建立系统的逻辑模型。扩充后,将建模技术扩展到数据建模、功能建模和行为建模,以实体-关系图、数据流图和控制流图、状态-迁移图为工具,数据字典为核心,从不同视点建立系统的分析模型。,3.3 结构化分析方法,软 件 工 程,47,结构化分析的分析模型,实体关系图,状态迁移图,数据流图,数据对象描述,加工规格说明,数据字典,控制规格说明,软 件 工 程,48,3.3.1 数据建模,数据模型包括三种互相关联的信息:数据对象,描述对象的属性,描述对象间
20、相互连接的关系。在需求分析阶段描述数据对象和它们之间的关系,使用了E-R图。例如,在教学管理中,一个教师可以教授零门、一门或多门课程,每位学生也需要学习几门课程。因此,教学管理中涉及的对象(实体型)有学生、教师和课程。,软 件 工 程,49,教学数据模型,学号 姓名 专业 性别 ,学生,职工号姓名专业职称年龄,教师,课程号 课程名 学分 学时 ,课程,学号课程号成绩,选课,软 件 工 程,50,实例的关联有三种:一对一 (1:1); 一对多(1:m);多对多(n:m)。这种实例的关联称为“基数”。基数表明了“重复性”。,软 件 工 程,51,E-R图中表示实体关联的符号如下:,一个X与一个Y相
21、关联,一个X与一个或多个Y相关联,一个X与零个或一个Y相关联,一个X与零个, 一个或多个Y相关联,一个X与一个Y或Z相关联,一个X与一个Y与Z相关联,软 件 工 程,52,3.3.2 功能建模和数据流图,最初, 结构化分析方法仅讨论数据流建模。目标系统被表示成如图所示的数据变换流程图。系统的功能体现在核心的数据变换中。,软 件 工 程,53,1. 功能建模的思想,功能建模就是用抽象模型的概念,按照软件内部数据传递、变换的关系,自顶向下逐层分解,直到找到满足功能要求的所有可实现的软件为止。根据DeMarco的论述,功能模型使用了数据流图来表达系统内数据的运动情况,而数据流的变换则用结构化英语、判
22、定表与判定树来描述。,软 件 工 程,54,数据流图中的主要图形元素,数据加工 (数据变换),数据源或数据潭 (外部实体),数据流,数据存储文件,软 件 工 程,55,分层的数据流图,软 件 工 程,56,数据流图的层次结构,为了表达数据处理过程,需要采用层次结构的数据流图。按照系统的层次结构进行逐步分解,并以分层的数据流图反映这种结构关系。顶层流图仅包含一个加工,它代表被开发系统。它的输入流是该系统的输入数据,输出流是系统所输出数据底层流图是指其加工不需再做分解的数据流图,它处在最底层中间层流图则表示对其上层父图的细化。它的每一加工可能继续细化,形成子图。,软 件 工 程,57,2. 结构化
23、分析方法功能建模的步骤实例 考务处理系统的功能,(1) 对考生送来的报名单进行检查;(2) 对合格的报名单编好准考证号后将准考证送给考生,并将汇总后的考生名单送给阅卷站;(3) 对阅卷站送来的成绩单进行检查,并根据考试中心制定的合格标准审定合格者;(4) 制作考生通知单(含成绩及合格/不合格标志)送给考生;(5) 按地区进行成绩分类统计和试题难度分析,产生统计分析表。,软 件 工 程,58,软 件 工 程,59,这个数据流图只是一个高层的系统逻辑模型,它反映了目标系统要实现的功能以及系统与外界的关系。该图亦称为上下文图或语境图(Context Diagram)数据流图绘制步骤首先确定系统的输入
24、和输出根据考务处理业务,画出顶层数据流图,以反映最主要业务处理流程,软 件 工 程,60,经过分析,考务业务处理的主要功能应当有登记报名单、统计成绩两大项。主要数据流输入的源点和输出终点是考生、考试中心和阅卷站。然后从输入端开始,根据考务业务工作流,画出数据流流经的各加工框,逐步画到输出端,得到第1层数据流图。,软 件 工 程,61,软 件 工 程,62,软 件 工 程,63,软 件 工 程,64,3. 绘制数据流图的原则,数据流图上所有图形符号只限于前述四种基本图形元素;数据流图的顶层图上的数据流必须封闭在外部实体之间;每个加工至少有一个输入数据流和一个输出数据流;在数据流图中,需按层给加工
25、框编号。编号表明该加工所处层次及上下层的亲子关系;,软 件 工 程,65,规定任何一个数据流子图必须与它上一层的一个加工对应,两者的输入数据流和输出数据流必须一致。此即父图与子图的平衡;如果一个数据文件仅在展开的数据流子图中使用,可以在父图中不画出;可以在数据流图中加入物质流,帮助用户理解数据流图;图上每个元素都必须有名字;数据流图中不可夹带控制流。,软 件 工 程,66,软 件 工 程,67,软 件 工 程,68,3.3.3 行为建模,行为建模给出需求分析方法的所有操作原则,但只有结构化分析方法的扩充版本才提供这种建模的符号。状态迁移图 Petri网,软 件 工 程,69,1. 状态迁移图,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 需求 分析 ppt 课件
链接地址:https://www.31ppt.com/p-1420331.html