輔助確定項目范圍的方法和裝置制造方法
【專利摘要】本發(fā)明公開了一種輔助確定項目范圍的方法和裝置,該方法包含:獲取多個需求、需求之間的依賴關(guān)系和需求約束;根據(jù)需求之間的依賴關(guān)系生成第一分組方案,其中,將所述多個需求劃分為一個或多個組,具有依賴關(guān)系的需求分在同一個組中;接收用戶定義的關(guān)系約束;基于第一分組方案,生成滿足用戶定義的關(guān)系約束的候選分組方案的集合,其中,候選分組方案的集合中的每個候選分組方案包含一個或多個組;根據(jù)需求約束,計算候選分組方案的集合中的每個候選分組方案的組合指標(biāo);顯示候選分組方案的集合中的候選分組方案以及對應(yīng)的組合指標(biāo)。
【專利說明】輔助確定項目范圍的方法和裝置
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及信息技術(shù),更具體地,涉及計算機(jī)實現(xiàn)的輔助確定項目范圍的工具。
【背景技術(shù)】
[0002] 現(xiàn)代企業(yè)的業(yè)務(wù)得到許多相互依賴的軟件應(yīng)用的支持。對已有應(yīng)用的變更的 需求,是持續(xù)不斷的,這些需求來自方方面面:業(yè)務(wù)創(chuàng)新、技術(shù)革新、缺陷修正(defect fixing)等。各種對變更的需求之間往往存在復(fù)雜的相互依賴關(guān)系。一方面,兩個需求之間 可能存在直接依賴關(guān)系;另一方面,由于應(yīng)用之間存在相互依賴的關(guān)系,針對不同應(yīng)用的需 求之間因此存在間接依賴關(guān)系。
[0003] 對于有許多應(yīng)用的企業(yè)來說,這樣的變更需求的數(shù)量往往很大,例如數(shù)以千計。為 這些需求確定需要開展的項目,優(yōu)化項目的范圍,是一種繁重艱難的工作。這是因為,在定 義項目范圍時,既要考慮需求之間的依賴關(guān)系,又要滿足對需求的約束。此外,不同專家和 項目管理人員的知識、經(jīng)驗和習(xí)慣不同,人工確定項目范圍往往導(dǎo)致在優(yōu)先順序、需求約束 和需求關(guān)系等方面的沖突。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明的一個目的是提供一種輔助確定項目范圍的計算機(jī)實現(xiàn)的工具。
[0005] 根據(jù)本發(fā)明的一個方面,提供一種輔助確定項目范圍的方法,包含:獲取多個需 求、需求之間的依賴關(guān)系和需求約束;根據(jù)需求之間的依賴關(guān)系生成第一分組方案,其中, 將所述多個需求劃分為一個或多個組,具有依賴關(guān)系的需求分在同一個組中;接收用戶定 義的關(guān)系約束;基于第一分組方案,生成滿足用戶定義的關(guān)系約束的候選分組方案的集合, 其中,候選分組方案的集合中的每個候選分組方案包含一個或多個組;根據(jù)需求約束,計算 候選分組方案的集合中的每個候選分組方案的組合指標(biāo);顯示候選分組方案的集合中的候 選分組方案以及對應(yīng)的組合指標(biāo)。
[0006] 另一方面,提供一種輔助確定項目范圍的裝置,包含:數(shù)據(jù)獲取與分析模塊,被配 置得用于獲取多個需求、需求之間的依賴關(guān)系和需求約束;初始分組模塊,被配置得用于根 據(jù)需求之間的依賴關(guān)系生成第一分組方案,其中,將所述多個需求劃分為一個或多個組,具 有依賴關(guān)系的需求分在同一個組中;關(guān)系約束接收模塊,被配置得用于接收用戶定義的關(guān) 系約束;更新模塊,被配置得用于基于第一分組方案,生成滿足用戶定義的關(guān)系約束的候選 分組方案的集合,其中,候選分組方案的集合中的每個候選分組方案包含一個或多個組;組 合指標(biāo)計算模塊,被配置得用于根據(jù)需求約束,計算候選分組方案的集合中的候選分組方 案的組合指標(biāo);顯示模塊,被配置得用于顯示候選分組方案的集合中的候選分組方案以及 對應(yīng)的組合指標(biāo)。
[0007] 采用本發(fā)明提供的系統(tǒng)化的輔助工具,有助于提高軟件開發(fā)的項目管理人員的工 作效率,減少確定項目范圍、優(yōu)化項目范圍時的工作量。
【專利附圖】
【附圖說明】
[0008] 通過結(jié)合附圖對本公開示例性實施方式進(jìn)行更詳細(xì)的描述,本公開的上述以及其 它目的、特征和優(yōu)勢將變得更加明顯,其中,在本公開示例性實施方式中,相同的參考標(biāo)號 通常代表相同部件。
[0009] 圖1示出了適于用來實現(xiàn)本發(fā)明實施方式的示例性計算機(jī)系統(tǒng)/服務(wù)器12的框 圖;
[0010] 圖2示出了按照本發(fā)明實施例的輔助確定項目范圍的方法的流程圖;
[0011] 圖3例示按照本發(fā)明實施例生成的第一分組方案;
[0012] 圖4例示按照本發(fā)明實施例生成的第二分組方案;
[0013] 圖5例示按照本發(fā)明實施例生成的候選分組方案的集合;
[0014] 圖6例示按照本發(fā)明實施例計算的圖5所示候選分組方案的集合中的候選分組方 案的組合指標(biāo)的表;
[0015] 圖7示出了按照本發(fā)明實施例的輔助確定項目范圍的裝置的框圖。
【具體實施方式】
[0016] 下面將參照附圖更詳細(xì)地描述本公開的優(yōu)選實施方式。雖然附圖中顯示了本公開 的優(yōu)選實施方式,然而應(yīng)該理解,可以以各種形式實現(xiàn)本公開而不應(yīng)被這里闡述的實施方 式所限制。相反,提供這些實施方式是為了使本公開更加透徹和完整,并且能夠?qū)⒈竟_的 范圍完整地傳達(dá)給本領(lǐng)域的技術(shù)人員。
[0017] 所屬【技術(shù)領(lǐng)域】的技術(shù)人員知道,本發(fā)明可以實現(xiàn)為系統(tǒng)、方法或計算機(jī)程序產(chǎn)品。 因此,本公開可以具體實現(xiàn)為以下形式,即:可以是完全的硬件、也可以是完全的軟件(包括 固件、駐留軟件、微代碼等),還可以是硬件和軟件結(jié)合的形式,本文一般稱為"電路"、"模 塊"或"系統(tǒng)"。此外,在一些實施例中,本發(fā)明還可以實現(xiàn)為在一個或多個計算機(jī)可讀介質(zhì) 中的計算機(jī)程序產(chǎn)品的形式,該計算機(jī)可讀介質(zhì)中包含計算機(jī)可讀的程序代碼。
[0018] 可以采用一個或多個計算機(jī)可讀的介質(zhì)的任意組合。計算機(jī)可讀介質(zhì)可以是計 算機(jī)可讀信號介質(zhì)或者計算機(jī)可讀存儲介質(zhì)。計算機(jī)可讀存儲介質(zhì)例如可以是一但不限 于一電、磁、光、電磁、紅外線、或半導(dǎo)體的系統(tǒng)、裝置或器件,或者任意以上的組合。計算 機(jī)可讀存儲介質(zhì)的更具體的例子(非窮舉的列表)包括:具有一個或多個導(dǎo)線的電連接、便 攜式計算機(jī)磁盤、硬盤、隨機(jī)存取存儲器(RAM)、只讀存儲器(ROM)、可擦式可編程只讀存儲 器(EPROM或閃存)、光纖、便攜式緊湊磁盤只讀存儲器(CD-ROM)、光存儲器件、磁存儲器件、 或者上述的任意合適的組合。在本文件中,計算機(jī)可讀存儲介質(zhì)可以是任何包含或存儲程 序的有形介質(zhì),該程序可以被指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用。
[0019] 計算機(jī)可讀的信號介質(zhì)可以包括在基帶中或者作為載波一部分傳播的數(shù)據(jù)信號, 其中承載了計算機(jī)可讀的程序代碼。這種傳播的數(shù)據(jù)信號可以采用多種形式,包括一但 不限于一電磁信號、光信號或上述的任意合適的組合。計算機(jī)可讀的信號介質(zhì)還可以是 計算機(jī)可讀存儲介質(zhì)以外的任何計算機(jī)可讀介質(zhì),該計算機(jī)可讀介質(zhì)可以發(fā)送、傳播或者 傳輸用于由指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用的程序。
[0020] 計算機(jī)可讀介質(zhì)上包含的程序代碼可以用任何適當(dāng)?shù)慕橘|(zhì)傳輸,包括--但不限 于--無線、電線、光纜、RF等等,或者上述的任意合適的組合。
[0021] 可以以一種或多種程序設(shè)計語言或其組合來編寫用于執(zhí)行本發(fā)明操作的計算機(jī) 程序代碼,所述程序設(shè)計語言包括面向?qū)ο蟮某绦蛟O(shè)計語言一諸如Java、Smalltalk、C++, 還包括常規(guī)的過程式程序設(shè)計語言一諸如" C"語言或類似的程序設(shè)計語言。程序代碼可以 完全地在用戶計算機(jī)上執(zhí)行、部分地在用戶計算機(jī)上執(zhí)行、作為一個獨立的軟件包執(zhí)行、部 分在用戶計算機(jī)上部分在遠(yuǎn)程計算機(jī)上執(zhí)行、或者完全在遠(yuǎn)程計算機(jī)或服務(wù)器上執(zhí)行。在 涉及遠(yuǎn)程計算機(jī)的情形中,遠(yuǎn)程計算機(jī)可以通過任意種類的網(wǎng)絡(luò)--包括局域網(wǎng)(LAN)或 廣域網(wǎng)(WAN)-連接到用戶計算機(jī),或者,可以連接到外部計算機(jī)(例如利用因特網(wǎng)服務(wù)提 供商來通過因特網(wǎng)連接)。
[0022] 下面將參照本發(fā)明實施例的方法、裝置(系統(tǒng))和計算機(jī)程序產(chǎn)品的流程圖和/或 框圖描述本發(fā)明。應(yīng)當(dāng)理解,流程圖和/或框圖的每個方框以及流程圖和/或框圖中各方 框的組合,都可以由計算機(jī)程序指令實現(xiàn)。這些計算機(jī)程序指令可以提供給通用計算機(jī)、專 用計算機(jī)或其它可編程數(shù)據(jù)處理裝置的處理器,從而生產(chǎn)出一種機(jī)器,這些計算機(jī)程序指 令通過計算機(jī)或其它可編程數(shù)據(jù)處理裝置執(zhí)行,產(chǎn)生了實現(xiàn)流程圖和/或框圖中的方框中 規(guī)定的功能/操作的裝置。
[0023] 也可以把這些計算機(jī)程序指令存儲在能使得計算機(jī)或其它可編程數(shù)據(jù)處理裝置 以特定方式工作的計算機(jī)可讀介質(zhì)中,這樣,存儲在計算機(jī)可讀介質(zhì)中的指令就產(chǎn)生出一 個包括實現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的指令裝置(instruction means)的制造品(manufacture)。
[0024] 也可以把計算機(jī)程序指令加載到計算機(jī)、其它可編程數(shù)據(jù)處理裝置、或其它設(shè)備 上,使得在計算機(jī)、其它可編程數(shù)據(jù)處理裝置或其它設(shè)備上執(zhí)行一系列操作步驟,以產(chǎn)生計 算機(jī)實現(xiàn)的過程,從而使得在計算機(jī)或其它可編程裝置上執(zhí)行的指令能夠提供實現(xiàn)流程圖 和/或框圖中的方框中規(guī)定的功能/操作的過程。
[0025] 圖1示出了適于用來實現(xiàn)本發(fā)明實施方式的示例性計算機(jī)系統(tǒng)/服務(wù)器12的框 圖。圖1顯示的計算機(jī)系統(tǒng)/服務(wù)器12僅僅是一個示例,不應(yīng)對本發(fā)明實施例的功能和使 用范圍帶來任何限制。
[0026] 如圖1所示,計算機(jī)系統(tǒng)/服務(wù)器12以通用計算設(shè)備的形式表現(xiàn)。計算機(jī)系統(tǒng) /服務(wù)器12的組件可以包括但不限于:一個或者多個處理器或者處理單元16,系統(tǒng)存儲器 28,連接不同系統(tǒng)組件(包括系統(tǒng)存儲器28和處理單元16)的總線18。
[0027] 總線18表示幾類總線結(jié)構(gòu)中的一種或多種,包括存儲器總線或者存儲器控制器, 外圍總線,圖形加速端口,處理器或者使用多種總線結(jié)構(gòu)中的任意總線結(jié)構(gòu)的局域總線。舉 例來說,這些體系結(jié)構(gòu)包括但不限于工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu)(ISA)總線,微通道體系結(jié)構(gòu)(MAC) 總線,增強(qiáng)型ISA總線、視頻電子標(biāo)準(zhǔn)協(xié)會(VESA)局域總線以及外圍組件互連(PCI)總線。
[0028] 計算機(jī)系統(tǒng)/服務(wù)器12典型地包括多種計算機(jī)系統(tǒng)可讀介質(zhì)。這些介質(zhì)可以是 任何能夠被計算機(jī)系統(tǒng)/服務(wù)器12訪問的可用介質(zhì),包括易失性和非易失性介質(zhì),可移動 的和不可移動的介質(zhì)。
[0029] 系統(tǒng)存儲器28可以包括易失性存儲器形式的計算機(jī)系統(tǒng)可讀介質(zhì),例如隨機(jī)存 取存儲器(RAM)30和/或高速緩存存儲器32。計算機(jī)系統(tǒng)/服務(wù)器12可以進(jìn)一步包括其 它可移動/不可移動的、易失性/非易失性計算機(jī)系統(tǒng)存儲介質(zhì)。僅作為舉例,存儲系統(tǒng)34 可以用于讀寫不可移動的、非易失性磁介質(zhì)(圖1未顯示,通常稱為"硬盤驅(qū)動器")。盡管圖 1中未示出,可以提供用于對可移動非易失性磁盤(例如"軟盤")讀寫的磁盤驅(qū)動器,以及對 可移動非易失性光盤(例如⑶-ROM,DVD-ROM或者其它光介質(zhì))讀寫的光盤驅(qū)動器。在這些 情況下,每個驅(qū)動器可以通過一個或者多個數(shù)據(jù)介質(zhì)接口與總線18相連。存儲器28可以 包括至少一個程序產(chǎn)品,該程序產(chǎn)品具有一組(例如至少一個)程序模塊,這些程序模塊被 配置以執(zhí)行本發(fā)明各實施例的功能。
[0030] 具有一組(至少一個)程序模塊42的程序/實用工具40,可以存儲在例如存儲器 28中,這樣的程序模塊42包括--但不限于--操作系統(tǒng)、一個或者多個應(yīng)用程序、其它 程序模塊以及程序數(shù)據(jù),這些示例中的每一個或某種組合中可能包括網(wǎng)絡(luò)環(huán)境的實現(xiàn)。程 序模塊42通常執(zhí)行本發(fā)明所描述的實施例中的功能和/或方法。
[0031] 計算機(jī)系統(tǒng)/服務(wù)器12也可以與一個或多個外部設(shè)備14 (例如鍵盤、指向設(shè)備、 顯示器24等)通信,還可與一個或者多個使得用戶能與該計算機(jī)系統(tǒng)/服務(wù)器12交互的設(shè) 備通信,和/或與使得該計算機(jī)系統(tǒng)/服務(wù)器12能與一個或多個其它計算設(shè)備進(jìn)行通信的 任何設(shè)備(例如網(wǎng)卡,調(diào)制解調(diào)器等等)通信。這種通信可以通過輸入/輸出(I/O)接口 22 進(jìn)行。并且,計算機(jī)系統(tǒng)/服務(wù)器12還可以通過網(wǎng)絡(luò)適配器20與一個或者多個網(wǎng)絡(luò)(例如 局域網(wǎng)(LAN),廣域網(wǎng)(WAN)和/或公共網(wǎng)絡(luò),例如因特網(wǎng))通信。如圖所示,網(wǎng)絡(luò)適配器20 通過總線18與計算機(jī)系統(tǒng)/服務(wù)器12的其它模塊通信。應(yīng)當(dāng)明白,盡管圖中未示出,可以 結(jié)合計算機(jī)系統(tǒng)/服務(wù)器12使用其它硬件和/或軟件模塊,包括但不限于:微代碼、設(shè)備驅(qū) 動器、冗余處理單元、外部磁盤驅(qū)動陣列、RAID系統(tǒng)、磁帶驅(qū)動器以及數(shù)據(jù)備份存儲系統(tǒng)等。
[0032] 本發(fā)明的方法和裝置可以在圖1所示的計算機(jī)系統(tǒng)12上實現(xiàn)。
[0033] 本發(fā)明的基本構(gòu)思是,針對大量例如變更請求之類的需求,通過系統(tǒng)化的人機(jī)相 互的過程,按照一定的優(yōu)先順序,基于需求之間的關(guān)系和需求約束對需求進(jìn)行聚類,由此生 成可以用來確定項目范圍的一個或多個需求組。
[0034] 下面說明本發(fā)明的各種實施方式。首先參看圖2,圖2示出了按照本發(fā)明實施例的 輔助確定項目范圍的方法的流程圖。
[0035] 圖2所示的方法流程始于步驟210。在步驟210,獲取多個需求、需求之間的依賴 關(guān)系和需求約束(requirement constraints) 〇
[0036] 在本發(fā)明的上下文中,"需求"也指的是變更請求,例如對一個IT應(yīng)用(以下簡稱 "應(yīng)用")的變更請求。一個需求與另一個需求之間往往存在直接依賴關(guān)系。例如,需求1是 "修改數(shù)據(jù)庫DB-2的一個數(shù)據(jù)庫表",需求3是"基于數(shù)據(jù)庫DB-2制作一個數(shù)據(jù)報表"。在 這種情況下,需求1與需求3之間存在直接依賴關(guān)系,需求3依賴于需求1,因為要先修改數(shù) 據(jù)庫表,然后才能基于修改的數(shù)據(jù)庫表制作報表。此外,一個需求與另一個需求之間也可能 存在間接依賴關(guān)系。例如,如果需求1針對的是應(yīng)用1,需求2針對的是應(yīng)用2,而應(yīng)用1與 應(yīng)用2之間存在依賴關(guān)系,則需求1與需求2之間則因為它們分別與應(yīng)用1和應(yīng)用2的關(guān) 系而存在依賴關(guān)系,這種關(guān)系稱為間接依賴關(guān)系。
[0037] 如果兩個需求之間存在直接依賴關(guān)系和/或間接依賴關(guān)系,則他們之間存在依賴 關(guān)系。
[0038] 在項目管理領(lǐng)域,在描述需求的屬性中,有一類屬性定義對需求的約束,包括工作 量約束、期限約束、價值約束等等。例如,某個需求的工作量是30人天、完成期限是9月13 日、價值是1萬美元等等。在本說明書中,將這種約束稱作"需求約束",在上下文清楚的情 況下,也簡稱為"約束"。
[0039] 在項目管理實踐中,通常要對需求進(jìn)行預(yù)處理,生成預(yù)定格式的需求描述和相關(guān) 數(shù)據(jù),并將它們存儲在一個需求存儲庫(未予示出)。步驟210可以從需求存儲庫中獲取需 求、需求之間的依賴關(guān)系和需求約束。
[0040] 為了方便以下的說明,假設(shè)在步驟210中獲取了 9個需求(需求1、需求2、…需求 9),記為R= {rl,r2,…r9},其中大寫字母R表示一個需求集合,小寫字母r表示需求,例如 rl表示需求1。此外,還假設(shè)在步驟210中獲取了這9個需求之間存在的依賴關(guān)系,例如 "r3依賴于rl";每個需求的需求約束,例如"rl所需的工作量是30人天"。然后,過程繼續(xù) 到步驟220。
[0041] 在步驟220,根據(jù)需求之間的依賴關(guān)系生成第一分組方案,其中,將所述多個需求 劃分為一個或多個組,具有依賴關(guān)系的需求分在同一個組中。步驟220也稱初始分組步驟。
[0042] 圖3例示按照本發(fā)明實施例生成的第一分組方案。該圖用兩個連通圖301和302 表示步驟220生成的第一分組方案。連通圖中的一個節(jié)點表示一個需求,節(jié)點之間的有向 邊表示需求之間的依賴關(guān)系。例如,連通圖301中,節(jié)點1表示rl,從節(jié)點3到節(jié)點1的有向 邊,表示r3依賴于rl。圖3表示,在本例中,按照步驟220生成的第一分組方案,需求rl,… r9被劃分為兩個組:第一組包含5個需求,記為G301={rl,r2, r3, r7, r8},其中,"G301"表 示連通圖301表示的組;第二組包含4個需求,記為G302= {r4, r5, r6, r9},其中,"G302"表 示連通圖302表示的組。
[0043] 圖3中也表示了其它需求之間的依賴關(guān)系,即r3依賴于r2, r5依賴于r4和r9, r6依賴于r5, r7和r8都依賴于r3。這些依賴關(guān)系都是在步驟210獲取的。如圖3所示, 具有依賴關(guān)系的需求被分在同一個組中。
[0044] 需要指出的是,雖然在圖3中是用連通圖表示第一分組方案中的各個組的,但是 這僅僅是個示例,所屬【技術(shù)領(lǐng)域】的技術(shù)人員顯然明白,可以采用適合計算機(jī)處理的其它形 式(例如鏈接表)來表不第一分組方案中的各個組及其相關(guān)數(shù)據(jù)。
[0045] 按照本發(fā)明一個實施例,需求之間的依賴關(guān)系包含需求之間的直接依賴關(guān)系。如 上文所述,可以從需求存儲庫中獲取需求之間的直接依賴關(guān)系。
[0046] 按照本發(fā)明一個實施例,所述多個需求是針對已有的不同應(yīng)用的變更請求,需求 之間的依賴關(guān)系還包含需求之間的間接依賴關(guān)系,如圖所示,在這種情況下,該方法可以進(jìn) 一步包含:
[0047] 步驟211,獲取所述多個需求所針對的應(yīng)用之間的依賴關(guān)系;和
[0048] 步驟212,根據(jù)所述多個需求所針對的應(yīng)用之間的依賴關(guān)系,導(dǎo)出所述多個需求中 任意兩個需求之間的間接依賴關(guān)系。
[0049] 例如,需求1針對的是應(yīng)用1,需求2針對的是應(yīng)用2。此時,在步驟220中生成第 一分組方案所根據(jù)的依賴關(guān)系,可以既包括直接依賴關(guān)系,又包括間接依賴關(guān)系。
[0050] 在實踐中,步驟211和步驟212可以與步驟210集成在一個步驟中,也可以在步驟 210之后執(zhí)行。在項目管理實踐中,通常把預(yù)定格式的應(yīng)用描述和應(yīng)用之間的關(guān)系描述等數(shù) 據(jù),存儲在一個應(yīng)用存儲庫(未予示出)中。可以從應(yīng)用存儲庫中獲取應(yīng)用和應(yīng)用之間的關(guān) 系描述,例如獲取應(yīng)用1和應(yīng)用2之間的關(guān)系。
[0051] 如果應(yīng)用1和應(yīng)用2之間存在依賴關(guān)系,則認(rèn)為需求1與需求2之間存在間接依 賴關(guān)系,例如,如果應(yīng)用1依賴于應(yīng)用2,則可以導(dǎo)出需求1依賴于需求2。
[0052] 在步驟230,接收用戶定義的關(guān)系約束(relationship constraints)。
[0053] 按照本發(fā)明一個實施例,關(guān)系約束包含以下的至少之一:
[0054] 1、包含性(inclusive)約束,指的是要將一個需求與另一個需求劃分在同一個組 中的要求。例如,"如果rl和r2在一組中,則r6必須在同一組中";"rl與r6必須在同一 組中",等等。在確定項目范圍的實際應(yīng)用中,包含性約束"rl與r6必須在同一組中"可能 意味著,用戶希望將需求rl和r6包含在同一個項目中。
[0055] 2、排斥性(exclusive)約束,指的是不要將一個需求與另一個需求劃分在同一個 組中的要求和/或不要將某需求劃分在某一組或多組中的要求。例如"如果r2和r3在一 組中,則r5不能在同一組中";"r2與r5不能在同一組中";"r7不要在第1組和第2組中" 等等。在確定項目范圍的實際應(yīng)用中,排斥性約束"r2與r5不能在同一組中"可能意味著, 用戶希望在同一個項目中不要同時包含需求r2和r5。
[0056] 需要指出的是,用戶定義的關(guān)系約束,用戶定義的關(guān)系約束是用戶定義的指示要 在某組中包含某需求的需求,以及/或者要在某一組或多組中排除某需求的要求,包括一 但不限于一包含性約束和/或排斥性約束,是用戶(例如項目管理人員)為了確定項目范圍 而對需求進(jìn)行分組時對需求提出的額外約束條件,與在步驟210獲取的需求約束相比,具 有更高的優(yōu)先級。
[0057] 所屬【技術(shù)領(lǐng)域】的技術(shù)人員應(yīng)當(dāng)明白,可以用各種方式接收用戶定義的關(guān)系約束。 例如,可以通過人機(jī)交互的方式獲取關(guān)系約束,即在運行本發(fā)明實施例的方法的計算機(jī)顯 示器上,顯示一個用戶界面(UI),其中,以某種方式顯示在步驟220生成的第一分組方案, 提示用戶在Π 的輸入?yún)^(qū),針對第一分組方案,按照預(yù)先規(guī)定的計算機(jī)可識別的格式,輸入 關(guān)系約束,例如包含性約束和/或排斥性約束,由此從用戶接收關(guān)系約束。當(dāng)然,也可以把 關(guān)系約束以計算機(jī)可讀的形式預(yù)先存儲在需求存儲庫中,在步驟210中或之后,從需求存 儲庫中獲取用戶定義的關(guān)系約束。
[0058] 在步驟230后,執(zhí)行步驟240。
[0059] 在步驟240,基于第一分組方案,生成滿足用戶定義的關(guān)系約束的候選分組方案的 集合,其中,候選分組方案的集合中的每個候選分組方案包含一個或多個組。
[0060] 用戶定義的關(guān)系約束,可以只有包含性約束或者只有排斥性約束,也可以二者兼 有。本發(fā)明實施例的方法要進(jìn)行對關(guān)系約束中是否有包含性約束的確定,也要進(jìn)行對關(guān)系 約束中是否有排斥性約束的確定。根據(jù)關(guān)系約束包含的內(nèi)容,在步驟240中可以采取相對 應(yīng)的處理。
[0061] 按照本發(fā)明一個實施例,關(guān)系約束包括包含性約束和排斥性約束,所述基于第一 分組方案生成滿足用戶定義的關(guān)系約束的候選分組方案的集合包含:基于第一分組方案生 成滿足包含性約束的第二分組方案;基于第二分組方案生成滿足排斥性約束的候選分組方 案的集合。
[0062] 首先,基于第一分組方案生成滿足包含性約束的第二分組方案。參看圖4,該圖例 示按照本發(fā)明實施例生成的第二分組方案。具體來說,假設(shè)用戶定義的包含性約束是"如果 rl和r2在同一組中,則r6必須在同一組中",則執(zhí)行步驟240的結(jié)果如圖4所示。如圖所 示,為了滿足"如果rl和r2在同一組中,則r6必須在同一組中"這個要求,可以通過合并 第一分組方案的組G301和G302,生成滿足包含性約束的第二分組方案,第二分組方案中只 有一個組G401,由圖4中的連通圖401表示。在圖4中,節(jié)點1與節(jié)點6之間的虛線,表示 需求rl和需求r6之間具有包含(include)關(guān)系,S卩,按照包含性約束,rl和r6要被包含在 同一個組中。同樣,節(jié)點2與節(jié)點6之間的虛線,表示r2和r6要被包含在同一個組中。 [0063] 顯然,第二分組方案也包含一個或多個分組,它們是從第一分組方案的一個或多 個分組衍生的。
[0064] 然后,基于第二分組方案生成滿足排斥性約束的候選分組方案的集合。
[0065] 假設(shè)用戶定義的排斥性約束是"如果r2和r3在一組中,則r5不能在同一組中", 則執(zhí)行"基于第二分組方案生成滿足排斥性約束的候選分組方案的集合"的結(jié)果如圖5所 示。圖5例示按照本發(fā)明實施例生成的候選分組方案的集合。
[0066] 圖5所示的候選分組方案的集合S,包含三個候選分組方案SI、S2和S3。候選分組 方案Sl包含三個組S1G1、S1G2和S1G3,記為S1={S1G1,S1G2, S1G3},其中,組SlGl包含需 求 rl、r3、r7 和 r8,記為 SlGl=Irl, r3, r7, r8}。類似地,SlG2={r2},SlG3={r4, r5, r6, r9}。
[0067] 候選分組方案S2包含兩個組,類似地,可以記為:
[0068] S2={S2G1, S2G2};
[0069] S2G1= {rl, r2, r3, r6, r7, r8};
[0070] S2G2={r4, r5, r9} 〇
[0071] 候選分組方案S2包含三個組,類似地,可以記為:
[0072] S3={S3G1, S3G2, S3G3};
[0073] S3Gl={rl};
[0074] S3G2={r2, r3, r7, r8};
[0075] S3G3= {r4, r5, r6, r9} 〇
[0076] 步驟230和步驟240的先后順序,表明對用戶定義的關(guān)系約束的考慮的優(yōu)先級, 高于對需求之間的依賴關(guān)系的考慮。在步驟240中,先生成基于第一分組方案生成滿足包 含性約束的第二分組方案,再基于第二分組方案生成滿足排斥性約束的候選分組方案的集 合、即基于圖4所示的分組方案生成圖5所示的候選分組方案的集合,表明對排斥性約束的 考慮的優(yōu)先級高于對包含性約束的考慮。
[0077] 以上描述的是關(guān)系約束中既有包含性約束又有排斥性約束時的處理方式。在實際 應(yīng)用中,可能存在關(guān)系約束中只有排斥性約束和包含性約束其中之一的情形。
[0078] 按照本發(fā)明一個實施例,關(guān)系約束只包括包含性約束,所述基于第一分組方案生 成滿足用戶定義的關(guān)系約束的候選分組方案的集合包含:
[0079] 基于第一分組方案生成滿足包含性約束的第二分組方案,作為所述候選分組方案 的集合。
[0080] 在這個實施例中,例如,基于第一分組方案生成滿足包含性約束的第二分組方案 的過程,與上文描述的相同。不過,所生成第二分組方案將被作為候選分組方案,用于后續(xù) 步驟的處理。
[0081] 按照本發(fā)明一個實施例,關(guān)系約束只包含排斥性約束,所述基于第一分組方案生 成滿足用戶定義的關(guān)系約束的候選分組方案的集合包含:
[0082] 基于第一分組方案生成滿足排斥性約束的第二分組方案,作為所述候選分組方案 的集合。
[0083] 在這個實施例中,基于第一分組方案生成滿足排斥性約束的第二分組方案的過 程,與上文基于圖4所示的分組方案生成圖5所示的候選分組方案的集合的過程相同,因此 無需贅述。
[0084] 在步驟240后,已經(jīng)產(chǎn)生了候選分組方案的集合,其中的每個候選分組方案包含 一個或多個組。然后,過程前進(jìn)到步驟250。以下以圖5所示的候選分組方案的集合為例, 說明步驟240之后的過程。
[0085] 在步驟250,根據(jù)需求約束,計算候選分組方案的集合中候選分組方案的組合指標(biāo) (combined indicator)〇
[0086] 例如,假如在步驟210獲取的需求約束中,需求1 一9對應(yīng)的工作量、價值和最后期 限約束如下表1所示。
[0087] 表1 :工作量、價值和最后期限約束 [0088]
【權(quán)利要求】
1. 一種輔助確定項目范圍的方法,包含: 獲取多個需求、需求之間的依賴關(guān)系和需求約束; 根據(jù)需求之間的依賴關(guān)系生成第一分組方案,其中,將所述多個需求劃分為一個或多 個組,具有依賴關(guān)系的需求分在同一個組中; 接收用戶定義的關(guān)系約束; 基于第一分組方案,生成滿足用戶定義的關(guān)系約束的候選分組方案的集合,其中,候選 分組方案的集合中的每個候選分組方案包含一個或多個組; 根據(jù)需求約束,計算候選分組方案的集合中的候選分組方案的組合指標(biāo); 顯示候選分組方案的集合中的候選分組方案以及對應(yīng)的組合指標(biāo)。
2. 根據(jù)權(quán)利要求1的方法,其中,關(guān)系約束包含以下的至少之一: 包含性約束,指的是要將一個需求與另一個需求劃分在同一個組中的要求;和 排斥性約束,指的是不要將一個需求與另一個需求劃分在同一個組中的要求和/或不 要將某需求劃分在某組中的要求。
3. 根據(jù)權(quán)利要求2的方法,其中,關(guān)系約束包括包含性約束和排斥性約束,所述基于第 一分組方案生成滿足用戶定義的關(guān)系約束的候選分組方案的集合包含: 基于第一分組方案生成滿足包含性約束的第二分組方案; 基于第二分組方案生成滿足排斥性約束的候選分組方案的集合。
4. 根據(jù)權(quán)利要求2的方法,其中,關(guān)系約束只包括包含性約束,所述基于第一分組方案 生成滿足用戶定義的關(guān)系約束的候選分組方案的集合包含: 基于第一分組方案生成滿足包含性約束的第二分組方案,作為所述候選分組方案的集 合。
5. 根據(jù)權(quán)利要求2的方法,其中,關(guān)系約束只包含排斥性約束,所述基于第一分組方案 生成滿足用戶定義的關(guān)系約束的候選分組方案的集合包含: 基于第一分組方案生成滿足排斥性約束的第二分組方案,作為所述候選分組方案的集 合。
6. 根據(jù)權(quán)利要求1的方法,其中,需求之間的依賴關(guān)系包含需求之間的直接依賴關(guān)系。
7. 根據(jù)權(quán)利要求6的方法,其中,所述多個需求是針對已有的不同應(yīng)用的變更請求,需 求之間的依賴關(guān)系還包含需求之間的間接依賴關(guān)系,其中,所述方法進(jìn)一步包含: 獲取所述多個需求所針對的應(yīng)用之間的依賴關(guān)系;和 根據(jù)所述多個需求所針對的應(yīng)用之間的依賴關(guān)系,導(dǎo)出所述多個需求中任意兩個需求 之間的間接依賴關(guān)系。
8. 根據(jù)權(quán)利要求1的方法,其中,候選分組方案的組合指標(biāo),包括以下的一項或多項: 該候選分組方案包含的組的個數(shù); 該候選分組方案中每個組的總工作量; 該候選分組方案中每個組的總價值; 該候選分組方案中每個組的最晚期限。
9. 一種輔助確定項目范圍的裝置,包括: 數(shù)據(jù)獲取與分析模塊,被配置得用于獲取多個需求、需求之間的依賴關(guān)系和需求約 束; 初始分組模塊,被配置得用于根據(jù)需求之間的依賴關(guān)系生成第一分組方案,其中,將所 述多個需求劃分為一個或多個組,具有依賴關(guān)系的需求分在同一個組中; 關(guān)系約束接收模塊,被配置得用于接收用戶定義的關(guān)系約束; 更新模塊,被配置得用于基于第一分組方案,生成滿足用戶定義的關(guān)系約束的候選分 組方案的集合,其中,候選分組方案的集合中的每個候選分組方案包含一個或多個組; 組合指標(biāo)計算模塊,被配置得用于根據(jù)需求約束,計算候選分組方案的集合中的候選 分組方案的組合指標(biāo); 顯示模塊,被配置得用于顯示候選分組方案的集合中的候選分組方案以及對應(yīng)的組合 指標(biāo)。
10. 根據(jù)權(quán)利要求9的裝置,其中,關(guān)系約束包含以下的至少之一: 包含性約束,指的是要將一個需求與另一個需求劃分在同一個組中的要求;和 排斥性約束,指的是不要將一個需求與另一個需求劃分在同一個組中的要求和/或不 要將某需求劃分在某組中的要求。
11. 根據(jù)權(quán)利要求10的裝置,其中,更新模塊被配置得響應(yīng)于對用戶定義的關(guān)系約束 中有包含性約束和排斥性約束的確定,基于第一分組方案生成滿足包含性約束的第二分組 方案,基于第二分組方案生成滿足排斥性約束的候選分組方案的集合。
12. 根據(jù)權(quán)利要求10的裝置,其中,更新模塊被配置得響應(yīng)于對用戶定義的關(guān)系約束 中只有包含性約束的確定,基于第一分組方案生成滿足包含性約束的第二分組方案,作為 所述候選分組方案的集合。
13. 根據(jù)權(quán)利要求10的裝置,其中,更新模塊被配置得響應(yīng)于對用戶定義的關(guān)系約束 中只有排斥性約束的確定,基于第一分組方案生成滿足排斥性約束的第二分組方案,作為 所述候選分組方案的集合。
14. 根據(jù)權(quán)利要求9的裝置,其中,需求之間的依賴關(guān)系包含需求之間的直接依賴關(guān) 系。
15. 根據(jù)權(quán)利要求14的裝置,其中,所述多個需求是針對已有的不同應(yīng)用的變更請求, 需求之間的依賴關(guān)系還包含需求之間的間接依賴關(guān)系,所述裝置進(jìn)一步包含: 用于獲取所述多個需求所針對的應(yīng)用之間的依賴關(guān)系的裝置;和 用于根據(jù)所述多個需求所針對的應(yīng)用之間的依賴關(guān)系導(dǎo)出所述多個需求中任意兩個 需求之間的間接依賴關(guān)系的裝置。
16. 根據(jù)權(quán)利要求9的方法,其中,候選分組方案的組合指標(biāo),包括以下的一項或多項: 該候選分組方案包含的組的個數(shù); 該候選分組方案中每個組的總工作量; 該候選分組方案中每個組的總價值; 該候選分組方案中每個組的最晚期限。
【文檔編號】G06Q10/06GK104424525SQ201310386713
【公開日】2015年3月18日 申請日期:2013年8月30日 優(yōu)先權(quán)日:2013年8月30日
【發(fā)明者】C·科齊, S·M·卡根, 李峰, 周欣, 黨亞斌, 陳昊, 李少春, H·M·赫斯 申請人:國際商業(yè)機(jī)器公司