信息操纵系统及其实施的方法与流程

文档序号:12039476阅读:166来源:国知局
信息操纵系统及其实施的方法与流程
本公开内容涉及一种跟踪软件产品特征使用的方式。更具体而言,本公开内容涉及一种向软件提供者提供涉及软件特征的使用数据以用于开发和维护考虑的方式。

背景技术:
软件公司交付“预订”或“可重用”的供应品(offering)。通常设计并且向单个客户交付预订供应品,而通常设计并且向多个客户交付可重用供应品。在可重用软件供应品的情况下,可以例如提供这些供应品作为将在客户的驻地上安装的软件或者在公共或者混合云中的软件作为服务的供应品中。预订供应品在软件公司尝试最大化它们的投资时变成更加可重用在软件业中也司空见惯。如果可重用软件供应品成功,则它随时间积累客户。它也积累通常被维护用于保留向后兼容性的特征和能力。实施不同特征的成本将基于设计、代码、测试、支持和维护而变化。对客户基础的价值也将根据多少客户使用特定特征和如果该特征在软件供应品中不存在则对那些客户的影响而变化。随时间流逝,成功软件供应品通常以需要连续投资和维护的多个产品特征和能力为结束。这经常以随着市场要求改变而创建新特征为代价。在实施新特征时也有增加的风险,因为这些特征可能引起当前功能的倒退。

