軟件開發項目總結范文
時間:2023-03-14 11:01:59
導語:如何才能寫好一篇軟件開發項目總結,這就需要搜集整理更多的資料和文獻,歡迎閱讀由公務員之家整理的十篇范文,供你借鑒。
篇1
在進行水利信息化項目建設中,相關軟件的開發項目涉及方面廣,影響因素多。在傳統的水利信息化管理工作中,只注重項目建設,對項目質量管理重視程度不夠,項目開發直接由設計單位進行設計,經過設計評審后實施開發,在開發過程中由于各方面的溝通和協調等原因影響,使得軟件開發項目頻繁出現需求變更,并最終影響整體項目的實施質量和實施效率。此外,沒有一個系統的質量管理體系和規范的質量管理方法使得軟件開發過程中管理混亂,極易出現質量事故。因為水利信息化項目主要應用于水庫、河道、堤防等關系到社會和廣大人民群眾安全的水利工程,一旦出現事故,將會威脅到人民群眾的生命財產安全,所以必須加強對水利信息化工程尤其是相關軟件開發的質量管理。水利行業的軟件開發管理措施和方法都不夠全面、規范,如何根據現有的知識,對水利行業的軟件開發進行研究,最大限度地提升軟件的管理水平,是研究重點。
2研究目的和意義
質量,通常指產品的質量,對軟件行業來說,軟件質量會導致整個軟件的成敗,一個小小的質量問題可能會導致非常致命的結果。做好軟件的質量管理不但能促進項目決策的合理化、科學化,還能在項目實施過程中實現高效化、準確化,保障項目目標的最終實現,切實提高項目成功率。目前,國際上逐漸開始重視軟件工程的項目管理,一系列理論和方法的出臺提高了軟件開發的效率和客戶的滿意度,為軟件開發企業帶來了非常客觀的經濟效益和社會效益。為此,以國際上的先進經驗為參考,制定適合我國的軟件開發的項目管理是十分必要的。分析水利信息化項目中軟件開發質量的影響因素,通過對企業組織結構的優化和軟件項目過程的改進,獲得項目實施質量的提升,從而減少軟件開發中產生的問題對開發部門造成的損失,降低開發成本,提升整體開發水平。
3影響軟件開發質量的因素
就軟件質量而言,影響軟件項目質量包括以下兩大方面因素。
3.1人的因素
軟件項目的管理要以用戶的想法為根本目標。產品生產就是為了滿足用戶的需求。一個能夠滿足用戶需求的軟件,就是一個優質的軟件??蛻舻男枨髸S著開發的進行而不斷調整。只有在開發的各個階段都能滿足用戶的需要,達到用戶的要求,這個軟件的質量才能得到保證,而在軟件開發過程中樹立質量第一的思想就是體現在更好地為用戶服務的行動上。
3.2開發流程
軟件開發流程是在軟件開發模式框架的指導下實施軟件開發的全過程描述和定義,包括軟件開發生命周期各階段的定義、開始前提條件、參與者描述、產出物描述、完成條件等。一個合理定義的軟件流程能夠將軟件開發模型的優點充分發揮出來,同時減少軟件開發過程中產生的負面影響。
4應用分析
4.1項目開發質量目標
首先,項目總負責人向項目組成員指出水文測報軟件在整體水文監測項目中的重要性,并強調質量是最優先考慮的。其次,各成員從自己的角度提出幾個目標,如質量經理的目標是保證合格率、開發人員的目標是保證測試通過率等。再次,團隊在一起討論制定的目標的可行性,是否能夠實現以及需要的條件。其中,每百段程序BUG數按照模塊統計,本次制定的目標為每百段程序BUG數小于10處;單元測試分模塊進行,本次目標為每個模塊的單元測試通過率大于90%;集成測試、系統測試、驗收測試為模塊的集合體測試,按照百分制原則分別制定質量目標為得分80分以上及75分以上;本次軟件開發項目計劃工期45d,本次制定目標為在計劃工期內完工;本項目概算總投資100萬元,取利潤10%,故目標經費使用為90萬元;客戶滿意度按照優良中差四級評定,本次質量目標為取得客戶滿意度優。
4.2軟件開發質量管理影響關鍵因素分析
4.2.1質量計劃對軟件開發項目質量的影響
軟件的開發一般分為4個過程,即定義需求過程、預開發過程、開發過程和維護過程,通過資金使用的情況反映質量計劃的影響。參考以往軟件編制過程中4個階段開發的使用情況和對開發結果影響力進行統計分析,影響力按照百分制計算,由參與軟件開發的各方進行評分取平均數,100分為影響最大,0分為最小。軟件開發階段,資金在早期使用的效率最高,可以對項目結果起到比較大的影響,而軟件開發計劃的編制能夠在軟件開發的定義階段即對軟件開發的目標、組織、資金安排進行較詳細的定義和計劃,能夠在早期按照合適的比例安排軟件開發的資金,從而對結果產生比較大的影響。
4.2.2質量控制對軟件開發項目質量的影響
軟件開發中,發生編制錯誤的次數直接影響軟件開發的質量。影響軟件開發項目質量的因素很多,這里選取質量控制中的5個關鍵因素即控制點的選取、組織領導的責任、測試的規范性、環境因素以及質量計劃。在此基礎上,調查統計由于關鍵因素的原因導致軟件開發發生編制錯誤的次數,并繪制直方圖。,質量控制能夠對軟件開發質量產生直接的影響,集中體現在編制發生錯誤次數方面。
4.2.3質量保證對軟件開發項目質量的影響
軟件開發質量保證主要體現在軟件開發的模型選擇和應用上。原始的軟件開發使用的是傳統的瀑布模型,將軟件開發項目作為一個整體進行設計,方式如圖2所示。采用質量保證措施后開發模型轉化為圖3的形式,由圖3可以看出,使用質量保證措施將每個開發階段再次細化,可以對各個環節的變化情況加深認識,做到每個開發階段出現的問題能夠在本階段解決,不拖入下一階段,這對軟件開發質量起到了保證作用。
4.3保證軟件開發質量的措施
根據軟件開發中曾經發生過的問題和預計會發生的問題,結合項目質量管理理論,使用質量管理工具,在質量計劃、質量控制、質量保證3個方面對本次軟件開發進行質量管理。
4.3.1軟件開發項目的質量計劃
(1)制作因果分析圖。在進行質量計劃時,首先明確質量計劃的目標,即開發質量合格、便于使用、用戶滿意的軟件,根據水文自動測報預警軟件開發項目的產品說明和水務信息化建設相關規范要求,運用頭腦風暴法對軟件開發中可能會導致質量不合格的情況進行整理并繪制因果分析。(3)成果輸出。①將總結形成的計劃管理成果匯總,形成各個階段的人員、組織、資金、資源、權限等管理計劃,指導質量管理的進行;②通過一系列質量計劃的管理,最終以質量計劃檢查表的形式輸出質量計劃成果。(2)編制軟件開發工作流程圖。本次項目開發時,分別從質量計劃、質量控制、質量保證3個方面進行質量管理,在軟件的可靠性、硬件的可靠性以及軟件硬件結合后的可靠性方面都做了大量的工作。一方面,在項目前期階段,通過對規劃計劃的質量管理,在項目初期樹立正確的開發方向,從而在項目前期工作進行質量管理。另一方面,在軟件的開發階段,通過對人員和開發流程等方面的管理,實現對項目開發階段的質量管理。最后,在項目的實施階段中,執行項目計劃,嚴格進行項目測試,通過演練、試運行等方式對整體項目進行質量管理。3個階段中,每個階段的質量管理都非常重要。軟件開發質量管理流程。
4.3.2軟件開發項目的質量控制
(1)質量控制點設置與管理。質量控制點是實施質量控制的重要組成部分,軟件開發的質量控制點是項目質量控制的重點對象。質量控制點應選擇那些技術要求高、開發難度大、對工程質量影響大或是發生質量問題時危害大的對象進行設置。依照質量控制點的要求和特點,選擇了本次軟件開發中相應的質量控制點。設定了質量控制點,質量控制的目標和工作重點就更加明確。在軟件開發中,首先要做好項目質量控制點的事前質量預控工作,包括明確質量控制的目標與控制參數、編制開發指導書和質量控制措施、確定質量檢查方法及抽樣的數量和方法、明確檢查結果的判斷標準及質量記錄與信息反饋要求等。其次,還要做好軟件開發質量控制點的動態設置,隨著軟件開發條件的變化,隨時或定期進行控制點的調整和更新。應用動態控制原理,落實專人負責跟蹤和記錄控制點質量控制的狀態和效果,并及時向項目負責人反饋質量控制信息,保持質量控制點的受控狀態。
4.3.3軟件開發項目的質量保證
運用PDCA循環法進行軟件開發的質量保證,在預開發階段、開發階段、維護階段3個階段進行。預開發階段指開發團隊針對開發項目招標情況對軟件開發項目做出的提前處理,工作體現在下列PDCA循環中:計劃,提出軟件開發的整體流程;實施,開發自己的技術提案,闡明將使用的技術及所擁有的技術工藝;檢查,提出檢查軟件質量、糾正產品中缺陷的方法;總結,根據檢查結果,提出改善質量控制的計劃。開發階段是指從軟件產品開發開始,到移交產品且客戶對軟件性能予以肯定為止。這一階段的PDCA循環活動有:計劃,開發者根據需求和風險,提出詳細的開發過程、要求使用的資源以及要得到的產品;實施,由開發組織執行開發計劃;檢查,開發組織和客戶共同檢查計劃與預期得到的結果的一致性;總結,開發組織根據檢查結果,審查并重新認識風險,作為下一個循環的基礎。維護階段是修復軟件缺陷、提高軟件性能的階段。這一階段的PDCA循環活動有:計劃,制定處理缺陷的計劃;實施,處理缺陷或根據需求變化提高軟件性能;檢查,判斷開發維護目標是否已經達到;總結,根據檢查結果審查并總結。
4.4成果數據分析
通過對本次水文自動測報預警軟件開發項目的質量管理,大大提升了軟件開發的質量,結合軟件開發前期中制定的質量目標,與以往軟件開發項目進行比對,分析進行軟件開發質量管理對結果產生的影響。
4.4.1百段程序BUG數分析
根據質量控制點確定的各個模塊統計各模塊軟件開發中每百段程序的BUG數量,結合以往類似軟件開發中的統計數據進行比對。
4.4.2客戶滿意度比對
各模塊軟件開發完成后,分別對客戶進行滿意度調查,按照優良中差進行評價,經過與類似軟件開發客戶滿意度比對。以往軟件開發項目沒有進行過模塊化劃分,整體項目一起進行開發,開發完成后統一進行評價,無法對內部存在的不足進行查找和梳理。本次劃分了模塊,根據各模塊的用戶滿意度調查,可以在以后的軟件開發中有針對性地進行改進,保證項目質量的良性發展。
5結語
篇2
【關鍵詞】項目風險管理;軟件開發成功率;風險控制;問題
一、項目管理中存在的問題
(一)項目管理中的風險被忽視
項目管理的主要內容是對項目的啟動、計劃、執行、控制以及結尾五個部分的工作進行管理和控制,保證整個項目的正常運作。其中項目中每個階段的工作都包含一定的風險,會給整個項目今后的發展造成嚴重的影響,但是往往在實際的管理工作中會忽視風險管理,并沒有根據每個階段工作的風險特點制定具體的計劃,導致最后軟件開發的成功率下降。
(二)項目管理沒有明確的界定范圍
項目管理的范圍能夠指明項目管理今后的工作方向,但是很多的項目管理中并沒有對管理范圍有明確的界定,不能根據客戶的要求來制定相應的開發計劃,在軟件開發項目中并沒有對相關的需求作一定的分析,導致需求管理工作不到位,整個軟件開發項目的工作效率大大降低。
(三)風險管理人員缺乏正確的風險管理理念
項目中的風險管理工作包括風險可能性評估、風險影響的評估、風險降低、風險監控以及最后的風險確認等,這些風險條件加大了整個項目風險管理工作的難度,很難準確把握各個工作階段中存在的風險,任何一個因素的變化都會影響到最終的結果。
風險管理人員在實際的工作中并沒有樹立正確的風險管理意識,工作人員不能準確把握和分析項目中存在的風險,無法及時采取措施應對風險,給軟件開發項目造成巨大的經濟損失。工作人員只是掌握了風險管理的工作內容,并沒有真正消化工作的精髓所在,在工作中缺乏熱情和動力。
(四)忽視了技術風險的管理
軟件開發過程中應該理性對待先進的技術,只有對這些技術進行有效的管理才能真正發揮作用,促進項目的健康發展。在引進技術之前需要對軟件開發以及先進技術有清晰的認識,根據實際發展的需要,有針對性地引進相關的技術。在技術應用過程中要加強管理,將技術與軟件開發工作結合在一起。技術管理不僅包括先進技術的管理還包括團隊能力的管理,一個團隊的能力有時候直接決定了整個項目的成功,所以也要重視團隊的技術風險管理。
二、軟件開發項目中的風險應對策略
(一)應對策略的表現形式
軟件開發項目中每個工作環節中或多或少都具有一定的風險,要想真正提高軟件開發的成功率,必須要重視風險管理工作,對于任何一個風險因素都應該重視。為了有效減少風險對于整個項目的影響,應對策略分為以下三種:首先是風險排除,軟件開發項目中的風險各種各樣,在實際的風險管理工作中很難將所有的風險排除,但是可以根據實際的工作狀況將一些特殊的風險及時地排除,降低開發項目整體的風險系數。
(二)有效規避風險的具體措施
1、保證溝通渠道的暢通
溝通渠道的暢通情況對于軟件開發前期的設計階段有著直接的關聯,在這個期間軟件開發者與客戶沒有進行溝通和交流,會大大增加整個開發項目的風險。軟件開發者要清楚把握客戶的要求,將自己設計的軟件模型提供給客戶,客戶可以提出自己的意見和建議。軟件開發方根據客戶反饋的意見對自己的設計方案做出相應的調整,這樣的方式能夠很大程度上提高軟件開發的成功率。
2、聘請專業的項目管理人才
項目管理工作在軟件開發項目中占據十分重要的作用,所以聘請的項目經理不僅要具備豐富的管理經驗,還需要對軟件開發工作有相應的了解。項目經理能夠合理安排軟件開發工作,提高軟件開發的效率和質量。風險隨著軟件開發工作的深入也在發生變化,項目經理需要準確掌握風險的變化趨勢,及時采取相應的措施將風險系數降到最小,增強項目風險管理,提高軟件開發的成功率。
3、提高軟件開發團隊的綜合實力
軟件開發團隊的綜合實力很大程度上直接決定了軟件開發的風險,首先項目經理需要增強軟件開發人員的專業素質,能夠熟悉掌握各種軟件開發的工作方法和技巧;其次是營造良好的工作氛圍,激發開發人員的工作熱情和內在潛能;最后是加強用戶與軟件開發人員的溝通和交流,借助用戶的力量提高軟件開發的質量,從軟件的質量以及效率等方面有效地應對風險。
三、軟件開發項目中有效控制風險的措施
(一)加強風險監控工作
軟件開發項目中的風險監控工作主要是指對項目中各個環節工作中存在的風險進行全過程跟蹤管理,并且監督風險解決以及風險規避等工作。
風險監控工作的主要內容分為三個方面,一是監控已經識別的風險,為后期風險的解決提供相應的依據;二是對風險的規避以及風險管理工作實行有效的監控,確保風險的有效解決;三是識別軟件開發項目中潛在的風險,監控最主要的目的是能夠及時掌握風險的變化情況,評估制定的風險計劃能否真正降低風險系數。風險監控是風險控制的基礎和前提,只有準確把握各種風險信息,才能保證風險控制工作的有效性和合理性。為了保證風險的有效控制,必須要對軟件開發項目中的每一種風險進行監控,將不同類型的風險按照重要性排序,實現風險項目的規范化管理。
(二)重視軟件開發項目的創新風險的控制
軟件開發這個行業具有較高的技術含量,隨著科學技術的發展也在不斷地完善和更新,在實際的應用和操作中存在太多的不確定因素,不同的軟件開發項目面臨的風險也存在一定的差異,所以必須要對軟件開發項目各方面的風險因素進行識別和控制。
四、總結
項目風險管理與軟件開發的成功率有著直接的關聯,軟件開發項目中的風險因素能夠得到有效的管理和控制,才能更好實現軟件開發的目的,獲得更大的經濟效益。在實際的風險管理工作中一定要掌握正確的方式,不僅要及時應對發生的風險事件,更重要的是要加強平時的風險預測和控制工作,降低風險事件出現的概率。將風險管理工作與軟件開發結合在一起,通過有效控制項目中的風險因素來提高軟件開發的成功率。
參考文獻
[1]楊莉.軟件項目風險管理方法與模型研究[D].南京航空航天大學,2010.
篇3
微創公司的成本構成主要是:工資及福利的支出、調研及維修費、業務費和市場營銷所需的各項業務的費用支出、房屋及軟件設備折舊、管理費用、財務費用、研究開發費用。而其中也導致了微創公司的成本方面如下幾個特點:固定成本比重過大、區域成本差異化、技術變革帶來的成本管理困難。微創公司為了解決其自身的成本特點問題以及為了適應由于公司業務的增長而導致的一系列問題,決定對公司的軟件開發項目進行成本管理,而主要的管理由以下幾個方面構成:實現軟件開發項目的條件、確定成本估算對象、設置管理的組織機構、軟件開發實施階段成本跟蹤和控制。(1)項目資源的安排:通過使用公司內部的公用軟件,可以在不增加成本的情況下實現項目人員的交流和任務的分配,更好的對人力資源進行合理的分配,將目標合理的細分化,實現了成本的降低,生產率的上升,資源的再利用。(2)影響項目成本的進度管理:基于以往的項目進度管理的進度估算法和類推估算法的一系列缺點,微創企業充分利用FP技術的軟件規模的度量技術來進行數據的生成,使用定額估算法和PERT計算方法對項目的歷時進行估算,達到了項目進度管理的目的,使管理工作合理分配資源,發揮資源的最佳作用,提升了工作的效率,使項目能夠按時完成。(3)項目成本的估算研究:作為項目成本管理的核心內容,微創公司對此做了細致的劃分,軟件成本估算主要包含以下幾個方面:建立目標、計劃所需的數據與資源、準確說明軟件需求、詳細準確的估算、估算方法的選擇、比較與更新、實際的應用。(4)軟件項目成本控制:對項目進行監視和操縱以使項目能夠按照預期進行,使項目經理能夠更好的對項目的實施過程進行了解。這一階段,項目的制定需要嚴肅并合理。即使計劃有特殊情況也應及時反映給有關部門,并且項目要從實際出發。而且項目在實施上還需靈活,來保證項目經理發揮其主觀能動性。在經過了一系列的優化之后,微創公司形成了完整的軟件開發的成本管理系統,能夠系統的分析軟件開發的成本問題,降低了軟件開發的成本,并大幅提高了生產效率。
2微創公司軟件開發項目成本管理的應用
2.1項目簡介
某企業為解決管理效率地下、數據易丟失、企業難以有效對人員進行掌握和控制的問題并實現企業網的安全可靠、項目組級間的協同設計,實現知識管理和積累等一系列成果委托微創公司進行開發項目。
2.2微創公司項目軟件開發成本管理系統應用
項目成本計劃:將所設計項目分為5個模塊分別為設計數據管理、功能接口、數據版本管理、安全管理、數據庫再將每個模塊按各部門管轄進行劃分,再由公司財務部把總成本分配到各個模塊項目經理處,最終形成完整的成本控制體系,保證了日常成本管理費用、專項成本管理費用、開發單位管理費用。項目時間估算:包括項目活動安排、繪制項目進度網絡以及進行歷時估算應用。將項目的開發制定一個切合實際的并可行的計劃。使項目的進行更具計劃性項目成本的估算:在這一階段,對企業所需的項目進行估算可以更好的適應公司的業務需求。所以,在這一階段中,對公司有精確的估算所取得的效果就越明顯,也能帶來巨大的優勢。最終使企業借助此項目提高資源利用率,大幅降低成本,最大限度獲取利潤,能夠使企業提高競爭力。項目成本控制:根據企業項目所提的安全性進行需求分析報告的生成、反饋意見的生成,并將項目的完成分為幾個階段:需求分析階段、軟件開發階段、軟件測試階段、軟件實施階段,對其進行監控,來使每個階段達到最大限度的利用。項目進度計劃制定與控制:為了節約項目時間將項目進行分解,并根據所需的資源對其進行合理的分配計劃。在實際情況中進行檢查、監督以實現目標并保證項目按照原計劃進行。項目收工:將項目進行測試和運行。并做好對文件資料的驗收的準備,最終交付客戶使用。
3總結
微創企業軟件項目的開發成本管理系統從最初的具有一系列問題到經過一系列的優化之后形成的具有模范作用的成本管理系統是經過了許多相關人員及技術人員的分析與經驗,微創公司的軟件開發項目成本管理系統對于中小企業的成本管理具有導向作用,在當今這個軟件開發如此迅猛的時代,一個軟件公司的發展是與其成本管理系統分不開的。
作者:胡正元 單位:南京維數軟件技術有限公司
參考文獻:
[1]龔銀鋒.軟件項目成本估算研究[J].軟件導刊,2014(1):20~22.
篇4
1.1軟件項目工程開發的特性
在當前的計算機項目特性可以總結成以下幾個方面:第一是軟件項目的開發具備不可視性,軟件的開發屬于一種不可觸摸到的項目,要想真實感受到軟件項目的真實有效性,這就需要通過專用的軟件和針對性的測試方式來對其進行測試,這樣才可以得知該軟件是否真實有效;第二,軟件工程具有不唯一性,在對軟件工程試試開發和設計的過程中,其實并沒有一個明確和標準的軟件開發設計具體過程,軟件的設計屬于多樣化的;第三,針對一些較為大型的和復雜的軟件設計開發項目時,基本都是通過一次性設計完成的,因為軟件的設計流程較為復雜,并且其研發的總工程量與開發的風險性相對較大,但是對軟件工程的需求同樣也是沒有長期的穩定性。
1.2計算機軟件工程開發管理的主要工作內容
因為計算機軟件開發項目所涉及到的范圍和方面比較廣泛,所以增強計算機軟件開發的管理是十分必要的。對計算機軟件開發管理工作主要分為以下幾個方面:第一,對實際開發和設計人員的有效管理。軟件工程的開發和設計團隊通常包含了項目總負責人員、高級管理人員以及初級軟件編程人員等。初次之外,因為軟件開發項目任務量的存在一定的差異性,因此經常會出現一人肩負多種職務的狀況,而一個人人通常并不能精通軟件開發的各個環節,造成任務完成的質量較低;第二,對軟件開發質量的管理。對軟件質量以及軟件的具體配置的管理是非常重要的,齊管理的內容組要涵蓋了軟件編制整體質量、軟件項目質量管理以及軟件項目質量的掌控等方面;第三,是項目工程的風險掌控與管理。對計算機軟件項目所存在的潛在風險進行有效的評估并且及時進行預防。
2自動化管理在計算機軟件開發項目中的具體應用
2.1實際應用
在當前自動化管理技術中,通??梢赃\用可編程的控制器將較為復雜化的編程進行簡單化,通過這種方式可以讓計算機的整體性能得到非常大的提升。這種控制設施可以通過計算機基本技術作為基礎,并且在此基礎之上對智能化生產實施有效的管控,進而實現在實際工業生產中計算機的自動化管理。這種自動化管理技術的時機應用的范圍相對比較的廣泛,并且在工業生產領域當中得到了有效實現,自動化管理技術大大提升了工業生產以及工業建設的效率。自動化管理技術同樣在軟件工程項目開發應用當中同樣也可以提升項目開發的效率。
2.2計算機輔助在軟件工程中的實際應用
CAE我們稱之為計算機輔助工程,其主要是通過計算機對相對較為復雜的軟件工程實施計算,然后再對其實施有效性的檢測。在計算機軟件工程的開發過程當中,運用CAE可以對整體的工程項目有需要改動的部分進行及時有效的調整。在使用計算機輔助設計的過程中保證自動化設施操作的穩定性,再講計算機的最終參數實施優化,再選擇出最佳的調整方案。使用CAPP可以保證在軟件產品的設計以及生產的過程當中,通過計算來替代人工對計算機的數據以及信息的處理操作,這樣不但很大程度上節省了人工費用,并且對生產的成本也得到了有效的控制,從而保證了軟件工程的整體質量。CAM可以將生產活動之前的設計方案和相關的信息轉換成制造信息,再通過計算機數控的方式對產品的生產流程以及具體的包裝過程實施檢測,在出現問題的時候可以及時有效的進行調整。
3計算機軟件工程在進行自動化管理過程中需要注意的問題
篇5
羅云青
(貴陽護理職業學院 貴州省貴陽市 550081 )
摘要:本文通過歸納總結目前C++程序設計語言下跨平臺軟件開發的相關技術,介紹了C++語言在計算機編程設計領域的優勢和跨平臺設計思想的提出與實現,運用幾個實例說明跨平臺軟件開發在實踐中的廣泛應用。C++語言的可移植性和跨平臺開發的項目部署,在當下主流的編程軟件中已經被廣泛采用,最后結合筆者見解對跨平臺軟件開發提出新的展望。
關鍵詞:C++ 開發 跨平臺 軟件
一、C++語言的優勢領域
C++語言在某些領域有著很高的地位,像科學數值計算中的數據挖掘,游戲開發里面的圖形圖像設計,以及在高級系統設計中的電子郵件系統,數據庫系統等等都有C++語言的身影。同時,混合系統的設計和通用系統的設計問題都是C++所要解決的高層次的程序設計問題。更重要的是,Microsoft公司的很多產品都是用C++程序設計語言設計出來的,像Windows XP,Windows NT,Internet Explorer 和Visual Studio版本下的Visual C++,Visual Basic,.NET Framework等等。這些產品在不同程度上都奠基了C++程序設計語言在程序開發中的不可磨滅的地位。
二、跨平臺開發
跨平臺開發是程序設計領域在近些年提出的新的要求,它源自于現代軟件工程的發展??缙脚_的主要目的就是要讓所開發的應用程序可以在不同類型的平臺上順利運行,跨平臺項目的軟件在開發的時候,必然要想到軟件的移植性。
在實際的軟件開發過程中,C++語言的跨平臺開發項目,與具有可移植性的代碼,他們的核心都是高度一致的。只需要一次編寫,多次編譯,這樣就實現了既可以在不同的設備和產品上順利運行,又不會產生功能損失的現象。因此,跨平臺軟件開發幾乎可以運行在不同的平臺上而不需要做出其他任何的調整和修改。
目前在市面上流行的幾大系統軟件的廠家,像Windows,Linux,Unix等在應用程序接口的實現中存在著較大的差異,同時,它們實現的細節和原理也存在著較大的差別。就連目前開源的操作系統代碼Linux也與其他類似的軟件差別甚遠,那么,跨平臺軟件開發就迫在眉睫,只有能適應所有的操作系統應用程序的軟件才有生存的價值。相對而言,要實現程序設計語言在不需要修改代碼的情況下做到跨平臺,就需要更加抽象的語言表達能力和較低的硬件控制力。那么,是如何實現能在多種系統中運行的軟件呢?C++語言下跨平臺軟件開發就是一個很好的實例。
三、C++語言跨平臺軟件開發的實現
(一)跨平臺設計思想與整體思路
任何一個好的跨平臺軟件開發的實現,主要還是對整體設計的把握,跨平臺程序設計要求實現與平臺無關的代碼,在設計和編寫的過程中,還要對軟件的架構和整體配置的合理性問題作出考慮。
篇6
引言:
軟件項目管理是為了使軟件項目能夠按照預定的成本、進度、質量順利完成,而對成本、人員、進度、質量、風險等進行分析和管理的活動。實際上,軟件項目管理的意義不僅僅如此,進行軟件項目管理有利于將開發人員的個人開發能力轉化成企業的開發能力,企業的軟件開發能力越高,表明這個企業的軟件生產越趨向于成熟,企業越能夠穩定發展。個人住坊式的軟件開發已經不能適應現代企業對軟件工程的需求。因此,怎樣對軟件項目進行有效的管理是急需研究的課題,國內外專家學者也展開了相關的研究。
張家浩以現代軟件工程為核心,系統分析了項目管理領域中軟件項目存在的問題,提出在理想和現實之間選擇平衡點的建議和方法。林銳編寫的《IT 企業項目管理:問題、方法和工具》一書為IT企業提供了專業性很強、行之有效的項目管理方法和相應的工具,解決了大多數IT企業的軟硬件開發項目管理混亂、質量低下、進度延誤、費用超支等問題。哈羅德?科茲納在《項目管理:計劃、進度和控制的系統方法》一書中討論了時間管理、沖突管理等問題,分析了影響項目成功的因素。石慧運用動態規劃的思想和網絡計劃的方法,利用馬爾可夫鏈模型進行軟件項目進度預測,對軟件開發項目中的計劃和控制應用進行研究,構建了一個并行的IT項目進度馬爾可夫鏈預測模型。
1、軟件項目管理的概念
軟件項目管理是為了使軟件項目能夠按照預定的成本、進度、質量順利完成,通過計劃、組織、控制等一系列活動,合理地配置和使用各種資源,對成本、人員、進度、質量、風險等進行分析和管理,以達到既定目標的過程。項目管理可以讓一個項目獲得高額的盈利也可以讓一個項目損失慘重,而軟件項目管理的意義不僅僅如此,進行軟件項目管理有利于將開發人員的個人開發能力轉化成企業的開發能力,企業的軟件開發能力越高,其根本目的是對軟件開發的各個階段進行管理,增強對軟件開發的控制能力,提高軟件開發質量編碼的影響力。企業的軟件生產越趨向于成熟,企業越能夠穩定發展軟件因其復雜性和難以度量,使軟件項目管理較之其他項目管理而言有其特殊性。
2、軟件開發中的項目管理的必要性
現在的軟件開發過程中,存在著諸多的不確定性因素,而為了能消除不確定性,提升軟件的穩定性、可靠性,就需要對軟件進行項目管理。軟件項目管理的對象是軟件工程項目。它所涉及的范圍覆蓋了整個軟件工程過程。軟件項目管理是為了使軟件項目能夠按照預定的成本、進度、質量順利完成,而對人員、產品、過程和項目進行分析和管理的活動。軟件項目管理的根本目的是為了讓軟件項目尤其是大型項目的整個軟件生命周期都能在管理者的控制之下,以預定成本按期,按質的完成軟件交付用戶使用。這種管理在技術工作開始之前就應開始,在軟件從概念到實現的過程中繼續進行,當軟件工程過程最后結束時才終止。軟件項目管理和其他的項目管理相比有相當的特殊性。首先,軟件系統的復雜性也導致了開發過程中各種風險的難以預見和控制。其次,軟件是純知識產品,其開發進度和質量很難估計和度量,生產效率也難以預測和保證。龐大的系統如果沒有很好的管理,其軟件質量是難以想象的。
3、開發中的項目管理方法
3.1、調查。
(l)調查市場。對一個軟件項目經理來說,他的職責主要在于調查同行業同類產品,分析現有技術,以便構建合理而又有充分擴展性的軟件結構。同時,項目經理還有義務協助上級主管向公司決策層提交項目市場前景分析報告。
(2)調查自身資源。主要是調查項目組成員的技術實力,工作狀態,還有其它相關人員的支持度。一個項目的成功,不僅僅需要一個優秀的項目經理,還需要項目發起人、項目組成員和其它相關人員的共同努力,才能實現項目的預期目標。
(3)調查客戶需求。這是最關鍵也是最重要的環節。任何一個軟件項目都是針對一定的使用對象而開發的。作為項目經理,必須充分了解客戶的現有資源、工作方式、工作流程以及使用習慣。值得注意的是,很多項目經理往往容易忽視客戶的使用習慣,以至于開發出來的產品雖然功能齊全、界面友好,但卻無法取得用戶的認同。
3.2、嚴控變更。一個項目在實施過程中,總會遇到很多需要變更的地方。要想有計劃地管理好變更,就必須具備健全的變更控制系統。應由項目實施變更小組之類的組織來負責項目變更的可行性論證,進行最終的變更確認,也由它來決定一個項目是否應該終結。
3.3、階段總結和評審。一般來說至少要進行兩次全體評審。第一次評審是由項目負責人完成信息系統計劃、信息系統分析、信息系統設計之后,提交出軟件模型,再交由項目專業技術組討論評審。軟件模型必須包含主體的功能界面。典型客戶在其中扮演著重要的角色,只有他們才是最有發言權的評審成員。待項目結束之后,再由技術小組對其進行終審。
4、影響軟件開發中的項目管理因素
4.1、成本。指完成項目需要的所有款項,包括人力成本、原材料、設備租金、分包費用和咨詢費用等。軟件開發項目中人力成本比例很大,而工作量又難以估計,因而制定預算難度很大。項目的總成本以預算為基礎,項目結束時的最終成本應控制在預算內。
4.2、人。指參與項目管理及具體軟件開發活動的所有人員。在項目管理中,人是一個非常重要的要素,由人來確定項目目標、推動項目進程、使用項目成果創造價值,而且軟件項目中的人力成本也經常占總成本的相當比例,因此人的因素往往決定了項目的成敗。
4.3、時間。項目時間相關的因素用進度計劃描述,進度計劃不僅說明了完成項目工作范圍內所有工作需要的時間,也規定了每個活動的具體開始和完成日期。項目中的活動根據工作范圍確定,在確定活動的開始和結束時間還要考慮他們之間的依賴關系。
4.4、質量。是指項目滿足明確或隱含需求的程度。一般通過定義工作范圍中的交付物標準來明確,交付物在項目管理中有重要的地位。定義這些標準包括各種特性及這些特性需要滿足的要求,因此,有時還可能對項目的過程有明確要求,比如規定過程應該遵循的規范和標準,并要求提供這些過程得以有效執行的證據。
4.5、范圍,也稱工作范圍,指為了實現項目目標必須完成的所有工作。一般通過定義交付物和交付物標準來定義工作范圍。工作范圍根據項目目標分解得到,它指出了完成哪些工作就可以達到項目的目標,或者說完成哪些工作項目就可以結束了。
結語
軟件項目管理是一件十分繁瑣的任務,其直接影響著項目的成敗,所以,在實際的項目開發過程中,只有加強對項目的管理才能使整個軟件開發順利完成。在軟件項目管理活動中,既要研究技術層面的問題,也要仔細考慮認識層面的問題,成功的軟件項目開發一定是兩者相輔相成的結晶。軟件項目管理是軟件開發過程中的一項重要工作,管理水平的高低、管理工作是否規范將對軟件開發的質量、效率、成本起著決定性的作用。目前,我國軟件項目管理水平參差不齊,一些軟件開發單位、軟件項目管理者管理水平有限,導致開發出的軟件產品質量低下和成本浪費。盡快提高軟件項目管理水平、規范軟件項目管理工作已成為一些開發單位和管理者的當務之急。當然,隨著應用水平的提高,我們可以適當運用項目管理軟件來指導、管理項目的實施,并且在管理過程中不斷學習先進的軟件項目管理方法,提高軟件項目管理水平,這樣才能開發出真正滿足企業、用戶需要的實用的軟件產品。
篇7
關鍵詞:企業內部軟件開發;敏捷開發;實施的重要性;信息系統集成;客戶價值
中圖分類號:TP311文獻標識碼:A文章編號:1009-3044(2008)35-2490-03
Internal Software Development of Enterprises: Features and Patterns
CHEN Yuan
(Computer Center of Vice President Office, BYD COMPANY LIMITED, Shenzhen 518116, China)
Abstract: An enterprise's internal software development organization have common interests with the enterprise. It cans communicate with users agilely and will manage the information system for long. Therefore, the internal development of enterprise should follow some kinds of agile patterns; should consider integration with existed systems at the prior period and emphasize implementation at later period. The importance of enterprise’s internal software development need be realized by software industry.
Key words: internal software development of enterprise; agile software development; importance of implementation; integration of information system; customer Value
在現代企業中,信息系統已經越來越成為企業管理的重要支撐。因應各種業務需求對軟件系統的要求,大多數企業都形式不同地建立了自己的軟件開發團隊,視企業的規模從一兩個兼顧支援網絡硬件、進行簡單開發的人員到大規模的專業軟件開發組織都有。通常說來,大多數企業內部開發團隊是企業內部輔助主營業務的、非贏利性的組織。這類帶有普遍性的企業內部軟件團隊是本文的關注點。
和專業軟件公司開發過程一樣,企業內部軟件開發也涉及對過程、工具、質量、人員等各個層面的管理問題,所以目前成熟的或者正在探討中的各種軟件開發模式都可以被企業內部軟件開發借鑒和參照。但是,在服務、非贏利的前提下,企業內部軟件開發的各方面都有有別于專業軟件公司的特點。目前關于企業內部軟件開發模式和管理的探討比較少,很多人,甚至企業內部開發團隊的成員本身,都沒有明確企業內部軟件開發和專業的軟件公司開發工作的不同,在項目管理、文檔控制等方面經常教條的模仿專業軟件公司的開發模式。這種認識上的模糊性削弱了企業內部軟件開發團隊在軟件的生命周期中本來具有的優勢。
1 企業內部軟件開發的特點
企業內部軟件開發有什么值得注意的特點呢?以下通過在幾方面和專業軟件公司對照的方法來進行一些分析:
1.1 軟件開發團隊和用戶的利益關系
專業軟件開發公司和用戶是商業關系,直接目的是銷售產品和服務獲得收益,用戶本身的收益和軟件公司不是明確相關的。雖然大部分軟件公司從產品和產業長期發展的角度都把類似“實現客戶價值”這樣的價值觀列為公司的主要宗旨,但實際操作中很難徹底擺脫商業關系,在開發的各個環節受制于開發費用等商業因素。而企業內部軟件團隊的收益和生存直接和企業聯系,業績考核也是和企業目標相聯系的。這是一個本質的差異。
1.2 軟件開發項目所處的系統環境
企業的軟件系統往往多樣和復雜的,針對企業的軟件開發項目面對的大多是一個已經存在很多信息子系統的軟件環境。如果由專業軟件公司單獨來定制開發企業軟件,因為是階段性的參與企業信息系統,所以除非客戶有明確的界定,否則很難設身處地的,從信息系統的整體長遠發展來考慮需求和建立方案。如果專業軟件公司開發的是通用的商業軟件,更不可能預見最終用戶的系統環境。對比之下,企業內部IT部門相對熟悉業務并且要長期經營整個信息系統,所以在每個開發項目中都需要從全局角度和長期角度來考慮項目的必要性和方案細節,要考慮和已有系統的集成。
1.3 開發過程中和直接用戶的交互關系
企業內部IT部門和用戶部門是同一組織內不同職能機構的關系,企業內部軟件人員和直接用戶是同事關系。和專業軟件公司比起來,這一點又引起很多用戶交互方面的重要的差異。
1.3.1 溝通方式和溝通效率
內部軟件團隊可以方便的召集用戶、靈活的協調時間、有豐富的途徑和平臺來協調各種問題。項目完成后用戶和軟件開發人員仍然會長期共處,可以不斷地交流并對軟件進行改進。而專業軟件公司在和用戶打交道的時候受限于很多商業因素,溝通效率通常遠低于企業內部軟件團隊。
1.3.2 需求分析和需求變更管理
開發過程中用戶的需求往往是模糊和多變的,除了實際使用環境的不確定因素,用戶對IT的理解和對資料的整理水平不足也是引起需求多變的重要原因。 專業軟件公司雖然有專業的分析人員和方法,但由于商業關系和業務復雜性,常常無法深層次地介入用戶的實際工作層面,進而全面理清那些用戶的需求是合理的,那些是不合理的,那些是可以簡化的,那些是需要加強的….,等等。面對強勢的客戶更是沒辦法從合理的角度對需求進行梳理。為了控制項目的進度和人力資金投入,軟件公司往往不得不通過成文的方式對需求進行界定。另外出于“專業表現”的要求和商業利益的需要,軟件公司也會有意無意加入一些可能不見得切合實際的需求目標。這樣最終軟件會出現整體或部分偏離實現客戶價值的方向的可能。而在企業內部軟件開發團隊主導的項目中,用戶對項目的需求更強調實用性和、方便性和快速見效。用戶對將來需求變化引起的溝通和商業上的麻煩不太擔心。企業內部開發團隊經常可以根據實際業務需要對用戶的要求進行否決和更改,也可以在用戶要求之外增加系統目標。
1.3.3 軟件的測試和交付過程。
企業內部軟件團隊可以方便的從組織上把用戶當作測試團隊的一部分。在確認軟件功能基本完成,沒有根本性缺陷的情況下,可以比較早的當作軟件項目已經的交付。更多的測試可以放在開始使用之后的長期運行過程中進行。專業軟件公司在和用戶配合測試方面則比較復雜,引入用戶、計劃和協調等都沒有企業內部軟件部門容易,交付也要嚴格的多。所以通常軟件公司在測試方面投入的人力和成本要比企業內部軟件團隊多很多。
1.4 軟件開發的規范
專業軟件公司開發的大多是中大型的、商品化的軟件產品。在設計開發過程中有很多在結構規范、通用性、界面美觀、文檔完備等方面的要求,開發周期也都較長。而企業內部開發大多為中小型的軟件或者是基于已有大型應用系統的二次開發,注重實效,注重量身定做,注重速度,對文檔和通用性等方面的要求比較靈活。
1.5 其他可能的差異。
企業內部軟件開發團隊的規模通常比專業軟件公司小,組織上的分工不象專業軟件公司那么完整,各種資質的評估和認證要求也不迫切。
以上這些不同大多是顯而易見的,但是對軟件開發過程的影響卻是根本性的,企業內部軟件開發需要在認清自己定位和處境的情況下,建立更加適合自身及企業利益的軟件開發模式。
2 企業內部軟件開發和敏捷開發思想
有必要提一下近幾年新興起的敏捷開發思想。作為對一直以來軟件工程各種模式中條塊分割清楚、文檔繁瑣、周期冗長等問題的突破和嘗試,敏捷開發思想近幾年越來越引起軟件開發機構和開發人員的關注。根據敏捷思想創始者們宣布的敏捷開發宣言,敏捷開發的價值觀和原則如下:敏捷軟件開發價值觀的表述:
人和交互重于過程和工具。
可以工作的軟件重于求全責備的文檔。
客戶協作重于合同談判。
隨時應對變化重于循規蹈矩。
敏捷軟件開發的12條原則:
對我們而言,最重要的是通過盡早和不斷交付有價值的軟件滿足客戶需要。
我們歡迎需求的變化,即使在開發后期。敏捷過程能夠駕馭變化,保持客戶的競爭優勢。
經常交付可以工作的軟件,從幾星期到幾個月,時間尺度越短越好。
業務人員和開發者應該在整個項目過程中始終朝夕在一起工作。
圍繞斗志高昂的人進行軟件開發,給開發者提供適宜的環境,滿足他們的需要,并相信他們能夠完成任務。
在開發小組中最有效率也最有效果的信息傳達方式是面對面的交談。
可以工作的軟件是進度的主要度量標準。
敏捷過程提倡可持續開發。出資人、開發人員和用戶應該總是維持不變的節奏。
對卓越技術與良好設計的不斷追求將有助于提高敏捷性。
簡單――盡可能減少工作量的藝術至關重要。
最好的架構、需求和設計都源自自我組織的團隊。
每隔一定時間,團隊都要總結如何更有效率,然后相應地調整自己的行為。
從羅列的這些原則來看,敏捷開發思想強調激發人的主動性和協作,強調去除不必要的文檔和設計,強調順應需求的變化,強調盡快的交付階段成果和持續改進開發。對于專業軟件公司來說,要實踐敏捷思想里提出的擁抱變化、客戶密切協作、不斷交付等理念,有賴于軟件開發之外的客戶關系處理等工作,有賴于商業元素和客戶價值的平衡,在實踐中要做到并不容易。
相比之下,對照前文提到的企業內部軟件開發的特點,可以看出敏捷開發思想和企業內部軟件開發有著近乎天然的聯系。事實上很多企業內部軟件開發過程都有意無意的和敏捷開發思想相貼近。但是因為指導思想上的模糊,使得很多企業內部軟件開發中可以利用的優勢被教條地搬用“規范”過程和標準所限制。相信隨著對軟件開發過程認識的加深,敏捷開發思想會對企業內部軟件開發會帶來越來越大的影響。
敏捷開發只是一種理念,并不是對瀑布或迭代等方法的顛覆,而是一種啟發和演進。對于它的原則不同人有不同理解,實踐起來也有各種不同的模式。目前已經有很多基于敏捷開發思想的方法被提出并經過一定實踐,但都不能作為標準??偟膩碚f,敏捷開發思想本身仍然是站在專業的、面向客戶的商業化開發環境角度提出的。企業內部軟件開發還需要根據實際情況,參照敏捷開發思想,對各種軟件開發方法進行取舍,摸索更加適合自己的模式。
3 企業內部軟件開發的模式。
企業作為軟件的直接使用者,實際業務上的變化和管理上的調整變革會頻繁地引起對軟件系統的變更要求。企業內部軟件團隊需要管理自行開發軟件的整個生命周期和購買的大型應用系統后的生命周期,所以宏觀來看,企業內部軟件開發是一種持續開發的類迭代模式。而對每一次階段性的開發項目,則需要根據項目的規模,結合敏捷的思想,靈活地掌握開發過程。
和專業軟件開發公司一樣,企業內部軟件開發團隊同樣要建立文檔代碼管理、項目管理、質量管理的各種制度和工具,但形式上可以更加注重實用性和有效性。另外和專業軟件開發公司相比,企業內部軟件管理需要特別加強用戶隊伍的建設,爭取使用戶成為信息系統的有機組成部分,這樣對信息系統和企業業務都有不可估量的正面影響。
軟件工程歸結的幾個基本的階段:規劃和計劃、需求分析、設計、編碼和實現、測試、維護和支持,對所有項目和階段都是適用的。仔細觀察目前林林總總的軟件開發模式,都可以辨認出這幾個階段,不同的是每個階段的引入時機或持續長度。對于企業內部軟件開發來說, 因為企業內部軟件團隊的目標和企業的目標一致以及內部軟件團隊的特殊位置,所以在這些經典的開發階段之外,還應該加入一些其他的重要階段或需要特別關注的內容:
1) 首先應該加入的階段是實施階段,這是一個在經典軟件工程模型中被弱化的階段,經常被列入交付或者支持的范疇。對于商業化的開發來說,客戶或其他評審機構評審驗收合格,軟件開發已經基本完成。所謂實施就是給用戶培訓,后面用戶怎么用是用戶的事。如果是大型應用系統,如購買的ERP、PLM、SCM、CRM等系統,實施過程大可另做項目或交給專門的第三方實施公司。但對使用企業來說,實施非常重要。即便是小型軟件,如果沒有后續的推進、進度控制和項目協調,都很可能“用不起來”或者“用的不好”。這樣對于企業來說軟件仍然是沒有完成的。明確獨立的實施階段,可以使軟件開發團隊在實施的組織和方法論等方面更加專注。
2) 其次是系統集成分析。這一工作通常是覆蓋規劃到系統設計階段的工作,可以加在規劃或需求分析等階段內部,也可以單獨列出。對于已具備一定規模的企業信息系統來說,這一工作需要特別強調和嚴格引入。主要內容是對照信息系統的整體規劃,考察新開發項目和現有系統的集成。即便沒有明確的信息系統整體規劃,也要在分析用戶需求和系統設計時,時刻注意把需求放在系統集成環境下進行功能定義和功能分配。用戶對系統集成大多是沒有考慮的,商業模式下的軟件開發方法也很少提及。但這是企業內部IT應該進行的工作。忽略這個集成分析,隨著時間積累,將造成信息系統即使局部很高效和很完備,但整體上卻臃腫和低效率,進而使企業在實際管理上承擔難以估計的代價。
綜上所述,可以把企業內部軟件開發模式大體框架按圖1表示。
這是一種注重企業內部環境,注重企業的業務價值,敏捷的開發模式。
各個企業內部軟件團對所面臨組織環境和系統環境千差萬別,各個具體項目有各自的特殊情況,所以不可能存在一種普遍適用的具體開發模式。各個企業內部軟件團隊要根據自己的實際情況開發,逐步建立自己的開發方法和全面的系統支撐環境。
4 結束語
從分工的角度來看,獨立于使用企業之外的專業軟件組織的存在是必然的。專業軟件組織在軟件本身的開發規范和開發技術等各個方面,都具備非專業組織無法達到的深度和廣度。但是,軟件開發過程的管理和控制是一個非常復雜的領域,這種復雜性不僅來自軟件開發本身,更來自于需求的復雜、需求的多變以及很多其他超出軟件領域本身的因素。軟件工程實踐中反復探索但仍然長期困擾從業人員的諸多問題,例如需求難以控制、軟件品質難以控制、預算經費難以控制、項目進度難以控制等,都不能單純靠專業軟件人員或軟件組織來解決。另外一個軟件的成功與否,最終還是要通過實現客戶價值來體現。而如何實現客戶價值,也不是純粹的軟件問題。
企業內部軟件團隊在解決這些超出純粹軟件開發的問題時,有著自身特殊的優勢。目前對企業內部軟件開發特殊性的研究是軟件工程研究方面比較弱的一個領域。從整個軟件行業來說,進一步還應該研究企業內部軟件組織和獨立運營的專業軟件組織之間的配合。這些研究對突破各種軟件開發困境將會是非常有意義的工作。
篇8
of the project management
內容摘要: 隨著信息產業的飛速發展,項目管理對于以應用開發為主的軟件企業是一個行之有效的管理方法,項目管理在軟件開發中的應用日益受到重視。本文主要通過對項目管理在軟件開發中的應用的成因、存在的問題以及相應的解決方案進行了分析和論述。
abstract content : with the development at full speed of the information industry, the project management is an effectual office procedure to the software enterprise relying mainly on application and development, the application in software development of the project management
is paid attention to day by day. this text has been analyzed and described
through the origin cause of formation , existing problem and corresponding
solution of application to the project management in software development
mainly.
關鍵詞:項目管理,軟件開發
key words: project management , software development
如果用兩個字概括當前社會的特點,那就是“變化”,而這種變化在信息產業中體現得尤為突出,技術創新速度越來越快,用戶需求與市場不斷變化,人員流動也大大加快。在這種環境下,企業需要應對的變化以及由此帶來的挑戰大大增加,也給管理帶來了很多問題和挑戰。軟件行業是一個極具挑戰性和創造性的新行業,管理上沒有成熟的經驗可供借鑒。而項目管理應該說對于軟件企業,尤其是那些以應用開發為主的軟件企業,是行之有效的管理方法。因此,項目管理在軟件開發中的應用日益受到重視。
項目管理的兩個問題
1、什么是項目管理?
項目管理是在一定的約束條件下,以高效率地實現項目業主的目標為目
的,以項目經理個人負責制為基礎和以項目為獨立實體進行經濟核算,并按照項目內在的邏輯規律進行有效的計劃、組織、協調、控制的系統管理活動。
2、為什么要有項目管理?
沒有項目管理,項目也有可能成功。但沒有管理的項目,很難保證項目
的利潤空間,對公司來說,虧損的風險就大。所以我們要有項目管理,以保證公司在總體上是盈利的,注意不是每一個項目都要盈利。
另外,有了項目管理,就有了管理改進的基礎,無論剛開始的項目管理多么糟糕,只要有管理,就有了改進的可能性,至于能不能得到改進,以及改進的快慢,則取決于兩個因素:一個是人,特別是各級管理者;另一個是利益。關鍵是“利益”,準確的說是“利益的分配”,在權責利明確的前提下,人才能充分的發揮作用。還需要指出的是“利益”是多元的,這里的多元不僅指利益的具體形式,而且指利益的受眾是多元的,包括客戶方相關人員個人的利益。
3、項目管理的發展與現狀。
今天,項目管理作為一種現代化管理方式在國際上已獲得了廣泛的應用,從最初的國防、航天、建設工程領域,迅速發展到電子、通信、計算機、軟件開發、金融等行業以及政府機關的項目管理工作。隨著計算機、網絡系統的迅速發展,項目管理技術的不斷進步,項目管理軟件產品層出不窮,其功能、特點、應用對象也各不相同。當前,越來越多的企業和組織在內部推廣項目管理的理論方法及管理模式,如果都采用項目管理軟件進行管理,效果就更加明顯,可以節省大量的資源和財富。國外90%以上的項目管理都采用軟件進行,但我國在這方面的應用還不到10%。新世紀項目管理在
項目管理在軟件開發中的應用的成因
隨著信息技術的飛速發展,軟件產品的規模也越來越龐大,個人單打獨斗的作坊式開發方式已經越來越不適應發展的需要。各軟件企業都在積極將軟件項目管理引入開發活動中,對開發實行有效的管理。從概念上講,軟件項目管理是為了使軟件項目能夠按照預定的成本、進度、質量順利完成,而對成本、人員、進度、質量、風險等進行分析和管理的活動。實際上,軟件項目管理的意義不僅僅如此,進行軟件項目管理有利于將開發人員的個人開發能力轉化成企業的開發能力,企業的軟件開發能力越高,表明這個企業的軟件生產越趨向于成熟,企業越能夠穩定發展(即減小開發風險)。同時,隨著軟件開發規模及開發隊伍的逐漸增大,軟件開發不再是向過去那樣一二個開發人員即可解決的事情。迫切需要一種開發規范來規范每個開發人員、測試人員與支持人員的工作,每個項目組成員按約定的規則準時完成自己的工作。同時采用規范化管理,專業分工也可以降低對開發人員的要求,從而降低產品研發成本。
軟件開發是一項復雜的系統工程,牽涉到各方面的因素,實際工作中,經常會出現各種各樣的問題,甚至面臨失敗。如何總結、分析失敗的原因,得出有益的教訓,對一個公司來說,是在今后的項目中取得成功的關鍵。
早在20世紀60年代中期,人們就發現軟件的生產出現了“問題”,主要表現在生產過程不規范,缺乏管理。后來,人們在軟件工程方法學中引入了工程的概念、原理、技術和方法,這種思想在一定程度上解決了軟件生產過程中遇到的問題。但是直至80年代還是沒有提出一套管理軟件開發的通用原則,軟件管理不善的問題依舊在大范圍內存在。
目前的軟件開發正逐步趨向于復雜化、多元化,大多數開發團隊中都會出現同時開發多個版本、開發/維護工作并存、多地點同時開發等情況,給軟件開發管理帶來了前所未有的困難。如果管理不善,必將造成版本混亂,各個開發人員的工作相互交叉、干擾,整個開發團隊的工作在一種無秩序的不良狀況下運行,嚴重影響軟件產品開發的進度和質量。
因此,隨著軟件開發的深入、各種技術的不斷創新以及軟件產業的形成,人們越來越意識到軟件過程管理的重要性,管理學的思想逐漸融入軟件開發過程中,應用開發的項目管理日益受到重視。而項目管理技術的發展與計算機技術的發展是密不可分的,隨著計算機性能的迅速提高,大量的項目管理軟件涌現出來。它們可以用于各種商業活動,提供便于操作的圖形界面,幫助用戶制定任務、管理資源、進行成本預算、跟蹤項目進度等。
軟件項目管理常見問題及解決方案
對于軟件開發項目中,經常出現兩種極端情況,一種是創造了新的生產率和質量的紀錄;一種則完全是一場災難,不是被取消就是拖延很長時間。前者如在很短的時間內,為了趕進度,在幾乎不可能的時間內開發出一套軟件產品,創造了軟件開發的記錄,滿足了上級所要求的上機日期,由于開發時間太短,過于倉促,上機時,問題百出,試運行時間長達幾個月或一年半載的,而且程序一改再改,維護工作量大。
后者,如某套系統未弄清楚需求,或因設計問題,開發失敗。通過提煉這些成功和失敗的例子,軟件項目成功或失敗的根本原因可能會更清晰一些。
目前我國大部分軟件公司,無論是產品型公司還是項目型公司,都沒有形成適合自己公司特點的軟件開發管理模式,雖然有些公司根據軟件工程理論建立了一些軟件開發管理規范,但并沒有從根本上解決軟件開發的質量控制問題。這樣導致軟件產品質量不穩定,軟件后期的維護、升級出現麻煩,同時最終也會損害用戶的利益。
分析目前項目管理需要改進的問題可以從幾種相關角色的角度去考慮:項目經理、項目組成員、公司管理人員、市場人員、客戶等。
問題一:缺乏項目管理系統培訓 (相關對象:項目經理、管理人員)
項目經理在項目管理方面的培訓較少或不夠系統。項目經理或管理人員不了解項目管理的知識體系和一些常用工具和方法,所以在實際工作中沒有項目管理知識的指導,完全依靠個人現有的知識技能,管理工作的隨意性、盲目性比較大。在軟件企業中,以前幾乎沒有專門招收項目管理專業的人員來擔任項目經理(甚至很少是管理專業的),被任命的項目經理主要是因為他們能夠在技術上獨當一面,而管理方面特別是項目管理方面的知識比較缺乏。
解決方案:項目經理接受系統的項目管理知識培訓是非常必要的,有了專業領域的知識與實踐,再加上項目管理知識與實踐和一般管理的知識和經驗的有機結合,必能大大提高項目經理的項目管理水平。應實行項目經理知識技能資格考核制度,讓項目經理自覺補充學習項目管理的知識和一些常用工具和方法。
問題二:項目計劃意識問題 (相關對象:項目經理)
項目經理對總體計劃、階段計劃的作用認識不足。項目經理認為計劃不如變化快,項目中也有很多不確定的因素,做計劃是走過場,因此制定總體計劃時比較隨意,不少事情沒有仔細考慮;階段計劃因工作忙等理由經常拖延,造成計劃與控制管理脫節,無法進行有效的進度控制管理。沒有計劃或者是隨意的不負責任的計劃的項目是一種無法控制的項目。
解決方案:在高技術行業,日新月異是主要特點,因此計劃的制定需要在一定條件的限制和假設之下采用漸近明細的方式進行不斷完善。提高項目經理的計劃意識,采用項目計劃制定相關各種知識、技術、工具,加強對開發計劃、階段計劃的有效性進行事前事后的評估。
問題三、管理意識問題 (相關對象:項目經理)
部分項目經理沒有意識到自己項目經理的角色,從總體上去把握管理整個項目,而是埋頭于具體的技術工作,造成項目組成員之間忙的忙、閑的閑,計劃不周、任務不均、資源浪費。 在軟件企業中,項目經理大多是技術骨干,技術方面的知識比較深厚,但無論是項目管理知識,還是項目管理必備的技能、項目管理必備的素質都有待補充和提高,項目管理經驗也有待豐富。有些項目經理對于一些不服管理的技術人員,沒有較好的管理方法,工作不好安排的工作只好自己做。另外由于工作分解結構設計的合理性,項目任務無法有效、合理地分配給相關成員,以達到“負載均衡”。
解決方案:加強項目管理方面的培訓,并通過對考核指標的合理設定和宣傳引導項目經理更好地做好項目管理工作。技術骨干在擔任項目經理之前,最好能經過系統的項目管理知識,特別是其中的人力資源管理、溝通管理的學習,并且在實際工作中不斷提高自己的管理素質,豐富項目管理經驗,提高項目管理意識。
問題四:溝通意識問題 (相關人員:項目經理、項目組成員)
在項目中一些重要信息沒有進行充分和有效的溝通。在制定計劃、意見反饋、情況通報、技術問題或成果等方面與相關人員的溝通不足,造成各做各事、重復勞動,甚至造成不必要的損失;有些人沒有每天定時收郵件的習慣,以至于無法及時接收最新的信息。
解決方案:制定有效的溝通制度和溝通機制,對由于缺乏溝通而造成的事件進行通報作為教訓提醒,以提高溝通意識;溝通方式應根據內容而多樣化,講究有效率的溝通;通過制度規定對由于未及時收取郵件而造成損失的責任歸屬;對于特別重要的內容要采用多種方式進行有效溝通以確保傳達到位,例如除發送郵件外還要電話提醒、回執等,重要的內容還要通過舉行各種會議進行傳達。
問題五:風險管理意識問題 (相關人員:項目經理)
項目經理沒有充分分析可能的風險,對付風險的策略考慮比較簡單。項目經理在做項目規劃時常常沒有做專門的風險管理計劃文檔,而是合并在項目計劃書中。有些項目經理沒有充分意識到風險管理的重要性,對計劃書中風險管理的章節簡單應付了事,隨便列出幾個風險,隨便地寫一些簡單的對策,對于后面的風險防范起不到什么指導作用。
解決方案:通過學習項目管理知識掌握風險識別、量化、對策研究、反應控制的工具和方法掌握項目風險管理所必備的知識。通過加強對項目規劃中風險管理計劃的審核提高項目組的風險管理意識??偨Y本行業項目中常見的風險及其對策作為風險管理計劃中必要的風險內容,并切實評估相應對策的有效性和可行性。
問題六:不重視項目經驗的總結 (相關人員:項目經理、管理人員)
項目經理在項目結束時有些是因為自身對寫文檔工作的興趣或意識,或
者是因為緊接著要參加下一個項目,總體對項目總結的重視程度不夠。有些是項目總結報告一再拖延,有些是交上來的報告質量較低,敷衍了事。
解決方案:在制度上鼓勵和加強項目經驗總結工作,使得項目總結及時并且具有指導意義而不是走過場。
問題七:項目干系人相關問題(相關人員:項目經理、項目成員、客戶)
在范圍識別階段,項目組對客戶的整體組織結構、有關人員及其關系、
工作職責等沒有足夠了解以致于無法得到完整需求或最終經權威用戶代表確認的需求。由于項目經理的工作問題,客戶參與程度部不高,客戶方相關責任人不明確或對范圍和要求責任心不強,提出的要求具有隨意性,項目前期對需求的確認不夠積極;或者是多個用戶代表各說各話、昨是今非但同時又要求項目盡早交付;項目后期需求變化隨意,造成項目范圍的蔓延,進度的拖延,成本的擴大。
解決方案:項目的目的就是實現項目干系人的需求和愿望。項目干系人管理應當從項目的啟動開始,項目經理及其項目成員就要分清項目干系人包含哪些人和組織,通過溝通協調對他們施加影響,驅動他們對項目的支持,調查并明確他們的需求和愿望,減小其對項目的阻力,以確保項目獲得成功。
問題八:項目團隊內分工協作問題 (相關人員:項目經理、項目成員)
項目團隊內部有時由于各階段不同角色或同階段不同角色之間的責任
分工不夠清晰而造成工作互相推諉、責任互相推卸的現象,有時各階段不同角色或同階段不同角色之間的責任分工比較清晰但是各項目成員只顧完成自己那部分任務、不愿意與他人協作。這些現象或多或少地造成了項目團隊內部資源的損耗,從而影響了項目的進展。
解決方案:項目經理應當對項目成員的責任進行合理的分配并清楚地說明,同時應強調不同分工、不同環節的成員應當相互協作,共同完善。
以上對軟件開發項目管理中出現的問題的分析還不夠深入,也無法列舉所有遇到或將遇到的問題,解決方案也要根據實際情況進行調整,希望引起對這些問題更多的思考和改進。
結束語:項目管理雖然沒有非常高深的理論,但要真正實施起來,也絕非易事。對于軟件開發企業而言,這不是一個小的改變,而是一種變革,企業需要為此付出艱苦的努力,宣傳并樹立公司范圍內的項目管理文化十分重要。從而在實踐中鍛煉提高,解決各種各樣的問題,使項目管理工作越做越好。
參考文獻:
吳照云 《管理學原理》 經濟管理出版社
stanley e. portny(寧俊等譯) 《如何做好項目管理》 新經濟工商實務叢書
neal whitten(孫艷春等譯)《管理軟件開發項目》(第二版) 軟件項目管理系列叢書
篇9
《軟件開發方法與實踐》課程是計算機信息管理專業所開設的重要核心課程。通過本課程的學習,學生可以了解管理信息系統以及.NET編程的內容和開發過程,掌握軟件開發方法,從需求分析至系統測試的各個軟件開發階段的模型建立、開發工具使用、編程方法、系統測試以及開發文檔寫作等內容。培養學生具有獨立組織管理信息系統的開發能力并能對管理信息系統的運行和維護進行規劃與實施;掌握信息系統規劃、建設及實施的方法和技能;鍛煉獨立思考和創新精神,以提高全面素質。
傳統的軟件開發方法課程一般由管理信息系統課程演變而來。教學內容主要由軟件工程基礎知識、UML等知識組成。教授內容相對單一、理論性強,在基礎知識方面缺乏軟件設計模式等具有實際應用價值的專業內容,而在應用技術方面又缺乏與高級編程語言實際的對接等實踐環節。隨著軟件開發技術的不斷發展,授課內容必須隨之不斷的調整與擴充。伴隨教學改革的不斷深入,校企合作的不斷加強,本著工學結合和以職業能力培養為重點的課程設計理念,將企業開發實際項目融入教學,在教學中使用企業真實開發項目,不斷增強應用性、實踐性。以工作過程為導向,與企業共建課程, 將軟件企業中的軟件開發模式、軟件項目組織管理方式引入課程中,將職業工作活動與教學活動融為一體。學生通過本課程的學習,掌握真實項目的開發流程和技術,定位于企業崗位實際需求,引入全真案例教學,仿真軟件公司的管理制度和團隊開發模式,學生具有員工和學生的雙重身份,真正做到學校和企業“無縫對接”。
一、課程設計思路
1.培養學生具有程序員或軟件設計師職業能力。
2.崗位描述:從事管理信息系統的設計、開發、軟件維護、管理、軟件測試工作。
職業能力:了解管理信息系統以及.NET編程的內容和開發過程,掌握軟件開發方法,從需求分析至系統測試的各個軟件開發階段的模型建立、開發工具使用、編程方法、系統測試以及開發文檔寫作等等。該課程主要任務是通過綜合運用多門軟件課程的知識和技能開發一個應用軟件系統,使學生了解一個完整的軟件開發過程,學會根據軟件開發文檔編寫符合工程規范的程序,提高軟件開發綜合能力,積累軟件項目開發經驗,實現與軟件開發工作崗位的無縫連接。
3.以軟件開發工作過程為基礎。以軟件崗位群為職業分析對象,邀請優秀的軟件工程師、項目經理等軟件領域專家,分析軟件開發的工作過程,確定典型的工作任務,通過典型工作任務實例客觀地描述軟件開發的職業活動。國外軟件開發管理體系及開發體系應用包括以下階段:立項、信息收集、需求分析、系統設計、系統開發、測試、試運行、維護期。對每一階段的實施及驗收制定相應的標準。
4.以軟件設計為載體,設計學習情境。
三個學習情境涵蓋了12個任務,由簡單到復雜,從理論分析逐步過渡到程序編寫等實施過程。
針對軟件崗位群上的典型工作任務,運用職業分析方法確定軟件崗位群要求的職業能力以及職業能力評定等級。分析職業能力的形成過程,確定各項能力形成的條件,按照能力形成規律歸納總結出行動領域。打散傳統的知識體系,按照軟件開發工作過程及職業能力成長規律將行動領域轉化為學習領域,根據崗位能力要求,確定課程目標。以項目為載體,根據工作任務的相關性構建課程內容體系,針對開發項目的工作過程設計學習情境,以完成工作任務的順序組織教學內容,按照行動導向的原則設計教學單元。與企業密切合作,將軟件企業的開發環境、開發方式、開發工具引入實訓基地,構建本課程的職業情境。
改革傳統的教學模式,設計與工作過程導向相適應的教學方法,參照工程標準及職業資格標準制定教學評價標準,最后,由專業指導委員會的軟件領域專家和教育專家共同確定課程標準。
二、教學內容的針對性與適用性
軟件設計方向畢業生所從事的工作崗位有軟件開發員、軟件測試員、軟件維護員等軟件技術人員,完成這些職業崗位實際工作任務學生應該掌握面向對象程序設計、管理信息系統、軟件開發技術;掌握軟件開發的、測試、管理等職業能力。本課程的教學內容整合了《面向對象的程序設計語言》、《管理信息系統》、《軟件案例測試》、《數據庫應用技術》等4門課程為《軟件開發方法與實踐》這門課程,解決實際的軟件設計開發問題,完成一件產品的制作。教學內容用到上述四門課程的知識點。
根據勞動部和信息產業部所制定的高級程序員、全國計算機高新技術職業資格數據庫操作員所要面臨的工作崗位及要完成的工作任務,其中確定軟件開發員、軟件測試員、軟件維護員為具有教育價值的典型工作崗位。因此,本課程主要使學生掌握如下技能:(1)學習編寫程序基礎理論,進而會編寫典型的算法程序。(2)學會可視化程序設計工具的使用,掌握面向對象的程序設計方法、事件驅動的編程方式。(3)利用C#開發程序過程,能夠設計、編制、調試一個實用的程序,要求程序結構簡單,功能齊全,使用方便。(4)使用UML對系統進行分析與設計,能組織管理信息系統的開發并能對管理信息系統的運行和維護進行規劃與實施。(5)對設計的軟件進行全面測試。(6)運用軟件開發的綜合技術,前臺選擇一種程序設計語言,后臺選擇一種數據庫(SQL Server等)開發完整MIS系統的能力。
本課程的理論知識不再是抽象無物的東西,實踐教學也不是單純的技能訓練,而是理論支持下的職業實踐活動;學生的學習內容不再是脫離企業軟件開發實際過程的僵硬教條,而是針對來自企業的工作項目和典型任務,學習內容與企業實際運用的新知識、新技術、新方法實現同步,適應了職業教育的發展方向。
三、教學模式的設計與創新
本課程采用了“項目+過程”的工學結合教學模式。課程以項目為載體,以過程為導向,采用任務驅動的方法,按照企業開發軟件的流程,在工廠化的實習環境中,將“企業的內容”以“教學的形式”來完成“人才的培養”。
1.實際的工程項目與真實的工作任務保證了教學內容與工作內容的一致性。
本課程的項目來自于軟件公司開發的實際工程項目。按照企業的開發方式,整個開發過程需要經歷不同的開發階段,各個開發階段都必須完成多個學習性工作任務,提交階段性工作成果。由于整個課程結構和教學內容由這些工作任務構成,因此,保證了教學內容與工作內容的一致性。
2.企業化的開發流程保證了學習過程與工作過程的一致性。
本課程以小組為單位組織項目開發。開發小組按照企業開發軟件的流程,從業務調查、需求分析、概要設計、詳細設計、軟件編碼到軟件測試、軟件實施,經歷了一個完整的軟件開發過程。學生以準員工的身份參與項目開發的全部過程,完成企業員工應當完成的工作,使職業工作活動與教學活動融為一體。此外,學生還要走出校門,到校外生產實習基地頂崗實習,接受真正工程項目實踐的鍛煉。學生在經歷情境化的工作活動過程中熟悉了軟件工作環境和開發流程,積累了實際工作經驗,實現了職業能力的發展。
3.工廠化的實習環境保證了課堂與實習地點一體化。
本課程主要在軟件生產實訓基地中進行訓練。軟件生產實訓基地按照軟件企業的開發環境建設,它不但可以進行教、學、做一體化教學,而且可以為學生提供一個真實的企業環境開發軟件,學生可以在此進行生產性實習,消除對真實企業工作環境的陌生感,實現學生當前的實訓環境與其未來職業環境的“零距離”對接。
4.采用任務驅動、工學交替的教學模式組織教學。
本課程由同步訓練、拓展訓練和生產實習3個環節構成。同步訓練采用一體化的教學方法,在綜合實訓室完成。拓展訓練采用教師指導下的獨立訓練方式,在校內軟件生產實訓基地完成,而生產實習則在真實的軟件企業中完成。3種訓練方式交替進行,一體化教學逐步減少,生產性實習逐步增多,最終達到與職業崗位群的“無縫”連接。
本課程還采用任務驅動組織教學。每一項任務開始時都向學生下達一個工作任務單,任務單詳細描述了工作任務、工作要求、工作期限、工作環境和開發工具。學生以此為開端,在完成工作任務的過程中學會了知識,增長了能力。
5.行動導向的教學模式使學生逐步積累了實際工作經驗。
改革傳統的以教師為中心的講授模式,建立行動導向的教學模式。課程中的每一個學習情境都按照行動導向的教學模式組織教學,學生在項目開發過程中學,教師在項目開發過程中教,學生成為了學習過程的中心,教師是學習過程的組織者和協調者。學生在“資訊、計劃、決策、實施、檢查、評價”這一完整的“行動”過程中,通過獨立地獲取信息、獨立地制訂計劃、獨立地實施計劃、獨立地評估計劃,掌握軟件開發的技能、習得軟件技術知識,構建自己的開發經驗和軟件知識體系,有效地培養學生職業能力,方法能力和社會能力。
四、可行性分析
《軟件開發方法與實踐》課程是基于工作過程導向的課程開發,與中國軟件行業協會聯合開發課程,以來自企業的實際項目為載體設計教學內容。
教學內容設計了三個學習情境:軟件開發過程、管理信息系統分析和管理信息系統開發,每個學習情境下又設置若干任務,通過每個任務的完成可以實現對應學習情境的學習。
學生通過本課程的學習,掌握管理信息系統的內容和開發過程以及開發方法,初步掌握面向對象的程序開發所需的設計工具、建模工具、開發工具、測試工具以及文檔寫作,提高學生對面向對象軟件的設計以及開發能力,擁有自行獨立開發、維護、運行管理信息系統的技能。使學生能夠適應當今軟件制造行業的高速發展,增強就業競爭力,為學生將來的程序員、軟件測試員、軟件系統分析師、軟件項目管理人員等相關職業生涯奠定了必要的知識和技能。
計算機信息專業與中國軟件行業協會已經正式簽約,成為其在本區域內的第一家合作的高職院校,對本課程的教學進行全程合作,具體表現為三個方面:
項目背景優勢權威性:三方結合國家政策及行業需求強強聯合推出;標準性:逐步建立軟件企業人才準入制度,打造軟件人才培養標準。
核心項目優勢:實用的課程內容:定位于企業崗位實際需求,全真案例教學;強大的師資力量:雙師型的師資隊伍;先進的教學方法:八真教學方法。
就業服務優勢:雄厚的企業資源和跨地域的就業服務體系。
五、特色與創新
1.雙重主導的教學內容組織方式。
本課程以來自真實的項目為載體,項目開發貫穿課程始終。整個課程的教學內容以軟件開發過程及業務邏輯為主線層層遞進,環環相扣,其教學過程與工作過程完全一致。在軟件開發過程的主導下,課程按照認知規律編排多發面的相關技術知識,按照從易到難的原則將其巧妙地融入到項目開發過程中,形成另外一條貫穿始終的技術知識輔線,主輔雙線相互呼應,相互融合,學生在開發軟件的過程中不但積累了工作經驗,同時也將逐步構建自己的知識體系,為未來發展打下一定的基礎。
2.“三位一體”的教學過程。
本課程以項目為載體,通過一個完整的軟件開發周期,將開發過程、學習過程、評價過程融為一體,學生在交替進行的同步訓練、拓展訓練和生產實習過程中逐步提高軟件開發能力,最終達到課程目標。
3.企業化的學習方式。
本課程在教學過程中,將企業中的軟件開發模式、組織管理方法、企業開發環境引入教學中,為學生營建一個企業化的學習環境。課程一開始,每一個學生在開發小組中扮演一個開發角色,教師介紹開發規范、項目背景及組織管理方法,讓學生熟悉環境,幫助學生制定項目開發計劃,以便所有相關人員按照計劃有條不紊地開展工作。在每一個教學單元中,教師首先介紹任務背景,下達工作任務單。任務單詳細描述了工作任務、工作要求、工作期限、工作環境和開發工具。學生在完成工作任務后要與教師一起從交付時間、用戶界面、編碼規范、健壯性等各個方面評估任務的完成情況,然后將評估結果記錄在評審表中。評審結束后,學生要從生產效率、產品質量、技術方法、錯誤分析等多方面進行總結,在此基礎上提交相應的工作成果及工作(實訓)報告,為今后的項目開發積累開發資料。
4.多門課程優化整合。
構建了以軟件開發為主線、以應用為目的的軟件開發課程群,包括C#程序設計、數據庫原理與應用、管理信息系統、軟件測試與文檔寫作課程,各門課程之間相互聯系,融會貫通,形成了有利于學生就業的完備的課程體系。探索并開創了程序設計一條線模型的課程建設,課程組合以后可以將原來一個個單獨的程序變為一個有機的整體。使得學生能夠真正了解程序到底可以干什么,有什么用途。
作者簡介:
篇10
軟件職業開發人員就業市場現象目前軟件開發人員就業市場存在兩個突出現象:一方面合格的軟件開發人員需求量不斷擴大,大量的用人單位在苦于找不到合適的崗位人才的同時還必須承受自己培養的合格人才由于稀缺性所帶來的人員流動性風險;另一方面每年畢業的本專業學生卻由于所學知識、技能與需求脫節往往長時間找不到工作。普遍高校走的都是“通才”教育道路,人才結構缺乏層次和特點,學生能力與行業需求缺乏交集,導致越來越多的軟件中端人才就業形勢不容樂觀。[2](P11-14)3.軟件職業人才培養現狀及存在的問題我國現行高校教育體制仍然是以理論基礎學習為主的學科體系下的應試教育,這種教育模式培養的軟件人才重理論輕實踐、強調單一知識的學習,忽略綜合分析問題和解決問題的能力的提高;重視個人學術能力,忽視團隊協作精神,輕視開拓創新。隨著信息的進步和社會的日益競爭,計算機軟件行業對人才的要求越來越高:不但需要設計型、研究型的人才,而且需要綜合應用型的人才;不僅需要開發型的人才,而且需要服務型、創新型的人才。社會的需要是多層次的,會其一不知其二,有理論沒技術的大學畢業生無法與社會需求對接。當前我國軟件人才培養主要存在以下幾個問題。[3](1)重理論輕實踐。我國計算機軟件專業人才的培養模式和課程設置多年變化不大,只重視培養學生扎實的基礎知識和專業理論,忽視了實踐操作能力尤其是最新IT技術操作能力的培養。并且這些課程均為理論性課程,與IT企業的具體要求還有差距。即使是成績全部優秀的學生,如果沒有較強的實踐能力和具備一定的產品開發經驗,也無法滿足IT企業的用人要求。(2)以教師為中心。工程教育目標模糊、教師缺乏工程經歷、學生工程實踐能力不強?,F有課程體系中,教師作為主體,在理論教學中占用所有時間講解理論知識,學生被動接受。在實驗課程中,教師規定題目,給出完成思路和編程結果,學生主要重復輸入代碼過程。在課后習題中,教師給出題目,并在課程教學時間專門以習題課解答,學生容易出現抄襲。(3)現有工程教育培養方案設置不合理。其不足之處主要表現在:培養方案設置的專業課程里,單科性課程太多,理論分析學時過多,過分注重單學科課程的理論性和知識的系統性。相反,培養學生工程綜合能力的課程少,訓練學生的直觀判斷力和工程經驗、工程意識的教學環節少,強調學科知識間交叉和綜合性的課程少。(4)培養方向模糊。我國一些重點高等院校以及普通??圃盒5挠嬎銠C專業的教學計劃、課程設置、教學方式基本相同,培養目標類似,培養方向模糊,軟硬兩方面的知識兼顧,完全是“通才”教育,不能夠體現專業特長。(5)教學內容落后。隨著IT技術發展的日新月異,大批國際流行的軟件產業最新發展技術由于多種因素不能及時進入教學領域,教學內容落后,教材更新緩慢,致使學生在校學習的理論知識和實踐技術已經落后過時,畢業生須接受企業再培訓、再教育,才能夠勝任工作。
基于雙新人才計劃的軟件職業人才模式構建思路
該方案以“新知識、新技能”為核心,根據企事業單位對計算機軟件人才的實際需求,整個培養方案分為三個階段(初級,中級,高級)和兩個部分(理論知識和項目實訓)。1.理論知識先行理論知識的授予按三個階段進行。第一階段(初級階段)的學習是基礎知識的學習,該階段要求學生理解信息系統的定義、組成、發展模式及建設模式;了解軟件的定義和組成、生命周期及軟件開發的過程和質量控制原則;要求學生掌握信息化基礎知識和軟件開發的基礎知識,熟練掌握基礎語言Tur-boC的使用和實踐,面向對象語言Java的使用、實踐描述型語言DHTML的使用和實踐及解釋型語言Javascript的使用和實踐;了解IT相關的專業英語,能夠在翻譯軟件的幫助下閱讀大量英文的專業性科技文獻并大致了解含義;牢記軟件從業人員職業道德規范,對職業發展結合自己的現狀制定發展規劃,熟練掌握常用軟件的使用。第二階段的學習能使學生了解軟件開發、測試和實施等過程涉及的各種技能和知識,對軟件技術發展的過程有清醒的認識。閱讀大量的相關專業英語文獻,能夠獨立寫作英文注釋和英文專業文章。具備軟件專業從業人員的職業修養和素質;掌握各種實際情況下的職業技能。第三階段的學習能使學生熟練掌握信息系統的售前、開發和售后等過程涉及到的各種技能和知識;了解需求分析、項目管理的各種技能和知識。能夠獨立進行專業英語的聽、說、讀、寫。具備軟件高級從業人員要求的職業修養和素質。2.項目實訓的職業拓展性推動新的模式生成(1)精準的目標設置策略。突破傳統的“教師規定題目,給出完成思路和編程結果,學生主要重復輸入代碼過程”的實訓教學模式;充分發揮學生的主體性,培養學生的分析問題、解決問題的能力,激發學生的學習積極性和創新意識。[4]學生通過參與項目的設計與開發,掌握最新的技術,了解企業的文化,熟悉企業的運行機制,能夠按照企業管理的標準嚴格要求自己,使自己畢業前具備企業人的素質。(2)趨于完善的實施方案定制。采用梯度式實訓,分初級、中級、高級三個級別。實訓成員由雙新辦的專家、學校專業核心課老師及計算機相關專業的畢業班學生,雙新辦專家和老師擔任項目經理。六個學生為一組,每組對應一個組長和一個項目,組長負責考勤,寫工作日志。實訓開始先進行案例教學,給出一個典型的實用案例及完整解決方案和相關文檔,讓學生直觀地了解企業項目開展的流程;然后給定每個項目的需求文檔、測試報告表格、代碼編寫規范、對話設計規范、調試用例設計規范、原型設計規范。在項目經理的監督和適當地指導下,要求學生參照事先給出的實用案例和依照企業管理的標準按時按量完成項目的實訓。
總結