需求工程第三讲需求分析与建模.ppt

上传人:sccc 文档编号:5667430 上传时间:2023-08-07 格式:PPT 页数:80 大小:1.37MB
返回 下载 相关 举报
需求工程第三讲需求分析与建模.ppt_第1页
第1页 / 共80页
需求工程第三讲需求分析与建模.ppt_第2页
第2页 / 共80页
需求工程第三讲需求分析与建模.ppt_第3页
第3页 / 共80页
需求工程第三讲需求分析与建模.ppt_第4页
第4页 / 共80页
需求工程第三讲需求分析与建模.ppt_第5页
第5页 / 共80页
点击查看更多>>
资源描述

《需求工程第三讲需求分析与建模.ppt》由会员分享,可在线阅读,更多相关《需求工程第三讲需求分析与建模.ppt(80页珍藏版)》请在三一办公上搜索。

1、需求工程,第三讲 需求分析与建模,内容,需求分析概述结构化需求分析方法面向对象需求分析方法,需求分析的过程,需求分析成功的条件,乙方正确的方法论,甲方明确的建设目标,需求分析,系统建模,系统模型描述了系统的某个特殊方面,在需求文档中对自然语言描述的系统需求加入补充信息。系统模型的界定需求规格说明中应该包含的高层次的模型表示系统运行环境的模型说明系统如何分解为子系统的体系结构模型系统建模需要注意的事项,需求分析前的工作,需求(系统)分析与建模理解真实世界中的问题和用户的需要并提出满足这些需要的解决方案的过程。分析前的准备确认系统的参与者确认系统的运行环境确认系统的约束,内容,需求分析概述结构化需

2、求分析方法面向对象需求分析方法,需求分析与建模结构化方法,结构化方法是一种系统分析和设计的方法,包括定义、开发和确认系统模型过程中用到的表示法、指南和规则。功能需求分析与建模方法功能需求说明数据的用途,以及如何记录、计算、转换、修改及传输数据等。数据需求分析与建模方法数据需求指定系统的存储数据,结构化开发方法(Structured Developing Method)是现有的软件开发方法中最成熟、应用最广泛的方法,主要特点是快速、自然和方便。结构化开发方法由结构化分析方法(SA法)、结构化设计方法(SD法)及结构化程序设计方法(SP法)构成的。结构化分析方法是面向数据流的需求分析方法,是20世

3、纪70年代末由Yourdon,Constaintine及DeMarco等人提出和发展,并得到广泛的应用。它适合于分析大型的数据处理系统,特别是企事业管理系统。SA法也是一种建模的活动,主要是根据软件内部的数据传递、变换关系,自顶向下逐层分解,描绘出满足功能要求的软件模型。,结构化分析方法,分解:对于一个复杂的系统,为了将复杂性降低到可以掌握的程度,可以把大问题分解成若干小问题,然后分别解决(如右图)。,结构化分析方法的基本思想是“分解”和“抽象”。,抽象:分解可以分层进行,即先考虑问题最本质的属性,暂把细节略去,以后再逐层添加细节,直至涉及到最详细的内容,这种用最本质的属性表示一个系统的方法就

4、是“抽象”。,SA法的基本思想,需求分析的方法,绘制系统关联图 创建用户接口原型 分析需求可行性 确定需求的优先级别 为需求建立模型(模型包括数据流图、实体关系图、状态变换图、对话框图、对象类及交互作用图)创建数据字典 使用质量功能调配,需求分析方法(细节),采用SRS模板指明需求的来源为每项需求注上标号记录业务规范创建需求跟踪能力矩阵审查需求文档以需求为依据编写测试用例编写用户手册确定合格的标准。,分析1:定义系统的边界,评估原始需求,定义将要开发的计算机系统的边界。确定哪些是系统需求哪些是和系统相关的操作过程的需求哪些在系统范围之外的需求原则,分析2:系统环境建模,环境模型是系统将要使用的