技术实现要素:
提供一种用于收集使用数据项的方式,这些使用数据项涉及在软件供应品中包括的多个检测的(instrumented)软件模块。软件提供者从软件供应品的多个客户安装地收集使用数据。针对检测的软件模块计算使用统计,并且这些使用统计用来确定用于检测的软件模块的、比如可能在软件产品维护和开发计划中使用的支持水平。在另一方面中,提供一种检测在软件供应品中包括的各种软件模块比如在客户安装地的执行的方式。在本地数据存储库中记录涉及软件模块的检测到的执行中的每个执行的使用统计。使用统计之一是执行的软件模块的模块标识符。此外,使用统计保持跟踪执行每个软件模块的次数。通过计算机网络向开发和维护软件供应品的软件提供者定期传输使用统计。前文为发明内容并且因此必要地包含简化、概括和细节省略;因而本领域技术人员将理解发明内容仅为示例而并非旨在于以任何方式限制。如仅由权利要求限定的、本发明的其它方面、发明特征和优点将在下文阐述的非限制具体描述中变得清楚。附图说明通过参照以下附图可以更好地理解本发明并且使它的许多目的、特征和优点为本领域技术人员所清楚,其中:图1是其中可以实施这里描述的方法的数据处理系统的框图;图2提供图1中所示信息操纵系统环境的延伸以图示可以在联网环境中操作的广泛多种信息操纵系统上执行这里描述的方法;图3是描绘收集的并且向软件提供者返回的、涉及软件供应品的客户使用数据的框图;图4是描绘提供收集的并且向软件提供者往回传输的使用数据的、检测的软件模块的图;图5是示出在执行软件供应品中的模块时模块检测器执行的步骤的流程图;图6是示出特征使用分析过程执行的步骤的流程图;图7是示出在使用“拉取”方法从客户收集使用数据时执行的步骤的流程图;图8是示出在使用“推送”方法从客户收集使用数据时执行的步骤的流程图;以及图9是示出产品开发和维护响应于收集的客户使用数据而执行的步骤的流程图。具体实施方式在下文描述和附图中阐述某些具体细节以提供对本发明的各种实施例的透彻理解。然而,在以下公开内容中未阐述与计算和软件技术经常关联的某些公知细节以免不必要地模糊本发明的各种实施例。另外,本领域普通技术人员将理解他们不用下文描述的细节中的一个或者多个细节仍然可以实现本发明的其它实施例。最后,尽管在以下公开内容中参照步骤和序列描述各种方法,但是这样的描述用于提供本发明的实施例的清楚实现方式并且步骤和步骤序列不应视为是实现本发明所必需的。下文代之以旨在于提供本发明例子的具体描述而不应视为限制本发明本身。实际上,任何数目的变化可以落入说明书附带的权利要求限定的本发明的范围内。以下具体描述将主要遵循如上文阐述的、本发明的发明内容从而如必要的那样进一步说明和扩展本发明的各种方面和实施例的定义。为此,这一具体描述首先阐述图1中的计算环境,该计算环境适合于实施与本发明关联的软件和/或硬件技术。在图2中图示联网环境作为基本计算环境的延伸以强调可以跨越多个分立设备执行现代计算技术。图1图示信息操纵系统100,该信息操纵系统是能够执行这里描述的计算操作的计算机系统的简化例子。信息操纵系统100包括耦合到处理器接口总线112的一个或者多个处理器110。处理器接口总线112将处理器110连接到也称为存储器控制器中心(MCH)的北桥115。北桥115连接到系统存储器120并且提供用于处理器110访问系统存储器的装置。图形控制器125也连接到北桥115。在一个实施例中,PCI快速总线118将北桥115连接到图形控制器125。图形控制器125连接到显示设备130、比如计算机监视器。北桥115和南桥135使用总线119来相互连接。在一个实施例中,总线是在北桥115与南桥135之间的每个方向上高速度传送数据的直接介质接口(DMI)总线。在另一实施例中,外围部件互连(PCI)总线连接北桥和南桥。也称为I/O控制器中心(ICH)的南桥135是主要实施如下能力的芯片,这些能力在比北桥提供的能力更慢的速度操作。南桥135通常提供用来连接各种部件的各种总线。这些总线例如包括PCI和PCI快速总线、ISA总线、系统管理总线(SM总线或者SMB)和/或低管脚计数(LPC)总线。LPC总线经常连接低带宽设备、比如引导ROM196和“旧式”I/O设备(使用“超级I/O”芯片)。“旧式”I/O设备(198)可以例如包括串行和并行端口、键盘、鼠标和/或软盘控制器。LPC总线也将南桥135连接到信任平台模块(TPM)195。在南桥135中经常包括的其它部件包括直接存储器访问(DMA)控制器、可编程中断控制器(PIC)和使用总线184将南桥135连接到非易失性存储设备185、比如硬盘驱动的存储设备控制器。快速卡155是将可热插设备连接到信息操纵系统的槽。快速卡155在它使用通用串行总线(USB)和PCI快速总线二者来连接到南桥135时支持PCI快速和USB连接性。南桥135包括向连接到USB的设备提供USB连接性的USB控制器140。这些设备包括摄像头(相机)150、红外线(IR)接收器148、键盘和跟踪板144以及提供无线个人区域网络(PAN)的蓝牙设备146。USB控制器140也向其它各种USB连接设备142、比如鼠标、可移动非易失性存储设备145、调制解调器、网卡、ISDN连接器、传真、打印机、USB集线器和许多其它类型的USB连接设备提供USB连接性。尽管示出可移动非易失性存储设备145为USB连接设备,但是可以使用诸如火线接口等不同接口来连接可移动非易失性存储设备145。无线局域网(LAN)设备175经由PCI或者PCI快速总线172来连接到南桥135。LAN设备175通常实施空中接口调制技术的IEEE802.11标准之一,这些技术都使用相同协议以在信息操纵系统100与另一计算机系统或者设备之间无线通信。光学存储设备190使用串行ATA(SATA)总线188来连接到南桥135。串行ATA适配器和设备通过高速串行链路通信。串行ATA总线也将南桥135连接到其它形式的存储设备、比如硬盘驱动。音频电路160、比如声卡经由总线158连接到南桥135。音频电路160也提供功能、比如音频线输入和光学数字音频输入端口162、光学数字输出和耳机插孔164、内部扬声器166以及内部麦克风168。以太网控制器170使用总线、比如PCI或者PCI快速总线来连接到南桥135。以太网控制器170将信息操纵系统100连接到计算机网络、比如局域网(LAN)、因特网以及其它公共和私有计算机网络。尽管图1示出一个信息操纵系统,但是信息操纵系统可以采用许多形式。例如信息操纵系统可以采用桌面型、服务器、便携型、膝上型、笔记本或者其它外形规格的计算机或者数据处理系统。此外,信息操纵系统可以采用其它外形规格、比如个人数字助理(PDA)、游戏设备、ATM机、便携电话设备、通信设备或者包括处理器和存储器的其它设备。图1中示出和这里描述的用于提供安全功能的信任平台模块(TPM195)仅为硬件安全模块(HSM)的一个例子。因此,这里描述和要求保护的TPM包括任何类型的HSM、该HSM包括但不限于符合信任计算组(TCG)标准并且标题为“信任平台模块(TPM)规范版本1.2”的硬件安全设备。TPM是可以向任何数目的信息操纵系统、比如图2中概括的信息操纵系统中并入的硬件安全子系统。图2提供图1中所示信息操纵系统环境的延伸以图示可以在联网环境中操作的广泛多种信息操纵系统上执行这里描述的方法。信息操纵系统类型范围从小型手持设备、比如手持计算机/移动电话210到大型主机系统、比如主机计算机270。手持计算机210的例子包括个人数字助理(PDA)、个人娱乐设备、比如MP3播放器、便携电视机和紧致盘播放器。信息操纵系统的其它例子包括笔、写字板、计算机220、膝上型或者笔记本计算机230、工作站140、个人计算机系统250和服务器260。信息操纵系统280代表图2中未个别示出的其它类型的信息操纵系统。如图所示,各种信息操纵系统可以使用计算机网络200来一起联网。可以用来互连各种信息操纵系统的计算机网络类型包括局域网(LAN)、无线局域网(WLAN)、因特网、公共交换电话网络(PSTN)、其它无线网络和可以用来互连信息操纵系统的任何其它网络拓扑。许多信息操作系统包括非易失性数据存储库、比如硬驱动和/或非易失性存储器。图2中所示信息操纵系统中的一些信息操纵系统描绘单独非易失性数据存储库(服务器260利用非易失性数据存储库265,主机计算机270利用非易失性数据存储库275,并且信息操纵系统280利用非易失性数据存储库285)。非易失性数据存储库可以是各种信息操纵系统外部的部件或者可以在信息操纵系统之一内部。此外,可以使用各种技术在两个或者更多信息操纵系统之间共享可移动非易失性存储设备145、比如将可移动非易失性存储设备145连接到USB端口或者信息操纵系统的其它连接器。图3是描绘收集的并且向软件提供者返回的涉及软件供应品的客户使用数据的框图。在统一示为安装基地300的多个客户安装地安装软件供应品。安装基地可以是客户的信息操纵系统、比如主机计算机系统、联网桌面型或者个人计算机系统的集合或者客户拥有或者租用的任何组合或者类型的信息操纵系统上的安装地。此外,软件供应品可以是“基于云”的供应品,其中以费用经常基于订购或者通过计算机网络、比如因特网使用计量的服务来交付软件供应品作为服务而不是产品。安装基地300示出软件供应品的多个不同客户安装地。客户包括客户301、302、303和304。在这些安装地中的每个安装地,检测组成软件供应品的软件模块以便跟踪各种模块的使用。描绘的检测的软件模块分别针对客户安装地301、302、303和304是311、312、313和314。当执行软件模块时,在本地使用数据存储库中存储涉及执行的使用数据(例如模块标识符、时间戳、用户等)。在客户基地中描绘的本地使用数据存储库分别针对客户安装地301、302、303和304是321、322、323和324。定期地,通过计算机网络、比如因特网向软件提供者340传输本地使用数据。在一个实施例中,从各种客户端安装地向软件提供者“推送”使用数据(例如在收集数据时、在安排的时间等)。在另一实施例中,软件提供者340“拉取”使用数据(例如在产品计划者请求时、在安排的时间等)。软件提供者340利用各种过程以收集和分析从客户安装地接收的使用数据。过程350是特征使用应用,该特征使用应用从各种客户安装地数据存储库收集使用数据并且在特征使用数据存储库360中存储使用数据,该特征使用数据存储库是聚合所有各种客户使用数据的集中数据存储库。特征使用分析过程370分析特征使用数据以便开发软件提供者的软件产品维护和开发计划375。软件提供者的软件产品维护和开发人员380使用软件产品维护和开发计划以便开发软件供应品390的新的更新版本并且以便提供不同水平的支持。然后向安装基地300往回提供软件供应品的支持和新版本(例如在各种客户安装地安装等)。图4是描绘提供收集的并且向软件提供者往回传输的使用数据的、检测的软件模块的图。客户安装地400描绘在特定客户处安装的并且客户在基于云的安装地中或者在如下传统安装地中利用的软件供应品,在该传统安装地中,在客户的信息操纵系统上安装包括软件供应品的软件模块。软件供应品包括任何数目的软件模块(软件模块401、402和403)。每个软件模块包括模块代码(模块代码411、412和413分别对应于软件模块401、402和403)。软件代码可以被编译(例如目标代码等)或者可以是计算机可执行的任何其它类型的功能描述材料。其它类型的软件代码包括解译代码、字节代码等。此外,每个软件模块包括在执行软件模块时收集使用数据的模块检测器(instrumentation)。模块检测器可以是对记录所需使用数据的检测器例程的调用(例如应用编程接口(API)等)。使用数据的例子包括唯一标识执行的软件模块的模块标识符、时间/日期信息(例如时间戳等)、执行软件模块的用户的用户标识符和可以让软件提供者感兴趣的任何其它使用数据。在图4中,模块检测器421、422和423分别与模块代码411、412和413关联。因此,在调用模块检测器421时,模块检测器负责将在特定时间执行模块代码411(例如与模块代码411关联的模块标识符等)这样的事实与其它使用数据一起记录。在一个实施例中,客户安装地包括具有用于接收使用数据、存储数据并且向软件提供者定期提供使用数据的部件的特征使用收集子系统450。特征使用收集子系统450包括从各种模块检测器(模块检测器421、422和423)接收调用并且在特征使用本地数据存储库470中记录有关使用数据的本地特征使用模块460。在一个实施例中,客户可以可选地设置限制数据存储库475中存储的客户数据访问限制。这些限制允许客户控制向软件提供者提供的使用数据的类型。例如,如果使用数据包括在调用软件模块时使用软件供应品的用户的用户标识符,则客户可以希望阻止向软件提供者传输这一使用数据。然而,客户可以希望在本地使用数据存储库470中保持这一数据用于内部跟踪目的。例如,如果软件提供者由于在提供者的总体客户基地之中的低使用而决定中断特定软件模块,则各种客户将能够检查它们的雇员或者授权用户中的任何雇员或者授权用户是否在利用特定软件模块并且采取纠正动作(例如向特定用户通知将消除软件模块并且向特定用户提供备选、比如在可以实现相同任务的软件供应品中包括的新特征/模块等)。在上文讨论的实施例中,使用软件提供者特征使用访问模块480向软件提供者340定期传输本地数据存储库470中收集和存储的使用数据。模块480是可以实施为“推送”或者“拉取”传输样式的过程。在“推送”实现方式中,模块480向软件提供者340定期推送(传输)本地使用数据(例如在已经在数据存储库470中存储特定数量的数据时、在时间段已经流逝之后、比如每小时、每天等)。在“拉取”实现方式中,软件提供者340定期请求来自各种客户安装地的使用数据,并且在模块480接收请求时,客户安装地通过让模块480向软件提供者传输数据存储库470中存储的本地使用数据来做出响应。经由计算机网络200、比如因特网向软件提供者340传输使用数据。一旦在软件提供者处接收,就在中央特征使用数据存储库360中聚合使用数据用于进一步分析。在一个备选实施例中,取代在本地数据存储库上存储使用数据,各种模块检测器可以调用软件提供者340主控的例程,从而在软件提供者处存储而不是在客户安装地本地存储使用数据。例如在基于云的实现方式中,软件提供者可以提供基于云的软件供应品,从而在调用模块时检测器向软件提供者控制的基于云的数据存储库直接记录模块标识符和其它使用数据。图5是示出在执行软件供应品中的模块时,模块检测器执行的步骤的流程图。处理在500开始,随之在步骤505分配存储器区域510以便存储使用数据。在步骤515,在存储器区域510中记录已经调用的软件模块的模块标识符。在步骤520,访问检测器简档525以标识正在记录的使用数据项。以这一方式,软件提供者和/或客户可以控制在执行模块时收集什么类型的数据。例如,客户可能不希望让执行软件模块的用户的用户标识符被收集作为使用数据的一部分。关于检测器是否正在收集已经执行软件模块的用户的用户标识符做出判决(判决530)。如果检测器简档指示正在收集用户标识符,则判决530转向“是”分支,随之在步骤535向使用数据存储器510记录(写入)正在执行软件模块的用户的用户标识符。另一方面,如果未在收集用户标识符,则判决530转向绕过步骤535的“否”分支。关于检测器是否正在收集执行软件模块时的时间和数据做出判决(判决540)。如果检测器简档指示正在收集时间/日期,则判决540转向“是”分支,随之在步骤545向使用数据存储器510记录(写入)指示执行软件模块时的日期和时间的当前时间戳。另一方面,如果未在收集时间/日期,则判决540转向绕过步骤545的“否”分支。关于检测器是否正在收集涉及软件模块的这一执行的任何其它数据做出判决(判决550)。如果检测器简档指示正在收集附加数据,则判决550转向“是”分支,随之在步骤555向使用数据存储器510记录(写入)涉及软件模块的这一执行的附加数据。另一方面,如果未在收集附加数据,则判决550转向绕过步骤555的“否”分支。在已经收集并且在存储区域510中存储涉及软件模块的当前执行的使用数据之后,步骤560操作用于向本地使用数据存储库470添加收集的使用数据。模块检测器例程的调用随后在595处结束。图6是示出特征使用分析过程执行的步骤的流程图。处理在600开始,随之在步骤610,软件提供者从它的产品供应品数据存储库620选择它的第一软件产品供应品。在预定义的过程625处,从客户安装基地收集用于选择的产品供应品的数据(见图7和8)。图7描绘其中软件提供者从各种客户安装地拉取使用数据的“拉取”方法。图8描绘其中客户安装地向软件提供者“推送”数据(例如在客户的本地使用数据存储库中记录数据时、在定期基础上等)的“推送”方法的使用。无论是否使用“推送”或者“拉取”方法,结果将是更新中央特征使用数据存储库360,该中央特征使用数据存储库包括来自其中安装选择的产品供应品的所有各种客户安装地的使用数据。如先前提到的那样,实际客户安装地可以是基于云的服务安装地,其中客户访问和使用在软件提供者或者其它第三方主控的“云”中存储的软件供应品。此外,实际客户安装地可以是在客户用来管理它们的业务的一个或者多个信息操纵系统(例如主机系统、联网个人计算机系统/工作站等)上的更传统软件安装地。在步骤630,特征使用分析过程选择在选择的产品供应品内的第一产品特征(例如检测的软件模块等)。在产品特征数据存储库640中存储产品特征(模块)列表。此外,产品特征列表指明哪些软件特征是产品所必需的(例如内核特征或者另外被需要作为软件产品供应品的部分的特征等)。关于选择的产品特征是否是软件产品供应器所必需的做出判决(判决650)。如果选择的产品特征不是产品所必需的(例如,如果从产品去除特征,则软件产品供应品可以操作等),则判决650转向“否”分支,随之在步骤660基于在中央特征使用数据存储库360中收集和编译的实际客户使用数据、针对选择的软件特征计算客户使用统计。在数据存储库670中存储所得产品特征使用统计。使用统计包括软件模块标识符和聚合的使用数据、比如客户使用特征的次数。其它使用统计可以包括客户在使用特定特征上花费的时间量。返回到判决650,如果选择的产品特征是软件产品供应品所必需的,则判决650转向绕过步骤660的“是”分支。关于是否有用于选择的软件产品供应品的更多特征待分析做出判决(判决675)。如果有更多产品特征(模块)待分析,则判决675转向“是”分支,其中循环回到在选择的软件产品供应品内选择下一产品特征并且如上文描述的那样处理它。这一循环继续直至无更多产品特征(模块)待处理,在这一点,判决675转向“否”分支。在预定义的过程680,执行产品开发和维护过程以便开发软件提供者的用于选择的软件产品供应品的产品开发和维护计划(见图9和用于处理细节的对应文字)。产品开发和维护计划被存储于数据存储库685中并且建议如下软件特征(模块),这些未被软件产品供应品的客户广泛使用、并且因此可以被消除或者具有针对软件特征提供的、减少的维护和支持。以这一方式,可以将软件提供者的资源(程序员、工程师、开发员等)更聚焦于开发新特征并且针对更受欢迎和客户基地更广泛使用的那些软件特征提供更好维护和支持。关于软件提供者是否具有需要如上文讨论的那样分析的更多软件产品供应品做出判决(判决690)。如果软件提供者具有需要分析的更多软件产品供应品,则判决690转向“是”分支,该分支循环回到选择并且如上文描述的那样处理下一软件产品供应品。这一循环继续直至已经处理软件提供者的所有软件产品供应品,在这一点,判决690转向“否”分支,在该点,软件提供者的特征使用分析过程在695结束。图7是示出在使用“拉取”方法从客户收集使用数据时执行的步骤的流程图。软件提供者处理340在710开始,在该点,软件提供者从安装基地数据存储库700选择第一客户。选择客户包括取回为了请求传输在客户安装地上存储的产品使用数据而需要的访问控制(例如将请求引向的网络地址等)。在步骤720,软件提供者调用在选择的客户安装地安装的软件提供者特征使用访问模块(例如通过计算机网络200、比如因特网向取回的网络地址等发送请求)。在客户安装地运行的软件提供者特征使用访问模块处理450在软件提供者对使用访问模块的调用远程调用模块时在725开始。在步骤730,软件提供者特征使用访问模块从数据访问限制数据存储库475选择使用字段。数据访问限制数据存储库475是被限制向软件提供者发送的那些使用访问字段的列表。例如,使用数据可以收集执行软件供应品中包括的各种软件模块的用户的用户标识符,并且客户可以不希望与软件提供者共享这一更为个人的信息。然而,客户可以希望本地保持这一敏感信息,因为它可以对内部跟踪有用并且也用来联系它的如下用户,已经表明这些用户利用被安排消除或者具有减少的支持的软件特征(模块)。在步骤740,使用访问模块根据客户的数据访问限制(例如阻止向软件提供者发送用户标识符等)从本地使用数据存储库470向客户使用数据存储库770转储先前未收集的使用数据。在步骤750,使用访问模块清除本地特征使用数据存储库470或者以别的方式标记已经向软件提供者传输的那些数据记录以便减少或者消除重复数据免于向软件提供者发送。在步骤760,在客户的安装地上运行的使用访问模块向软件提供者发送客户使用数据存储库770(例如通过计算机网络200、比如因特网)。返回到在软件提供者的地点执行的处理,在步骤775,软件提供者接收在客户的安装地收集的并且已经基于客户的数据访问限制来编辑的使用数据。在一个实施例中,基于对于软件提供者重要的某一判据、比如客户对于软件提供者的战略价值或者重要性来对客户接收的数据“加权”。在这一实施例中,可以基于客户支持收入或者“在某一时间段内的净新特许收入”自动计算加权值。以这一方式,如果一个战略客户正在使用特征,则产品管理不会想要去除它并且从客户加权值数据存储库785接收的加权值将向特征使用数据存储库470中存储的数据添加值。例如,大型重要客户可以让它的使用数据乘以特定倍率(例如两倍或者三倍于更少重要的客户等)。此外,如果仅一个小型客户在使用特定特征,则更少重要的客户的使用将由于归于客户的更低客户加权值而被识别为对于包含于以后发布中而言更少战略性。另外,基于软件提供者的财务方面的客户加权值将反映产品管理者的需要并且直接连结客户重要性与特征开发和维护。在步骤780,向特征使用数据存储库360添加接收的数据。在一个实施例中,聚合数据与从其它客户接收的数据。关于是否有向其请求使用数据的更多客户做出判决(判决790)。如果有向其请求使用数据的更多客户,则判决790转向“是”分支,该分支循环回到从安装基地数据存储库700选择下一客户并且如上文描述的那样请求和接收客户的使用数据。这一循环继续直至已经从软件供应品的所有客户收集数据,在该点,判决790转向“否”分支并且处理在795结束。图8是示出在使用“推送”方法从客户收集使用数据时执行的步骤的流程图。在客户安装地运行的软件提供者特征使用访问模块处理450基于数据推送设置在825开始。例如,可以在特定时间间隔(例如每小时、每天、每五分钟等)向软件提供者推送数据,或者可以在已经在本地特征使用数据存储库470中收集特定数量的数据时(例如在已经收集一个记录、收集十个记录时等)推送数据。在步骤830,软件提供者特征使用访问模块从数据访问限制数据存储库475选择使用字段。数据访问限制数据存储库475是被限制向软件提供者发送的那些使用访问字段的列表。例如,使用数据可以收集执行在软件供应品中包括的各种软件模块的用户的用户标识符,并且客户可以不希望与软件提供者通向这一更为个人的信息。然而,客户可以希望本地保持这一敏感信息,因为它可以对于内部跟踪有用并且也用来联系它的如下用户,已经表明这些用户利用被安排消除或者具有减少的支持的软件特征(模块)。在步骤840,使用访问模块根据客户的数据访问限制(例如阻止向软件提供者发送用户标识符等)从本地使用数据存储库470向客户使用数据存储库870转储先前未收集的使用数据。在步骤850,使用访问模块清除本地特征使用数据存储库470或者以别的方式标记已经向软件提供者传输的那些数据记录,以便减少或者消除重复数据免于向软件提供者发送。在步骤860,在客户的安装地上运行的使用访问模块向软件提供者发送客户使用数据存储库870(例如通过计算机网络200、比如因特网)。示出在软件提供者的站点340执行的处理在软件提供者接收在客户端安装地收集的并且已经基于客户的数据访问限制来编辑的使用数据在步骤875开始。如先前关于图7描述的那样,在一个实施例中,基于对于软件提供者重要的某一判据、比如客户对于软件提供者的战略价值或者重要性来对客户接收的数据“加权”。在这一实施例中,可以基于客户支持收入或者“在某一时间段内的净新特许收入”自动计算加权值。以这一方式,如果一个战略客户正在使用特征,则产品管理不会想要去除它并且从客户加权值数据存储库885接收的加权值将向特征使用数据存储库470中存储的数据添加值。在步骤880,向中央特征使用数据存储库360添加接收的数据。在一个实施例中,聚合数据与从其它客户接收的数据。在步骤890,软件提供商的过程等待从客户安装地向软件提供者推送下一数据。当接收下一数据时,处理循环回到步骤875以接收并且在中央特征使用数据存储库360中聚合数据。图9是示出产品开发和维护响应于收集的客户使用数据而执行的步骤的流程图。在已经从客户安装地收集、向中央使用数据存储库中聚合使用数据并且已经计算产品特征(模块)使用统计之后执行这一例程。处理在600开始,随之在步骤905,过程从产品特征数据存储库640选择软件供应品的第一特征。如先前提到的那样,产品特征数据存储库640包括所有如下产品特征的列表以及指出哪些产品特征(模块)是产品供应品所必需的(例如需要等),这些产品特征包括软件供应品。关于选择的产品特征是否为软件供应品所必需做出判决(判决910)。如果特征为必需的,则判决910转向“是”分支,随之在步骤915在产品开发和维护计划685中自动包括特征用于将来开发和继续维护。处理然后绕过剩余步骤直至判决990。另一方面,如果产品不是软件供应品所必需的,则判决910转向“否”分支,随之在步骤925,从产品特征使用统计数据存储库670取回涉及选择的特征(模块)的使用统计。在步骤930比较用于产品特征(模块)的取回的使用统计与软件提供者已经建立的并且在阈值数据存储库940中存储的阈值。基于在步骤930的比较关于选择的软件特征的使用是否低到准许中断特征做出判决(判决950)。例如,如果任何用户中的少数用户利用选择的特征,则可以标记特征用于中断(例如少于百分之一使用等)。如果比较揭示应当标记特征用于中断,则判决950转向“是”分支,随之在步骤955在产品开发和维护计划数据存储库685中标记特征用于可能中断。处理然后绕过剩余步骤直至判决990。返回到判决950,如果使用统计与阈值的比较未落入“中断”阈值内,则判决950转向“否”分支,随之关于选择的软件特征是否低到足以准许减少特征的支持做出判决(判决960)。例如,仅小数目的用户利用所选特征,然后可以标记特征用于减少支持(例如少于百分之十的用户利用特征等)。如果比较揭示应当标记特征用于减少支持,则判决960转向“是”分支,随之在步骤965在产品开发和维护计划数据存储库685中标记特征用于减少支持(例如特征无新开发、特征维护很少或者无维护等)。处理然后绕过剩余步骤直至判决990。返回到判决960,如果使用统计与阈值的比较未落入“中断”或者“减少支持”阈值内,则判决960转向“否”分支,其中关于选择的软件特征是否高到足以准许增加特征的开发做出判决(判决970)。例如,软件提供者可以发现大数目的用户正在利用特定特征。由于特征受欢迎,所以软件提供者可以判决将更多资源贡献给进一步开发和维护特征。如果比较揭示应当标记特征用于进一步开发,则判决970转向“是”分支,随之在步骤975在产品开发和维护计划数据存储库685中标记特征用于增加开发。处理然后绕过剩余步骤直至判决990。如果阈值的比较未落入“中断”、“减少支持”或者“活跃开发”阈值内,则在一个实施例中,在产品开发和维护计划中未标记特征而判决970转向“否”分支并且绕过步骤975。软件提供者可以添加额外的阈值或者减少上文描述的阈值数目。在已经如上文描述的那样处理选择的产品特征之后,关于是否有在软件产品供应品中包括的需要处理的更多产品特征(模块)做出判决(判决990)。如果有在软件产品供应品中包括的需要处理的更多产品特征(模块),则判决990转向“是”分支,该分支循环回到如上文描述的那样选择和处理下一产品特征。这一循环继续直至已经处理所有产品特征,在该点,判决990转向“否”分支并且处理在995返回到调用例程(见图6)。本发明的优选实现方式之一是客户端应用、即在代码模块中的指令集(程序代码)或者其它功能描述材料,该代码模块可以例如在计算机的随机访问存储器中驻留。在被计算机需要之前,指令集可以存储于另一计算机存储器中、例如硬盘驱动中或者可移动存储器、比如光盘(用于最终在CDROM中使用)或者软盘(用于最终在软盘驱动中使用)中。因此,可以实施本发明为用于在计算机中使用的计算机程序产品。此外,虽然方便地在软件有选择地激活或者重新配置的通用计算机中实施描述的各种方法,但是本领域普通技术人员也将认识到可以在硬件中、在固件中或者在被构造用于执行所需方法步骤的更专门化装置中实现这样的方法。功能描述材料是向机器赋予功能的信息。功能描述材料包括但不限于计算机程序、指令、规则、事实、可计算函数的定义、对象和数据结构。尽管已经示出和描述本发明的具体实施例,但是本领域技术人员将清楚,基于这里的教导可以进行改变和修改而未脱离本发明和它的更广义方面。因此,所附权利要求将在它们的范围内包含如在本发明的真实精神实质和范围内的所有这样的改变和修改。另外也将理解本发明仅由所附权利要求限定。本领域技术人员将理解,如果旨在于引入的权利要求要素的具体数目,则将在权利要求中明确记载这样的意图,并且在无这样的记载时无这样的限制存在。对于非限制例子,作为辅助理解,所附权利要求包含使用引导短语“至少一个”和“一个或者多个”以引入权利要求要素。然而,不应理解使用这样的短语意味着不定冠词“一个/一种”引入权利要求要素使包含这样的引入的权利要求要素的任何特定权利要求限于包含仅一个这样的要素的发明、即使在相同权利要求包括引导短语“一个或者多个”或者“至少一个”和不定冠词、比如“一个/一种”;这对于在权利要求中使用定冠词同样成立。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1