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