5、语境模型,应该是最先开发的系统模型之一。效益:记录必须说明接口的外部系统模型包括:和正在说明的系统直接交互的其他系统其他有可能和本系统共存并发生交互的系统系统所在的业务过程(定义涉及的行为、它们的输入和输出、负责这些过程的人以及支持这些过程的软件),系统环境建模-上下文图,作用:上下文图能很好地概括产品的必要接口,初步确新产品包含了哪些内容,产品之外又包含哪些内容。即说明产品及其环境的图示说明产品的范围优点:上下文图为开发人员概括了所有的接口,在开发中或开发后,方便地验证是否已处理了所有接口用户能不费力地理解上下文图,并发现遗漏的接口。,系统环境建模案例,邮件传阅系统环境建模企业OA办公系统图

6、书管理系统操作管理员一般工作人员,分析3:系统体系结构建模,效益体系结构模型有助于划分系统需求体系结构模型说明了系统功能的概况体系结构模型有助于需求工程师找出那些涉及多个子系统的需求体系结构模型描述方式-方框图,系统体系结构“标准”模式,客户机-服务器通用服务器提供共享的系统功能分层系统系统功能通过调用更低层次所提供的功能来实现基于库的系统子系统通过一个共享库进行通信管道系统系统中的每个部件都进行一定的计算,并将结果传给其他部件以进行进一步的操作,体系结构建模举例,分析4:开发互补的系统建模,互补的系统模型可以解释系统规格说明的不同方面。系统模型用来表达系统规格说明的行为视图或者结构视图。系统

7、模型的例子数据处理模型组合模型分类模型刺激-响应模型过程模型,分析5:事件列表与功能列表,事件就是要求系统执行某项功能的请求业务事件与产品事件对复杂的业务任务采用任务说明、用例说明或数据流图等方法进行解释。对复杂的功能采用数据流图、算法描述、活动图、数学说明等进行解释,事件列表与功能列表(续),事件及功能列表的优点主要作为核对清单,以说明应开发什么。而其中对这些功能的详细说明构成了功能需求的主要部分开发人员可以方便的检查产品是否实现每一个功能用户能够在某种程度上确认业务事件和任务列表通过一致性检查确定列表是否完备,功能需求举例-活动图,分析6:数据需求,数据模型数据流图(状态图、活动图)数据字

8、典虚拟窗口(原型界面),数据需求数据模型,数据模型说明了系统所要存储的数据以及数据之间的关系提供了对数据的高级“体系结构”视图,也可以描述信息的细节。模型:E-R模型、概念模型数据模型的优缺点,数据需求数据模型,数据流图,数据流图(Data Flow Diagram,DFD)是描述系统中数据流程的图形工具,它标识了一个系统的逻辑输入和逻辑输出,以及把逻辑输入转换为逻辑输出所需的加工处理。,还有一些辅助的图例:,一、数据流图的图符四种基本图形符号:,顾客,出版社,验证订单,汇总订单,图书目录文件,正确订单,一批订单,出版社档案文件,举例:图书预订系统,画图步骤:1、确定外部实体(顾客、出版社)及

9、输入、输出数据流(订单、出版社订单)。2、确定分解顶层的加工(验证订单、汇总订单)。3、确定使用的文件(图书目录文件、顾客档案等5个文件)。4、用数据流将各部分连接起来,形成数据封闭。,加工和文件还有 其他一些图例:,注意:标注各加工框及数据流名称。,经过初步的需求分析,得到系统功能要求:1、监视病员的病症(血压、体温、脉搏等)。2、定时更新病历。3、病员出现异常情况时报警。4、随机地产生某一病员的病情报告。,实例:医院病房监护系统,监视病情,更新病历,监护系统分层DFD图,顶 层,医院病房监护系统分层DFD图,顶层确定了系统的范围,其外部实体为病员和护士。,护士,病员,护士,医院病房监护系统

