[基于生命周期的軟件項目知識管理模型研究] 項目生命周期模型
發(fā)布時間:2020-03-07 來源: 幽默笑話 點擊:
[摘要]從項目知識生成過程和應用過程出發(fā),分析軟件生命周期各階段知識構成,應用系統(tǒng)工程理論,提出面向時間維、管理維和知識維的三維項目知識管理模型構架,實現(xiàn)項目知識的有效劃分和集成;建立基于生命周期的軟件項目知識管理模型和知識地圖,解決項目開發(fā)過程中知識流失和知識檢索效率低以及在龐大的知識庫中難以找到與主題密切相關知識的問題。提出知識有效度測度模型,為識別項目知識的可用性提供一種新方法。案例表明,該模型能提高軟件項目知識管理系統(tǒng)的開發(fā)和使用效率。
[關鍵詞]軟件項目 軟件項目生命周期 知識管理模型
[分類號]F270.7
1 引言
知識管理是一種系統(tǒng)化的特定組織過程,它提供了一種知識在組織內如何被組織和使用的管理框架。軟件項目知識管理是一項復雜的系統(tǒng)工程,從知識的構成來看,不僅包括軟件產品業(yè)務領域的知識,還包括項目管理領域的知識以及計算機軟硬件知識;從項目的知識載體來看,既有結構化程度較高的電子數(shù)據信息,也有非結構化的文檔信息,如系統(tǒng)需求分析報告、系統(tǒng)設計說明書等;從知識管理的環(huán)節(jié)來看,包括知識的獲取、檢驗、存儲、使用、共享、查詢和創(chuàng)新,這些都給軟件項目知識管理增加了難度。同時,軟件企業(yè)往往在項目結束、總結項目經驗、構建項目知識庫時,對于較長生命周期的軟件項目知識,經常遺忘或流失,尤其是項目生命周期早期階段形成的知識,F(xiàn)有的項目知識管理系統(tǒng)存在許多缺陷,如知識庫規(guī)模龐大,關系復雜,項目背景知識難以搜索等。軟件項目知識來源于項目的開發(fā)與應用過程,項目知識管理必須以系統(tǒng)論為指導,采用不同技術方法促進整個流轉過程的順利進行。本文提出的基于生命周期的軟件項目知識管理模型將能克服以上缺陷,實現(xiàn)知識快速查詢和重用,具有重要的現(xiàn)實意義。
2 軟件項目生命周期及知識構成
2.1 軟件項目生命周期
軟件項目生命周期指從項目立項、開發(fā)、應用到項目退出以及新系統(tǒng)開發(fā)的全過程,本文將軟件項目生命周期劃分為項目立項、系統(tǒng)規(guī)劃、系統(tǒng)分析、系統(tǒng)設計、系統(tǒng)實施、系統(tǒng)運行維護和系統(tǒng)評價7個階段,按照各階段知識特征以及關聯(lián)的緊密程度,可以概括為軟件項目招投標、軟件項目開發(fā)和項目運行維護等三個主要階段,各個階段的邏輯順序關系如圖1所示:
軟件經過若干年應用,隨著技術的進步、組織業(yè)務的變遷,經過系統(tǒng)評價后,不再滿足當前業(yè)務的需要,將開始新的項目開發(fā)請求,進入新一輪的生命周期。新的項目生命周期各個階段知識的內涵有著明顯的不同:①招投標階段主要包括對供應商評價、軟件組織評價、項目的可行性分析以及子系統(tǒng)劃分等方面的知識;②軟件項目開發(fā)階段主要包括項目管理、相關的軟硬件技術和組織管理方面的知識;③項目運行維護階段主要包括軟件應用、管理維護和軟件性能評價方面的知識。與傳統(tǒng)工程項目不同的是軟件項目各個階段知識具有較強的邏輯關系,如系統(tǒng)分析階段形成的邏輯模型知識與系統(tǒng)設計階段形成的物理模型知識具有一定的映射關系。
2.2 基于生命周期的軟件項目知識構成
軟件項目是知識密集型項目,由于項目開發(fā)過程和軟件產品(包括階段性產品)的不可視性,過程知識的形成和管理相對復雜,不同團隊開發(fā)不同項目又有較大的差異性,增加了知識管理工作的復雜性。軟件項目開發(fā)有三類信息需要進行管理:①項目的基本信息,如項目的名稱、特征、分類等信息;②軟件項目開發(fā)過程本身的信息,如項目開發(fā)過程的階段劃分、各類資源分配、質量、進度和范圍等信息,系統(tǒng)規(guī)劃、分析和設計等一系列方法以及軟件組件、文檔以及軟件開發(fā)過程中積累的經驗等;③過程的動態(tài)信息,即在項目進行中的某個過程是如何進行的,如在進行中遇到了什么問題,采用了什么樣的方法解決,解決的過程和效果如何。軟件開發(fā)人員經常需要具有邏輯相關和一定背景的系列知識,而不是孤立的知識元,因此,本文從項目生命周期的視角對知識分類,在知識管理系統(tǒng)設計中著重考慮知識的邏輯性以及相關背景知識。通過研究現(xiàn)有文獻、軟件項目專家和項目開發(fā)人員訪談,本文界定軟件生命周期各階段知識的構成如表1所示:
3 軟件項目知識管理的三維模型構架
系統(tǒng)工程是解決大型復雜系統(tǒng)的規(guī)劃、組織、管理問題的思想方法,軟件項目開發(fā)周期較長、涉及的專業(yè)領域較多、知識內容復雜、管理過程繁瑣,因此,結合軟件生命周期理論,應用霍爾的系統(tǒng)工程原理,建立基于時間維(T)、管理維(M)和知識維(K)的軟件項目知識管理的三維模型,如圖2所示:
?時間維,即軟件項目生命周期,包括軟件項目立項、系統(tǒng)規(guī)劃和系統(tǒng)評價7個階段;在項目開發(fā)過程中,根據項目的具體分工,各個階段還可以設置若干個里程碑事件,如圖3所示:
?管理維,即項目的范圍管理、時間管理、成本管理、質量管理、風險管理、人力資源管理、溝通管理、采購管理、集成管理9個環(huán)節(jié),各領域均有相應的知識內容。
?知識維,包括計算機物理平臺、基礎軟件平臺、軟件開發(fā)平臺、應用業(yè)務和軟件項目管理工具集等5類知識。
4 基于生命周期的軟件項目知識管理模型運行機理
我國軟件行業(yè)正由手工作坊模式向工業(yè)化生產模式轉變,軟件項目開發(fā)分工越來越細,專業(yè)化分工要求項目開發(fā)人員掌握本分工階段的知識,了解前導階段和后續(xù)階段以及相關領域的知識。對于大型軟件項目,按照軟件生命周期階段(或里程碑節(jié)點)進行項目分工是軟件組織一個基本模式,因此,為保證軟件項目知識的完整性和一致性,應對生命周期的每個階段或里程碑節(jié)點處實施知識獲取、存儲、共享、應用、檢驗和創(chuàng)新(見圖3):①在管理維和時間維(或里程碑節(jié)點)的每一個集合點,產生知識維的各類知識和階段性軟件產品(如文檔、組件等),項目知識應在里程碑節(jié)點處進行收集、整理和內化。②集成管理。知識管理是一種尋求目標的活動,為了開發(fā)預期的軟件產品,按照軟件生命周期的階段目標,集成其他8個管理領域。隨著軟件開發(fā)過程不斷深入,預定的軟件開發(fā)目標可能會變化,并且軟件開發(fā)人員溝通過程中,在項目時間維(T)的多個開發(fā)階段與管理維(M)的不同管理過程交叉產生新的知識,集成管理一方面生成各個應用領域的綜合知識,另一方面有助于對這些知識實現(xiàn)綜合管理。③軟件用戶層面知識涉及到軟件項目開發(fā)個人、團隊和組織知識,具有綜合性和直觀性,這個層面的知識往往以問題和建議或軟件缺陷的形式表現(xiàn)。④為了實現(xiàn)知識的分類存儲和檢索,提高項目開發(fā)人員的知識管理效率,一方面將知識按照應用層次分為計算機物理平臺、基礎軟件平臺、軟件開發(fā)平臺、應用軟件業(yè)務、軟件項目管理工具集;另一方面還考慮知識的生命周期屬性以及針對特定軟件項目各應用層次和各個階段知識的邏輯相關性。⑤基于生命周期的軟件項目知識管理流程,由于研究的側重點以及視角的不同, 軟件項目知識管理機制也存在很大差異,但知識的具體管理過程是通用的,筆者在文獻[2]中做了詳細的研究和論證。
5 軟件項目知識管理原型系統(tǒng)
5.1 軟件項目知識管理系統(tǒng)物理模型
基于生命周期的軟件項目知識管理原型系統(tǒng),分為知識產生層、知識管理層和知識應用層(見圖4):
、僦R產生層包括在項目生命周期的各個階段(或里程碑事件的節(jié)點處),由軟件項目開發(fā)人員總結項目進程中產生的新知識,按照一定的規(guī)則填錄到知識管理系統(tǒng)中;應用語義處理工具、智能分析工具、分析定制工具和知識管理工具,將開發(fā)人員的知識內化到軟件項目知識庫(KB);②知識管理層包括數(shù)據庫(DB)和數(shù)據庫管理系統(tǒng)(DBMS)、模型庫(MB)和模型庫管理系統(tǒng)(MBMS)、知識庫(KB)和知識庫管理系統(tǒng)以及方法庫(AB)和方法庫管理系統(tǒng)(ABMS),完成知識的管理工作;③知識應用層通過用戶界面、集成接口、知識地圖、查詢和共享工具完成項目相關人的知識請求。該物理模型中的知識生成者也是未來的知識用戶,因此,更有利于豐富和檢驗項目知識庫內容,保證知識的正確性。
5.2 建立基于項目生命周期的知識地圖
知識元模型包括軟件組織基本信息、項目基本信息、文檔信息、軟件產品信息和文件夾信息等。元模型是構成基于項目生命周期的知識地圖基本單位,如圖5所示:
其工作機理:①知識用戶首先提出需求的領域知識(包括計算機硬件類、軟件類、應用業(yè)務和管理工具類)以及知識應用的生命周期階段,知識地圖自動映射到相應的知識目錄;②建立目錄內各條款之間的關系以及與管理維的關系;③項目知識管理層根據用戶知識請求,集成相應的知識元模型,并返回知識的調用結果。
5.3 項目知識有效度測度模型
對于軟件項目開發(fā)過程中的同一問題,經常會有不同的知識解決方案,各個解決方案的效果也是不同的,知識用戶往往很難判斷各知識元的應用效果,基于項目生命周期的知識管理模型引入知識有效度(E(i))的概念。知識有效度是指某知識元的累計使用效果,由該知識使用頻次和使用效果評價值的算數(shù)平均值計算。第i個知識元的第k次使用效果為e(i),則該知識元有效度E(i)=∑e(i)/k。項目知識的使用人員在每次知識使用后,給出本次的使用效果值(0~1),系統(tǒng)自動計算該知識元的效度和使用頻次。這樣為今后的系統(tǒng)開發(fā)人員識別知識元的可用性提供了參考依據。
5.4 案例研究
筆者在為山東某軟件企業(yè)項目知識管理系統(tǒng)版本升級時,應用了基于生命周期的軟件項目知識管理模型。按照本文的邏輯模型和物理模型,在系統(tǒng)數(shù)據庫設計時,建立與之相適應的庫表結構,增加了知識元的項目屬性、知識的生命周期前導階段和后續(xù)階段屬性、項目的背景信息、知識的三個維度的屬性以及知識的效度評價。
5.4.1 知識管理模型定義 知識管理模型中定義了領域知識類(Domain Information Class,DIC)、項目生命周期信息類(Lifecycle Information Class,LIC)、項目管理知識類(Project Information Class,PIC)、軟件項目信息類(Software Project Information Class,SPIC)和知識元信息類(Knowledge Unit Information Class,KUIC)5種信息類。5個信息類之間存在繼承、包含等關系(見圖5),各類信息類的屬性定義如下:
DIC[領域(Domain_ID)、領域名稱、備注);LIC[項目生命周期階段(Lifecycle_ID)、階段名稱、備注];PIC[管理(PM_ID)、管理名稱、備注];SPIC[項目(PmjectID)、項目名稱、項目類別、開發(fā)環(huán)境、開始時間、結束時間、項目關鍵詞];KUIC[知識元(KU_ID)、Domain_ID、Lifecycle jD、PM_ID、PM_ID、知識內容、類別、任務、過程、資源、產品/服務、執(zhí)行者、時間、地點、關系、項目知識效度E、相關項目ID,相關知識(KU_ID)]。
5.4.2 主要模塊
?知識管理工具,實現(xiàn)5個信息類的編輯、添加、修改、刪除等基本功能以及軟件項目知識庫、知識檢索模型庫、方法庫和軟件組織數(shù)據庫管理、構建和維護等操作。在軟件項目開發(fā)過程中,根據項目知識所屬的生命周期階段、所屬領域、管理范疇等關鍵性信息,創(chuàng)建各階段各層次的軟件產品知識和軟件項目過程知識,實現(xiàn)知識的編輯、添加等處理流程,并建立相應的數(shù)據庫和文檔信息對象與其關聯(lián),以形成軟件組織知識庫,其中的文檔包括項目生命周期中各類開發(fā)文檔和階段性產品(源程序代碼),是軟件項目知識庫中知識的主要表現(xiàn)形式,簡化了知識的表現(xiàn)形式,規(guī)范了軟件項目知識管理。
?軟件項目知識共享工具。軟件項目知識共享工具為項目開發(fā)人員提供軟件協(xié)同開發(fā)、同步數(shù)據傳送、實時的知識獲取、軟件知識元搜索、不同用戶角色的權限控制和知識庫版本控制等多項功能的基礎支撐工具,能夠解決不同軟件項目開發(fā)團隊成員的知識共享難問題。
?知識查詢應用:①根據開發(fā)人員提供的項目生命周期、應用領域和項目管理范疇等關鍵信息對需要檢索的知識進行自動過濾,有助于項目人員迅速準確地獲取不同開發(fā)階段所需的項目知識;②整理和查詢軟件項目開發(fā)和實施過程中常見問題及其解決方案;③支持開放式和協(xié)作式編輯,允許具有權限的項目開發(fā)團隊成員動態(tài)增加新的項目問題及其參考解決方案;④支持項目開發(fā)人員對知識元的應用效果進行評價。
?主要接口:①用戶界面,為項目開發(fā)人員和項目干系人提供友好的人機交互界面,完成對知識管理基礎設施的配置和管理功能;②智能分析接口,提供標準方法完成項目開發(fā)各類信息分析和知識挖掘程序的調用;③應用集成接口,實現(xiàn)本系統(tǒng)與軟件組織其他應用系統(tǒng)的集成,獲取軟件項目的相關知識;通過引入知識分析集成框架可以方便項目開發(fā)人員靈活地定制各種知識分析和知識挖掘工具,用來集成項目干系人的知識管理和應用程序組件。
5.4.3 系統(tǒng)開發(fā)平臺 采用基于瀏覽器/服務器(B/s)的模式,構建基于生命周期的軟件項目知識管理平臺。系統(tǒng)開發(fā)工具采用了JAVA+Javabeans+Ora-cle,并配以JAVA Applet實現(xiàn)。
從系統(tǒng)的開發(fā)和應用效果來看,開發(fā)人員根據項目的進程實時地(或定期)整理描述新生成的知識,并追加到系統(tǒng)的知識庫,增強了知識的時效性;按照領域和生命周期目錄檢索知識,使知識的檢索效率有明顯的提高;增加了項目知識背景信息和知識效度評價,便于開發(fā)人員快速識別當前獲取的知識是否滿足項目開發(fā)的需要,提高了軟件項目的知識(如軟件組件)的重用效率;按項目生命周期進行知識的收集內化,避免了知識的重復整理錄入,減少了系統(tǒng)知識庫的冗余和有效地控制了知識庫規(guī)模龐大的問題,使知識庫的結構更加優(yōu)化。
6 結語
基于生命周期的軟件項目知識管理模型,根據項目知識形成的過程,合理地劃分了知識的分類;各階段知識的收集、內化由系統(tǒng)開發(fā)人員自行完成,規(guī)范了知識的生成過程,解決了知識遺忘或流失問題,同時也使分散在生命周期各個階段的知識得以緊密的鏈接與傳遞。系統(tǒng)邏輯模型實現(xiàn)了項目知識的時間維、管理維和知識維有機整合,確保項目知識的完整性,實現(xiàn)知識的有效積累;物理模型促進了項目開發(fā)過程知識的流轉,使得知識的獲取和應用更具彈性;基于生命周期的軟件項目知識管理地圖建立,實現(xiàn)了軟件組織對龐大知識庫的分類管理,使得知識在傳遞與儲存的過程中能準確無誤地被處理,解決了傳統(tǒng)搜索方法不能提供足夠背景和相關知識信息的問題,更符合軟件組織知識管理的需求。
相關熱詞搜索:知識管理 生命周期 模型 基于生命周期的軟件項目知識管理模型研究 研發(fā)項目生命周期模型研究 產品生命周期
熱點文章閱讀