标识与软件产品相关联的隐含假设的制作方法

文档序号:9510126阅读:219来源:国知局
标识与软件产品相关联的隐含假设的制作方法
【专利说明】标识与软件产品相关联的隐含假设
[0001]
[0002]应用开发者可构建依赖于软件开发工具包(SDK)的应用。应用开发者在构建应用时查阅开发者指南(本文简称“指南”)。该指南提供了关于对SDK的推荐用法的信息。该指南通常以特设的方式被产生,例如基于对应用开发者的信息需求的非正式评价。
[0003]应用开发者可在他或她无法遵循指南中提供的指示时产生有错误的应用。这是可以预料的。在其他情况中,开发者可能精确地遵循指南的指示,却仍然产生有错误的应用。
[0004]概沭
[0005]本文描述了一种包括分析模块和测试套件产生模块的软件开发环境。分析模块分析软件产品(如SDK)连同描述该软件产品的推荐用法的文档资料(如开发者指南)。该分析可被用于标识与该软件产品和该文档资料相关联的至少一个隐含假设。隐含假设对应于这样的信息:(a)将在构建满足声称的目标的应用时对应用开发者有用;以及(b)在文档资料中未被明确表述。在一个情况中,声称的目标是与执行认证和/或授权操作的软件产品相关联的与安全性有关的目标。
[0006]测试套件产生模块产生由一个或多个弱点模式组成的测试套件。每个弱点模式对应于由所述分析模块标识出的一个隐含假设。应用开发者可对照每个弱点模式来测试他的或她的应用。这将揭露出应用是否遭受到与该弱点模式相关联的弱点。应用开发者然后可用合适的方式修改该应用来去除该弱点(如果认为合适)。
[0007]总而言之,本文所述的功能提供了一种标识开发者指南和/或SDK的实现中所缺少的有用信息的合理且结构化的方式。这促进了设计过程以及产生了更为稳健的应用。
[0008]上面的方法可以显现在各种类型的系统、组件,方法、计算机可读存储介质、数据结构、制品等等中。
[0009]提供本概述以便以简化形式介绍一些概念;这些概念将在以下的详细描述中进一步描述。本概述并不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护主题的范围。
[0010]附图简沐
[0011]图1示出软件产品(如SDK)和可伴随该软件产品的文档资料(如开发者指南)。
[0012]图2示出应用可在其中被运行的说明性环境。这些应用中的至少一些可依赖于远程服务器提供的服务。
[0013]图3提供了可能由于应用开发者缺乏关于与SDK相关联的隐含假设的知识而引起的弱点的示例。
[0014]图4示出用于分析SDK及其伴随的指南的SDK开发环境。该图还示出用于在开发应用的过程中使用SDK开发环境提供的结果的应用开发环境。
[0015]图5是提供图4中所描绘的功能的概览的过程。
[0016]图6示出了分析模块的一个实现。该分析模块是图4的SDK开发环境的组件。
[0017]图7示出SDK可在其中被使用的说明性环境。(图6的)分析模块对可将图7中所示的实体考虑在内的模型起作用。
[0018]图8以高级形式示出图6的分析模块的一个实现。
[0019]图9是描述图6的分析模块的操作的一个方式的过程。
[0020]图10是描述图6的分析模块的操作的进一步说明性细节的过程。
[0021]图11是描述图6的分析模块的操作的进一步说明性细节的过程。
[0022]图12示出由图4的应用开发环境提供的测试工具的一个实现。
[0023]图13是描述图4的应用开发环境的操作的一个方式的过程。
[0024]图14示出了可以被用来实现前面的附图中所示出的特征的任何方面的说明性计算功能。
[0025]贯穿本公开和各附图,相同的编号被用于引用相同的组件和特征。100系列的标号指的是最初在图1中所找到的特征,200系列的标号指的是最初在图2中找到的特征,300系列的标号指的是最初在图3中找到的特征,依此类推。
[0026]详细描沐
[0027]本公开是按如下方式来组织的。章节A提供了用于标识和作用于与软件开发工具包(SDK)相关联的隐含假设的功能的概览。所述功能包括SDK开发环境和应用开发环境。章节B提供了关于SDK开发环境的附加细节。章节C提供了关于应用开发环境的附加细节。章节D描述了可被用来实现前述各章节所描述的特征的任何方面的说明性计算功能。
[0028]—些附图在一个或多个物理组件(被不同地称为组件、功能、模块、特征、元件、机制等)的上下文中描述概念。实际实现可以任何方式组织附图中所示的物理组件。例如,在一个情况中,在附图中所示的组件与实际物理机制之间可能存在一对一的对应关系。替代地或附加地,附图中所例示出的任何单个组件都可以通过多个物理机制来实现。替代地或附加地,附图中的任何两个或更多单独的组件可反映由单一实际物理机制所执行的不同功能。
[0029]其他附图以流程图形式描述了概念。以此形式,某些操作被描述为构成以某一顺序执行的不同的框。这些实现是说明性的而非限制性的。此处描述的某些框可被分组在一起并在单个操作中被执行,某些框可被分成多个组件框,并且某些框可以按与此处所例示出的不同的次序来被执行(包括执行这些框的并行方式)。
[0030]各种组件和流程框可由任何物理和有形机制以任何方式来实现,例如通过运行和/或存储任何种类的软件指令的物理机制、通过硬件组件(如芯片实现的逻辑功能)等、和/或它们的任何组合。进而要描述的图14提供了关于附图中示出的组件的一个说明性物理实现的附加细节。
[0031]至于术语,短语“被配置成”包含任何种类的物理和有形功能可以被构造来执行所标识的操作的任何方式。术语“逻辑”包含用于执行某一任务的任何物理和有形功能。例如,流程图中例示出的每一个操作都对应于用于执行该操作的一逻辑组件。在由计算系统实现时,逻辑组件表示作为计算系统的物理部分的、不管用何种方式实现的电子组件。
[0032]权利要求中的短语“用于…的装置”(如果被使用)旨在援引35 U.S.C.§ 112第六段的规定。除了本特定短语之外,没有其他语言旨在援引该法条的该部分的规定。
[0033]下列的阐述可以将一个或多个特征标识为“可任选的”。这种类型的陈述不应该被解读为可以被视为可任选的特征的穷尽指示;也就是说,其他特征也可以被视为可任选的,虽然在文本中没有明确地标识出。最后,术语“示例性”或“说明性”指的是可能的许多实现中的一个实现。
[0034]A.概览
[0035]图1提供了软件产品102的高级描绘。软件产品102可对应于任何机器可执行的内容,诸如以任一语言或多种语言(包括标记语言)的组合、参数、设置等表达的计算机指令。此外,软件产品102可以任何方式来组织其内容。例如,软件产品102可将其指令组织成一个或多个模块。在一些情况中,软件产品102可表不软件开发工具包(SDK)。为了便于阐述,本说明将在下文将软件产品102称为SDK。
[0036]应用开发者可构建以任何方式依赖于SDK的应用。例如,但非限制,应用可使用SDK来提供具有任何性质的一个或多个功能。在一更具体的情况中,应用可使用SDK来与提供一个或多个功能的一独立系统交互。在该非限制性情形中,SDK可对应于(例如)一个或多个应用编程接口(API)。
[0037]应用开发者可接收伴有文档资料104的SDK,文档资料在本文中称为开发者指南(或为了简洁起见简称为“指南”)。指南提供了辅助应用开发者使用SDK的信息。例如,指南可包括以自然语言表达的解释SDK所执行的操作的指示,以及应用开发者可将SDK集成于正被开发的应用的方式。替代地或另外地,指南可包括解释SDK的操作和用法的代码示例。在一个情况中,产生SDK的实体(本文中称为SDK开发者)也产生指南。SDK开发者可以任一形式或多种形式(诸如印刷材料、电子内容等)的组合来表达该指南。
[0038]指南可被概念化成包含明确表述的信息106。进一步,SDK和指南可与零个、一个或多个隐含假设108相关联。如名字所暗示的那样,明确表述的信息106提供了表面上清晰且明确的指示。相反,每个隐含假设对应于这样的信息:(a)在指南中未被明确表述;以及(b)对应用开发者正确使用SDK来说有用(或必要)。在一些情况中,指南不会给予应用开发者关于隐含假设108的存在的清晰的表述或指示。这可能造成许多应用开发者“漏掉”隐含假设。在其他情况中,熟练的应用开发者可能能够基于指南中提供的信息以及他的或她的先前经验和知识来推断出隐含假设。但是,无法期待所有应用开发者都将作出这些种类的复杂推断。
[0039]更正式地说,隐含假设并非只是任何缺失的或隐藏的信息,而是应用开发者所依赖来实现一个或多个目标的信息。某一声称的目的可能必须产生具有某些特性的某种应用。例如,应用开发者可能希望使用SDK来执行认证操作和/或授权操作。在此,应用开发者将希望获得隐含假设的知识以便产生安全应用。否则,所产生的应用可能会受到来自恶意实体的攻击(下文中更详细地描述)。
[0040]指南中隐含假设108的存在(如果有的话)
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1