10、顶层,监护系统分层DFD图,医院病房监护系统分层DFD图,第一层分解为局部监视、生成报告、中央监视、更新日志4个加工。这层的分解是关键。,以4个加工中最重要的加工“中央监视”为例,进行第二层分解。,数据流图的用处,系统分析员用这种工具可以自顶向下分析系统信息流程;可在图上划出需要计算机处理的部分和需要修改的部分;根据逻辑存储,进一步作数据分析,向数据库数据过渡;根据数据流向,定出存取方式;对应一个处理过程,用相应的语言,判定表等工具来表达处理方法。,数据需求数据字典,数据字典是一个系统组织的、叙述性的数据说明 效益保证名字使用的一致性,避免名字重复使用和误解。有助于提高系统需求、设计和实现维护

11、过程中的可跟踪性。,数据需求数据字典(续),数据字典应具有的信息模型中的实体的名字名字的别名或其它变体命名的实体类型命名实体和为何将它引入系统模型的描述对于命名实体的约束指向相关实体的联接,分层数据流图只是表达了系统的“分解”,为了完整地描述这个系统,还需借助“数据词典”(data dictionary)和“小说明”对图中的每个数据和加工给出解释。对数据流图中包含的所有元素的定义的集合构成了数据词典。它有四类条目:数据流、数据项、文件及基本加工。在定义数据流或文件时,使用表2-1给出的符号。将这些条目按照一定的规则组织起来,构成数据词典。,数据词典(DD),表 2-1,数据流条目 给出了DFD

12、图中数据流的定义,通常列出该数据流的各组成数据项。例如,数据流“乘客名单”由若干“乘客姓名”、“单位名”和“等级”组成,则词典中的“乘客名单”条目是:乘客名单乘客姓名单位名等级又如,报名单姓名单位名年龄性别课程名,数据词典类型,加工条目加工条目就是“加工小说明”。一般应单独列出。,数据项条目给出某个数据单项的定义,通常是该数据项的值类型、允许值等。例如:账号=00000 99999;存款期=1|3|5(单位:年),文件条目 给出某个文件的定义,文件的定义通常是列出文件记录的组成数据流。例如,某销售系统的订单文件:订单文件订单编号顾客名称产品名称订货数量交货日期,加工逻辑说明,对数据流图中每一个

13、不能再分解的基本加工都必须有一个加工小说明给出这个加工的精确描述。小说明中应精确地描述加工的激发条件、加工逻辑、优先级、执行频率和出错处理等。加工逻辑是其中最基本的部分,是指用户对这个加工的逻辑要求。对基本加工说明有三种描述方式:结构化语言,判定表,判定树。,一、结构化语言结构化语言是介于自然语言和形式语言之间的一种半形式语言,它是自然语言的一个受限制的子集。一般分为两层结构:外层语法较具体,为控制结构(顺序、选择、循环),内层较灵活,表达“做什么”。例如:外层可为以下结构:1、顺序结构 2、选择结构 IFTHEN-ELSE;CASE-OF-ENDCASE;3、循环结构 WHILE-DO;RE

14、PEAT-UNTIL,例二“确定能否供货”的加工逻辑:根据库存记录IF 订单项目的数量该项目库存量的临界值 THEN 可供货处理 ELSE 此订单缺货,登录,待进货后再处理ENDIF,例一 根据当前流动资金值确定贬值数。IF the CurrentCapitalValue is less then$1000 Then Set DepreciatedAmount to CurrentCapitalValue.Set CurrentCapitalValue to zero.Otherwise Set DepreciatedAmount to 10%of CurrentCapitalValue.Re

15、duce Current Capital-Value by 10%.,一、结构化语言,结构化语言特点:简单,易学,少二义性。不好处理组合条件。,结构化语言举例,判定表是一种二维的表格,常用于较复杂的组合条件(与结构化语言比较),通常由四部分组成。,判定表,判定表的特点:可处理较复杂的组合条件,但不易理解.不易输入计算机。,条件框 条件定义。操作框 操作的定义。条件条目 各条件的取值及组合。操作条目 在各条件取值组合下所执行的操作。,例如:对商店每天的营业额所收税率,例:一图书销售系统,其中一加工为“优先处理”,条件是:顾客的营业额大于1000元,同时必须信誉好,或者虽然信誉不好,但是20年以上

