前言:一篇好文章的誕生,需要你不斷地搜集資料、整理思路,本站小編為你收集了豐富的軟件開發項目總結主題范文,僅供參考,歡迎閱讀并收藏。
與一般項目相比,軟件開發項目存在一些獨有的特點,而這些特點的存在使得要想真正做好軟件開發項目的管理工作是十分困難的,其在管理方法上與傳統項目管理存在著一定的差別,一些通用的項目管理理論或者項目管理方法并不適用于軟件開發項目的管理。在這種情況下,對軟件開發項目管理進行相應的實踐探究,就顯得非常必要。
關鍵詞:
軟件開發項目管理;實踐
進入21世紀后,伴隨著計算機技術和網絡技術的飛速發展,各種智能終端設備逐漸興起,也使得人們對于軟件的需求達到了一個前所未有的高度,推動了我國軟件產業的發展。而在軟件開發過程中,需要切實做好項目管理工作,提升管理水平,才能夠促進我國軟件產業的進一步發展壯大。
一、軟件開發與項目管理
簡單來講,軟件開發就是依照客戶的需求,構建軟件系統或者系統中的軟件部分,其是一項包括了需求捕捉、需求分析、設計、實現和測試的系統工程,需要借助某種本程序設計語言實現。軟件開發的主要流程包括:需求分析、總體設計、細部設計、編碼、單元測試、綜合測試、運行以及維護。項目管理則是指在一定的約束條件下,為了實現某個特定的目標,依照項目自身的內在邏輯規律所進行的系統管理活動。相對于軟件開發而言,項目管理需要遵循幾個基本的原則,一是依照分階段的生命周期計劃,進行嚴格管理;二是做好相應的階段性評審;三是重視產品控制;四是應用現代程序設計技術;五是確保開發人員的專業素質較高,同時對人數進行控制;六是必須能夠對結構進行清晰地審查;七是必須承認軟件工程實踐持續改進的必要性[1]。
二、基于軟件開發的項目管理實踐
以智能手機系統為平臺,針對手機軟件開發的項目管理實踐進行簡要分析和討論。
2.1需求分析需求分析是軟件開發的基礎與前提,能夠獲取和記錄系統需求,確??蛻襞c項目團隊在系統需求變更上的一致性,避免軟件開發過程中不必要的彎路。需求分析法包括了用戶問卷調查、研討會以及原型展示等,需要安排專人做好相應的記錄工作,并及時對其進行總結和歸納,做好應對策略。在該項目中,軟件需要滿足的需求包括:適用于主流手機操作平臺,充分考慮不同硬件配置以及操作系統版本的兼容性;可以跨平臺運行,同時不需要占用過多的系統資源;確保數據連接的速率以及操作的流暢性等。
2.2設計編碼系統設計包括了總體設計和細部設計兩個不同的階段,其中,總體設計應該大致規劃出軟件的功能模塊,做好相應的功能分區,并對其進行初步的設計分析,細部設計則需要給出每一個功能模塊的控制流程、算法以及數據結構等,確保每一個模塊都有不同的層次。對于一些難度較大、涉及面較廣的模塊,可以交給一些經驗豐富、心細縝密的技術人員完成,并做好模塊的測試與修改,保證其穩定可靠,盡可能降低風險與成本[2]。設計完成后,需要進行編碼工作,采用代碼版本管理工具SVN,以確保各個子系統的功能都能夠得到最大限度的發揮,實現系統之間的功能互補,從而降低軟件開發的風險和難度,提高軟件過程的跟蹤率。
2.3測試運行軟件測試并非單純的某個環節,而是貫穿于整個軟件開發項目中,制定出詳細全面的測試計劃,并對測試用例進行用心編寫。軟件中的每一個子模塊都應該由編程人員之外的技術人員進行反復測試,同時對測試過程中出現的問題進行記錄,提出相應的修改意見,由相應的編程人員進行修改。在對測試用例進行編寫時,需要對測試目標、測試環境、測試步驟、預期結果等進行記錄,形成具有代表性的數據信息。在測試完成后,需要首先在小范圍內,對軟件的子模塊進行試運行,確認無誤后再對軟件整體進行試運行,結合運行反饋結果,評估軟件的可靠性,采取相應的完善措施。試運行成功后,需要編寫相應的用戶手冊,制作視頻說明,幫助用戶了解和使用軟件,同時標注聯系方式,方便用戶進行反饋。
2.4后期管理在系統安裝試用一段時間,具備相應的驗收條件后,需要進行驗收準備工作,對之前的工作進行總結,列出工作成果和相應的文檔,審查相關技術文檔中的內容和信息。應該對系統當前的完成狀況進行明確,對于尚未完成的部分,應該采取有效策略去完成,或者設置相應的回避措施,確??蛻粼隍炇諘r不會提出這些未實現的需求。在交付使用后,需要做好軟件維護工作,結合需求變化或者硬件環境變化對程序進行修改,確保其具備良好的實用性和適用性[3]。
三、結語
綜上所述,軟件開發項目管理與一般的項目管理存在著很大的差別,需要相關技術人員結合軟件開發的具體流程,做好全過程管理,保證管理效果,在完成預定功能目標的基礎上,提升軟件的可靠性與安全性,確保軟件的有效應用。
參考文獻:
[1]劉宇柯.基于CMMI的軟件開發項目管理研究[D].廣東工業大學,2015.
[2]魯成祥,呂培強,龐新瑩.基于Android平臺軟件開發的軟件項目管理實踐研究[J].軟件導刊,2012,11(8):10-13.
上述文獻中存在著兩個缺陷:一是雖然在軟件開發項目經濟分析時考慮了項目內含的實物期權價值,但在項目投資決策分析中卻仍然遵循NPV方法的思路,而沒有考慮實物期權的執行問題以及何時執行問題;二是缺乏對軟件開發項目在生命周期的各個階段所包含的實物期權作全面、系統的研究,大多只是考慮到項目中的等待期權。本文則對上述問題作了詳盡的研究和分析。
二、軟件項目的生命周期
從項目管理與項目經濟分析的角度看,軟件項目的生命周期可歸納為圖1所示的一般過程:
在圖1中,橫坐標是時間,縱坐標是收益或投資成本,t0=0是項目的決策點。在決策時,I是項目可行性研究費用(成本),相對于項目的整個壽命期,一般來說項目的可行性研究階段的時間很短,所以假設項目的可行性研究是在瞬間完成。t1是項目開發的起始點,t2-t1是項目前期開發階段,在這一階段,項目有一現金流C1支出,C1可能是常量,也可能是隨時間的變量C1(t)。從t2時刻起,項目的首期開發完成,項目開始有收益,即現金流B1,B1也可能是常量,更一般的是隨時間的變量B1(t),這一收入可能是企業出售軟件或軟件相關服務效益的收入。同時,對于大多數成功的軟件項目來說,從t2時刻起,該軟件項目又開始了進一步的開發,如增加軟件的新功能,或將軟件移植擴展到其他的計算機操作系統等。從t3-t2階段是軟件項目的第二次開發階段,在這一過程中所發生的開發費用為C2,C2的特點也與C1相似。從t3到tn,其中可能包括多個與t3-t2階段相似的軟件項目的擴展(二次開發)階段。T是該軟件項目結束的時間。由于技術進步與消費者需求的變化,一般來說一個軟件不可能永遠繼續下去,它可能在某一時刻被完全淘汰。綜上分析,t0是項目的決策點,t1是項目的開發起始點,他們可能是同一時間,但大多數情況下可能是不同點。t1-tn是項目的開發階段,其中t1-t2是項目的純開發階段,在這一階段上,項目無收益。t2-T是項目的收益階段,在這個時段上項目有現金流入,他們通常大于本階段上的開發費用。值得指出的是,軟件項目在t2-T階段,企業可以中止并出售該項目,并一次性收取轉讓費。
三、軟件開發項目內含實物期權分析
從圖1的分析可以看出,一個軟件開發項目包含了多個階段。把軟件項目看作是由一系列序貫開發的小項目所組成,這一觀點在軟件開發項目管理中已被廣泛接受。在軟件項目中,前一階段的決策,決定了后續階段的開發投資。所以,在前一階段的經濟評價中,應考慮本階段的決策所帶來的后續階段投資機會的價值。從這一觀點出發,可以分析在軟件開發項目的不同階段中項目可能包含的實物期權。
在t0點,即項目投資決策時,項目內含一個等待(wait)或推遲(defer)開始的實物期權,這相當于一個美國式的買方期權(CallOption)。該期權的執行條件是:推遲項目可以使得管理人員獲得更多(額外)的有關項目的信息,在此基礎上,有利于管理人員采取管理行動,而且,一般來說計算機硬件,軟件的價格隨時間迅速下降,推遲項目會有利于降低開發成本。但同時也應看到,推遲項目也可能導致項目收入的損失和企業競爭優勢的喪失,即推遲項目具有機會成本。在項目決策時,應綜合全面考慮這兩方面因素。因而,在項目決策時,除了篩選項目外,還應考慮這一實物期權的價值,在時間許可的范圍內,決定最佳項目開始時間。
在t0時,除等待期權外,項目還包含有第二階段投資機會的實物期權。
在t1至tn時項目的開發階段。在開發階段上項目具有更大的管理柔性,項目可能包含的實物期權有:1.推遲或中止下一階段的開發。2.若不期望的情況出現,并且繼續下去,則可完全放棄該項目。3.根據新掌握的信息,擴展或縮減項目。4.發現新派生軟件(項目)的投資機會。
最后,項目的經營階段,項目還可能包括中止(出售)的期權,或由于條件的變化,進一步升級軟件的機會。
雖然軟件項目中所包含的期權不同,但一般情況下,影響他們價值的因素主要包括:1.執行項目中實物期權所產生的收益。對軟件開發項目來說,這可能是項目在某一階段的收益,一般來說,其他條件不變,收益越高,期權的價值也就越大。2.執行實物期權所需要的成本。對于軟件開發項目而言,是投資于項目下一階段的成本,一般來說,其他條件不變,成本越小,期權的價值也就越大。3.收益與成本的不確定性的程度。對于金融期權來說,其價值是建立在市場風險之上的,這個風險反映在證券資產的價格變化上。然而,其中之一變為不確定了,則項目所包含的實物期權價值會相應增加。4.實物期權的截止時間。對于軟件項目來說,這一時間就是下一階段項目管理決策的可能時間。在實踐中,它經常是企業因素所決定的。實物期權的截止時間越長,則期權的價值也就越高。5.項目包含的實物期權執行的機會成本。若這一機會成本越高,則期權的價值也就越低。6.無風險折現率。無風險折現率越低,則期權的價值也就越高。
四、軟件開發項目經濟分析的目標與內容
Trigeorgis等學者提出,在考慮內含實物期權時,投資項目的價值包括兩部分:一是傳統的、被動的、靜態的(static)項目直接現金流的凈現值(NPV)。二是管理柔性或靈活性所產生的項目內含實物期權價值。這一思想可歸納為下式:F=NPV+V(1)
(1)式中,F是擴展(Expand)的NPV,也是整個項目投資機會的價值;NPV是按凈現值法計算出的項目凈現值;V是項目內含期權的價值。
根據項目投資決策的NPV法則,內含實物期權的IT項目,其投資機會的價值大于零時,項目可行;篩選IT項目的多個獨立方案時,選擇投資機會最大的投資方案。在大多數投資項目的實物期權理論研究以及實證研究的文獻中,都遵循這一準則。然而,這類投資項目的決策思路卻值得重新審視。
傳統的投資項目經濟評價中,沒有考慮項目中可能包含的實物期權,其經濟評價是為其投資決策服務的。而投資決策的特點是在決策時只有投資或不投資兩種選擇,若項目選擇投資,其經濟評價的使命便告結束。若選擇不投資,項目就放棄了。傳統的投資項目決策的內容可歸納為下面三個基本內容:1.決定投資項目是否經濟可行;2.若可行的投資項目存在多個相互排斥的投資方案,篩選最佳的投資方案;3.在企業資源(預算)約束的條件下,篩選多個項目的投資組合。然而,若投資項目中包含實物期權,項目經濟評價中也考慮了項目內含實物期權的價值,那么投資項目不僅在經濟評價的內容與方式上與傳統項目的經濟評價不同,而且項目的決策內容和方式也與傳統項目的決策不同,具體體現在下面三個方面:第一,項目的決策不僅在項目最初的決策階段(點)進行,而且還應延伸進項目的整個過程之中。第二,在項目最初的決策階段(點),管理者不僅要決定項目是否可行,篩選最佳方案和選擇投資組合,而且還要依據項目經濟評價的結果,決定項目內含期權是否應該執行和何時執行。第三,投資項目內含期權的經濟分析,不僅在項目決策階段進行,而且還應延伸至項目開發的全過程。在項目開發的每一個階段,根據項目經濟分析的結果,決定當時項目所含實物期權是否實施、何時實施。
五、軟件開發項目決策框架與準則
從上述分析可以看出,在軟件開發項目經濟評價中引入實物期權的概念和實物期權定價方法,是軟件開發項目經濟分析與決策管理的革命,它必然給原有的軟件開發項目的管理帶來深刻變革。本文構建了軟件開發項目的經濟分析與管理決策過程的框架,其主要內容是:1.確定本階段軟件開發的范圍及下一階段開發的可能范圍,決定是否可引出相關的開發項目。2.構造確定本階段開發項目包含的實物期權,如推遲開發、進一步擴展開發等。3.預估開發項目成本、收益、時間和無風險折現率,特別應分析確定成本與收益的不確定性特征,如變化方差等。4.根據開發項目的不確定源的特征,選擇合理、恰當的市區期權定價模型,確定開發項目內含期權的價值。對于相似于美國式期權的實物期權,還應確定最佳執行時間。一般來說,實物期權定價模型主要包括:已有的期權定價模型、偏微分方程法和動態規劃方法等。5.根據項目的經濟分析結果作出管理決策。應該指出的是,在軟件開發項目的不同階段,管理決策的內容有所不同,下面詳細分析不同開發階段管理決策的內容與規則。
在軟件開發項目的最初決策階段,決策內容包括兩個部分:一是傳統項目投資決策內容相同;二是針對項目內含期權的決策。具體可歸納為圖2所示:
關鍵詞:軟件企業能力成熟度模型軟件過程改進
一、引言
CMM是軟件過程能力成熟度模型的簡稱,它主要用于軟件開發過程與軟件開發能力的評估與改進,CMM自問世以來備受關注,在很多國家與地區得到了廣泛的應用,成為衡量軟件公司軟件開發管理水平的重要參考因素和軟件過程改進事實上的工業標準。
二、CMM的主要用途有
1.軟件過程評估。軟件過程評估主要用于軟件企業自身內部的軟件過程的改進問題,目的在于發現缺陷與不足,提出軟件過程改進的方向。在評估過程中,由經過CMM系統培訓的專業人員調查,評估與鑒別軟件過程中存在的問題,確定出企業軟件過程的現狀,從中分析出企業最急于解決或者最重要的與軟件過程相關的問題,將問題匯報給企業管理層,以便取得企業管理層對軟件過程改進的支持。
2.軟件能力評價。對接受評價的企業或軟件開發小姐,評價出他們在一定條件下,即資金與時間的約束條件下能否按時按質完成軟件開發項目的能力。分析出其能夠承受風險的系數大小。通過利用CMM確定評價結果后,可以利用這些結果確定選擇軟件外包企業的風險,也可以判斷相關企業在軟件開發過程中的工作進程,指導他們改進相關的軟件過程。3.軟件過程改進。CMM可以用于指導軟件開發企業優化軟件過程,對軟件過程進行計劃,制定與過程定義。CMM指出了軟件企業如何擺脫無序與不成熟的軟件過程,形成一個成熟的有規律的軟件過程所必經的優化與提高的途徑。同時CMM也列出了達到每一個成熟度等級所必須關注的軟件過程的關鍵內容,即軟件過程域,以及完成每一個軟件過程域所必須要做的關鍵實踐。隨著軟件企業CMM級別的提高,軟件企業的軟件過程能力成熟度不斷地增長。
三、中小型軟件企業在軟件開發過程中的特征
不同企業有不同的情況,例如不同的規模,企業文化,技術水平,不同的優劣勢,所以在實施軟件過程改進時,要根據不同企業的特點有所裁減,要在軟件過程改善時,有針對性的發揮優勢,減少劣勢所可能造成的負面影響。中小軟件企業相對于大型軟件企業有以下鮮明特征:第一,由于企業規模的限制導致中小軟件企業大多數從事的是系統集成軟件的開發,即特性軟件的開發,人員規模與資金規模相對于大型軟件開發企業的有限,使中小軟件企業很難花費大量時間對開發員工進行徹底的軟件過程改善的培訓,且在軟件發行過程中很難進行良好的商業宣傳與運作,這些都是由于規模有限產生的負面效應。第二,在企業文化上,中小軟件企業的員工可能參與到軟件開發流程中的各個環節與方面,例如需求分析,設計,開發或測試。在開發過程中的職責劃分上,以員工為中心而不是以角色為中心。軟件開發層次不明晰,不利于保障軟件開發質量,因為不能做到像大型軟件企業那樣,設立不同的專業軟件過程組來進行軟件過程改善,比如劃分了專門的軟件工程組與軟件過程組等。第三,中小企軟件企業的項目成功主要依賴于核心開發人員的技術與管理能力,企業缺乏明確定義的軟件過程,雖然這種開發模式能確保開發過程中的靈活性與自由化,但同時造成少部分人的工作量超負荷,也使得成功的開發模式與經驗得不到有效的繼承,限制了軟件開發能力的提高,中小型軟件企業的人員變更相對頻繁,這使得軟件過程改善必須以軟件過程及其活動為中心,而不能以某個員工為中心。第四,中小型軟件企業的溝通比較容易,這造成各項工作的文檔化程度不高,主要是通過交流來達到監控項目的目的,幾乎沒有或者很少有庫存的過往開發項目的文檔資料。
四、CMM在中小型軟件企業中實施的步驟
1.需求管理。從客戶處獲取原始需求,經分析后形成需求說明書,獲得客戶授權與認可,軟件開發項目組評審需求說明書,加入配置管理,創建需求基線,對需求的開發狀況進行跟蹤,要及時了解需求的變化與實現情況,一旦需求變更,需要按配置管理變更流程的執行。
2.軟件項目計劃。軟件項目計劃是軟件項目跟蹤與監控的基礎,項目經理根據需求說明書進行估算,擬定軟件項目計劃,交上交軟件開發計劃給上級部門評審與審批。審批通過后,加入配置管理。
3.軟件項目跟蹤與監控。項目經理使用進度表進行監控,根據項目的實際執行情況,擬定進度報告,并得到項目組相關成員的確認,一旦計劃與實際執行情況有偏差,項目經理要發現差距,并形成問題報告。高層經理審查項目報告,監督項目經理修正計劃和解決已經存在的問題和風險。
4.軟件質量保證。如有專人負責軟件質量保證,可擬定專門的質量保證計劃,根據計劃進行審查,記錄下不一致的問題,將問題記錄到項目問題日志,了解問題的解決情況,并定期向高層經理匯報。
5.軟件配置管理。如有專人負責軟件配置管理,可以擬定專門的配置管理計劃。創建開發域和基線域,開發人員在各自的開發域上工作,軟件配置管理則標識配置項并加入基線域。在各個階段結束時創建基線,對配置項和基線進行審計。質量保證人員定期審計配置管理活動。
6.同行評審。項目經理確定評審的人員、時間與地點,將相關材料發給評審人員,評審人員評審材料,記錄發現的問題,如果時間充足,以會議方式進行交流,否則由項目組成員各自提交發現的問題,最后匯總發現的問題,由項目經理指定相關人員跟蹤解決問題。
五、CMM在中小型軟件企業中實施的策略
對項目組相關成員進行CMM的培訓,對軟件企業當前的工作流程進行分析,整理及文檔化,制定一個適合本企業的軟件過程。合并管理任務,沒有必要重復設置經理職位,可以把相關工作交給有關人員實施,個人可以執行項目或者組織中的多個角色。建立合理的組織結構,成立軟件工程過程組,同時軟件質量保證部門要獨立于研發及測試部門??梢院喜⒌奈臋n就合并,可以消除的文檔就消除,從而減少生成文檔的負擔,保持文檔的簡單性。適當合并評審實踐,把評審實踐非正式化,充分利用其他會議或者碰頭機會解決評審需求。在軟件開發過程中,將CMM與個體軟件過程PSP和小組軟件過程TSP有機地結合起來,以幫助提高軟件企業的開發管理能力。
總結:
關鍵詞:  ;軟件開發項目; 質量功能展開技術; 模糊層次分析法; 質量屋
中圖分類號: TN830.1?34  ;  ;  ;  ;  ;  ;  ;  ;  ;  ; 文獻標識碼: A  ;  ;  ;  ;  ;  ;  ;  ;  ;  ;  ;  ;文章編號: 1004?373X(2014)23?0118?04
Application of QFD and FAHP in software developing
ZHANG Zi?nan
(Commercial College, Hohai University, Nanjing 211100, China)
Abstract: The applicability of quality function deployment (QFD) technology in software developing projects is analyzed. The fuzzy AHP (FAHP) is brought in the method based on the traditional QFD technology. Based on the basic theory of fuzzy AHP, the trapezoidal fuzzy numbers is adopted to score for  ;the customer needs, so as to improve the coordinated management of the three parties in the software  ;project developing process.
Keyword: software developing project; quality function deployment technology; fuzzy AHP; house of quality
0  ;引  ;言
信息化時代的來到,給軟件市場帶來了良好的機遇。我國眾多軟件開發團隊的追求目標是在現有預算內及時開發出切合客戶需要的高品質軟件。作為軟件開發中最關鍵的一個輸入,顧客需求對軟件開發團隊管理的重要程度,決定了軟件產品開發的結果。但是,需求的變更來自各方面的因素,這使得其成為大多軟件產品開發中最不穩定的一個因素,因此,持續變化的需求是整個軟件生命周期中的固有狀態。同時,軟件領域存在的各種問題逐漸凸顯出來,其中很大一部分是由于項目評估不準確,投資者決策失誤,同時開發團隊未能準確理解顧客的期望和需求,導致層層偏差背離開發計劃。解決軟件產品開發中的需求變更控制是當今面臨的一大課題。
軟件產品具有需求規?;?、多樣化的特征,這使得軟件開發與制造難度大幅度提升。盡管軟件開發的實踐和研究已經取了顯著的成果,可危機卻依舊存在。軟件開發團隊所面臨的最大問題就是顧客對其產品不滿意。究其原因是消費者、市場部門與開發團隊的逐層傳遞中出現溝通的誤解,導致了設計各子過程接口模糊,信息被錯誤地傳遞或得不到傳遞。間斷現象造成的結果就是軟件產品無法滿足顧客的需求。因此,在軟件開發策劃過程時,科學的技術和方法是保證產品最終滿足市場的重要保障。
本文采用質量功能展開(QFD)技術在軟件開發中的適用性和建立模糊語言評價集及其對應的模糊數集,利用模糊層次分析法(Fuzzy Analytic Hierarchy Process,FAHP)進行評價和決策,從而有效地處理需求的模糊性和多變性。通過模糊QFD技術對軟件項目開發中的模糊信息進行處理,構建基于模糊QFD的軟件項目開發過程協同管理模型。
1  ;基于QFD的軟件項目開發管理
1.1  ;QFD技術及其特點
QFD技術是一種將顧客需求轉化為產品各階段設計要求的有效工具。例如,在軟件開發過程中,軟件開發團隊在軟件設計階段具有將顧客需求轉變為產品質量設計的特性。20世紀70年代,三菱重工的神戶造船廠興起了QFD技術,經過多年的發展與改進已經被廣泛地應用于軟件開發項目中。比如, Mulligan和Mallon運用QFD技術對設想的個人計算機工作間進行了更改[1];新藤久和和我國的熊偉在1991年東京召開的第一屆國際QFD研討會上一同提出了將QFD技術運用于軟件產品中的理論模型與現實框架[2]; GOAL/QPC及ASI是美國的兩家非營利性培訓組織,為本國諸多公司培訓了大批QFD專業技術人員,如今QFD技術已成為美國企業在產品開發過程中一個強有力的工具[3];但是,其中的應用目標是構建質量屋矩陣,并沒有提出一個完整的軟件產品開發應用模型,大多為模仿工業產品的應用而構建的[4];Kamara和Anumba提出了在工業生產行業應用QFD工具的客戶需求處理模型[5];在我國,QFD技術也被逐漸應用于軟件開發項目中。柯星認為QFD是有益的信息系統開發技術,可用于調配全公司的所有過程,包括軟件開發在內。它不增加生產成本,僅在前期投資增加,但在測試實現和維護階段節省投資[6];邵家駿和張宗斌開創性地將QFD技術運用于氣動力數值計算軟件全過程中,達到了提升軟件質量的效果,同時也節約了大量的時間和費用,取得了卓越的成果[7];郭春明對基于QFD的軟件需求分析方法進行了研究,敘述了相應的分析過程,并以網絡報銷系統為應用實例,得出了角色與use case矩陣、用戶與角色矩陣以及需求分析質量屋的構建方法[8]。
關于質量功能配置,赤尾洋二和水野滋兩位教授對其進行了定義:把客戶需求轉化為質量特性,系統地配置這些特性和需求之間的關系,來保證產品的質量。這個過程是從配置每一個產品的功能質量開始的,而后擴展到各工序質量和部件的質量,產品整體質量通過這些互相關聯的網絡來實現。運用了質量屋(House of Quality,HoQ)來配置客戶的需求過程。HoQ是QFD工具實施的核心部分,它的形式是一種類似房子的矩陣框架,輸入信息后通過分析評價獲取輸出信息,進而實現了一種需求轉換,為軟件項目的開發、設計提供了有效的協調和規劃手段,其基本原理見圖1。
<;E:\2014年23期\2014年23期\Image\27t1.tif>;
圖1 質量屋(HoQ)的結構
通過量化分析軟件項目開發措施與顧客需求間的關聯度, HoQ運用數據處理分析手段提取出對滿足顧客需求最關鍵的項目開發措施(關鍵措施),進而指引軟件項目開發者在項目開發和軟件制作過程中把握軟件項目開發的關鍵過程特性(CTP)和關鍵質量特性(CTQ),使得軟件項目的質量能最優地滿足顧客要求。HoQ是由以下要素組成的一個二元矩陣。
(1) 顧客需求及其重要度。它是質量屋的輸入部分。這是確定什么才是顧客最需要的一部分。顧客的需求可以通過各種市場研究方法和市場調查得來。顧客需求目標集將不同層次的顧客將劃分為不同級別,然后確定不同層次顧客需求的重要程度。通常采用親和圖等方法對顧客需求的信息進行分析和整理研究。它可以通過五個等級來區別表示:完全不影響功能實現的需求為1級;對主要功能的實現不產生影響的為2級;較為重要的影響到功能實現為3級;對功能實現產生重要的影響的需求為4級;影響到基本的非常重要的功能的需求為5級。這些級別確定的東西對后續階段具有決定作用,其他階段需求及其重要度是指上一級QFD質量屋的技術方法集。
(2) 工程質量技術措施。這部分由項目開發人員提取出來,主要是從顧客需求中總結滿足這些需求的軟件質量技術要素。
(3) 關系矩陣。關系矩陣是描述顧客需求與軟件質量技術措施之間關系的質量屋核心部分。軟件開發人員在此階段需要對每一個質量要素對全部顧客需求的影響度進行判斷。它表現了技術措施對它相對應目標實現程度衡量。[Rij]表示第[i]項顧客需求與第[j]項開發措施的關系度,它通過取1分、3分、5分、7分、9分,分別表示了有細微影響、有部分效果、有一定效果、有效、很有效、十分有效;2分、4分、6分、8分則代表了有效程度介于相鄰的兩個奇數之間的分值。
(4) 產品市場競爭能力評估矩陣。這一階段任務是市場調研組總結出來的各種顧客需求,并對本企業及主要競爭對手和同行業先進企業進行評估。準確地定位公司自身在同行業競爭中的地位以及競爭的優勢,根據自身情況尋找突破性的改進領域和方向,然后依據此定義新服務和產品的戰略目標。
(5) 技術競爭性評估。此部分包括設計質量、軟件質量技術措施的權重和技術競爭性評估。設計質量是質量屋的輸出部分,是指通過比較分析,確定本企業要趕超先進水平、戰勝競爭對手、實現顧客滿意贏得顧客信賴所必需具備的質量或產品;軟件質量技術措施的權重是由顧客需求的重要性及其關系矩陣得出的;此項評估是根據公司自身實力,全面了解主要競爭對手在此項技術上的競爭性實力得出的結果。
(6) 相關矩陣。主要分析了各個質量要素之間沖突、支持和相關程度。通常情況下分為強正相關、正相關、負相關和強負相關。
1.2  ;QFD的四個階段
QFD是由客戶需求所驅動的產品開發方法,運用QFD技術可以通過量化評估的方式實現將顧客需求、產品特性、產品質量技術措施等項目的功能展開,通過提取關鍵特性或技術措施,緊抓開發重點,企業可以把人力物力用到關鍵的地方,最大可能降低成本,縮短開發周期,在激烈的市場競爭中開發出滿足顧客需要的產品,取得可觀的效益。
軟件行業是區別于一般企業的特殊性生產企業,軟件開發過程是指軟件開發的生命周期中所涉及的一系列過程,包括需求分析、產品設計、代碼編寫、軟件測試、產品維護等階段。我國現行軟件產品開發中,許多軟件產品陷入質量低下、生存周期短甚至軟件不符合用戶需求的漩渦,究其原因,主要是軟件企業對質量管理認知度不足、軟件質量專業人才缺乏等造成的。全員參與、管理的系統方法和過程方法在軟件產品開發中尤為重要。QFD的ASI四階段模式能夠良好地鏈接顧客需求與產品制造之間的聯系,從而完善了軟件開發計劃,加強了項目參與者的聯系與信息交流,盡可能地避免重復設計,利于避免返工和設計上的缺陷,解決了效率低下和不確定性等問題。
QFD的ASI四階段由John R Hauser &; Don Clausing更具體的提出。設計需求、工藝特性、生產要求和零件特性這四個階段分別被展開為顧客需求。由于該模型將QFD的展開過程進行了分解,使QFD的展開過程更為清晰,目前,該模式已經成為歐美國家實施QFD的主要模式。本文把QFD的ASI四階段模式運用到軟件項目開發中構建了軟件開發中的QFD四階段模型圖,如圖2所示,運用這種結構化的系統方法,將顧客需求轉化為設計需求,進而轉化為編碼需求和測試需求,最終完成滿足市場要求的軟件項目產品。產品開發者實現了對軟件產品開發全過程的了解后,能夠準確地對各關鍵子過程根據其對顧客需求的滿意程度進行系統的評價,幫助開發者實現過程優化,不斷改進。
2  ;軟件項目需求評判的FAHP
軟件項目開發是一個復雜又存在著大量不確定性因素的生產活動,本文采用FAHP對HoQ中的重要度、關系度等進行量化評估,有效地處理需求的模糊性和不確定性。
2.1  ;FAHP基本理論
FAHP在評分時可以采用梯形模糊數、三角模糊數、正態分布等,其克服了層次分析法中人的主觀選擇偏好及判斷使得決策結果更加準確合理。其中梯形模糊數更符合現實生活,得到了廣泛的應用,故本文采用梯形模糊數評分[9]。
<;E:\2014年23期\2014年23期\Image\27t2.tif>;
圖2 軟件開發中的QFD四階段模型圖
設[S∈D1]([D1]為全體模糊數所組成的空間)上的一個梯形模糊數,它隸屬函數定義:
[μS(X)=(1-a)(g-a),a≤x≤b1,b<;x≤c(x-d)(c-d),c<;x≤d0,其他]
式中:[a≤b≤c≤d,]閉區間[[b,c]]為[S]的中值,[a]和[d]分別為[S]所支撐的上、下界。根據梯形模糊數的定義得知,[S]可以被有序四元實數組[(a,b,c,d)]所確定,故可以用[(a,b,c,d)]表示為一個梯形模糊數;當[a=b=c=d]時,[S]即為普通實數;當[b=c]時,[S]就轉化為三角模糊數。QFD技術應用中,[a,b,c,d,x]根據1~9的評分準則(見表1) 進行兩兩比較取值,[X1,][X2]為進行兩兩比較的值。
表1 重要度標度兩兩比較表
[重要度差別\&;[X1]標度\&;[X2]標度\&;[X1]與[X2]同等重要\&;1\&;1\&;[X1]與[X2]稍微重要\&;3\&;[13]\&;[X1]與[X2]明顯重要\&;5\&;[15]\&;[X1]與[X2]強烈重要\&;7\&;[17]\&;[X1]與[X2]極端重要\&;9\&;[19]\&;介于以上中間\&;2,4,6,8\&;[12,][1416,][18]\&;]
依據Zadeh的擴展原理可以把梯形模糊數的數學算法表達為下式[11]:
已知[S1=a1,b1,c1,d1,S2=a2,b2,c2,d2,]則[S1]與[S2]的數學算法為:
[S1+S2=a1,b1,c1,d1+a2,b2,c2,d2=(a1+a2,b1+b2,c1+c2,d1+d2)] [S1×S2=a1,b1,c1,d1×a2,b2,c2,d2=(a1×a2,b1×b2,c1×c2,d1×d2)] ;
[λ×S1=λa1,b1,c1,d1=λa1,λb1,λc1,λd1]
[a1,b1,c1,d1-1=1d1,1c1,1b1,1a1]
式中:[a1>;0,b1>;0,c1>;0,d1>;0,a2>;0,b2>;0,c2>;0,d2>;0,][λ>;0。]
在進行矩陣一致性判斷時通常將模糊數映射成一個實數。對梯形模糊數而言, 梯形的重心被該模糊數所表示是本質特征。所以, 計算該模糊數的梯形重心用于對其一致性的判斷。
對于梯形模糊數,其中心[10]:
[xc=(AsdA)A=d2+cd+c2-(b2+ab+a2)3d+c-b-a]
2.2  ;梯形模糊AHP的基本步驟
通過上述方法確定梯形模糊數,需求指標權重將從以下步驟求得。
步驟1:構造兩兩比較模糊判斷矩陣,專家打分法(采用德爾菲法),專家按1~9模糊標度法將模糊評語轉化為對應的梯形模糊數。
步驟2:對矩陣的一致性檢驗做判斷并模糊權重計算。
步驟3:層次單排序。
步驟4:層次總排序。
完成以上步驟,獲得顧客需求和軟件開發團隊可制造需求指標的權重。
在QFD顧客需求分析中將應用梯形模糊AHP方法,運用梯形模糊數描述判斷矩陣及權重的值,依據實際情況選擇評分方式,達到最優化效果。
3  ;結  ;語
本文主要論述了QFD技術的基本方法及FAHP與其相結合的運用模式,針對軟件行業的特殊性,對傳統的QFD方法進行了改進,提出了適用于軟件開發項目的模糊QFD技術方法模型。該模型使得顧客、市場部門、程序開發人員有效地聯系起來,保證整個軟件項目開發過程中的有效溝通和聯系,有助于軟件項目更好地符合顧客的需求。
參考文獻
[1] MALLON J C, MULLIGAN D E. Quality function deployment: a system for meeting customer needs  ; [J]. Journal of Construction Engineering and Management, 1993, 119(3): 516?31.
[2] 熊偉,新藤久和.日本質量管理的回顧與展望[J].Quality Progress,1991,19(6):39?50.
[3]  ;ZAIRI Mohamed, YOUSSEF M A. Quality function deployment: a main pillar for successful total quality management and product development [J]. International Journal of Quality and Reliability Management, 1995, 12(6): 9?23.
[4] 邵家俊.質量功能展開[M].北京:機械工業出版社,2004.
[5] KAMARA J M, ANUMBA C J, EVBUOMWAN F O. Computer?based application for the processing of clients requirements [J]. Journal of Computing in Civil Engineering 2000, 14(4): 264?269.
[6] 柯星.提高軟件質量的有效工具QFD[J].計算機系統應用,1994(6):32?35.
[7] 邵家駿,張宗斌.QFD技術在計算機軟件改造中的應用[J].世界標準化與質量管理,1998(10):9?13.
[8] 郭春明.基于QFD的軟件需求分析[J].上海質量,2005(9):55?58.
[9] 王琦,鐘毓寧.基于模糊層次分析法的QFD顧客需求權重求法[J].湖北工學院學報,2004,19(2):54?57.
1.軟件開發組織機構管理
這里所說的組織,不只是簡單的將計算機開發人員匯合在一起,而是重視這個計算機軟件開發組織的人員分配情況。這樣有利成員分工明確,責任落實到位。但是在實際工作中,由于各個管理項目的要求不同,無法對整個組織機構提出統一的規章制度。
2.計算機軟件開發工程工作人員的管理
在信息技術不斷發展過程中,作為軟件開發工作人員便是這個領域的主體。主要負責各個軟件項目的設計與實施,其中包括搜尋項目的資料、改編各種應用程序、工程完畢之后的處理事件等。各項工作都需要不同崗位的工作人員共同完成;同時,在實際開發進展過程中,應該有效結合各個工程項目的規模、性質等,然后科學合理的安排計算機軟件項目的開發人員,堅持做到分工明確;最后,堅持具體問題具體分析的原則,充分了解工作人員的業務素質,堅持做到科學合理的配置資源。在工作人員的素質要求上,除了具備專業業務素質之外,還應該具備良好的團隊合作能力,這樣工作人員才能夠共同完成開發的計算機軟件工程。
3.實施對計算機軟件開發各個用戶進行管理
實踐是檢驗真理的唯一標準。要想證明軟件開發項目是否具備優勢,最重要在于用戶的使用。因此,在項目開發進行之前,應該對市場進行充分了解。不僅要了解用戶對計算機軟件的需求有多大,還應該了解大部分用戶的操作習慣。通過這樣開發部門與外界的聯系,讓用戶對所使用的軟件提出自己的看法,這樣便能夠有效增強計算機軟件的實用性。
4.軟件開發過程設置檔案資料管理
在現實生活中,工作人員應該將計算機軟件開發的各個流程記錄到檔案中進行有效管理,為下一個階段的開發工作打下堅實的基礎;通過實施檔案資料管理,又方便了軟件工程后期的查詢工作,有效提高了計算機軟件開發的保障性。因此,在計算機軟件工程的開發過程中,應該不斷提高項目檔案資料的重視程度,有效提高計算機軟件開發管理的效率和水平。
二、強化計算機軟件工程管理的對策
1.完善計算機軟件工程管理體系,提高項目開發效率
在社會不斷發展過程中,為了推動計算機軟件工程開發項目更好的發展,應該逐步構建起完善的工程管理體系。其一,要想構建起完善的工程管理體系,便應該有效認識到人才在工程項目開發中所起到的積極作用。充分調動工作員工的主觀能動性,確保各個軟件開發項目安全快速的完成;其二是強化計算機軟件工程應用相關知識滲透力度。不斷加強工作人員的專業知識培訓,充分了解最新軟件的知識,堅持理論聯系實際的原則,有效運用到具體的項目開發中。這樣便能夠大大提高軟件開發的利用價值,從而提高工程項目的管理效率;其三是制定獎懲機制,從而推動項目工程效益能夠順利實現。
2.強化軟件風險管理,抓好進度發展
為了推動計算機軟件工程更好的發展,首先應該構建完善的風險管理體系。作為開發人員,應該具備風險意識。然后通過充分利用空余時間學習風險管理知識,能夠很容易識別出軟件開發過程中存在的風險,然后根據實際情況選擇科學的防護措施,在必要的時候還應該提交工程風險報告單;其次是,堅持定期做好計算機軟件的風險控制管理。其中對于一個歷時時間之久的計算機軟件工程項目來說,更應該堅持將項目風險管理落實到整個過程中,對出現的風險問題,及時采取處理措施,從而將項目進行過程中帶來的損失降到最低的限度。但是在實際操作過程中,一般主要采取規范、轉移等措施處理風險;最后,還應該有效強化計算機軟件工程開發的進度管理,大力提高工程管理的效率水平,降低開發成本。工作人員還應該堅持理論聯系實際,通過有效結合計算機軟件工程項目的實際情況,然后制定科學合理的管理工作日志。這樣能夠對各個工程項目實行有效的監督,從而確保各項計算機軟件工作能夠安全順利的完成。
3.提高團隊合作管理水平,提高團隊協作力量
在計算機軟件項目的開發過程中,一個優秀的團隊占有非常重要的地位,是實現計算機軟件工程管理的重要保障。因此,強化項目管理的團隊管理,對實現工程項目起著非常積極的作用。其中主要表現在以下幾個方面:其一,不斷加強項目開發人員之間的溝通與聯系,不斷整合團隊意識滲透;其二是明確項目開發過程中各個崗位人員的分工情況。在充分了解項目開發的實際情況時,再進行科學合理的分配,將具體的工作落實到每個人身上,從而確保計算機軟件工程順利進行;其三是充分調動整個軟件項目部門員工的積極性,確保項目開發過程中的每個員工都能夠全身心的參與,有效激發團隊成員的潛力,共同做好軟件工程的管理工作。
三、計算機軟件工程的應用
隨著現代社會快速發展,網絡信息技術也得到快速發展。由于計算機技術具備較高的準確性、方便、高效,從而確保計算機軟件工程的開發得到更廣泛的推廣。隨著計算機技術不斷深入,在人們的生活中,越來越離不開計算機。其中計算機軟件的應用范圍主要包括:辦公、電子商務、游戲、音樂、電子郵件等。更重要的是在現代的航空、農業、銀行等各個生活領域都大量采用計算機軟件工作。其中由于計算機軟件工程在開發過程中基本上屬于一個非常重要的工程項目,在軟件開發過程中也越來越人性化。計算機軟件在開發過程中,具有自己獨特的要求,同時還需要經驗豐富的工作人員才能夠勝任軟件開發工作。同時,在軟件研究過程中,工作人員還應該認真仔細,不斷去總結工作過程中所出現的問題,然后及時采取處理措施。因為,計算機應用的各個環節與其他環節之間都存在著密切的聯系。對于工作人員來說,計算機軟件工程的開發工作是非常復雜的,因此,要不斷去克服重重困難,不斷去探索。這樣便能夠促使計算機軟件變得更加方便快捷。其中主要體現在以下幾個方面:其一,學校老師應用方面。學校老師可以利用計算機制作PPT教案,這樣能夠讓知識點更加直觀的呈現在同學們的面前。學生也可以直接通過網絡加強與老師之間的溝通交流。有的學校,在學生入學登記時,也直接采用計算機進行登記;各種消費也直接通過計算機軟件來進行管理。這樣當學校任何一個事情出現問題時,都能夠很容易的查出來。從而通過計算機軟件能夠大大提高學校管理效率;其二是像醫院、KTV、大型的企業等幾乎都應用到了計算機軟件。這個軟件在開發的整個過程中,各個因素之間都存在著密切的聯系,從而形成相互影響、相互制約的現象。因此,必須加大計算機軟件的開發控制力度,確保研發出來的計算機軟件的質量。針對目前的形勢來說,計算機軟件的應用范圍更加廣泛,軟件工程也得到了實質性的解決。因此,要想解決這個問題,便需要不斷改善計算機軟件工程的開發條件。但是,就目前計算機軟件的開發空間來說,仍然落后于其他國家,還具有較大的發展空間。所以,我們就應該努力去解決各種困難,不斷解決這些問題。這樣就促使計算機軟件的開發空間變得更寬、更大了,應該讓更多的人們去認識認識、了解并且去應用它,讓它得到更大的發揮,帶動我們國家的經濟能力,把人們的生活水平提高,為我們國家的發展做出貢獻。
四、總結
關鍵詞:軟件開發;項目管理
中圖分類號:TP311.52 文獻標識碼:A 文章編號:1007-9599?。?012) 18-0000-02
1 軟件項目開發管理的必要性及其相關要素
1.1 軟件項目開發管理的必要性。所謂項目管理,主要指的是通過在項目中利用一些知識、工具、技能以及技術來實現相關利益者的期望及要求,換句話說,項目管理就是通過項目中各方面關系者的合作,將資源更好的應用到項目中,來實現項目的既定目標。本質上來說,項目管理是對質量、成本以及時間的控制與管理。
當前,隨著軟件開發越來越深入,新的技術以及相應的產業也已經逐步形成,這種背景下,人們越來越意識到軟件開發過程中應用項目管理的重要性,通過將其思想融入到開發過程中能夠給軟件開發的效率、成本以及質量起到很大的促進效果。
1.2 項目管理三要素。在不同軟件的項目管理中,其管理的的目標是不一樣的,而且在軟件項目的大小上也存在著一定的差距。但是,無論怎樣變化,管理過程中有三個要素是不變的,也就是進度、質量以及成本。一般來說,這三個要素之間存在著較為緊密的關系,并不是相互獨立的。舉例來說,一般如果要獲得高質量的軟件,則工期必然會比較長一些,而且開發的成本也要高一些?;诖?,在軟件項目開發的過程中,怎樣保證這三個要素之間的平衡,使其符合我們的既定期望是一個非常重要的問題,它不僅僅關系著用戶的滿意度,和項目的經濟效益以及成本也有著重要的關系。
一般來說,確保軟件的質量是開發過程中最為關注的一個問題。實際的工作中,如何在保證軟件能夠實現其設定功能的前提下使其符合我們質量的要求是一個重要的課題。另外,成本也是項目管理的一大重點,當前,很多項目中,我們往往會過多的關注質量以及工期,卻忽視了成本的控制,這種行為如果得不到很好的解決甚至會導致項目出現虧損?;诖?,在我們的工作中,我們要從進度、質量以及成本這三個部分入手。
2 軟件項目開發管理的要點
2.1 項目計劃。在軟件的開發過程中,項目計劃代表著項目進入的啟動階段,其主要的任務主要可以分為:對項目實施的范圍進行確定、對需要遞交的成果進行定義、評估開發項目中存在的風險、對時間計劃、成本計劃以及人力資源計劃進行制定。
2.2 組織模式。在軟件開發項目管理的實行中,我們要先建立一個項目的領導小組,在小組下設立管理小組、開發項目組以及項目的評審小組。
(1)領導小組。這屬于項目管理中的最高決策層,一般的情況下是由企業的總經理以及副總經理等組成,其主要的任務是:對項目的總方案以及實施計劃進行審批;對項目實施中遇到的事件起到決策的作用;對項目中的進度、成本、質量、風險等進行宏觀的監控;組建驗收小組,并對驗收工作進行主持;對各方面的工作進行協調。
(2)管理小組。一般來說,這一小組的成員主要包括項目經理以及各種項目的人員,其具體的工作如下:依照具體的要求來制定計劃,并監督計劃的實施,起到控制進度的作用;對項目內的分工進行協調,確保資源合理分配;確保項目開發過程中質量及過程符合相關的標準;對各階段的評審工作進行負責;制度驗收的標準,并將其送至領導小組審批。
(3)開發項目組。開發項目組主要的構成人員包括技術人員以及專業開發商開發人員,其主要的工作是:對系統的需求進行調研;負責系統的設計;進行程序的編碼;測試系統;配置系統開發環境以及測試環境;對測試所需的數據進行準備;進行生產系統的安裝。
(4)評審小組。這一小組主要是由市場專家以及技術專家組成。其主要的工作時評審項目的可行性報告;評審開發的計劃;評審各階段報告;評審項目結束后的總結報告。
2.3 項目管理的內容。軟件開發的過程中,我們可以將其分為6個極端,以下將對各個階段的管理工作進行分析:
(1)需求分析階段。這個階段屬于項目開發的首要階段,主要的任務是確定用戶的實際需求,并以此作為基礎對項目開發功能點進行確定,在這個階段中,我們需要制度《項目需求規格說明書》。
(2)概要設計階段。這個階段主要內容有:設計系統框架、設計數據結構、設計接口、設計功能模塊以及開發的目標和環境,在概要設計階段,我們需要形成《概要設計說明書》這一文檔。
(3)詳細設計階段。這是以上一階段為基礎,對每個模塊的算法進行設計,并對數據結構進行物理設計,這是編碼階段的基礎,其形成的文檔是《詳細設計說明書》。
(4)編碼階段。這屬于開發軟件的實質性階段,主要的工作是將各種算法轉換為代碼。需要注意的是,由于不同的開發人員在風格和編碼習慣上存在著差異,因此,在開發之前確定編碼規范是一項非常有必要的工作。
(5)測試階段。這主要是指在已知環境中使用已知輸入來動態的執行系統,主要包括單元測試、集成測試、模塊測試以及系統測試。這個過程中,需要形成的文檔有《項目測試計劃》以及《項目測試報告》。
(6)系統上線和維護階段。在這個階段開始之前,我們要進行《系統上線計劃書》的編寫,對其上線的時間、步驟、環境、風險以及應急方案等進行詳細的說明,這些說明越詳細越能夠保證系統安全生產的成功性。至于維護階段主要是指處理系統運行過程中出現的問題以及對原有的功能模塊進行修改或者擴展。
2.4 項目評審。對于項目的評審并不只是完成項目開發之后進行,在開發的每一個階段中都要進行項目的評審。主要是由于項目開發的各個階段中都可能出現問題,而這些問題如果不能夠被及時的發現并糾正,則很可能出現擴大,容易導致項目的失敗。一般來說,在項目評審的過程中,主要的標準有:
正確性,這主要是指項目可以在預定的環境之下正確的實現預期的功能;健壯性,這是指硬件出現問題、操作失誤以及輸入數據無效等情況下,系統是否可以做出合適的響應;效率,代表著系統為例實現預定的功能所需要消耗資源的數量;安全性,在系統被未經授權的人使用或者操作過程中,安全性代表了其控制這種行為的程度;可用性,表示系統在完成預定功能的時候令用戶滿意的程度;風險,它表示了項目開發的時候,是否可以按照預定的進度以及成本將軟件開發出來以及開發出來的軟件被用戶滿意的概率;可理解性,表示系統被用戶理解以及使用的難度大?。豢删S護性,它表示了我們在對發現系統中存在的問題之后,當改正這些問題時所需要的工作量的大??;此外,還有可測試性,表示了系統測試的難易程度;可移植性,代表著將一個程序沖某種配置環境轉移到另一種環境中所需要付出工作量的多少;可再用性,指在其他應用中這一程序能夠被再一次使用的程度;互運行性,表示了將這一系統與其他系統結合起來時所需要付出工作量的多少;
3 結語
軟件項目開發管理是一項非常重要的工作,本文只是對其進行了簡要的分析,在具體的工作中,我們還要結合自身的特點,加強這方面的探索,只有不斷地進步,才能使我們的企業在當前的環境下真正立于不敗之地。
參考文獻:
[1]吳艷艷,周長倫,姜家軒,王春梅,許自國.軟件項目管理中的需求管理[J].信息技術與信息化,2008,2.
關鍵詞:軟件工程;實踐教學平臺;角色扮演;學習空間;知識庫
1、高校軟件工程課程實踐教學現狀
隨著我國經濟的發展,軟件產業在國民經濟中越來越起到了舉足輕重的作用。高校作為社會所需人才的培養基地,有責任和義務培養和提供掌握軟件開發方法和具有實踐技能的軟件人才,以更好地促進軟件產業的發展。為此,很多高校開設了軟件工程課程,以讓學生從工程化的角度認識軟件開發和維護,工程化的概念、原理、技術和方法必須通過實踐才能真正理解和把握。但是,目前的軟件工程課程教學存在著“重理論、輕實踐”的現象,且傳統的授課模式也不利于開展實踐教學。下面將對目前高校軟件工程課程實踐教學中存在的困難和問題進行分析。
1.1 傳統的課程結構設置,不利于開展實踐教學
目前,高校的軟件工程課程結構基本上是采用理論課+上機課的形式,總學時為48學時,其中,理論課36學時,上機課12學時。這樣的課程結構設置凸顯了以教師講授為主、實踐教學為輔的特點,學生的實踐訓練基本以課下為主。
1.2 教學案例過于“文檔化”,學生無法了解過程細節
在軟件工程課程的教學中,教師一般都會從教材或其他資料上引入一些軟件開發的案例,但是,這些案例一般都是直接給出了結果,卻沒有對過程進行詳細的描述。例如,在講授需求分析時,可能案例中直接給出的是需求分析的結果——《需求規格說明書》,其中描述了功能需求、性能需求、接口需求、安全性需求等,并構建了相應的分析模型,但是卻沒有給出需求分析的過程描述,即這些功能、性能等的需求是如何分析出來的,模型是如何一步一步建立起來的等。再如,在講授系統設計時,案例中可能直接給出了數據庫設計的結果,其中包括數據庫表結構、視圖等,但是卻沒有詳細的描述數據庫設計的過程,即如何建立數據庫設計模型,如何設計相應的數據庫表,數據庫表中的字段以及字段的類型、約束等是如何得到的等。這些案例只有結果描述,類似于企業里開發所用的文檔,學生僅僅通過這些“文檔化”的案例,是無法真正掌握軟件開發的細節的,而導致的結果是——學生看看都會,聽聽都明白,動起手來卻是滿腦子空白。
1.3 缺乏有效的實踐教學環境。無法做到“學”“練”和“指導”的全過程互動
目前的軟件工程課程實踐教學主要采用學生課下完成實踐作業的形式,學生在學習“紙質的”和“靜態的”理論知識和案例的基礎上進行開發實踐,這樣的實踐教學過于簡單,缺乏環境的支持,無法做到“學”“練”和“指導”的全過程互動,不利于真正提高學生的實踐能力。
(1)學生只能被動地學習和接受案例,但是卻不能提出自己的見解,更不能將其與其他學生來分享。
(2)學生無法對案例細節和過程進行“拆解”,并對某部分過程和細節進行模擬訓練,更無法對模擬的結果進行動態的對照,發現自身理解的偏差和問題,從而加深對案例的理解和掌握,不至于讓案例學習“流于表面”。
(3)學生無法通過實踐環境,動態創建軟件開發項目,并將項目開發的過程細節和結果與其他學生進行分享,甚至讓其他的學生動態參與其中,也無法讓教師對實踐項目進行全程指導。
(4)學生沒有自己的學習空間,無法將課程學習和實踐中的心得、體會等進行記錄,也無法將一些好的技術、方法等資料與其他學生進行分享。
(5)案例的更新缺乏一種動態的機制,只能依賴教師去收集,無論是數量,還是真實性、貼切度,都無法滿足實踐教學的要求。
2、具體改革實施方案
經過上文的分析,我們發現目前的軟件工程課程實踐教學存在課程設置不合理、缺乏能夠被學生深入學習和理解的實際案例、缺乏能夠支持“學”“練”和“指導”全過程互動的實踐教學環境等問題。為此,我們提出了基于實踐教學平臺的軟件工程課程實踐教學改革方案,主要從課程結構設置和實踐教學平臺的使用兩個方面人手,加強學生的實踐訓練,并以實踐教學平臺為支撐,讓學生切實提高實踐能力。下面將對具體的改革方案進行論述。
2.1 以課程實訓代替上機課,加強實踐教學
我們以課程實訓來代替傳統的上機課,將總學時數由48學時調整為64學時,其中,理論課設置為32學時,實訓課設置為32學時。課程實訓是在教師的指導下,由學生自己完成一個完整的軟件開發實踐課題,具體的課程內容如下。
(1)課題確定:由學生自己根據日常生活和學習中所接觸或熟悉的軟件來命題,如學生管理系統、圖書館管理系統、選課系統、宿舍管理系統等,也可以由教師結合教學、科研的實際情況設置多個課題供學生選擇,要求課題的規模大小適中,有一定難度,但經過努力可以較好地完成。
(2)組織形式:課題以小組的形式來進行組織,包括一位組長和3~4位組員,對于系統中的部分開發工作也可以采用“外包”的形式,即由組外的其他學生來幫助完成。
(3)教學安排:實訓課每周安排2學時,每一位組長在課上介紹本組項目的進展情況和碰到的問題等,其他項目組的學生可以就項目的某些部分提出疑問,教師可以對項目的實施進行指導,也可以引導學生就某一細節問題展開討論。
(4)成績評定:課程實訓結束時,每組需提交所完成的軟件系統和相關的文檔、實踐報告等,而成績的評定采用驗收答辯的形式,即每個小組演示開發完成的軟件系統,并總結項目實踐經驗和提出改進意見,由教師主持實踐項目驗收答辯,由其他組的代表(或組長)充當評委,共同對實踐項目的成果進行評審并打分,最后由教師進行綜合評定,給出每組的課程實訓的最終成績。
2.2 建立完整的課程實踐平臺,注重過程學習和模擬實踐訓練
我們建立一套完整的課程實踐平臺,學生可以利用平臺來進行案例學習和模擬訓練,也可以通過共享資料來形成知識庫,供每個人參考。此課程實踐平臺主要包括4個部分。
1)案例學習機。
案例學習機主要為學生提供完整的案例,以供學生進行學習。案例學習機包含由多個案例構成的案例庫,案例的選擇基本上以學生所熟悉和易于接受的軟件開發項目為主,每個案例都詳細記錄了一個完整的軟件開發項目實踐,包括項目管理的內容,具體內容包括以下幾個方面。
(1)案例分解,細節分析:每一個案例都是完整的整體,同時又可以按照軟件開發的流程(瀑布模型)進行分解(如圖1所示),學生既可以看到軟件開發過程中每一步的結果,也可以看到每一步的過程細節,包括開發中所碰到的問題,解決的辦法,甚至開發中所走的彎路等,都可以在案例中進行瀏覽和學習。
(2)個性思考:學生在學習案例的過程中,可以針對某一個細節進行思考,并發表自己的評論(如圖2所示),也可以瀏覽其他學生針對此所發表的評論,所有的評論構成了一個個性思考評論空間,可以給后續的更多的學生提供借鑒。
2)項目模擬訓練器。
項目模擬訓練器為學生提供了一個案例模擬和項目開發實踐的平臺,為學生進行課程實訓提供了實踐環境,學生可以將案例作為框架,進行模擬訓練,也可以進行全新的項目開發實踐訓練,具體內容包括以下幾個方面。
(1)案例模擬環境:學生可以直接引入一個案例作為模擬項目,可以參照案例的執行步驟自行進行每一步的執行操作,并將自己的操作結果與案例進行對照(如圖3所示),找出自己模擬訓練中存在的問題。
(2)項目實踐環境:學生可以自行創建一個新的項目,實踐環境將給出項目管理和開發實踐的基本流程及任務框架(如圖4所示),學生可以進行項目組建、編寫項目計劃、記錄項目執行過程,可以按照軟件開發流程進行需求分析、系統設計、編碼及測試等活動。
這樣的項目實踐環境是全方位的,即學生可以訓練項目管理方面的技能,也可以訓練軟件開發環節的技能,如學生可以創建一個項目,并擔任項目經理,同時可以將項目在系統中,并“招聘”分析人員、設計人員、編碼人員、測試人員等,其他學生可以在系統中看到的“招聘”信息,如果愿意的話,可以在此項目中擔任相關的角色,這樣可以實現一種“角色扮演”,即某個學生既可以是A項目的項目經理,以此訓練項目管理方面的技能,也可以是B項目的系統分析師,以此訓練系統分析的技能,還可以是C項目的開發工程師,以此訓練編碼實現的技能等。
(3)網上評審:學生在項目實踐環境中創建了自己的項目后,安排相應的開發工作,在每一個開發階段結束時,都可以“網上評審”邀請,其他學生可以對該項目本階段的工作進行評審和打分,這樣,最終會匯總出每個項目的總分,也可以根據每個學生在各個項目中參與的工作評分匯總出其項目實踐的總分,教師也可以很容易統計出每個學生的實踐課程成績。
(4)師生交流平臺:教師和學生可以在模擬訓練器中針對某個具體的任務或實踐活動進行交流,教師可以提出相應的指導意見,也可以創建一個論壇,以方便學生之間、學生和教師之間的交流。
(5)案例申請:學生可以將自己的實踐項目申請成為案例,教師對實踐項目的過程細節和結果進行評估,若通過,則可以提交到案例學習機的案例庫中,這樣可以形成一個良性循環,不斷地補充由學生自己開發的真實案例,以供更多的學生進行學習。
3)學習空間。
學習空間是為每個學生的課程學習和實踐所建立的一個私有空間,學生可以將課程學習的計劃、日程安排、學習心得等置入學習空間中,形成一個完整的學習平臺。學生可以在個人的學習空間的桌面上放置便簽、今日安排、實踐項目列表、消息提醒、常用聯系人等快捷圖標(如圖5所示),并通過點擊進人相關部分進行操作。
4)知識庫。
知識庫是所有資料的共享空間,學生和教師均可以將與軟件開發項目相關的資料上傳到知識庫中,并依照技術、管理等進行分類,以供所有學生進行查閱(如圖6所示),還可以建立一個FAO庫,把所有的問題和問題的解答(可以是教師解答的,也可以是其他學生解答的)進行記錄并存儲到FAQ庫中,以供學生在實踐過程中碰到問題時進行查閱參考。
建立了課程實踐平臺后,軟件工程的課程實訓就可以依賴此平臺進行開展,學生可以在“案例學習機”中進行學習,在“案例模擬環境”中自己動手參照案例進行模擬訓練,在“項目實踐環境”中創建和組織新的項目,也可以參與到其他組的項目工作中,在“學習空間”中構造自己的私有學習環境,記錄學習心得等,還可以將心得或資料上傳到“知識庫”中,與其他學生進行分享,從而使“學”與“練”動態結合,真正達到課程實訓的目標。
隨著社會對人才需求的變化,培養高素質的應用性人才成為我校辦學的方針,為培養學生的實踐動手能力和操作技能,我們修改了軟件工程的教學大綱,針對學生的實際和該課程課時較少的狀況,課堂上主要講解重點,次重點的內容讓學生在實驗過程中掌握,刪除一些過時的內容,增加學科的最新知識和研究進展,使學生了解更多的前沿知識,增加學生的學習興趣。
2改革教學方法
軟件工程的方法、原理和技術都是為了軟件開發服務的,所以實踐性知識是其教學的關鍵,所以在教學過程中引入案例教學,讓學生利用軟件工程的方法、原理和技術進行分析和練習,激發學生的學習興趣。具體的做法是,教學前,教師選取合適的案例,公布給學生,指導學生進行分組,按照軟件工程的開發流程進行任務分配。然后通過分析案例的解題思路和方法,引出案例中用到的知識點,將枯燥的理論和技術用生動形象的方式表達出來,再要求學生按照小組對案例進行討論,歸納和總結,對案例進行完善和擴展,達到學生快速的掌握知識和能力的提高。
3提高實踐能力
軟件工程是實踐性很強的一門學科,單純的理論講授并不能讓學生很好的掌握軟件工程的知識,必須讓學生動手參與具體的項目開發,才能夠在實踐中合理的應用軟件工程相關技術和方法。為了讓學生很好地利用軟件工程的思想進行項目開發,在學期初就安排學生按照自愿的原則進行分組,一般要求4-5人一組,小組成員推選出一個組長。結合之前學習過的課程,每個小組選定一個開發項目,這些項目可以有教師指定,也可以小組成員自主選定。隨著軟件工程課程的進行,每個小組需要按照軟件工程生命周期完成可行性研究、需求分析、概要設計、詳細設計,實現和測試等內容的相關文檔,在每個生命周期結束的時候,需要小組組長提供該生命周期的文檔,并從各個小組中隨機抽取一些小組進行答辯,由教師和其他小組組長組成的答辯小組對其進行提問和總結。實踐證明這種項目開發方式不但可以培養學生實際解決問題的能力,還可以培養學生的團隊合作精神,為以后參加工作打下堅實的基礎。
4教學評價改革
作為一門實踐性的課程,最后成績評定的重點不應該是理論考試的成績,而應該是學生是否在軟件開發中使用軟件工程的理論、方法和技術,是否正確的使用軟件工程的方法提高軟件質量。所以,要將實踐部分即項目開發部分的比重加大到30%,平時課堂上案例總結部分比重為10%,試卷部分比重60%。而且試卷應該以開卷考試為主,在試卷中,綜合性和實踐性的題目應該占主要部分。這樣就不會讓學生在學習的過程中死記硬背,而應該以理解和會應用為主。
5結束
[關鍵詞]項目管理軟件需求開發進度成本質量管理模型
一、引言
軟件需求開發是軟件工程的一個重要環節,在軟件生命周期中的需求、設計、編碼、測試和維護等各個階段中,需求開發處于軟件工程的開始部分,它提供構建軟件項目的根基,決定軟件開發成果滿足客戶需求的匹配程度。軟件需求開發環節的失誤會隨著開發進度的擴大而蔓延,資料表明,軟件項目中由于需求開發管理混亂而造成的返工開銷幾乎占了總開發的50%。本文應用項目管理理論分析軟件需求開發階段的系統構成,并設計管理模型來提高軟件需求開發的管理效率。
二、軟件需求開發管理過程
由于計算機技術的迅速發展,使得軟件需求具有模糊性、不確定性、變化性、主觀性等特點,并帶來軟件需求開發管理的復雜性。軟件需求開發是一定的組織利用有限的資源在規定的時間內完成,可以作為項目來進行管理,其管理過程由需求獲取、需求分析、編寫軟件需求規格和需求驗證四個階段構成。
1.需求獲取
需求獲取是在問題和最終解決方案之間架設橋梁,其主要任務是和用戶方的領導層、業務層人員進行溝通,獲取用戶的具體需求,并了解用戶的組織架構、業務流程、硬件環境、軟件環境、現有的運行系統等具體情況,同用戶建立起良好的溝通渠道和方式。軟件需求獲取的方法有:與用戶交談,向用戶提問題;參觀用戶的工作流程,觀察用戶的操作;用戶工作的情景分析;現有系統的問題報告和改進要求,事件和響應;市場調查和向用戶群體發調查問卷;與同行、專家交談,聽取他們的意見;分析已經存在的同類軟件產品,提取需求;從現有產品或競爭產品的文檔中提取需求;從行業標準、規則中提取需求;從Internet上搜查相關資料等。
2.需求分析
需求分析主要通過建立業務模型的方式來描述用戶的功能需求,為客戶、用戶、開發方等不同參與者提供一個交流的渠道。業務模型可以映射出軟件產品的核心需求,即功能需求。功能需求應描述軟件提供的功能和服務、對輸入的響應,并描述特定條件下的系統構成等。軟件產品本身可能還存在與業務無直接關系的非功能需求,具體與系統的總體特性有關,如可靠性、響應時間、存儲空間等。非功能需求定義系統提供服務或功能的約束,包括時間約束、空間約束、開發過程約束及應遵循的標準等。通常這兩類需求構成軟件需求的總集。
3.編制軟件需求規格
軟件需求規格的編制是為了使用戶和軟件開發者雙方對該軟件的初始規定有一個共同的理解,使之成為整個開發工作的基礎,需求分析完成的標志就是提交一份完整的軟件需求規格說明書。軟件需求規格說明書以一種開發人員可用的技術形式闡述軟件必須提供的功能和具備的性能,以及必須考慮的限制條件。軟件項目客戶通過軟件需求規格了解軟件項目能夠提供的軟件產品,檢查軟件需求是否滿足需要;項目管理人員根據軟件需求規格制定項目的開發計劃和管理過程;軟件開發人員通過軟件需求規格理解要開發的產品及具體要開發的內容;軟件測試人員通過軟件需求規格驗證軟件。
4.需求評審
編寫的軟件需求規格說明書還應當進行需求評審,確保需求確定的科學性??刹捎孟铝兄笜诉M行評審:(1)正確性:每條需求都正確代表構建軟件系統所要完成的事情。(2)無歧義:每條需求只有一種解釋。(3)完備性:需求不能發生遺漏,應全面考慮相關問題。(4)一致性:用戶需求必須和業務需求一致,功能需求必須和用戶需求一致。(5)重要性和穩定性分級:現有資源不足以實現所有需求時,可以根據級別的高低決定實現的先后,舍棄一些級別低的需求以保證項目的按期交付。(6)可驗證性:需求分析是可測試的,只有系統的所有需求都是可以被測試的,才能夠保證軟件始終圍繞著用戶的需要,保證軟件系統是成功的。(7)可修改性:每一條需求都易于完整一致的進行變更,且不改變需求集的結構和風格。(8)可跟蹤性:每條需求都是可溯源的,且存在一種機制使得在以后的工作中引用需求是可行的。(9)可理解性:用戶和開發人員都完全理解需求集的整體行為、所提供的功能及其中的每條需求的含義。
三、軟件需求開發管理模型
1.軟件需求開發管理模型構建原則
軟件需求開發是一項復雜的系統工程,管理模型的構建應遵循下列原則:(1)程序性原則:軟件需求開發管理應遵循固定的業務流程,可將其劃分為需求獲取、需求分析、編寫軟件需求規格和需求驗證四個階段,前一階段的工作完成后才能進入下一階段。(2)系統性原則:軟件需求開發要在限定的時間、成本條件約束下達到一定的質量,實現軟件系統的最優,要求管理遵循系統管理原則,實現目標最優。(3)簡化性原則:化繁為簡,將模糊的、潛在的復雜問題明確化,以圖表的形式表示出,并以簡化的解決方案解決問題,便于項目管理。(4)平衡性原則:管理軟件需求開發的具體事務要有一定的側重。對于需求開發過程事項,應根據影響大小分清主次,關鍵的事項或者事項里的某個多發問題點,著重管理,達到在管理上的主次平衡。(5)高效性原則:模型的設計必須以促進需求開發目標的實現為前提,提供給相關人員一個展示需求開發管理和有效解決方案的平臺。(6)時時控制性原則:及時控制需求開發過程中影響進度、成本、質量等問題,及時發現解決沖突事件,做到事前、事中、事后控制,保證項目按時保質保量完成。(7)動態性原則:開發中應關注信息技術的發展,將先進的技術應用到軟件需求開發中,并學習借鑒相關軟件需求開發的成果。
2.軟件需求開發管理模型
基于以上分析,本文構建了軟件需求開發管理模型,見下圖:
該模型遵循了軟件需求開發的管理流程。啟動階段,軟件開發進行了可行性研究,軟件項目已立項,項目正式啟動。軟件需求開發管理階段是模型的主要部分,按照項目流程,依次劃分為需求獲取、需求分析、編寫軟件需求規格和需求驗證四個階段。總結階段,對軟件需求開發管理進行總結,并進入到軟件程序設計階段。模型的核心部分是應用項目管理的進度管理、成本管理、質量管理,對軟件需求開發進行動態管理。進度管理就是制定出經濟合理的進度計劃,然后在計劃執行過程中,檢查實際進度與計劃進度之間的差異,并及時找出出現差異的原因,采取有效的補救措施,以確保項目按時按質完成。進度管理應加強溝通,掌握可能延誤進度的環節,并嚴格控制進度變更。成本管理就是對項目所需的成本情況進行詳細地分析和估算,編制資源需求計劃,并編制項目所需的成本估算和預算,在執行過程中,采取相應的措施對項目成本進行控制。成本管理應嚴格控制加班、浪費等額外支出。質量管理是為了保證項目的可交付成果能夠滿足客戶的需求,圍繞項目質量而進行的計劃、協調和控制等活動,其具體內容涉及質量規劃、實施質量保證和質量控制。通過進度管理、成本管理和質量管理,使軟件需求開發成為進度快、成本低和質量合格的有機統一體。
該模型規范了軟件需求開發的業務流程,并在整個軟件需求開發的不同環節之間建立聯系,明確需求開發過程與自身各任務項之間以及項目其余環節所存在的各種聯系。模型各環節間的相關性、可追溯性保證了軟件項目需求開發過程,可以遵循統一的管理模式。該模型具備可配置性。每個軟件項目,都具有個性化管理需求,在進度管理、成本管理、質量管理等方面有不同的要求,可以針對具體的開發團隊,項目要求,管理側重點,擴增相應的管理模塊,將此模型推廣到任何一個軟件需求開發項目。
3.模型應用
由于軟件需求開發具有復雜性,其主要表現為需求描述問題,明確表達需求較難確定,并且難以統一;需求完備問題,需求沒有遺漏,難以準確劃定系統范圍;需求的變更問題,需求變化是永恒,需求不可能是完備。模型應用需做好以下工作:(1)文檔化管理。需求必須有文檔來記錄,該文檔必須是正確的,是經過驗證的,是在受控的狀態下變更的。開發或管理人員常常會在含糊的情況下把認為是相對簡單的需求忽視而省略文檔記錄,其實未必簡單,只有想清楚、寫清楚、說清楚才說明已經真正把需求整理清楚了,同時方便日后維護工作的展開。需求含糊的情況下要進行會議形式處理,并邀請相關人員參加進行需求澄清及確定,需求在進行多方確定后進行歸檔。同時軟件需求的復用率也是相當高的,可以避免升級時重新將需求再次獲取,只需要在原來的基礎上作為文擋需求復用升級處理。(2)審核評估需求變更,減少變更的影響。在管理軟件開發過程中,需求漸變是必然的,無論需求變化的程度如何,只要需求變更就必須進行評估。在需求變更之前必須由項目管理人員審核,再傳給開發人員進行評估等工作。管理人員必需依據對整套系統的了解程度分析需求變更過程中可能受影響的系統及受關聯的功能模塊,并制定積極應對措施。(3)整體管理。應識別、確定、結合、統一與協調軟件需求開發管理過程中所需要進行的各種過程和活動,保證進度、成本、質量等各要素的相互協調。
四、結語
軟件需求開發在軟件項目管理中具有重要地位。本文應用項目管理理論,設計了軟件需求開發管理模型。該模型遵循項目管理流程,將軟件需求開發劃分啟動、需求開發過程、總結三個階段,并將軟件需求開發過程劃分為需求獲取、需求分析、編寫軟件需求規格和需求驗證四個階段,模型應用項目管理的進度管理、成本管理、質量管理,對軟件需求開發進行動態管理,實現軟件需求開發項目目標最優。該模型能夠提高軟件需求開發管理效率,確保軟件開發能夠按進度,低成本,高質量地完成。
參考文獻:
[1]景慎艷:軟件項目需求管理的探索與實踐[J].電腦知識與技術,2008(27)
[2]左懷遠:軟件項目中的風險管理研究[J].世界科技研究與發展,2008(3)
[3]孫琦龍:加強軟件項目管理的實踐模式[J].科技信息,2008(7)