[发明专利]无需修改现有代码即可增加新软件特征的方法无效
申请号: | 201210021216.7 | 申请日: | 2002-08-09 |
公开(公告)号: | CN102681878A | 公开(公告)日: | 2012-09-19 |
发明(设计)人: | 梁扶汉 | 申请(专利权)人: | 梁扶汉 |
主分类号: | G06F9/45 | 分类号: | G06F9/45 |
代理公司: | 中国专利代理(香港)有限公司 72001 | 代理人: | 方世栋;卢江 |
地址: | 美国伊*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 无需 修改 现有 代码 即可 增加 软件 特征 方法 | ||
本申请是申请号为02820307.0、发明名称为“无需修改现有代码即可增加新软件特征的方法”的申请(原申请日为2002年8月9日)的分案申请。
技术领域
本发明涉及计算机编程语言领域、使用此类编程语言的方法及执行和分析以此类编程语言编写的程序的过程。
背景
本申请是非临时申请,根据35U.S.C.§120要求序列号为60/313364的临时申请的优先权,该临时申请于2001年8月17日提出,与本申请同一名称且发明人相同。
在软件开发中,常常需要为已用现有代码实现的应用程序增加新特征。这是软件开发中最困难的任务之一,特别是在新特征可能改变原程序执行流程时。例如,在电话交换系统中,要增加程序以实现“呼叫转移”特征将会改变现有“一般旧式电话服务”和其它特征的执行流程。要使用现有通用编程语言增加此类新特征,程序员必须修改现有代码。这要求程序员十分熟悉现有代码,并能够逐行跟踪现有代码的不同执行流程以确定要在何处进行更改。利用现有技术,由于没有自动化工具可帮助程序员,因此,这是一项工作量很大的过程。最终,程序员经常怀疑是否已经正确确定了要更改的代码,是否已找到了所有这些代码及其更改会对现有特征有什么影响。这将要求在可结束该工作前,需要周密的测试,经历很多试验和错误。
另外,在大规模软件开发中,经常有必要安排不同的程序员来开发应用程序的不同特征。使用诸如C++或Java等现在通用的编程语言,“呼叫等待”程序将要求更改“三方通话”程序,并且由于这些特征影响彼此的控制流程,因此反之亦然。程序员需要彼此协调而使他们的设计任务变得复杂化了。其设计变得缠结不清,并且所得软件使各种特征的逻辑不够清楚,从而使难以对它们进行维护。每种特征无法成为独立的库组件。它们都将作为单一对象加载,而无论用户是否需要它们全部。因此,需要使程序员能够独立设计它们的特征并将它们打包为组件库。
以下将几个组成单个执行程序,其中一个程序可改变另一程序的执行流程的程序称之为交互作用程序。或者,我们可以说一个程序与另一程序交互作用,或者它们交互作用。由于特征程序是实现特征的程序,因此,在说到两个或两个以上特征程序交互作用时,我们指一种特征的一些程序与另一特征的一些程序的彼此交互作用。
使用诸如C++或Java等现有通用计算机编程语言时,程序员必须将程序语句的执行流程排成序列。这使得在必须将交互作用的特征程序集成在一起时有必要更改代码。此外,以现有通用语言编写的程序不易于分析。目前不存在可帮助程序员识别新特征程序要增加到现有代码中何处的工具。
概述
我们通过增加几个非过程语言结构,并指定用以执行和分析以此语言编写的程序的方法,解决了这些问题。所述语言允许程序员将交互作用的特征程序编写为独立的库组件。当把特征程序打包时,工具可自动确定它们交互作用的条件。程序员随后可以使用所述语言提供的工具软件(utility)解决交互作用而无需更改现有代码。
一个非过程语言结构是由条件部分和程序体部分组成的程序单元。当对应的条件部分为真时执行程序体部分。不同于使用诸如C++或Java等常规过程语言,程序员不指定非过程语言中程序单元的执行顺序。
计算机操作系统中的一些先有技术部分地满足了本发明的类似目标,但针对特殊情况。UNIX操作系统中的流工具软件(stream facility)允许程序员在协议栈的不同层中将计算机通信协议作为不同的流模块来实现。如果应用程序调用它,则程序员可在流中插入或删除协议模块而无需更改同一流中的其它模块。流工具软件利用了公认的协议体系结构,因而不同层中的协议查看消息中的不同首部字段,并加强了协议模块之间的统一接口。然而,它不是其它应用程序的通用解决方案。称为管道的另一UNIX工具软件允许程序员将几个程序连接起来以形成新的特征而无需更改其中任何程序。但这些程序必须坚持字符串的输入/输出格式,并且它们必须以线性顺序排列以便一个程序的输出成为另一个程序的输入。
目前存在主要为诸如捕获专家知识以及甚至定理证明之类的人工智能应用而设计的多种非过程语言。由于用途不同,这些语言提供的结构和工具软件及使用语言的方法与我们的语言有很大的不同。例如,在以它们编写的程序准备执行前,它们均不要求明确的特征交互作用(也称为冲突)检测和解决过程。它们中一些语言如CLIPS具有可为程序员所用的机制,用于在执行期间两个或两个以上程序单元的条件为真时指定执行优先级。但程序员事先一般不知道哪些程序可能与其程序交互作用。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于梁扶汉,未经梁扶汉许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210021216.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:具有槽扫描的钥匙原坯识别系统
- 下一篇:脚手架用的楔体装置