16、的老主顾。,判定表应用举例,分析:共有3个判定条件,有8种可能的组合情况(图a)。对图a进行化简后,得到图b。,特点:描述一般组合条件较清晰,易理解。不易输入计算机。,好的支付信誉 优惠处理坏的支付信誉,判定树,数据需求虚拟窗口,虚拟窗口是理想化的屏幕图像,形同真实的屏幕图像,但不具备功能或菜单。虚拟窗口的目的。虚拟窗口的优缺点。,需求分级,关注最重要的需求划分优先级可以帮助项目相关人员判断系统的核心需求需求优先级之间明显的 关联可以帮助设计者决定系统体系结构,还可以帮助解决可能发生的设计冲突,使用多维方法进行需求分级,效益需求分级是发现需求之间的共性和例外关系的依据。有助于发现需求重叠和冲突

17、。需求分级提高需求文档的跟踪能力需求分级可以帮助你找到遗漏的需求实施需求分级最简单的方法就是使用刻面方法。定义一系列的维度或者说是刻面,并用相应的关键词描述它们。,评估需求风险,对每一项需求或者一系列相关的需求进行风险分析,指出在实现需求过程中可能会发生的问题、这些问题发生的机率及其影响。,内容,需求分析概述结构化需求分析方法面向对象需求分析方法,采用面向对象分析建模,首先是描述需求;其次根据需求建立系统的静态模型,以构造系统的结构;第三步是描述系统的行为。其中在第一步与第二步中所建立的模型都是静态的,包括用例图、类图(包含包)、对象图、组件图和配置图等五个图形,是标准建模语言UML的静态建模

18、机制。,采用面向对象分析建模-续,其中第三步中所建立的模型或者可以执行,或者表示执行时的时序状态或交互关系。它包括状态图、活动图、顺序图和合作图等四个图形,是标准建模语言UML的动态建模机制。,OO分析师与设计师的任务,找出参与者和用例详述用例组织用例模型(注意:用例仅能获取功能需求)需求工程师任务找出功能性需求找出非功能性需求优先排序需求跟踪用例和需求,用例过程描述,用例,用例建模活动的输出,用例建模活动的输出是用例模型该模型具有四个部分:参与者-人们所扮演的角色或者使用系统的事物;用例-参与者与系统交互的物件;关系-参与者和用例之间有意义的联系;系统边界-包围用例的方框,说明正在建模系统的

19、边界,关于”用例”的误解,用例模型就是指”UML用例图”用例模型包括用例图和用例描述用例分析技术是一项分解技术.用例分析技术是一项合成技术,用例是什么?,用例实例是在系统中执行的一系列动作,这些动作将生成特定参与者可见的价值结果特点用例实例也就是“使用场景”用例应该给参与者带来可见的价值用例是在系统中,典型的用例建模活动,找出系统边界识别参与者合并需求找出用例详述用例,用例建模找出系统边界,系统边界是定义由谁或什么(即参与者)使用系统,系统能够为哪些参与者提供什么特定的利益(即用例),用例建模参与者,参与者是直接与系统交互的事物所扮演的角色。参与者角色人其它系统硬件系统时钟,如何识别参与者,谁

20、或什么使用该系统?交互中,它们扮演什么角色?谁安装系统?谁启动和关闭系统?谁维护系统?与该系统交互的是其它什么系统?谁从该系统获取信息,谁提供信息给系统?有什么事情发生在固定时间?,在识别参与者需要注意的!,参与者对于系统而言总是外部的;参与者直接同系统交互;参与者表示人和事物同系统发生交互时所扮演的角色,而不是特定的人和特定的事物;一个人或事物在与系统发生交互时,同时或不同时扮演多种角色;每个参与者需要一个具有业务意义的简短名称;每个参与者必须有简短描述,它从业务角度描述参与者是什么。像类一样,参与者可以具有分栏,表示参与者属性和它可能接收的事件;,用例建模用例,用例定义为“系统、子系统或类

