首页> 中国专利> 辅助确定项目范围的方法和装置

辅助确定项目范围的方法和装置

摘要

本发明公开了一种辅助确定项目范围的方法和装置,该方法包含:获取多个需求、需求之间的依赖关系和需求约束;根据需求之间的依赖关系生成第一分组方案,其中,将所述多个需求划分为一个或多个组,具有依赖关系的需求分在同一个组中;接收用户定义的关系约束;基于第一分组方案,生成满足用户定义的关系约束的候选分组方案的集合,其中,候选分组方案的集合中的每个候选分组方案包含一个或多个组;根据需求约束,计算候选分组方案的集合中的每个候选分组方案的组合指标;显示候选分组方案的集合中的候选分组方案以及对应的组合指标。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-04-24

    授权

    授权

  • 2015-04-15

    实质审查的生效 IPC(主分类):G06Q10/06 申请日:20130830

    实质审查的生效

  • 2015-03-18

    公开

    公开

说明书

技术领域

本发明涉及信息技术,更具体地,涉及计算机实现的辅助确定项目范围 的工具。

背景技术

现代企业的业务得到许多相互依赖的软件应用的支持。对已有应用的变 更的需求,是持续不断的,这些需求来自方方面面:业务创新、技术革新、 缺陷修正(defect fixing)等。各种对变更的需求之间往往存在复杂的相互依赖 关系。一方面,两个需求之间可能存在直接依赖关系;另一方面,由于应用 之间存在相互依赖的关系,针对不同应用的需求之间因此存在间接依赖关 系。

对于有许多应用的企业来说,这样的变更需求的数量往往很大,例如数 以千计。为这些需求确定需要开展的项目,优化项目的范围,是一种繁重艰 难的工作。这是因为,在定义项目范围时,既要考虑需求之间的依赖关系, 又要满足对需求的约束。此外,不同专家和项目管理人员的知识、经验和习 惯不同,人工确定项目范围往往导致在优先顺序、需求约束和需求关系等方 面的冲突。

发明内容

本发明的一个目的是提供一种辅助确定项目范围的计算机实现的工具。

根据本发明的一个方面,提供一种辅助确定项目范围的方法,包含:获取 多个需求、需求之间的依赖关系和需求约束;根据需求之间的依赖关系生成第 一分组方案,其中,将所述多个需求划分为一个或多个组,具有依赖关系的需 求分在同一个组中;接收用户定义的关系约束;基于第一分组方案,生成满足 用户定义的关系约束的候选分组方案的集合,其中,候选分组方案的集合中的 每个候选分组方案包含一个或多个组;根据需求约束,计算候选分组方案的集 合中的每个候选分组方案的组合指标;显示候选分组方案的集合中的候选分组 方案以及对应的组合指标。

另一方面,提供一种辅助确定项目范围的装置,包含:数据获取与分析 模块,被配置得用于获取多个需求、需求之间的依赖关系和需求约束;初始 分组模块,被配置得用于根据需求之间的依赖关系生成第一分组方案,其中, 将所述多个需求划分为一个或多个组,具有依赖关系的需求分在同一个组 中;关系约束接收模块,被配置得用于接收用户定义的关系约束;更新模块, 被配置得用于基于第一分组方案,生成满足用户定义的关系约束的候选分组 方案的集合,其中,候选分组方案的集合中的每个候选分组方案包含一个或 多个组;组合指标计算模块,被配置得用于根据需求约束,计算候选分组方 案的集合中的候选分组方案的组合指标;显示模块,被配置得用于显示候选 分组方案的集合中的候选分组方案以及对应的组合指标。

采用本发明提供的系统化的辅助工具,有助于提高软件开发的项目管理人 员的工作效率,减少确定项目范围、优化项目范围时的工作量。

附图说明

通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上 述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施 方式中,相同的参考标号通常代表相同部件。

图1示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12 的框图;

图2示出了按照本发明实施例的辅助确定项目范围的方法的流程图;

图3例示按照本发明实施例生成的第一分组方案;

图4例示按照本发明实施例生成的第二分组方案;

图5例示按照本发明实施例生成的候选分组方案的集合;

