允许自由形式的数据输入的调度应用程序的制作方法

文档序号:6477658阅读:165来源:国知局
专利名称:允许自由形式的数据输入的调度应用程序的制作方法
允许自由形式的数据输入的调度应用程序
背景
希望创建项目计划的用户可利用诸如MICROSOFT Office Project 2007
等可从华盛顿州雷蒙德市的微软公司获得的项目管理应用程序。 一般而言,项 目管理应用程序帮助用户定义项目目标、计划任务并分配资源、显示包括调度 明细表的项目计划以及执行并管理项目。
项目计划由任务组成。调度明细表定义任务出现的顺序、完成每一个任务 所需的资源以及关于任务的日历信息。每一个任务都被定义成包括一个或多个 属性(例如,排定的日期、任务长度、成本等)。 一般而言,用户通过向每一 个任务的属性分配值来概述项目计划。
有利的是,某些项目管理应用程序提供计算模型以跟踪不同任何和任务属 性之间的关系。该计算模型可基于分配给其他任务属性的值来自动计算一个或 多个任务属性的值。例如,MICROSOFT Office Project 2007可基于项目开始 日期和项目结束日期来计算项目持续时间值。这些类型的计算一般基于内置到 计算模型中的、关于项目调度的领域专用知识(例如, 一天中的工作小时数、 一周中的工作天数等)。
对这些项目管理应用程序中的一部分的一个限制是用户界面的僵硬性,其 禁止用户使用"模糊的"任务属性值来"草拟"项目的能力。这些项目管理应 用程序强迫用户输入满足特定要求的属性值。例如,用户可能被要求输入满足 识别条件的值(例如,日期必须以mm/dd/ccyy格式输入以便被识别为日期)。 用户还可能被要求输入满足预定逻辑条件(例如,项目开始日期必须在项目结 束日期之前)的值。
只试图获取如何草拟项目的大致思路或者其初始目标只是获取对报告的 特定可视化的用户可能由于创建项目计划所需的细节水平而感到挫败。
本发明正是对于这些和其它考虑事项而做出的。
概述提供本概述是为了以简化的形式介绍将在以下详细描述中进一步描述的 一些概念。该概述并非旨在标识所要求保护的主题的关键特征或必要特征,也 不旨在用于帮助确定所要求保护的主题的范围。
一种顶目管理应用稈序提供了其中用户可将主要基于"自由形式的"或"模 糊的"数据的项目草图变换成定义的项目计划的环境。
根据各方面,该项目管理应用程序使得能够创建各自具有一个或多个属性 的一个或多个任务。该项目管理应用程序方便在至少一个任务中将自由形式的 属性值(即,不满足识别和/或逻辑条件的值)与结构化属性值(即,满足识别 和逻辑条件的值)混合。
根据其他方面,尽管接受自由形式的任务属性值,但该项目管理应用程序 可利用内部计算模型来管理任务属性值之间的关系。该项目管理应用程序在该 应用程序对属性值的识别所允许的范围内计算属性值。
通过阅读以下详细描述并查阅相关联的附图,这些和其它特征和优点将是 显而易见的。可以理解,前述一般描述和以下详细描述均仅是说明性的,且不 限制所要求保护的各方面。
附图简述


