基于动作的编程过程复用方法与技术研究

来源 :北京大学 | 被引量 : 0次 | 上传用户:jk224wang1
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
随着敏捷开发、终端用户编程等的流行。软件开发人员的个人能力受到了软件工程研究的重视。作为提升软件开发人员能力的重要途径之一,编程过程的复用利用已有方案解决新的编程问题,避免了一切从头开始,并且能够提高个人编程的效率及质量。编程过程是软件开发人员利用工具对软件制品进行操作的过程。其复用主要有基于软件制品和基于编程过程两种方式。基于软件制品的编程过程复用从描述软件制品变化的角度刻画编程过程,适合于编码过程的复用。基于动作的编程过程复用将编程过程看做是开发人员的一系列编程动作的集合。适合于软件安装、配置、运行、测试等过程的复用。   随着集成化软件开发环境IDE的普及,编程方式由原来的手工编写代码为主,转变为利用工具生成代码与手工编写代码相结合。据统计。近一半的用户动作发生在代码编辑器之外,相当部分的代码由工具自动生成。因此,越来越多的编程过程是工具使用的过程或者同工具使用紧密结合的过程.如软件安装过程、软件配置过程、自动生成代码框架过程、代码浏览过程等。基于制品的过程复用难以有效支持此类编程过程。另一方面。IDE的图形界面作为编程动作的实施对象,将无形的编程动作有形化,基于动作的过程复用可以捕捉这些制品以外的可复用内容,从而实现IDE环境下的编程过程复用。   基于动作的编程过程复用面临三个基本问题:(1)有可复用的编程过程,即,要有执行这个过程的动作序列;(2)编程动作可以抽象,能体现出编程过程中的可选和必选的部分,使得编程过程具有适应性;(3)基于动作的编程过程能够被高效合理地使用,以便软件开发人员提高编程效率和质量。现有研究均围绕这三个问题展开,提出了手工收集与执行、动作记录与回放这两种编程动作收集和使用技术,试图解决第一个和第三个基本问题:提出了专家手工分析和通过规则引擎、状态模型、数据挖掘等自动化方法分析编程动作的技术,以获得具有适应性的编程过程,从而试图解决第二个问题。然而,在解决第一个问题的过程中,相关工作没有考虑收集到的动作序列的质量,即,包含无用、无效甚至是有副作用的动作。在解决第二个问题的过程中,相关工作中的自动化方法往往需要一些参数预估,或者人工规则制定,而这些参数的预估难度颇高,人工规则制定也需要针对特定的应用逐个进行。这些方法的实用性亟待改进。   针对上述问题,本文建立了一套基于动作的编程过程复用原理、方法与技术框架,其主要特色和贡献包括:   首先,给出了集成化软件开发环境IDE下基于动作的编程过程复用原理。其贡献包括(1)通过对编程过程与编程动作的关系的形式化推导,论证了基于动作的编程过程复用方法的适用范围:(2)归纳了基于动作的编程过程复用方法的使用场景,根据使用场景提出编程过程在新的应用中可能的变化性,进一步提出衡量该方法成功实施的定性指标:(3)给出了一种IDE环境下编程动作、编程过程、可复用编程过程的定义,并形式化描述之;将可复用编程过程建模为一种有向图。这些形式化描述及模型,是编程过程抽象的基础,也是整个复用方法描述与推导的基础;(4)给出了一种IDE环境下的动作分类方法,并形式化表达该分类。它是编程过程抽象的基础,也是衡量动作质量及其复用价值的指标。   其二,针对动作序列往往包含无效、无用甚至有副作用的动作的问题,提出了一种基于用户行为模式的动作序列过滤方法,通过检测用户行为模式,发现有问题的动作,将其过滤以提高编程动作序列的质量。给出了IDE上常见的四种需要过滤的动作的行为模式及其过滤方法,构造了四种过滤器,自动删除四种常见的无效、无用甚至有副作用的动作。   其三,针对编程过程应适应不同人或不同任务的需求,提出了一种将多个编程过程合成为一个具有多种执行路径的编程过程的方法。将动作序列抽象为具有编程语义的编程活动序列,通过对编程活动的比较,找出编程过程中的可选部分和必选部分;通过对编程活动的组合,将各种编程过程合成为一个包含多种执行路径的复合的编程过程,允许用户选择执行路径、设置编程参数值。   最后,基于主流的IDE环境Eclipse,实现了一个基于动作的编程过程复用支撑工具,提供编程动作自动收集、可复用编程过程自动生成与交互式回放等功能。特别地,为了降低学习成本和提高用户体验,回放界面采用了Eclipse主流的编程向导Cheat Sheet界面形式。在回放过程中,可以修改软件制品的参数值、选择不同的执行路径,以适应不同的编程过程。基于该工具对本文的方法进行了正确性和有效性评估。
其他文献
查询相关的多文档摘要技术依据给定的查询,将多篇相关文档的内容浓缩为一个简洁、流畅、并能反映主题内容的摘要。该技术能够大大提高人们获取信息的效率,近年来一直是自然语
随着全球经济技术的发展和Internet的普及,企业的通信需求已经趋向多元化。传统PBX(用户级交换机)己经难以适应现代企业的发展模式和增长需要,而IP-PBX符合下一代网络融合的
人类基因组工作草图绘制完成后,生命科学已进入后基因组时代,结构生物学正处在具有战略性的关键地位,研究蛋白质的结构与功能,特别是蛋白质的三维结构,是揭示基因组功能的基本途径
虚拟技术的发展带给IT安全领域很大的机遇和挑战,在虚拟化架构下对虚拟机进行监控成为十分必要的安全管理方式。本文在此背景下提出利用Xen虚拟化技术对虚拟机内运行的进程进
随着互联网上信息资源的日益增多,用户对个性化服务的要求不断提高。协同过滤推荐技术是个性化服务发展中最成功且应用最广泛的推荐技术之一,然而,出于隐私考虑,许多用户不愿
受到免疫原理的启发,本文提出了三种基于人工免疫原理的病毒检测算法,目的是构建一个轻量级的、具有较快检测速度、较高检测率而且有一定泛化能力的病毒检测系统。   基于
三维模型处理技术广泛应用于计算机辅助设计、虚拟现实等众多领域。随着计算机软硬件技术的高速发展以及精密测量技术的出现,三维模型处理技术得到了快速地发展,同时也面临着新
图像有广泛的应用,基于内容的图像检索(Content Based Image Retrieval,CBIR)是数据库、多媒体技术的研究方向之一,近年来已成为国内外研究热点,并将成为21世纪必须攻克的关键技
传统的视频监控系统有许多缺点,例如大部分只能在监视器上提供一幅监控场景的画面,有的即使能够把多路视频显示在一个监视器上,也不能为用户在一幅画面上无冗余地提供被监控
学位
随着信息技术的飞速发展,视频信息逐渐成为我们生活中必不可少的一部分。视频编码技术可以实现视频压缩,大大降低视频信息的数据量。因此,视频编码技术已经成为多媒体产业的核心