Chap软件需求实用_第1页
Chap软件需求实用_第2页
Chap软件需求实用_第3页
Chap软件需求实用_第4页
Chap软件需求实用_第5页
已阅读5页,还剩93页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

会计学1Chap软件需求实用2软件需求的表达方法系统模型软件需求的静态、动态表达方法传统结构化分析方法数据及数据库需求的表达方法☆第1页/共98页3需求分析的任务就是借助于当前系统的逻辑模型导出目标系统的逻辑模型,解决目标系统的“做什么”的问题系统模型第2页/共98页4通常软件开发项目是要实现目标系统的物理模型。目标系统的具体物理模型是由它的逻辑模型经实例化,即具体到某个业务领域而得到的。导出目标系统的逻辑模型的过程中,对系统进行建模有着不可替代的作用。系统模型第3页/共98页5在需求分析阶段创建模型的作用模型帮助分析员理解系统的信息、功能和行为,因此,使得需求分析任务更容易、更系统;模型是评审的焦点,因此,也成为确定规约的完整性、一致性和精确性的关键;模型是设计的基础。系统模型第4页/共98页6系统模型的分类:行为模型:这个概念包括系统的所有过程层面的内容。功能模型:描述数据的功能转换。有两种方式。其一,数据被认为在功能处理元素间流动,如数据流图(DFD)。其二,领域实体被建模成对象,通过事件触发相应的服务来处理数据元素,如面向对象方法。动态模型:描述与时间有关的变化。结构模型(静态模型):描述系统的实体结构。系统模型第5页/共98页7软件需求的表达方法系统模型软件需求的静态、动态表达方法传统结构化分析方法数据及数据库需求的表达方法☆第6页/共98页8最基本形式——自然语言描述因可能存在二义性,所以应在合适情况下选用合适的符号进行精确描述。静态描述实体-关系图(E-R图)数据抽象对象模型需求的表达形式第7页/共98页9动态描述判定表状态迁移图时序图Petri网层次技术Warnier图需求的表达形式第8页/共98页10系统的需求规格说明通常可以用自然语言来叙述,但是用自然语言描述往往会出现歧义性;为了直观地分析系统的动作,从特定的视点出发描述系统的行为,需要采用动态分析的方法。系统的动态分析第9页/共98页11状态迁移图时序图Petri网最常用的动态分析方法第10页/共98页12状态迁移图是描述系统的状态如何响应外部的信号进行推移的一种图形表示。圆圈“○”表示可得到的系统状态;箭头“→”表示从一种状态向另一种状态的迁移。箭头上要标明导致迁移的信号的或事件的名字;状态迁移图所表示的关系还可以用表格形式表达,称之为状态迁移表。状态迁移图★第11页/共98页13状态迁移图状态迁移图和与其等价的状态迁移表示例第12页/共98页14如何设置系统的状态,需要根据分析的目标和表达的目的而定。例如,操作系统中根据调度的要求需要设置进程的状态,当有多个申请占用CPU运行的进程时,有关CPU分配的进程的状态就可以用下图表示:状态迁移图第13页/共98页15可得到的状态=就绪,运行,等待

就绪(Ready):等待分配CPU

运行(Running):正在CPU上做处理

等待(Wait):放弃CPU生成的事件=t1,t2,t3,t4t1:因I/O等事件发生而要求中断t2:中断事件已处理t3:分配CPUt4:已用完分配的CPU时间状态迁移图第14页/共98页16状态之间的关系能够直观地捕捉到,可以检查所有可能的状态是否都已纳入到图中,是否存在不必要的状态等。由于状态迁移图的单纯性,能够机械地分析许多情况,可很容易地建立分析工具,回答诸如“指定事件序列P、状态A和B,可以因为P从A向B迁移吗?”、“找出经过所有状态的事件序列”之类的问题。状态迁移图的优点第15页/共98页17软件需求的表达方法系统模型软件需求的静态、动态表达方法传统结构化分析方法数据及数据库需求的表达方法☆第16页/共98页18结构化分析方法最初由DouglasRoss提出,由DeMarco推广,由Ward和Mellor以及后来的Hatley和Pirbhai扩充,形成了今天的结构化分析方法的框架。结构化分析方法第17页/共98页19结构化分析方法的分析模型数据字典实体-关系图数据流图状态变迁图数据对象描述加工规格说明控制规格说明第18页/共98页20核心:数据字典实体关系图(ERD):描述数据对象和对象之间的关系——数据建模数据流图(DFD):描述数据在系统中如何被传送或变换,以及描述如何对数据流进行变换的功能(子功能)——功能建模状态变迁图(STD):描述系统对外部事件如何响应,如何动作——行为建模结构化分析方法的分析模型第19页/共98页21面向数据流进行需求分析的方法。传统结构化分析方法适合于数据处理类型软件的需求分析。具体来说,传统结构化分析方法就是用抽象模型的概念,按照软件内部数据传递、变换的关系,自顶向下逐层分解,直到找到满足功能要求的所有可实现的软件为止。传统结构化分析方法★第20页/共98页22传统结构化分析方法使用工具:数据流图(DataFlowDiagram)数据词典(DataDictionary)

