(计算机应用技术专业论文)ptg+gui系统研发及软件重用技术研究.pdf_第1页
(计算机应用技术专业论文)ptg+gui系统研发及软件重用技术研究.pdf_第2页
(计算机应用技术专业论文)ptg+gui系统研发及软件重用技术研究.pdf_第3页
(计算机应用技术专业论文)ptg+gui系统研发及软件重用技术研究.pdf_第4页
(计算机应用技术专业论文)ptg+gui系统研发及软件重用技术研究.pdf_第5页
已阅读5页,还剩80页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 、 6 5 4 1 5 9 p t g g u i 系统研发及软件重用技术研究 计算机应用专业 研究生欧阳任海 指导教师杨红雨 教授 随着软件成为当 今社会越来越重要的一个领域,人们对开发有效的、健壮 的、复杂的软件需求也日 益递增。 虽然,我们在计算、网络、编程语言以 及软 件方法学等方面取得了显著的进步, 但是在财务预算范围内,按时完成高质量 的软件开发仍然存在不少困难。软件业所能分发的软件量越发不能满足社会对 软件日 增的需求。为什么会出现这种软件危机呢?这主要是因为当今软件业的 大多软件开发效率不够高、成本大、维护费用昂 贵等原因造成。而解决这些问 题的一个实际有效的措施便是软件重用 ( s o f t w a r e r e u s e ) . 软件重用是提高软件开发过程产品效率以及软件质量的一个最重要的方法 之一。软件重用包含对软件产品、框架、构建、代码等的重用,也包括对开发 可重用软件过程的重用。至今为止,软件重用领域里己 经出现了相当 数量的软 件重用技术。 本文主要以 基于t h a l e s a t m 公司的e u r o c a t - 2 0 0 0 系统p t g 部件 ( c s c i ) 之上的p t g g u i 部件研发为背景,阐述了 项目 开发过程中 所涉及或所 使用的一些软件重用技术。这些技术包括面向 对象技术( o b e j c t o r i e n t a t i o n ) 及面向对象方法学 ( 0 0 m e t h o d s ) 、设计模式 ( d e s i g n p a t t e r n ) 、框架 ( f r a m e w o r k s )技术、重构 ( r e f a c t o r i n g )技术以及软件生产线 ( s o f t w a r e p r o d u c t l i n e ) 。 最后总结了软件重用遇到的问 题,以 及提出了实现软 件重用及 重用的顶点一软件生产线一几点建议。 作为一名实习软件工程师,经过 1 0个月左右的努力,我完成了 p t g g u 工 项目 的研发。 其中项目 功能界定以 及可行性分析 ( s p e c i f i c a t i o n ) 用时6 周, 软件需求及其文档编写 ( s r s )用时3 周,软件设计及其文档编写 ( s d d ) 用时 8 周, 编码前后的 单 元测试以 及测 试文 档编写( u t ) 用时6 周, 代码编写( c o d i n g ) 用时1 0 周,集成测试 ( 工 t )用时5 周。软件的设计得到了t h a l e s a t m 公司的 摘要 良 好评价, 并于2 0 0 4 年1 月通过了公司内部验证, 2 0 0 4 年3 月开始投入使用。 软件投入使用以来,一直运行稳定,效率提高明显,无论在功能设计还是在操 作使用方面都得到了 用户的好评。 这期间, 本人主要做了以下几个方面的工作: 1 )整个p t g g u i 部件的开发实现:从p t g g u i 的功能界定, 可行性分 析, 软件需求, 软件设计、 规划与布局, 整个项目 编码, 单元测试, 集成测试以及所有文档编写工作,全部按t h a l e s a t m公司相关标 准以及软件开发流程完成。 2 )将设计模式嵌入到面向对象分析 ( o o a ) 与面向对象设计 ( o o d ) 过 程之间: 面向对象方法学一般将系统设计分析分成两个阶段, 即面 向对象分析与面向对象设计。 然而, 在实际项目的分析设计过程当 中, 设计人员经常发现面向对象方法学中的分析理论与设计理论之 间并不会自由过渡, 它们之间往往存有一条鸿沟, 时常困惑着设计 人员。 基于此问题, 本文通过引人设计模式的经验知识以及特定领 域的、 被反复验证的经验解决方案, 能很好地帮助设计人员顺利跨 越这条鸿沟。 3 ) p t g 动态命令生成框架 ( g e n e r a t o r f r a m e w o r k ) :由于p t g 命令繁 多且命令格式变化多样, 语法分析器也颇为复杂, 再加上项目 要求: 能跟据用户的各种触发事件动态产生符合语法要求的相应 p t g命 令 ( 可能一条, 也可能是多条,甚至多组) 。为了 解决此类灵活问 题, 我设计了一个g e n e r a t o r 框架, 很好的实现了项目 要求。 而且 经过对此框架的再次抽象, 发现该框架还可大量的应用于其它相关 j清形。 4 ) e u r o c a t - 2 0 0 0 系统生产线的描述:根据作者在t h a l e s a t m 的实际 项目开发过程以及对 e u r o c a t - 2 0 0 0系统的认识和理解,本文对 e u r o c a t - 2 0 0 0系统生产线作了一个简单的描述,以此说明软件生 产线为何是软件重用的顶峰以及如何实施软件生产线的问题。 关键词:软件重用,面向 对象技术,面向 对象方法学,设计模式, 框架技术、 重构技术、软件生产线 摘要 p t g g u i d e v e l o p m e n t a n d s o f t w a r e r e u s e t e c h n i q u e s m a j o r : c o m p u t e r a p p l i c a t i o n gr a d u a t e: ouy ang re n h a i a d v i s o r : y a n g h o n g y u a s s o ft w a r e b e c o m e s a m o r e a n d m o r e c r i t i c a l a s p e c t o f t h e s o c i e t y , t h e d e m a n d s f o r d e v e l o p i n g c o m p l e x , e ff i c i e n t , r o b u s t s o ft w a r e g r o w l a r g e r a n d l a r g e r . d e s p i t e s i g n i f i c a n t a d v a n c e s i n c o m p u t e r s , n e t w o r k s , p r o g r a m m i n g l a n g u a g e s , a n d s o ft w a r e m e t h o d o l o g i e s , d e v e l o p i n g q u a l i t y s o ft w a r e o n t i m e a n d w it h i n b u d g e t i s s t i l l h a r d . t h e s o ft w a r e i n d u s t r y f e e l s m o r e a n d m o r e d i f fi c u lt t o m e e t t h e g r o w in g d e ma n d s . ho w t h e s o ft w a r e c r i s i s c o me s ? b e c a u s e t h e c o s t f o r s o ft w a r e d e v e l o p m e n t a n d m a i n t e n a n c e k e e p s i n c r e a s in g a n d t h e q u a l i t y o f t h e i n c r e a s i n g l y c o m p l i c a t e d s o ft w a r e is h a r d t o c o n t r o l . o n e e ff e c t i v e a n d f e a s i b l e s o l u t i o n f o r a d d r e s s i n g k e y a s p e c t o f t h e c h a l l e n g e o u t l i n e d a b o v e i s t o d e v e l o p r e u s a b l e a n d m a i n t a i n a b l e s o f t w a r e , n a m e l y s o ft w a r e r e u s e s o ft w a r e r e u s e i s o n e o f t h e m o s t i m p o r t a n t i s s u e s f o r i m p r o v i n g t h e p r o d u c t i v i t y o f s o ft w a r e d e v e lo p m e n t p r o c e s s e s a n d t h e s o ft w a r e q u a l i t y a s w e l l . s o ft w a r e r e u s e i n c l u d e s n o t o n l y t h e r e u s e f o r p r o d u c t s , f r a m e w o r k s , c o m p o n e n t s a n d c o d e s , b u t a l s o t h e r e u s e o f s o ft w a r e d e v e l o p m e n t p r o c e s s e s . b y f a r , a l o t o f s o ft w a r e r e u s e t e c h n i q u e s h a v e b e e n p r o p o s e d i n t h e s o ft w a re r e u s e c o m m u n it y . b as e d o n t h e r e s e a r c h b a c k g r o u n d o f t h e p t g g u i c s c i w i t h i n t h e t h a l e s a t m e u r o c a t - 2 0 0 0 s y s t e m , i e x p l i c i t d e m o n s t r a t e s o m e s o ft w a r e r e u s e t e c h n i q u e s , s u c h a s o b j e c t o r i e n t a t i o n , 0 0 m e t h o d s , d e s i g n p a tt e rn, f r a m e w o r k , r e f a c t o r i n g a n d s o ft w a r e p r o d u c t l i n e , w h i c h w e r e r e l a t e d t o o r i n v o lv e d i n t h e p r o j e c t d e v e l o p m e n t . a s a s o ft w a r e e n g i n e e r t r a i n e e , i fi n i s h e d t h e p t g g u i p r o j e c t i n 1 0 m o n t h s o r s o , 6 w e e k s f o r fu n c t i o n a l it y a l l o c a t i o n a n d f e a s i b i l i t y a n a l y s i s ( s p e c i f i c a t i o n ) , 3 w e e k s f o r s o ft w a r e r e q u i r e m e n t s a n d i t s d o c u m e n t s , 8 w e e k s f o r s o ft w a r e d e s i g n a n d i t s d o c u m e n t s as w e l l , 6 w e e k s f o r u n i t t e s t a n d i t s r e p o r t s , 1 0 w e e k s f o r c o d i n g a n d 摘要 5 w e e k s f o r i n t e g r a t i o n t e s t a s d e t a i l f o r t h e p e r i o d . t h e s o ft w a r e d e s i g n g o t a n e x c e l l e n t e v a l u a t i o n b y t h e t h a l e s a t m. t h e s o ft w a r e p a s s e d t h e c o m p a n y s i n t e r n a l v a l i d a t i o n i n j a n u a r y 2 0 0 4 , a n d h a s b e e n a v a i l a b l e s i n c e ma r c h 2 0 0 4 . b y t h e d a t e , t h e s o ft w a re r u n s w e l l a n d i m p r o v e s t h e e f f i c i e n c y s i g n i f i c a n t l y . a s a r e s u l t , b o t h t h e f u n c t i o n a l i t i e s d e s i g n a n d t h e o p e r a t i o n o f t h e s o ft w a r e g e t a v e r y h i g h e v a l u a t i o n fr o m t h e c u s t o me r s ma i n a s p e c t s o f t h e w o r k i d i d w i t h i n t h e p e r i o d a r e l i s t e d a s f o l l o w s : i . t h e i m p l e m e n t a t i o n o f t h e p t g g u i c s c i : a l l d e v e l o p m e n t p r o c e s s e s , i n c l u d i n g f u n c t i o n a l i t y a l l o c a t i o n , f e a s i b i l i t y a n a l y s i s , s o ft w a r e d e s i gn a n d d e p l o y m e n t , c o d in g , u n i t t e s t , i n t e g r a t i o n t e s t a n d d o c u m e n t i n g , a r e f i n i s h e d b a s e d o n t h e r e l a t e d s t a n d a r d s a n d s o ft w a r e d e v e l o p m e n t fl o w o f t h a l e s a t m. 2 . e m b e d d e s i g n p a tt e r n s i n t o t h e s p a c e b e t w e e n t h e o o a a n d t h e o o d t w o p h a s e s : g e n e r a l l y , o b j e c t - o r i e n t e d me t h o d s ( 0 0 me t h o d s ) d i v i d e s s y s t e m d e s ig n i n t o t w o p h a s e s , n a m e l y 0 0 a n a l y s i s a n d 0 0 d e s i g n . h o w e v e r , i t w o n t t r a n s i t a u t o m a t i c a l l y f r o m o o a t o o o d in a p p l ic a t i o n d e v e l o p m e n t . t h e r e i s a h o l e b e t w e e n t h e t w o p h a s e s , w h i c h u s u a l l y m a k e s s o ft w a r e d e v e l o p e r s c o n f u s e d . t o h e l p t h e d e v e l o p e r s t o f i l l t h e h o l e , t h i s t h e s i s p r e s e n t a w a y b y i m p o rt i n g e x p e r i e n c e d k n o w l e d g e a n d s p e c i f i c a l l y w e l l - p r o v e n s o l u t io n s i n t h e s o ft w a r e d e v e l o p m e n t p r o c e s s e s . 3 . a f r a m e w o r k t o g e n e r a t e p t g c o m m a n d s d y n a m i c a l l y : t h e s i t u a t i o n s t h a t t h e r e a r e a l o t o f p t g c o mma n d s a n d me a n wh i l e wh o s e f o r ma t s a r e d i v e r s e m a k e t h e g r a m m a r p a r s e r p r e tt y c o m p l i c a t e d . a n d w h a t s m o r e , t h e p r o j e c t r e q u i r e s t h a t t h e p t g g u i c a n g e n e r a t e d i ff e r e n t p t g c o m m a n d s d y n a m i c a l l y a c c o r d i n g t o t h e u s e r s a l t e r a b l e a c t i o n s . t o r e s o l v e t h e s e p r o b l e m s , i d e s i g n e d a f r a m e w o r k n a m e d g e n e r a t o r , w h i c h m e e t s t h e p r o j e c t r e q u i r e m e n t s w e l l . f u r t h e r , a ft e r a b s t r a c t i n g t h e fr a m e w o r k o n c e a g a i n , i f i n d t h e f r a m e w o r k c a n b e a p p l i e d i n m a n y o t h e r r e l a t e d c o n t e x t s a s we l l . 摘要 4 . a b r i e f d e s c r i p t i o n o f t h e e u r o c a t - 2 0 0 0 s y s t e m p r o d u c t l i n e : a c c o r d i n g t o m y d e v e l o p m e n t e x p e r i e n c e s i n t h a l e s a t m a n d t h e u n d e r s t a n d i n g o f t h e e u r o c a t - 2 0 0 0 s y s t e m , i p r e s e n t a s o ft w a r e p r o d u c t l i n e f o r t h e e u r o c a t - 2 0 0 0 s y s t e m t o d e m o n s t r a t e w h y t h e p r o d u c t l i n e i s t h e p i n n a c l e o f s o ft w a r e r e u s e a n d h o w t o a c h i e v e s o ft w a r e p r o d u c t l i n e s . k e y wo r d s : s o f t w a re r e u s e , o 坷e c t o r i e n t a t i o n , o b j e c t o r i e n t e d me t h o d s d e s i g n p a t t e r n , f r a m e w o r 阮r e f a c t o r i n g , s o f t w a r e p r o d u c t l i n e 四川大学硕士学位论文 1 前言 课题提出 2 0 0 3年 5月,我前往 t h a l e s a t m 澳大利亚分公司做为期一年的实习工 作为一名实习软件工程师,在这期间,我的一个主要工作任务就是为公司 月.a 1.作 开发一个新的图形用户界面部件一p t g g u i 。p t g g u i 构建在 e u r o c a t - 2 0 0 0 系统的p t g ( p lo t t r a c k g e n e r a t o r )部件基础之上, 将取代旧的命令行输入接 口 方式,为 p t g提供更方便的用户接口和增加新的功能,以尽可能的发挥 p t g 部件的全部功能。 作为一家全球知名公司,t h a l e s a t m在空中交通管制领域已经从事了2 0 余年。经过过去 1 0年的长期使用,e u r o c a t - 2 0 0 0系统在全球已经拥有了 1 6 0 多个国 家的 使用用户。同时, e u r o c a t - 2 0 0 0 系统一 t h a l e s a f m目 前最新、 最先 进的空中交通管制系统一也己经成为一个相对比较成熟的产品。作为整个系统 的一个新的部件,p t g g u i 应该具有与系统其它部件相似的共性:生命周期 长、重用性好以及易于维护和扩展,这也是项目的一个总体要求。 1 . 2项目背景 t h a l e s a t m 是一家国际性公司,它在法国、英国、澳大利亚、德国、意 大利以及美国有 6个分公司。e u r o c a t - 2 0 0 0 是该公司目前在全球用户中统一的 最新系统。该系统在过去的 1 0年里一直运作良 好,取得了很好的市场回 报。 但是,不同的分公司对统一的e u r o c a t - 2 0 0 0 系统以及系统的全球用户具有不同 的职责和角色。以我所在的澳大利亚分公司为例,该分公司拥有不到2 0 0 个员 工,每年都有数十个国家或地区的项目 要并行开发。公司除了承担了整个亚太 区域的用户服务以及技术支持任务之外,还负有对e u r o c a t - 2 0 0 0 系统进行维护 四川大学硕士学位论文 以 及新系统的研发职责。然而,据我所见和经历,面对如此数量的项目 并行以 及分布广而多的用户服务情况下,国内的大多数软件公司将会疲于奔命、难于 应付。是什么使得这些差别如此之大呢?经过这一年左右的实习经历,我越发 相信造成如此差距的本质原因是:软件产品的可重用程度或是软件产品作为一 个软件产品线的成熟度。 软件重用是提高软件开发过程产品效率的一个最重要的方法之一。面向 对 象技 术 ( o b j e c t o r i e n t a t i o n ) 提 供了 很多 支 持灵活 软件开 发的 机制。 例 如, 继 承 ( i n h e r i t a n c e ) 和多 态 ( p o ly m o r p h i s m ) 对结 构 和行为易 变的 软件的开 发、 处理提供了很好的帮助。由于这些机制提供了对结构可变性的支持,这就避免 了迫使开发人员过多和过早 ( t o o m u c h a n d t o o s o o n )作出设计决定的情况的 发生, 而这正是使用传统语言 ( c , p a s c a l , e t c . ) 和模块语言 a d a )开发中最 常面对的一个问题。通过对系统预使用的对象的模块划分,而不是根据系统所 要执行的各项功能,面向对象技术对面向 刘 一 象的系统进行组织、规划 【 1 。 然而,面向对象机制并不会自 动地生成重用性好、易于维护的面向对象软件系 统。说到底,面向对象机制只是一些简单的方法。怎样利用面向对象的这些方 法、机制来设计健壮的、可重用的软件,才是面向 对象技术的真正挑战所在, 这涉及到许多设计方面的问题。 研究人员开发了大量的面向对象方法 ( 0 0 me t h o d s ),以求解决那些设计间题。这些面向对象方法,比如:o mt 2 l、b o o c h 3 1、r d d ( 4 1、o o s e ( 5 以及 f u s i o n 6 等,都提供了 一些用以下形式表达的软件开发方面的知识:如建模概念 ( m o d e l i n g c o n c e p t s )、标记 符 ( n o t a t i o n s )、设计向导和规则 ( d e s i g n g u i d e l i n e s / r u l e s ) 以 及开发 过程 ( d e v e lo p m e n t p r o c e s s ) 等。 建 模 概念和 标记 符有助于实 际 应 用 程序的实现以及系统设计的建模和文档化工作。开发过程则有助于开发活动和 资源的组织、协调。而设计向导和规则有助于正确的设计策略的获取。然而, 面向 对象方法学也不是一个完美的解决方案,它仍处在不停完善、改进地过程 当中。 近年来, 大量的工 作倾向 于, 就像面向 对象设 计模式 ( d e s i g n p a t t e rn ) 提取并且描述专家设计知识那样,将某些专家设计知识注入到面向对象方法学 里面。与面向对象方法学试图为软件开发各方面提供普遍的规则不同,设计模 式关注于一些特定的设计问题以及为这些问 题提供具体的解决方案。所以 从很 四川大学硕士学位论文 大程度上来说,在软件开发过程当中, 设计模式和面向对象方法学可以 相互补 充、配合使用,以促进可重用软件的开发。 然而, 当离开了 软件运行的原 始环境 o r i g i n a l c o n t e x t ),小的软件模块 ( s m a l l p i e c e s o f s o ft w a r e ) 并不能在其它地方得以 很好的重用。面向 对象的 应 用程序框架 ( f r a m e w o r k )不但实现了软件重用,同时也提供了软件重用发生 时所需要的上下文相关环境。一个面向对象的应用程序框架是一个在系统或子 系统层次上的可重用设计,它通过定义一系列的抽象类以 及这些类之间的协作 关系来得以实现 【 7 7。在保持框架的原始设计基础上,开发人员只需要对框 架的 相关部分 进行扩 一 充 ( e x t e n d i n g ) 或是 用户 化 ( c u s t o m i z i n g ), 便可以 构 建 出 所需的 应 用程 序。 通过 对嵌 入 到 模 块、 构 件 ( c o m p o n e n t s ) 、 类 ( c la s s e s ) 和函数 ( f u n c t i o n s )中的代码的结构化分析,以及对框架的分析模型和设计模 型的提取,框架技术不仅实现了 代码重用, 而且 也实现了对模型的重用。在没 有 将 各 个 类或 构 件置于 一 个通 用 库 ( g e n e r i c l ib r a r y ) 的 情况 下, 框 架设 计 提 供 了另外一种组织相关构件的方法。各个构件在框架提供的上下文相关环境里实 现重用,而且这种重用并不需要对构件进行改动。所以说,框架解决了比单个 构件更大粒度层次上的软件重用问题。 当我们谈到重用的时候,比如增加新的功能于现存软件或者将现有软件运 用于新的工作环境等软件的进化发展情况往往是不可避免的。为了使现有软件 仍能很好的运用于新的应用环境,我们很有可能对现有代码进行调整,对现有 的结构进行重新构造 ( r e s t ru c t u r e )。这个时候,我们就可以用重构 ( r e f a c t o r i n g ) 技术来指导软件设计者和开发人员 对现有软 件进行优化处理, 使得现有软件具有更好的重用性。 近些年来,重构技术在软件重用领域越发成 为一个热门的话题。在 【 8 l中,ma r ti n介绍了大量的怎样对现有代码和设计 进行优化的方法向导和技巧。在 【 9 7书中,j o s h u a k e r i e v s k y则描述了怎样 在设计模式的指导下,对现有代码进行重构。而在 【 1 0 】中, w 工 l l 工 a m f . o p d y k e则从更高的层面介绍了一种怎样对现有面向对象框架进行重构的方 法。 软件生 产线 ( s o ft w a r e p r o d u c t l i n e ) 是为了 满足一 个特定的市 场或任务需 求,并在事先描述的流程下进行开发的、可管理的一组相似系统 【 1 1 7。软件 四川大学硕士学位论文 生产线是基于构件一构架模式的软件开发技术及系统,为软件开发提供了整体 解决方案, 推行软件工业化生产模式。作为一个主要的软件重用技术概念,软 件生产线实现了软件功能和解决方案的重用,于是这就很好地提高了软件质 量、大大提升了开发效率以及节约了软件开发成本,这都使得软件公司实施全 球战略成为可能,并且为他们提供了一种可行方法。软件生产线是软件重用领 域里最大限度的重用形式 【 1 2 1。 软件重用包含了 技术 ( 如:分析或设计软件系统时所用的方法、怎样开发 重用性好的构件等)和非技术 如:产品策略、市场策略以及如何组织开发过 程等) 方面的问题。本篇论文将主要从技术方面来介绍目 前流行的一些软件重 用技术,这包括怎样使用设计模式、 面向对象框架技术、重构技术以 及软件生 产线来实现最大化程度的软件重用。 1 . 3项目及论文概述 p t g g u i 部件作为一个建立在 e u r o c a t - 2 0 0 0系统 p t g部件之上的一个全 新部件,它的研发具有两个不可回避的要求。其一就是:重用性好、易于扩展 和维护,这同时也是系统对所有其它部件的要求。其二便是:易于操作、可控 性好, 这是作为用户界面背景而提出的另一要求。 所以 整个部件从最初的设计 分析、功能分配、功能间的相关性研究、代码编写以及文档编辑都是在这两个 要求和 t h a l e s a t m 公司内部的 软件开发过程规范以及 软件开发向 导 原则下开发完成的。酉 己 置文件在部件界面以及整个部件中的使用、设计模式的 引入、整个部件的框架描述和实现、界面的动态改变以及界面上组件与功能的 分离、独立等都是实现上述要求的体现。 p t g g u i 部件的开发完全基于软件重用的思想, 应用了各种面向 对象技术 和软件重用技术, 采用j a v a 为实现语言, 选用j 2 s d k以 及e c l i p s e 2 . 1 .。 为项 目开发平台和集成环境。其中j a v a 语言的选择,主要基于以下原因 【 1 3 1 1 )与公司普遍使用的c 语言比较 根据项目的总体要求以及当前面向对象技术的普遍使用背景,选用基 四川大学硕士学位论文 于面向 对象的j a v a 相比于使用基于过程化的c 语言更具合理性。 2 )与公司普遍使用的c + + 和a d a比较 与c + + 和a d a不同, j d k ( j a v a d e v e l o p m e n t k i t )己 将主要用于图形 处理以 及窗口 界面编程的j a v a s w i n g 包作为一个核心包加入到了j a v a 2 的 j f c ( j a v a f o u n d e r m e n t a l c la s s e s ) 中, 这无 疑 使 得项目 的 开 发 和实 现变 得 更便捷、更具独立性。 3 ) 成本考虑 无论j 2 s d k 平台以 及e c l i p s e 集成开 发环境都可免费 得到。 4 )项目 集成以及维护性方面考虑 因为公司的新一代空中交通管制系统的 mmi 部件将同样选择 j a v a 作 为开发语言,这无疑会使得系统将来的 集成以 及p t g g u i 部件的 维护工作 更易进行。 同时,项目 还用 r h a p s o d y , d o o r s 作为软件开发辅助工具, u n ix以 及 t h a l e s t h a l i x ( l i n u x的一种,是 t h a l e s 公司在通用的 l i n u x核心包基础上,结合 空中交通管制的特殊应用背景,开发设计的一组l i n u x 系统包)为编译运行平 台,用 b t c , t k d , c v s 作为软件开发配置管理工具,历时 1 0 个月左右,其 中 项目 功能界定以 及可行性分析 ( s p e c i f i c a t i o n ) 用时 6 周, 软件需求及其文 档编写 ( s r s )用时 3 周,软件设计及其文档编写 ( s d d)用时 8 周,编码前 后的单元测试以 及测试文档编写 ( u t ) 用时 6 周, 代码编写 ( c o d i n g ) 用时 1 0 周,集成测试 ( i t )用时 5 周。软件的设计得到了 t h a l e s a t m公司的良好 评价,并于 2 0 0 4 年 1 月通过了公司内部验证,2 0 0 4 年 3 月开始投入使用。软 件投入使用以来,一直运行稳定,效率提高明显,无论在功能设计还是在操作 使用方面都得到了用户的好评。 本文便是以p t g g u i 项目 为背景,引入了软件重用概念,并对软件重用 背景以及影响软件重用的技术和非技术因素作了介绍、分析。然后结合在 p t g g u i 中使用的各个实例,详细地阐述了软件重用领域里的几个重要重用 技术,比 如面向 对象技术、设计模式、框架技术、重构技术以 及软件生产线。 最后总结了软件重用遇到的问题,以及提出了实现软件重用及其最高形式的重 用一软件生产线一几点建议。 四川大学硕士学位论文 这期间 1 ) ,本人主要做了以下几个方面的工作; 整个 p t g g u i 部件的开发实现:从p t g g u i 的功能界定, 可行 j性分析,软件需求,软件设计、规划与布局,整个项目 编码,单 元测试,集成测试以 及所有文档编写工作,全部按t h a l e s a t m公 司相关标准以及软件开发流程完成。所以,通过这个项目的实际 研发经历,本人在软件工程方面做了一次全面的实践和体会,取 得了实习的预期效果,项目 的预期需求也得到了全面实现。 将设计模式嵌入到面向对象分析 ( o o a)与面向对象设计 ( 0 0 d)过程之间:面向对象方法学一般将系统设计分析分成两 个阶段,即面向对象分析与面向对象设计。然而,在实际项目的 分析设计过程当中,设计人员经常发现面向对象方法学中的分析 理论与设计理论之间并不会自由过渡,它们之间往往存有一条鸿 沟,时常困惑着设计人员。基于此问题,本文通过引人设计模式 的经验知识以 及特定领域的、被反复验证的经验解决方案,能很 好地帮助设计人员顺利跨越这条鸿沟。 p t g动态命令生成框架 ( g e n e r a t o r f r a m e w o r k ):由于p t g命令 繁多且命令格式变化多样,语法分析器也颇为复杂,再加上项目 要求:能跟据用户的各种触发事件动态产生符合语法要求的相应 p t g命令 ( 可能一条,也可能是多条,甚至多组)。为了解决此 类灵活问 题,我设计了一个g e n e r a t o r 框架,很好的实现了项目 要 求。而且经过对此框架的再次抽象,发现该框架还可大量的应用 于其它相关情形,比 如 t h a l e s a t m的 i m a g e 工具部件的构建描 述、mi s 系统或空管系统的动态用户界面生成等。 e u r o c a t - 2 0 0 0 系统生产线的描述:根据作者在 t h a l e s a t m的实际 项目开发过程以及对 e u r o c a t - 2 0 0 0系统的认识和理解,本文对 e u r o c a t - 2 0 0 0系统生产线作了一个简单的描述,以此说明软件生 产线为何是软件重用的的顶峰以及如何实施软件生产线的问题。 四川大学硕士学位论文 1 .4论文组织结构 文章第 2章主要介绍了 p t g g u i 的开发及运行环境,即 t h a l e s a t m e u r o c a t - 2 0 0 0 的基础中间件系统u b s s . p t g g u i 的运行基础部件p t g部件、 以及 p t g g u i 木身的介绍;第 3 章主要从软件重用的应用背景、重用的方法 以 及重用的意义等方面对软件重用做了一个全面介绍。论文第4 章到第8 章则 逐章详细地介绍一种软件重用技术, 其中第4 章介绍了面向对象技术和面向 对 象方法学对软件重用的作用,以 及它们的局限性;第5 章则详细地介绍了设计 模式方面的问题,包括设计模式的发展、模式分类、设计模式的组成、设计模 式为软件重用带来的好处以及设计模式与面向对象方法学的互补性探讨,并且 给出了 p t g g u i 中的两个典型设计模式例子,以阐述设计模式的应用;第 6 章详细地介绍了框架技术,包括框架的定义、框架的重用特性以及框架的分 类,同样给出了一个 p t g g u i 中具体框架例子,以阐述框架的开发及使用; 第7 章主要介绍了重构技术,包括重构的定义、为什么重构、什么时候重构以 及如何重构等方面的介绍;第8 章则简单的介绍了软件生产线,包括软件生产 线的概念以及生产线实施时应该考虑的几个方面,并以作者的理解,给出了 e u r o c a t - 2 0 0 0生产线描述图。论文最后一章,对软件重用作了一个总结,并以 作者个人观点提出了今后软件重用实施应该考虑的几个因素。 2 t h a l e s e u r o c a t - 2 0 0 0系统 2 . 1 u b s s介绍 e u r o c a t - 2 0 0 0是t h a l e s a t m在全球1 6 0 多个国家或地区用户中最先进的空 中交通管制系统 本主要用于欧洲 该系统有两个非常相似的版本。其一是:e u r o c a t - e,该版 另一版本是:e u r o c a t - x,用于欧洲之外的其它地区。但无 论用户选用的是 哪个版本, u b s s ( u n i x b a s e d s y s t e m s o ft w a r e ) 这个系 统核心 7 四川大学硕士学位论文 中间件, 始终是e u r o c a t - 2 0 0 0 系统的运行基石。 通 过 对复 杂的、 弱 类 型的( w e a k l y t y p e d ) 、 易 于出 错的u n i x编 程 接口 进行封装,u b s s提供了很多增值服务。u b s s建立在一些系统服务之上 ( 见 图1 ),这些服务基本上由x / o p e n u n i x标准、网络和i s o协议提供。同时 在这些服务基础之上,u b s s额外增加了一些空中交通以及空中命令和控制系 统所需要的功能。 u b s s 所提供的服务对所有基于c + + , c , a d a以及j a v a 语 言开发的应用程序有效,并且这些服务可用于多种不同的系统平台 ( 比如: d e c 5 0 0 0 / 3 0 0 0 u l t r i x / d i g i t a l u n i x , h p u n i x , s u n s o l a r i s , i b

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论