【文档说明】第二章软件需求分析PPT课件.ppt,共(121)页,447.012 KB,由小橙橙上传
转载请保留链接:https://www.ichengzhen.cn/view-50386.html
以下为本文档部分文字说明:
第二章软件需求分析计算机信息工程学院2019年9月现代软件工程授课教师:李德生答疑时间:周三下午答疑地点:计算机应用教研室E_mail:Lids_cs126§2.1需求分析的任务准确地定义未来系统的目标,确定为了满足用户的需求系统必须做什么。用<需求规格说明书>规范的形式准确地
表达用户的需求。<需求规格说明书>的要求(P16)软件需求分析的任务深入描述软件的功能和性能确定软件设计的约束和软件同其它系统元素的接口细节定义软件的其它有效性需求需求分析研究的对象是软件项目的用户要求
准确地表达被接受的用户要求确定被开发软件系统的系统元素将功能和信息结构分配到这些系统元素中常用的分析方法面向数据流的结构化分析方法(SA)面向数据结构的Jackson方法(JSD)面向数据结构的结构
化数据系统开发方法(DSSD)面向对象的分析方法(OOA)等软件需求分析的几个阶段•问题分析及识别•问题评估和方案综合•建模•规约•复审系统分析员的主要焦点是“做什么(what)”,不是“怎样做(how)”2.2需求分析的过程(1)问题识别从系统的角度来理解软件并评审软件范围是
否恰当确定对目标系统的综合要求,即软件的需求提出这些需求实现条件,以及需求应达到的标准思考、涉及的几个问题如何定义系统需求?如何识别、获取需求?你能够采取何种手段与用户进行交流沟通?何为需求建模?你如何理解模型与建模?需求获取的目的清楚地理解所要解决的问题完整地获取用户需求需求获取面
临的挑战:(1)问题空间理解(2)人与人之间的通信(3)需求的不断变化某出版社系统调查表编号提出问题1您在哪个部门工作?2出版业务流程是什么?3您每日都处理那些文件、数据、报表?4工作中手工处理特别麻烦的事情是什么?5工作中手工处理什么问题解决不了?影响效率
的问题有哪些?6您认为提高工作效率,节省工作时间,减轻工作强度可采取哪些办法?某出版社系统调查表编号提出问题7您的部门需要成本核算和统计的内容有哪些?8您的部门采用计算机管理工作情况如何?9如何改进业务流程使之更合理?10哪些问题是目前传统手工方法根本无法解决的?11出版社计
算机管理信息系统需要解决什么问题?需求获取的内容1.用户需求分类(1)功能性需求:定义了系统做什么(描述系统必须支持的功能和过程)(2)非功能性需求(技术需求):定义了系统工作时的特性(描述操作环境和性能目标)2.两类需
求包括的内容(1)功能(2)性能(3)环境(4)界面(5)用户或人的因素(6)文档(7)数据(8)资源(9)安全保密(10)软件成本消耗与开发进度(11)质量保证(1)功能需求•系统做什么?•系统何时做什么?•
系统何时及如何修改或升级?(2)性能需求软件开发的技术性指标例如:•存储容量限制•执行速度、相应时间•吞吐量(3)环境需求•硬件设备:机型、外设、接口、地点、分布、温度、湿度、磁场干扰等•软件:操作系统网络数据库(4)界
面需求•有来自其它系统的输入吗?•到/自其它系统的输出吗?•对数据格式有规定吗?•对数据存储介质有规定吗?(5)用户或人的因素•用户类型?•各种用户熟练程度?•需受何种训练?•用户理解、使用系统的难度?•用户错误操作系统的可能性?(6)文档需求•需哪些文档?•文档针对哪些读者?
(7)数据需求•输入、输出数据的格式?•接收、发送数据的频率?•数据的准确性和精度?•数据流量?•数据需保持的时间?(8)资源需求•软件运行时所需的数据、软件。内存空间等资源。•软件开发、维护所需的人力、支撑软件、开发设备等。(9)安全保密要求•需对访问系统或系统信息加以控制吗?•如何
隔离用户之间的数据?•用户程序如何与其它程序和操作系统隔离?•系统备份要求?(10)软件成本消耗与开发进度需求•开发有规定的时间表吗?•软硬件投资有无限制?(11)质量保证•系统的可靠性要求?•系统必须监测和隔离错误吗?•规定系统平均出错时间?•出错后,重启系统允
许的时间?•系统变化如何反映到设计中?•维护是否包括对系统的改进?•系统的可移植性?问题识别的另一项工作是建立分析所需要的通信途径,以保证能顺利地对问题进行分析。建模模型化或模型方法是通过抽象、概括和一般化,把研究的对象或问题转化为本质(关系或结构)相同的另一对象或问题,从而加以解决的方法。
模型化方法要求所建立的模型能真实反映所研究对象的整体结构、关系或某一过程、某一局部、某一侧面的本质特征和变化规律。计算机学科的发展计算机科学(CS)计算机科学(CS)计算机工程(CE)软件工程(SE)信息系统(IS)计算学科(computingdisciplin
e)计算学科是研究通过在计算机上建立模型并模拟物理过程来进行科学调查和研究的学科.计算机科学与技术学科的方法论•学科的3个形态•理论•抽象(模型化)•设计•重复出现的概念•绑定(binding)•概念与形式模型•一致性和完备性•抽象层次•重用•„„•典型的学科方法:•数学方法•
系统科学方法•„„计算中抽象的本质和使用。在处理复杂事务、构造系统、隐藏细节和获取重复模式方面使用抽象,通过具有不同层次的细节和指标的抽象,能够表达一个实体和系统抽象(模型化)•源于实验科学,主要要素为数据采集方法和假设的形式说明,模型的构造与预测实验分析结果分析.•在为可能的算法数据结
构和系统结构等构造模型时使用此过程.•抽象的结果是概念符号模型模型(model)模型:现实世界某些重要方面的表示。有时我们使用术语“抽象”来表示模型,因为我们从现实世界中抽象出对我们特别有用的东西。模型的类型•数学模型•描述模型•图形模型模型
的作用建模的原因:•在建模过程中了解系统•通过抽象降低复杂性•有助于回忆所有的细节•有助于开发小组间的交流•有助于与用户的交流•为系统的维护提供文档(2)分析与综合从信息流和信息结构出发,逐步细化所有的软件功能,找出系统各元素之间的联系、接口特性和设计上的约束,分析它们是否
满足功能要求,是否合理。剔除其不合理的部分,增加其需要部分。最终综合成系统的解决方案,给出目标系统的详细逻辑模型。需求分析的任务就是借助于当前系统的逻辑模型导出目标系统的逻辑模型,解决目标系统的“做什么”的问题。逻辑模型
和物理模型模型是对对象系统的形式化的特征抽象,概括性或近似地表示;构造模型的过程是一个抽象、分析的过程。对象系统模型系统抽象(映射)模型应用模型构造的过程通常软件开发项目是要实现目标系统的物理模型目标
系统的具体物理模型是由它的逻辑模型经实例化,即具体到某个业务领域而得到的逻辑模型物理模型(本质模型、概念模型)(实施模型、技术模型)现行系统目标系统描述重要的业务功能,无论系统是如何实施的。描述现实系统是如何在物理上实现的。描述新系统的主要业务功能和用户新的需求,无论系统应如何实施。描述新
系统是如何实施的(包括技术)。需求分析过程示意学生(1)通过对现实环境的调查,获得当前系统的物理模型学生购书申请购书单发票领书单书107张教务科206王会计室206李出纳员303赵教材科学生购买教材的物理模型需求分析过程示意(2)去掉具体模型中的非本质因素,抽象出当前系统的逻辑模型学
生购买教材的逻辑模型学生学生购书申请购书单发票领书单书审查有效性开发票开领书单发书需求分析过程示意(3)分析当前系统与目标系统的差别,建立目标系统的逻辑模型计算机售书系统的逻辑模型学生学生购书单发票领书单审查并开发票开领书单无效书单分析阶段中常用的模型
(逻辑模型)•数据流图(DFD)•实体―联系图(ERD)•类图•实例图•时序图•状态图•协作图•事件列表•数据流定义•数据元素定义•„„(3)编制需求分析阶段的文档软件需求说明书数据要求说明书初步的用户手册修改、完善与确定软件开发实
施计划其他质量保证性能描述功能描述数据描述引言需求规格说明书DDDFD需求规格说明书格式:P23。(4)需求分析评审系统定义的目标是否与用户的要求一致;系统需求分析阶段提供的文档
资料是否齐全;文档中的所有描述是否完整、清晰、准确反映用户要求;与所有其它系统成分的重要接口是否都已经描述;被开发项目的数据流与数据结构是否足够,确定;所有图表是否清楚,在不补充说明时能否理解;主要功能是否已包括在规定的软件范围之内,是否都已充分
说明;设计的约束条件或限制条件是否符合实际;开发的技术风险是什么;是否考虑过软件需求的其它方案;是否考虑过将来可能会提出的软件需求;是否详细制定了检验标准,它们能否对系统定义是否成功进行确认;需求分析流程软件需求分析的原则需要能够表达和理解问题的信息域和功能域
要能以层次化的方式对问题进行分解和不断细化要给出系统的逻辑视图和物理视图软件需求规格说明的原则从现实中分离功能,即描述要“做什么”而不是“怎样实现”要求使用面向处理的规格说明语言(或称系统定义语言)如果
被开发软件只是一个大系统中的一个元素,那么整个大系统也包括在规格说明的描述之中规格说明必须包括系统运行环境规格说明必须是一个认识模型规格说明必须是可操作的规格说明必须容许不完备性并允许扩充规
格说明必须局部化和松散耦合软件需求方法需求分析方法由对软件问题的信息域和功能域的系统分析过程及其表示方法组成大多数的需求分析方法是由信息驱动的信息域具有三种属性:信息流、信息内容和信息结构。结构化分析方法
面向数据流进行需求分析的方法结构化分析方法适合于数据处理类型软件的需求分析具体来说,结构化分析方法就是用抽象模型的概念,按照软件内部数据传递、变换的关系,自顶向下逐层分解,直到找到满足功能要求的所有可实现的软件为止结构化分析方法使用工具:•数据流图
•数据词典•结构化英语•判定表与判定树数据流图数据流图中的主要图形元素数据加工(数据变换)数据源点或终点(外部实体)数据流数据存储文件描述银行取款过程的数据流图数据流与数据加工之间的关系数据流图的层次结构为了表达数据处理过程的
数据加工情况,需要采用层次结构的数据流图。按照系统的层次结构进行逐步分解,并以分层的数据流图反映这种结构关系,能清楚地表达和容易理解整个系统分层的数据流图在多层数据流图中,顶层流图仅包含一个加工,它代表被开发系统。它的输入流
是该系统的输入数据,输出流是系统所输出数据底层流图是指其加工不需再做分解的数据流图,它处在最底层中间层流图则表示对其上层父图的细化。它的每一加工可能继续细化,形成子图。结构化分析方法步骤示例商店业务处理系统这个数据流图只是一个高层的系统逻辑模型
,它反映了目标系统要实现的功能数据流图绘制步骤首先确定系统的输入和输出根据商店业务,画出顶层数据流图,以反映最主要业务处理流程经过分析,商店业务处理的主要功能应当有销售、采购、会计三大项。主要数据流输入的源点和输出终点是顾客和供应商。然后从输入端开始,根据商店业务
工作流程,画出数据流流经的各加工框,逐步画到输出端,得到第一层数据流图第一层数据流图★★加细每一个加工框销售细化采购细化检查和修改数据流图的原则数据流图上所有图形符号只限于前述四种基本图形元素数据流图的主图必须包括前述四种基本元素,缺一不可数据流图的主
图上的数据流必须封闭在外部实体之间每个加工至少有一个输入数据流和一个输出数据流在数据流图中,需按层给加工框编号。编号表明该加工所处层次及上下层的亲子关系规定任何一个数据流子图必须与它上一层的一个
加工对应,两者的输入数据流和输出数据流必须一致。此即父图与子图的平衡数据流平衡:父图、子图之间的I/O一致性<1>子图继承父图的I/O<2>子图I/O是父图I/O的加细和分解-借助DD<3>错误处理放在底层1.3发票领书单1.3.11.3,21.3.3学生教材领书单例:一般不应该在数据流图中
加入物质流图上每个元素都必须有名字数据流图中不可夹带控制流初画时可以忽略琐碎的细节,以集中精力于主要数据流,顶层和上层的数据流图往往仅涉及与相邻加工有关的数据文件使用点记法进行编号:父加工号.子加工号。例如,1.3.1掌握分解速度。每一加工每次可分为2-4个加工,最多不要超
过7个局部文件和局部外部项。不要在父图中画子图的外部文件,也不应在子图中漏画了应添的外部项。一般地,除底层DFD需画出全部文件外,各中间层的DFD仅显示处于加工之间的接口文件数据词典数据词典与数据流图配合,能清楚地表
达数据处理的要求词条描述——对于在数据流图中每一个被命名的图形元素,均加以定义,其内容有:名字,别名或编号,分类,描述,定义,位置,其它,等数据字(词)典包括对数据项(数据元素)、数据流和数据文件的描述。数据项(数据元素):表达有效信息的最基本单
位;数据流:相关数据项构成数据流;数据文件:由若干数据项按照一定的组织方式组成。(1)数据流词条描述数据流名:说明:简要介绍作用即它产生的原因和结果数据流来源:来自何方数据流去向:去向何处数据流组成:
数据结构数据量流通量:数据量,流通量数据流词条说明举例数据流名:发票别名:无简述:学生购书时填写的项目来源:学生去向:加工1“审查并开发票”组成:(学号)+姓名+{书号+数量}数据流量:1000次/周高峰值:开学期间100
0次/天(2)数据元素(数据项)词条描述数据元素名:类型:数字(离散值,连续值),文字(编码类型)长度:取值范围:相关的数据元素及数据结构:数据项条目说明举例数据项名:货物编号别名:G-No,G-num简述:本公司的所有
货物的编号类型:字符串长度:10取值范围及含义:第1位:[J|G](进口/国产)第2∼4位:LB01..LB29(类别)第5∼7位:“A00”..“A99”(规格)第8∼10位:“001”..“999”(品名编号)(3)数据文件词条描述数据文件名:
简述:存放的是什么数据输入数据:输出数据:数据文件组成:数据结构存储方式:顺序,直接,关键码存取频率:数据文件词条说明举例文件名:库存记录别名:无简述:存放库存所有可供货物的信息组成:货物名称+编号+生产厂家+单价+库存量组织方式:索引
文件,以货物编号为关键字查询要求:要求能够立即查询(4)加工逻辑词条描述加工名:加工编号:反映该加工的层次简要描述:加工逻辑及功能简述输入数据流:输出数据流:加工逻辑:简述加工程序,加工顺序(5)源点及汇(终)点词条描述名称:外部实体名
简要描述:什么外部实体有关数据流:数目:数据结构的描述符号含义举例=被定义为+与x=a+b[...,...]或[...|...]或x=[a,b],x=[a|b]{...}或m{...}n重复x={a},x=3{a}8(...)可选x
=(a)“...”基本数据元素x=“a”..连结符x=1..9存折格式存折=户名+所号+帐号+开户日+性质+(印密)+1{存取行}50户名=2{字母}24所号=“001”..“999”帐号=“00000001”..“99999999”开户日=年+月+日性
质=“1”..“6”注:“1”表示普通户,“5”表示工资户等印密=“0”注:印密在存折上不显示存取行=日期+(摘要)+支出+存入+余额+操作+复核年=[2019|2019|2019|2019]月=“01”..“12”日=“01”..“31”摘要=1{字母}4(注:表明该存取是存?是
取?还是换?)支出=金额(注:金额规定不超过9999999.99元)存入=金额余额=金额金额=“0000000.01”..“9999999.99”操作=“00001”..“99999”复核=“00001”..“99999”字母=[“a”..“z”|“A”..“Z”]F1:航班信息文件={航空公司名
称+航班号+起点+终点+日期+起飞时间+降落时间}航空公司名称=2{字母}4航班号=3{十进制数字}3字母=“A”…“Z”十进制数字=“0”…“9”起点=终点=1{汉字}10起飞时间=降落时间=时+分时=“00”…“23”分=“00”…“59”日期=年
+月+日年=[2000|2019|2019|2019]月=“01”…“12”日=“01”…“31”具有数据库的系统,除了DFD、DD之外,还可以使用ER图、DSD(DataStructureDiagram)图等说明文件之间的联系。如,不同的表通过关键字建
立联系。DD的实现(1)人工方法(2)自动方法(利用字典管理程序)DD应具特点(1)通过名字可方便查阅数据定义(2)无冗余(3)易更新修改对数据流图的每一个基本加工,必须有一个基本加工逻辑说明基本加工逻辑说明必须描述基本加工如
何把输入数据流变换为输出数据流的加工规则,即加工说明由输入数据、加工逻辑和输出数据组成加工逻辑说明必须描述实现加工的策略而不是实现加工的细节加工逻辑说明中包含的信息应是充足的,完备的,有用的,无冗余的基本加工逻辑说明加工说明(加工
逻辑说明)加工说明即数据处理描述,也称为小说明。描述实现加工的策略而不是实现加工的细节。可以在DD定义中只说明每个加工的组成(每个处理分解成多少小处理),而在小说明中详细描述它的处理逻辑.加工条目(加工逻辑说明)加工逻辑名
:登记报名单编号:1.0激活条件:收到报名单加工逻辑:{1.1检查报名单+1.2编准考证号+1.3登记考生}执行频率:2000次/日小说明(加工逻辑说明的另一种形式)描述的内容:(1)处理逻辑描述基本加工如何把输入数据流变化为输出数据流的加工原则,不涉及具体处理方法。(2)执行
条件(3)输入(4)输出(3)优先级(4)执行频率(5)出错处理对策小说明举例加工名:分类采购(CG111MD)编号:1.1.1加工激活条件:受到图书采购员分类采购操作命令加工逻辑:(1)1.1.1.1预定图书(2)1.1.1.2外采图书(3
)1.1.1.3赠送图书执行频率:随时小说明举例处理名:月票额统计(MHCW713MD)编号:7.1.3激活条件:收到每日售票额信息处理逻辑:1统计月保险金总合月保险金信息=每日日保险金信息之和2统计月合计月合计信息=每日日合计信息之和执行频率:1次/月用于写加工逻辑说明的工具结构化英语判定表
判定树(1)结构化英语结构化英语的词汇表由•英语命令动词•数据词典中定义的名字•有限的自定义词•逻辑关系词IF_THEN_ELSE、CASE_OF、WHILE_DO、REPEAT_UNTIL等组成。是一种介于自然语言和形式化语言之间的语言语言的正文用基本控制结构进
行分割,加工中的操作用自然语言短语来表示其基本控制结构有三种:•简单陈述句结构:避免复合语句;•重复结构:while_do或repeat_until结构。•判定结构:if_then_else或case
_of结构;商店业务处理系统中“检查发货单”if发货单金额超过$500thenif欠款超过了60天then在偿还欠款前不予批准else(欠款未超期)发批准书,发货单else(发货单金额未超过$500)if欠款超过6
0天then发批准书,发货单及赊欠报告else(欠款未超期)发批准书,发货单处理名:核实订票处理(MHGP3200MD)编号:3.2激活条件:收到取订票信息处理逻辑:1读订票旅客信息文件2搜索此文件中是否有与输入信息中姓名及身份证号相符的项IF
有THEN判断余项是否与文件中信息相符IF是THEN输出已订票信息ELSE输出未订票信息ELSE输出未订票信息执行频率:实时(2)判定表如果数据流图的加工需要依赖于多个逻辑条件的取值,使用判定表来描述比较合适以“检查发货单
”为例处理名:计算折扣率(MHGP534MD)编号:5.3.4激活条件:收到预订票信息处理逻辑:计算折扣率执行频率:实时旅游时间订票量折扣量7-9,12月1-6,10,11月≤20≤20>20>2015%5%20%30%(3)判定树判定树也是用来表达加工逻辑的一种工具。有时侯它比
判定表更直观。检查发货单金额>$500金额$500欠款>60天不发出批准书欠款60天发货单发出批准书、欠款>60天发出批准书、发货单及赊欠报告欠款60天发出批准书、发货单考务处理系统的分层DFD顶层数据流图考生考务处理系统考试中心阅卷站不合格报名单报名单准考证考生通知单成绩清单合格标准错误
成绩清单考生名单统计分析表登记报名单报名单准考证1统计成绩2不合格报名单考生通知单成统计分析表0层数据流图考生名册绩清单合格标准考生名单成绩清单错误一层数据流图(a)检查报名单报名单准考证1.1编准考证号1.2不合格报名单考生名册考生名单合格报名单登记
考生1.3一层数据流图(b)检查成绩清单2.1审定合格者2.2考生名册正确成绩清单制作通知单2.3分析统计成绩2.4分析试题难度2.5试题得分清单考生通知单难度分析表合格标准分类统计表成绩清单错误成绩清单经审定的成绩清单二.结构化
分析实施步骤1.确定系统边界,画出系统环境图2.自顶向下,画出各层数据流图3.定义数据字典4.定义小说明DFD可以用来表示一个系统或软件在任何层次上的抽象。较大型软件系统DFD分成多层(子图、父图概念),可以表示数据流和功能的进一步
的细节。需求规格说明书(SRS)(SoftwareRequirementSpecification)需求分析阶段要完成的文档。SRS的作用:•开发者与用户间事实上的技术合同书•开发者下一步设计和编码的基础•测试验收目标系统的依据SRS大纲(模板)•引言•任务概述(
项目概述)•数据描述(DFD、DD)•功能描述•接口•性能需求•属性•其它需求三.需求验证(1)正确性(2)无二义性(3)完整性(4)可验证性(5)一致性(6)可理解性(7)可修改性(8)可被跟踪性(9)可跟踪性(10)设计无关性(11)注释需求文档的陈述与改进举例(1)
产品必须在固定的时间间隔内提供状态消息,并且每次时间间隔不得小于60秒。后台任务管理器(BTM)应该在用户界面的指定区域显示状态消息。a.在后台任务进程启动之后,消息必须每隔60(10)秒更新一次,并且保持连续的可见性。b.如果正在正常处理后台任务进程,那么后台任务管理器(BTM)
必须显示后台任务进程已完成的百分比。c.当完成后台任务时,后台任务管理器(BTM)必须显示一个“已完成”的消息。d.如果后台任务中止执行,那么后台任务管理器(BTM)必须显示一个出错信息。需求不完整,导致需求不可验证改进需求文档的陈述与改
进举例(2)产品必须在显示和隐藏非打印字符之间进行瞬间切换。用户在编辑文档时,通过激活特定的机制,可以在显示和隐藏所有HTML标记之间进行切换。需求不可行、不完整、不确定性,导致需求不可验证改进