Warnier图结构化英语判定表与判定树

IPO图传统结构化分析方法第21页/共98页23数据流图(DFD)的符号或数据的源点/终点或变换数据的处理/加工/变换或数据存储(文件)数据流第22页/共98页24源点和终点源点和终点是系统之外的实体,可以是人、物或其他软件系统。源点和终点是为了帮助理解系统接口而引入的。加工/变换对数据进行处理的单元。在分层数据流图中,要对加工进行编号,以便于管理。加工也要选取适当的名字,以提高数据流图的易读性。DFD的符号第23页/共98页25数据流由一组数据项组成。例如,数据流“订票单”由姓名、住址、电话、航班号、日期、始点、终点等数据项组成;数据流“航班”由航班号、日期和姓名等数据项组成数据流可以从加工流向加工,如“航班”、“费用”;可以从源点流向加工,或从加工流向终点;可以从加工流向数据存储或从数据存储流向加工DFD的符号第24页/共98页26文件用来暂时存储数据的。如果加工要读文件,则数据流的方向是从文件到加工;如果加工要写文件,则数据流的方向是从加工到文件;如果加工既要读文件又要写文件,则数据流的方向是双向的DFD的符号第25页/共98页27旅行社旅客预定机票机票准备记帐航班目录记帐文件订票单航班费用帐单机票DFD的符号第26页/共98页28描述银行取款过程的数据流图第27页/共98页29数据流与数据加工之间的关系第28页/共98页30为了表达数据处理过程的数据加工情况,需要采用层次结构的数据流图。按照系统的层次结构进行逐步分解,并以分层的数据流图反映这种结构关系,能清楚地表达和容易理解整个系统。数据流图的层次结构第29页/共98页31自顶向下逐层画数据流图的步骤1.首先建立顶层的数据流图(基本系统模型),其中只含有一个代表目标软件系统整体处理功能的转换。根据软件系统与外部环境的关系确定顶层数据流图中的外部实体以及它们与软件系统之间的数据流。第30页/共98页32自顶向下逐层画数据流图的步骤外部实体外部实体外部实体外部实体软件系统输入数据流输入数据流输出数据流输出数据流。。。。。。。。基本系统模型(0级图)第31页/共98页33旅行社旅客飞机订票系统订票单机票帐单第32页/共98页342.

画系统的内部:将顶层图中的处理分解成若干个处理,并用数据流将这些处理连接起来,使得顶层图中的输入数据流经一连串的加工处理后变换成顶层图中的输出数据流。这张图称为1层数据流图。又称为系统功能级数据流图。3.

