第3章 GIS软件工程的系统分析 基本内容 系统分析的任务、难点、要求、过程与方法;如何进行需求分析。 教学要求: 重点掌握用户需求分析报告的内容。 重点: 数据流图。
3.1 系统分析 系统分析的定义: 系统分析的任务: 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 需求工程 需求工程的概念: 需求工程就是确定系统“做什么”的问题。它分为三个步骤:需求获取、需求分析和编写软件规格说明书及验证。 3.2 需求工程 需求工程的概念: 需求工程就是确定系统“做什么”的问题。它分为三个步骤:需求获取、需求分析和编写软件规格说明书及验证。 需求是以一种清晰、简洁、一致且无二义性的方式,对一个待开发系统中各个有意义方面的陈述的一个集合。 需求工程的目的是给待开发系统提供一个清晰的、一致的、精确的并且无二义性的模型,通常以需求规格说明书的形式来定义待开发系统的所有外部特征。
需求工程中涉及的角色有需求者、分析员和实现者。 需求工程中涉及的角色: 需求工程中涉及的角色有需求者、分析员和实现者。 需求工程的作用: 1.支持项目开发 2.支持软件测试和验证 3.支持维护 4.支持项目承包商 5.支持管理
需求工程的内容: 1.需求获取 需求获取的过程就是分析人员借助各种工具和方法,获取对用户需求的基本理解,然后在需求获取方法的驱动和指导下,从非形式需求陈述中提取出用户的实际需求,并由此确定软件的功能、性能、接口关系及有关属性、软件条件、限制和边界等,标定软件的作用范围,确定支持性的软、硬件环境及辅助工具与条件。 需求获取方法包括指导开发小组获得用户需求的方法框架和支持控制此项活动进展的过程控制机制两方面。
需求工程的内容: 2.需求分析 需求分析是开发人员要准确理解用户的要求,进行细致的调查分析,将用户非形式的需求陈述转化为完整的需求定义,再由需求定义转换到相应的形式功能规格说明的过程。 用户的需求可分为功能性需求和非功能性需求。 功能性需求主要说明了系统各功能部件与环境之间的相互作用本质,即在职能上应做到什么。 非功能性需求主要从各个角度对所考虑的可能的解决方案起约束和限制作用。
需求工程的内容: 3.验证 验证的作用可以通过对需求规格说明文档进行仔细的复核、审查与评审来降低失误。
3.3 需求分析 3.3.2 需求分析的原则 需求分析的原则 1.必须能够表达和理解问题的数据域和功能域。 3.3 需求分析 3.3.2 需求分析的原则 需求分析的原则 1.必须能够表达和理解问题的数据域和功能域。 2.必须按自顶向下,逐层分解的方式对问题进行分解和不断细化 。 3.要给出系统的逻辑视图和物理视图 ,即建模。
需求分析的注意事项 1.需求搞不清,经费就算不准。 2.在编写需求规格说明书之前,应明确要解决的问题 。 3.立即确定需求,并记录下该需求的背景。 4.一旦在需求规格说明书中发现问题,立即改正。 5.在众多需求中确定各个需求的优先顺序,确定可能存在的子集。 6.需求分析时,不要进行设计工作。
需求分析的注意事项 7.对于复杂的系统,要用多种视角进行需求分析。 8.对需求进行编号,以便以后跟踪。 9.重视形式方法,也决不放弃自然语言。 10.需求中不应存在“待确定”的条款。
3.3.3 需求分析的方法 需求分析的方法: 1. 结构化分析方法(SA)。 2.面向对象的分析方法(OOA)。 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) 附加符号的含义
数据流与加工之间的关系表达方法 * 表示数据流之间是“与”关系(同时存在) + 表示数据流之间是“或”关系 ⊕ 表示只能从几个数据流中选一个(互斥关系)
分层的数据流图 顶层数据流程图描述了整个软件系统的作用范围,对系统的总体功能、输入和输出进行了抽象,反映了系统和环境的关系。 中间层次的数据流程图是通过分解高层数据流和加工得到的。 低层次数据流程图通常有很多中间层,甚至7~9层。这种分解可以不断重复,直到新的数据流程图中每个数据加工的功能明确、相关的数据流被严格定义为止。
分层的数据流图
数据流图的画法 画数据流图的基本步骤就是自外向内,自顶向下,逐层细化,完善求精。 具体步骤: (1)先找系统的数据源点与汇点,它们是外部实体,由它们确定系统与外界的接口。 (2)找出外部实体的输出数据流和输入数据流。 (3)在图的边上画上系统的外部实体。
数据流图的画法 画数据流图的基本步骤就是自外向内,自顶向下,逐层细化,完善求精。 具体步骤: (4)从外部实体的输出数据流出发,按系统的逻辑需要,逐步画出一系列逻辑加工,直到找到外部实体所需的输入数据流,形成数据流的封闭。 (5)按原则进行检查和修改。 (6)按上述步骤,再从各加工出发,画出所需的子图。
数据流图的画法 分层数据流程图举例 教学管理数据流程顶图
数据流图的画法 分层数据流程图举例 教学管理数据流程中图
数据流图的画法 分层数据流程图举例 学籍管理数据流程底图
课间练习 高考录取统分子系统有如下功能: (1)计算标准分:根据考生原始分计算,得到标准分,存入考生分数文件。 (2)计算录取线分:根据标准分、招生计划文件中的招生人数,计算录取线,存入录取线文件。 试根据要求画出该系统的数据流程图,并将其转换为软件结构图。
课间练习 录取分数 招生数 原始分 标准分 招生计划 分数 考生 计算标准分 计算录取线分数
进行检查和修改的原则 1.数据流图只限于前述四种基本图形元素。 2.数据流图的主图必须包括前述四种基本元素。 3.数据流图的主图上的数据流必须封闭在外部实体之间,外部实体可以不止一个。 4.每个加工至少有一个输入数据流和输出数据流。 5.在数据流图中,需按层给加工框编号。 6.任何一个数据流子图必须与它上一层的一个加工对应,两者的输入数据流和输出数据流必须一致。 7.图上每个元素必须有名字。 8.数据流图中不能夹带控制流。
3.3.4 数据字典 概述: 数据字典的定义: 数据字典是关于数据信息的集合,是数据流程图中所有元素(数据流、数据存储、处理过程和外部实体)严格定义的场所。 数据字典的用途: 1.数据流程图和数据字典一起构成了系统的逻辑模型; 2.有助于改进不同的开发人员或不同的开发小组之间的通信; 3.是存储文件或数据库设计的基础 ; 4.在实施阶段,还可参照数据字典描述数据。
属性数据字典条目: 属性数据字典包含六类条目: 1.数据元素:是最小的数据组成单位。 2.数据结构:描述数据之间的组成关系。 3.数据流:描述数据流的来源、去处、组成、流通量、高峰时的流通量等属性。 4.数据存储:描写该数据存储的结构,及有关的数据流、查询要求。 5.处理过程:描述处理框的编号、名称、功能的简要说明,有关的输入、输出。 6.外部实体:它是数据的来源和去向。
表3-1 点属性数据数据字典 序号 数据项 附加字段名 宽度 输出宽度 数据类型 小数位数 备注 *1 管线点号 PointID 10 String - 唯一标识码 *2 图上点号 PPointID 1:1000图副内 *3 平面坐标X X 11 Double 3 1954年北京坐标系 *4 平面坐标Y Y 12 *5 地面高程H H 6 1985国家高程基准 *6 点特征 PointFeature 8 区分拐点、分支、上杠、预留口等 *7 附属物 Subsid 区分人孔、手孔、接线箱等 *8 图副号 MapCode 1:500图副号 9 Memo 50 附加说明 *10 管线种类 PipeLineSort 区分是哪种管线
表3-2 线属性数据数据字典 序号 数据项 附加字段名 宽度 输出宽度 数据类型 备注 *1 管线编码 LineID 21 String 表3-2 线属性数据数据字典 序号 数据项 附加字段名 宽度 输出宽度 数据类型 备注 *1 管线编码 LineID 21 String 唯一标识码 *2 管线点号 SPointID 10 *3 连接点号 EPointID *4 管线材料 LineMaterial 8 *5 管径断面 LineProfile 断面大小。单位:毫米 *6 起点埋深 SPointdeep Integer 单位:厘米 *7 终点埋深 EPointdeep *8 管块孔数 HoleCount *9 电缆根数 CableCount 权属单位 UnitCode 30 管线所属单位 11 埋设日期 MakeDate 12 Memo 50 附加说明 *13 管线种类 PipeLineSort 区分是哪种管线
空间数据字典条目: 属性数据字典包含的内容: 1.名称:空间数据名称。 2.层名 3.层元素性质:空间形状属性。 4.拓扑关系:空间数据的拓扑关系。 5.属性表:与空间数据对应的属性表。 6.关联属性项/关联字段(可选):空间对象与属性记录关联。 7.外部实体:它是数据的来源和去向。 8.操作限制:限制空间数据的操作权限。 9.元数据文件或表名:空间数据元数据位置。 10.备注
表3-3 空间数据的数据字典 管线专题 层名 内容 要素类型 相应属性表名 备注 给水 JSL 给水管线 ARC JL.AAT 管线点 表3-3 空间数据的数据字典 管线专题 层名 内容 要素类型 相应属性表名 备注 给水 JSL 给水管线 ARC JL.AAT 管线点 POINT JL.PAT JST 给水管线注记 ANNO 管线点注记LEVEL值为1; 管线注记LEVEL值为2 排水 PSL 排水管线 PS.AAT PS.PAT PST 排水管线注记、水流方向线 管线点注记LEVEL值为3; 管线注记LEVEL值为4 燃气 RQL 燃气管线 RQ.AAT RQ.PAT RQT 燃气管线注记 管线点注记LEVEL值为5; 管线注记LEVEL值为6 电信 DXL 电信管线 DX.AAT DX.PAT DXT 电信管线注记 管线点注记LEVEL值为7; 管线注记LEVEL值为8
作业 3.3 简要叙述系统分析的过程。 3.8 属性数据字典包含的条目有哪些?分别简要说明之。 画数据流图: 假定要为某培训中心研制一个计算机管理系统,我们首先需要分析这个系统应该做些什么,为此必须分析培训中心的业务活动。培训中心为有关行业的在职人员开设许多门课程,有兴趣的人可以来电或来函报名选修某门课程,培训中心要收取一定的费用,学员通过支票付款,学员也可以来电或来函查询课程设计等事宜。培训中心的日常业务是:将学员发来的电报、信件、电话收集分类后,按几种不同情况处理。
作业 报名:则将报名数据送给负责报名事务的职员,他们要查阅课程文件,检查某课程是否额满,然后在学生文件、课程文件上登记,并开出报名单交财务部门,财务人员再开出发票经复核后通知学员。 付款:则由财务人员在帐目文件上登记,再经复审后也给学员一张通知单。 查询:则交查询部门查阅课程文件后给出答复。 注销:则由注销人员在课程、学生、帐目文件上作相应修改,经复审后通知学员。对一些要求不合理的函电拒绝处理。