图1是示出用于实践本发明的各实施例的示例性环境的框图; 图2示出了包括计算设备的用于实现本发明的一个示例性系统; 图3示出了描绘生成项目计划的创建过程的流程图,该创建过程根据本发 明的原理来执行;
图4示出了根据本发明的原理的示出存储任务属性值的第一和第二数据 字段的项目计划的示意图5示出了描绘定义用户可査看的项目计划的第一填充过程的流程图,该 创建过程根据本发明的原理来执行;
图6示出了描绘定义项目计划的第二填充过程的流程图,该第二填充过程 填充将在项目管理环境进行后台计算的字段,该创建过程根据本发明的原理来 执行;
图7示出了描绘解决由用户输入的不可识别的或逻辑上不一致的属性值
8的解决过程的流程图,该解决过程根据本发明的原理来执行;
图8示出了描绘生成一致的、可识别的属性值的生成过程的流程图,该生
成过程根据本发明的原理来执行;
同9示出了描绘生成一致的、.可识别的相关属性值的自动校正过程的流程
图,该自动校正过程根据本发明的原理来执行;
图IO示出了描绘显示项目计划的呈现过程的流程图,该呈现过程根据本
发明的原理来执行;
图11示出了其中显示项目计划的项目管理环境的屏幕截图,该项目计划
包括根据本发明原理的第一数据字段和第二数据字段;
图12描绘了根据本发明的原理的修改结构化任务的结果;
图13描绘了根据本发明的原理的修改自由形式的任务的结果;
图14描绘了根据本发明的原理的输入不可识别的自由形式属性值的结
果;以及
图15描绘了根据本发明的原理的输入逻辑上不一致的自由形式属性值的 结果。详细描述
在以下详细描述中,参考了构成其一部分并作为说明示出了各具体实施例 或示例的附图。虽然将在结合在计算机系统上的操作系统上运行的应用程序执 行的程序模块的一般上下文中描述本发明,但本领域的技术人员将会认识到, 本发明也可结合其他程序模块实现。可结合此处所描述的实施例并且可利用其 他实施例而不背离本发明的精神或范围。由此,以下详细描述并不旨在限制, 本发明的范围由所附权利要求及其等效方案所定义。
本发明的各实施例提供了其中用户可至少部分地基于自由形式的输入数 据来创建项目草图的环境。出于本发明的目的,术语"自由形式的输入"指示 不满足相应任务属性的识别和/或逻辑要求的输入。随着时间的推移,用户能够 将项目草图变换成具有结构化输入数据的经定义的项目计划。出于本发明的目
的,术语"结构化输入"指示满足相应任务属性的识别和逻辑要求的输入。
图1示出了具有作为本发明的发明性方面的示例的特征的示例项目管理
环境100。项目管理环境100包括输入区110和显示区120。用户通过与输入 区110和显示区120中的至少一个交互来创建和编辑项目计划。例如,用户可 通过向输入区110添加任务并向这些任务分配属性值来创建新任务。用户还可 通过改变任务属性值来编辑现有任务。
输入区110包括具有行和列的表(即,电子表格)115。表115的行指定 具体任务而列指定每一个任务的属性(例如,任务名称、任务持续时间、开始 时间和日期、完成时间和日期、成本等)。例如,在图1中,第一行112指定 第一任务,该任务具有分配到值"任务1"(第一列116中)的名称属性以及 分配到结构化输入(第二列118中)的第二属性。第二行114指定第二任务, 该任务具有分配到值"任务2"(第一列116中)的名称属性以及分配到自由 形式的输入(第二列118中)的第二属性。然而,在其他实施例中,可颠倒该 行和列的排列。
显示区120组织输入到输入区110中的数据并向用户呈现这些数据中的至 少一部分。 一般而言,显示区120将数据组织成图形格式以便于用户理解。例 如,在图1中,显示区120将数据作为甘特(Gantt)图125来呈现给用户。甘特图125在该图125的一侧示出了任务列表122,而在该图125的另一侧示出 了条形图124。在一实施例中,任务列表122包括输入区110的电子表格115。
条形图124图形地示出按照由用户定义的时标的任务信息。例如,在图1 中,表示在表115中输入的第一任务的第一个条126横跨日历显示画面延伸以 指示相对于该任务的开始日期和结束日期的任务持续时间。表示在表115中输 入的第二任务的第二个条128也横跨日历显示画面延伸。然而,该第二个条128 被描绘为不完整的,因为第二任务是至少部分地用自由形式的输入数据来定义 的。在其他实施例中,这一任务可另选地从显示区120中略去,尤其是在用户 提供的用于定义任务的可识别数据不足的情况下。
在某些实施例中,用户可直接与显示区120交互以编辑任务。例如,用户 可将甘特图125的条126、 128的端点拖拽到日历显示画面上的不同开始日期 或结束日期以改变对应的任务属性值。显示区120上属性值的改变可被合并到 输入区110中。
在其他实施例中,显示区120可包括线图、日历显示画面、PERT (程序、评 估、审阅、技术)图或者任何其他合适的显示画面。关于将项目计划显示为甘 特图或PERT图的附加信息可在1998年4月28日授权的美国专利No. 5,745,110
中找到,该申请的公开内容通过此处的引用结合于此。
一般而言,具有作为根据本发明的原理的各发明性方面的示例的特征的项
目管理环境可在计算设备(例如,个人计算机、服务器计算机、笔记本计算机、 PDA、智能电话或任何其他这样的计算设备)上实现。被配置成实现诸如图1 的项目管理环境100等项目管理环境的计算系统200的一非限制性实施例在此 处参考图2来描述。
在图2中,用于实现本发明的示例性计算系统200包括计算设备,诸如计 算设备210。在基本配置中,计算设备210通常包括用于至少一个处理单元215, 其用于执行存储在系统存储器220中的程序。
取决于计算设备210的确切配置和类型,系统存储器220可包括但不限于, RAM、 ROM、 EEPROM、闪存、CD-ROM、数字多功能盘(DVD)或其他光 存储设备、磁带盒、磁带、磁盘存储或其他磁性存储设备、或者其他存储器技 术。系统存储器220通常包括适用于控制计算设备210的操作的操作系统
222,诸如来自华盛顿州雷蒙德市的微软公司的WINDOWS⑧操作系统。系统 存储器220还可包括用于创建和编辑项目计划226的一个或多个软件应用程 序,诸如客户机应用程序224。适用于根据本发明的原理来创建项目计划226 的客户机应用程序224的一个非限制性示例是来自华盛顿州雷蒙德市的微软公 司的MICROSOFT OFFICE PROJECT 2007。
计算设备210还可具有用于输入和操纵数据的输入设备230,诸如键盘、 鼠标、笔、语音输入设备、触摸输入设备等。还可包括输出设备235,诸如显 示屏、扬声器、打印机等。这些输出设备235在本领域中公知且无需在此处详 细讨论。
计算设备200可包含通信连接240,其允许设备200例如通过分布式计算 环境中的网络(例如,内联网或因特网)域其他计算设备进行通信。作为示例 而非限制,通信设备介质包括有线介质,诸如有线网络或直接线连接,以及无 线介质,诸如声学、RF、红外线和其它无线介质。
参考图3和4,用户可在诸如图1的环境100等项目管理环境中至少部分 地基于自由形式的数据来创建项目计划。图3示出了描绘可用于形成项目计划 的生成过程300的操作流程的流程图。可使用该生成过程300来创建的示例项 目计划的示意图在图4中示出。
生成过程300在开始模块302处初始化和开始,并且继续至第一创建操作 304。该第一创建操作304应用户请求生成新的项目数据对象,诸如项目数据 对象400。第一创建操作304可基于由用户输入的初始项目数据来生成具有分 配到值的属性的项目数据对象。例如,第一创建操作304可将从用户处接收到 的项目开始日期分配给项目数据对象。用户还可选择项目数据对象应基于的计 算模型。或者,第一创建操作304可基于模板或另一项目数据对象来生成新的 项目数据对象。
第二创建操作306创建进一步定义项目数据对象的任务。通常,第二创建 操作206生成具有默认属性的任务。例如,第二创建操作306可生成具有开始 日期、结束日期和持续时间的任务。然而,在其他实施例中,第二创建操作306 生成不具有默认属性的任务。一个或多个任务306可被指定为彼此相关(例如,经由一个或多个关系属
性)。例如,任务可具有标识一个或多个父任务的前导属性和/或标识一个或多 个子任务的后继属性。类似地,任务中的属性可以相互关联。相互关联的属性 的值通常是相互依赖的以使得改变一个属性的值将影响相关属性的值。例如, 任务的持续时间可基于该任务的开始日期和结束日期来计算。改变结束日期因 此也可改变任务的持续时间。
选择操作308为用户提供选择每一个任务将会是能够接受自由形式输入 的自由形式任务还是要求结构化输入的结构化任务的机会。结构化任务通过防 止用户输入不一致的、不合逻辑的或不可识别的数据作为任何任务属性的值来 协助用户创建项目计划。允许用户指定这些任务有利地向用户提供该用户将不 会创建不可能的任务或不一致的项目调度明细表的一定程度的确定性。例如, 结构化任务将不允许用户计划由单个人在二十四小时时间段内完成四十小时 的工作。
或者,自由形式任务可包括能够接受用户期望分配给属性的任何数据的一 个或多个属性,无论该数据是否是不一致的、不合逻辑的、或者甚至是项目数 据对象的计算模型无法识别的。通常,该计算模型即使在将以其他方式影响属 性值的相关数据被改变之后也不会为了校正不一致性而改变该用户输入数据。 允许用户指定这些任务有利地向用户提供即使在该用户不具有(或者不想花时 间输入)用于创建计划的所有最终或具体数据时也可草拟项目计划的自由度。
在一实施例中,用户可在项目计划期间的任何时刻改变针对每一个单独的 任务的结构化/自由形式指定。例如,如果该指定作为任务的另一个属性(参见 图4的"FF"(自由形式)属性字段)来输入,该指定可通过对该属性输入新值 来改变(例如,在图4中将"N (否)"变为"Y (是)")。然而,在其他实施例 中,指定可以是一旦作出就是永久的。
虚线中所描绘的可任选的创建操作在图3中的310处指定。该第三创建操 作310向用户提供向任务添加附加属性的机会。在一实施例中,第三创建操作 310向用户提供对预定属性的选择并使得该用户能够从这些预定属性中进行选 择。然而,在其他实施例中,该第三创建操作310可允许用户定义新属性。
一般而言,自由形式任务包括一个或多个自由形式属性。在某些实施例中,自由形式任务的自由形式属性是预定的。例如,当第一选择操作308将给定任 务指定为自由形式任务时,该给定任务的预定属性集被自动指定为自由形式属 性。
然而,在其他实施例中,可任选的第二选择操作312可使得用户能够定义 自由形式任务中的一个或多个单独属性以接受自由形式的输入。通常,用户只 选择要定义为自由形式属性的自由形式任务的属性的子集。或者,用户可将自 由形式任务中的所有属性定义为自由形式属性,或者不将自由形式任务中的任 一个属性定义为自由形式属性。结构化任务中的属性无法被定义为自由形式属 性。在一实施例中,用户可在项目计划期间的任何时刻改变对每一个单独属性 的该指定。然而,在其他实施例中,指定可以是一旦作出就是永久的。
第一生成操作314为每一个创建的任务的每一个属性提供数据字段,而不 管该属性是结构化属性还是自由形式属性。每一个数据字段都被配置成存储相 应属性的值。如果属性是结构化属性,则第一数据字段与输入到该第一数据字 段中的任何输入数据必须满足的识别准则(例如,要输入的日期的类型、要输 入的数据的格式等)相关联。或者,如果属性是自由形式属性,则第一数据字 段被配置成接受用户输入的任何数据。
如果创建结构化任务或者如果创建只具有结构化属性的自由形式任务,则 生成过程300可继续至停止模块318,在那里该生成过程300完成并结束。或 者,如果用户希望创建附加任务或附加属性,则该生成过程300可循环返回到 第二创建操作306或第三创建操作310。
然而,如果创建具有至少一个自由形式属性的自由形式任务,则生成过程 300继续至第二生成操作316。第二生成操作316为每一个自由形式属性提供 第二数据字段。该第二数据字段与相应的自由形式属性的第一数据字段相关联 以使得输入到该第一数据字段中的数据可在特定条件下被自动输入到第二数 据字段中。第二数据字段与用户输入到该第二数据字段中的任何输入数据必须 满足的识别准则相关联。该生成过程300然后可结束或者循环返回,如上所述。
图4示出了使用图3的生成过程300来创建的示例项目计划400的示意图。 项目计划400包括第一任务410、第二任务420和第三任务430。 每一个任 务410、 420、 430都包括名称属性、指定属性、属性A和属性B。每一个任务410、 420、 430的每一个属性A、 B都分别与至少第一数据字段412、 414、 422、 424、 432、 434相关联。
项目计划400的第一任务410,即"任务l"被指定为自由形式任务。另 外,第一任务410的属性A和B两者都被指定为自由形式属性。因此,第 二数据字段416、 418分别与第一任务410的属性A、 B相关联。属性A、 B 的第一数据字段412、 414被配置成分别接受用户输入的任何数据V1A、 V1B。 然而,属性A、 B的第二数据字段416、 418被配置成分别只接受结构化输入 V1A,、 V1B,。
第二任务420,即"任务2"也被指定为自由形式任务。然而,仅属性 B被指定为自由形式属性。属性A被指定为结构化属性。因此,第二数据 字段428与第二任务420的属性B相关联。属性A的第一数据字段422和 属性B的第二数据字段428被配置成分别只接受结构化输入V2A'、V2B'。然 而,属性B的第一数据字段424被配置成接受用户输入的任何数据V2B。 在 一实施例中,用户可选择在计划过程期间将属性A变换成自由形式属性。
第三任务430,即"任务3"被指定为结构化任务。因此,属性A、 B 中没有一个被指定为自由形式属性。第三任务的第一数据字段432、 434被 配置成分别只接受结构化数据V3A'、 V3B'。 为了使得用户能够将自由形式 的数据输入到第一数据字段中,用户将首先需要将第三任务430指定为自由形 式任务。在一实施例中,用户将需要选择第三任务430的属性中的哪一些应 当是自由形式属性。
如图4所示,具有自由形式任务和自由形式属性的项目计划可同时存储两 个数据集。一个数据集表示用户输入的信息。另一个数据集表示可由项目 计划的计算模型识别的并且根据该计算模型是合乎逻辑的数据。有利的是, 为自由形式属性存储两个数据集使得用户能够使用该用户所具有的可用数据 或模糊数据来草拟计划、同时保留计算模型计算相互依赖的属性值的能力。
在某些实施例中,在诸如图1的项目管理环境100等项目管理环境中仅向 用户显示第一数据集(即,用户实际输入的数据)。第二数据集在该项目管 理环境的后台存储和跟踪。在其他实施例中,可同时显示这两个数据集。用 于显示第一和第二数据集的过程在此处更详细地描述。参考图5-7,公开了用户可用于定义项目计划的各过程。这些过程的实 施例可使得用户能够将自由形式的值分配给任务属性以生成项目草图。这些 过程的实施例解决在向用户显示该用户所输入的无论什么数据时后台中的冲 突属性值。该冲突解决使得计算模型能够协助用户计划项目调度明细表并且 能够在自由形式的数据被结构化数据替换时跟踪项目计划的进展。
图5示出了可用于对与项目属性相关联的第一字段分配值的填充过程500 的操作流程。填充过程500在开始模块502处初始化和开始,并且继续至接 收操作504。 接收操作504从用户处接收输入。例如,接收操作504可通 过计算设备200的键盘或其他输入设备230来接收输入。通常,用户在项目 管理环境100的输入区110中输入信息。
如果任务是结构化任务或具有结构化属性,则虚线中所描绘的确认操作 506可确定输入数据是否符合与相应的第一数据字段相关联的任何识别要求。 例如,如果用户将数据输入到结构化任务的开始日期属性中,则确认操作506 可确定所输入的数据是否是日期。在一实施例中,确认操作506可确定输入 数据是否是以预定义的日期格式(例如,mm/dd/ccyy)输入的日期。
确认操作506还可确定输入数据是否符合与第一数据字段相关联的任何 逻辑要求。例如,确认操作506可要求开始日期早于结束日期。因此,如 果用户输入开始日期值2007年1月15日和结束日期值2007年1月1日,则 确认操作504可发出出错消息和/或拒绝接受该输入数据。
或者,如果用户输入对应于自由形式属性的数据,则填充过程500可直接 从接收操作504继续至显示操作508。 显示操作508向用户提供输入到第一 数据字段中的数据。例如,显示操作508可例如使用呈现过程1000,经由输 出设备235来提供第一数据字段的值,该呈现过程1000将在此处参考图10详 细描述。填充过程500在停止模块510处完成并结束。
图6和7示出了可用于对与自由形式属性相关联的第二字段分配值的第二 填充过程600和解决过程700的操作流程。第二填充过程600在开始模块602 处初始化和开始,并且继续至接收操作604。 接收操作604从用户处接收输 入。例如,接收操作604可以与第一填充过程500 (参见图5)的接收操作 504相同。确认操作606可确定输入是否符合与相应的第二数据字段相关联的识别 要求。例如,如果用户将数据输入到自由形式任务的持续时间属性中,则确
认操作506可确定该输入是否指示时间段。在一实施例中,确认操作606可 确定输入是否是以预定义的输入格式(天数、小时数等)输入的。
确认操作606还可确定输入是否符合与相应的第二数据字段相关联的任 何逻辑要求。例如,确认操作606可要求在一工作日只可安排八个工作小时。 如果确认操作606确定输入满足所有识别要求,则第二填充过程600继续至存 储操作610,该操作将在下文中更详细地讨论。
或者,如果确认操作606确定输入不满足识别要求或不满足逻辑要求,则 第二填充过程600继续至解决操作608。 解决操作608为自由形式属性确定 或设立可识别且合乎逻辑的值。所确定的值在以下描述的存储操作610中被 分配给属性的第二数据字段。
解决操作608的某些实施例至少部分地基于用户输入的数据来确定分配
给自由形式属性的第二数据字段的值。解决操作608的其他实施例至少部分
地基于相关属性的值来确定分配给自由形式属性的第二数据字段的值。关于 解决不可识别和/或逻辑上不一致的属性值的附加细节在此处参考图7公开。
继续图6,存储操作610将可识别的、合乎逻辑的值(即,用户输入的值 或由解决操作608产生的值)存储在相应属性的第二数据字段中。显示操作 612向用户呈现输入第二数据字段的数据。在某些实施例中,存储在第二数 据字段中的数据以图形上与存储在第一数据字段中的数据不同的形式呈现。 示例显示过程在此处将参考图10更详细地描述。第二填充过程600在停止 模块614处完成并结束。
图7示出了一个示例解决过程700的操作流程,该过程用于从不可识别或 逻辑上不一致的属性值生成可识别且合乎逻辑的属性值。该解决过程700可 用于实现图6的第二填充过程600的解决操作608以生成自由形式属性值,从 而存储在自由形式属性的第二数据字段中。解决过程700在开始模块702处 初始化和开始,并且继续至确定操作704。
确定操作704分析用户输入的属性值以确定该数据是不可识别的还是逻 辑上不一致的。如果确定操作704确定该数据是不可识别的(例如,当预计日期到来时的文本串),则解决过程700继续至生成操作706。生成操作706 基于相关属性来产生可识别且逻辑上一致的属性值。如果不存在相关属性, 则生成过程706产生默认可识别的值。
例如,图8示出了示例生成过程800,该过程可用于实现解决过程700的 生成操作706以产生预期属性值。生成过程800在开始模块802处初始化和 开始,并且继续至判定模块804。 判定模块804确定预期属性值是否与任何 其他属性的已知值相关。例如,在一实施例中,判定模块804将确定持续时 间属性的值与开始日期属性的值和结束日期属性的值相关。
如果判定模块804确定预期属性值不与任何其他属性值相关、或者预期属 性值与之相关的属性值尚未分配,则生成过程800继续至提交操作806。 提 交操作806将默认值传回到解决过程700的生成操作706。 生成过程800在 停止模块814处完成并结束。解决过程700然后将默认值传回到图6的第二 填充过程600的解决操作608,并在停止模块708处完成和结束。
或者,如果判定模块804确定预期属性值与另一已知属性值相关,则生成 过程800继续至获取操作808。 获取操作808取回相关属性的值。例如, 在一实施例中,如果用户已输入不可识别的数据作为任务持续时间,则获取操 作808将取回任务开始日期的值和任务结束日期的值。
计算操作810基于所取回的相关属性的值来确定预期属性值。继续以上 给出的示例,计算操作810可通过确定所取回的任务开始日期的值和所取回的 任务结束日期的值之间的天数来计算任务持续时间。 一般而言,计算操作810 根据项目计算模型的规则,基于所取回的值来确定预期属性值。例如,计算 操作810可从任务持续时间计算中排除周末,如果项目计算模型的规则中包括 这一规定的话。
生成过程800在停止模块812处完成、结束,并将预期属性值传回到解决 过程700的生成操作706,该解决过程在停止模块708处完成并结束,如上所 述。
继续图7的解决过程700,确定操作704可确定用户输入的属性值是可识 别的,但逻辑上不一致。在某些实施例中,输入数据可能与其他先前输入的 属性值不一致。例如,输入数据可安排项目结束日期早于项目开始日期。在其他实施例中,输入数据可能与存储在计算模型中的定义规则不一致。例如, 在计算模型将工作日定义为八小时的情况下,所输入的日期可指示项目参与者 将在一个工作日内工作九小时。
在某些实施例中,如果确定操作704确定用户输入的属性值在逻辑上不一
致,则解决过程700继续至自动校正操作710。 自动校正操作710解决由所 输入的属性值造成的逻辑不一致性。
在一实施例中,自动校正操作710确定更一致的属性值以代替所输入的 值。然而,在其他实施例中,自动校正操作710为一个相关属性确定新的值 以解决不一致性。这些实施例通过将项目计划改变成遵照用户最近输入的数
据来有利地更准确地反映用户的意图。
示例校正过程900在图9中示出,可根据该校正过程来实现自动校正操作 710以获取有效属性值。示例校正过程900在开始模块902处初始化和开始, 并且继续至判定模块904。 判定模块904确定所输入的属性值是否与任何其 他属性的已知值相关。例如,判定模块904可以与图8的示出过程800的判 定模块804相同。
如果判定模块904确定所输入的属性值不与任何其他属性值相关、或者所 输入的属性值与其相关的属性值尚未分配,则校正过程900继续至第一计算操 作906。 第一计算操作906根据任务定义和计算模型的规则来确定属性值。 在一实施例中,第一计算操作906可基于用户输入的值来确定属性值。
提交操作908将计算出的值传回到解决过程700的生成操作706。 校正 过程900在停止模块910处完成并结束。解决过程700然后将计算出的属性 值传回到图6的第二填充过程600的解决操作608,并在停止模块708处完成 和结束,如上所述。
或者,如果判定模块904确定所输入的属性值与另一已知属性值相关,则 校正过程900继续至获取操作912。 获取操作912取得相关属性的值。例 如,获取操作912可以与生成过程800的获取操作808相同。
计算操作914基于所输入的属性值来为相关属性值中的一个或多个确定 适当的值。例如,如果任务被定义为在2007年1月1日开始并在2007年1 月2日结束并且用户随后输入持续时间5天,则计算操作914的一个实施例将计算出新的结束日期2007年1月5日。
替换操作916用新计算出的值来替换相关属性的先前值。在一实施例 中,替换操作916将新计算出的值输入到相关属性的第一数据字段中。在另 一实施例中,替换操作916将新计算出的值输入到相关属性的第二数据字段中。
校正过程900将新计算出的属性值返回到解决过程700的自动校正操作 710,并在停止模块910处完成和结束,如上所述。解决过程700将所输入 的属性值传回到图6的第二填充过程600的解决操作608,并在停止模块712 处完成和结束。
继续图7的解决过程700,在替换实施例中,如果确定操作704确定数据 是可识别的,但逻辑上不一致,则解决过程700可继续至警告操作714 (即, 代替自动校正操作710)。 通常使用警告操作714来代替自动校正操作710。 然而,在其他实施例中,警告操作714的特征可以与自动校正操作710协同使用。
警告操作714向用户提供所输入的属性值已导致逻辑不一致性的指示。 例如,警告操作714可主动弹出显示警告或解释的屏幕。然而,在其他实施 例中,警告用户操作714可改变显示在项目管理环境100 (图1)的输入区110 和显示区120的至少一个中的属性值的视觉描绘(例如,颜色、形状、图标、 不透明度等)。
警告操作714可为用户提供选择三个选项中的一个的机会。第一,用户 可选择忽略不一致性,在这种情况下解决过程700继续至自动校正操作710以 生成适当的值以便存储在自由形式属性的第二数据字段中。在这些情况下, 用户输入的属性值仍旧存储在第一数据字段中。从自动校正操作710,解决 过程700完成并结束,如上所述。
第二,用户可选择修改所输入的属性值,在这种情况下解决过程700继续 至第一校正操作716。 第一校正操作716使得用户不仅能够修改存储在自由 形式属性的第二数据字段中的属性值,而且能够修改存储在第一数据字段中的 属性值。在一实施例中,用户通过在项目管理环境100的输入区110或显示 区120中输入新的值来修改属性值。从第一校正操作716,解决过程700将 新输入的属性值传递给第二填充过程600的解决操作608,并在停止模块718处完成和结束。
第三,用户可选择修改相关属性值,在这种情况下解决过程700继续至第
二校正操作720。 第二校正操作720使得用户不仅能够修改存储在相关属性 的第二数据字段中的属性值,而且能够修改存储在相关属性的第一数据字段中 的属性值。在一实施例中,用户通过在项目管理环境100的输入区110或显 示区120中输入新的值来修改相关属性值。解决过程700将所输入的属性值 从第二校正操作720传递给第二填充过程600的解决操作608,并在停止模块 722处完成和结束。
在其他实施例中,警告操作714可在解决不可识别的输入数据的生成操作 706之前使用,或者可代替生成操作706使用。在这些实施例中,警告操作 714可指示所输入的属性值不满足与相应属性相关联的识别准则。例如,警 告操作714可主动弹出显示警告或解释的屏幕。在提供该指示后,解决过程 700可从用户处接收新属性值或者可继续至生成操作706以获取可识别的属性 值。
图10示出了可用于向用户显示项目计划的全部或部分的示例呈现过程 1000的操作流程。在一实施例中,呈现过程1000可用于分别实现第一和第 二填充过程500、 600的显示操作508、 612。 在一实施例中,只向用户呈现 存储在项目计划的第一数据字段中的数据。然而,在另一实施例中,也可或 可另选地向用户呈现存储在第二数据字段中的数据。
呈现过程1000在开始模块1002处初始化和开始,并且继续至第一显示操 作1004。 第一显示操作1004呈现项目管理环境100的输入区110中的项目 数据对象的每一个任务属性的值。例如,第一显示操作1004能够以表格形 式(参见图1)呈现任务属性。在一实施例中,第一显示操作1004只呈现项 目数据对象的任务和/或属性的子集。
在一实施例中,第一显示操作1004在图形上将自由形式任务与结构化任 务区分开来以使得用户可知道哪些任务已针对逻辑一致性作了检査而哪些任 务还没有。在其他实施例中,任务不在该基础上进行区分。呈现过程1000 可在停止模块1014处完成并结束。
或者,呈现过程1000可继续至生成操作1006,该操作可生成项目计划的图形表示。例如,生成操作1006可创建甘特图、线图、时间线或任何其他
这样的显示画面以表示项目计划。第二显示操作1008在项目管理环境100 (参见图1)的显示区120中向用户呈现项目计划的图形表示。
在某些实施例中,呈现过程1000可在第二显示操作1008后完成并结束。 然而,在其他实施例中,呈现过程1000继续至比较操作1010。 比较操作1010 确定存储在第一数据字段中的属性值和存储在第二数据字段中的属性值之间 的差异。
第三显示操作1012向用户指示该差异。例如,第三显示操作1012可同 时显示第一数据字段的属性值和第二数据字段属性值以使得用户可在进行其 间的视觉比较。或者,第三显示操作1012还可指示第一和第二数据字段的 属性值在哪里是相一致的。
例如,图11是示例项目管理环境的屏幕截图,该项目管理环境包括被配 置成表格的输入区1110以及被配置成包括表示任务的多个条的甘特图的显示 区1120。 在所示示例中,条的颜色指示该条是表示存储在第一数据字段中的 属性值还是表示存储在第二数据字段中的属性值。条的颜色还指示第一和第 二数据字段的属性值是否一致。然而,在其他实施例中,这些信息可使用条 的不透明度、条的形状、图标或其他这样的图形标记来传递。
图11的甘特图包括第一个条1122、第二个条1124、第三个条1126和第 四个条1128。 第一个条1122是蓝色的,这指示该条表示第一数据字段的属 性值并且这些属性值与第二数据字段的属性值一致。第三个条1126是红色 的,这指示该条表示第一数据字段的属性值并且这些属性值与第二数据字段的 属性值不一致。第二和第四个条1124、 1128是灰色的,这指示这两个条表 示第二数据字段的属性值。
在所示示例中,表示第二数据字段的条在表示第一数据字段的条之下示 出。然而,在其他实施例中,条可以按任何次序示出。因为第一和第二数 据字段的属性值一致,所以第一个条1122和第二个条1124是相连的。相反, 因为第一和第二数据字段的属性值不同,所以第三个条1126和第四个条1128 不是相连的。事实上,在所示示例中,第四个条1128甚至不与第三个条1136 交叠。呈现过程1000在停止模块1014处完成并结束,如上所述。上文中所公开的原理可用于使得能够使用自由形式的输入和结构化输入 的混合来创建和操纵项目计划。这些原理可通过一组示例应用来获得最佳理
解。图12-15分别示出了项目计划1200、 1300、 1400、 1500在由用户修改 时的顺序状态。图12所示的第一项目计划1200包括具有三个状态Tl、 T2、 T3的结构化任务任务1。 结构化任务任务1包括名称属性、指定属性、开始 日期属性、结束日期属性和持续时间属性。因为任务l是结构化任务,所以 所有属性都是结构化属性。
在第一状态T1中,开始日期属性已分配到值01/01/07,结束日期属性已 分配到值01/02/07,并且持续时间属性已分配到值2天。在第二状态T2中, 用户通过用新的值5天来替换先前的值来修改持续时间属性。在第三状态 T3中,该项目计划的计算模型更新相关属性以符合新输入的输入。在所示 示例中,结束日期属性的值变为01/05/07。
相反,图13所示的第二项目计划1300包括具有三个状态Ul、 U2、 U3 的自由形式任务任务2。 该自由形式任务任务2也包括名称属性、指定属性、 开始日期属性、结束日期属性和持续时间属性,这些属性在第一状态U1中具 有与结构化任务任务1在第一状态Tl中所具有的属性相同的初始值。开始 日期属性、结束日期属性和持续时间属性已被指定为自由形式属性,并因此具 有与第一数据字段相关联的第二数据字段(用虚线来指定)。
当在第二状态U2中对第二项目计划1300作出相同的修改时,持续时间 属性的第一数据字段的属性值改变以反映新输入的数据(即,5天)。因为 新输入的数据可由计算模型识别(例如,是计算模型对该属性期望的数据类 型),所以该新输入的数据也被存储在持续时间属性的第二数据字段中。
然而,与第一项目计划1200不同,不更新第二项目计划1300的结束日期 属性的第一数据字段来反映新修改的持续时间值。相反,保留不一致的日期 01/02/07。 然而,计算模型的确用逻辑上一致的值(即,01/05/07)来更新结 束日期属性的第二数据字段。
图14所示的第三项目计划包括自由形式任务任务3,其具有与先前的任 务任务1 、任务2相同的属性以及两个数据状态VI 、 V2。 在初始状态VI中, 用户输入这些属性的逻辑上不一致的值(即,结束日期是开始日期之后第四天,而项目持续时间是1天)。这些逻辑上不一致的值被存储在第一数据字段中 并向用户显示。第二数据字段可存储默认值或者可留白。
在第二状态V2中,计算模型解决了逻辑不一致性并将一组逻辑上一致的 日期存储在第二数据字段中。在所示示例中,持续时间属性值是最后输入的, 因此其他属性值变为与所输入的持续时间值一致。然而,在其他实施例中, 计算模型可使该解决以不同的属性值为基础。在所示示例中,第一数据字段 存储所输入的值。然而,在其他实施例中,可输入已解决的属性值并将其存 储在第一数据字段中。
图15所示的第四项目计划包括自由形式任务任务4,其具有与先前的任
务任务l、任务2、任务3相同的属性以及两个数据状态Wl、 W2。 在初始 状态W1中,用户输入开始日期属性的不可识别值(即,FY07)以及结束日期 属性和持续时间属性的可识别值。因为这些属性是自由形式属性,所以这些 值被存储在第一数据字段中并向用户显示,而不管计算模型是否可识别这些 值。
在第二状态V2,已识别的值被存储在相应属性的第二数据字段中。然 而,对于未识别的值,计算模型为开始日期属性确定与已识别值一致的新值(例 如,06/30/07)。 在所示示例中,计算模型通过从结束日期属性值12/31/07 往回数6个月(即,持续时间属性的值)来计算开始日期值。
本发明的实施例可被实现为计算机进程(方法)、计算系统或制品,诸如 计算机程序产品或计算机可读介质。这些过程(程序)可以用任何数量的方 式,包括本文中所描述的结构来实现。 一种此类方式是通过本文中描述的类 型的设备的机器操作。另一可任选方式是结合一个或多个人类操作者执行该 方法的各个操作中的某一些来在计算设备上执行这些操作中的一个或多个。 这些人类操作者无需彼此同在一处,但是其每一个可以仅与执行程序的一部分 的机器同在一处。
计算机程序产品可以是计算机系统可读并编码了用于执行计算机进程的 指令的计算机程序的计算机存储介质。计算机程序产品还可以是计算系统可
读并编码了用于执行计算机进程的指令的计算机程序的载波上的传播信号。 如此处所使用的术语计算机可读介质包括存储介质和通信介质两者。本领域的技术人员可以理解,本发明方法可以使用其它计算机系统配置来 实现,包括手持式设备、多处理器系统、基于微处理器或可编程消费电子产品、 小型计算机、大型计算机等。本发明也可以在其中任务由通过通信网络链接 的远程处理设备执行的分布式计算环境中实现。在分布式计算环境中,程序 模块可以位于本地和远程存储器存储设备中。 一般而言,程序模块包括执行 特定任务或实现特定的抽象数据类型的例程、程序、组件、数据结构和其它类 型的结构。
权利要求
1.一种创建项目计划(400、1200、1300、1400、1500)的方法,所述方法包括接收创建自由形式任务(410、420)的指令,所述自由形式任务具有多个属性(A、B);为所述自由形式任务的属性中的每一个生成第一数据字段(412、414、422、424);获取对所述自由形式任务的每一个属性的指定,包括获取所述自由形式任务的属性的子集作为自由形式属性的指定以及所述自由形式任务的其余属性作为结构化属性的指定;以及为所述自由形式属性中的每一个生成第二数据字段(416、418、428)并且将所述第二数据字段中的每一个与相应的自由形式属性的第一数据字段相关联。
2. 如权利要求1所述的方法,其特征在于,获取每一个属性的指定包 括获取所述自由形式任务的属性的预定子集作为自由形式属性的指定。
3. 如权利要求1所述的方法,其特征在于,还包括 接收所述自由形式任务的每一个属性的值;以及 将所接收到的值存储在每一个相应属性的第一字段中。
4. 如权利要求3所述的方法,其特征在于,还包括 确定每一个自由形式属性的所接收到的值是否是结构化的; 如果所述值是结构化的,则将所述自由形式属性的值存储在所述自由形式属性的相应第二字段中;如果所述值不是结构化的,则确定所述自由形式属性的结构化值;以及 将所述自由形式属性的结构化值存储在所述自由形式属性的相应第二字段中。
5. 如权利要求4所述的方法,其特征在于,还包括 确定第一自由形式属性的相关属性,所述相关属性具有一值;以及 至少部分地基于所述相关属性的所述值来计算所述结构化值。
6. 如权利要求3所述的方法,其特征在于,还包括 确定所述自由形式任务的每一个属性的相关属性;以及 确定所述自由形式任务的每一个属性的所接收到的值是否在逻辑上与所述相关属性的值不一致。
7. 如权利要求6所述的方法,其特征在于,还包括当所接收到的值在逻辑上不一致时,至少部分地基于所接收到的值来计 算所述相关属性的逻辑上一致的值;以及将所计算出的、逻辑上一致的值分配给所述相关属性的第二字段。
8. 如权利要求7所述的方法,其特征在于,还包括 提供所接收到的值在逻辑上与所述相关属性的值不一致的警告。
9. 如权利要求8所述的方法,其特征在于,还包括 给予提供逻辑上一致的值以替换所接收到的值的机会。
10. 如权利要求8所述的方法,其特征在于,还包括 给予提供所述相关属性的逻辑上一致的值的机会。
11. 一种用于计划项目的系统,所述系统包括项目计划(400、 1200、 1300、 1400、 1500),所述项目计划至少包括第一任务(410、 420、 430),所述第一任务具有多个属性;其中可存储第一属性值的第一数据字段(412、 414、 422、 424、 432、434),所述第一数据字段与所述第一任务的第一属性相关联;其中可存储第二属性值的第二数据字段(416、 418、 428),所述第二属性值是结构化值,所述第二数据字段与所述第一数据字段相关联;其中如果新属性值是结构化值,则所述新属性值在该新属性被输入所述第一数据字段中时存储在所述第二数据字段中。
12.如权利要求ll所述的系统,其特征在于,还包括 其中可存储属性值的第一组数据字段,所述第一组数据字段中的每一个数据字段都与所述第一任务的一个属性相关联;以及其中可存储结构化属性值的第二组数据字段,所述第二组数据字段具有与所述第一组数据字段相等或者比所述第一组数据字段更少的数据字段,所述第二组数据字段中的每一个数据字段都与所述第一组数据字段中的一个数据字段相关联。
13. 如权利要求12所述的系统,其特征在于,还包括输入区,所述输入区被配置成显示存储在至少所述第一组数据字段中的 属性值;以及输出区,所述输出区被配置成显示存储在所述第一组数据字段中的属性 值中的至少一部分的图形表示。
14. 如权利要求13所述的系统,其特征在于,所述输入区被配置成 以表格形式显示存储在所述第一组数据字段中的属性值。
15. 如权利要求13所述的系统,其特征在于,所述输出区被配置成 以甘特图显示所述属性值。
16. 如权利要求12所述的系统,其特征在于,所述输出区被配置成 在显示存储在所述第一组数据字段中的属性值的图形表示的同时显示存储 在所述第二组数据字段中的属性值中的至少一部分的图形表示。
17. —种存储计算机可执行指令的计算机可读介质,所述指令用于执行一种准备项目调度明细表的方法,所述方法包括创建第一任务(410、 420),所述第一任务具有第一属性和第二属性, 其中所述第一属性在数学上与所述第二属性相关;接收所述第一属性的第一值以及所述第二属性的第二值,其中所述第一 值和所述第二值在逻辑上不一致;将所述第一属性的第一值存储在第一数据字段(412、 414、 422、 424)中;将所述第二属性的第二值存储在第二数据字段(412、 414、 422、 424)中;将所述第二属性的第二值存储在第三数据字段(416、 418、 428)中, 所述第三数据字段与所述第二数据字段相关联;基于存储在所述第三数据字段中的第二属性的第二值来计算所述第一 属性的新的值;以及将所述第一属性的新的值存储在第四数据字段(416、 418、 428)中, 所述第四数据字段与所述第一数据字段相关联。
18. 如权利要求17所述的计算机可读介质,其特征在于,所述方法 还包括显示存储在所述第一数据字段中的第一属性的第一值以及存储在所述 第二数据字段中的第二属性的第二值。
19. 如权利要求17所述的计算机可读介质,其特征在于,所述方法 还包括显示存储在所述第三数据字段中的第一属性的第一值以及存储在所述 第四数据字段中的第二属性的新的值。
20. 如权利要求17所述的计算机可读介质,其特征在于,所述方法 还包括指示所述第二属性的新的值与所述第二属性的第二值不同。
全文摘要
一种项目管理应用程序提供了其中用户可将主要基于“自由形式的”数据的项目草图变换成经定义的项目计划的环境。该项目管理应用程序便于将自由形式任务的属性值与一个或多个项目任务的结构化属性值混合。尽管接受自由形式的任务属性值,但该项目管理应用程序可利用内部计算模型来管理任务属性值之间的关系。该项目管理应用程序在计算模型对属性值的识别所允许的范围内计算属性值。
文档编号G06Q10/00GK101689258SQ200880022294
公开日2010年3月31日 申请日期2008年6月5日 优先权日2007年6月28日
发明者A·P·施泰因格莱斯, P·德弗瑞斯 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1