画处理的内部:把每一个处理看作一个小系统,该处理的输入输出数据流看成小系统的输入输出数据流,于是可以用画1层图同样的方法画出每个处理的DFD子图。4.对第3步分解出来的DFD子图中的每个处理重复第3步的分解,直至图中尚未分解的处理都足够简单为止。到此得到了一套分层的数据流图。自顶向下逐层画数据流图的步骤第33页/共98页35分层的数据流图源点1源点2终点2终点1G顶层(0层)1层1322层图号11.11.23.43.12.22.12.33.23.3图号2图号3第34页/共98页36为分层数据流图和加工编号的原则:(1)子图的图号就是分解的父图中加工的编号(2)子图中的加工的编号是由子图号、小数点,局部顺序号组成3层图号3.3图号2.2图号3.12.2.12.2.23.3.13.3.33.3.23.1.23.1.1分层的数据流图第35页/共98页37分层的数据流图第36页/共98页38在多层数据流图中,顶层流图仅包含一个加工,它代表被开发系统,也被称为0层图。它的输入流是该系统的输入数据,输出流是系统的输出数据。底层流图是指其加工不需再做分解的数据流图,它处在最底层。中间层流图则表示对其上层父图的细化。它的每一加工可能继续细化,形成子图。分层的数据流图第37页/共98页39数据流图中的主要图形元素:数据加工(数据变换),图中“2”为加工编号数据源点(source)或汇点(sink)数据流数据存储文件数据流图常用的另一套图形元素第38页/共98页40数据流图示例:学校选课系统第39页/共98页41数据流图示例:学校选课系统第40页/共98页42一家工厂的采购部每天需要一张定货报表,报表按零件编号排序,列出所有需要再次定货的零件。对于需要订货的零件列出其零件编号、零件名称、定货数量、目前价格、主要供应者、次要供应者。零件入库或出库称为事务,通过放在仓库中的CRT终端把事务报告给定货系统。当某种零件的库存量少于临界值时就应该再次定货。例1:定货系统第41页/共98页43第一步确定系统的源点和终点仓库管理员是数据的源点;采购员是数据的终点。处理(加工)应该完成定货系统这样一个功能。数据流事务需从仓库送到系统中,显然事务是一个数据流;系统要把定货报表送给采购部,定货报表也是一个数据流。例1:定货系统第42页/共98页44定货系统基本数据流图例1:定货系统仓库管理员事务定货系统定货报表采购员定货系统的基本系统模型第43页/共98页45

第二步将处理(加工)——定货系统进行功能分解成事务处理和产生报表两部分;考虑有关数据存储问题,题中涉及到存储的信息有:库存清单、定货信息;例1:定货系统第44页/共98页46源点/终点处理采购员仓库管理员产生报表处理事务数据流数据存储定货报表

零件编号零件名称定货数量目前价格主要供应者次要供应者事务零件编号事务类型数量定货信息

(同定货报表)库存清单零件编号

库存量库存量临界值第45页/共98页47例1:定货系统定货系统功能级数据流图定货报表采购员仓库管理员事务1处理事务库存清单D1库存清单D2定货信息定货信息2产生报表定货信息

定货系统的功能级数据流图第46页/共98页48第三步将事务处理进一步分解为接收事务、更新库存清单、处理定货三部分。画出事务处理功能分解后的数据流图。例1:定货系统第47页/共98页49例1:定货系统

把处理事务的功能进一步分解后的数据流图仓库管理员事务1.1接收事务库存清单D1库存清单事务1.2更新库存清单定货信息D2定货信息定货报表采购员2产生报表1.3处理定货定货信息库存信息第48页/共98页50由捐助者向基金会提出捐助请求,经身份确认后被接受,对捐助人进行登记并授予捐助证书,捐款存入银行。由教育单位提出用款申请,在进行相应的合法性校验和核对相应的捐款储备后做出支出。每月给基金会的理事会一份财政状况报表,列出本月的收入和支出情况和资金余额。例2:教育基金会的捐助资金管理系统第49页/共98页51例2:教育基金会的捐助资金管理系统捐助者教育单位理事会资金管理系统捐款请求财政报表用款请求基金会资金管理系统的顶层数据流图第50页/共98页52例2:教育基金会的捐助资金管理系统理事会财政报表捐助者捐款请求教育单位用款请求D1收支状况支出处理2收入处理1功能级数据流图产生报表3第51页/共98页53经过细化的功能级数据流图捐助者教育单位接受请求1.1产生报表3支出批准2.3登记收入1.3合法性检查2.2接受请求2.1合法性检查1.2理事会D3教育单位信息D2捐助者信息捐款请求捐款要求请求用款用款合法支出合法捐助D1收支状况财务报告要求第52页/共98页54例3:商店业务处理系统第53页/共98页55这个数据流图只是一个高层的系统逻辑模型,它反映了目标系统要实现的功能。数据流图绘制步骤:首先确定系统的输入和输出;根据商店业务,画出顶层数据流图,以反映最主要业务处理流程;例3:商店业务处理系统第54页/共98页56

