需求分析讲解课件.ppt
需求分析,内容大纲,2023/3/31,2/57,软件工程,软件工程,3/57,2023/3/31,2.3 数据建模,数据模型包括三种互相关联的信息:数据对象,描述对象的属性,描述对象间相互连接的关系。在需求分析阶段描述数据对象和它们之间的关系,使用E-R 图。,软件工程,4/57,2023/3/31,例子某管理信息系统具有以下实体、属性及语义描述:每名教师教授若干课程,每门课程可以由若干教师来教授,每个班级有若干学生,每名学生可以学习若干门课程,每门课程可以有若干学生学习,每名学生学完一门课程后得到一个成绩。描述教师的属性有:员工号,姓名,性别,住址。描述课程的属性有:课程号,课程名,学分。描述学生的属性有:学号,姓名,性别,出生日期。描述班级的属性有:班号,人数。,软件工程,5/57,2023/3/31,ER图,软件工程,6/57,2023/3/31,1、数据对象:是需被目标系统所理解的复合信息的表示。它具有若干不同特征或属性的信息。数据对象可以是外部实体,事物,角色,行为或事件,组织单位,地点或结构。数据对象只封装了数据,没有包含作用于这些数据上的操作。,软件工程,7/57,2023/3/31,2、属性:定义了数据对象的特征。它可用来:为数据对象的实例命名;描述这个实例;建立对另一个数据对象的另一个实例的引用 主码:为了唯一地标识数据对象的某一个实例,定义数据对象中的一个属性或几个属性为主码(key),书写为_id,例如在“学生”数据对象中用“学号”做关键码,它可唯一地标识一个“学生”数据对象中的实例,软件工程,8/57,2023/3/31,3、关系:各个数据对象的实例之间的关联。如一个学生“张鹏”选修两门课程“软件工程”与“计算机网络”,学生与课程的实例通过“选修”关联起来。,软件工程,9/57,2023/3/31,例子,例如,在教学管理中,一个教师可以教授零门、一门或多门课程,每位学生也需要学习几门课程。因此,教学管理中涉及的对象有学生、教师和课程。,软件工程,10/57,2023/3/31,教学数据模型,软件工程,11/57,2023/3/31,实例的关联有三种:一对一(1:1);一对多(1:m);多对多(n:m)。这种实例的关联称为“基数”,基数表明了“重复性”。如 1 位教师带学生班的 30 位同学,就是 1:m 的关系。,实例关联有是“可选”还是“必须”之分。用“O”表示关系是可选的,用“”表示关系必须出现 1 次。这表明了关系的“参与性”。,软件工程,12/57,2023/3/31,软件工程,13/57,2023/3/31,练习学校由若干个系组成,每个系有若干名教师和学生,老师或者学生只能属于某一个特定院系;每个教师可以担任若干门课程,并参加多项科研项目;教师的工资由其职称决定,每位老师都拥有自己的工作证;每门课程可以由若干老师任教;每个学生可以同时选修多门课程。请设计教学管理的E-R模型,并根据自己的理解标示实体、联系及其属性。,软件工程,14/57,2023/3/31,软件工程,15/57,2023/3/31,答案,软件工程,16/57,2023/3/31,2.4 行为建模,行为建模给出需求分析方法的所有操作原则,但只有结构化分析方法的扩充版本才提供这种建模的符号。数据流图不描述时序关系,控制和事件流通过行为模型描述。在描述系统或各个数据对象的行为时,采用状态迁移图。通过描述系统或对象的状态,以及引起系统或对象状态转换的事件来表示系统或对象的行为。,软件工程,17/57,2023/3/31,状态迁移图,例如,有关处理器分配的进程状态迁移。,软件工程,18/57,2023/3/31,状态迁移图是描述系统的状态如何响应外部的事件进行推移的一种图形表示。“”表示可得到的系统状态“”表示从一种状态向另一种状态的迁移。,S2,S1,S3,t1,t2,t3,t4,软件工程,19/57,2023/3/31,例 操作系统根据调度要求设置进程状态 当有多个申请占用CPU运行的进程时,CPU分配的进程的状态迁移,可得到的状态就绪,运行,等待生成的事件t1,t2,t3,t4 t1 中断事件 t2 中断已处理 t3 分配CPU t4 用完CPU时间,软件工程,20/57,2023/3/31,状态迁移图的优点(因为一个系统的状态是有限的)状态之间的关系能够直观地捕捉到由于状态迁移图的单纯性,能够机械地分析许多情况,可很容易地建立分析工具,软件工程,21/57,2023/3/31,例子没人打电话时电话处于闲置状态;有人拿起听筒则进入拨号音状态,到达这个状态后,电话的行为是响起拨号音;这时如果拿起听筒的人改变主意不想打了,他把听筒放下(挂断),电话重又回到闲置状态;如果拿起听筒很长时间不拨号(超时),则进入超时状态。,软件工程,22/57,2023/3/31,软件工程,23/57,2023/3/31,练习该状态转换图表达了银行领域中如下业务知识:储蓄账户有正常、挂失、冻结、销户等4种状态;有效的储蓄账户始于开户交易,开户交易成功后储蓄账户处于正常状态;开户交易的业务规则是:开户金额10元人民币;用户可以凭身份证要求对自己的储蓄账户进行挂失和解挂交易;银行可以根据授权(例如司法授权)对储蓄账户进行冻结和解冻;处于正常状态的储蓄账户可以进行存款、取款交易;处于正常状态的储蓄账户经销户交易后变成销户状态。,软件工程,24/57,2023/3/31,举例,软件工程,25/57,2023/3/31,Petri网,Petri网已广泛地应用于硬件与软件系统的开发中,它适用于描述相互独立、协同操作的处理系统,也就是并发执行的处理系统。Petri网简称PNG(Petri Net Graph),它有两种结点:位置:符号“”,表示系统状态。转移:符号“|”,表示系统中的事件。有向边“”表示向转移的输入,或从转移的输出。,软件工程,26/57,2023/3/31,标记,或称令牌(token),是表明系统当前处于什么状态的标志。Petri网可能的变化有:,软件工程,27/57,2023/3/31,例如,处理两个进程PR1和PR2的同步问题(此时两个进程共用一个资源R):,软件工程,28/57,2023/3/31,软件工程,29/57,2023/3/31,2.5 数据字典,数据字典是结构化分析方法的核心,与各模型的图形表示配合,能清楚地表达数据处理的要求。词条描述对于在模型中每一个被命名的图形元素,均加以定义,其内容有:名字,别名或编号,分类,描述,定义,位置,其它,等,软件工程,30/57,2023/3/31,结构化分析的分析模型,实体关系图,状态迁移图,数据流图,数据对象描述,加工规格说明,数据字典,控制规格说明,软件工程,31/57,2023/3/31,(1)数据流词条描述数据流名:说明:简要介绍它产生的原因和结果数据流来源:来自何方数据流去向:去向何处数据流组成:数据结构数据量流通量:数据量,流通量(2)数据元素词条描述类型:数字(离散值,连续值),文字(编码类型)长度,软件工程,32/57,2023/3/31,取值范围:相关的数据元素及数据结构:(3)数据文件词条描述数据文件名:简述:存放的是什么数据输入输出数据:数据文件组成:数据结构存储方式:顺序,直接,关键码存取频率:(4)加工逻辑词条描述,软件工程,33/57,2023/3/31,加工名:加工编号:反映该加工的层次简要描述:加工逻辑及功能简述输入输出数据流:加工逻辑:简述加工程序,加工顺序(5)数据源及汇点(终点)描述 名称:外部实体名 简要描述:什么外部实体 有关数据流:数目:,软件工程,34/57,2023/3/31,数据结构的描述,符号 含义 举 例 被定义为 与 x=a+b.,.或.|.或 x=a,b,x=a|b.或 m.n 重复 x=a,x=3a8(.)可选 x=(a)“.”基本数据元素 x=a.连结符 x=1.9,软件工程,35/57,2023/3/31,软件工程,36/57,2023/3/31,存折户名所号帐号开户日性质(印密)1 存取行50户名 2 字母24所号 001.999 注:储蓄所编码规定三位数字帐号 00000001.99999999 注:帐号是由8位数字组成开户日年月日性质“1”.“6”注:“1”表示普通户,“5”表示工资户等印密“0”注:印密在存折上不显示存取行日期(摘要)支出存入余额操作复核,软件工程,37/57,2023/3/31,存取行=日期+(摘要)+支出+存入+余额+操作+复核日期=年+月+日年=“00”“99”月=“01”“12”日=“01”“31”摘要=1字母4 注:表明是存?是取?还是换?支出=“金额”注:金额规定不能超过9999999.99金额=“0000000.01”“9999999.99”操作=“00001”“99999”,软件工程,38/57,2023/3/31,练习,某旅馆的电话服务如下:可以拨分机号和外线号码。分机号是从7201至7299。外线号码先拨9,然后是市话号码或长话号码。长话号码是以区号和市话号码组成。区号是从100到300中任意的数字串。市话号码是以局号和分局号组成。局号可以是455,466,888,552中任意一个号码。分局号是任意长度为4的数字串。要求:写出在数据字典中电话号码的数据条目的定义(即组成)。(8分),软件工程,39/57,2023/3/31,答案,电话号码=分机号外线号码(1分)分机号=7201.7299(1分)外线号码=9+市话号码长话号码(1分)长话号码=区号+市话号码(1分)区号=100.300(1分)市话号码=局号+分局号(1分)局号=455466888552(1分)分局号=4数字4(1分),软件工程,40/57,2023/3/31,课堂作业(下课交),某高校可用的电话号码有以下几类:校内电话号码由4位数字组成,第一位数字不是0;校外电话又分为本市电话和外地电话两类。拨校外电话须先拨0,如果是本地电话再接着拨8位号码(第一位不是0),如果是外地电话则先拨3位区码,再拨8位电话号码(第1位不是0)。要求:写出在数据字典中,电话号码的数据条目的定义(即组成)。,软件工程,41/57,2023/3/31,数据字典的另外一种形式,软件工程,42/57,2023/3/31,收费类型表 charge_type管理要求:只能使用不能修改。需要增加、删除或修改必须由系统管理员负责,其他人只是使用。收 费 类 型 表 用 于 定 义 各 种 收 费 类 型 的 代 号、名 称 及 收 费 标 准。表 定 义 如 下:,软件工程,43/57,2023/3/31,基本加工逻辑说明,对数据流图的每一个基本加工,必须有一个基本加工逻辑说明。基本加工逻辑说明必须描述基本加工如何把输入数据流变换为输出数据流的加工规则。加工逻辑说明必须描述实现加工的策略而不是实现加工的细节。描述加工逻辑说明的工具:结构化语言、决策表、决策树。,软件工程,44/57,2023/3/31,(1)结构化语言,结构化语言是一种伪码,它的词汇表由命令动词数据字典中定义的名字有限的自定义词逻辑关系词 IF_THEN_ELSE、SWITCH、WHILE_DO、FOR、DO_WHILE等组成。它是一种介于自然语言和形式化语言之间的语言。用以消除在语法上的歧义性。,软件工程,45/57,2023/3/31,语言的正文用基本控制结构进行分割,加工中的操作用自然语言短语来表示。其基本控制结构有三种:简单陈述句结构:避免复合语句;重复结构:while_do、for_do或do_while结构。判定结构:if_then_else 或switch_do 结构;用结构化语言描述的规格说明的正文可以在计算机上编辑,不必过多地考虑语言的在语法上的限制,使得分析员可以集中考虑加工的策略或规则。,软件工程,46/57,2023/3/31,商店业务处理系统中“检查发货单”,if 发货单金额超过$500 then if 欠款超过了60天 then 在偿还欠款前不予批准 else(欠款未超期)发批准书,发货单 else(发货单金额未超过$500)if 欠款超过60天 then 发批准书,发货单及赊欠报告 else(欠款未超期)发批准书,发货单,软件工程,47/57,2023/3/31,(2)决策表,如果数据流图的加工需要依赖于多个逻辑条件的取值,使用决策表来描述比较合适。,规则,单个条件,单个动作,软件工程,48/57,2023/3/31,以“检查发货单”为例,软件工程,49/57,2023/3/31,(3)判定树,判定树也是用来表达加工逻辑的一种工具。有时侯它比判定表更直观。,软件工程,50/57,2023/3/31,练习,假定某航空公司规定,乘客可以免费托运重量不超过30公斤的行李。当行李重量超过30公斤时,对头等舱的国内乘客超重部分每公斤收费4元,对其它舱的国内乘客超重部分每公斤收费6元,对国外乘客超重部分每公斤收费比国内乘客多一倍。对残疾乘客超重部分每公斤收费比正常乘客少一半。用判定树表示计算行李费的算法。,软件工程,51/57,2023/3/31,答案,软件工程,52/57,2023/3/31,软件需求规格说明的基本原则:功能与实现分离,描述要“做什么”而不是“怎样实现”。要求使用面向处理的规格说明语言,从而得到“做什么”的规格说明。如果目标软件只是一个大系统中的一个元素,那么整个大系统也包括在规格说明的描述之中。规格说明必须包括系统运行的环境。,2.6 需求规格说明的原则,软件工程,53/57,2023/3/31,系统规格说明必须是一个认识的模型,而不是设计或实现的模型。规格说明必须是可操作的。规格说明必须容许不完备性并允许扩充。规格说明必须局部化和松散的耦合。当信息被修改时,只要修改某个单个的段落,能够很容易地加入和删去一些段落。,软件工程,54/57,2023/3/31,2.需求规格说明的内容,基于GB865T改写的规格说明模板内容:引言a.1 文档编制的目的a.2 背景a.3 词汇表a.4 参考资料软件概述 b.1 软件范围定义 b.2 特性概述,软件工程,55/57,2023/3/31,b.3 系统运行环境 b.3.1 设备及分布 b.3.2 支撑软件b.4 假设和依赖外部接口需求 c.1 用户界面 c.2 硬件接口 c.3 软件接口 c.4 通信接口需求规定 d.1 系统特性1(编号/名称),软件工程,56/57,2023/3/31,d.1.1 系统特性说明 d.1.2 功能需求 d.1.3 性能需求 d.1.4 安全性需求d.2 系统特性2(编号/名称)其他非功能需求 e.1 一般性性能需求 e.2 一般性安全性需求 e.3 用户文档需求其他需求g.尚未解决的问题h.附件,软件工程,57/57,2023/3/31,需求说明书范例又称需求验证。需求评审的目的是确保需求编写正确。审查的内容包括:系统定义的目标是否与用户的要求一致;需求分析阶段提供的文档资料是否齐全;文档中的所有描述是否完整、清晰、准确反映用户要求;,3.需求评审,