(计算机应用技术专业论文)基于复合代码仓库的多agent程序理解环境和工具研究.pdf_第1页
(计算机应用技术专业论文)基于复合代码仓库的多agent程序理解环境和工具研究.pdf_第2页
(计算机应用技术专业论文)基于复合代码仓库的多agent程序理解环境和工具研究.pdf_第3页
(计算机应用技术专业论文)基于复合代码仓库的多agent程序理解环境和工具研究.pdf_第4页
(计算机应用技术专业论文)基于复合代码仓库的多agent程序理解环境和工具研究.pdf_第5页
已阅读5页,还剩88页未读 继续免费阅读

(计算机应用技术专业论文)基于复合代码仓库的多agent程序理解环境和工具研究.pdf.pdf 免费下载

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

文档简介

摘垂 摘要 软件维护占用了大部分的软件系统成本和花费( 3 5 8 0 ) ,而大约有3 0 9 0 的维护jr 销是程序理解。程序理解及相关技术已经成为计算机科学领域发展 最快的课题之。当前程序理解的主要研究是在具体的理解工具上,我们认为同 等重要的还有理解环境。理解环境为理解工具提供分布存储和计算平台,提供工 具1 1 日j 的协作接门,工具的结果存储和检索仓库,以及对维护人员提供统的呵切 换导航的视图集成。 本文从结果表示、环境以及工具方面对程序理解进 j :了深入的研究。 针对当前作为丌发结果的代码和文档并f i 能保存程序理解和软件维护所需 伞部信息的柚题。奉文提出了一种复合代码的表示方法,将代码、业务逻辑、概 念、文档及各种相关资料以及它们之间的联系统保存成一个整体。复合代码保 存了整个程序理解和维护生命过程需要的信息。复合代码的仓库可以作为各种程 序理解】一具信息交换地点和输出结果的保存地点。重用复合代码中的元素可以不 但可以晕用代码,而且可以重用相关设计以及文档。 程序理解就是个形成和丰富复合代码的过程。复合代码的各个部分即相对 独、z 又栩瓦联系,这些部分l u 以由独立的a g e n t 来牛成,阕此可以用多a g e n t 系 统来建构理解环境的后端。程序理解处理需要密集的计算,本文提出了a p n a ( a c t i v ep e e r t o - p e e r n e t w o r k a r c h i t e c t u r e ) 架构,利用一个机构中的计算机组成 t 动p 2 p 网络,并在此基础上部署多a g e n t 程序理解系统后端以支持计算和信息 分靠。 在稃序理解工具方面,本文阐述了在原型系统中实现的架构乍成,文档关联 平i 】概念关联工具。这二种工具在各种程序理解策略中都是不可缺少的。 软件系统架构描述软件系统的整体组织框架,各个子系统之间的逻辑功能组 织及调用关系,可以成为系统程序理解的起点,也是复合代码的视图导航起点。 本文提出了一种基于动态程序执行特性分析的软件架构恢复方法,对动态执行数 据做f c a ( f o r m a lc o n c e p ta n a l y s i s ) 分析生成系统的逻辑架构视图。并为后续 的概念关联过程提供初始数据。 软件系统包含各种自山格式文档,维护和跟踪文档和代码的哭联将对程序理 解、文档维护都有重要意义。本文提出了种信息检索的方法来自动完成代码和 中文文档的关联。代码关联的文档瞧为概念识别提供初始线索。 程序理解是一个渐进地从代码中识别和抽象出业务逻辑,概念和模式的过 程。本文提出了一种动作概念,对象概念以及设计模式的知识表示方法,并在此 基础上提出基于树匹配的对象概念关联方法。 本文的主要工作有以下儿点: 提出一种新的程序理解结果表示一复合代码。复合代码保存程序理解和软 件维护整个乍命过程中的信息。基于复合代码仓f | 车,提出了一种多a g e n t 系统程 序理解环境。 提出了种动作概念、对象概念、设计模式等知识的表示方法。将代码、 f c a 结构分析数据、概念知识库、代码关联的文档结合,提出了基于树匹配的 对象概念关联算法。自动从程序代码中抽象识别概念。进而为识别动作概念提供 线索。 浙汀犬学博f 学何论史 提出了一种主动p 2 p 网络架构,该系统结构能灵活和充分利用一个机构中 的计算机资源来完成分布式汁算和存储。t 动p 2 p 刚络为部署其上的程序理解多 a g e n t 环境提供_ 厂分斫j 计算和存储支持。 提出一种信息检索的方法自动跟踪中文文档和代码的关联。 关键词: 程序理解、多a g e n t 系统、主动网络、p e e rt o p e e r 网络、知识表示、 概念关联、架构恢复 a b s t r a c l a b s t r a c t a b o u t3 5 - 8 0 c o s to fs o f t w a r es y s t e ml sm a i n t e n a n c e a n d3 0 9 0 c o s to fl t1 s p r o g r a mu n d e r s t a n d i n g ( p u ) ,i nr e s e n ty e a r s ,p ua n dr e l a t e dt e c h n o l o g yh a v eb e e n d e v e l o p e da n dr e s e a r c h e da c t i v e l y c u r r e n tr e s e a r c h so fp u o r ef o c u sm a i n l yo nt o o l s o fi t b u tw eb e l i e v et h ep r o g r a mu n d e r s t a n d i n ge n v i r o n m e n t ( p u e ) s h o u l dh a v ea n e q u a l o re v e nm o r ei m p o r t a n c ea st op ut o o l s ( p u 7 1 1 ) p u e sp r o v i d ed i s t r i b u t e d c o m p u t i n ga n ds t o r a g e ,c o o p e r a ti n t e r f a c e ,r e s u l tr e t r i e v ea n ds t o r i n gr e p o s i t o r yt o p u t s a n dp r o v i d ei n t e g r a t e dn a v i g a t a b l ev i e w st om a i n t a i n e r s i nt h i st h e s i s ,t h er e s u l tf o r m ,e n v i r o n m e n ta n dt o o l so f p r o g r a mu n d e r s t a n d i n g a r es t u d i e d a st h er e s u l t so fd e v e l o p m e n to fm o d e ms o f t w a r e ,s o u r c ec o d e sa n ds o f t w a r e d o c u m e n t sc o u l dn o tr e s e r v ea l lo ft h ei n f o r m a t i o nn e e d e db y p r o g r a mu n d e r s t a n d i n g a n ds o f t w a r em a i n t e n a n c e i nt h i st h e s i s an e wr e s u l tf o i t f in a m e dc o m p o u n dc o d e ( c c ) i sp r e s e n t e d ,w h i c hb r i n g st o g e t h e rc o d e ,d o c u m e n t s ,b u s i n e s s e sl o g i c ,h u m a n c o n c e p t s ,o t h e r a r t i f a c t sa n dr e l a t i o n sb e t w e e nt h e m c c ss a v e da l lt h en e e d e d i n f o r m a t i o ni nt h el i f e c y c l eo f p r o g r a mu n d e r s t a n d i n ga n ds e r v e sa sac e n t e ro fi n p u t a n do u t p u to f p r o g r a mu n d e r s t a n d i n gt o o l s r e u s i n ge l e m e n t so fc c sc o u l dn o to n l y r e u s es o u r c ec o d e s ,b u ta l s od e s i g n sa n dd o c u m e n t s t h e p r o c e s so fp r o g r a mu n d e r s t a n d i n gi st h ep r o c e s so fc o n s t r u c t i n gc o m p o u n d c o d e b e c a u s ep a r t so fc o m p o u n dc o d ea r er e l a t i v e l yi n d e p e n d e n t ,s o f t w a r ea g e n t s c o u l dg e n e r a t ee v e r yp a r to f i t t h ew h o l ee n v i r o n m e n to f p r o g r a mu n d e r s t a n d i n g i sa m u l t i _ a g e n ts y s t e m ( m a s ) t op r o v i d eh e a v yc o m p u t a t i o nc o m p u t i n gs u p p o r to ft h e m a s ,w ep r e s e n tan e t w o r ka r c h i t e c t u r en a m e da p n af a c t i v ep e e r t o p e e rn e t w o r k a r c h i t e c t u r e ) p c s i na no r g a n i z a t i o n i m p l e m e n t sa p n af o h n sa na p nf a c t i v e p e e r - t o p e e rn e t w o r k ) c o m p u t a t i o n sa n di n f o r m a t i o ns t o r a g ea r ed i s t r i b u t e dt oa p n n o d e s i nt h e s i s ,t h r e et o o l so fp ua r ep r e s e n t e dw h i c ha r eu s e f u lt oa l l t h ep r o g r a m u n d e r s t a n d i n gs t r a t e g y t h e ya r e :a r c h i t e c t u r ev i e w sr e c o v e r y ,l i n k st r a c i n gb e t w e e n s o u r c ec o d e sa n dd o c u m e n t sa n d c o n c e p ta s s i g n m e n t s o f t w a r ea r c h i t e c t u r ev i e w sd e s c r i b e rt h ef r a m e w o r ko fs o f t w a r e ,f u n c t i o no f s u b s y s t e ma n dt h ec a l lg r a p ho ft h e m t h e s ev i e w sc o u l ds e r v ea ss t a r t p o i n to f p r o g r a mu n d e r s t a n d i n ga n dc o u l dh e l pb e t t e ru n d e r s t a n d i n ga n dr e u s i n gs o f t w a r e i n t h i st h e s i s ,am e t h o do fa r c h i t e c t u r er e c o v e r yb a s e do n a n a l y s i so fp r o g r a me x e c u t i o n i n f o r m a t i o ni sp r o p o s e d l o g i cv i e wo fs o f t w a r ea r c h i t e c t u r ei s g o tb ya p p l yf o r m a l c o n c e p ta n a l y s i s ( f c a ) t o r e c o r d e de x e c u t i o ni n f o r m a t i o n d a t aa r ea l s og a t h e r e df o r c o n c e p ta s s i g m n e n ts t a g e t r a c i n ga n dm a i n t a i n i n gl i n k sb e t w e e nf r e et e x td o c u m e n t si nc h i n e s ea n di t s s o u r c ec o d ep l a y si m p o r t a n tr o l ei ns o f t w a r ee n g i n e e r i n g an e wm e t h o db a s e do n i n f o r m a t i o nr e t r i e v a l ( 1 r ) t oa u t o m a t i c a l l yt r a c el i n k sb e t w e e nc o d ea n dd o c u m e n t si s p r o p o s e d t h er e l a t e dd o c u m e n t so fc o d e sa r es e r v e da sf i r s th a n d sc l u e st oc o n c e p t a s s i g n m e n t 浙江大学博上学位论文 h u m a nu n d e r s t a n dp r o g r a mb ya b s t r a c t i n gb u s i n e s sl o g i c s ,c o n c e p t sa n dm o d e l s f r o ms o u r c ec o d e s ap r e s e n t a t i o nf o r mo fa c t i o nc o n c e p t ,o b j e c tc o n c e p ta n d d e s i g nm o d e l si sp r o p o s e da n e wm e t h o do f o b j e c tc o n c e p ta s s i g n m e n tb a s e d o nt r e e m a t c h i n ga l g o r i t h mi sp r o p o s e d t h em a i nc o n t r i b u t j o n so f t h i st h e s i sa r ea sf o l l o w s : p r o p o s e an e wf o r t r ln a m e d c o m p o u n d c o d et os t o r ea l lt h en e e d e d i n f o r m a t i o ni nw h o l el i f e c y c l eo f p r o g r a mu n d e r s t a n d i n g b a s e do nc c s ,a n e n v i r o n m e n to f p r o g r a mu n d e r s t a n d i n g m a s s y s t e mi sa l s op r o p o s e d p r o p o s e an e wf o r mt op r e s e n tk n o w l e d g eo fa c t i o nc o n c e p t s o b j e c tc o n c e p t s a n dd e s i g nm o d e l s an o v i c eo b j e c t c o n c e p ta s s i g n m e n tm e t h o do ft r e e m a t c h i n gb e t w e e nv a r i a b l ea c c e s st r a c i n gt r e ea n dc o n c e p tt r e ei sp r o p o s e d p r o p o s e a ni rm e t h o dt ot r a c el i n k si n f o r m a t i o nb e t w e e nc o d e sa n dc h i n e s e d o c u m e n t s p r o p o s ea p n aa r c h i t e c t u r e u t i l i z i n gc o m p u t e rr e s o u r c e si n a no r g a n i z a t i o n t os u p p o r td i s t r i b u t e dc o m p u t i n ga n ds t o r a g eo f t h em a s k e yw o r d s :p r o g r a mu n d e r s t a n d i n g ,p r o g r a m c o m p r e h e n s i o n ,m u l t i a g e n t s y s t e m ,a c t i v en e t w o r k ,a c t i v ep e e r _ t o p e e rn e t w o r k ,k n o w l e d g ep r e s e n t a t i o n ,c o n c e p t a s s i g n m e n t ,a r c h i t e c t u r er e c o v e r y 第一章引言 第一章引言 1 1 程序理解环境的提出 程序理解( p r o g r a mu n d e r s t a n d i n g 或者p r o g r a mc o m p r e h e n s i o n ) 是存程序理 解人员的头脑中建立和程序相关的各种不同抽象级别模型的过程,这些抽象级别 包括从代码,函数调用结构和程序所实现的业务领域的知识和概念的过秤。这此 抽象的模型的建立是通过从程序代码、开发文档中以及和相应领域的专家交流4 i 断得到知i ; 而形成的川3 l 【4 】l5 1 。如果把程序理解过程看成为学习过程,则程序理 解是个建设学爿( c o n s t r u c t i v i s tl e a n i n g ) 的过程。存这个过程中,参与人员 的本身具备一定的知i : ,主动而且不断的建立程序相关的知识,主要包括两个具 体过程:吸取( a s s i m i l a t i o n ) 和采纳( a d a p t a t i o n ) ,吸取是指学爿者处理新的事 实结果,接受、拒绝或者修改后接受成为新的知识,采纳是学习者重组已有的知 谚 ,使之包含新的市实”j i f 。 从广。泛意义上来况,程序理解活动贯穿整个软件尘命周期。对于可重用代码 米晚,科序理解活动还可能跨越4 i 同的项目。在本文中的程序理解指软件维护阶 段的程序理解活动。统计表明软件维护占整体软件花费的比率在7 0 年代占3 5 4 0 ,8 0 年代r 气6 0 ,2 0 0 0 年是8 0 ,在维护活动中大约有3 0 9 0 的花费 足辉序理解1 8 h 9 1 1 1 0 1 。 当前的程序理解研究主要在代码的辅助分析阅读和抽象f 具上,而我们认为 程序理解环境i 司样重要: 1 对维护人员来说,需要的是一个能综合各种工具产生的信息并能在体现 不同信息的视图问切换的环境整体。 2 程序理解是一个渐进的,需要积累的过程,对于自- 人量库函数和多个项 目的程序理解更是如此,新的程序理解人员可以工作在前人的基础之l :。 3 程序理解、软件开发和软件复用活动有交集。在程序理解的过程中可以 整理可复用的软件组件,进而辅助软件开发。这样的交集可以体现在程 序理解环境中。 4 程序理解工具之间町以相互提供信息,需要相互协作,需要环境定义统 一的接r 】。 5 程序理解需要巨大的计算量和存储空间,需要通用统一的分布式的环境 炙撑。 在本文中我们提出了基于复合代码的多a g e n t 程序理解环境,程序理解工具 作为相互协作的a g e n t 部署其中。 浙江大学博 学位论文 1 2 程序理解现状 稃序理解作为一个整体,可以从程序理解是个渐进的过程。在此过程巾维 护人员可以采用各种策略和方法和工具 1 2 1 策略和方法 b m o k s 提卜h 了一种自顶向r 的程序理解理论,这种理论认为程序理解的核 心是结构性知识,是假设驱动的,所以也称为假设驱动策略。程序员在理解程序 的时候不断的根据知识对程序的功能进行假设,并在后续的代码阅读中验证或者 推翻这些假设。s o l o w a y 和e h r l i c h i ”j 观察到,以及后续的实验中电验证了有经验 的程序员对于熟悉的代码一般采用自顶向下的方法。这些程序员在理解代码的时 候对程序的目标和做法有一个总体的了解,并通过阅读代码分解这些目标和功 能,直到形成每一段代码和功能的对应。 白底向上的理解是阅读代码中从最细节的代码和信息开始,不断丰富和抽象 到高绒别的信息的过程。p e n n i n g t o n i l 4 】手旨山程序员在理解过程中从代码收集到各 种不同类型的信息,这些不同类型的信息在头脑中对应不同的模型。最终形成软 件系统的整体业务模型。p e n n i n g t o n 所做的实验结果表明在这一类方法中控制流 信息的获得是归纳得到其他信息的前提。 l e t o v s k y l l 5 1 做了一些稃序员阅读代码的实验研究并且从中提出了关于假设 生成和验证的策略理论,认为理解过程包括了3 部分的内容: 提出问题,包括5 种问题:为什么( w h y ) ,怎么做( h o w ) ,什么( w h a t ) , 是否( w h e t h e r ) 和差异( d i s c r e p a n c y ) 。 形成推测,推测是任何从程序中可得到的可能结论。可以分成两部分: 内容和1 1 j 信度,内容对应于5 中问题的解答,口j 信度为这个推测叮能成 立的程度。 根据问题和推测在代码中搜索、调查和验证。在验证过程中可能提出新 的问题,或者通过找到正确的证据而确认推测的正确性由此回答问题。 在验证过程中程序员可能根据需要采用白顶向下和自底向上的策略。 l i t t m a n 等人”叫从实验结果中提 的两类代码理解策略:按需理解和系统理 解。 按需理解更对应于维护人员的某个代码修改任务,维护人员只对需要理解和 修改的部分以及对修改后将影响的部分代码进行理解;而不考虑不受修改影响的 代码。这种方法得到的知识取决于维护人员对于哪些是需要修改和影响的一个主 观判断。而系统理解建议在做任何的修改以前需要理解整个程序系统的代码。 和这两种策略相关,l i t t m a n 等人认为有两种类型的知识:静态知识( s t a t i c k n o w l e d g e ) 和偶然知识( c a s u a lk n o w l e d g e ) 。静态知识是经过分析程序的源代 码文本而不是程序运行时得到的知识。偶然的知识覆盖了程序各个部分基于不同 运行数据的交互调用,一般由程序运行时获得。 与上两种策略和知识对应,将头脑中的模型分成两种:弱头脑模型和强模型。 弱模型只包括静态知识并在按需理解时建立。强模型包括了静态和偶然知识,并 第审引言 山系统理解时建立。 s c h n e i d e r m a n 和m a y e r l 7 】提出,程序理解足对要理解的程序建立内部语义信 息的过程。这些内部语义信息具备不同抽象程度。从程序操作和功能的总体认识 到一小段代码实现的功能。他们将理解过程需要的知i j 划分成为两类:语法知识 和语义知识。语义知识是基于业务领域和经验的,如基本编辑概念利完成某领域 特定任务需要完成的操作步骤。 基本规划( p l a n ) 是完成一个简单、单的目标需要的同定形式的代码段。 程序就是出规划( 这些规划町以包含多级的子规划) 。s o l o w a y 和e h r l i c h 【1 3 1 认 为f j 经验的程序员f i 但具备了规划知识而且具备规划组成程序的规则知u 。这些 舰则包括了此包括在程序员头脑巾编程习惯和事实协定。他们所做的实验结果 证实了在有经验程序员在程序理解过程中确实使用了这砦规划的知让 。 r 顶向下和白底向上的程序理解策略的混和理解现存已经被接受。v o n m a y r h a u s e r i 】8 1 等人的研究指出程序员在这两种方式中频繁切换,i j 样切换的还有 根掘具体关注的工作和程序实现的不同而不同的抽象程度。住他们的研究中指m 择种信息的交叉引j 1 j 足需要的。理解过程中形成的模型有4 个主要组成部分: 1 、程序模型,底层模型,丰要为控制流。 2 、状况模型,当前系统理解状况。 3 、i p 务领域模型,顶层模型。 4 、知识库 稃序理解从最少的信息丌始,在代码的分析过程巾逐渐4 i 富和细化。w i c d e n b e c k l l 9 认为 聿j 始阶段( j 有基本头脑模犁) 是t t 要的,冈为初始模型建:了基本h 标和拌序操作功能, 为- i 线的更细i y 的程序理解提供r个框架。b u m “1 等将此过样描述为h ;断的拼软什拼蚓 的过程。 1 2 2 程序理解工具 软件是一个整体,町以从各个侧面进行理解和分析。有大量的技术方法和j : 具为程序理解提供帮助。这些工具和方法包括:程序分片、聚类、架构恢复、依 赖关系提取、相似度分析、组件恢复、动态分析、静态分析、概念分析、设计模 式恢复、图形化模拟、反向工程、文档关联恢复、状态机恢复等非常多的方法和 技术。 按照程序理解的过程,可以将这些丁具分为4 类( 1 3 的分类见| 2 1 】) 1 、提取器( e x t r a c t o r s ) ,从源代码或者文档等材料中提取和分离信息。提取 器的例子如a c a c i a1 2 2 1 ,c p p x1 2 3 a n dc o l u m b u s c a n a s i sr a d a s e m a n t i ci n t e r f a c es p e c i f i c a t i o n ) 1 2 5 】。 2 、抽象器( a b s t r a c t o r s ) ,对提取的信息进行分析,得到更深抽象层次的信 息,或者对提取的信息进行转换。抽象器的例子如p r o g r e s 图转换系 统1 2 6 j ,g u p r o | 2 7 j ,基于图的查询机制的图分析工具g r o ka n dg r e q l l 2 8 1 , 分析软件系统之关系的r p a 丁具 2 9 1 , 架构分析和恢复【具1 3 0 l1 3 1 1 ,控 制流,数据流和依赖分析1 3 2 1 1 3 3 ,软件测试分析 3 4 1 。 3 、显示器( v i s u a l i z e r s ) ,将提取器提取的和抽象器得到的信息以不同的方 式显示出来。显示器的例子如源码浏览和文本显示器1 3 5 1 3 6 1 ,类图1 3 7 1 , 浙江人学博上学位论文 序列图1 3 8 1 ,图表1 3 9 1 显示器,作图i 具d a v i n c i1 4 0 1 ,g r a p h l e t 1 4 1 1 ,年i g r a p h v i z l 4 2 1 ,r i g i 和s h r i m p 可以用来做更大规模的图。 4 、知识和代码仓库( k n o w l e d g eb a s e & c o d e r e p o s i t o r y ) 获取和维护工具, 保存相关的本体知识和可重用的代码。 这罩我们只介绍本论文相灭的架构恢复,程序分j :。和概念父联技术。 架构恢复 软件系统架构描述软什系统的整体组纵框架;包括各个子系统之间的逻辑功 能组织及调j 】关系、执行绪生成和控制过程、功能模块的物理分布和f :发模块组 织和重用结构。可以用4 + l 视图结构【4 5 1 来描述:终端用户的逻辑视图,程序员 的) t 发视图,系统集成人员的过程视图,系统工程人员的物理视图以及将这4 个 视图和系统联系在一起的一组测试过程。架构恢复就是从代码中提取架构信息陕 复架构视图的过程。 和架构恢复相似的是系统划分( s y s t e mp a r t i t i o n i n g ) 和聚类( f i l ec l u s t e r i n g ) 技术。这u 璺技术根据系统中的相互凋用关系将系统划分为逻辑或者渊用结构上相 对独的子系统,使维护人员可以用分解的方式理解较大的系统【4 6 1 | 4 7 1 【4 8 1 4 9 】i ”1 。 系统划分和聚类与架构恢复 i 同点是架构恢复将逻辑和功能上相火的代码部分 划分成子系统,而系统划分和聚类只是根掘语法上的静态和动态调用关系划分为 调川天系相对独立的子系统。 程序分j 程序分片是一种将某个任务的注意力集中在一个程序的子组件的技术。最初 山m a r kw e i s e r 川| 5 2 1 1 5 3 | 提出,初衷是为r 学生能理解和调试他们的程序。w e i s e r 发现程序员在渊试程序刊在头脑中采t l _ j 的方法足分片,他在论文中正式的定义了 这个过程和它的输出。其后出王见了各种不同程序分片算法和应用的论文。一个程 序片是由指定的某个程序执行点的个变量了集决定的保留了原先程序行为的 1 1 j 执行的程序语句子集。在文献中有一i 同的分斤技术:静态分片( s t a t i cs l i c i n g ) | 5 3 1 ,动态分片( d y n a m i cs l i c i n g ) 5 4 1 5 引,准静态分片( q u a s is t a l i cs l i c i n g ) 1 5 6 1 , 同步动态分片( s i m u l t a n e o u sd y n a m i cs l i c i n g ) 垆“和条件分片( c o n d i t i o n e ds l i c i n g ) 1 5 8 1 等。 静态分片是w e i s e r l 5 3 j 提出的,其特征是不考虑对程序的输入。一个静态片可 以表示为印,v - - 元组,p 表示程序点,吩 示在p 上的变量子集。静态分片通过 从程序点回溯建市程序依赖图( p r o g r a md e p e n d e n c eg r a p h ) 1 5 9 1 得到影响卣接和 间接影u 向啪程序语句。h o r w i t z 等将p d g 扩展为s d g ( s y s t e m d e p e n d e n c e g r a p h ) f 6 0 1 ,并称结果比原来的算法更准确。d a n i c i c 等人1 引1 提出了计算程序片的并行算 法。 k o r e l t l l a s k y 5 4 1 1 5 5 1 提出了动态分片的定义:采用动态分析得到特定执行过程 ( 对应于特定的输入) 中对嘎有影响的语句集。 程序分片的综述文章见1 6 2 1 。 第一章引言 概念火联 概念关联mb i g g e r s t a f f 等x t 6 3 i 提出,用丁:描述将代码段的内在计算过程和相 应的概念关联的问题。这里概念泛指对源代码所做的计算的更高抽象程度的概括 描述。概念可以是软件上程领域( 如读,写文件) 或者应用领域( 如计费,产牛 话中等) 。 整个概念关联过程可以分为两个主要阶段: 1 、分段:住源代码中找到概念外延和包含概念的代码段。 2 、概念绑定:将上述的程序段绑定相应的概念。 应用概念关联方法需要知识库的支持,在知识库中包括了各种概念。每。个 概念包括两个部分:概念和指示器。指示器是概念出现的证据。 概念关联过程根据聚用的技术币同而有不同的步骤。n jc o a sg o l d 等人i + 4 1 的基于假设的概念关联系统( h y p o t h e s i s b a s e dc o n c e p ta s s i g n m e n t ,1 1 b 。c a ) 【p 概念天联步骤是: l 、自然分段,将代码按照一定的初始原则( 如以函数边界为界) 分为初始段。 2 、假设概念乍成,对每+ 个现有的初始段关联一个假设概念和一个可信度。 3 、段和概念细化,如果初始段包括了多个概念,则采用分解方法将初始段绌分 为区域段。 4 、概念绑定,将备个区域段按照定的舰则从多个概念中选择证据最充分的 个概念,并标汜。 1 3 程序理解环境的要求 软件维护人员很少是软件的j l :发人员。在他们对软件做维护工作时,需要多 种_ r = 具的支持来获得软件的各个抽象程度的视图和将设计和程序对应。当前的软 件工程在很大的程度上只足软件丌发的软件工程。同时,对j 程序理解的研究 i 要集中存辅助程序理解的具体工具上,较少涉及程序理解整体环境支持。 我们认为,刘丁软件维护人员来说,需要一个如同集成丌发环境一样的程序 维护环境。在程序理解环境中将提取器,抽象器,表现器和仓库集成为一个统一 的整体,环境提供对i + 具的支撑和用户的交互操作。 从最终意义上说,程序理解技术是为维移1 t 人员的理解工作提供帮助。s t o r e y 等人1 6 5 1 1 6 6 1 提出了一个设计程序理解阅读工具时需要考虑的因素:1 指示软件对象 之问的语法和语义关系:2 消除非本地化实现方式的实现对理解的影响:3 提供 抽缘化机制;4 支持目标驱动,假设驱动理解:5 提供各种抽象程度的系统架构 的概观;6 对建立各种头脑模型提供支持;7 对各种头脑模型提供交叉引用;8 提供定向浏览导航;9 提供任意导航;1 0 于旨示当前理解焦点;1 1 指示到达当前 焦点的路径;1 2 提供建议后续浏览的选项列表;1 3 减少用户界面的不必要的调 节:1 4 对理解人员提供有效的个性化支持 其中1 4 3 支持自底向l 理解策略;4 5 支持自顶向下策略;6 7 支持混和 模式;8 9 为程序浏览和导航;1 0 1 2 为方向提示;1 3 1 4 为非方向削减。 s i n g e r 等人1 6 “对于支持j u s l i n t i m e 理解策略的程序理解工具设计提供了个 浙江人学博上学位论文 设计因素列表( f 1 f 3 为功能性需求,n f l 一n f 7 为非功能性需求) : f 1 :提供一种有效的搜索工具,使用户可以根据完整的名称,模式舰则表达 式来搜索它们源代码中的出现位置 f 2 :为f 1 得到的每个结果显不关联属性和这些结果之间的关联 f 3 :记录搜索和解决问题的会话及其结果,并提供这些会话的结果历史导航 n f l :需要支持自动处理有大规模源代码的软4 1 系统,如至少支持百万级的 代码行数 n f 2 :对于大部分的查询提供快速的结果 n f 3 :支持各种编程语言 n f 4 :支持各种软件工程工具的交互处理 n f 5 :可以支持各利t 独市的用户界面作为系统的客户端 n f 6 :很好的支持和集成开发维护人员熟练使用的,r 发工具 n f 7 :以i u s t i n t i m e 理解任务需要的方式提供用户完整的信息 以上的各个需求需要多种工具的支持,l i j 以i l i 程序理解环境m 调统一实现。 1 4 本文的程序理解环境 我们认为,1 ) 程序维护和程序开发同样重要:2 ) 程序理解过程贯穿j 整个软 件 1 - 命周期;3 ) 在软件丌发阶段即町以”始保存_ f 罕序理解需要的信息;4 ) 在软件 维护阶段对软什进行维护的同时,将程序代码整理成可重用模块供后续的软件月 发使用。 和前几节的内容相对应,程序理解环境需要 1 支持获得和维护程序理解需要的各g o w n 识。 2 支持各种程序理解策略。 3 具备和协调大量的程序理解上具,这些工具可以和辅助理解程序中不同 级别的抽象程度。 4 综合各工具的信息,体现维护人员一个统一的界面。 本文中提出的程序理解环境提供以下方面的支持: 1 程序理解结果表示和保存。各种工具可能输出不同格式不同抽象程度的 结果。这些结果之间存在对应关系,如对于一个源代码中的函数,函数 调用图保存了这个函数的引用,架构分析工具将这个函数关联到个模 块,而概念关联工具将这个函数和软件应用域的知识关联。程序理解环 6 第一章引言 境需要提供对结果表示方法的表示、保存、检索的支持。 2 对单个理解工具的支持和对理解工具问互操作的支持。这些支持包括: 提供埘理解工具知识搜索支持;定义工具的接口框架,使t 具间信息共 享、信息交换和互操作成为可能。 3 以视图形式显示理解结果,提供对视图的支持和视图间的互操作。 4 分布式计算支持和理解人员问的协同。 5 支持软件维护。软件作为一个整体,修改了某一部分功能的同时需要修 改相关的部分。如对代码b u g 的修改和功能的扩充能| 司时修改洋细设计 文档。 6 对软件复用的支持。 【 f l 个部分组成: 复合代码仓库。用复合代码仓库来完成理解结果的表示和保存。复合代 码保存了各种软什材料、材料之间的关联、软件和、i p 务领域知识的关联 以及软件和r 发人员之问的关联。 程序理解多a g e n t 系统。用多a g e n t 系统完成对具体程序理解工具的_ 支 持和程序理解工具问的互操作支持。 部署的各种程序理解a g e n t 。 知识库。维护业务概念,程序设计知识,软件工程知识。 前端。提供程序理解人员的控制界面和最终的理解结果显示。 1 5 论文的工作 本文主要研究程序理解结果表示、环境和工具。提出了一种新的程序理解结 果表示力试复合代码。复合代码保存了编程语言实现代码、文档、代码对应的 概念、设计模式以及之间的联系,贯穿整个软件的程序理解生命过程。对文档和 文档之间,文档和代码之间提供了直接的导航支持。在此基础上”j + 以将程序理解 等同十从源代码和文档等材料中形成复合代码,在维护过程中由机器自动或者维 护人员手工丰富和修改复合代码的过程。最终的复合代码成为可重用的软件材 料。 组成复合代码的各个部分即相对独立义棉吒关联,从代码和文档中生成和恢 复各个部分的工作可以用一个多a g e n t 系统来模拟。本论文提出了一个程序理解 多a g e n t 环境环境运行在主动p 2 p 网络计算平台之 = 。 在此环境上7 1 :发了基于程序动态特性分析的结构分析a g e n t 以完成复合代 码r 1 的架构恢复,概念关联a g e n t 识别具体代码中业务领域概念、程序丌发算法 以及软件开发模式,并将代码和这些概念关联。对于已经存在的软件文档,通过 信息检索技术将文档段和程序片断通过文档和代码关联a g e n t 完成关联,t h z _ l 完 成复合代码中注释的牛成。 结构分析或者架构恢复,概念关联,代码和文档关联这3 中理解工具在各科, f j i 1 2 学博上学伉沦文 程序理解策略中都有重要作用,或者说是不可或缺的。 在得到了复合代码之后。由环境的前端对软件生成对应的视图,并r u 以在各 个视图间切换和导航。 论文的创新点包括: 1 、提出了种将文档、知识以及代码关联表示并贯穿整个程序理解过程的 代码表示方法,称之为复合代码。并由此提出用多a g e n t 系统平台的方法束创建 和协作各利一程序理解 具以生成复合代码。 2 、提出了一种主动p 2 p 网络架构,住此架构上形成主动p 2 p 网络计算平台, 程序理解多a g e n l 系统运行在此平台之上,完成刘计算和存储分布的支持。 3 、提出了种动作概念、对象概念、设汁模式等知识的表不方法。将f c a 结构分析、概念知识库、代码注释,提出了对象概念的树匹配算法来完成代码对 应的概念 = 别,进而刈动作概念t 别提供线索。 1 6 本论文的组织 本沦文的组织如】、 第章引古。阐述了程序理解的概念、一般策略和过程、程序理解1 :具和 环境。 第:章详细介绍本文提出的复合代码表示形式和基丁二此关键概念之上的程 序理解环境总体结构。 第二i 章基于f c a 和程序动态执行信息分析的结构分析。 第四章知识表示和概念关联,提出1 种对象、动作概念以及模式的表示方 法,爿在此基础上提出一种摹丁树匹配的对象概念关联方法。 第】- 章代码和文档关联跟踪,采用信息检索的方法跟踪代码和文档的天联。 第六章多a g e n t 协同程序理解环境。介绍多a g e n t 系统的a g e n

温馨提示

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

评论

0/150

提交评论