经过分析,商店业务处理的主要功能应当有销售、采购、会计三大项。主要数据流输入的源点和输出终点是顾客和供应商;然后从输入端开始,根据商店业务工作流程,画出数据流流经的各加工框,逐步画到输出端,得到第一层数据流图:例3:商店业务处理系统第55页/共98页57第一层数据流图第56页/共98页58加细每一个加工框——销售细化第57页/共98页59加细每一个加工框——采购细化第58页/共98页60画数据流图不是画流程图父图和子图的平衡问题局部文件的问题分解的深度和层次问题 命名问题画数据流图需要注意的几个问题第59页/共98页61父图和子图的平衡问题1243576ACBYEXWVFDGH3.13.23.33.43.63.5DFGH第60页/共98页62父图和子图的平衡问题12344.44.34.24.1AGCBFDEEHLFG1323.13.2考生成绩录取通知书考生姓名准考证号通讯地址考生成绩第61页/共98页63文件(数据存储)总是局部于分层数据流图的某一层或某几层,所以数据流图中引入的文件都是局部文件;当数据存储的第一次出现时只与一个加工发生关系,不成为加工间的接口关系时,没有必要把它在DFD中表示出来,而应作为这一加工本身的一部分。局部文件的问题12.1322.242.3ABCABCDEGFFED第62页/共98页64一个加工的分解最好不要超过7(9)个子加工。超过七个时,可以用增加层次,减少子加工数的方法。分解在逻辑上应合理、自然,不能硬性分割。也就是说,要根据问题的逻辑特性进行分解。在保证数据流的易理解的前提下,尽量减少分解层次。这样可以减少层次的界面。分解要均匀。即在一张数据流图中,不要有这样的情况:有些加工已是基本加工,另一些加工还要分解好几层,但绝对均匀不可能,不要相差太大。分解的深度和层次问题第63页/共98页65数据流命名名字应代表整个数据流(有时也会把现实环境中传递的一组数据中最重要的那个数据的名字作为数据流的名字)命名问题考生成绩分类后的考生成绩录取分类第64页/共98页66数据流命名(续)现实环境中,传递的一些表格、单据的名字可以直接作为数据流的名字。命名问题车间调度全厂统计生产报表统计表日报表月报表第65页/共98页67数据流命名(续)不要使用空洞的、缺乏具体含义的名字;不要把控制流作为数据流;如果在为某个数据流命名时遇到困难,可能是数据流图分解不当,应考虑重新分解DFD。命名问题录取分类取下一个考生成绩第66页/共98页68加工(处理)命名顶层的加工名可以是软件项目的名字;不要使用空洞的、缺乏具体含义的名字;通常先为数据流命名,然后再为与之相关联的处理命名。这样命名比较容易,而且体现了人类习惯的“由表及里”的思考过程;如果在为某个加工命名时遇到困难,可能是数据流图分解不当,应考虑重新分解DFD;命名问题第67页/共98页69加工(处理)命名(续)加工的名字最好由一个谓语动词加上一个宾语组成。如“计算运费”、“准备机票”。也可以把宾语和谓语动词颠倒书写。如“运费计算”、“机票准备”;名字应该反映整个处理的功能,而不是它的一部分功能;通常名字中仅包括一个动词,如果必须用两个动词才能描述整个处理的功能,则把这个处理再分解成两个处理可能更恰当些。命名问题第68页/共98页70作为交流信息的工具作为分析和设计的工具用数据流图辅助物理系统的设计时,以图中不同处理的定时要求为指南,能够在数据流图上画出许多组自动化边界,每组自动化边界可能意味着一个不同的物理系统,因此可以根据系统的逻辑模型考虑系统的物理实现可以从数据流图出发映射出软件结构数据流图的用途第69页/共98页71这种划分自动化边界的方法暗示以批量方式更新库存清单数据流图的用途第70页/共98页72数据流图的用途另一种划分自动化边界的方法建议以联机方式更新库存清单第71页/共98页73对于数据流图中出现的所有被命名的图形元素,在数据词典中作为一个词条加以定义,使得每个图形元素都有确切解释。数据词典与数据流图配合,能清楚地表达数据处理的要求。词条描述——