图6例示按照本发明实施例计算的图5所示候选分组方案的集合中的候 选分组方案的组合指标的表;

图7示出了按照本发明实施例的辅助确定项目范围的装置的框图。

具体实施方式

下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示 了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不 应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开 更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人 员。

所属技术领域的技术人员知道,本发明可以实现为系统、方法或计算机 程序产品。因此,本公开可以具体实现为以下形式,即:可以是完全的硬件、 也可以是完全的软件(包括固件、驻留软件、微代码等),还可以是硬件和 软件结合的形式,本文一般称为“电路”、“模块”或“系统”。此外,在一些实 施例中,本发明还可以实现为在一个或多个计算机可读介质中的计算机程序 产品的形式,该计算机可读介质中包含计算机可读的程序代码。

可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可 以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例 如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、 装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非 穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬 盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储 器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储 器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读 存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系 统、装置或者器件使用或者与其结合使用。

计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的 数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采 用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的 组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算 机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系 统、装置或者器件使用或者与其结合使用的程序。

计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括— —但不限于——无线、电线、光缆、RF等等,或者上述的任意合适的组合。

可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作 的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如 Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如”C”语言或 类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在 用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分 在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程 计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN) 或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如 利用因特网服务提供商来通过因特网连接)。

下面将参照本发明实施例的方法、装置(系统)和计算机程序产品的流 程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流 程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机 程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的 处理器,从而生产出一种机器,这些计算机程序指令通过计算机或其它可编 程数据处理装置执行,产生了实现流程图和/或框图中的方框中规定的功能/ 操作的装置。

也可以把这些计算机程序指令存储在能使得计算机或其它可编程数据 处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介 质中的指令就产生出一个包括实现流程图和/或框图中的方框中规定的功能/ 操作的指令装置(instruction means)的制造品(manufacture)。

也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或 其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一 系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程 装置上执行的指令能够提供实现流程图和/或框图中的方框中规定的功能/操 作的过程。

图1示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12 的框图。图1显示的计算机系统/服务器12仅仅是一个示例,不应对本发明 实施例的功能和使用范围带来任何限制。

如图1所示,计算机系统/服务器12以通用计算设备的形式表现。计算机 系统/服务器12的组件可以包括但不限于:一个或者多个处理器或者处理单 元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元 16)的总线18。

总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器 控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意 总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系 结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频 电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。

计算机系统/服务器12典型地包括多种计算机系统可读介质。这些介质可 以是任何能够被计算机系统/服务器12访问的可用介质,包括易失性和非易 失性介质,可移动的和不可移动的介质。

系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如 随机存取存储器(RAM)30和/或高速缓存存储器32。计算机系统/服务器 12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存 储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁 介质(图1未显示,通常称为“硬盘驱动器”)。尽管图1中未示出,可以提 供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对 可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的 光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接 口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有 一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施 例的功能。

具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例 如存储器28中,这样的程序模块42包括——但不限于——操作系统、一个 或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某 种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的 实施例中的功能和/或方法。

