1、1,第6章 结构化分析与设计(结构化需求分析),内容4需求分析的任务获取需求的方法需求分析步骤结构化需求分析的工具及应用重点2功能建模的数据流图画法数据模型构建难点1结构化分析工具的应用,2,4.1 需求分析任务,4.1.1需求分析任务与步骤1 需求分析的任务 通俗的讲,确定系统做什么,以文档的形式表现出来。 规范的讲,构建系统的逻辑模型,用规范的形式书写需求规格说明书2 需求分析的步骤,3,6.1.2 需求获取的内容,用户需求内容: 功能性需求 定义系统做什么,描述系统必须支持的功能和过程。 非功能性需求(技术需求): 定义系统工作时的特性,描述操作环境和性能目标。,4,需求的具体内容,功能
2、需求性能需求环境需求界面需求用户或人的因素文档需求数据需求资源需求安全保密需求软件成本消耗与开发进度需求质量保证,5,6.2 结构化分析与建模,1 分析建模的作用6 在建模过程中了解系统 通过抽象降低复杂性 有助于回忆所有的细节 有助于开发小组间的交流 有助于与用户的交流 为系统的维护提供文档,6,2 分析建模过程,当前系统,目标系统,物理模型,逻辑模型,逻辑模型,物理模型,模型化,抽象化,具体化,实例化,7,示例:“图书借阅系统”中的借阅过程分析,借阅者,图书馆卡片箱,管理员李大妈,所借图书,借阅意向,图书信息,借书信息,借阅者,1)借阅流程分析2)借阅流程模型化(物理模型),读者借书现有系
3、统物理模型,借书证,8,(2) 去掉物理模型中的非本质因素获得,借阅者,图书馆卡片箱,管理员李大妈,所借图书,借阅意向,图书信息,登记借书记录,借阅者,借书证,借阅者,查找图书,借书资格验证,所借图书,借阅意向,图书信息,登记借书记录,借阅者,借书证,9,(3) 现行系统逻辑模型转化为目标系统逻辑模型,借阅者,查找图书,借书资格验证,所借图书,借阅意向,图书信息,登记借书记录,借阅者,借书证,借阅者,图书信息查询,借书资格验证,所借图书,借阅意向,图书信息,登记借书记录,借阅者,借书证,10,(4) 目标系统逻辑模型转化为目标系统物理模型,图书信息数据库,借阅频率计算,有无库存提示,推荐表,识
4、别管理人员角色,借阅资格审定,产生借阅记录,更改库存,借阅者,查找图书,借书资格验证,所借图书,借阅意向,图书信息,登记借书记录,借阅者,借书证,11,3 结构化分析模型的描述形式,系统逻辑模型=功能模型+数据模型+行为模型功能模型:数据流图数据模型=实体-关系图+数据字典行为(动态)模型:控制流图、状态-迁移图,12,6.2.1 功能建模,分析系统需求,绘制数据流图建模方法4 用规定的图形符号 自顶向下、逐层分解 找到全部可实现的软件功能 分析软件内部数据的传递方向,13,数据流图的基本图形符号,学生,操作员,1开票,1开票,成绩单,成绩单,成绩单,购书申请书,14,数据流符号扩展,15,自
5、顶向下、逐层分解,16,示例: “图书管理系统”功能建模,17,图书管理员,借阅者,图书管理系统,(1) 画顶层图 绘制外部实体确定加工(整个系统看作一个加工)确定数据流。,顶层图反映了目标系统要实现的功能以及系统与外界的关系。亦称为上下文图或语境图(Context Diagram)。顶层图通常没有文件(数据存储)。,18,(2)画出系统内部(0层)把顶层中复杂的加工分解为若干个功能相对简单的子加工。,确定加工确定数据流数据存储,19,书籍管理加工分解(加工1,1层),图书管理员,读者,1.1书籍类别维护,1.2出版社信息维护,1.3书籍信息管理,图书类别信息,出版社信息,类别信息,类别标志信
6、息,出版社标志信息,新增图书、报废图书信息,图书查询信息,借还图书信息,图书基本信息,图书查询条件,图书信息,加工分解,确定存储,添加数据流,出版社信息,20,读者管理功能分解( 加工2,1层),21,借阅管理功能分解(处理3, 1层),22,书籍信息管理功能分解(2层,1.3加工),图书管理员,1.3.1新书入库处理,1.3.2书籍数据更改,1.3.3书籍报废,1.3.4书籍检索,1.3.4图书查询,读者,23,3.绘制数据流图的原则,绘制数据流图时,要保证DFD的一致性和完整性。(1) 一致性4数据流子图必须与它上一层的一个加工对应,两者的输入数据流和输出数据流必须一致。此即父图与子图的平
7、衡;如果一个数据文件仅在展开的数据流子图中使用,可以在父图中不画出;一个加工所有输出的数据流的数据必须从该加工的输入数据流中直接获得或能通过该加工的处理而产生;数据守恒。一个加工的输入和输出数据流不能同名。,24,(2)完整性6数据流图上所有图形符号只限于前述四种基本图形元素;数据流图的顶层图上的数据流必须封闭在外部实体之间;在数据流图中,需按层给加工框编号。编号表明该加工所处层次及上下层的亲子关系;每个加工至少有一个输入数据流和一个输出数据流;外部输入不能直接到数据存储,或数据存储不能直接输出到外部,必需经过加工(处理框);对每个文件,至少有一个加工读该文件,有一个加工写入该文件;图上每个元
8、素都必须有名字,并保持与数据字典一致。,25,(3)其它应注意的问题8,命名简洁且有意义,最好按照用户习惯用语;数据流图中不可夹带控制流;避免一个加工有过多的数据流;分解尽可能均匀、自然,概念上合理、清晰,一个图的加工数量尽量控制在59个;考虑稳定状态,忽略琐碎细节;随时准备重画;数据流和加工分解到可以准确理解为止。,26,数据建模的内容:描述系统的数据和数据关系。数据建模的工具:数据字典、E-R图(实体-关系图)1.数据字典(DD,Data Dictionary) 含义:DD是一组有组织的列表,描述所有与系统相关的数据流图中的元素。要用规定的符号。,4.2.2 数据建模,27,数据字典中使用
9、的符号,符 号 含义描述 定义为 与(顺序结构).mn或m . n 重复(循环结构) . 或(选择结构) . , . 或 ( . ) 任选 “” 基本数据元素 m.n 界域 ., 注释符,28,数据字典条目(元素)的种类:5,(1)数据流 (2)文件(数据存储) (3)数据项 (4)加工 (5)源和宿,29,图书馆管理系统0层数据流图,30,数据流条目说明举例1图书信息,数据流名:图书信息别名: BookInfo简述: 图书库存帐中载明的的信息来源: 管理员去向: 加工1“书籍管理”组成: 图书编号书名出版社+类别+作者+出版日期+版本情况+价格+购进日期+(报废日期)数据流量:高峰值:,31
10、,数据流条目说明举例2读者情况,数据流名:读者情况别名: ReaderInfo简述: 管理员需要了解的有关读者的相关信息来源: 加工2“读者管理”去向: 管理员组成: 借书证号姓名身份证编号|学号|警号+单位或住址|所属系+(联系电话)+(读者类别)数据流量:高峰值:,32,数据项条目说明举例图书编号,数据项名:图书编号别名:bookid简述:标示图书唯一性的编码类型:字符串长度:6取值范围及含义: 第1位:字母=A.Z (大类) 第23位:2数字2 (类别) 第46位:3数字3 (序号)数据项名称:姓名=2汉字10别名:NAME简述:管理员或读者的标示类型:字符串长度:10,33,文件条目说
11、明举例图书信息表,文件名:图书信息表别名: 无简述: 存放图书库存的信息组成:图书编号书名出版社+类别+作者+出版日期+版本情况+价格+购进日期+(报废日期)组织方式:索引文件,以图书编号为关键字查询要求:灵活的组合查询+精确查询+模糊查询出版日期=购进日期=报废日期=长日期类型,34,加工条目,加工条目即数据处理逻辑描述,也称为小说明。描述实现加工的策略而不是实现加工的细节。小说明可认为是DD的组成部分。 对非基本加工(有分解子图的)不必写小说明,但可在DD中定义只说明每个加工的组成(每个处理分解成多少小处理); 而对基本加工(没有分解子图的)用小说明中详细描述它的处理逻辑。,35,加工条目
12、举例,36,加工数据字典举例过期罚款管理,名称:过期罚款管理加工号:3.2.2描述:当超期还书时调用此功能输入:图书编号+借书证号输出:罚款金额处理逻辑: 读图书编号; 读借书证号; 查询借书记录; IF 当下日期还书日期 THEN 查询罚款规则; 计算付款金额; 返回罚款金额; 产生罚款记录; ENDIF ,37,加工处理逻辑的描述工具,基本加工小说明中最重要的是其处理的说明,一般描述工具有:3 1)结构化语言 2)判定表 3)判定树,38,1)结构化语言,介于自然语言和形式语言之间的语言。结构化语言的特点:无确定语法可分层、嵌套,39,2)判定表(决策表),是描述多条件、多目标动作的形式化
13、工具判定表举例 (计算机票折扣率),旅游时间,订 票 量,折 扣 量,79,12月,20,20, 20, 20,15%,5%,20%,30%,条件类别,四种条件组合,操作,条件组合下操作的执行,16,10,11月,40,3)判定树(Decision 决策树),条件1 条件2 结果计 79, 订票量20: 15%算 12月 订票量20: 5%折扣 16, 订票量20: 30%量 10,11月 订票量20: 5%,41,源和宿条目,描述的内容包括名称、别名、简要描述、输入数据流、输出数据流、注解等。名称:管理员简要描述:管理图书、借书、还书及发放借书证的工作人员输入数据流:图书信息、读者信息输出数
14、据流:图书情况、读者情况,42,E-R图可以描述三种互相关联的信息:数据对象,描述对象的属性,描述对象间相互连接的关系。 用数据流图中的文件来确定E-R图中的数据实体。转换为数据实体的存储一般要满足BCNF范式要求。,2.实体关系图(E-R图)3,43,E-R图符号,44,图书管理E-R图(局部),45,4.2.3 行为建模,行为模型主要描述系统的动态行为和控制结构,其描述工具包括状态图、顺序图等。状态图用来描述对象、子系统或系统的生命周期;时序图是一种交互图,主要描述对象之间的动态合作关系以及合作过程中的行为次序。,9.5动态模型,46,呼叫者,交换,接受者,拿起话筒,响拨号声,拨号码,路由
15、选择,鸣响音,停音,响铃声,接电话、录音,挂断、停录音,ABCDE,热线电话系统时序图,9.5.3 顺序图,47,4.3 需求规格说明编写与评审,需求规格说明(SRS,Software Requirement Specification)是需求分析阶段要完成的文档。作为需求分析任务的成果,详细描述功能、性能、行为等目标系统的各种需求。 SRS的作用:2开发者下一步设计和编码的基础测试验收目标系统的依据,即开发者与用户间事实上的技术合同书,48,IEEE/ANSI830-1993标准和我国GB/T8567-1988国家标准都给出了需求规格说明书的内容框架。参见附录C“图书管理系统需求规格说明书”
16、。,49,需求评审3,参加人员:开发人员、用户和领域专家等形式:可采用答辩或协商内容:5(1)完整性:文档资料是否齐全,描述是否完整、清晰、准确地反映了用户要求 (2)一致性:所有需求不相互矛盾(3)有效性:需求正确有效,能解决用户存在的问题(4)现实性:设计的约束条件或限制条件是否符合现有的软硬件技术水平,开发的技术风险是否考虑充分。 然后验证:无二义性、可验证性、可理解性、可修改性、可跟踪性、设计无关性、注释,50,XXX系统需求规格说明书,1.引言1.1.编写目的1.2.项目背景 项目名称 开发小组组成 应用对象1.3.参考资料(略,不写)2.任务概述2.1.开发目标(对项目的用户、功能、性能的概要说明)2.2.用户特点(使用系统的所有角色,角色的知识结构简介,51,3.需求规定(系统流程及功能的详细描述)3.1.数据流图(功能模型:根据系统流程简介,绘制系统的顶层和第一层数据流图)3.2.数据描述3.2.1.实体关系图(重要实体的关系图,详细描述各个实体的属性,外部实体的数据结构描述)3.2.2.数据字典(全部数据存储,主要的数据流)4.适用环境(软件体系架构【单机、C/S、B/S】,软件环境要求),