您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > GIS软件需求分析实践
GIS软件需求分析实践2006年11月13日GIS结构化需求分析方法GIS结构化分析常用的分析工具主要有数据流模型(数据流图)、数据字典以及对数据流进行描述的加工逻辑说明。GIS数据流图是GIS结构化分析的核心部分,它通过一套分层次(由综合到具体)的GIS数据流图,辅以GIS数据字典、小说明工具来描述GIS系统。1GIS数据流模型GIS数据流模型是GIS软件系统逻辑模型的一种图形表示,它描述了GIS数据流动、存储、处理等逻辑关系,一般采用数据流图(DataFlowDiagram,简称DFD)来表示。GIS数据流图的基本成分基本成分名称备注加工或处理输入数据在此进行变换产生输出数据,要注明加工的名字外部实体数据输入的源点或数据输出的汇点,要注明源点和汇点的名字(数据源点或数据终点)数据流被加工的数据与流向,应给出数据流名字,可用名词或动词性短语命名数据存储需用名词或名词性短语命名分层的GIS数据流图(一)对于大型的GIS软件系统,如果只用一张数据流图表示所有的数据流、处理和数据存储,那么这张图将十分复杂、庞大,而且难于理解。层次结构的数据流图可以很好地解决这个问题。分层的数据流图起到了对信息进行抽象和隐秘的作用。由于高层次的数据流图不体现低层次的数据流图的细节,因此可暂时掩盖低层次数据处理的功能和它们之间的关系。分层的GIS数据流图(二)我们按分层的思想将GIS数据流图划分为顶层DFD、中间层DFD、底层DFD三种。顶层数据流图的结构简单,它描述了整个GIS系统的作用范围,对GIS系统的总体功能、输入和输出进行了抽象,反映了GIS系统和环境的关系。中间层数据流图是通过分解高层数据流和数据加工得到的。层次较高的数据流图经过进一步分解得到层次较低的数据流图,一张中间层数据流图具有几个可分解的加工,就存在几张对应的低层次的数据流图。高层次的数据流图是相对应的低层次图的抽象表示,而低层次的数据流图表现了它相应的有关数据处理的细节。S1321.21.11.32.12.42.22.33.13.23.3FFFFFF顶层中间层底层数据流图的层次关系图“先全局后局部,先整体后细节,先抽象后具体”通常可将这种分层的DFD图,分为顶层、中间层、底层。具体步骤:1。先确定系统范围,画出顶层的DFD图。2。逐层分解顶层DFD图,获得若干中间层DFD图。3。画出底层的DFD图。顶层图说明了系统的边界,即系统的输入和输出数据流,顶层图只有一张。底层图由一些不能再分解的加工组成,这些加工都已足够简单,称为基本加工。在顶层和底层之间的是中间层。中间层的数据流图描述了某个加工的分解,而它的组成部分又要进一步分解。画各层DFD图时,“由外向内”。画分层DFD图的方法GIS数据流图绘制流程找出外部实体,由它们确定系统与外界的接口找出GIS的数据源点和汇点从各加工出发画出所需的子图检查和修改数据流图从GIS外部实体的输出数据流出发,画出逻辑加工,直到找到输入数据流,形成封闭数据流画出GIS的外部实体找出GIS外部实体的输入数据与输入数据流顾客出版社验证订单汇总订单订单出版社订单图书目录文件待处理订单文件正确订单一批订单出版社档案文件订货存根文件画图步骤:1、确定外部实体及输入、输出数据流。2、确定分解顶层的加工。3、确定使用的文件。4、用数据流将各部分连接起来,形成数据封闭。注意:标注各加工框及数据流名称。例1:图书预定系统(顶层DFD)顾客档案系统功能要求:1、监视病员的病症(血压、体温、脉搏等)2、定时更新病历3、病员出现异常情况时报警。4、随机地产生某一病员的病情报告。顶层:病员护士护士病员监护系统病员日志病症信号要求报告病症报告报警例2医院病房监护系统第一层:病员护士护士中央监视病员日志病症信号要求报告病症报告报警局部监视生成报告病员极限更新日志病员数据格式化病员数据生理信号极限值1324日志数据日志数据医院病房监护系统顶层DFD图第二层:加工“中央监视”分解计算超过极限值否病员数据超过极限值报警开解信号产生报警信息病员极限格式化病员数据体温血压、体温脉搏生理信号极限值时间脉搏血压日期时钟格式化病员数据3.13.23.33.4医院病房监护系统二层DFD图计算超过极限值否病员数据超过极限值报警开解信号产生报警信息病员极限格式化病员数据体温生理信号极限值时间脉搏血压日期时钟格式化病员数据3.13.23.33.4第二层:加工“中央监视”分解医院病房监护系统分层DFD图图2..15第一层格式化病员数据生理信号极限值病员护士护士中央监视病员日志病症报告局部监视生成报告病员极限更新日志病员数据1324日志数据图2..162数据字典数据字典(DataDictionary,简称DD)是关于数据信息的集合。它是数据流图中所有要素严格定义的场所,这些要素包括数据流、数据流的组成、文件、加工小说明及其它应进入字典的一切数据,其中,每个要素对应数据字典中的一个条目。数据字典的用途数据字典最重要的用途是作为分析阶段的工具。在数据字典中建立严格一致的定义有助于增进分析员和用户之间的交流,从而避免许多误解的发生。数据字典也有助于增进不同开发人员或不同开发小组之间的交流。同样,将数据流图和对数据流图中的每个要素的精确定义放在一起,就构成了系统的、完整的系统规格说明。数据字典和数据流图一起构成信息系统的逻辑模型。没有数据字典,数据流图就不严格;没有数据流图,数据字典也没有作用。实现数据字典的方法实现数据字典的常见方法有三种:全人工过程、全自动过程和混合过程。全自动过程一般依赖数据字典处理软件。混合过程是指利用已有的使用程序(如正文编辑程序、报告生成程序等)来辅助人工过程。•GIS数据字典的任务是对GIS数据流图中出现的所有被命名的图形要素在数据字典中作为一个词条加以定义,使得每一个图形要素的名字都有一个确切的解释•GIS数据字典中所有的定义必须是严密的、精确的,不可有半点含糊,不可有二义性•GIS数据字典的主要内容包括数据流图中每个图形要素的名字、别名或编号、分类、描述、定义、位置等GIS数据字典GIS数据字典的作用通过建立GIS数据字典,在GIS分析过程中,就可以通过名字方便地查阅数据的定义;也可以按各种要求,列出各种表格供分析员使用;还可按描述内容或定义来查询数据的名字;甚至可以通过检查各个加工的逻辑功能,实现和检查数据与程序之间的一致性和完整性。从以后的设计、实现到维护阶段,都需要参考数据字典进行设计、修改和查询。数据字典组成•数据字典:各类数据描述的集合,是对数据流图中出现的所有名字(数据流、处理、数据存储)进行定义。–数据流:是数据结构在系统内传输的路径。数据流描述={数据流名,说明,数据流来源,数据流去向,组成:{数据结构},平均流量,高峰期流量}–数据项:是不可再分的数据单位。对数据项的描述={数据项名,数据项含义说明,别名,数据类型,长度,取值范围,取值含义,与其他数据项的逻辑关系}–数据存储:是数据结构的停留或保存处,也是数据流的来源和去向之一。数据存储描述={数据存储名,说明,编号,流入的数据流,流出的数据流,组成:{数据结构},数据量,存取方式}–处理过程:描述处理过程的说明性信息。处理过程描述={处理过程名,说明,输入:{数据流},输出:{数据流},处理:{简要说明}}•数据字典描述元素之间的关系,可采用下面的符号=表示等价于(或定义为);+表示与;[|]表示或(从方扩号内由“|”号隔开的分量中选择一个);{}表示重复;()表示选择;示例例:学生学籍管理子系统的数据字典。数据流以体检结果为例数据流:体检结果说明:学生参加体格检查的最终结果数据流来源:体检数据流去向:批准组成:{学号+姓名+专业+性别+年龄+血型+体重+身高}数据项(数据流的条目)以学号为例:数据项:学号含义说明:唯一标识每个学生别名:学生编号类型:字符型长度:8取值范围:00000000至99999999取值含义:前两位标别该学生所在年级,后六位按顺序编号示例数据存储以学生登记表为例数据存储:学生登记表说明:记录学生的基本情况流入数据流:……流出数据流:……组成:{学号+姓名+年龄+性别}数据量:每年3000张存取方式:随机存取处理过程以分配宿舍为例处理过程:分配宿舍说明:为所有新生分配学生宿舍输入:学生,宿舍,输出:宿舍安排过程描述:在新生报到后,为所有新生分配学生宿舍。要求同一间宿舍只能安排同一性别的学生,同一个学生只能安排在一个宿舍中。安排新生宿舍其处理时间应不超过15分钟。3加工逻辑说明在分层的GIS数据流图中,子图及数据流、文件等都说明了父图的加工,实际上就是给出了定义。但最底层的数据流图中的加工不能通过子图做进一步的描述,所以必须有一个加工小说明来定义底层数据流图中的加工。小说明中应精确地描述加工的激发条件、加工逻辑、优先级、执行频率和出错处理等。加工逻辑是其中最基本的部分,是指用户对这个加工的逻辑要求。对基本加工说明有三种描述方式:为什么需要加工逻辑说明在分层的GIS数据流图中,子图及数据流、文件等都说明了父图的加工,实际上就是给出了定义。但最底层的数据流图中的加工不能通过子图做进一步的描述,所以必须有一个加工小说明来定义底层数据流图中的加工。加工逻辑说明的概念加工逻辑说明应精确地描述一个加工做什么,包括加工的激发条件、加工逻辑、优先级别、执行频率、出错处理等细节,其中最基本的部分是加工逻辑。加工逻辑是指用户对这个加工的逻辑要求,即加工的输入数据流与输出数据流之间的逻辑关系。特别应注意,分析阶段的任务是理解和表达用户的要求,而不是具体考虑系统如何实现,所以对加工应说明做什么,而不是用程序设计语言来描述具体的加工过程,即加工逻辑说明的重点是描述加工实现的策略而不是加工实现的细节。•结构化语言•判定表•判定树加工逻辑说明的表达方法结构化语言•结构化语言是一种介于自然语言和形式化语言之间的半形式化语言,它使用有限的词汇和语句来描述加工逻辑。结构化英语的词汇表由英语命令动词、数据字典中定义的名字、有限的自定义词和控制结构关键词(如if_then_else、while_do、repeat_until、case_of)等组成。语言的正文用基本控制结构进行分割,加工中的操作用自然语言短语来表示。其基本控制结构有简单陈述句结构、判定结构和重复结构。在某些数据处理问题中,数据流图的处理需要依赖多个逻辑条件的取值,这些取值的组合可能构成多种不同情况,相应需执行不同的操作。这类问题用结构化语言来叙述很不方便,最适合使用判定表作为表示加工小说明的工具。判定表为说明复杂的决策逻辑提供了一种形式化的以表格为基础的表示方法,它能够自动地实现对诸如完整性和无歧义性等特点的检测。判定表•判定表包括四个要素:基本条件、基本操作、条件项、操作项。–基本条件列出了各种可能的条件。除去某些特殊问题以外,通常判定表对各条件的先后次序不予要求–基本操作列出了可能采取的操作。这些操作的排列顺序没有限制,但为便于阅读也可令其按适当的顺序排列–条件项给出各个条件的取值组合–操作项是和条件项紧密相关的,它指出了在条件项的各种取值的组合的情况下应采取什么操作。这里将任一条件取值组合及其相应要执行的操作称为规则,它在判定表中是贯穿条件项和操作项的一列。显然,判定表中列出了多少个条件取值的组合,也就有多少条规则,即条件项与操作项有多少列判定表举例规则号1234条件发货单金额>$500>$500≤$500≤$500赊欠情况>60天≤60天>60天≤60天操作不发出批准书√发出批准书√√√发出发货单√√√发出赊欠报告√判定树是判定表的变形,本质完全一样,所有用判定表能表达的问题都能用判定树来表达。事实上,判定树比判定表更加直观,用判定树来描述具有多个条件的数据处理,更容易被用户接受。判定树的分枝表示各种不同的条件,随着分枝层次结构的扩充,各条件完成自身的取值,判定树的叶子给出应完成的操作,如图4.4所示为某企业核发批准书、发货单流程的判定树。判定树判定树举例检查发货单金额$500金额≤$500欠款60天----不发出批准书欠款≤60
本文标题:GIS软件需求分析实践
链接地址:https://www.777doc.com/doc-2874847 .html