




已阅读5页,还剩53页未读, 继续免费阅读
(计算机应用技术专业论文)软件工程工具信息共享技术研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 摘要 如何实现软件工程工具信息共享是软件工程研究领域的热点之一,目前有多 种方法:工具接口,中间格式,工具总线和信息库等。本文分析比较上述方法, 针对目前软件工程教学实践的需要,利用数据库和配置库构造了一种信息库,通 过信息库实现软件工程工具的信息共享。 该信息库利用数据库和配置库分别存储软件开发中产生的数据和文件,将软 件开发活动中抽象出的要素( 用户,角色,任务,软件产品) 作为基本的约束条 件,控制并规范一个软件开发团队的各种活动。最后,信息库作为一个整体对外 提供统一接口,屏蔽底层的对数据库和配置库的具体操作。 与其他的信息共享方法比较,本文提出的信息库结构简单,成本低,具有开 放性且使用方便。该信息库基于j a v a 环境,充分利用现有成熟开源的工具和技 术,存储管理软件开发中产生的数据和文件,通过约束条件支持团队软件开发, 这样降低了成本,适合教学和科研。信息库各个模块相对独立,可以方便地加入 或替换c a s e 工具。信息库还提供了对外的统一接口,屏蔽了底层具体实现,这 使得信息库的使用非常方便。论文最后介绍了一个基于此信息库的软件工程教学 实践平台s e e p 系统。 关键词:软件工程;软件工具;信息库 a b m 硼 a b s t r a c t h o wt oi n l p l 锄e mi n 内彻a t i o ns 嘶n go f t o o l so f s o n w 盯ee n 萄n e e r i n gi so n eo f t l l eh o t s p o t so f 舟w a r e 锄舀n 硎n 岛a n dt l l e 他a r eam m i b 贸o fw a y s :b yu 1 1 i 晌g i n t e 而c co ft o o l s ,l l s i l l gi n t 咖e d i a t ef o 眦矾觚db yi l l f o 】f l i l a l i o nr 印o s i t o 啪e t c 1 1 l e a t 附v em c t h o l d sa r eo 咖p a 删觚d 卸_ a l y z e d i l lt h i sp a p e r 1 om e e tt l l er e q u i 埘n e n to f f t w a 锄g i n c c r i n gt 蒯n g 锄dp m c t i o e 船i i l f - o 姗a t i 托p o s i t o 叮i sc o n s 劬l c 刚 b a s c do n ar e l 撕o n a ld a t a b a a n dac o n f i 目鲥b a 1 i l f o m l a t i o ni ss h 盯c dt 1 1 r o u g h t l l er e p o s i t o r y t h e 讹i n c l u d i n g 矗l 铭g 胁馓t e di n f h a 糟d e v e i 叩m e n tp id l 船辨s 删i n m ei n f 砷n a t i o n 哪s i t o r y m o s tk e yd e m e n t sa b s 嘶c t 。d 丘d ms o n w a r ed e v d o p m e n t a c t i v 谢嚣,e 召,u s 盯s r o l 嚣,t 嬲k s ,p i 伽u c t sa 打e a t e d 勰t l l ep f i m a r yc o n s 仃a i n t c o n d i t i o 船w i t l lt l l e 辩c o n d i t i o 璐,t l l er e p o s i t o f yc 0 蛐r o l s 雏d 托g i l l a t 鹤t h ea c c i 、,i t i 嚣 o fa f t 啪d e v d o p m e n tt 锄f i i l 枷弘t l l e 佗p o s i 协r yi s 、i 砷p e di l l 趣i n t 曲c e w i l ic :hp m v i d 鹤1 l i l i f o ma c c 岱st ot h ed a t a ,s l l i e l d i i 坞m u d ho ft l l ec o m p l e x i t yc a u s c d b yc a l l i t l go p e r a t i o i l s 硒s o d a t e dt op 删伽l a rd a t a b a 觚dc o n 矗g u m t i o nb 嬲e p 删w i n lo t l l e rm e i l l o d s ,t l l em c t l l o dp r o p o s e di nt 1 1 i sp 印盯i ss i m p l c ,l o w c 0 懿,o p m 觚de 鹊yt o 砒e t t l ei i i f 0 1 柚a t i o n 唧o s i 锄xw h i c hi sb u i l f w i mj a v a b a s e d o p 饥l h et 0 0 l sa n dt e c l l n i q u 嚣,s t o r 嚣a 1 1 dm a n a g 鹤a l lk i l l d so fd a t ag e r a t e di n 脚辩d 眦l o p i n 饥tp i d o 鼯s ,锄da l c o l 帅l s 脚a d w c l o 呻饥tt 锄w o r l 【 a c c o r d i i 唱t ot l l ep r 嚣c tc o n d i 矗o n s l h 哪确d u 懈t h ec o s ta n di sg u i t a 【b l ef 研b o l l l t e 觚蛐m g 锄dd e v e i o p l l l t t h e 代p o s i t d r yi sd e s i g n c d 勰孤i i l d 印翩d e n tm o d l l l e w h i c hm e 瑚e 勰yt on 锄s p l a n t 锄di n t e g r a t e 诵mc a s e 0 0 l s 1 ki n t e 面c el a y e ro f 也ef q p o s i t o r yw 1 1 i c hl l i d e sm u c ho fi l i l p l 咖伽蚰d “l s 驴哪l yf a c i l i t a l 璐t l l e a c c e 站o fd a t 乱f i l l a l l ya f t w a r ee n g i l l r i n gp l 椭mf b rt e a c h i n gp u f p o c a l l 。d s e e pi sh n p l e m e n t e db 私e d 地i 1 1 f o 姗a t i o n 即o s i t o 彤 l ( e yw o r d s :s o f t w a r ee n 百n 锄吕胁a r ct o o l s ,r e p o s i t o f y 学位论文版权使用授权书 本人完全了解北京机械工业学院关于收集、保存、使用学位论文 的规定,同意如下各项内容:按照学校要求提交学位论文的印刷本和 电子版本;学校有权保存学位论文的印刷本和电子版,并采用影印、 缩印、扫描、数字化或其它手段保存论文:学校有权提供目录检索以 及提供本学位论文全文或者部分的阅览服务;学校有权按有关规定向 国家有关部门或者机构送交论文的复印件和电子版;在不以赢利为目 的的前提下,学校可以适当复制论文的部分或全部内容用于学术活 动。 学位论文作者签名:玮绷g 中 堋年z 月z 莎日 ( 注:非保密论文无需签字) 经指导教师同意,本学位论文属于保密,在年解密后适用 本授权书。 指导教师签名:学位论文作者签名: 年月日年月日 硕士学位论文原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师指导下,进行 研究工作所取得的成果。除文中已经注明引用的内容外,本学位论文 的研究成果不包含任何他人创作的、已公开发表或者没有公开发表的 作品的内容。对本论文所涉及的研究工作做出贡献的其他个人和集 体,均已在文中以明确方式标明。本学位论文原创性声明的法律责任 由本人承担。 签名:栖朋眙 细1 年朋z g 日 第1 章引言 1 1 课题背景 第l 章引言 随着软件工程【l j 科学的发展和软件开发实践的需要,出现了很多c a s e 工具。 严格地说,c a s e 工具是除操作系统之外的所有软件工具的总称【2 1 ,本文中的 c a s e 工具主要是指其中的软件工程工具。软件工程工具包含软件需求工具、软 件设计工具、软件构造工具、软件测试工具、软件维护工具、软件配置管理工具、 软件工程过程工具、软件质量工具和其他工具【3 1 。这些工具覆盖了软件开发生命 周期的各个阶段,在分析,设计,实现等方面提供辅助,使用合适的c a s e 工具 能够规范流程,提高效率,减少错误,节省成本,使得人们更容易,更准确地开 发系统。同时,c a s e 工具也在不断改进,功能越来越强大,以支持新的软件开 发方法和实践。现代的软件开发一般都需要若干c a s e 工具的支持,特别是在开 发大中型软件系统的时候,系统业务复杂,参与人员多,项目管理困难,需要较 多c a s e 工具的支持。在这种环境下,如果仅仅是离散的使用各个c a s e 工具, 往往难以充分发挥c a s e 工具集的整体作用。因此,人们提出了要建立集成化的 c a s e 工具环境【4 】。对于软件开发组织从“软件作坊”进入到“软件工厂”的理 想开发模式,建立集成化的软件开发环境是十分必要的【2 】。 c a s e 工具集成环境有不同的集成程度。界面层集成,各个c a s e 工具在用 户界面和操作上高度一致,减少用户的学习和使用的成本。工具层集成,通过触 发和通信等机制统一管理协调所有的c a s e 工具。信息层集成,存储管理集成环 境下的所有数据和文件,实现c a s e 工具信息共享。由于目前的c a s e 工具种 类繁多,生产厂商不一,各类工具又支持不同的开发方法和应用领域,各个c a s e 工具往往不能很好的协作和交互彼此的数据信息,这使得建立集成化的c a s e 环境也变得困难,这样制约了c a s e 工具在软件开发中发挥更大的作用,如果集 成不当甚至会对软件开发起负面效果。 针对上述问题,论文重点讨论软件工程工具信息共享技术,通过分析这一领 域现有的研究成果和解决方案的优缺点,结合现有的开源c a s e 工具和成熟技 术,实现一种灵活简单,可扩展的信息库,可用于软件工程工具的信息共享。与 他人合作在这个信息库的基础上构建了软件工程教学平台s e e p ( s o 脚蛳 e n 画n e 舐n ge d u c a t i p l a 响肌) 。s e e p 系统是一个用于软件工程实践教学的,软 件工程工具的集成环境,这也是北京市教委的科技发展项目( 1 ( m 2 0 0 5 1 0 7 7 2 0 0 3 ) 的研究课题。 第l 章引言 在我国,软件已经成当今为科学,工业和社会等各个部门不可缺少的重要部 分,但是软件开发依然面临着过分依赖人工、软件无法重用、开发大量重复和生 产率低下等问题。软件工程出现在软件危机四之后,作为指导软件开发实践的一 门科学,对于解决软件开发中的问题起着十分重要的作用。我国对软件工程的教 育也有多年的历史,中国大学的计算机专业大都开设了软件工程课,但是与国外 先进水平相比还有很大差距,这种差距也影响到了我国的软件行业。经济实力和 基础设施不如我国的印度,因为良好的计算机培训和教育,其软件行业占领了全 球外包市场的最大份额,在2 0 0 s 2 0 0 6 财年软件出口高达2 3 6 亿美元,而中国的 软件行业却主要从事利润和技术含量较低的韩日项目,这部分只占外包市场不到 1 0 的份额嘲。国际软件工程教育和培训会议( c s e e & t ) 提出:适当的软件工 程教育能改善现在的软件发展状态,并有助于解决软件实践中一些经常发生的问 题和危机【刀。可见软件工程教育是非常重要的。为了发展我国的软件行业,提高 软件人才素质,软件工程实践教育的项目已经在大学里全面展开,在2 0 0 1 年底, 教育部批准在软件工程领域开展工程硕士的培养工作,全国3 5 所高校成立了国 家示范性软件学院嘲。同时部分高校还开设了软件工程的本科专业。 由一门课程到一门专业,软件工程在高校的计算机教育中变得越来越重要。 但是以往的教学重理论而轻实践【9 】,侧重软件工程的传统理论,缺乏对这一领域 新方法新工具的介绍,其中比较突出的问题是缺乏实践,特别是在方法和工具上。 学生在课后很容易忘掉软件工程的原则和方法,更不要说在实际软件开发中应用 它们了。当这些学生毕业后进入软件行业,又不得不重新学习软件工程以满足实 际工作的需要,这种情况无疑增加了软件开发组织的培训成本,也降低了计算机 专业毕业生的竞争力。综上,软件工程是一门实践性很强的课程,它是各种开发 经验的总结与提炼。在学习过程中不但应注重概念、原理、方法和技术的掌握, 也应注重方法、技术的实际应用【1 0 】。因此,必须结合设计项目和实际应用加以 施教,才能取得良好的教学效剩“l 。 开展软件工程的实践教学有多种方法。学生可以直接到软件开发组织去实 习,体验实际的软件开发,但是软件开发组织不可能根据教学需要安排学生的实 践,学生更多的精力放在具体模块的开发,而不是整个软件生命周期,因此公司 实习并不适合作为实践教学的主要部分。如果在校内进行实践教学,可以模仿实 际软件开发过程,学生分团队,分角色从事一个虚拟项目的开发,体验软件工程 在软件开发全过程的应用,这需要一个集成化的软件开发环境支持。这个环境应 该包含多种c a s e 工具,对软件开发中的人,事,物进行约束,学生在受控的条 件下经历整个软件开发,可以在这个环境下编写文档,开发代码,跟踪缺陷等。 同时,这个集成的c a s e 工具环境要简单易用,有扩展性,可以方便的加入或替 2 第l 章引言 换新的c a s e 工具,可以在此基础上进一步开发完善,从教学和成本的角度出发, 系统尽量采用开源和常用的c a s e 工具。 软件工程教学平台s e e p 正是基于上述要求开发的一个系统。 1 2 软件工程工具信息共享研究现状 c a s e 工具的信息共享可以是同一类的不同厂商的c a s e 工具,也可以是用 于不同软件开发阶段的c a s e 工具。要实现工具的信息共享可以有多种方法,这 涉及到工具的信息存储方式,信息通信方式,工具接口等多个方面,很多公司和 组织为此都提出了自己的解决方案。 1 2 1 基于工具之间的接口实现信息共享 部分实力较强的软件厂商开发了一套c a s e 工具集合,覆盖了全部或主要的 软件生命周期,在这个工具集里,不同的c a s e 工具通过软件厂商定义的接口相 互交流数据信息。 比如m m 公司的r 撕o m l 系列的工具,将软件生命周期的c a s e 工具进行了 高度集成,u m l 建模工具是r o ,需求管理工具是州s i t cp r o ,配置管理工 具是a 鲫r c a 。而b o l 柚d 公司集成的对应工具分别是t o g c = l l l 盯,c a l i b 盯和 s t a r t e a m 。用户可以方便的在一个工具中调用另一个工具,信息的传递和共享在 后台实现,对用户来说完全是透明的。 因为一套工具都由同一家厂商开发,这种信息共享的优点是可以很好地保证 各个工具共享信息的完整性和兼容性。但是由于这个内部接口是软件厂商自身定 义,往往只针对本厂商的c a s e 工具,所以很难被其他厂商的c a s e 工具使用。 因此这种信息共享只能是同一软件厂商的c a s e 工具,具有排他性。 1 2 2 基于中间格式的实现信息共享 这种方法是制定一种统一的文件格式,各种c a s e 工具约定采用这种统一的 文件格式来存储各自产生的数据信息,不同的c a s e 工具通过读取这种中间格式 的文件来实现工具的信息共享。这种方法主要针对同一类的c a s e 工具比如建模 工具的信息共享。m 。文件具有可扩展,通用,标准化和平台无关等优点,非 常适合作为上述的中间格式文件,因此实际应用中有很多在l 为基础上制定 的中间文件格式。 l ( e x t s i b l em a r k u p g i l a g e ) 【1 2 - 1 6 1 全称是可扩展置标语言,由万维网 3 第1 章引言 协会( w 3 c ) 【1 7 】于1 9 9 8 年2 月发布为正式标准。x m l 具有如下特点: 可扩展。以l 是一种元置标语言( m e t a 棚a r l 【u pl a n g u a g c ) ,用户可以根 据自身需要定义标记并在文件中使用。 可读性。和很多软件专有的非文本二进制文件不同,v i l 是格式良好的 文本文件,便于解析。 文档结构化订l 是被设计来存储和交换各种数据的,采用结构化的数 据表示方式。l 甚至能够表示关系数据库中难以处理的数据。 平台无关。订l 是一种纯文本格式文件,与硬件、操作系统、编程语言 和应用程序无关,咀。非常适合作为一种平台无关的共享数据方法。 在m 。基础上,m m 和0 r a c l e 等公司联合提出了工具之间数据交换的开放 标准,) o v l l ( x m lm e t a d a t ai n t 即c h 锄g c 订l 元数据交换) l l ”x m i 已经成 为o m g ( o b j o c tm 锄a g 锄e n tg m 叩对象管理集团) 的正式规范,并且得到很多 开发工具的支持。m m 公司的建模工具r 撕a lr o 可以将建立的u m l 模型转 存为x m i 文件,而b o l 锄d 公司的建模工具t o g e l l l 盯可以将订i 文件读入,然 后无损失的还原为u m l 模型。两种不同的建模工具通过中间格式的x m i 文件 实现了信息共享。 此外,美国电子协会e n ( e l e c t f i c h d u g 砸格a s s o c i a l i o n ) 于1 9 9 1 年7 月发布 了c d m ( c a s ed a 协i n t 耐l 柚g ef o n n a t ) 邮】行业规范。c d m 是c a d 工具之 间数据交换标准e d 球( e l c c 咖1 1 1 i cd a t ah l t 即c h 锄g ef o m a t ) 的扩展,目前己成为 l s 伽e c 的正式标准。c d m 采用面向对象的实体关系模型技术来定义工具的元 模型( m e i am o d d ) ,定义工具间交换元数据时传递的结构和内容田】。c d 珲解决了 c a s e 工具在软件开发各不同阶段问的数据交换,支持独立的c a s e 工具间远程 的互操作。但是,c d 诞生以来并没有获得足够的支持和重视,并未被普遍采 用【笠】咧。 这种方法原理简单,但是制定和推广某种中间格式难度较大。目前的实际应 用往往只有小部分c a s e 工具都支持同一种中间格式,比如部分u m l 建模工具 都支持讧i 。 1 2 3 基于信息库的工具信息共享 将各个c a s e 工具产生的数据抽取出来,集中存储在一个信息库( 姊o s i t o r y ) 中,信息库的物理存储可以采用数据库或其他存储工具,上层通过一套管理系统 控制信息库中数据的变更和流动。各种c a s e 工具通过管理系统在信息库内部进 行数据交流,实现信息共享。 m m 公司为了将各c a s e 工具、客户服务器、关系数据库管理系统集成到 4 第l 章引言 统一的开发环境中,着手开发用于应用开发的框架( m v s ) ,该框架的核心是一运 行在m v s 框架和d b 2 数据库上的仓储引擎( r mr e p o s i t d f y m 锄a g 盯) 。r m 伍小,s 的目标就是能存储市面上流行的c a s e 工具及m m 的数据库( 包括关系型和非关 系型) 的设计结果,在系统开发周期的不同阶段上的c a s e 工具之间共享设计结 果,因此使得应用系统的开发具有较高的自动化,并且由于数据的集中处理有利 于做影响分析。在此基础上m m 提出了著名的应用开发周期( 觥y d e ) 瞄】方 法论。但是该系统也有缺点,每当有新的c a s e 工具要集成时要修改系统的信息 模型,另外当某一c a s e 工具的版本发生变化时,另一方需要做相应的修改以适 应对方的修改。当设计结果从c i a s e 工具存放到仓储库时信息有损失,另外当 c a s e 工具从啤啪i t o r y 中读取其他c a s e 工具的设计结果时信息也存在损失 而且该系统只支持l b m 投资的和其商业伙伴的c a s e 工具1 2 越射。 信息库的基本思想就是统一存储管理所有信息,并在信息库中实现信息共 享。信息库的没有固定的框架和模式,可以根据需要灵活实现。 1 2 4 基于总线的工具信息共享 参考计算机硬件总线的设计方法,构造一种软件实现的虚拟总线,各种c a s e 工具通过标准接口和工具总线相连,并在工具总线上传输和共享信息。 计算机的不同硬件通过标准接口连接到同一总线上,总线是硬件相互传输数 据的公共通道。参考硬件总线的思想,美国m a r y l 锄d 大学的j 锄髂p 面t o 和 硒d l a r ds d g r a s s 于1 9 9 4 在一篇论文中首先提出“软件总线( s o f t w a r eb 鹏) ” 的概念,并实现了一种软件总线原型p o l y l i m 【2 9 】。根据其定义,软件总线规定了 一个标准的接口,只要软件的接口符合这个标准,不管软件内部怎样都可以插入 到总线上与其他软件协同工作。在此基础上,人们进一步提出o o 软件总线 ( o b j o c to f i e n t c ds o f t a mb 璐面向对象的软件总线,简称软总线) 冈的概念。 这种总线加入c a s e 工具就称为工具软件总线( 1 b o ls o 觚砒b 吣) ,简称工具总 线( 1 b o lb 吣) ,它可以实现软件工程工具的信息共享。 工具总线是指工具构件问进行互连的一组虚拟的数据信息传输线。每个工具 拥有和工具总线连接的规范接口,以“即插即用”的方式加入到工具总线上,工 具总线并不存在真正的数据传输介质,它包含一个公共的数据传输协议,协议规 定了数据传输格式,工具统一规范的接口等,工具之间再通过这个协议进行信息 的交互和通信【孤4 明。如下所示: 5 第l 章引言 工具总线 图1 1 工具总线 工具总线必须具备的基本功能有消息传递( m 嚣s a g cp 船她) ,数据交换( d a t a e x c h 锄g e ) ,总线管理,工具管理等【帅】。实现工具总线的关键问题之一是工具和 工具总线的接口问题,理想的方法是所有工具的都实现一个统一标准的接口,但 是现在国际上还没有形成正式的标准。总之,工具总线技术尚不成熟,缺乏合理 的结构、实甩的功能和开放的接口标准。 1 2 5 几种技术比较总结 除了工具总线外的信息共享技术都有实际的应用。通过工具之间的接口,和 通过中间格式这两种共享方式都要求工具生产商的支持,这两种方式的信息共享 都局限在部分的c a s e 工具,没有在大范围普及。而基于信息库的信息共享对厂 商要求较少,实现灵活,相对来说是一种成本低,更可行的信息共享方式。 综上,本课题采用信息库的方式实现软件工程工具的信息共享。 1 3 本项研究的主要工作,创新点和意义 本项研究的主要工作包括以下几个方面。 ( 1 ) 本项研究设计并实现一个信息库,用配置库和数据库存储管理各个 c a s e 工具产生的数据和文件。信息库采用j a v a 环境开发,是一个c s 结构, 可以通过调用信息库提供的a p i 访问信息库。在信息库基础上,结合c a s e 工 具,可以构成一个集成化的c a s e 开发环境。 ( 2 ) 信息库中包含一个信息库访问中间层,封装底层对配置库和数据库的 具体操作并且对外提供统一a p i 接口,所有对信息库都要通过这个中间层访问 信息库。 ( 3 ) 本项研究的另一个工作是将信息库用于实践,与其他研究人员合作构 6 第l 章引言 建了以信息库为基础的s e e p 系统,s e e p 系统是一个用于教学的,软件工程工 具的集成平台。为配合课题还开发了基线管理,产品发布,缺陷跟踪的c a s e 工具,集成在s e e p 系统中,这些工具都通过底层的信息库实现了信息共享,由 此也证明本论文的提出的信息库的可行性。 本项研究的创新点如下。 ( 1 ) 充分利用现有成熟的配置库和数据库存储文件和数据信息。通过一个 中间层,对上提供统一a p i ,对下管理配置库和数据库,上层不用关心底层具体 实现。 ( 2 ) 开放性,可以根据需要方便地加入新的c a s e 工具,也可以用新的c a s e 工具替换现有的工具。 ( 3 ) 以项目管理为主线,根据项目管理工具的项目计划,动态确定团队成 员、角色和任务。 本项研究的意义。目前市场上的商业的c a s e 工具集成环境功能强大,使用 复杂且价格昂贵,并不一定适合中国实际,特别是软件工程实践教学的实际。很 多开源c a s e 工具虽然简单易用且免费,但是缺乏集成化的环境。此外,各个软 件开发组织根据自己的实际情况需要某些c a s e 工具的组合,这要求集成环境具 有开放性。最后,很多高校新开设了软件工程的专业,需要简单实用的集成化环 境供学生进行实验。本项研究提出的信息库充分利用现有的成熟软件和c a s e 工具,成本较低。以信息库为基础的集成环境有一定的开放性,可以灵活配置不 同的c a s e 工具。最后,这个集成环境大量采用j a v a 环境和开源软件,适于软 件工程教学,还可在此基础上进行二次开发。 1 4 论文组织结构 论文第l 章主要是软件工程工具信息共享技术的研究背景和现状,各种信息 共享技术的比较。第2 章介绍了s e e p 系统。第3 章是信息库的总体设计。第4 章是信息库的实现。第5 章是信息库结合s e e p 系统的实现案例。第6 章是研究 总结,指出s e e p 系统的成功与不足以及未来的努力方向。 1 5 本章小结 本章首先详细介绍了本课题及相关的s e e p 系统的背景,然后介绍了能够实 现软件工程工具信息共享的几种技术,通过比较并结合课题实际需要论文中采用 信息库的方法实现软件工程工具的信息共享。本章接下来指出研究的主要工作, 7 第1 章引言 创新点和意义,最后是论文的组织结构。 8 第2 章s e e p 系统需求概述 第2 章s e e p 系统需求概述 s e e p ( s o f t w 卸陀e n g m 曲ge d u c a t i p l a l l 研m ) 全称是软件工程教学实践平 台,主要用于学生模拟实际软件开发团队体验开发项目的各种活动,了解软件生 命周期过程,分角色完成各种任务。学生在使用s e e p 系统过程中,学习并掌握 如何在实际软件开发中使用软件工程工具,应用软件工程的各种原理和方法。本 章主要介绍s e e p 系统的需求和总体结构。 2 1s e e p 系统需求 s e e p 系统是软件工程的教学实践平台,一是要尽量模拟实际的团队软件开 发环境,二是要满足软件工程教学的需要。从这两点出发,具体的需求如下 ( 1 ) s e e p 系统是一个统一的环境。s e e p 系统集中控制用户对工具的使用, 用户通过s e e p 系统调用各种c a s e 工具,而不是离散的使用各种c a s e 工具。 这样做既可以方便用户,又可以统一控制c a s e 工具的使用。 ( 2 ) s e e p 系统要集成多种软件工程工具。现代的软件开发离不开若干c a s e 工具的支持,因此,s e e p 系统应该集成覆盖软件生命周期主要阶段的c a s e 工 具,比如建模,编码和测试等工具。 ( 3 ) s e e p 系统统一存储管理软件开发中产生的数据和文件。用户在s e e p 系统上开发项目,用到很多c a s e 工具,因此会产生太量的数据和文件。s e e p 系统需要在后台统一存储管理这些数据和文件,实现信息共享。这部分功能由一 个相对独立的信息库实现。 ( 4 ) s e e p 系统是一个多用户,多角色的并发系统。多个用户组成一个软件 项目团队并行开发一个项目,用户分成项目组长,开发组成员,质保组成员等多 个角色。多个用户登录s e e p 系统后,根据角色的不同并发完成不同的任务,对 不同的文件有不同的操作权限,一个用户的操作可能对系统中的其他用户产生影 响。 ( 5 ) s e e p 系统是一个结构定义良好,可扩展的平台。s e e p 系统应该采用 前后台分离的多层次,多模块结构。模块之间松耦合,高内聚,模块具有可替换 性。系统应该具有扩展性,便于替换或加入新的c a s e 工具。 ( 6 ) s e e p 系统应该尽量采用开源,主流,成熟的工具软件和技术。基于 s e e p 系统的特点和用于教学的目的,s e e p 系统应该以较低成本实现,而且要 便于扩展和二次开发,因此s e e p 系统应该采用开源,主流,成熟的工具软件和 9 第2 章s e e p 系统需求概述 技术。 ( 7 ) s e e p 系统以项目管理为核心。具体来说就是项目管理人员通过项目管 理安排不同角色的具体任务,然后其它角色的用户去完成这些具体任务。 ( 8 ) s e e p 系统应该操作简单。s e e p 系统的用户主要是实践软件工程课程 的学生,普遍缺乏项目开发的实践经验,因此s e e p 系统应该简单易学,使用方 便。 2 2s e e p 系统分层和模块 s e e p 系统正是基于2 1 节提出的需求设计实现的。根据需求,多个用户要在 s e e p 系统上并行开发软件项目,产生的数据和文件需要在后台统一存储管理以 便所有用户共享信息。针对s e e p 系统多用户和统一存储管理数据文件的特点, s e e p 系统被设计成一个c s 结构。 要实现s e e p 系统首先需要考虑采用什么编程语言和环境。j a v a 是目前i t 行业里的主流编程语言,应用广泛,由s 吼公司于1 9 9 6 年正式发布。j 面a 发展 到现在,已经不仅仅是一种语言,可以说是一种包含多种技术的平台。j a v a 语言 取得巨大成功是因为它具有如下优势【4 l 删: 面向对象。j a v a 语言是完全面向对象的,这可以说是j a v a 最重要的特性 跨平台。j a v a 编译器将j a v a 源代码编译成与操作系统无关的字节码指令, j a v a 虚拟机的解释器对字节码进行转换,使之能过后在不同的平台运行 直接支持分布式的网络应用。j a v a 核心类库支持h r r p ,s m t p 和f r p ,等基于t c p ,口的协议,非常适合分布式环境。 安全性和健壮性。j a v a 通过编译检查使得程序员少犯错误,通过自动内 存回收避免了非法内存操作。 易用性。j a v a 在语法上借鉴了很多c - 卜 的优点,避免了c + + 的缺点,j a v a 使用起来更容易 现在j a 访的应用十分广泛,既可以用于手机等嵌入式,也可以用在大型企业 应用,涉及的行业包括电力,金融,通信等等。同时,j a v a 也在不断进步和发展 以满足新的需求,s 眦公司定期发布新的版本并计划将j a v a 开源。最重要的是 j a v a 得到整个r r 行业的普遍支持,开源社区和商业公司已经或计划开发很多基 于j a v a 的新技术和新应用,目前关于j a v a 的开源或商业项目众多,各种用途的 第三方j a v a 类库也十分丰富,比如访问s v n 配置库的客户端j a v a 类库。 因此s e e p 系统采用j a v a 作为实现语言。 e d i p s c l 4 3 掣】是一个j a v a 的集成开发环境,最早是由m m 开发的,在2 0 0 1 年 l o 第2 章s e e p 系统需求概述 末被m m 捐献给了开源社区,目前最新稳定版本是3 2 。e d i p 的长期目标就是 成为集成统一平台,而其他c a s e 工具都被做成e d i p 插件和e d i p 集成,这 样各个工具开发商在开发时不用单独考虑工具的运行环境,界面等问题。e d i p 辩 在短短几年内得到飞速的发展,其成功得益于其不同于一般d e 工具的特性。 e c l i p 没有采用j d k 自带的图形类库a w t s 咖g ,而是基于一套新的 图形类库s w t j f a c e ,这个类库的运行速度比a w t s 岫g 快,开发出来 的程序拥有和操作系统完全一致的外观 e c l i p 通过插件可以扩展功能,插件用j a v a 开发,遵循一定规则构建和 部署就可以和e d i p s e 无缝集成,而且可以使用e c l i p s c 的各种资源。启 动e d i p 后,用户可以非常方便的使用多种界面风格统一的工具 e c l i p 还支持富客户端平台r c p ( 黜c hc l i e i i tp l a t 南皿) 程序的开发, r c p 用j a v a 开发,遵循一定规则构建和部署就可以像e c l i p 一样运行, 并且具有和e d i p 类似风格的界面。 e c l i p 完全开源免费。 e d i p s e 最大的特点和优势就是其方便,开放的插件机制,任何个人和组织都 可以开发满足自身需要的e c l i p 插件,只要这个插件满足e d i p 的插件规范, 就可以和e d i p 平台无缝集成。目前很多c a s e 工具都以e d i p 的插件的形式 和e c l i p s e 集成或者计划这样做,比如c v s 客户端,i b mr a t i o n a l ,j b l l i l d 盯等。 维护e c l i p 的开源组织将一些基本或常用的功能或工具以插件形式直接集成到 e d i p s e 的官方安装包中,比如支持j a v a 编码开发的插件,j a v a 构建工具a n t 的 插件等。e d i p s e 官方和非官方的组织还开发了大量的插件没有直接集成到 e c l i p s c 的官方安装包中,需要单独安装。上述的所有插件都符合e c l i p s e 插件规 范,对e d i p 来说本质上都是平等的,安装配置方法也完全一致。 总之,开源的基于j 撇环境运行的集成开发工具e d i p 可以很好地支持j a v a 项目的开发,通过插件机制可以方便地扩充功能,并且已经集成了若干基于插件 的c a s e 工具。因此s e e p 系统采用e d i p 作为用户使用的客户端平台,并将 s e e p 系统客户端部分以插件形式加入到e c l i p 中,这个插件在本文中称为s e e p e c l i p 插件。 s e e p 系统的服务器端负责统一存储s e e p 系统产生的数据和文件,使得多 个客户端用户共享一致的数据和文件,也使得各种软件工程工具实现信息共享。 为了减少前后台耦合关系,存储并管理数据和文件的工作由一个信息库完 成,它包括两部分,一部分是信息库访问中间层,对s e e pe c l i p s e 插件提供信息 库访问接口,同时为了实现这些接口直接访问信息库中的数据和文件;另一部分 是信息库存储服务器,负责存储这些数据和文件,即前边介绍的s e e p 系统的服 第2 章s e e p 系统需求概述 务器端。信息库访问中间层既是信息库的一部分,也是s e e pe c l i p 插件的一部 分,每个客户端的s e e p e c l i p 插件通过这个中间层提供的接口间接存取后台的 数据和文件,不用关心访问后台的具体操作,这样实现了前后台分离,屏蔽了底 层的复杂性。 s e e p 系统各个模块作用如下: ( 1 ) e d i p 。它是客户端的支持环境,本身也是j a 垤的集成开发环境,即 本身也是一种c a s e 工具。与其他d e 不同,e d i p 可以集成插件以扩展功能, e d i p 的绝大部分功能或工具都是通过插件机制实现的。为了使用方便,e d i p 的官方组织将一些基本或常用的功能或工具对应的插件直接集成到e d i p s e 的官 方安装包中,而其他插件需要单独安装,所有这些插件都遵守e d i p s e 插件规范, 对e c l i p 来说都是平等的。 在论文2 1 节已经指出,s e e p 系统应该集成覆盖软件生命周期主要阶段的软 件工程工具。目前s e e p 系统支持软件工程工具主要有,需求建模工具o m d o e d i 酬m l ,编码开发工具e d i p ,版本管理工具s v n ,文档工具m i c r o s o r w 砌,项目管理工具m i c r o rp r o j o c t ,缺陷跟踪工具,基线发布管理工具。 其中e d i p 自带插件j d t 支持j a v a 编码开发,因此e d i p 本身就作为编码开 发工具。而s 、,n 和e c l i p s e u m l 这两种工具对应的插件都不是e c l i p 辩自带的, 需要单独安装。总之前三种工具都是通过插件机制集成到e d i p 平台上,用户 可以在e d i p 上直接使用。w 硎和p 啊e c t 都是e d i p s e 环境以外的第三方工具, 没有对应的e c l i p 插件,用户通过后边将要介绍的s e e pe d i p 插件调用这两 个工具。上述工具中的缺陷跟踪工具和基线发布管理工具由于比较简单,没有采 用其他组织开发的工具,而是在完成课题期间基于e d i p s e 的图形类库s w t j f a 开发,和w b r d 和p r o j e c t 类似,用户通过s e e pe c l i p 插件调用这两个工具。 在安装s e e p 插件后,用户在e d i p 上使用s e e p 系统,后台实现对用户是 透明的。 ( 2 ) s e e pe d i p 插件。在本文中简称s e e p 插件。是客户端韵一部分,按 照e d i p 插件规则实现,它与e d i p - 无缝集成,可以使用e c l i p 及其插件的 各种资源和功能,比如e d i p 的图形界面和控件。这里的s e e p 插件定义了用 户操作界面,负责调用客户端的c a s e 工具即前边提到的文档工具m i c f t w b r ;d ,项目管理工具m i c f tp f o j e c t ,缺陷跟踪工具和基线发布管理工具。 s e e p 插件通过信息库访问中间层提供的接口访问后台存储数据和文件的服务 器,即后边将要介绍的信息库文件数据存储服务器。对s e e p 插件来说,存取后 台数据和文件的具体操作是透明的。 ( 3 ) 信息库访问中间层。这个中间层是信息库的一部分。它负责向上层插 件提供一套统一接口并且实现这些接口,为了完成接口指定的功能,或返回接口 1 2 第2 章s e e p 系统需求概述 需要的数据信息,这个中间层需要直接访问信息库存储服务器中的数据和文件。 每个客户端的s e e pe d i 雠插件都要通过这个中间层间接存取后台的数据和文 件,目前的设计将这个中间层间作为s e e p e d i p 插件的一部分 ( 4 ) 信息库文件数据存储服务器。在本文中简称信息库存储服务器,是信 息库的一部分。它负责存储并简单组织软件开发中产生的所有数据和文件。因为 数据和文件有不同的信息组织形式,所以存储时需要区别对待。 2 3 信息库 信息库是s e e p 系统中相对独立的一部分,作为一个整体负责存储管理软件 开发中c a s e 工具产生的数据和文件,实现软件工程工具的信息共享,向s e e p e d i p 插件提供统一接口,屏蔽底层的具体实现。 在2 2 节中已经指出信息库由两部分组成,一部分是信息库访问中间层,一 部分是信息库存储服务器。下边简要说明这两个模块的结构和功能。 信息库访问中间层对外提供信息库访问接口,这些接口是站在信息库用户的 角度,根据用户需求定义的。此外中间层还实现了这些接口,为了完成接口指定 的功能,或返回接口需要的数据信息,中间层直接访问信息库存储服务器,存取 其中的数据和文件。在s e e p 系统中,s e e p e d i p 插件根据需要调用信息库访 问中间层提供的接口完成特定的任务,不用关心后台的具体实现,中间层会运行 前边接口对应的具体实现,直接存取后台对应的数据和文件。信息库访问中间层 对外提供统一的接口,屏蔽了访问服务器端的具体操作,对信息库用户完全透明, 起到了承上启下的作用。s e e p 系统是多用户的c s 结构,存在多个集成了s e e p e d i p 辩插件的客户端e c l i p s e ,每个客户端的e d i p 都需要通过这个中间层和后 台交互目前的设计是使得每个客户端的s e e pe d i p 插件中都包含这个中间 层。这种设计的优点是结构清楚,实现简单,缺点是每个客户端的s e e pe c l i p 插件都包含相同的接口具体实现,增加了客户端体积。另外一种设计是将接口和 具体实现分离,把具体实现放到服务器端,这种设计结构想对复杂一些,实现上 有不少难题。论文后边会针对两种设计作具体说明。总之在目前的设计下,信息 库访问中间层既是信息库的一部分,也是s e e pe c l i p 插件的一部分。 信息库存储服务器负责存
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工业互联网应用案例解析与企业数字化转型实践经验分享
- 浙江省浙南名校联盟2025-2026学年高二上学期开学联考历史试卷
- 运城市小学考试试题及答案
- 2025年石油公司加油站人员安全操作知识考试题(附含答案)
- 2025年公共文秘教程考试题及答案
- 2025年山西省长治市事业单位工勤技能考试题库(含答案)
- 2025年山东省淄博市事业单位工勤技能考试考试题库及参考答案
- CN120111859A 一种散热组件及电子设备 (南昌华勤电子科技有限公司)
- U型吊安全事故培训课件
- CN120105831B 一种电机铁芯冲压模具装配面高保真快速建模方法及系统 (杭州电子科技大学)
- 初三上期开学收心教育班会
- 工会招聘考试试题及答案
- 小学四年级上册语文学历案 教学设计
- 2025北京九年级(上)期末语文汇编:句子默写
- 无人机遥感技术在农业中应用解决方案
- 检验科三基培训
- 涉爆人员培训内容
- 《内科学》课件-5.心律失常
- 2025年全国中学生汉字听写大会比赛题库及解析(共四套)
- 心电图室危急值报告制度
- 殡仪馆面试题及答案
评论
0/150
提交评论