1、 小型软件开发的基本过程 (参照软件工程,遵循软件开发的一般规律) 需求分析 设计 编码与单元测试 综合测试 需求分析 导线网平差软件 设计 编码 测试与维护软件工程简介 软件工程是指导计算机软件开发和维护的工程学科。采用工程的概念、原理、技术和方法来开发与维护软件。1.软件工程关注于大型程序的构造2.软件工程的中心课题是控制复杂性3.软件经常变化4.开发软件的效率非常重要5.和谐地合作是开发软件的关键6.软件必须有效地支持它的用户7.在软件工程领域中是由一种文化背景的人替另一文化背景的人创造产品。软件生命周期由软件定义、软件开发和运行维护软件定义、软件开发和运行维护三个时期组成,每个时期又划
2、分若干个阶段。问题定义阶段必须回答的关键问题是:“要解决的问题是什么?”。通过问题定义阶段的工作,系统分析员应该提出关于问题性质、工程目标和规模的书面报告。通过访问调查,分析员扼要地写出他对问题的理解,并在用户和使用部门负责人的会议上认真讨论这份书面报告,得出一份双方都满意的文档。这个阶段要回答的关键问题是:“对上一阶段所确定的问题有行得通的解决办法吗?” 系统分析员需要进行一次大大压缩和简化了的系统分析和设计的过程,也就是在较抽象的高层次上进行的分析和设计的过程。可行性研究应该比较简短,这个阶段的任务不是具体解决问题,而是研究问题的范围,探索这个问题是否值得去解,是否有可行的解决办法。在问题
3、定义阶段提出的对工程目标和规模的报告通常比较含糊。可行性研究阶段应该导出系统的高层逻辑模型(通常用数据流图表示),并且在此基础上更准确、更具体地确定工程规模和目标。然后分析员更准确地估计系统的成本和效益,对建议的系统进行仔细的成本效益分析是这个阶段的主要任务之一。可行性研究的结果是使用部门负责人做出是否继续进行这项工程的决定的重要依据,一般说来,只有投资可能取得较大效益的那些工程项目才值得继续进行下去。可行性研究以后的那些阶段将需要投入更多的人力物力。及时终止不值得投资的工程项目,可以避免更大的浪费。这个阶段的任务仍然不是具体地解决问题,而是准确地确定“为了解决这个问题,目标系统必须做什么”,
4、主要是确定目标系统必须具备哪些功能。用户了解他们所面对的问题,知道必须做什么,但是通常不能完整准确地表达出他们的要求,更不知道怎样利用计算机解决他们的问题;软件开发人员知道怎样用软件实现人们的要求,但是对特定用户的具体要求并不完全清楚。因此,系统分析员在需求分析阶段必须和用户密切配合,充分交流信息,以得出经过用户确认的系统逻辑模型。通常用数据流图、数据字典和简要的算法表示系统的逻辑模型。在需求分析阶段确定的系统逻辑模型是以后设计和实现目标系统的基础,因此必须准确完整地体现用户的要求。 软件开发这个阶段必须回答的关键问题是:“概括地说,应该如何解决这个问题?”。总体设计阶段的第一项主要任务就是应
5、该考虑几种可能的解决方案。结构设计的一条基本原理就是程序应该模块化,也就是一个大程序应该由许多规模适中的模块按合理的层次结构组织而成。总体设计阶段的第二项主要任务就是,也就是确定程序由哪些模块组成以及模块间的关系。通常用层次图或结构图描绘软件的结构。详细设计阶段的任务就是把解法具体化,也就是回答下面这个关键问题:“应该怎样具体地实现这个系统呢?”这个阶段的任务还不是编写程序,而是设计出程序的详细规格说明。这种规格说明的作用很类似于其他工程领域中工程师经常使用的工程蓝图,它们应该包含必要的细节,程序员可以根据它们写出实际的程序代码。通常用 HIPO图(层次图加输入处理输出图)或 PDL语言(过程
6、设计语言)描述详细设计的结果。这个阶段的关键任务是写出正确的容易理解、容易维护的程序模块。程序员应该根据目标系统的性质和实际环境,选取一种适当的高级程序设计语言,把详细设计的结果翻译成用选定的语言书写的程序,并且仔细测试编写出的每一个模块。这个阶段的关键任务是通过各种类型的测试(及相应的调试)使软件达到预定的要求。最本的测试是集成测试和验收测试。所谓集成测试是根据设计的软件结构,把经过单元测试检验的模块按某种选定的策略装配起来,在装配过程中对程序进行必要的测试。所谓验收测试则是按照规格说明书的规定(通常在需求分析阶段确定),由用户(或在用户积极参加下)对目标系统进行验收。必要时还可以再通过现场
7、测试或平行运行等方法对目标系统进一步测试检验。通常需要以正式的或非正式的方式对用户进行培训。通过对软件测试结果的分析可以预测软件的可靠性;反之,根据对软件可靠性的要求,也可以决定测试和调试过程什么时候可以结束。应该用正式的文档资料把测试计划、详细测试方案以及实际测试结果保存下来,做为软件配置的一个组成部分。运行维护维护阶段的关键任务是,通过各种必要的维护活动使系统持久地满足用户的需要。通常有四类维护活动:改正性维护,也就是诊断和改正在使用过程中发现的软件错误适应性维护,即修改软件以适应环境的变化完善性维护,即根据用户的要求改进或扩充软件使它更完善预防性维护,即修改软件为将来的维护活动预先做准备
8、。每一项维护活动都应该经过l 提出维护要求(或报告问题)、分析维护要求、提出维护方案、审批维护方案、确定维护计划、修改软件设计、修改程序、测试程序、复查验收等一系列步骤,因此实质上是经历了一次压缩和简化了的软件定义和开发的全过程。每一项维护活动都应该准确地记录下来,做为正式的文档资料加以保存。阶段阶段关键问题关键问题结束标准结束标准问题定义问题是什么?关于规模和目标的报告书可行性研究有可行的解吗?系统的高层逻辑模型:数据流图、成本效益分析需求分析系统必须做什么?系统的逻辑模型:数据流图、数据字典、算法描述总体设计概括地说,应该如何解决这个问题?可能的解法: 系统流程图、成本/效益分析推荐的系统
9、结构:层次图或结构图详细设计怎样具体地实现这个系统?编码规格说明:IPO图编码/单元测试正确的程序模块源程序清单;单元测试方案和结果综合测试符合要求的软件综合测试方案和结果;完整一致的软件配置维护持久地满足用户需要的软件完整准确的维护记录软件过程方法瀑布模型、快速原型模型、增量模型、螺旋模型1.瀑布模型 按照传统的生命周期方法学开发软件,各阶段的工作自顶向下从抽象到具体顺序进行。2 快速原型模型快速建立起来的可以在计算机上运行的程序。它所能完成的功能一般是最终产品能完成的功能的一个子集。不带反馈环:线性顺序进行开发开发前提: 原型系统已经通过与用户交互而得到验证,从而得到正确的规格说明文档。
10、开发人员通过建立原型系统已经知道该做什么不该做什么。维护阶段:根据维护工作的种类可能需要返回到“需求分析”、“规格说明”、“设计”或者“编码”等不同阶段。3 增量模型渐增模型把软件产品作为一系列的增量构件来设计、编码、集成和测试。分解构件的方法: 第一个增量构件:核心功能 第二个增量构件:完善核心功能 第三N个增量构件:按照功能的重要性以此分解。增量模型优点: 在较短时间内可以提供部分工作的产品 在逐步增加产品功能的同时给用户学习的时间困难及维护的方便性: 软件体系结构是开放的,加入新构件必须简单。 总体设计更加精细,代价较高。 1.4.4 螺旋模型软件风险: 产品交付给用户之后用户可能不满意
11、 到了预定交付日期软件而可能还没开发出来 实际开发成本可能超出预算 产品完成前一些关键的开发人员可能离开 产品投入市场之前已经有功能相近、价格更低的软件先行投入构建原型是一种能使某些类型的风险降至最低的方法。螺旋模型的基本思想:使用原型及其他方法来尽量降低风险,即在每个阶段之前都增加风险分析过程的快速原型模型。优点: 对可选方案和约束条件的强调有利于已有软件的重用 减少过多测试或测试不足而带来的风险 维护是模型的另一个周期适用于内部开发的大规模软件项目小型软件开发的一般过程不能全部照搬软件工程,软件工程适用于大型软件的开发软件的大与小并没有本质的区别,即:“麻雀虽小,五脏俱全”,因此很多方法是
12、相通的。可在大型软件工程的基础上简化为以下几个步骤:1.需求分析2.设计 (包括总体设计与详细设计)3.编码与单元测试4.综合测试 1.需求分析(做什么) 软件需求包括三个不同的层次:业务需求、用户需求和功能需求(也包括非功能需求)。(1)业务需求( business requirement)反映了组织机构或客户对系统、产品高层次的目标要求。(2)用户需求(user requirement) 文档描述了用户使用产品必须要完成的任务,这在使用实例(use case)文档或方案脚本(scenario)说明中予以说明。(3)功能需求(functional requirement)定义了开发人员必须实
13、现的软件功能,使得用户能完成他们的任务,从而满足了业务需求。 非功能需求:它描述了系统展现给用户的行为和执行的操作等。它包括产品必须遵从的标准、规范和合约;外部界面的具体细节;性能要求;设计或实现的约束条件及质量属性。 任何一个软件系统本质上都是信息处理系统,系统必须处理的信息和系统应该产生的信息在很大程度上决定了系统的面貌,对软件设计有深远影响。 因此,分析系统的数据要求是软件需求分析的一个重要任务。 分析方法:E-R图和分层数据流图需求分析的数据要求分层数据流图(Data Flow Diagram,DFD)的画法1. 画系统的输入和输出把整个软件系统看作一个大的加工,然后根据系统从外界的哪
14、些源点接受哪些数据流,以及系统的哪些数据流送到外界的哪些终点,就可画出系统的输入和输出图。这张图称为顶层图。分层数据流图(Data Flow Diagram,DFD)的画法2. 画系统的内部画系统的内部将顶层图中的加工分解成若干个加工,并用数据流将这些加工连接起来,使得顶层图中的输入数据流经一连串的加工处理后变换成顶层图的输出数据流。这张图称为0层图。从一个加工画出一张数据流图的过程实际上就是对这个加工的分解过程。 分层数据流图(Data Flow Diagram,DFD)的画法3可用下述的方法来确定加工: 在数据流的组成或值发生变化的地方应画一个加工,这个加工的功能就是实现这一变化; 也可根
15、据系统的功能确定加工。分层数据流图(Data Flow Diagram,DFD)的画法4确定数据流的方法可以是: 当用户把若干个数据看作一个单位来处理(这些数据一起到达,一起加工)时,把这些数据看成一个数据流。 通常可以把实际工作中的单据(如报名单)作为一个数据流。 对于一些以后某个时间要使用的数据可组织成一个数据(文件)存储。分层数据流图(Data Flow Diagram,DFD)的画法53. 画加工的内部画加工的内部我们把每个加工看作一个小系统,该加工的输入输出数据流看成小系统的输入输出数据流。于是,我们可以用画0层图同样的方法画出每个加工的DFD子图。 分层数据流图(Data Flow
16、 Diagram,DFD)的画法64. 对第步分解出来的DFD子图中的每个加工重复第步的分解直至图中尚未分解的加工都足够简单(也就是说这种加工不必再分解)为止。到此得到了一套分层数据流图。实例-1内外业一体化地形数据建库系统: 野外数据采集; 对野外采集的数据进行检查; 编辑成图; 数据入库; 查询、统计与输出。实例-2内外业一体化地形数据建库系统测量员信息中心实例-31.内外业一体化测图2.地形图数据库系统地形图数据查询统计外业采集的源数据实例-4数据传输自动成图拓扑关系的建立基础地形数据全站仪RTK GPS野外观测数据数据检查书写文档 根据需求分析阶段的基本任务,在这个阶段可能应该完成下述
17、四份文档资料:1.系统规格说明:系统规格说明:主要描述目标系统的概貌、功能要求、性能要求、运行要求和将来可提出的要求。包括:数据流图;描述主要算法描述;用户需求和系统功能之间的参照关系等。书写文档-22. 数据要求:数据要求:主要包括数据字典,描绘数据结构的层次方框图,对存储信息(数据库或普通文件)分析结果。3. 用户系统描述:用户系统描述:从用户使用系统的角度描述系统,相当于一份初步的用户手册。内容包括系统功能和性能的扼要描述,使用系统的主要步骤和方法,系统用户的责任等。4. 开发计划:开发计划:进度计划等。2.系统设计2.1概要(总体)设计概要(总体)设计 划分出组成系统的物理元素程序、文
18、件、数据库、人工过程和文档等等,但是每个物理元素仍然处于黑盒子级,这些黑盒子里的具体内容将在以后仔细设计。总体设计阶段的另一项重要任务是: 设计软件的结构 确定系统中每个程序是由哪些模块组成 确定模块相互间的关系2.1详细设计 详细设计阶段的根本目标根本目标: 如何实现所要求的系统,也即要对目标系统进行精确描述,为编码阶段的程序书写做准备。 详细设计阶段的任务任务: 还不是具体地编写程序,而是要设计出程序的“蓝图”,程序员根据这个蓝图写出实际的程序代码。因此,详细设计时应该考虑程序代码的质量。即衡量程序的质量不仅要看它的逻辑是否正确,性能是否满足要求,更主要的是要看它是否容易阅读和理解。 软件
19、总体设计确定了软件总体设计确定了软件结构软件结构,即确定模,即确定模块的划分、模块间的接口。一般可用软件块的划分、模块间的接口。一般可用软件的的总体框架图总体框架图来表示。来表示。 软件详细设计(也称软件算法设计、软件软件详细设计(也称软件算法设计、软件过程设计、软件逻辑设计)过程设计、软件逻辑设计)确定每个软件确定每个软件模块的实现算法模块的实现算法。可用。可用程序流程图程序流程图描述、描述、或用或用伪代码伪代码描述。描述。 写出系统设计说明书写出系统设计说明书: :3.编码与单元测试1.编程语言的选择编程语言的选择 编程语言的选择应从以下方面进行考虑: 程序员的知识程序员的知识如果和其他标
20、准不矛盾,那么应该选择一种已经为程序员所熟悉的语言。 软件可移植性要求软件可移植性要求如果目标系统将在几台不同的计算机上运行,或者预期的使用寿命很长,那么选择一种标准化程度高、程序可移植性好的语言就是很重要的。 软件的应用领域软件的应用领域所谓的通用程序设计语言实际上并不是对所有应用领域都同样适用,因此,选择语言时应该充分考虑目标系统的应用范围。2.编码风格与规范编码风格与规范 源程序代码的逻辑简明清晰、易读易懂是好程序的一个重要标准,为了做到这一点,应该遵循下述规则:(1)程序内部的文档(如:“匈牙利”法则 ) 选取含义鲜明的名字,使它能正确地提示程序对象所代表的实体。如果使用缩写,那么缩写
21、规则应该一致,并且应该给每个名字加注解。命命名名规规范范 通常在每个模块开始处有一段序言性的注解,简要描述模块的功能、主要算法、接口特点、重要数据以及开发简史。 插在程序中间与一段程序代码有关的注解,主要解释包含这段代码的必要性。 对于用高级语言书写的源程序,不需要用注解的形式把每个语句翻译成自然语言,应该利用注解提供一些额外的信息。 应该用空格或空行清楚地区分注解和程序。 程序清单的布局对于程序的可读性也有很大影响,应该利用适当的阶梯形式使程序的层次结构清晰明显。注注释释代代码码格格式式(2)数据说明数据说明的次序应该标准化(例如,按照数据结构或数据类型确定说明的次序)。当多个变量名在一个语
22、句中说明时,应该按字母顺序排列这些变量。如果设计时使用了一个复杂的数据结构,则应该用注解说明用程序设计语言实现这个数据结构的方法和特点。(3)语句构造 构造语句时应该遵循的原则是,每个语句都应该简应该简单而直接,不能为了提高效率而使程序变得过分复单而直接,不能为了提高效率而使程序变得过分复杂。杂。不要为了节省空间而把多个语句写在同一行;尽量避免复杂的条件测试;尽量减少对“非”条件的测试;避免大量使用循环嵌套和条件嵌套;利用括号使逻辑表达式或算术表达式的运算次序清晰直观。(4)输入输出对所有输入数据都进行检验;检查输入项重要组合的合法性;保持输入格式简单;使用数据结束标记,不要要求用户指定数据的
23、数目;明确提示交互式输入的请求,详细说明可用的选择或边界数值;当程序设计语言对格式有严格要求时,应保持输入格式一致;设计良好的输出报表;给所有输出数据加标志。(5)效率 效率主要指处理机时间和存储器容量两个方面。 效率是性能要求,因此应该在需求分析阶段确定效率方面的要求。 效率是靠好设计来提高的。 程序的效率和程序的简单程度是一致的。不要牺牲程序的清晰性和可读性来不必要地提高效率。4. 测试 测试的目的就是在软件投入生产性运行之前,尽尽可能多地发现软件中的错误可能多地发现软件中的错误。 目前软件测试仍然是保证软件质量的关键步骤。软件测试在软件生命周期中横跨两个阶段。通常在编写出每个模块之后就对
24、它做必要的测试(称为单元测试),模块的编写者和测试者是同一个人模块的编写者和测试者是同一个人,编码和单元测试属于软件生命周期的同一个阶段。对软件系统进行各种综合测试,通常由专门的测试人员承担这项工作。控制网平差软件设计与实现 需求分析 系统设计 编码与单元测试 综合测试重点:需求分析与系统设计重点:需求分析与系统设计控制网平差软件需求分析 总体描述总体描述: 控制网平差程序对野外控制网观测数据进行平差数据处理,其目的就是根据最小二乘原理,消除网中的各种几何矛盾,求出全网各待定元素(未知点的平面坐标或三维坐标)。 功能需求 1.优化设计优化设计:根据控制网的观测精度与网形,全面评定网的精度 2.
25、数据输入数据输入:表格化输入、图形化输入、外部数据倒入 3.概算概算:自动完成各方向的曲率改正及边长的高程归化与投影改化,近似坐标的推算等。 4.平差计算平差计算:对观测数据进行精密平差计算,得到平差后的点位坐标,方向观测值,边长观测值等,精度评定。 5.成果输出成果输出:控制网图形输出,平差结果报表及其输出,绘制误差椭圆,打印输出等。 6.其它功能其它功能:粗差探测与剔除、方差分量估计、闭合差计算、坐标转换、换带计算等。 对以上每项功能还需细化数据描述 1.已知数据已知数据 已知边、已知方位角、已知点位坐标、测角先验精度信息、测边先验精度信息,气象信息等2.观测数据观测数据 观测方位,观测边
26、长3.网形数据网形数据 CAD草图或近似坐标及连接信息文件4. 4.平差成果数据平差成果数据 平差后的待定点点位坐标及其精度、误差椭圆参数、平差后的方位角和边长及其精度等已知数据观测数据平差模型 最小二乘平差模型 条件平差条件平差:条件方程式较少,占用内存小,但条件方程与网形有关,很难编制通用的程序。 间接平差间接平差:一个观测值就是一个误差方程,占用内存相对较大,但易于编程解算,容易编制通用的程序 LBXVminPVVT022)(PBVxVPVxPVVTTT0, 0)(, 0PLBPBXBLBXPBPVBTTTT0PLBPBXBTTPLBPBBXTT1)()/(tnPVVT 间接平差基本原理
27、:间接平差基本原理:设:观测值为L,其权为P,相应的改正数为V,必要观测值个数为t,选定未知数X,则有误差方程根据最小二乘原理:,求极值,得:法方程:法方程的解:单位权中误差:LBXV0WAX0WAXminPVVTmin)(2WAXKPVVTT0)(02)( 222PLBKAPBXBKALBXPBAKPBLBXAKxVPVxTTTTTTTTT0WAX00WPLBKXAAPBBTTT附有条件的间接平差原理:附有条件的间接平差原理:设未知数个数为t,观测值个数为n,条件方程个数为m 误差方程:条件方程:根据最小二乘原理:在条件下,即求条件极值法,利用拉格朗日不定乘数法:即:控制网间接平差的主要工作
28、间接平差的主要工作 平面控制网的计算通常包括: 概算:概算:概算为平差前的准备工作,相当于数据的预处理 平差:平差:列出误差方程,根据最小二乘原理进行解算 编制成果表编制成果表:控制点成果 、观测成果等 概算的主要工作概算的主要工作 1.外业观测成果的整理、检查2.绘制网的略图,编制观测数据表和已知数据表3.计算近似坐标4.观测成果归化到标石中心5.观测成果改化(方向改化和距离改化)6.根据平面控制网的几何条件检查观测成果的质量,即各种闭合、附合条件的检验。 如:方位角闭合(附合)差、坐标闭合(附合)差 概算-计算近似坐标11 按方向观测值按方向观测值计算三角网中待定点的近似坐标 (前方交会)
29、ctgBctgAxxctgAyctgByyctgBctgAyyctgAxctgBxxbabakbabakb a AB Kk(1)概算-计算近似坐标22.按边长观测值按边长观测值计算三边网中待定点的近似坐标 (边长交会),先按公式(2)计算三角形的内角,再用公式(1)计算待定点的坐标ABKkabS0S1S2)2(cos102221201SSSSSA)2(cos202122201SSSSSB(2)概算-计算近似坐标33按方向和边长观测值按方向和边长观测值计算导线网中待定点的近似坐标bkaAtabtd)sin(sin)cos(cosAtdytdyyAtdxtdxxabaakabaak概算-近似坐标解
30、算方法 (1)整体解算法整体解算法:设有n个待定点,则有2n未知数,选取具有2n个独立未知数的观测值组成方程组,进行整体解算。(2)逐点解算法逐点解算法:选择已知点或已计算出坐标的点作为起算点,根据具体的图形,逐个推算出各点的坐标。 概算-观测成果归化到标石中心 KiTikTKiKiYKiyKjSMESME/ )sin(r/ )sin(C yEYKiMTETiKM)cos(iKYYMES方向观测值的归心:测站归心和照准归心 -测站偏心距,-测站偏心角, -为测站上观测改正方向的方向观测值 -照准偏心距,-照准偏心角,照准归心与测站归心相同边长观测值的归心:-为照准点上观测改正方向的方向观测值概
31、算-观测成果改化 野外观测是地球表面,而参考面是地球椭球面,计算是在高斯平面上。方向改化和距离改化就是要将椭球面上的观测值归化到高斯平面上。23)2()(miKkikiiKYSfSYYXXf22;2mkimRfYYY本地区的地球平均半径mR式中: 方向改化:距离改化:平差计算 1.列出误差方程及条件式列出误差方程及条件式 2.定权定权 3.组成法方程组成法方程 4.解算法方程解算法方程,求得dX=dx1 dy1 dx2 dy2 5. 平差后的坐标值计算平差后的坐标值计算X=X+dX。 6.精度评定精度评定,计算误差椭圆参数等平差计算-1误差方程式及条件方程式的列立 以未知点坐标为平差对象,一个
32、观测值对应一个误差方程式,误差方程式包括两类:方向观测误差方程式和边长观测误差方程式 (1)方向观测误差方程式)方向观测误差方程式 ijjijjijiijiijiijlYbXaYbXaZV00 00 cos,sinijijijijijijDTbDTaijijiijLTZl000iZ)(00000ijijijXXYYarctgTijjijjijiijlYbXaZVijiijiijiijlYbXaZVijiijlZV 一般形式: 其中: ,一般取测站起始方向(零方向)的近似坐标方位角作为定向角近似值 , 当测站点i为已知点时:当照准点j为已知点时:当侧站点和照准点都为已知点时: 史赖伯一次约化史赖
33、伯一次约化iZinninniniiniinijikkikkikiikiikikijjijjijiijiijijlYbXaYbXaVlYbXaYbXaVlYbXaYbXaV. in1jjijjijiiiiil)YbXa(YbXaV对各测站误差方程采用史赖伯一次约化消去定向角未知数,即消去上各式中而增加一个和方程式和方程式,则对于某i测站其方向观测误差方程式为: 其权为1 其权为:-1/n和方程式为和方程式为:ijjijjijiijiijijlYTXTYTXTV0000sincossincosijijijSSl00ijSijSijjijjijijlYTXTV00sincosijiijiijijlY
34、TXTV00sincos(2)边长观测误差方程式)边长观测误差方程式 ,为近似坐标计算而得,为实测边长当照准点j为已知点时:当测站点i为已知点时:0ijjijjijiijiijwYbXaYbXaijaijbijijijTTw00ijTijT0ijjijjijwYbXa0ijiijiijwYbXa(3)方位角条件方程式)方位角条件方程式 和 与方向观测误差方程中的意义一致,为计算值,为 已知固定值。当照准点j为已知点时:当测站点i为已知点时:0sincossincos0000ijjijjijiijiijwYTXTYTXTijijijSSw00ijSijS(4)边长条件方程式)边长条件方程式 式中
35、:,由近似坐标计算而得,为已知的固定边 平差计算-2定权 根据先验方向观测中误差和边长观测中误差来定权(1)方向观测值的权)方向观测值的权 在等精度方向观测的控制网中,可把方向观测值的权定为1,不同精度的观测网中,则选择其中一种作为单位权中误差u(单位:秒),其它方向观测值中误差为m(单位:秒),则22mp平差计算平差计算-2定权定权 22ssmp)10(4SBAmsBSms 5rmcmSimsi5 .0 5 (2)边长观测值的权边长观测值的权 其中边长中误差可由或A为测距仪常数误差(厘米),B为测距仪比例误差因子。在导线网中一般取方向观测值中误差为单位权中误差 边长测量中误差,可假设单位权中
36、误差则方向观测权注意:以上定权的方式还不是严密的,因为角度和边长是不同的观测量,可采用赫尔默特方差份量估计,迭代定权。(单位:厘米),计算观测方向中误差则方向观测值的权为1,观测边权为100Si。例:例:平差计算平差计算-3组成法方程组成法方程 分两种情况: (1)保留观测值方程组的系数阵和常数项保留观测值方程组的系数阵和常数项,待所有的误差方程组成完毕后,再根据间接平差原理,利用矩阵运算公式,计算法方称的系数阵和常数项。 (2)不保留观测值方程组的系数阵和常数项不保留观测值方程组的系数阵和常数项,利用间接平差中法方程具有可加性的特点,由一个误差方程式即可组成与其相应的部分法法方程系数和常数项
37、,然后把这些部分的法方程系数和常数项再累加起来就是由所有的误差方程得到的总体法方程式。 niiTTmmiiibipbiPBBbbbbbibnnbbbB1)1(21,.,) 1(.21 如果有条件式,按附有条件的间接平差法,把条件式逐个的如果有条件式,按附有条件的间接平差法,把条件式逐个的排放在由误差方程式组成的法方程后续的对应行和列中即可。排放在由误差方程式组成的法方程后续的对应行和列中即可。平差计算平差计算-解算解算4.法方程式的解算法方程式的解算 对法方程系数阵求逆,然后乘以法方程常数项即可求得未知数的改正数。5.计算坐标值计算坐标值 求得平差后的坐标值X=X+dX。因为只有dx很小时误差
38、方程式、条件方程式才是严密的,因此当dX的值较大时应把X=X_+dX作为新的近似值重复1-3步,直到dx中绝对值最大的一个小于给定的限值。平差计算平差计算-精度评定精度评定1 PVVTPVVTXPLBPLLPVVTTTT)(PLBPLLTT与PVVTtnPVVmT0(1)残差平方和残差平方和 与单位权中误差的计算与单位权中误差的计算 如果保存了误差方程的系数和常数项,则可以把解算法方程得到的未知数的改正数代入误差方程求得V然后,再直接求出。也可以利用约化的公式,待法方程解算出来后即可求得 中误差计算:,n为观测值个数,t为未知数个数在组成法方程的时候就可以计算出平差计算平差计算-精度评定精度评
39、定2(2)未知数的协因数阵)未知数的协因数阵 由于采用了坐标平差法,实际上法方程系数矩阵的逆就是未知数的协因数阵。它是进行精度评定的基本数据1)(PBBQTx平差计算平差计算-精度评定精度评定3(3)平差后边长与坐标方位角的精度评定)平差后边长与坐标方位角的精度评定 平差后边长与坐标方位角可由坐标平差值反算而得。因此,待定边的坐标方位角的权函数式为:待定边的边长的权函数式为:XfYbXaYbXaFTjijjijijiijDXfYbXaYbXaFTjijjijijiijT按协因数传播律可得未知数函数的权倒数:fQfQXTF精度计算FQmm0平差计算平差计算-精度评定精度评定4(4)待定点点位误差
40、)待定点点位误差yyyxxxQmmQmm00,220yxkmmmm平差计算平差计算-精度评定精度评定55误差椭圆元素计算误差椭圆元素计算yyxxxyQQQarctgQ221)90(,000QtgQQmEtgQQQmExyxxxyxx长半径方位角长半径、短半径数据流图导线网平差系统观测数据平差结果数据测量员测量员平差数据处理系统观测数据平差结果数据数据输入系统 数据输入数据传输观测数据表格化输入观测数据图形化输入外部文件倒入全站仪电子手簿观测文件观测手簿系统标准格式的观测数据 数据预处理系统标准格式的观测数据已知数据先验精度数据气象数据观测数据改化近似坐标概算近似坐标数据改化后的观测数据 平差处
41、理已知数据先验精度数据近似坐标数据改化后的观测数据组成误差方程法方程组成与解算误差方程系数与常数项未知数改正数观测值改正数协因数精度评定平差后的坐标值计算 精度评定参数平差后未知点坐标 平差成果的报表与输出报表制作网图形绘制误差椭圆绘制平差后的所有成果数据控制点成果表观测数据表精度统计表控制网图形误差椭圆图形导线网平差系统设计-总体(概要)设计系统的总体框架 导线网平差系统数据输入数据预处理平差计算成果输出实用工具系统帮助导线网平差系统设计-详细设计1.数据输入模块 数据输入 数据编辑数据格式数据传输表格化输入图形化输入外部数据倒入数据文件数据库表格式数据输入示例图形化数据输入数据格式设计数据
42、格式的基本原则:设计数据格式的基本原则: (1)方便数据的读写 (2)节约存储空间 (3)格式要简洁易懂数据文件的组成:数据文件的组成: 文件头:文件头:包括描述主体数据的数据(如:主体数据的类型、格式等)以及少量的非主体数据。 主体数据体:主体数据体:一般有格式固定的多条数据记录组成。控制控制网观测数据格式设计网观测数据格式设计文件头:文件头:测量员、记录员、观测日期、气象参数、角度边长观测先验精度、测站总数、文件头结束标志。每一行记录一个数据,行的起始记录数据类型,如:Surveyor, NameRecorder, NameDate, #-#-#Meteorogy, Temperature
43、, Pressure, HumidityAngleAccuracy, No, #DistanceAccuracy,No, A, BStation Count, #END Header 主数据体: 已知数据:已知数据: 已知数据类型标识,已知数据体 Coor, PointNo, X,Y,H Dist,StartPointNo,EndPointNo, # Angle,StationPointNo,ObjPointNo,#观测数据观测数据:观测数据起始标志测站点号,照准点个数照准点号,观测值类型(D/A),观测值,观测值精度编号 观测数据结束标志2.数据预处理模块数据预处理标石中心归化改化坐标概算坐标概算条件检验测站偏心归化照准偏心归化距离改化方向改化角度闭合差坐标闭合差坐标概算算法i=1 to n查找与i点相联系的 已知点j(j=1 to m)计算i点近似坐标i坐标已知或已算出查找与j点相联系的 已知点k(k=1 to r)是是否否否是记录该点坐标已知或已算的点等于总点数i=i+1i=i+1否是计算完毕3.平差计算模块平差计算矩阵运算误差方程组成法方程组成与解算精度评定方向误差方程系数与常数项计算距离误差方程系数与常数项计算单位权中误差计算点位中误差计算方位角与边长中误差计算误差椭圆参数计算