21、能够与外部参与者交互所执行的动作序列,包括各种序列以及出错序列的规格说明。用例是参与者想要系统做的事情。,识别用例,特定参与者希望系统提供什么功能?系统存储和检索信息吗?如果有,哪个参与者触发这个行为?当系统改变状态时,通知参与者吗?存在影响系统的外部时间吗?是谁通知系统这些事件的?,用例图,邮件订阅系统,PlaceOrder,CancelOrder,CheckOrderStatus,SendCatalog,ShipProduct,Customer,Dispatcher,ShippingCompany,详述用例,用例模型,补充需求,项目词汇表,用例,详述用例,用例阐述员,在编写事件流需要注意的

22、!,使用简单的语法:主语明确,语义易于理解;明确写出“谁控制球”从俯视的角度来编写显示过程向前推移显示参与者的意图而非动作包括“合理的活动集”(带数据的请求、系统确认、更改内部、返回结果)用“确认”而非“检查是否”可选择地提及时间限制,用例技术的优点,用例相对容易写用例是用用户的语言写的用例为行为或场景提供相关线索,用户和开发人员都能够理解用例的图形表示提高对复杂软件系统的可理解性用例描述的场景在确认阶段几乎可以直接用作测试脚本,用例方法的适用场合,适用场合系统是面向功能的,具有多种类型的用户和功能行为团队采用UML和面向对象(OO)方法实现系统不太适用场合系统用户很少或没有并且接口也很少系统

23、中非功能性需求和设计约束占主导地位,用例建模实战-调研后的功能特性,FEAT01.新增学生信息FEAT02.修改已有的学生信息FEAT03.学生信息按统招生、工程硕士、学位进修分别建档FEAT04.录入新生信息时能够自动按规则生成学生号号FEAT05.统招生、工程硕士与学位进修生采用不同的书号规则FEAT06.录入新生信息时如果重名将自动提示FEAT07.按入学时间、所在学院、学生类别等关键字组合查询学生信息FEAT08.列出所有学生信息FEAT09.记录学生休学、退学、转学和留级情况FEAT10.学生状态能够自动反应在学生信息中FEAT11.按姓名、学号查询学生成绩情况、交费情况、奖惩情况F

24、EAT12.列出所有的获得奖惩情况学生名单及所在学院FEAT13.按特定时间段统计学生学习成绩和学分FEAT14.所有查询、列表、统计功能应可以单独对统招生、工程硕士、学位进修类别进行;也可以按照学院进行,学生老师,用例建模实战-识别参与者,用例建模实战-合并需求获得用例,用例建模实战-绘制用例图,邮件订阅系统,新增学生信息,修改学生信息,查询学生信息,改变学生状态,查询学生状态,teacher,student,统计学生成绩,1)用例名称:应该与用例图相符,并写上其相应的编号;2)简要说明:该用例对参与者所传递的价值结果进行描述。3)前置条件:是执行用例之前必须存在的系统状态4)后置条件:用例

25、执行完毕系统可能处于的一组状态。5)扩展点:如果包括扩展或包含用例,则写出扩展或包含用例名,并说明在什么情况下使用。如果有,则应该在编写事件流的同时进行编写。6)优先级:说明用户对该用例的期望值,可以为今后开发时制定先后顺序。,用例建模实战-细化用例描述,用例建模实战-用例粒度,思辨“四轮马车”如何整理用例的层次,把建立原型系统作为一种可能采取的策略的主要理由:由于人类认识能力的局限,不能预先指定所有要求。在用户和系统分析员之间存在固有的交流鸿沟。用户需要一个“活的”系统模型,以便获得实践经验。在开发过程中重复和反复是必要的和不可避免的。目前有快速建立原型系统的工具可供选用。由于成本的增加,过

