已阅读5页,还剩59页未读, 继续免费阅读
(信息与通信工程专业论文)基于敏捷方法的卫星导航地面站数据库系统设计与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
国防科学技术大学研究生院硕士学位论文 摘要 在我国自主卫星导航系统研制过程中,地面站数据库系统负责存储业务数据 以满足精度分析和故障诊断需要,是整个系统联合调试测试的基础,因而必须对 大系统的数据需求变化和设计更新迅速做出相应变更,以保证试验和研制工作高 效开展。基于这个特点,本文深入研究了敏捷方法在数据领域的应用模式和改进 办法,主要工作和结论如下: 第一,分析了敏捷数据库方法的过程模型,并结合可靠性要求在项目规划、需 求获取和软件架构设计等方面对过程模型做出改进。改进的内容包括:提出了基 于沟通与合作的敏捷数据库项目团队交互模型,指出传统d b a 向敏捷d b a 的转 换是模型的关键:提出以d b a 为沟通桥梁和技术核心的团队架构,针对d b a 和 应用程序小组的整体进行绩效考核;把“用户故事”卡片的实践方式改良为“用 户审核”卡片,最后给出了改进后的模型描述。 第二,深入研究了敏捷数据库方法实施的两大关键技术:数据库重构和设计 模式。 ( 1 ) 总结了数据库重构原则:封装数据访问、控制变更风险、转换期策略;指 出数据库重构的本质是一种变更控制技术,项目开发过程中,对需求变化和设计 改进等数据库变更,都可应用数据库重构来帮助实现安全高效的迭代:以解决“卫 星数据快速存储问题 为例,详细给出数据库架构重构的过程,并分析了重构效 果。 ( 2 ) 针对设计模式在提高软件可维护性方面的作用,本文提出设计模式也是敏 捷方法的重要关联技术,对敏捷开发活动具有重要支持作用。提出设计可分为功 能设计和架构设计,适当的架构设计可以提高软件灵活性,敏捷项目前期的设计 工作应“局限”于架构设计。应用设计模式改善架构设计,可以有效避免软件后 期的重大重构,同时设计模式也为重构活动提供了目标和边界。 第三,对软件最终实现和敏捷方法实施中进度控制的效果进行了量化分析, 应用挣值法跟踪了软件开发过程的进度状况,研究表明,在敏捷过程下,每次小 版本发布都是可操作的软件,挣值统计的准确度比传统过程方法的情况下要高。 根据挣值统计结果,提出挣值分析结合敏捷方法是数据库项目开发和实施的有效 的管理解决方案。 论文的研究成果已在北斗二号地面运控系统地面站数据库研制中得到应用, 并对其他高可靠性数据库系统的开发具有参考意义。 第j 页 国防科学技术大学研究生院硕士学位论文 主题词:敏捷数据库重构设计模式 第i i 页 国防科学技术大学研究生院硕士学位论文 a b s t p a c t b a s e do nt h ep r o b l e mt h a tt h er e q u i r e m e n t sc h a n g er a p i d l yd u r i n gt h ed e v e l o p m e n t o ft h eh i g ha v a i l a b i l i t yd a t a b a s ei nt h es a t e l l i t en a v i g a t i o ns y s t e mg r 9 u n ds t a t i o n ,t h i s d i s s e r t a t i o nf o c u s e so nt h ea p p l i c a t i o na n dm o d i f i c a t i o no fa g i l em e t h o da p p l i e di n d a t a b a s ed e s i g n t os u mu p ,s o m ei m p o r t a n tc o n c l u s i o n sa r ea sf o l l o w s : f i r s t ,t h ep r o c e s sm o d e lo fa g i l ed a t a b a s em e t h o di se s t a b l i s h e da n di m p r o v e d , c o n c r e t e l y ,a 0 i n t e r a c t i v em o d e lb a s e do nc o m m u n i c a t i o na n dc o o p e r a t i o no ft h ea g i l e s o f t w a r et e a m ,s t r e s s i n gt h ec o n v e r s i o nf r o mt r a d i t i o n a ld b at oa g i l ed b a ,i sp r o p o s e d at e a ms t r u c t u r ew i t ha g i l ed b aa st h ec o m m u n i c a t i o nc e n t e ra n dc h i e fd e v e l o p e ri s e s t a b l i s h e d am e t h o do fp e r f o r m a n c ea s s e s si sp r o p o s e dt h a tt h ed b aa n dt h et e a mo f a p p l i c a t i o n a r et r e a t e da saw h o l ea n dt h eu s e rs t o r yc a r di s s u b s t i t u t e d 、析t hu s e r a u d i t i n gc a r dt om a k ec l e a rt h a tt h ed u t yo fr e q u i r e m e n t sa n a l y s i sn e v e r b et r a n s f e r r e dt o t h ec l i e n t a g e n t s a tl a s t ,ap r a c t i c a lp r o c e s s m o d e lo fa g i l ed a t a b a s em e t h o d i m p l e m e n t a t i o ni sp r o v i d e d s e c o n d ,t w om a i nk i n d so fa g i l ed a t a b a s em e t h o di m p l e m e n t a t i o nt e c h n o l o g ya r e d e e p l yr e s e a r c h e di nt h ed e v e l o p m e n to ft h ed a t a b a s es a t e l l i t en a v i g a t i o ns y s t e mg r o u n d s t a t i o n :d a t a b a s er e f a c t o r i n ga n dd e s i g np a t t e r n ( 1 ) t h ep r i n c i p l e o fd a t a b a s e r e f a c t o r i n g i s s u m m a r i z e d ,i n c l u d i n g t h e e n c a p s u l a t i o no fd a t a b a s ea c c e s s ,c o n t r o lo fc h a n g i n g r i s ka n dt h es t r a t e g yo f c o n v e r s i o nt i m e ,d a t a b a s er e f a c t o r i n gi sa p p l i e di nt h ee v o l u t i o no fd a t a b a s es c h e m at o a d a p tt h ec h a n g eo fr e q u i r e m e n t sa n ds a t i s f yt h ed e s i g nt a r g e t a n dt a k et h es o l u t i o no f “s a t e l l i t ed a t af a s t s t o r a g ep r o b l e m a se x a m p l e ,t h ep r o c e s so fr e f a c t o r i n g i s d e m o n s t r a t e d w h a t sm o r e ,t h er e s u l to fr e f a c t o r i n gc a nb ec o n s i d e r e da sal o w - c o s t s o l u t i o nt ot h i sp r o b l e m ( 2 ) b e c a u s ed e s i g np a t t e mc a np r o m o t et h em a i n t a i n a b i l i t ys o f t w a r e ,i t sr e g a r d e d a sar e l a t i o n a lt e c h n o l o g yo fa g i l ed a t a b a s em e t h o d t h ec l a s s i f i c a t i o no fd e s i g na s f u n c t i o nd e s i g na n ds t r u c t u r ed e s i g ni sc l a i m e da n dt h el a t t e ri st h e a p p l i c a t i o nf i e l do f d e s i g np a t t e r nt og a i ns o f t w a r ef l e x i b i l i t y , w h i c hi se f f e c t i v ei na v d i d i n gj a r g es c a l e r e f a c t o r i n gi nt h el a t es t a g eo fs o f t w a r ed e v e l o p m e n t ,a n da tt h eg a m et i m ed e s i g n p a t t e r na c ta st h eo b j e c ta n de d g eo fr e f a c t o r i n g t h i r d ,t h ee f f e c to ft h ef i n a lr e l e a s ea n dt h es c h e d u l ec o n t r o lo fa g i l ed a t a b a s e m e t h o di t s e l fi sa n a l y z e d e v m ( e a m e dv a l u em e t h o d ) i sa p p l i e dt ot r a c kt h es c h e d u l eo f s o f t w a r ed e v e l o p m e n t t h a n k st ot h ep o i n tt h a ta g i l em e t h o dc o n s i s t e n t l yp r o v i d e s u s e a b l es m a l lr e l e a s e ,t h ep r e c i s i o no fe v mi nt h ea g i l ep r o c e s si sa p p a r e n t l yh i g h e r t h a nt h et r a d i t i o n a lp r o c e s s e v m ,t o g e t h e rw i t ha g i l em e t h o d , a c ta sae f f e c t i v es o l u t i o n i n t h ed e v e l o p m e n ta n di m p l e m e n t a t i o no fd a t a b a s ep r o j e c t 。 t h er e s u l t so ft h i sd i s s e r t a t i o nh a sa l r e a d yb e e na p p l i e di nt h ec o n s t r u c t i o no ft h e 第i 页 国防科学技术大学研究生院硕士学位论文 d a t a b a s ei nt h eg r o u n ds t a t i o no fo u rs a t e l l i t en a v i g a t i o ns y s t e ma n db eu s e df o r r e f e r e n c eb yo t h e rh i g ha v a i l a b i l i t yd a t a b a s es y s t e m k e yw o r d s :a g i l e d a t a b a s er e f a c t o r i n g d e s i g np a t t e r n 第i i 页 国防科学技术大学研究生院硕士学位论文 表目录 表4 1数据库模式转换期同步策略比较2 0 表a ,1 预算计划表:一5 5 表a 2 实际成本表 5 5 表a 3 挣值统计表5 6 第1 i i 页 国防科学技术大学研究生院硕士学位论文 图目录 图1 1 卫星导航地面运控系统功能和数据通信示意图1 图2 1瀑布模型编码阶段数据库项目团队交互模型7 图2 2 、敏捷数据库方法的团队交互模型8 图2 3 瀑布模型开发路线图_ 8 图2 4 瀑布模型和极限编程在建模和构建阶段的开发路线图对比9 图2 5 敏捷数据库开发活动集9 图2 6 项目团队组织结构图1 1 图2 7 改进的敏捷数据库方法过程模型1 4 图3 1数据库回归测试实施方法:1 7 图3 2 地面站数据库变更的统一执行模型2 2 图3 3 业务和日志初始数据模型2 2 图3 4 数据存储软件结构体系图2 3 图3 5 业务和日志修改后的数据模型2 4 图3 6 数据存储程序修改体系结构对比2 4 图3 7 “替换列”重构的数据库模式更新过程图2 5 图3 8 数据查询程序修改体系结构对比2 6 图3 9 功能设计和架构设计的迭代路线图2 8 图3 1 0 数据查询的架构3 0 图3 1 1数据解析的电文格式选择3 0 图3 1 2 s t r a t e g y 模式结构图。3 1 图3 1 3 解析模块类设计图和策略模式的应用结构3 2 图3 1 4 基于继承的协议解析模块类设计图3 2 图4 1 卫星导航地面站数据库系统总体架构图3 4 图4 2 软件总体逻辑结构图一3 5 图4 3 卫星导航地面站数据库系统功能模块图3 5 图4 4 数据存储软件结构图。3 6 图4 5 基于文件和数据库的数据存储方案:3 7 图4 6 数据查询软件初始化界面o 3 8 图4 7 文件整体数据回放流程- 3 9 图4 8 整体文件回放耗时统计图4 0 图4 9 数据库精确查询工作流程图4 1 图4 1 0 数据库精确查询效果曲线4 2 第1 v 页 国防科学技术大学研究生院硕士学位论文 图4 11 图4 1 2 图4 1 3 图4 。1 4 一个延误项目的挣值分析曲线图4 3 典型瀑布模型的w b s 。4 4 地面站数据库项目的w b s 4 5 项目在第4 周的进度示意图4 6 第v 页 独创性声,明 本人声明所呈交的学位论文是我本人在导师指导下进行的研究工作及取得 的研究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含 其他人已经发表和撰写过的研究成果,也不包含为获得国防科学技术大学或其它 教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任 何贡献均已在论文中作了明确的说明并表示谢意。 学位论文题目: 基王敛撞友洼数里星昱越丝亘韭数量庄丕统遮i 土皇塞塑 一z 学位论文作者签名: 查,塑日期:劢区年月乒日 学位论文版权使用授权书 本人完全了解国防科学技术大学有关保留、使用学位论文的规定。本人授权 国防科学技术大学可以保留并向国家有关部门或机构送交论文的复印件和电子 文档,允许论文被查阅和借阅;可以将学位论文的全部或部分内容编入有关数据 ? 库进行检索,可以采用影印、。缩印或扫描等复制手段保存、汇编学位论文。 ( 保密学位论文在解密后适用本授权书。) 学位论文作者签名: 作者指导教师签名: 日期:沙彤年月修日 日期:7 协彦年,月户日 国防科学技术大学研究生院硕士学位论文 第一章绪论 1 1 课题背景 111 卫星导航系统地面站的数据管理 全球卫星导航系统g n s s ( g l o b a ln a v i g a t i o ns a t e l l i t es y s t e m ) 是以人造卫星作 为导航台的无线电导航系统,其特点在于能够为陆、海、空、天各类军民载体, 提供全天候的连续高精度位置、速度和时间信息1 n 2 3 1 1 4 1 。鉴于卫星导航在经济生 活和国防领域方面的重要意义,我国在2 0 0 3 年初步建设起了北斗一号卫星导航定 位系统,并投入使用。前不久的“51 2 ”汶川特大地震,“北斗一号”在抗震救灾 中发挥重要作用。我国第二代自主卫星导航系统“北斗二号”也正在建设当中。 g n s s 通常由三个段口l 组成:广播信号的空间段、多个地面站组成的控制段和 各种接收机组成的用户段。其中,控制段由多个地面站组成负责监测、指挥和 控制卫星星座。这些地面站通常分为三类,包括:主控站、监测站和上行注入站”, g p s 系统中三类地面站的功能和数据通信可归纳如图11 表示 淞吣卫篡 盏鬣蔷 1 星芝量耋:;:据产2 衄s 系统# ,性能* m 自 图1 1 卫星导航地面运控系统功能和数据通信示意图【9 第l 页 国防科学技术大学研究生院硕士学位论文 这三类地面站通过卫星通信网和远程地面网进行通信,协同工作,对整个 g n s s 系统起到运营控制的管理功能。 主控站是控制段的功能中心,它通过收集和处理监测站提供的原始伪距、载 波相位和气象信息等测量值,由此产生精确的卫星星历预测和时钟估计,并进一 步把卫星星历和控制信息传送给地面上行天线,用于控制卫星轨道、时钟测定和 同步,电文注入等; 在北斗二号的研制过程中,主控站中的数据处理与监控分系统除了实现与外 场站通信,星地、站间和激光测量,系统调度与监控等功能之外,还存储了数据 通信链路中经过主控站的系统运行业务数据和关键状态信息。因为卫星导航系统 体系复杂,技术难点多,这些数据和信息是北斗二号研制过程中进行指标精度分 析和故障诊断的主要依据,对它们进行稳定高效的采集和存储具有重要意义。因 此,数据库系统也因而成为数据处理与监控分系统的重要组成部分,本课题的实 践项目就是研制满足我国自主卫星导航系统需求的地面站数据库系统。 1 1 2 地面站数据库系统开发与敏捷数据库方法 地面站数据库是我国北斗二号卫星导航定位系统建设的子项目。大系统的研 制过程中,有多种原因需要查询历史业务数据。比如,为验证某项设计是否合理 有效而进行的大量试验,试验数据可以帮助分析设计缺陷;而系统进入了运行维 护阶段后,任何的故障或性能下降,都依赖于查询并分析业务数据来找到原因。 因此,系统的主要设计目标可以总结为:对不间断的导航业务数据进行有效 存储,并保证用户能及时高效地查询到历史业务数据,为测试试验、精度分析和 故障诊断提供数据服务。 从系统总体方提供的研制要求报告中分析,作者认为地面站数据库系统业务 逻辑比较简单,因为用户的查询暂时只关注故障时间和故障通道。数据库系统只 需要把各个终端采集的数据按照协议解析并存入数据库即可供用户查询。尽管项 目工期比较紧张,但作者认为依据系统总体方的研制说明书对项目进行规划后, 能够顺利实施。 进一步需求调研发现,本系统从设计指标到项目规划都应该与北斗二号大系 统的建设保持协同,以配合北斗二号大系统建设过程中的技术试验和各种稳定性 测试。随系统建设逐步铺开,数据管理的范围会不断增大,地面站数据库系统也 要增加存储内容。数据库系统还要面对一些不易预测的情况,比如系统总体的技 术方案进行了改动,其数据需求也很可能发生变化,以监测系统运行中的一些新 的变量,这将带来数据库模式的改变;另外,出于传输效率、安全性能等各种考 虑,系统总体方还会频繁地修改数据传输的协议,也经常就电文解析格式提出使 第2 页 国防科学技术大学研究生院硕士学位论文 用要求,若不能迅速响应用户需求变化,项目将面对进度滞后的压力。 这种情况下,寻找一种合适的软件过程方法就非常重要。敏捷软件开发方法 所强调的适应变化的原则在本项目中具有适用性。 但另一方面,地面站数据库需要为卫星业务数据存储提供7 * 2 4 小时不停机服 务,是一个高可靠性的软件系统,而敏捷方法弱化了项目规划、系统设计和文档 纪律的约束,应用于高可靠性和大型项目中必须进行改进,并和传统过程模型中 的_ 些纪律性观点相结合,才能保障大型和高可靠性软件的开发进度和质量。 本文将综合上述地面站数据库系统开发的特点,提取出其中的关键技术,作 为论文的研究点,主要包括三个方面: 1 结合地面站数据库的高可靠性要求,通过对敏捷数据库方法进行改进,扩 大敏捷数据库方法的适用性; 2 研究敏捷数据库方法的主要实施技术数据库重构和设计模式,在地面 站数据库系统开发中应用并分析效果; 3 软件工作量的度量一直缺乏有效手段,本文结合挣值分析在地面站数据库 一开发过程中,对敏捷数据库方法实施中的进度控制进行量化分析。, 1 2 课题研究现状 在传统过程模型占主流的时期,数据库开发方法学的研究就已经关注到需求 变化问题。1 9 7 8 年,文献【2 2 】中k u n i i 等人在层次模型的数据库时代就注意到了瀑 布模型对需求变化的适应性问题:1 9 8 9 年,文献 2 3 】中o e r t l y 等人已经提出数据 和应用程序同样具有演化的本质的观点。 在面向对象技术不断发展和敏捷思想兴起的背景下,2 0 0 2 年,加拿大学者s c o t t w a m b e r 系统提出了敏捷数据理论,以应对现代数据库项目的需求变化问题。他 在文献 1 1 】中首次提出了敏捷数据库方法的概念,并初步建立了这个领域的研 究体系。s c o t t 吸收了敏捷软件过程【1 0 1 1 7 】f 1 3 】【2 0 1 2 1 1 的基本思想,应用到具体的数据库 开发活动中:除了规范化与完整性约束等传统数据库设计方法学在敏捷观点下的 修正,他重点研究了对象关系映射的原则,实现安全高效的数据库模式演进的控 制方法。但他没有建立一套完整的面向数据库软件项目的敏捷过程方法模型,值 得进一步研究。 重构是敏捷数据库方法实施的关键技术,也是一个重点研究方向。重构技术 最早产生于应用程序开发中的既有代码优化研究。 1 9 9 2 年,o p d y k e 在他的博士论文中首次提出重构的概念【3 1 】,探讨了重构在 泛化、特化和组件重用等软件技术中的应用;m a r t i n f o w l e r 在文献 3 0 中系统的归 纳了代码重构的理论和方法,并给出一个被广泛接收的重构的定义:在不改变代 第3 页 国防科学技术大学研究生院硕士学位论文 码功能的前提下改善已有代码的设计质量。 2 0 0 5 年,j a c e kr a t z i n g e r 等在文献 4 6 】中采用数据挖掘的办法帮助开发人员自 动地寻找非常规的代码坏味,从而进一步改进设计质量;2 0 0 6 年,d e e p a ka d v a n i 等在文献 4 7 】中提出了另一种重构自动化的方式,通过追踪软件开发过程中版本演 进的历史信息,他们开发的工具能够自动判定不同重构之间的关联性,对关联的 重构提出实施建议。 2 0 0 6 年,s c o t t 又在文献 1 3 】中对重构技术在数据领域的应用方法做了系统性 的归纳,提出数据库重构的概念、原则和分类,并分析了数据库重构对于敏捷数 据库开发的重要意义。 2 0 0 7 年,d a n n yd i g 等人在文献 4 8 中讨论了数据库重构和数据库工件配置管 理之间的关系,并开发了一个工具用于解决数据库重构造成的配置管理工具提交 冲突问题。 国内对数据库重构研究较少,文献 1 9 1 在一个大型商用系统中实施了数据库的 整合,这是宏观层面的数据库重构,在遗留系统中有较多应用。 一由于数据库系统不能独立工作卜必须配合应用程序才能产生效益的特点,数 据库模式的重构必须和应用程序的重构结合起来,应用程序的结构必须具有一定 的灵活性和可维护性。就这个方面来说,设计模式对于实施敏捷数据开发具有重 要的意义。设计模式是另一项流行的软件技术,文献 2 4 卜 2 7 】从模式提取、模式编 目、模式形式化表达和模式与其他技术、平台以及语言融合等多个角度介绍了设 计模式的发展。文献【2 9 】在数据库领域研究了设计模式,重点关注了数据访问层的 设计。 1 3 论文章节安排 论文以实际的数据库应用系统开发项目为研究背景,总结敏捷数据库开发的 理论方法,探索其实践模式和效果,从过程模型、实施技术和应用效果三个方面 对敏捷数据库方法展开研究。 论文的章节安排如下: 1 、第一章:绪论 分析了卫星导航系统地面站的数据管理需求;总结了地面站数据库系统开发 的特点,确立了本文的研究内容,提出三个层面的研究内容,针对这三个方面梳 理了有关领域的研究现状;介绍了论文的主要工作和章节安排。 2 、第二章:敏捷数据库方法的过程模型及其改进一 从团队文化和模型描述方法两个方面建立敏捷数据库方法的过程模型;结合 地面站数据库的特点,对模型进行了改进,改进模型对高可靠性数据库项目开发 第4 页 国防科学技术大学研究生院硕士学位论文 具有参考意义。 3 、第三章:敏捷数据库方法在系统实施的关键技术 概述了敏捷数据库方法的几种实施技术;研究了数据库重构的原则和方法, 指出其本质是一种数据库变更的控制技术,因而有助于敏捷方法中快速迭代要求 的实现;分析了设计模式对于敏捷数据库开发的支持,并就应用的实例做了效果 分析。 4 、第四章:系统实现和敏捷数据库方法的效果评价 给出了地面站数据库系统各模块的实现;运用挣值分析工具对敏捷数据库方 法在项目进度控制方面做了量化统计与分析。 5 、结束语对本文的研究内容和工作意义进行了总结,并对后续工作的开展进 行了展望。 第5 页 国防科学技术大学研究生院硕士学位论文 第二章敏捷数据库方法在高可靠性项目中的过程模型改进 2 1 引言 敏捷方法强调积极响应需求变化的开发思想和现代软件开发的状况比较吻 合,因此获得普遍关注。敏捷思想有多种具体的开发实践形式,包括极限编程、 s c r u m 、水晶方法和自适应软件开发等等【9 】【1 8 1 1 3 2 ,这些过程模型共享了敏捷开发的 核心价值观,但都没有对数据库项目的开发给出专门的建议。 本章将建立描述数据库开发活动的敏捷数据库方法过程模型,并结合工程项 目的高可靠性特点,对模型进行改进。 软件的过程模型通常分为团队文化和模型描述两个层面【3 6 1 ,团队文化的倾向 性判断主要是根据该模型对人与过程的关系的看法。传统的重型过程,比如瀑布 模型,就认为严格的过程方法是保证软件进度和质量的关键。模型描述的方法主 要是模型图,用以说明过程模型中各种开发活动的组织顺序和规则应用。 本章对过程模型的研究也将从这两方面展开了2 2 节是建立了模型j 2 3 节讨 论了模型的改进,最后是本章小节。 2 2 敏捷数据库方法过程模型的建立 随着软件工程经验的积累,为了及时交付高质量的产品,项目团队在软件开 发中有意识地遵循一系列约定,这些约定的集合可以称为软件过程,主要包括: 人与过程的关系; 开发活动集与路线图; 下面,本文将从这两个方面建立敏捷数据库方法的过程模型。 2 2 1 人与过程的关系 。 传统软件过程认为应该尽量隔离人的因素,而以功能强大的编程环境与辅助 工具以及高度纪律性的重型过程方法来实施软件开发,详细而明确的文档是交流 的正规渠道,程序员间的口头约定可视为“人的因素 ,是不可靠的。简而言之, 过程比人更重要。 就数据库项目而言,在瀑布模型下开发团队实现有效沟通的难点在于在数据 小组和应用程序小组在集成之前几乎处于相互隔离状态,只通过约定的文档各自 进行开发。在编码阶段的团队交互状态可总结如图2 1 所示。 第6 页 国防科学技术大学研究生院硕士学位论文 卜钟弩嬲j ; 定义数据模型定义对象模型 图2 1瀑布模型编码阶段数据库项目团队交互模型 很明显,两个小组对照固定的文档各自工作的直接弊端就是无法有效沟通, 因而面对用户需求的变化难以快速响应和解决。 敏捷方法则从积极的视角重新认识人的因素对软件开发的影响,认为人比过 程更重要。具体表现为: 尊重程序员的性格弱点和个体差别一 强调团队信任、沟通与合作 高度重视用户反馈 事实上,本文提出的敏捷数据库方法正是把人的因素作为过程模型的核心, 强调开发团队的信任、沟通与合作,积极响应需求的变化。 具体来说,面向对象技术主导应用程序开发,而关系数据库牢牢占据商业市 场。这两种技术差别巨大,传统d b a 和应用程序员按照系统设计时的功能模块划 分各执其事,然后进行集成。数据小组按照瀑布模型进行数据建模然后在数据库 中实现,缺乏敏捷思想和不了解重构技术的d b a 无法及时有效地变更数据库模式 ( s c h e m a ) ,往往会挫败应用程序小组的敏捷努力。 敏捷数据库方法的核心之一就是实现传统d b a 向敏捷d b a 的转化。敏捷 d b a 是指积极参与一个或多个应用的数据方面的创建和演变的人,d b a 的这种角 色转变实际上集中反映了敏捷数据库系统开发的特点: l ,敏捷d b a 在观念上有突破。d b a 的首要客户不再仅仅是初始的数据需求, 在传统习惯上与之存在“鸿沟”的应用程序员也是敏捷d b a 的重要客户。 d b a 和应用程序员相互理解并尊重,频繁交互,关注其代表的易变的具 体需求,整个开发团队因此更加重视交互与合作。 2 敏捷d b a 在技术上是敏捷的,认可需求的变化,并通过持续重构使得数 据库更加适应频繁的需求变化,持续交付可用的“数据库 。敏捷d b a 的这种工作方式将消弭传统d b a 和应用程序员之间的“过程失配 。 第7 页 国防科学技术大学研究生院硕士学位论文 3 敏捷数据库开发要求敏捷d b a 兼有对象技术和数据知识,特别强调敏捷 d b a 的解决“对象关系技术失配 问题的能力,合理地把应用程序方案 映射为数据方案,并对编写的面向数据的代码进行性能优化。 由以上分析,对比瀑布过程的数据库项目团队交互模型,本文提出一个敏捷 过程的对应交互模型,可用图2 2 表示。 i j、o _ j | 。v r j - 。j 7 应用程序小组 ,i 。j :1 1 、7i | j :之j $ j 夕询 jj1 一测试人员、v “i ; 囊数据小组:; - 。应用程序员 - = ,s q 曜序具。:”j 叠、一,;,。,。, ,| 一,一:_ 7 :; 组织重构对象关系映射组织集成 图2 2 敏捷数据库方法的团队交互模型 敏捷d b a 充当了整个开发团队的沟通桥梁,带动所有项目人员以信任、沟通 与合作的方式展开工作。 2 2 2 开发活动集和路线图 第8 页 国防科学技术大学研究生院硕士学位论文 l i 沟通 : 建模、构建 : 部署 嚣布梗型擞限编程 图2 4 瀑布模型和极限编程在建模和构建阶段的开发路线图对比 图2 4 以极限编程的开发路线图为例验证了敏捷开发的一些观点: 小版本和快速迭代 测试驱动开发 简化设计并通过重构改善设计 但这些基于应用程序开发总结出的开发路线图并没有反映数据库项目的特殊 开发活动,模型比较空泛。 事实上,描述敏捷数据库方法过程特点的更合适的工具是开发活动集。与开 发路线图相比,开发活动集包括一些更具体更微观的开发行为。图2 5 展示了s c o t t 图z 5 敏捷数据厍开发活动集 这个架构图并不完备,比如不包括项目管理、测试和部署等行为,只包含了 数据库项目建模与构建活动中最基本的开发行为,它们构成了敏捷数据库开发的 活动集。最核心的一点是,必须认识到这个架构不是串行的,没有方向和顺序, 没有起始点和结束点,项目的进展依赖于各种开发活动之间的迭代,以获得持续 改进。比如敏捷d b a 根据对象模型和数据模型来确定对象关系映射方案,也可 第9 页 国防科学技术大学研究生院硕士学位论文 能根据映射中的难点建议并组织修改对象方案或者数据方案。 综上所述,通过传统d b a 向敏捷d b a 的转变,数据库开发的工作模式发生 了很大改变,最根本的是开发流程不再是串行的,而是迭代的,可以通过开发活 动集很好地描述。 2 3 过程模型在地面站数据库项目中的改进 2 3 1 改进的背景和原则 总的来说,敏捷过程尤其适用于需求多变的小型项目,文献 2 0 】以极限编程为 例,分析了敏捷方法对于大型软件开发缺乏独立的质量保证和项目整体规划的问 题。 作者所在课题组对卫星导航地面站数据库系统项目立项时,考虑到这是一个 高可靠性系统,专门对敏捷数据库方法进行可行性分析,有两点结论: 1 包括敏捷过程在内,任何软件过程都不可能具备普遍的团队文化适应性。 大部分程序员即便承认传统过程中繁琐的变更管理制度和撰写大量文档的必 要性,也会在实际工作中持反感情绪;而敏捷过程强调积极应对变化,就敏捷d b a 而言,将承担更多的责任和工作,他也可能对这种任务分配方案持有意见。 2 敏捷方法自身没有对软件后期的进度控制给出预先的估计方法。 对于预算既定和时间节点明确的软件项目,传统过程方法把任务写迸文档, 驱动开发并控制进度和项目状态;而敏捷过程可能在项目初期带来清晰的预测和 适应,但对整个项目的成本、项目的全面规划,敏捷方法没有明确的建议。 3 敏捷数据库方法的开发活动集描述方法缺乏实际指导性。 2 2 节中描述的敏捷数据库开发活动集阐释了方法的本质,但操作性不强,而 且不容易融合进质量控制的其他手段。 可见,要想利用敏捷数据库方法来解决项目需求来自外部且不易明确的问题, 必需进行一定的修改,吸取传统过程方法和敏捷思想的各自长处,应用到系统开 发中去。 本文认为,敏捷方法最大的优点在于重新认识了人的因素。传统的过程方法 认为应该以共享的编码规范、强大的开发工具和高度纪律性的过程约束来尽量隔 离人的因素;而敏捷过程认可人的个性、差别甚至缺点,强调信任、沟通与合作。 这种团队文化能够显著提高程序员的主动性和参与度。 综上分析,本文在敏捷数据库方法实施过程中进行改进的原则是: 坚持敏捷d b a 作为团队的沟通桥梁; 提升敏捷d b a 的角色地位; 第1 0 页 国防科学技术大学研究生院硕士学位论文 根据人员的特点来组织团队; 增加设计阶段以把握软件架构发展; 对关键节点的文档实施审查; 总结出更具指导性的模型描述方法。 2 3 2 团队组织 整个项目团队中有三种主要角色:项目负责入、开发小组和最终用户。开发 小组进行数据库和前端应用程序的设计与开发、最终用户配合开发人员确定项目 的真实需求。其组织结构如图2 6 所示。 图2 6 项目团队组织结构图 项目负责人进行项目进度管理和质量监控,还负责团队内部关系的协调和制 度管理,保障实施敏捷开发的氛围,调动成员的主动性,积极交流,确定共同目 一 标。 四人组成的开发小组中包括敏捷d b a ,应用开发人员( 2 人) 和软件测试人 口 贝o 敏捷d b a 是小组的核心,是对数据读写需求最清楚的项目成员,不仅要负责 建立起一个稳定合理的数据模型,还要和应用开发人员共同确定对象建模方案, 并对整个软件系统的架构负主要责任,确定数据访问的基本形式。应用开发人员 保持和敏捷d b a 经常沟通客户需求的变化状况,共同讨论仅在应用程序进行重构 来解决这种变化,还是把重构扩大到数据库模式( s c h e m a ) 。测试人员和敏捷d b a 共同决定数据库回归测试套件的设计,和应用开发人员_ 起讨论对象测试用例的 生成o 最终用户在本项目组中,是重要的成员,用户的反馈代表了真实需求。本项 目的顺利实施有一个重要的因素,就是具有贯彻。“现场客户”原则的便利条件。 第1 1 页 国防科学技术大学研究生院硕士学位论文 卫星导航地面站数据库系统的需求是高度外部关联的,但它是长期联调的大系统 中的一个子系统,所有“客户 在联调过程中不断反馈信息。卫星导航采购管理 系统是研发中心内部建设项目,开发小组可以随时和客户面对面的沟通。敏捷 d b a 、开发人员和测试员都会就实施结果向最终客户征求反馈意见。 2 3 3 整体绩效 瀑布模型加深了数据人员和应用开发人员的隔离。应用程序员可能抱怨d b a 们顽固,不肯正视软件需求正在演变,数据模型必须更改;d b a 可能坚持数据模 型稳定性的意义,指责应用程序员完全不懂得关系数据库的工作方式。 本文中,经过改进的敏捷过程敦促d b a 和应用程序员共同工作,并且敏捷 d b a 需要负责决定用户需求变更的解决办法,如果修改数据库模式( s c h e m a ) 更加 合理,敏捷d b a 可能需要频繁地修改数据库模式和数据访问层设计。这大大增加 了敏捷d b a 的工作量。 改进的重点在于提高敏捷d b a 的参与度。首先,改进后的模型已经把敏捷 d b a 作为整个团队的技术核心;然后,项目负责人会把敏捷d b a 和应用开发人 员作为整体来衡量绩效,力图杜绝d b a 和应用程序员之间互相推诿,延迟响应客 户的需求变化。 2 3 4 文档和纪律约束 敏捷数据库开发在应对需求的将快速变化上起了作用,但文档和编码规范等 纪律约束对于大型项目和高可靠性项目的意义也至关重要。在开发过程中,相比 面对面沟通,文档的效率偏低;而到了运维阶段,尤其是原有开发小组人员已经 无法联系的情况,文档是唯一有效的交流媒介。 为了取得一个平衡点。对于文档管理,我们裁剪的结果可以总结为:精细功 能审核、粗化技术审核。项目负责人以功能的迭代来控制进度和项目验收,敏捷 d b a 负责组织团队的技术演进。项目负责人会同最终用户对每次迭代的功能集进 行审核,条件允许的在生产环境下或者模拟生产环境强度对包括细节在内的新特 性进行测试;文档审核的范围局限在技术层面的高层设计,迭代的内容主要有需 求分析、架构设计、数据库模式、迭代任务列表和文件与工程说明。代码级别的 注释要求降低,而在编程规范上加强要求,设计不合理导致的代码“坏味 应当 通过代码重构来解决,而不是大段的注释。 2 3 :5 小版本发布,利用好“现场客户”效应 第1 2 页 国防科学技术大学研究生院硕士学位论文 获得“现场客户 条件后,有两个互为补充的工作内容:听取“用户故事” ( 即做需求调查) 和提交可操作的软件以等待反馈。 敏捷思想的代表实践形式- 编程的原则里对这两个工作内容都做了要 求,但实际的项目中,开发小组往往过分强调第一点,把需求分析的责任 过多的转移给了最终用户。实际上,没有受过专业训练的用户无法全面准确地描 述系统需求,尤其是其描述还必须要让存在行业隔阂的程序员们完全理解。 这个转述过程产生的偏差是瀑布模型导致后期重大需求变更的来源之一,敏 捷方法的提出,就是要通过持续的以小版本提交可操作的软件,让用户反馈其中 的需求偏差,防止变更向开发的后期扩散。 本文在工程实践中,强调客户交互的重点是响应反馈意见,而不是把需求分 析的责任推卸给客户1 2 3 6 设计和重构的关系 敏捷思想的众多实践过程普遍持有“简单设计的概念,即软件生命周期中 没有明确的设计阶段,也不必维护设计文档,而主张代码即设计,在代码的持续 重构过程中逐渐形成设计。 本文认为,这对于高可靠性数据库系统的开发是不可取的,设计过程对于质 量管理和重要指标的实现
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 暑假三个必修课:安全、自律、劳动
- 初升高数学试题及答案
- 2026苏教版六年级数学上册活动课《二进制的秘密》教案
- 护理信息化:利用科技提升效率
- 护理查房中的护理创新
- 护理沟通艺术
- 护理风险应对的跨文化护理实践
- 护理礼仪的儿科护理
- 护理培训场景
- Unit 7 Happy Birthday!(Period 6)单元复习课同步练2025-2026学年人教版英语七年级上册
- 2026四川宜宾酒股份有限公司下属子公司第一批员工招聘9人笔试备考试题及答案解析
- 慢性呼吸疾病肺康复护理专家共识
- 中国艺术研究院2025年博士入学英语考试题
- 高职院校专业人才培养方案改革探索
- 应急第一响应人培训课件
- 2025年新型停车场建设与管理项目可行性研究报告
- 货车维修保养知识
- 公司法人授权委托书范本模板
- DB34∕T 4315-2022 甜叶菊组培快繁技术规程
- 2025四川成都诸葛资本投资有限责任公司招聘高级投资经理等岗位5人笔试历年典型考点题库附带答案详解试卷2套
- 隧道有机硅防水涂料施工方案
评论
0/150
提交评论