计算机系统/服务器12也可以与一个或多个外部设备14(例如键盘、指 向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机 系统/服务器12交互的设备通信,和/或与使得该计算机系统/服务器12能与 一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等) 通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,计算机系统 /服务器12还可以通过网络适配器20与一个或者多个网络(例如局域网 (LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示, 网络适配器20通过总线18与计算机系统/服务器12的其它模块通信。应当 明白,尽管图中未示出,可以结合计算机系统/服务器12使用其它硬件和/或 软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘 驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。

本发明的方法和装置可以在图1所示的计算机系统12上实现。

本发明的基本构思是,针对大量例如变更请求之类的需求,通过系统化 的人机相互的过程,按照一定的优先顺序,基于需求之间的关系和需求约束 对需求进行聚类,由此生成可以用来确定项目范围的一个或多个需求组。

下面说明本发明的各种实施方式。首先参看图2,图2示出了按照本发 明实施例的辅助确定项目范围的方法的流程图。

图2所示的方法流程始于步骤210。在步骤210,获取多个需求、需求 之间的依赖关系和需求约束(requirement constraints)。

在本发明的上下文中,“需求”也指的是变更请求,例如对一个IT应用 (以下简称“应用”)的变更请求。一个需求与另一个需求之间往往存在直 接依赖关系。例如,需求1是“修改数据库DB-2的一个数据库表”,需求3 是“基于数据库DB-2制作一个数据报表”。在这种情况下,需求1与需求3 之间存在直接依赖关系,需求3依赖于需求1,因为要先修改数据库表,然 后才能基于修改的数据库表制作报表。此外,一个需求与另一个需求之间也 可能存在间接依赖关系。例如,如果需求1针对的是应用1,需求2针对的 是应用2,而应用1与应用2之间存在依赖关系,则需求1与需求2之间则 因为它们分别与应用1和应用2的关系而存在依赖关系,这种关系称为间接 依赖关系。

如果两个需求之间存在直接依赖关系和/或间接依赖关系,则他们之间存 在依赖关系。

在项目管理领域,在描述需求的属性中,有一类属性定义对需求的约束, 包括工作量约束、期限约束、价值约束等等。例如,某个需求的工作量是30 人天、完成期限是9月13日、价值是1万美元等等。在本说明书中,将这 种约束称作“需求约束”,在上下文清楚的情况下,也简称为“约束”。

在项目管理实践中,通常要对需求进行预处理,生成预定格式的需求描 述和相关数据,并将它们存储在一个需求存储库(未予示出)。步骤210可 以从需求存储库中获取需求、需求之间的依赖关系和需求约束。

为了方便以下的说明,假设在步骤210中获取了9个需求(需求1、需 求2、…需求9),记为R={r1,r2,…r9},其中大写字母R表示一个需求集合, 小写字母r表示需求,例如r1表示需求1。此外,还假设在步骤210中获取 了这9个需求之间存在的依赖关系,例如“r3依赖于r1”;每个需求的需求 约束,例如“r1所需的工作量是30人天”。然后,过程继续到步骤220。

在步骤220,根据需求之间的依赖关系生成第一分组方案,其中,将所 述多个需求划分为一个或多个组,具有依赖关系的需求分在同一个组中。步 骤220也称初始分组步骤。

图3例示按照本发明实施例生成的第一分组方案。该图用两个连通图301 和302表示步骤220生成的第一分组方案。连通图中的一个节点表示一个需 求,节点之间的有向边表示需求之间的依赖关系。例如,连通图301中,节 点1表示r1,从节点3到节点1的有向边,表示r3依赖于r1。图3表示, 在本例中,按照步骤220生成的第一分组方案,需求r1,…r9被划分为两个组: 第一组包含5个需求,记为G301={r1,r2,r3,r7,r8},其中,“G301”表示连通 图301表示的组;第二组包含4个需求,记为G302={r4,r5,r6,r9},其中,“ G302”表示连通图302表示的组。

图3中也表示了其它需求之间的依赖关系,即r3依赖于r2,r5依赖于 r4和r9,r6依赖于r5,r7和r8都依赖于r3。这些依赖关系都是在步骤210 获取的。如图3所示,具有依赖关系的需求被分在同一个组中。

需要指出的是,虽然在图3中是用连通图表示第一分组方案中的各个组 的,但是这仅仅是个示例,所属技术领域的技术人员显然明白,可以采用适 合计算机处理的其它形式(例如链接表)来表示第一分组方案中的各个组及 其相关数据。

按照本发明一个实施例,需求之间的依赖关系包含需求之间的直接依赖 关系。如上文所述,可以从需求存储库中获取需求之间的直接依赖关系。

按照本发明一个实施例,所述多个需求是针对已有的不同应用的变更请 求,需求之间的依赖关系还包含需求之间的间接依赖关系,如图所示,在这 种情况下,该方法可以进一步包含:

步骤211,获取所述多个需求所针对的应用之间的依赖关系;和

步骤212,根据所述多个需求所针对的应用之间的依赖关系,导出所 述多个需求中任意两个需求之间的间接依赖关系。

例如,需求1针对的是应用1,需求2针对的是应用2。此时,在步骤 220中生成第一分组方案所根据的依赖关系,可以既包括直接依赖关系,又 包括间接依赖关系。

在实践中,步骤211和步骤212可以与步骤210集成在一个步骤中,也 可以在步骤210之后执行。在项目管理实践中,通常把预定格式的应用描述 和应用之间的关系描述等数据,存储在一个应用存储库(未予示出)中。可 以从应用存储库中获取应用和应用之间的关系描述,例如获取应用1和应用 2之间的关系。

如果应用1和应用2之间存在依赖关系,则认为需求1与需求2之间存 在间接依赖关系,例如,如果应用1依赖于应用2,则可以导出需求1依赖 于需求2。

在步骤230,接收用户定义的关系约束(relationship constraints)。

按照本发明一个实施例,关系约束包含以下的至少之一:

1、包含性(inclusive)约束,指的是要将一个需求与另一个需求划分在同 一个组中的要求。例如,“如果r1和r2在一组中,则r6必须在同一组中”; “r1与r6必须在同一组中”,等等。在确定项目范围的实际应用中,包含性 约束“r1与r6必须在同一组中”可能意味着,用户希望将需求r1和r6包含 在同一个项目中。

2、排斥性(exclusive)约束,指的是不要将一个需求与另一个需求划分在 同一个组中的要求和/或不要将某需求划分在某一组或多组中的要求。例如“ 如果r2和r3在一组中,则r5不能在同一组中”;“r2与r5不能在同一组中”; “r7不要在第1组和第2组中”等等。在确定项目范围的实际应用中,排斥 性约束“r2与r5不能在同一组中”可能意味着,用户希望在同一个项目中不 要同时包含需求r2和r5。

需要指出的是,用户定义的关系约束,用户定义的关系约束是用户定义 的指示要在某组中包含某需求的需求,以及/或者要在某一组或多组中排除某 需求的要求,包括—但不限于—包含性约束和/或排斥性约束,是用户(例如 项目管理人员)为了确定项目范围而对需求进行分组时对需求提出的额外约 束条件,与在步骤210获取的需求约束相比,具有更高的优先级。

所属技术领域的技术人员应当明白,可以用各种方式接收用户定义的关 系约束。例如,可以通过人机交互的方式获取关系约束,即在运行本发明实 施例的方法的计算机显示器上,显示一个用户界面(UI),其中,以某种方式 显示在步骤220生成的第一分组方案,提示用户在UI的输入区,针对第一 分组方案,按照预先规定的计算机可识别的格式,输入关系约束,例如包含 性约束和/或排斥性约束,由此从用户接收关系约束。当然,也可以把关系约 束以计算机可读的形式预先存储在需求存储库中,在步骤210中或之后,从 需求存储库中获取用户定义的关系约束。

在步骤230后,执行步骤240。

在步骤240,基于第一分组方案,生成满足用户定义的关系约束的候选 分组方案的集合,其中,候选分组方案的集合中的每个候选分组方案包含一 个或多个组。

用户定义的关系约束,可以只有包含性约束或者只有排斥性约束,也可 以二者兼有。本发明实施例的方法要进行对关系约束中是否有包含性约束的 确定,也要进行对关系约束中是否有排斥性约束的确定。根据关系约束包含 的内容,在步骤240中可以采取相对应的处理。

按照本发明一个实施例,关系约束包括包含性约束和排斥性约束,所述 基于第一分组方案生成满足用户定义的关系约束的候选分组方案的集合包 含:基于第一分组方案生成满足包含性约束的第二分组方案;基于第二分组 方案生成满足排斥性约束的候选分组方案的集合。

首先,基于第一分组方案生成满足包含性约束的第二分组方案。参看图 4,该图例示按照本发明实施例生成的第二分组方案。具体来说,假设用户 定义的包含性约束是“如果r1和r2在同一组中,则r6必须在同一组中”, 则执行步骤240的结果如图4所示。如图所示,为了满足“如果r1和r2在 同一组中,则r6必须在同一组中”这个要求,可以通过合并第一分组方案的 组G301和G302,生成满足包含性约束的第二分组方案,第二分组方案中只 有一个组G401,由图4中的连通图401表示。在图4中,节点1与节点6 之间的虚线,表示需求r1和需求r6之间具有包含(include)关系,即,按 照包含性约束,r1和r6要被包含在同一个组中。同样,节点2与节点6之间 的虚线,表示r2和r6要被包含在同一个组中。

显然,第二分组方案也包含一个或多个分组,它们是从第一分组方案的 一个或多个分组衍生的。

然后,基于第二分组方案生成满足排斥性约束的候选分组方案的集合。

假设用户定义的排斥性约束是“如果r2和r3在一组中,则r5不能在同 一组中”,则执行“基于第二分组方案生成满足排斥性约束的候选分组方案 的集合”的结果如图5所示。图5例示按照本发明实施例生成的候选分组方 案的集合。

图5所示的候选分组方案的集合S,包含三个候选分组方案S1、S2和 S3。候选分组方案S1包含三个组S1G1、S1G2和S1G3,记为 S1={S1G1,S1G2,S1G3},其中,组S1G1包含需求r1、r3、r7和r8,记为 S1G1={r1,r3,r7,r8}。类似地,S1G2={r2},S1G3={r4,r5,r6,r9}。

候选分组方案S2包含两个组,类似地,可以记为:

S2={S2G1,S2G2};

S2G1={r1,r2,r3,r6,r7,r8};

S2G2={r4,r5,r9}。

候选分组方案S2包含三个组,类似地,可以记为:

S3={S3G1,S3G2,S3G3};

S3G1={r1};

S3G2={r2,r3,r7,r8};

S3G3={r4,r5,r6,r9}。

步骤230和步骤240的先后顺序,表明对用户定义的关系约束的考虑的 优先级,高于对需求之间的依赖关系的考虑。在步骤240中,先生成基于第 一分组方案生成满足包含性约束的第二分组方案,再基于第二分组方案生成 满足排斥性约束的候选分组方案的集合、即基于图4所示的分组方案生成图 5所示的候选分组方案的集合,表明对排斥性约束的考虑的优先级高于对包 含性约束的考虑。

以上描述的是关系约束中既有包含性约束又有排斥性约束时的处理方 式。在实际应用中,可能存在关系约束中只有排斥性约束和包含性约束其中 之一的情形。

按照本发明一个实施例,关系约束只包括包含性约束,所述基于第一分 组方案生成满足用户定义的关系约束的候选分组方案的集合包含:

基于第一分组方案生成满足包含性约束的第二分组方案,作为所述候选 分组方案的集合。

在这个实施例中,例如,基于第一分组方案生成满足包含性约束的第二 分组方案的过程,与上文描述的相同。不过,所生成第二分组方案将被作为 候选分组方案,用于后续步骤的处理。

按照本发明一个实施例,关系约束只包含排斥性约束,所述基于第一分 组方案生成满足用户定义的关系约束的候选分组方案的集合包含:

基于第一分组方案生成满足排斥性约束的第二分组方案,作为所述候选 分组方案的集合。

在这个实施例中,基于第一分组方案生成满足排斥性约束的第二分组方 案的过程,与上文基于图4所示的分组方案生成图5所示的候选分组方案的 集合的过程相同,因此无需赘述。

在步骤240后,已经产生了候选分组方案的集合,其中的每个候选分组 方案包含一个或多个组。然后,过程前进到步骤250。以下以图5所示的候 选分组方案的集合为例,说明步骤240之后的过程。

在步骤250,根据需求约束,计算候选分组方案的集合中候选分组方案 的组合指标(combined indicator)。

例如,假如在步骤210获取的需求约束中,需求1—9对应的工作量、 价值和最后期限约束如下表1所示。

表1:工作量、价值和最后期限约束

需求 1 2 3 4 5 6 7 8 9 工作量 30 300 40 340 250 400 120 60 200 价值 3 29 4 29 22 30 11 6 19 最后期限 09-13 09-13 10-13 12-31 12-13 12-13 10-13 10-13 12-31

表1列出了需求1、…需求9的工作量约束,根据需求1、…需求9的 工作量约束,可以计算出每个候选组合方案有关的工作量的组合指标。

在项目管理实践中,往往对项目预定的约束,例如,预先定义的单个项 目允许的最大工作量、单个项目的资源限制、期限限制等等。计算每个候选 分组方案的组合指标,例如工作量的组合指标,就能识别某候选分组方案的 总体工作量是否,超过预先定义的单个项目允许的最大工作量。

参看图6。图6例示按照本发明实施例计算的图5所示候选分组方案的 集合中的每个候选分组方案的组合指标的表。

图6所示的表中,包含图5所示候选分组方案的集合中的候选分组方案 S1、S2和S3的组合指标,其中:

表头“组数”表示一个候选分组方案中包含的组的个数;

表头“G1”、“G2”、“G3”分别表示某一候选分组方案中的第1组、第2 组和第3组;

表头“工作量”表示一个候选分组方案中每个组的工作量,其是该组中 包含的所有需求的工作量的总和,计量单位例如是“人天”;

表头“价值”表示一个候选分组方案中每个组的价值,其是该组中包含 的所有需求的价值的总和,计量单位例如是“千美元”;

表头“最后期限”表示一个候选分组方案中每个组的最后期限,其是该 组中包含的所有需求的期限中最晚的期限,格式为“月-日”。

例如,候选分组方案S1包含3个组:第1组(G1)、第2组(G2)和第3 组(G3)。

第1组(G1)的工作量为250,其计算方式如下:

第1组(G1)就是图5所示的S1G1,第1组(G1)的工作量是S1G1中的 所有需求r1、r3、r8、r9的工作量之和。根据表1,r1、r3、r8、r9的工作量 分别为30、40、120、60,它们的总和为250。

类似地,可以计算出第1组(G1)的价值和最后期限分别为24、09-13。

类似地,可以计算出第2组(G2)的工作量、价值和最后期限分别为300、 29、09-13;第3组(G2)的工作量、价值和最后期限分别为1190、100、12-13。

以上说明了如何计算候选分组方案S1的组合指标。以类似方式,可以 计算候选分组方案S2的组合指标和候选分组方案S2的组合指标。

在步骤260,显示所述候选分组方案及其组合指标。

一个候选分组方案的组合指标,通常可以包括以下的一项或多项:

该候选分组方案包含的组的个数;

该候选分组方案中每个组的总工作量;

该候选分组方案中每个组的总价值;

该候选分组方案中每个组的最晚期限。

例如,在计算机屏幕上的用户界面中,显示图5所示的候选分组方案S1、 S2和S3,以及图6所示的组合指标。可以用各种组合方式显示候选分组方 案及其组合指标,例如,可以将图5所示的多个组合方案的组合指标,显示 图6所示的一张表中,或者多个表中;可以先显示每个组合方案,再显示组 合指标,也可以将每个组合方案与其组合指标对应地在一起显示。此外,还 可以显示如表1所示的需求约束。此外,候选分组方案、组合指标以及需求 约束的呈现形式,也可以与图5、图6和表1的呈现形式有所不同。所属技 术领域的技术人员完全应当了解各种显示方式和呈现形式,在此无需赘述。

显示候选分组方案及其组合指标的目的,是为了让与计算机交互的用 户、尤其是项目管理人员能够直观地了解各种候选分组方案的详细内容,以 便从项目的角度衡量候选分组方案中包含的各个组是否适合构成一个项目。

例如,项目管理人员从用户界面上看到,候选分组方案S2包含的两个 组的工作量分别是950和790(参看图6),相对均衡,适合目前的可用于项 目开发的资源状况(例如人力资源状况),于是选择候选分组方案S2。这意 味着项目管理人员要根据S2中的组S2G1中包含的需求r1、r2、r3、r7和r8 的内容确定一个项目范围,根据S2中的组S2G2中包含的需求r4、r5和r9 的内容确定另一个项目范围。图2中的方框270表示用户进行选择的步骤。

按照本发明一个实施例,还可以提供对所选择的候选分组方案的用户交 互界面。如图1中从步骤270指向步骤230的虚线箭头所示,在用户选择了 候选分组方案S2后,如果认为还要对候选分组方案S2进行优化,则可以通 过该用户界面而返回步骤230,顺序执行随后的步骤,对候选分组方案S2 进行优化。

在具体实现中,可以重复执行步骤230—步骤270的过程,直到用户获 得满意的分组方案。

用户可以根据最终获得的分组方案中的每个组,定义一个的项目范围, 由此定义各个优化了的项目范围。

以上说明了本发明的辅助确定项目范围的方法的各种实施方式。按照同 一个发明构思,本发明也提供一种辅助确定项目范围的装置。图7例示按照 本发明实施例的辅助确定项目范围的装置700的框图。如图所示,装置700 包含:数据获取与分析模块710、初始分组模块720、关系约束接收模块730、 更新模块740、组合指标计算模块750、显示模块760。

数据获取与分析模块710被配置得用于获取多个需求、需求之间的依赖 关系和需求约束。

如前文所述,可以从一个需求数据库中获取多个需求、需求之间的依赖 关系和需求约束。

初始分组模块720被配置得用于根据需求之间的依赖关系生成第一分组 方案,其中,将所述多个需求划分为一个或多个组,具有依赖关系的需求分 在同一个组中。

关系约束接收模块730被配置得用于接收用户定义的关系约束。

更新模块740被配置得被配置得用于基于第一分组方案,生成满足用户 定义的关系约束的候选分组方案的集合,其中,候选分组方案的集合中的每 个候选分组方案包含一个或多个组。

组合指标计算模块750被配置得用于根据需求约束,计算候选分组方案 的集合中的候选分组方案的组合指标。

显示模块760被配置得用于显示候选分组方案的集合中的候选分组方案 以及对应的组合指标。

按照本发明一个实施例,关系约束包含以下的至少之一:

包含性约束,指的是要将一个需求与另一个需求划分在同一个组中 的要求;和

排斥性约束,指的是不要将一个需求与另一个需求划分在同一个组 中的要求和/或不要将某需求划分在某组中的要求。

按照本发明一个实施例,更新模块被配置得响应于对用户定义的关系约 束中有包含性约束和排斥性约束的确定,基于第一分组方案生成满足包含性 约束的第二分组方案,基于第二分组方案生成满足排斥性约束的候选分组方 案的集合。

按照本发明一个实施例,更新模块被配置得响应于对用户定义的关系约 束中只有包含性约束的确定,基于第一分组方案生成满足包含性约束的第二 分组方案,作为所述候选分组方案的集合。

按照本发明一个实施例,更新模块被配置得响应于对用户定义的关系约 束中只有排斥性约束的确定,基于第一分组方案生成满足排斥性约束的第二 分组方案,作为所述候选分组方案的集合。

按照本发明一个实施例,需求之间的依赖关系包含需求之间的直接依赖 关系。

按照本发明一个实施例,所述多个需求是针对已有的不同应用的变更请 求,需求之间的依赖关系还包含需求之间的间接依赖关系,其中,所述装置 进一步包含:

用于获取所述多个需求所针对的应用之间的依赖关系的装置;和

用于根据所述多个需求所针对的应用之间的依赖关系导出所述多个 需求中任意两个需求之间的间接依赖关系的装置。

如前文所述,可以从一个应用存储库中获取应用之间的依赖关系。

按照本发明一个实施例,候选分组方案的组合指标,包括以下的一项或 多项:

该候选分组方案包含的组的个数;

该候选分组方案中每个组的总工作量;

该候选分组方案中每个组的总价值;

该候选分组方案中每个组的最晚期限。

以上说明了本发明的辅助确定项目范围的装置的实施例。在对辅助确定 项目范围的装置的实施例的描述中,省略了与对辅助确定项目范围的方法的 描述中重复的内容,或者能够从上述对辅助确定项目范围的方法的描述中导 出的内容。

附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和 计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或 框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、 程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行 指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以 以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本 并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。 也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的 方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实 现,或者可以用专用硬件与计算机指令的组合来实现。

以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽 性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范 围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更 都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原 理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技 术人员能理解本文披露的各实施例。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号