26、去很少采用样机策略。但是,由于正确地提出用户需求是软件开发工程成功的基础,近来主张采用样机策略的人也多起来。,原型需求分析,按照传统的瀑布模型进行软件开发,由于将软件开发这样一个充满回朔的过程硬性地割裂开,虽然强调各个阶段的复审,而用户所提出的需求往往是模糊的,因此很难得到一个完整精确的规格说明,直接影响到后期的开发,针对其主要缺点推出了原型化方法。,2.3 原型化方法,什么是原型化方法(Prototyping Method)?,原型是软件开发过程中,软件的一个早期可运行的版本,它反映了最终系统的部分重要特性。原型化方法的基本思想是花费少量代价建立一个可运行的系统,使用户及早获得学习的机会,原

27、型化方法又称速成原型法(Rapid Prototyping),强调的是软件开发人员与用户的不断交互,通过原型的演进不断适应用户任务改变的需求。将维护和修改阶段的工作尽早进行,使用户验收提前,从而使软件产品更加适用。,由于软件项目的特点和运行原型的目的不同,原型有两种不同的类型。,软件原型的分类,2、追加(add on)型也称为快速建立渐进原型RCP法(Rapid Cyclic Prototyping)法采用循环渐进的开发方式,对系统模型作连续精化,即先构造一个功能简单而且质量要求不高的模型系统,作为最终系统的核心,将系统需要具备的性质逐步添加上去,通过不断地扩充修改,逐步追加新的要求,直至所有

28、性质全部满足,此时的原型模型也就是最终的产品。,1、废弃(throw away)型也称为快速建立需求规格原型RSP法(Rapid Specific Prototyping),先构造一个功能简单而且质量要求不高的模型系统,针对这个模型系统反复进行分析修改,让用户学习,有利于获得更加精确的需求说明书,待需求说明书一旦确定,原型将被废弃,后阶段的工作仍按照瀑布模型开发。,快速分析 快速确定软件系统的基本要求,确定原型所要体现的特性(总体结构,功能,性能、界面等)。2.构造原型 根据基本规格说明,忽略细节,只考虑主要特性,快速构造一个可运行的系统。有三类原型:用户界面原型,功能原型,性能原型。3.运行

29、和评价原型用户试用原型并与开发者之间频繁交流,发现问题,目的是验证原型的正确性。4.修正与改进 对原型进行修改,增删。,运 行,评价,构造,快速分析或修改,快速原型开发模型,快速原型法的工作模型如图所示,按以下步骤循环执行。,原型化模型,原型化开发方法可细分为9个阶段:1、快速分析 在分析者和用户的紧密配合下,快速确定软件系统的基本要求。2、构造原型 在快速分析的基础上,根据基本规格说明,尽快实现一个可运行的系统。3、运行和评价原型 目的是验证原型的正确程度,进而开发新的并修改原有的需求。4、修改和改进 根据修改意见进行修改。5、判定原型完成 经过修改或改进的原型,达到参与者的一致认可,则原型

30、开发的迭代过程可以结束。6、判断原型细部是否说明 判断组成原型的细部是否需要严格地加以说明。7、原型细部的说明 对于那些不能通过原型说明的所有项目,仍需要通过文件加以说明。8、判定原型效果 9、整理原型和提供文档,原型化开发过程,快速建立系统原型进行系统的分析和构造有如下优点:1、增进软件开发人员和用户对系统需求的理解。便于将用户模糊的功能需求明确化。2、为用户提供了一种强有力的学习手段。3、易于确定系统的性能,是理解和确认软件需求规格说明的工具。4、按照RCP 法建立的原型即为最终的产品。,细化的原型化模型,需求分析与建模案例,如何在实践中综合应用多种需求分析方法?案例1:某资源管理系统案例2:学籍管理系统,小节,需求分析的主要方法结构化需求分析方法面向对象的需求分析方法如何在实践中综合运用?,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号