GIS软件工程03GIS软件工程的系统分析.ppt
第3章 GIS软件工程的系统分析,基本内容系统分析的任务、难点、要求、过程与方法;如何进行需求分析。教学要求:重点掌握用户需求分析报告的内容。重点:数据流图。,系统分析的定义:应用系统思想和方法,确定系统的开发对象,把复杂的系统分解成简单的部分,找出这些部分的基本属性和彼此间的关系。系统分析的任务:充分了解用户的要求,并把双方的理解用软件需求规格说明书表达出来,即是要深入描述软件的功能和性能,确定软件设计的限制和软件同其他系统元素的接口细节,定义软件的其他有效性需求。,3.1 系统分析,系统分析的难点:1.对数据的理解困难2.系统分析员与用户的沟通困难3.环境的变化系统分析的要求:1.系统分析员要具备良好的GIS开发知识,并要了解用户业务知识。2.系统分析员与用户要具有良好沟通能力和合作精神。3.确立总体规划、分阶段进行的思路,即采用螺旋模型开展GIS建设。,系统分析的过程:1.问题识别确定对目标系统的综合要求,即软件的要求。包括功能、性能、数据、环境、可靠性、安全保密、用户界面、资源使用等需求。2.分析与综合问题分析:从数据流和数据结构出发,逐步细化所有的系统功能,找出系统各元素之间的联系、接口特征和设计上的限制,分析它们是否满足功能要求,是否合理。方案综合:依据功能需求、性能需求、运行环境需求等,剔除其不合理的部分,增加其需要部分,最终综合成系统的解决方案,给出系统目标和详细逻辑模型。,3.编制需求分析的文档:需求分析的文档即软件需求规格说明,它是分析阶段的最终成果。下面给出的简略大纲可以作为软件需求规格说明的框架。.引言A.系统简介B.系统参考文献.概述A.系统描述B.主要功能C.实现语言D.用户特点E.一般约束,.用户业务管理现状分析包括业务流程、数据流程、数据量、应用频率、数据源情况,业务管理依据的行政和技术文件,各阶段业务之间的关系,现有组织机构等。.具体需求A.功能需求B.外部接口需求C.性能需求D.设计约束E.属性需求F.其他需求,.数据需求A.数据描述B.数据采集C.数据字典.提出测试的准则4.需求分析评审对系统功能的正确性、完整性和清晰性,以及其他需求给予评价。,系统分析的方法:系统需求分析方法由对软件的数据域和功能域的系统分析过程及其表示方法组成。物理视图指反应当前系统的组织机构、输入输出、资源利用情况和日常数据处理过程的模式,这一模式应客观的反映现实世界的实际情况。逻辑视图指在物理模型的基础上进行分析,区分出本质的和非本质的因素,去掉非本质的因素,从而形成反映系统本质的模型。数据域具有三种属性:数据流、数据内容和数据结构。,图3.1 需求分析的流程图,需求工程的概念:需求工程就是确定系统“做什么”的问题。它分为三个步骤:需求获取、需求分析和编写软件规格说明书及验证。需求是以一种清晰、简洁、一致且无二义性的方式,对一个待开发系统中各个有意义方面的陈述的一个集合。需求工程的目的是给待开发系统提供一个清晰的、一致的、精确的并且无二义性的模型,通常以需求规格说明书的形式来定义待开发系统的所有外部特征。,3.2 需求工程,需求工程中涉及的角色:需求工程中涉及的角色有需求者、分析员和实现者。需求工程的作用:1.支持项目开发2.支持软件测试和验证3.支持维护4.支持项目承包商5.支持管理,需求工程的内容:1.需求获取需求获取的过程就是分析人员借助各种工具和方法,获取对用户需求的基本理解,然后在需求获取方法的驱动和指导下,从非形式需求陈述中提取出用户的实际需求,并由此确定软件的功能、性能、接口关系及有关属性、软件条件、限制和边界等,标定软件的作用范围,确定支持性的软、硬件环境及辅助工具与条件。需求获取方法包括指导开发小组获得用户需求的方法框架和支持控制此项活动进展的过程控制机制两方面。,需求工程的内容:2.需求分析需求分析是开发人员要准确理解用户的要求,进行细致的调查分析,将用户非形式的需求陈述转化为完整的需求定义,再由需求定义转换到相应的形式功能规格说明的过程。用户的需求可分为功能性需求和非功能性需求。功能性需求主要说明了系统各功能部件与环境之间的相互作用本质,即在职能上应做到什么。非功能性需求主要从各个角度对所考虑的可能的解决方案起约束和限制作用。,需求工程的内容:3.验证验证的作用可以通过对需求规格说明文档进行仔细的复核、审查与评审来降低失误。,需求分析的原则1.必须能够表达和理解问题的数据域和功能域。2.必须按自顶向下,逐层分解的方式对问题进行分解和不断细化。3.要给出系统的逻辑视图和物理视图,即建模。,3.3 需求分析,3.3.2 需求分析的原则,需求分析的注意事项1.需求搞不清,经费就算不准。2.在编写需求规格说明书之前,应明确要解决的问题。3.立即确定需求,并记录下该需求的背景。4.一旦在需求规格说明书中发现问题,立即改正。5.在众多需求中确定各个需求的优先顺序,确定可能存在的子集。6.需求分析时,不要进行设计工作。,需求分析的注意事项7.对于复杂的系统,要用多种视角进行需求分析。8.对需求进行编号,以便以后跟踪。9.重视形式方法,也决不放弃自然语言。10.需求中不应存在“待确定”的条款。,3.3.3 需求分析的方法,需求分析的方法:1.结构化分析方法(SA)。2.面向对象的分析方法(OOA)。3.以用户为中心的分析方法(UCRA)。,需求分析的方法:1.结构化分析方法(SA)。结构化分析方法是面向数据流进行需求分析的方法,适于数据处理类型系统的需求分析,采用图形、表等形式表达需求,特点是清晰、简明、方便开发者和用户进行沟通。它用抽象模型的概念,按照系统内部数据传递、变换的关系,自顶向下逐层分解,直到找到满足功能要求的所有可实现的软件为止。,需求分析的方法:2.面向对象的分析方法(OOA)。面向对象的分析概述:1)获取用户需求 2)标识对象和类 3)定义类的结构和层次 4)建立对象模型 5)建立动态模型,需求分析的方法:3.以用户为中心的需求分析方法(UCRA)。以用户为中心的需求分析方法是一种为软件应用开发详细需求分析说明的方法。UCRA方法关注解决拥有大量用户交互操作和集成数据库的目标系统的需求分析问题。,数据流图是对软件系统逻辑结构的图形表示,描绘的是系统的逻辑模型。数据流图仅仅描绘了数据在系统中流动和处理的情况。,3.3.4 数据流程图,数据流程图的主要图形元素1.数据源点和汇点2.加工(处理)3.数据文件(数据存储)4.数据流,图3.2 数据流图的符号(a)基本符号的含义,数据流程图的主要图形元素1.数据源点和汇点数据源点和汇点表示图中要处理数据的输入来源或处理结果要送往何处。2.加工(处理)加工(处理)以数据结构或数据内容为对象。一个处理框可以表示对象中的一个函数,也可以是一系列函数,还可以表示一个对象,甚至可以代表一些人工处理过程。,数据流程图的主要图形元素 3.数据文件(数据存储)数据文件起保存数据的作用,它是处于静止状态的数据,通常存放在数据库中。4.数据流数据流是处于运动中的数据,通常体现为模块之间传递的信息。它是沿箭头方向传送数据的通道,指被加工的数据与流向。(1)数据流(或数据存储)命名 名字应代表整个数据流(或数据存储)的内容,而不是仅仅反映它的某些成分。不要使用空洞的、缺乏具体含义的名字。,(1)数据流(或数据存储)命名 若某个数据流(或数据存储)不能取一个合适的名字,则有可能是对数据流图分解不合适,应该考虑重新分解,有可能解决这个问题。(2)加工(处理)命名 一般先为数据流命名,然后再为处理命名。名字应准确反映整个处理的功能,而不是它的一部分功能。名字最好由一个具体的及物动词,加上一个具体的宾语组成。,(2)加工(处理)命名 通常名字中只使用一个动词,如果需要用两个动词才能描述整个处理的功能,则可以把这个处理分解成两个处理。如果在命名时遇到困难,则可能是分解不当造成的,应考虑重新分解或合并处理。,数据流与加工之间的关系表达方法,(b)附加符号的含义,数据流与加工之间的关系表达方法 表示数据流之间是“与”关系(同时存在)表示数据流之间是“或”关系 表示只能从几个数据流中选一个(互斥关系),分层的数据流图 顶层数据流程图描述了整个软件系统的作用范围,对系统的总体功能、输入和输出进行了抽象,反映了系统和环境的关系。中间层次的数据流程图是通过分解高层数据流和加工得到的。低层次数据流程图通常有很多中间层,甚至79层。这种分解可以不断重复,直到新的数据流程图中每个数据加工的功能明确、相关的数据流被严格定义为止。,分层的数据流图,数据流图的画法 画数据流图的基本步骤就是自外向内,自顶向下,逐层细化,完善求精。具体步骤:(1)先找系统的数据源点与汇点,它们是外部实体,由它们确定系统与外界的接口。(2)找出外部实体的输出数据流和输入数据流。(3)在图的边上画上系统的外部实体。,数据流图的画法 画数据流图的基本步骤就是自外向内,自顶向下,逐层细化,完善求精。具体步骤:(4)从外部实体的输出数据流出发,按系统的逻辑需要,逐步画出一系列逻辑加工,直到找到外部实体所需的输入数据流,形成数据流的封闭。(5)按原则进行检查和修改。(6)按上述步骤,再从各加工出发,画出所需的子图。,数据流图的画法分层数据流程图举例教学管理数据流程顶图,数据流图的画法分层数据流程图举例教学管理数据流程中图,数据流图的画法分层数据流程图举例学籍管理数据流程底图,课间练习 高考录取统分子系统有如下功能:(1)计算标准分:根据考生原始分计算,得到标准分,存入考生分数文件。(2)计算录取线分:根据标准分、招生计划文件中的招生人数,计算录取线,存入录取线文件。试根据要求画出该系统的数据流程图,并将其转换为软件结构图。,课间练习,进行检查和修改的原则 1.数据流图只限于前述四种基本图形元素。2.数据流图的主图必须包括前述四种基本元素。3.数据流图的主图上的数据流必须封闭在外部实体之间,外部实体可以不止一个。4.每个加工至少有一个输入数据流和输出数据流。5.在数据流图中,需按层给加工框编号。6.任何一个数据流子图必须与它上一层的一个加工对应,两者的输入数据流和输出数据流必须一致。7.图上每个元素必须有名字。8.数据流图中不能夹带控制流。,概述:数据字典的定义:数据字典是关于数据信息的集合,是数据流程图中所有元素(数据流、数据存储、处理过程和外部实体)严格定义的场所。数据字典的用途:1.数据流程图和数据字典一起构成了系统的逻辑模型;2.有助于改进不同的开发人员或不同的开发小组之间的通信;3.是存储文件或数据库设计的基础;4.在实施阶段,还可参照数据字典描述数据。,3.3.4 数据字典,属性数据字典条目:属性数据字典包含六类条目:1.数据元素:是最小的数据组成单位。2.数据结构:描述数据之间的组成关系。3.数据流:描述数据流的来源、去处、组成、流通量、高峰时的流通量等属性。4.数据存储:描写该数据存储的结构,及有关的数据流、查询要求。5.处理过程:描述处理框的编号、名称、功能的简要说明,有关的输入、输出。6.外部实体:它是数据的来源和去向。,表31 点属性数据数据字典,表32 线属性数据数据字典,空间数据字典条目:属性数据字典包含的内容:1.名称:空间数据名称。2.层名3.层元素性质:空间形状属性。4.拓扑关系:空间数据的拓扑关系。5.属性表:与空间数据对应的属性表。6.关联属性项/关联字段(可选):空间对象与属性记录关联。7.外部实体:它是数据的来源和去向。8.操作限制:限制空间数据的操作权限。9.元数据文件或表名:空间数据元数据位置。10.备注,表33 空间数据的数据字典,作业3.3 简要叙述系统分析的过程。3.8 属性数据字典包含的条目有哪些?分别简要说明之。画数据流图:假定要为某培训中心研制一个计算机管理系统,我们首先需要分析这个系统应该做些什么,为此必须分析培训中心的业务活动。培训中心为有关行业的在职人员开设许多门课程,有兴趣的人可以来电或来函报名选修某门课程,培训中心要收取一定的费用,学员通过支票付款,学员也可以来电或来函查询课程设计等事宜。培训中心的日常业务是:将学员发来的电报、信件、电话收集分类后,按几种不同情况处理。,作业报名:则将报名数据送给负责报名事务的职员,他们要查阅课程文件,检查某课程是否额满,然后在学生文件、课程文件上登记,并开出报名单交财务部门,财务人员再开出发票经复核后通知学员。付款:则由财务人员在帐目文件上登记,再经复审后也给学员一张通知单。查询:则交查询部门查阅课程文件后给出答复。注销:则由注销人员在课程、学生、帐目文件上作相应修改,经复审后通知学员。对一些要求不合理的函电拒绝处理。,