对于在数据流图中每一个被命名的图形元素,均加以定义,其内容有:图形元素名字、别名或编号,分类,描述,定义,位置,其它,等。数据词典(DD)第72页/共98页74数据流是数据结构在系统内传播的路径。一个数据流词条应有以下几项内容:数据流名说明:简要介绍作用及它产生的原因和结果数据流来源:来自何方数据流去向:去向何处数据流组成:数据结构每个数据量的流通量:数据量,流通量(1)数据流词条描述第73页/共98页75DFD中每个数据结构都是由数据元素构成的,数据元素是数据处理中最小的、不可再分的单位,它直接反映事物的某一特征,其描述需要以下信息:数据元素名类型:数字(离散值,连续值),文字(编码类型)长度:取值范围:相关的数据元素及数据结构:(2)数据元素词条描述第74页/共98页76数据文件是数据结构保存的地方。本类词条应有以下内容:数据文件名简述:存放的是什么数据输入数据:输出数据:数据文件组成:数据结构存储方式:顺序,直接,关键码存取频率:(3)数据文件词条描述第75页/共98页77加工到后来就是一段程序,它的表达方式有判定表、判定树、结构化英语等,在一个词条中全部描述有困难。主要内容有:加工名加工编号:反映该加工的层次简要描述:加工逻辑及功能简述输入数据流:输出数据流:加工逻辑:简述加工程序,加工顺序(4)加工逻辑词条描述第76页/共98页78对于数据处理系统来说,源点和汇点应比较少,否则就会缺少独立性,人机界面太复杂,这时应考虑减少以提高系统独立性。这类词条应包括:名称:外部实体名简要描述:什么外部实体有关数据流:数目:(5)源点及汇(终)点词条描述第77页/共98页79常用的描述数据结构的方式有:定义式:自顶向下,逐级给出定义式,直到最后给出基本数据元素为止。Warnier图:用树形结构来描绘数据结构。数据词典数据结构的描述第78页/共98页80符号

含义

举例=“被定义为”

x=a+b,x由a和b组成[...,...] 或

x=[a,b],x由a或由b组成[...|...] 或

x=[a|b],x由a或由b组成{...} 重复

x

={a},x由0个或多个a组成

m{...}n 重复

x

=3{a}8,x由3到8个a组成(...)

可选

x

=(a),在x中a可有可无“...”

基本数据元素x

=“a”,x是取值为a的元素

.. 连结符x=1..9,x可取1到9中任一值数据词典的定义式中出现的符号第79页/共98页81数据结构的描述示例——存折格式第80页/共98页82存折=户名+所号+帐号+开户日+性质+(印密)+1{存取行}50户名=2{字母}24所号=“001”..“999”

注:三位数字帐号=“00000001”..“99999999”

注:八位数字开户日=年+月+日性质=“1”..“6”

注:“1”表示普通户,“5”表示工资户等印密=“0”

注:印密在存折上不显示存取行=日期+(摘要)+支出+存入+余额+操作+复核……第81页/共98页83Warnier图示例——报纸专栏的数据层次结构报纸头版部分社论部分副刊部分头条新闻国内新闻本地新闻社论(1,1)读者来信(1,3)体育新闻商业新闻广告专栏(1,3)讽刺漫画(0,1)副刊部分体育新闻商业新闻广告地区队职业队拳击经营简讯雇员简讯招生招聘求助一般新闻第82页/共98页84数据流图中每个加工框上只有简单的加工名,数据词典中关于加工的信息也不能表达加工的全部内容;随着逐层细化,加工逻辑越来越具体,到最底一层,可以详细到可实现的程度,这时的加工称为基本加工;如果能写出每个基本加工的全部详细逻辑功能,再自底向上综合,就能完成全部加工;数据流图的加工逻辑说明第83页/共98页85对数据流图的每一个基本加工,必须有一个基本加工逻辑说明;基本加工逻辑说明必须描述基本加工如何把输入数据流变换为输出数据流的加工规则;加工逻辑说明必须描述实现加工的策略而不是实现加工的细节;加工逻辑说明中包含的信息应是充足的、完备的、有用的、无冗余的。数据流图的加工逻辑说明第84页/共98页86

结构化英语(StructuredEnglish)判定表(DecisionTable)判定树(DecisionTree)

IPO图用于写加工逻辑说明的工具第85页/共98页87是一种介于自然语言和形式化语言之间的语言。结构化英语的词汇表由英语命令动词数据词典中定义的名字有限的自定义词逻辑关系词IF_THEN_ELSE、CASE_OF、WHILE_DO、REPEAT_UNTIL等组成结构化英语第86页/共98页88语言的正文用基本控制结构进行分割,加工中的操作用自然语言短语来表示。其基本控制结构有三种:简单陈述句结构:避免复合语句;重复结构:while_do

或repeat_until结构判定结构:if_then_else

case_of结构结构化英语(StructuredEnglish)第87页/共98页89if发货单金额超过$500thenif欠款超过了

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论