前言:一篇好文章的誕生,需要你不斷地搜集資料、整理思路,本站小編為你收集了豐富的軟件項目總結主題范文,僅供參考,歡迎閱讀并收藏。
論文摘要:為提高軟件企業的管理水平,對軟件項目管理存在的一些問題進行了深入的分析,指出了軟件項目管理中常見的不足之處:項目計劃問題、管理意識問題、項目干系人相關問題、項目團隊內分Z-協作問題、溝通意識問題、項目風險管理意識問題、項目收尾問題通過分析找出了原因.提出了改進措施
軟件項目管理是為了使軟件項目能夠按照預定的成本、進度、質量順利完成,而對成本、人員、進度、質量風險等進行分析和管理的活動。軟件項日管理最早出現于7o年代中期,當時美國國防部專門立項研究軟件項目失敗的原因,發現70%的項目失敗是I如于管理不善引起的。而并不是因為技術能力。從而得出一個結論,即管理是影響項目全局的因素,而技術只影響局部。所以軟件項目管理至關重要。在關系到軟件項目成功與否的眾多因素中,項目規劃、需求變化、軟件質量、風險管理等都是與項目管理直接相關的因素。因此,提高軟件項目管理的能力對軟件組織的軟件生產力的提高是最為重要的。本人對目前軟件企業實施項目管理的狀況進行了分析,結合軟件項目管理的理論知識,以期找出在軟件項目管理中常見的問題。促進軟件項目管理的應用研究。完善軟件項目管理在軟件企業的實施。
1軟件項目管理存在的主要問題
1.1項目計劃問題
項目計劃是—個用來協調所有其他計劃,以指導項目執行和控制的文件。項目計劃是項目經理實施項目管理控制的基礎。制定計劃的過程就是—個對項目逐漸了解掌握的過程,通過認真地制定汁劃,項目經理可以知道哪些要素是明確的。哪些要素是需要逐漸明確的,通過漸近明細不斷完善項目計劃。目前的問題主要有:一是項目計劃的制定不夠嚴謹,隨意性大.可操作性差,因而實施中無法遵循。如項目計劃過于粗略.落實粒度(“Breakdown”)不足,不能做到任務、進度、資源三落實。二是缺乏貫穿項目全程的詳細項目計劃,甚至采用每周來制定下周工作計劃的逐周項目計劃方式,其實質是“項目失控合法化”。三是項目進度的檢查(與進度計劃對比)和控制不足。不能維護項目計劃的嚴肅性。
1.2管理意識問題
在軟件企業中。項目經理大多是技術骨干,在技術方面的知識比較深厚,但是項目管理知識、項目管理必備的技能,項目管理的經驗都有待提高。部分項目經理沒有意識到自己是項目經理的角色。不是從總體上去管理整個項目而是埋頭干具體的技術工作,其計劃不周造成項目組成員任務分配不均.忙的忙、閑的閑,這將影響項目的最終實施。有些項目經理對于一些不服從管理的技術人員,沒有較好的管理方法,不好安排的工作只好th己做。
1.3項目干系人相關問題
項目千系人(“STAKEHOLDER”)是指參與項目和受項目活動影響的人,包括項目發起人、項目組、協助人、顧客、使用者、供應商,甚至是項目的反對人。人們的需求和期望在項目的開始直至結束都是非常重要的。不同的干系人其期望和追求的目標往往相差甚遠,因此對項目十系人的愿望進行平衡是相當困難的事情。例如政府部門的不少對群眾辦公的信息系統,上層管理機關往往希望能夠采集盡可能多的信息項以便對數據進行多種多樣的系統分析,并對信息進行有效控制而增加一些審批流程;基層對外辦公的窗口則因為辦公速度的壓力希望減少信息的輸入;而辦事群眾則希望相關政府機構能夠簡化工作流程,加快辦事速度。如果對項目所有干系人沒有進行足夠的溝通,使其盡可能地參與項目,則可能因為項目開始時項目范圍和一些具體要求不夠完整清晰,或某個項目干系人后期認識的變化而提出新的要求,造成工期的延長,成本的增加,甚至項目的完全失敗。
1.4項目團隊內分工協作問題
由于項目開發的各階段不同角色、同一階段不同角色的責任各不相同,項目經理把工作責任分畫給團隊成員時通常會出現一些不良現象。首先是山于分工不夠清晰而造成工作相互推諉、責任互相推卸的現象;另外是出現“自家打掃¨前雪”的現象,即雖然分工比較清晰但是各成員只顧完成自己的那部分任務而不愿意與他人協作。
1.5溝通意識問題
項目溝通管理包括確保及時、正確地產生、收集、、存儲和最終處理所需項目信息的過程。它是人、思路和信息之間的關鍵紐帶,是成功所必須的。雖然整個項目是項目經理負責,但是在決定這個業務單元山某個或者某兩個人完成后,項目經理只能起管理上的控制、建議和指導的角色,不能對具體的內容進行過多的干預在軟件企業中,項目經理大多是技術骨干,而項目組成員也都是“高科技人員”,都具有“從專業或學術出發、工作自主性大、自我欣賞、以自我為中心”等共同的特點。因此妨礙溝通因素主要是“感覺和態度問題”,也就是溝通意識和習慣的問題。在系統的實施階段或軟件開發的試運行階段,項目成員基本上是持續在客戶方進行工作,這種情況非常容易忽視溝通。如果沒有足夠的溝通意識和溝通制度、溝通工具,就有可能造成信息不暢,從而加大項目失敗的風險。
1.6項目風險管理意識問題
項目風險管理是指為了最好地達到項目的目標,識別、分配、應對項目生命周期內風險的科學與藝術。風險管理對選擇項目、確定項目范圍和制定現實的進度計劃和成本估算有積極的影響,并有助于項目千系人了解項目的本質,使團隊成員參與確定優勢和劣勢。目前項目風險管理意識的問題主要有兩種情況。第一是項目經理沒有充分分析可能的風險,對付風險的策略考慮比較簡單,在做項目規劃時常常沒有做專門的風險管理it~’l文檔,而是合并在項目計劃書中。第二是項目經理沒有充分意識到風險管理的重要性。對計劃書中風險管理的章節簡單應付了事,隨便列出幾個風險,隨便地寫一些簡單的對策,對后面的風險防范起不了什么指導作用。
1.7項目收尾問題
項目經驗總結是項目經理和項目組人員在項目完成后就取得的教訓寫的報告,是項目收尾的一個重要組成部分。總結在本項目中哪些方法和事情使項目進行得更好、哪些對項目制造了麻煩、以后應在項目中避免什么情況。哪些事情應在后面的項目中堅持等等。項目經理在項目結束時有些是因為項目人員已經不足或不全,或是因為有新的項目要接沒有時問,總體對項目經驗總結的重視程度不夠。有些是項目經驗總結一再拖延,有些是交上來的報告質量較低,敷衍了事。
2加強軟件項目管理的建議及措施
2.I制定相符的項目計劃
制定計劃的精髓不在于寫出一份好看的文檔,而在于運用您的智慧去應對各種問題和面臨風險并盡可能做出前瞻性的思考。計劃是用來指導工作的,制定項目計劃必須把握項目it~,l的粒度,粒度越細則控制力度越大,但項目管理的成本越高,反之則控制力度越小。兇此必須按照特定的項目量體裁衣,該詳細就詳細,該簡略的就簡略,制定相符的項目計劃。許多組織都有項目計劃制定的指導原則。例如,美國國防部的2l67標準“軟件開發計劃”用于指導那些為國防部開發軟件的開發商制定軟件開發計劃。電氣和電子工程師協會(IEEE)的1058.1標準描述了“軟件項目管理計劃”的主要內容。表l給出了“1EEFYI,T:,準軟件管理計劃”的格式。遵循那些標準和方針有利于項41汁劃的制定和執行一旦it~,l被負責任地完成,他就可以給閂己一個和管理層或客戶交流和協商的基礎,幫助其在項目過程中防范各種題的出現,保證項H的按時完成.
2.2使用w BS(WorkBreakdownStructure)和資源負荷直方圖,合理分配任務
項目經理應使用工作分解結構WBS將項目工作范圍進行分解,為了避免有些雖然工作分解結構WBS沒汁合理,但項目任務無法有效、合理地分配給相關成員,可采用資源負荷直方圖把工作任務合理分配并達到“負載均衡”。另外.技術骨r在擔任項目經理之前,最好能系統地學習項目管理知識,特別是其中的人力資源管理、溝通管理,并且在實際工作中不斷提高角已的管理素質,豐富項目管理的經驗,提高項目管理的意識。
2.3項目組成員應互相協作、互相配合
項41經理通過使用WBS將工作范尉進行分解.并將工作責任分配給團隊成員,同時應強調不同分工、不同環節的成員應 當相互協作,共同完成任務。雖然項目的進行有不同階段的劃分,但各階段還是相互聯系的。上一階段工作的結束不能只交付階段性成果,往往要通過多次溝通才能更為清晰地披下一階段成員所接受,其有效性、合理性也要被下一階段的工作所檢查,通過檢驗有時也有必要對上一階段的工作結果進行相應的凋整。因此,項H組成員都應根據需要相互協作,相互配合,共同完成任務。
24加強溝通意識
項目溝通管理指出:“管理者要用70%的時問用十與人溝通,而項目經理需要花費90%或更多的時間來溝通”從溝通的效果和效率角度出發,一股應注意下面四種情況:首先是溝通之前對溝通的基本慨念和目標進行清晰的界定其次是不能凱溺十溝通本身,而必須時刻清楚溝通的目的;意到溝通是有成本的,溝通的時間就是成本,客戶在為這些成本買單第三是一些規則,包括時和回合的限制、耐心聽完對方的I舌,進行“集中”決策。最后是為了做好事件.必須事先進行明確,進行充分的授權。另外,項目經理及其項14組成員要對項14下系人進行分析,項目1:系人分析要記錄重要的I:系人的人名、組織、他們各在項目中的角色、每個I:系人的實際情況、他們各自的項目利益大小、以及各自對項目的影響程度,以及管理這些項14 r系人的有關建’義等。通過溝通協調.以驅動他們對項目的支持,減少其對項41的阻力,以確保項41獲得成功
2.5加強風險管理意識
項目經理必須通過學項41管理知,掌握項H風險管理的必備知,加強對項14汁劃中的風險管理汁劃的審核,提高項41組的管理意識。總結本行業項目中常見的風險及其對策作為風險管理汁劃中必要的『x【險內容,并切實評估相應對策的有效性和可行性。
2.6重視項目經驗總結
項41經理及管理人員應對項目經驗總結引起足夠重視。在制度上鼓勵和JJu強項目經驗總結工作,使得項41經驗總結及時并且具有指導意義而不是敷衍了事,為以后的項41人員更好地工作提供一個極好的資源和依據。
一引言
項目管理技術是軟件工程專業的一門重要專業課。其教學任務是使學生了解和掌握項目管理的基本概念、基本原理和工程化方法。內容涉及項目管理知識體系(PMBOK)九大知識領域和五個標準化過程組,幾乎涵蓋了軟件項目從立項到結束的方方面面,是一門具有相當廣度的課程。然而,該課程的教學效果卻不容樂觀。
其一、項目管理技術的理論知識多脫胎于工程管理領域,由于國內軟件工程專業建設剛剛起步,相關教材往往照搬工程管理理論,缺乏完全針對軟件開發的必要整理和篩選。因此同軟件開發實踐結合并不十分緊密。
其二、而傳統的教學方式往往重理論而輕實踐,教師將理論知識“滿堂灌”給學生,學生“死記硬背”理論條文,并不懂得如何將理論用于實際軟件開發。這種僅以理論的多寡深淺作為對學生評價激勵唯一標準的教學手段,必然導致培養的人才實用性不強,職業能力較差,工程化程度較低。達不到項目管理技術的教學要求。
因此,需要對軟件項目管理技術的教學進行改革。二基于具體項目的軟件項目管理教學軟件工程項目相比一般工程項目具有更強的復雜性和更多的不可控因素,傳統的項目管理教學所傳授的知識常常不易使理論知識和實際開發吻合,給學生造成“學習無用之感”;課程本身也難以完全包括軟件開發過程的全部情況。最好的方法是通過一個具體軟件項目的開發過程,使學生接受項目管理的理念,而軟件項目的開發設備相對單一,團隊人數相對較少,相比一般工程項目更易進行實踐演練。
可以看出,項目管理進行過程將根據實際情況不斷進行計劃變更、計劃控制和計劃執行的搏弈和循環。由于軟件項目有以下特點:
(1)軟件產品是無形的,不可捉摸的,無法感覺形狀,設計也難以直觀表示,很難確定產品質量或估計開發工作量。
(2)由于軟件的拷貝生產輕而易舉,因此,幾乎全部的軟件項目成本在開發過程中,而不是在制造過程。
(3)軟件開發過程屬于勞動密集型過程,尚未實現完全自動化,因此對軟件項目開發進度的計劃和控制比對一般工程項目更加復雜。
(4)軟件是邏輯實體,本身很容易修改,但由于其復雜性,又很難正確地修改,在缺乏溝通的情況下,對個別模塊的修改可能會帶來新的錯誤。
(5)軟件不像其他產品會因使用而磨損,和一般工程產品不同,軟件產品的維護常常通過增加新模塊功能完成升級。為保證新版本的穩定性,常常需要對新版本的重新設計因此,軟件過程主要集中于軟件項目的開發過程,而在這一過程中,相比一般工程項目,項目管理過程組的核心循環表現得更加突出。基于具體項目對軟件開發過程進行闡述將更有利于學生理解軟件開發過程中的項目管理。由于課程目標并不在于具體技術細節的學習,而在于體會軟件開發過程中的項目管理。因此在項目選擇中,不能使學生投入過多精力在技術細節上,而應更多的關注軟件項目管理的溝通、計劃和控制。我們選擇計算機學院行政管理系統網站作為實踐項目讓學生組隊開發,這一項目屬于MIS(信息管理系統)項目類,難度不大,且能充分體現軟件項目需求不明確、多變、溝通復雜等特點。作為計算機學院的學生,學生對項目的需求的理解也將更加實際。
2.1基于項目驅動的評價體系“為了解決軟件問題,重要的第一步就是將整個軟件開發任務看做一個可控的、可度量的以及可改進的過程。”將項目管理方法運用于具體軟件項目開發的實踐或在實踐中改進現有方法,能夠幫助學生更好的掌握項目管理技術。在實際教學中,我們將學生分成若干團隊,每個團隊8~13人,充分使學生體會到團隊感,增加管理意識。項目經理是靠干出來的,不是靠背出來的。為使學生在具體項目實踐中更加投入,必須改革原有的基于卷面成績的評價體系。我們提出基于項目驅動的評價體系,使學生自覺將課堂所學的理論知識及時用于項目。學生的總評成績將由團隊項目評分、演練與總結評分、期末論文評分三部分組成:
(1)團隊項目評分:60%其中20%由教師根據團隊分階段提交的項目資料給出;剩下40%由每個團隊的“項目經理”根據團隊的成員的表現給出。而項目經理的打分權限則取決于項目完成時專家對項目的評審得分。
(2)演練與總結評分:20%項目結束后各個團隊成員對整個項目管理過程進行總結,評價和反思項目經理的管理過程,教師根據學生個人上課時有關項目的各種演練表現以及項目總結報告進行評分。
(3)期末論文評分:20%要求學生對項目管理九大知識領域進行一定深度的論述。為確保評價體系更加公平、公開、公正,我們規定:
(1)項目經理享有計劃和分配項目團隊資源,為項目組成員進行打分的權利,同時具有帶領項目組完成所有課堂演練環節,完成項目開發的義務。作為獎勵,項目經理可以直接獲得滿分的演練與總評成績;作為制約,項目經理為自己所打分數只得在項目評審得分5%上下浮動,如果項目經理引起過團隊半數以上成員不滿,將被彈劾,一旦彈劾,相應權利和獎勵同時消失。
(2)項目評審后,項目經理將得到“項目評審得分*團隊開發人數”的可分配分數,項目經理根據項目組分數分配方法給團隊成員打分,上限為40。
(3)項目評審時將邀請學院軟件工程專家、需方代表不少于5人組成專家組對各團隊項目進行公開評審,評審將從需方滿意度、項目開發文檔、項目開發過程三個角度進行打分。團隊最終得分通過delphi法得到。可以看出,在以上的評價體系中,基于項目驅動的評分所占比重相當大,不僅注重項目的結果,同時注重項目開發過程。學生的分數在一定程度上模擬了現實生活的“獎金”,而項目團隊則更加貼近現實生活中的軟件開發公司。為了使項目成功,學生必須自覺地實踐和探索科學的項目管理方法,不論成功與失敗都將成為學生寶貴的經驗和教訓。評分中,由于個體學生所能獲得的成績與其所在團隊成績緊密相關,因此,為整個團隊獲得高分而努力的開發過程極大地培養了學生的團隊協作精神。通過教學實踐,這一評價體系調動了學生的學習主動性,起到了較好的作用。超級秘書網
2.2基于項目過程的知識傳授和情景演練表1顯示了項目管理九大知識領域在五個標準化過程組中的作用。可以看出在不同的過程組中,各知識領域所起的作用是不同的。配合實際項目開發的過程,為使所傳授的知識能夠及時用于實際項目,我們顛覆了原有教材順序,按軟件項目五個過程組所涉及的知識領域對教學順序進行重新安排,基本做到項目進行階段與所傳授的相關知識同步。每次課程教學前后都及時安排對相關內容的情景演練。由表2所示教學實施安排表可以看出,項目管理的九大知識領域幾乎都能做到安排于項目情景中進行傳授,起到了理論對實踐的指導或總結作用。可以看出,每次演練環節一般都是對上次所本傳授知識的總結或當次所傳授知識的及時操練,知識點覆蓋較全面。通過設身處地去當一名項目經理或軟件工程師,增加了學生對軟件開發項目的感性認識和興趣,提高了他們的管理才能。通過知識傳授和情景演練的密切配合,使學生對軟件項目的管理過程理解得更加深刻。
二結論
基于具體項目的項目管理教學使學生能夠體會項目管理各知識領域的作用,領會各種方法、規范所適用的環境。通過實際開發后自己總結提煉的經驗和教訓,學生將更加接受項目管理的理念和知識,培養了團隊合作精神。在學期末進行的教學效果調查中,83%的學生認為這種教學方法效果良好。學生普遍反映“項目管理枯燥的理論知識變活了,知道怎么用了,印象更加深刻了。”
項目管理是軟件工程重要的專業課,在今后的教學實踐中,我們將繼續改進教學方法,做到量體裁衣,因地制宜,加強教學效果。
參考文獻:
[1]韓萬江,姜立新.軟件項目管理案例教程[M].北京:機械工業出版社.2005.
[2]張海藩.軟件工程[M].北京:人寫作論文民郵電出版社,2002.
關鍵詞:項目管理;軟件開發;應用
中圖分類號:C93文獻標志碼:A文章編號:1673-291X(2010)31-0239-02
軟件行業是一個極具挑戰性和創造性的新行業,管理上沒有成熟的經驗可供借鑒。而項目管理應該說對于軟件企業、尤其是那些以應用開發為主的軟件企業,是行之有效的管理方法。因此,項目管理在軟件開發中的應用日益受到重視。
一、項目管理的簡要釋義
1.項目管理的定義。按照PMI的定義,項目管理(Project Management,PM)是在項目活動中應用一系列知識、技能、工具和技術,以滿足或超過項目關系人對項目的要求和期望。
2.為什么需要項目管理。目前,企業面臨著一些比較明顯的挑戰:縮短產品生命周期、看準產品投放市場的時間、產品的復雜性和技術性越來越強、全球市場的發展、提高效率節約成本等。而這些挑戰所帶來的影響力在近期內不會減輕,為了應對這些挑戰,很多企業都將項目管理作為其運作體系的重要一環。此外,沒有項目管理,項目也有可能成功。但沒有管理的項目,很難保證目標的實現。為了實現項目的總體目標,消除項目單項管理的局部性,有時甚至可以不惜犧牲或降低一些項目的單向目標,來實現總目標。比如說某些目標本身就是相互沖突的,為了提高單個目標要求,可能會以降低或犧牲其他目標為代價。這種情況并不少見,因此項目管理在使整個項目利潤最大化的過程中發揮著巨大作用。
3.項目管理的特點。項目管理不是一次任意的管理項目的實踐過程,而是在長期實踐和研究的基礎上總結出來的理論和方法,是一種公認的管理模式和管理理念。(1)項目管理具有探索性。(2)項目管理具有復雜性。(3)項目管理的整體性。(4)項目管理需要更多的協調和溝通。
4.項目成功的決定因素。項目成功的定義必須考慮限定項目的本質因素,也就是時間、預算、功能/質量和用戶滿意度。通常用以下四個標準來衡量項目是否成功:(1)時間。(2)成本。(3)績效。(4)客戶接受。此外,也可以從外部和內部兩個角度來考慮項目成功的標準。
5.項目管理的發展與現狀。項目管理作為一種現代化管理方式在國際上已獲得了廣泛的應用,隨著計算機、網絡系統的迅速發展,項目管理技術也在不斷進步,經過多年的嘗試和時間考驗,項目管理已由簡單設想轉變為可以操作的一種新型的施工管理模式,逐漸形成了一套系統的工程項目管理理論和方法。
二、項目管理在軟件開發中的應用的成因
隨著信息技術的飛速發展,軟件產品的規模也越來越龐大,各軟件企業都在積極將軟件項目管理引入開發活動中,對開發實行有效的管理。
從概念上講,軟件項目管理是為了使軟件項目能夠按照預定目標順利完成,而對成本、人員、進度、質量、風險等進行分析和管理的活動。實際上,軟件項目管理的意義不僅僅如此,進行軟件項目管理有利于將開發人員的個人開發能力轉化成企業的開發能力,企業的軟件開發能力越高,表明這個企業的軟件生產越趨向于成熟,企業越能夠穩定發展(即減小開發風險)。同時,隨著軟件開發規模及開發隊伍的逐漸增大,軟件開發不再是向過去那樣一兩個開發人員即可解決的事情。迫切需要一種開發規范來規范每個開發人員、測試人員與支持人員的工作,同時采用規范化管理,專業分工也可以降低對開發人員的要求,從而降低產品研發成本。
早在20世紀60年代中期,人們就發現軟件的生產出現了“問題”,主要表現在生產過程不規范,缺乏管理。后來,人們在軟件工程方法學中引入了工程的概念、原理、技術和方法,這種思想在一定程度上解決了軟件生產過程中遇到的問題。但是直至20世紀80年代還是沒有提出一套管理軟件開發的通用原則,軟件管理不善的問題依舊在大范圍內存在。
目前的軟件開發工作正逐步趨向于復雜化、多元化,大多數開發團隊中都會出現同時開發多個版本、開發/維護工作并存、多地點同時開發等情況,給軟件開發管理帶來了諸多困難。沒有項目管理“介入”,各自為伍,版本重復、混亂因此,開發人員之間職責分工不明確,工作相互交叉、干擾,嚴重影響了工作效率,降低了工作質量,拖延了工作進度。因此,隨著軟件開發的深入、各種技術的不斷創新以及軟件產業的形成,人們越來越意識到軟件開發過程管理的重要性,管理學的先進理念逐漸融入軟件開發過程中,應用開發的項目管理日益受到重視。而項目管理技術的發展與信息技術的發展是密不可分的,與此同時,大量的項目管理應用軟件(ERP等)涌現出來,它們可以提供便于操作的圖形界面,幫助用戶制定任務、管理資源、進行成本預算、跟蹤項目進度等。這樣在項目管理應用軟件開發和項目管理在軟件開發中的應用兩者之間就形成了一個良性循環,此增彼長,循環促進。
三、軟件項目管理常見問題及解決方案
對于軟件開發項目中,經常出現兩種極端情況:一種是創造了新的生產率和質量的紀錄;一種則完全是一場災難,不是被取消就是拖延很長時間。前者如在很短的時間內,為了趕進度,在幾乎不可能的時間內開發出一套軟件產品,創造了軟件開發的紀錄,滿足了上級所要求的上機日期,由于開發時間太短,過于倉促,上機時問題百出,試運行時間長達幾個月或一年半載的,而且程序一改再改,維護工作量大。后者,如某套系統未弄清楚需求或設計問題,導致開發失敗。
目前中國大部分軟件公司,無論是產品型公司還是項目型公司,都沒有形成適合自己公司特點的軟件開發管理模式,雖然有些公司根據軟件工程理論建立了一些軟件開發管理規范,但并沒有從根本上解決軟件開發的質量控制問題。這樣導致軟件產品質量不穩定,軟件后期的維護、升級出現麻煩,同時最終也會損害用戶的利益。
為了達到項目的整體最優,必須從全局的、整體的理念出發,通過協調項目的各個要素(進度、成本、質量和資源等),在相互影響的項目各項具體目標和方案中選擇和權衡,權衡各個相互沖突的目標對項目總體績效所產生的影響,盡可能地消除單個知識領域中的過程的局限性,從而最大限度滿足項目關系人的需求和期望。
四、項目管理方法改進及推廣應用
分析目前項目管理需要改進的問題可以從以下幾個方面去考慮:
1.項目經理在專業領域的知識與實踐基礎上需要接受系統的項目管理知識培訓,使兩者有機結合,在實際工作中不斷提高自己的管理素質,豐富項目管理經驗,提高項目管理意識。
2.提高項目經理的計劃意識,采用項目計劃制定相關各種知識、技術、工具,加強對開發計劃、階段計劃的有效性進行事前事后的評估。
3.制定有效的溝通制度和溝通機制,對由于缺乏溝通而造成的事件進行通報作為教訓提醒,以提高溝通意識。
4.通過加強對項目規劃中風險管理計劃的審核提高項目組的風險管理意識。總結本行業項目中常見的風險及其對策作為風險管理計劃中必要的風險內容,并切實評估相應對策的有效性和可行性。
5.提高對項目經驗總結的重視程度,在制度上鼓勵和加強項目經驗總結工作,使項目總結及時并且具有指導意義。
6.項目的目的就是實現項目干系人的需求和愿望。項目干系人管理應當從項目的啟動開始,項目經理及其項目成員就要分清項目干系人包含哪些人和組織,通過溝通協調對他們施加影響,驅動他們對項目的支持,調查并明確他們的需求和愿望,減小其對項目的阻力,以確保項目獲得成功。
7.項目經理應當對項目成員的責任進行合理的分配,細化職責,同時應強調不同分工、不同環節的成員應當相互協作,共同完善。
以上對軟件開發項目管理中出現的問題的分析還不夠深入,也無法列舉所有遇到或將遇到的問題,解決方案也要根據實際情況進行調整,希望引起對這些問題更多的思考和改進。
五、結束語
項目管理對于軟件開發企業而言,不是一個小的改變,而是一種變革。企業需要不斷的探索、積累,加大宣傳,轉變觀念,在實踐中鍛煉提高,在解決問題中總結經驗,逐步完善項目管理工作,將其作為企業競爭力提升的有效抓手。
參考文獻:
[1]魯耀斌.項目管理[M].長春:東北財經大學出版社,2007.
[2]吳照云.管理學原理[M].北京:經濟管理出版社,2003.
[3]Stanley E.Portny如何做好項目管理[M].寧俊,等,譯.北京:企業管理出版社,2001.
[4]Neal Whitten.管理軟件開發項目――通向成功的最佳實踐:第2版[M].孫艷春,等,譯.北京:電子工業出版社,2002.
[5]鄧良松.軟件工程[M].西安:西安電子科技大學出版社,2004.
Project Management in Software Development in the Application
LI Yue1,YANG Yu-lin2
(1.Henan Xinyang Power Supply Company,Science and Technology Information Department,Xinyang 464000,China;
2.The First Aeronautical College of Air force,AviationElectron engineering Department,Xinyang 464000,China)
假如用兩個字概括當前社會的特征,那就是“變化”,而這種變化在信息產業中體現得尤為突出,技術創新速度越來越快,用戶需求和市場不斷變化,人員流動也大大加快。在這種環境下,企業需要應對的變化以及由此帶來的挑戰大大增加,也給管理帶來了很多新問題和挑戰。軟件行業是一個極具挑戰性和創造性的新行業,管理上沒有成熟的經驗可供借鑒。而項目管理應該說對于軟件企業,尤其是那些以應用開發為主的軟件企業,是行之有效的管理方法。因此,項目管理在軟件開發中的應用日益受到重視。
項目管理的兩個新問題
1、什么是項目管理?
項目管理是在一定的約束條件下,以高效率地實現項目業主的目標為目
的,以項目經理個人負責制為基礎和以項目為獨立實體進行經濟核算,并按照項目內在的邏輯規律進行有效的計劃、組織、協調、控制的系統管理活動。
2、為什么要有項目管理?
沒有項目管理,項目也有可能成功。但沒有管理的項目,很難保證項目
的利潤空間,對公司來說,虧損的風險就大。所以我們要有項目管理,以保證公司在總體上是盈利的,注重不是每一個項目都要盈利。
另外,有了項目管理,就有了管理改進的基礎,無論剛開始的項目管理多么糟糕,只要有管理,就有了改進的可能性,至于能不能得到改進,以及改進的快慢,則取決于兩個因素摘要:一個是人,非凡是各級管理者;另一個是利益。關鍵是“利益”,準確的說是“利益的分配”,在權責利明確的前提下,人才能充分的發揮功能。還需要指出的是“利益”是多元的,這里的多元不僅指利益的具體形式,而且指利益的受眾是多元的,包括客戶方相關人員個人的利益。
3、項目管理的發展和目前狀況。
今天,項目管理作為一種現代化管理方式在國際上已獲得了廣泛的應用,從最初的國防、航天、建設工程領域,迅速發展到電子、通信、計算機、軟件開發、金融等行業以及政府機關的項目管理工作。隨著計算機、網絡系統的迅速發展,項目管理技術的不斷進步,項目管理軟件產品層出不窮,其功能、特征、應用對象也各不相同。當前,越來越多的企業和組織在內部推廣項目管理的理論方法及管理模式,假如都采用項目管理軟件進行管理,效果就更加明顯,可以節省大量的資源和財富。國外90%26#37;以上的項目管理都采用軟件進行,但我國在這方面的應用還不到10%26#37;。新世紀項目管理在中國的迅速興起,給軟件企業的發展帶來了前所未有的發展機遇。
項目管理在軟件開發中的應用的成因
隨著信息技術的飛速發展,軟件產品的規模也越來越龐大,個人單打獨斗的作坊式開發方式已經越來越不適應發展的需要。各軟件企業都在積極將軟件項目管理引入開發活動中,對開發實行有效的管理。從概念上講,軟件項目管理是為了使軟件項目能夠按照預定的成本、進度、質量順利完成,而對成本、人員、進度、質量、風險等進行分析和管理的活動。實際上,軟件項目管理的意義不僅僅如此,進行軟件項目管理有利于將開發人員的個人開發能力轉化成企業的開發能力,企業的軟件開發能力越高,表明這個企業的軟件生產越趨向于成熟,企業越能夠穩定發展(即減小開發風險)。同時,隨著軟件開發規模及開發隊伍的逐漸增大,軟件開發不再是向過去那樣一二個開發人員即可解決的事情。迫切需要一種開發規范來規范每個開發人員、測試人員和支持人員的工作,每個項目組成員按約定的規則準時完成自己的工作。同時采用規范化管理,專業分工也可以降低對開發人員的要求,從而降低產品研發成本。
軟件開發是一項復雜的系統工程,牽涉到各方面的因素,實際工作中,經常會出現各種各樣的新問題,甚至面臨失敗。如何總結、分析失敗的原因,得出有益的教訓,對一個公司來說,是在今后的項目中取得成功的關鍵。
早在20世紀60年代中期,人們就發現軟件的生產出現了“新問題”,主要表現在生產過程不規范,缺乏管理。后來,人們在軟件工程方法學中引入了工程的概念、原理、技術和方法,這種思想在一定程度上解決了軟件生產過程中碰到的新問題。但是直至80年代還是沒有提出一套管理軟件開發的通用原則,軟件管理不善的新問題依舊在大范圍內存在。
目前的軟件開發正逐步趨向于復雜化、多元化,大多數開發團隊中都會出現同時開發多個版本、開發/維護工作并存、多地點同時開發等情況,給軟件開發管理帶來了前所未有的困難。假如管理不善,必將造成版本混亂,各個開發人員的工作相互交叉、干擾,整個開發團隊的工作在一種無秩序的不良狀況下運行,嚴重影響軟件產品開發的進度和質量。
因此,隨著軟件開發的深入、各種技術的不斷創新以及軟件產業的形成,人們越來越意識到軟件過程管理的重要性,管理學的思想逐漸融入軟件開發過程中,應用開發的項目管理日益受到重視。而項目管理技術的發展和計算機技術的發展是密不可分的,隨著計算機性能的迅速提高,大量的項目管理軟件涌現出來。它們可以用于各種商業活動,提供便于操作的圖形界面,幫助用戶制定任務、管理資源、進行成本預算、跟蹤項目進度等。
軟件項目管理常見新問題及解決方案
對于軟件開發項目中,經常出現兩種極端情況,一種是創造了新的生產率和質量的紀錄;一種則完全是一場災難,不是被取消就是拖延很長時間。前者如在很短的時間內,為了趕進度,在幾乎不可能的時間內開發出一套軟件產品,創造了軟件開發的記錄,滿足了上級所要求的上機日期,由于開發時間太短,過于倉促,上機時,新問題百出,試運行時間長達幾個月或一年半載的,而且程序一改再改,維護工作量大。
后者,如某套系統未弄清楚需求,或因設計新問題,開發失敗。通過提煉這些成功和失敗的例子,軟件項目成功或失敗的根本原因可能會更清楚一些。
目前我國大部分軟件公司,無論是產品型公司還是項目型公司,都沒有形成適合自己公司特征的軟件開發管理模式,雖然有些公司根據軟件工程理論建立了一些軟件開發管理規范,但并沒有從根本上解決軟件開發的質量控制新問題。這樣導致軟件產品質量不穩定,軟件后期的維護、升級出現麻煩,同時最終也會損害用戶的利益。
分析目前項目管理需要改進的新問題可以從幾種相關角色的角度去考慮摘要:項目經理、項目組成員、公司管理人員、市場人員、客戶等。
新問題一摘要:缺乏項目管理系統培訓(相關對象摘要:項目經理、管理人員)
項目經理在項目管理方面的培訓較少或不夠系統。項目經理或管理人員不了解項目管理的知識體系和一些常用工具和方法,所以在實際工作中沒有項目管理知識的指導,完全依靠個人現有的知識技能,管理工作的隨意性、盲目性比較大。在軟件企業中,以前幾乎沒有專門招收項目管理專業的人員來擔任項目經理(甚至很少是管理專業的),被任命的項目經理主要是因為他們能夠在技術上獨當一面,而管理方面非凡是項目管理方面的知識比較缺乏。
解決方案摘要:項目經理接受系統的項目管理知識培訓是非常必要的,有了專業領域的知識和實踐,再加上項目管理知識和實踐和一般管理的知識和經驗的有機結合,必能大大提高項目經理的項目管理水平。應實行項目經理知識技能資格考核制度,讓項目經理自覺補充學習項目管理的知識和一些常用工具和方法。
新問題二摘要:項目計劃意識新問題(相關對象摘要:項目經理)
項目經理對總體計劃、階段計劃的功能熟悉不足。項目經理認為計劃不如變化快,項目中也有很多不確定的因素,做計劃是走過場,因此制定總體計劃時比較隨意,不少事情沒有仔細考慮;階段計劃因工作忙等理由經常拖延,造成計劃和控制管理脫節,無法進行有效的進度控制管理。沒有計劃或者是隨意的不負責任的計劃的項目是一種無法控制的項目。
解決方案摘要:在高技術行業,日新月異是主要特征,因此計劃的制定需要在一定條件的限制和假設之下采用漸近明細的方式進行不斷完善。提高項目經理的計劃意識,采用項目計劃制定相關各種知識、技術、工具,加強對開發計劃、階段計劃的有效性進行事前事后的評估。
新問題
三、管理意識新問題(相關對象摘要:項目經理)
部分項目經理沒有意識到自己項目經理的角色,從總體上去把握管理整個項目,而是埋頭于具體的技術工作,造成項目組成員之間忙的忙、閑的閑,計劃不周、任務不均、資源浪費。在軟件企業中,項目經理大多是技術骨干,技術方面的知識比較深厚,但無論是項目管理知識,還是項目管理必備的技能、項目管理必備的素質都有待補充和提高,項目管理經驗也有待豐富。有些項目經理對于一些不服管理的技術人員,沒有較好的管理方法,工作不好布置的工作只好自己做。另外由于工作分解結構設計的合理性,項目任務無法有效、合理地分配給相關成員,以達到“負載均衡”。
解決方案摘要:加強項目管理方面的培訓,并通過對考核指標的合理設定和宣傳引導項目經理更好地做好項目管理工作。技術骨干在擔任項目經理之前,最好能經過系統的項目管理知識,非凡是其中的人力資源管理、溝通管理的學習,并且在實際工作中不斷提高自己的管理素質,豐富項目管理經驗,提高項目管理意識。
新問題四摘要:溝通意識新問題(相關人員摘要:項目經理、項目組成員)
在項目中一些重要信息沒有進行充分和有效的溝通。在制定計劃、意見反饋、情況通報、技術新問題或成果等方面和相關人員的溝通不足,造成各做各事、重復勞動,甚至造成不必要的損失;有些人沒有天天定時收郵件的習慣,以至于無法及時接收最新的信息。
解決方案摘要:制定有效的溝通制度和溝通機制,對由于缺乏溝通而造成的事件進行通報作為教訓提醒,以提高溝通意識;溝通方式應根據內容而多樣化,講究有效率的溝通;通過制度規定對由于未及時收取郵件而造成損失的責任歸屬;對于非凡重要的內容要采用多種方式進行有效溝通以確保傳達到位,例如除發送郵件外還要電話提醒、回執等,重要的內容還要通過舉行各種會議進行傳達。
新問題五摘要:風險管理意識新問題(相關人員摘要:項目經理)
項目經理沒有充分分析可能的風險,對付風險的策略考慮比較簡單。項目經理在做項目規劃時經常沒有做專門的風險管理計劃文檔,而是合并在項目計劃書中。有些項目經理沒有充分意識到風險管理的重要性,對計劃書中風險管理的章節簡單應付了事,隨便列出幾個風險,隨便地寫一些簡單的策略,對于后面的風險防范起不到什么指導功能。
解決方案摘要:通過學習項目管理知識把握風險識別、量化、策略探究、反應控制的工具和方法把握項目風險管理所必備的知識。通過加強對項目規劃中風險管理計劃的審核提高項目組的風險管理意識。總結本行業項目中常見的風險及其策略作為風險管理計劃中必要的風險內容,并切實評估相應策略的有效性和可行性。
新問題六摘要:不重視項目經驗的總結(相關人員摘要:項目經理、管理人員)
項目經理在項目結束時有些是因為自身對寫文檔工作的喜好或意識,或
者是因為緊接著要參加下一個項目,總體對項目總結的重視程度不夠。有些是項目總結報告一再拖延,有些是交上來的報告質量較低,敷衍了事。
解決方案摘要:在制度上鼓勵和加強項目經驗總結工作,使得項目總結及時并且具有指導意義而不是走過場。
新問題七摘要:項目干系人相關新問題(相關人員摘要:項目經理、項目成員、客戶)
在范圍識別階段,項目組對客戶的整體組織結構、有關人員及其關系、
工作職責等沒有足夠了解以致于無法得到完整需求或最終經權威用戶代表確認的需求。由于項目經理的工作新問題,客戶參和程度部不高,客戶方相關責任人不明確或對范圍和要求責任心不強,提出的要求具有隨意性,項目前期對需求的確認不夠積極;或者是多個用戶代表各說各話、昨是今非但同時又要求項目盡早交付;項目后期需求變化隨意,造成項目范圍的蔓延,進度的拖延,成本的擴大。
解決方案摘要:項目的目的就是實現項目干系人的需求和愿望。項目干系人管理應當從項目的啟動開始,項目經理及其項目成員就要分清項目干系人包含哪些人和組織,通過溝通協調對他們施加影響,驅動他們對項目的支持,調查并明確他們的需求和愿望,減小其對項目的阻力,以確保項目獲得成功。
新問題八摘要:項目團隊內分工協作新問題(相關人員摘要:項目經理、項目成員)
項目團隊內部有時由于各階段不同角色或同階段不同角色之間的責任
分工不夠清楚而造成工作互相推諉、責任互相推卸的現象,有時各階段不同角色或同階段不同角色之間的責任分工比較清楚但是各項目成員只顧完成自己那部分任務、不愿意和他人協作。這些現象或多或少地造成了項目團隊內部資源的損耗,從而影響了項目的進展。
解決方案摘要:項目經理應當對項目成員的責任進行合理的分配并清楚地說明,同時應強調不同分工、不同環節的成員應當相互協作,共同完善。
軟件質量重于泰山
軟件質量重于泰山,軟件質量是核心競爭力之一。現在和未來軟件企業的競爭力不僅體現在產品類型的多樣性,產品功能的先進性,更多的體現在產品質量的穩定性和可靠性。軟件應用的領域不斷深入,設計的復雜程度逐步增加,開發的周期不斷縮短,質量的要求水漲船高,軟件企業面臨著巨大挑戰。
用戶對軟件產品質量的要求不斷提高,促使軟件企業把提高軟件質量作為增強競爭力的策略。提高軟件質量要素在哪里?可以通過采用軟件設計技術,加強軟件過程管理,實施軟件測試等方法。從提高軟件質量的顯著程度、投資回報率和可實施性等方面比較,實施有效的軟件測試,提高軟件測試的效率,是保證軟件質量的顯著方法。
軟件測試是通過技術、流程、工具、人員以及管理手段,檢測軟件文檔、軟件中間產品和最終產品,查找和報告軟件缺陷、錯誤以及隱患的專業技術。通過跟蹤缺陷、錯誤及隱患的修正過程,確保軟件產品、中間產品和文檔符合軟件工程過程需求和用戶的最終需求。
軟件測試創新之道
軟件測試在國內仍處于起步階段,各種軟件測試的方法、技術和標準都還在探索階段。國內軟件行業規模普遍偏小,缺乏大型軟件產品經驗,開發過程不夠規范,這決定了國內軟件質量和測試行業,必須根據國內行業現狀,確定軟件質量目標和測試策略方法,而不是照搬照抄國外成熟軟件企業的測試方法。
觀念創新
提高軟件質量的決定因素不是軟件測試技術,而是對軟件質量和測試的思想觀念。只有把提高軟件質量上升到企業戰略發展的高度,才能從根本上解決問題。長期以來,國內軟件行業對軟件質量重視程度不足,對于軟件測試的作用認識不夠,造成項目因質量問題造成進度推遲甚至失敗。
為了徹底改變這種被動現象,企業高層管理人員必須從管理思想、資源支持等方面為軟件質量和測試部門提供全力支持。軟件項目經理必須堅持軟件開發和軟件測試并行處理并且互相協調。軟件開發人員重視和配合軟件測試人員。
觀念創新不要僅停留在口頭上,而要落實在具體行動上,通過軟件質量和測試的有效流程進行推動,通過過程改進進行提高。通過有效組織管理,形成“以重視軟件質量為榮,以輕視軟件質量為恥”的工作氛圍。
流程創新
測試流程決定軟件質量。軟件測試如同軟件開發一樣,需要經過收集測試需求、確定測試策略、設計測試、執行測試、分析測試等流程。軟件測試不是軟件開發的最后階段,而是貫穿于軟件項目的整個生命周期。
軟件測試流程既不是僵化的生搬硬套,也不是隨機的增添取舍。軟件企業的質量管理部門和項目開發團隊需要根據公司技術、資源現狀,針對項目的特點和客戶需求,從保證軟件質量、項目進度和測試成本等方面,進行優化設計并且不斷改進流程管理。對于項目周期長、應用領域廣、對質量要求高的軟件,必須制定和遵守嚴格的測試流程。
測試流程創新的目標是在公司內部制定和執行完善的項目質量管理體系。優化項目生產方式,跟蹤和度量生產過程和產品,使得生產過程和各階段產品處于可控制和可度量狀態,保證產品符合客戶的功能和進度需求。
技術創新
軟件測試是一項軟件工程領域的專業技術,而不是簡單的把軟件測試認為隨便找個人運行幾次軟件,就可以發現全部的軟件問題。前文已經提到,軟件測試需求和測試設計是決定軟件測試效果的關鍵因素,因此,加強測試技術創新的重點是在測試需求和設計設計的創新。
在軟件測試技術創新方面,要避免陷入過度追求自動化測試技術的誤區。自動化測試確實可以在某些方面顯著提高測試效率和準確性,但是自動化測試只適合測試軟件的某些方面的質量,80%左右的軟件缺陷是靠測試人員手工測試發現的。
對于某些特別需要自動化測試的軟件特性,需要加強開發軟件測試工具,而不是全部依賴市場上的現有測試工具。這是因為商業工具功能繁多,價格昂貴,培訓和學習周期很長,選擇不當就會造成巨大浪費。
管理創新
軟件測試管理的目標是實現軟件質量、進度、成本之間的最佳平衡。有效的測試管理需要企業管理層、軟件開發團隊、質量保證與測試團隊通力合作,采用計劃、組織、領導、控制等手段,組建高效團隊,制定完善的測試流程,做好測試設計,有效執行測試,加強過程跟蹤,從而順利完成質量保證和測試任務。
測試管理創新的核心是軟件質量和測試的團隊建設,軟件質量和測試是技術密集型活動,團隊的知識結構、創造力和凝聚力是保證測試流程、測試技術充分實施的基礎。質量和測試團隊建設的重點是設置和培養各類技術和管理人才,進行有效交流,形成良好的評估和促進機制。
測試管理創新的另一個重點是測試管理平臺建設。包括構建測試項目管理的集成系統,實現公司產品和項目數據信息的有效管理和順序控制,使項目數據透明化,技術知識有效傳承,項目質量和進度數據化、圖形化。可以根據公司的現狀,購買軟件測試管理的商業工具,也可以內部開發軟件測試管理工具。
軟件測試技術路線圖
如果把軟件測試之道成為測試戰略,要發揮測試戰略的現實意義,需要把測試戰略轉化為測試戰術。測試的“道”與“術”的無縫集成,才能顯著地、持續地、逐步地提高軟件產品質量。實施軟件測試的戰術是一系列過程的組合,涉及測試團隊建設、流程設計、測試平臺、測試管理等多個方面。
測試團隊建設
測試團隊可以是測試部,也可以是測試組。公司規模決定了測試團隊的大小和組織形式。測試團隊建設需要執行兩個原則:第一,測試團隊必須獨立于開發團隊,而不是附屬于開發團隊,實現測試的獨立性和公正性;第二,測試團隊必須具有明確的工作目標,即發現和報告軟件缺陷,推動和確認缺陷修正,協助軟件開發的過程改進,提高軟件整體質量。
軟件測試團隊根據規模可以設置多個職位,每個職位具有明確的崗位職責。例如,測試部門經理、測試項目經理、測試組長、測試架構師、高級測試工程師、測試工程師等。對于剛剛成立的測試團隊,可以一個人兼任多個職位,完成多項測試任務。測試人員的總數應該與開發人員相適應,最好在1:1到1:2之間。
流程設計
測試流程設計必須與軟件設計流程相對應,基本測試流程包括測試需求分析、測試計劃設計、測試用例設計、測試執行、測試評價、測試總結等。
根據軟件需求和軟件設計規格說明進行測試需求分析,測試需求分析的目的是明確需要測試的對象、特征、范圍和方法,從而制定測試計劃,確定測試策略。
測試計劃設計是為了有效配置測試過程、人員和工具,充分利用現有的資源,按照項目計劃進度,組織有效的測試。測試計劃設計的輸出結果是測試計劃文檔,它是指導軟件測試活動的綱領性文檔。
測試用例設計是指導具體測試內容和方法的關鍵內容,如果需要執行自動化測試,還需要依靠測試用例設計生成對應的測試腳本。測試用例設計的輸出結果是不同類型的測試用例,這些測試用例必須以標準、一致的形式設計、評審、存儲、更新。
測試執行是報告軟件缺陷的階段,根據軟件計劃的進度,分配測試內容,構建測試環境,依靠測試用例運行測試程序和程序文檔。測試執行的輸出結果是缺陷報告、測試進度報告等。
測試評價是度量軟件測試執行效率和有效性的過程。測試評價的輸入是測試用例的執行情況,軟件缺陷的報告數據。測試評價的輸出包括測試用例的有效性分析,軟件缺陷的類型和有效性分析等,測試進度和有效性分析等。
測試總結包括測試過程每天或者每周的過程總結,也包括測試項目結束后的測試項目總結。測試總結的輸出是測試總結報告,總體評價軟件質量,指出測試存在的問題,提出改進的方法和進程,總計測試的有效經驗。
測試平臺設計
測試平臺設計包括測試技術平臺設計和測試管理平臺設計。測試技術平臺包括設計測試環境,設計或設置測試工具等。測試管理平臺設計包括測試文檔系統設計、測試版本配置管理、缺陷數據庫設計、測試進度和質量分析系統設計。
測試技術平臺設計需要根據測試計劃的測試內容和測試環境要求,組織軟件、硬件、數據庫和網絡等,這經常是一項較為耗時的工作,同時它影響著測試的正確性,必須盡快在測試開始階段完成,最好采用有效的方法把搭建的測試環境進行備份保存,以便今后可以快速恢復,重復利用。
測試管理平臺設計,影響測試管理的復雜度,好的測試管理平臺可以使測試管理人員,方便地跟蹤、查詢、分析測試進度,評估測試人員的工作績效,評價測試的總體質量。對于測試技術人員而言,可以方便的尋找測試對象和測試文檔,報告和輸出測試結果,共享測試數據,提高測試效率。
測試管理
測試管理關注人員、過程、產品三要素的互動與變化,測試管理包含項目計劃和組織結構管理,測試階段管理,時間、資源和質量管理,文檔管理和團隊管理等。測試部門經理、測試項目經理和測試組長是測試管理的主要執行者,需要與測試團隊成員、開發人員、公司管理人員密切配合。
為了加強測試管理,需要確保測試數據信息流通暢,使測試團隊、開發團隊、質量保證團隊之間有效交流。測試管理的其他內容包括團隊成員參與各種培訓,客觀積極的績效評估,識別項目測試風險,實現人盡其才,信息共享,進度可控,規避風險,降低成本,提高質量。
在“軟件工程”課程教學中,應用項目教學法,直接作用在于幫助學生更加清楚和深入的認識軟件開發,幫助學生糾正“軟件開發就是編寫程序代碼”的錯誤思想,強調軟件開發的團隊分工合作,將項目教學法引入“軟件工程”課程教學,制定完善的項目小組學習和工作的流程。項目活動開展前將學生分為不同小組,并對各組成員進行具體工作的安排。在課外,布置主要的自主開發任務是關鍵,要求嚴格按照軟件工程的規范進行。在軟件開發前,要對其開發的可行性、需求進行分析,然后進行系統設計,完成系統[2]。應注意保存相關文檔并生成系統可執行文件。為準確把握項目開發以及進展情況,為了對學生進行有針對性的指導,各小組在開發階段要定期進行匯報,并在討論中完善項目。1.命題教師根據教學內容和學生實際情況,給出“多媒體技術雙語詞典”、“某市公交車查詢系統”、“班級綜合評測系統”等多個軟件的分析、設計和實現任務,并征求學生的意見和建議。2.角色確定根據工作量和軟件開發流程進行分組,以5~8人一組為宜。小組實行組長負責制,組長安排、協調各成員工作。角色共分3類:軟件開發人員、用戶和同行專家[3]。在各小組之間要使每個成員明確自身角色,認清自身責任。在項目開發的不同階段,小組成員扮演的角色類型也可以改變。例如,在需求分析階段某小組成員扮演的角色是分析開發人員,而在設計階段則可以轉變為同行評審專家,對小組開況提出意見,結合對比分析做出評價。3.選題為了保證各小組競爭公平,要使小組的選題難度基本相同,并且難度基本相同選題的小組之間進行同行專家評審,開展討論過程中可行使專家權力,提出工作意見。這種形式的應用最直接作用在于促進小組之間的溝通交流,促進選題小組對自身的審視,在比較借鑒之下完善自己的方案,幫助學生拓寬思維[4]。在初步完成選題后要對系統開發目標進行準確制定,并形成方案雛形,為使用開發平臺提供的相關開發工具建立數據庫等做準備。4.階段性開發工作在軟件開發的不同階段要整理出不同的文檔,比如在系統可行性分析階段要參照軟件工程標準進行可行性文檔書寫,或在需求分析階段按照國際標準進行需求說明文檔書寫,在軟件開發的設計、編碼以及測試階段也同樣需要書寫文檔[5]。在不同階段,教師準備相應的的資料以及樣例模板給學生參考,學生根據自己所在組的任務進行不同資料素材的搜集,通過多種途徑進行學習。軟件開發中組長的任務是領導責任,明確指導小組成員分工合作,對開發過程進行文檔記錄和保存。5.階段匯報和討論教師要準確把握學生項目開發進度,定期組織階段匯報,選擇合適時間在課堂上讓各小組同學進行匯報和溝通。各小組不同階段的開發負責人員可以不同,根據階段需求做主要匯報。匯報內容包括對當前工作開展情況以及遇到的問題等。在匯報過程中同行評審要積極給出意見,并與其他小組溝通討論[6]。在階段匯報工作中,教師主要是針對階段匯報情況作出決定性評價,對其工作的正確與否進行判斷,并對其研究方法給出積極意見。6.階段性總結在各階段工作完成后,要完成產品交付工作并寫出分析報告。產品交付主要包括軟件需求文檔、軟件概要設計說明書、軟件詳細設計說明書、可運行的程序、測試分析文檔等。軟件開發階段較多,在軟件詳細設計到測試分析過程中要進行多次修正,以便前期工作的完成為后續開發工作打下堅實的基礎。7.總結評價在基本工作完成后,要求各小組上交最終文檔和軟件產品,教師要對各小組的工作成果進行總結評價,并給出成績。學生最后成績構成可以參照“小組成績”+“個人成績”,兩個部分的比例各占一半[7]。小組的成績是教師確定的,教師結合學生在小組中的表現,根據其知識水平、合作能力、創新能力、科研能力以及其所在小組最終完成的質量情況進行綜合評分;個人成績則主要是依靠組長給出,而組長的成績可由小組成員綜合給出。這種成績確定以及評價考核的方式是對學生綜合表現的肯定,是對整個項目開展過程中學生的整體能力的評價,較公平合理,對促進學生全面發展有著積極作用。
二、軟件工程教學中應用項目教學法應注意的問題
為更好促進項目教學法在“軟件工程”課程中的實踐應用,要從教師和學生兩方面出發,提高教師的駕馭能力,增強學生的參與能力。1“.軟件工程”課程自身具有較強的專業性,因此在該課程中應用項目教學法要不斷增強教師的整體能力。教師要對項目重點以及課程知識點準確把握,制定實用性強、熟悉程度高的教學項目,以利于培養人才。在項目開展過程中教師要對項目教學法靈活運用,在完成“軟件工程”知識點講授的同時豐富項目教學方法。2.在項目教學法應用過程中學生的參與配合行為決定了教學效果。為不斷促進學生積極參與項目教學,教師要合理進行分組,根據學生的心理特征以及能力分配情況進行分組,保證各環節開展順利。在分組環節中要避免出現“能者多勞”現象,對小組組長的確定也要采取輪換制度,促進小組成員每個人都能發揮自身作用,都能得到實踐訓練。教師要做好指導輔助作用,幫助小組開發更加順利,增強學生自信心。
三、結束語
【關鍵詞】信息化工程軟件工程工程驗收
工程驗收即工程建設單位組織相關部門對承建方建設的單項工程或全部工程進行檢驗和交接的工作程序。
信息化工程是以計算機智能化建設為基礎,并使之運行發揮效益的系統化工程,其中的計算機智能化建設指的就是軟件工程建設。如果把信息化工程比作一個龐大的機器人,其中計算機基礎建設只是建設了機器人的骨架,軟件工程建設才是填補了血肉并整合在一起作為機器人的神經中樞。
信息化工程驗收即建設單位對承建方以信息化建設為基礎的單項或全部工程的檢驗和交接的工作程序。其中的重點驗收項目就是軟件工程驗收。
一、軟件工程
1.1軟件工程的定義
軟件工程是一門研究用工程化方法構建和維護有效的、實用的和高質量的軟件的學科。它涉及到高級程序語言、數據庫開發工具、中間件開發工具、操作系統平臺、安全接口標準、網絡連接模式等方面。在現代社會中,軟件應用于各個方面。典型的軟件比如有電子郵件、操作系統、財務軟甲、辦公軟件、ERP系統、智能手機系統、游戲等。同時,各個行業幾乎都有計算機軟件的應用,比如工業、農業、商業、銀行、航空航天、政府部門等。這些應用促進了經濟和社會的發展,使得人們的工作更加高效,同時提高了生活質量。
1.2軟件工程的發展
前面提到了軟件工程涉及各個行業的應用主要指的是,軟件工程建設在工業中的自動化控制,農業的生產和銷售,企事業單位的集約化管理和政府機關的信息化辦公等等應用。其中以企業軟件工程建設為例,企業是以經濟建設為基礎的生產單位,以追求經濟效益和生產效率最大化為目的的集合體,只有軟件工程的產品真正為企業創造了效益,才能在這片土壤中生存下去。
軟件工程建設開始還只是在企業辦公中發揮作用,部門之間發個郵件,財務做個報表,人事部做個員工檔案,這只是軟件工程的初級應用,對企業的生產和部門間的集約化辦公并未起到太大的作用,軟件工程在企業中也并未起到至關重要的作用。只有把各個部門軟件進行整合,使其系統化,增加部門間的軟件工程聯系,才能真正提高企業生產效率。隨著計算機硬件設備的不斷發展,計算機運算速度越來越快,存儲設備空間越來越大,為軟件工程的系統化建設提供了有力的保證,軟件工程建設越來越龐大,涉及面越來越廣,事實證明,軟件工程建設幫助企業提高了生產效率,創造了經濟效益,在企業中蓬勃發展并起到越來越重要的作用,隨之而來的問題就凸顯出來,需要進行工程項目建設結束后的驗收和交接工作。
1.3軟件工程的驗收
軟件工程是信息化建設工程的一個重要組成部分,工程的驗收周期和耗費的人力也是最長的。所以,提高軟件工程驗收的效率和驗收質量是保證信息化工程建設驗收成功的重要途徑。軟件工程和其他工程一樣,包括設計、施工、材料供應、安全檢查、項目驗收等工程建設流程。軟件工程又是一個不斷建設,不斷完善的過程,與常規工程驗收的區別就在于并不是一次驗收就能得出結論,驗收周期相對較長,需要在工程開始階段就介入驗收工作,不斷總結,跟蹤驗收,不斷修改,才能促使軟件工程向面向用戶的可操作性和可維護性方面更好的發展和完善。
軟件工程的建設是在計算機硬件基礎上進行的,同時還包括系統間的網絡通信條件,異地建設的系統工程還必須要有傳輸系統的支持,在此基礎上又增加了安全系統的建設,所以軟件工程的驗收,并不是單個模塊、單個系統的簡單驗收,還要綜合考慮其他系統的影響和支持。
二、驗收方法
2.1驗收條件
由系統承建方確認項目工作是否已按合同及相關要求完成,需要交接的項目技術資料準備充分。然后提出驗收申請,聯系監理及建設單位組織驗收。
2.2驗收依據
軟件工程項目一般應具有以下相關驗收依據:(1)符合國家現行有關法律、法規、規章和技術標準。(2)建設方有關部門的規定;軟件工程要面對用戶需求,符合用戶實際工作的需求,而軟件工程是一項系統工程,需要滿足相關不同部門,部門與部門之間的需求。(3)經批準的項目招投標文件;招標文件中一般規定了軟件工程中各個項目的內容和功能,是開發軟件工程的工作依據,也是驗收軟件工程的基本依據。(4)項目合同、補充合同及合同附件;項目合同規定了軟件工程項目建設方和承建方的權力和義務,無論是工程的施工階段還是驗收階段,為雙方提供了工作依據和法律保障。(5)經批準的設計方案、實施方案及相應的工程變更文件;項目的招標和設計只是規定項目的最初規劃,按照實施方案和變更文件驗收軟件工程的各項功能才能把系統真正驗收完全。就像一棟大樓建成了,不能只靠圖紙上的驗收,不同房屋的質量都需要檢驗。
2.3驗收對象及范圍
驗收對象:根據建設單位要求和用戶需求完成的軟件開發項目。驗收范圍:按照合同并結合設計方案、實施方案及變更文件驗收軟件工程項目的各項功能,同時驗收各數據模塊間的接口軟件,終端應用軟件,數據交互軟件,數據庫軟件。不包含軟件系統應用后,改變系統架構的新需求,由于其他既有系統改變而影響現有系統應用的需另行討論處理。
2.4驗收程序
(1)驗收準備。①由建設方組織召開驗收準備會議,明確各方驗收工作的任務及驗收流程。建設部門應組織相關維護部門和最終用戶參與到項目驗收過程,維護部門協同監理方應審查驗收申請和驗收資料,最終用戶提出系統上線試運行后的各項功能是否滿足需求,提供用戶使用報告或使用意見。②承建方提交項目驗收申請和資料,驗收材料包括項目合同規定的各種文檔及實施過程中產生的文檔資料及開發總結報告,同時提供有監理方審核通過的各個系統測試報告,并按照規范裝訂成冊。③監理方負責審查項目文檔的完整性和規范性,對不滿足要求的資料提出監理意見,并要求承建方在規定時間內整改完善。整理監理過程文檔,對項目監理過程出具監理工作總結報告。(2)驗收申請及審查完成驗收準備工作后,由承建方提出驗收申請,經建設方及監理方審查通過,同意驗收后,組織正式驗收。(3)正式驗收。①確定驗收時間,驗收會議議程,準備相關驗收資料。②由建設方抽取或邀請專家,組成專家小組,由專家小組組織驗收。項目三方(甲方技術維護部門及業務部門、承建方項目組負責人及商務、監理方主要負責人)、相關部門參加驗收。(4)召開驗收會議。①專家小組會聽取項目各方的工作匯報,甲方介紹項目建設背景、建設情況及用戶使用情況。承建方介紹項目建設情況,項目完成情況,項目成果等。監理方匯報項目實施過程中,監理工作的情況。②查閱相關文檔資料,對資料完整性和正確性做出評估。③對系統測試和試運行期間用戶和技術維護部門的質詢進行答疑。④由專家小組出具項目驗收意見。⑤遺留問題限定整改時間,由監理納入會議紀要。
三、軟件工程生命周期下的驗收工作
軟件工程普遍使用原型化方法進行開發,但是由于專業性的差距,軟件開發工作者不可能完全了解用戶需求,尤其是專業性比較強的用戶需求,這就需要不斷的進行“開發-試用-總結-再開發”,循環往復,但是卻是個螺旋上升,向著軟件工程的成功不斷前進的過程。那么工程驗收就不可能一蹴而就,需要建設方組織技術維護人員和用戶從軟件開發開始就參與進來,共同開發,共同驗收,相互合作,每個人都是這螺旋上升階梯的一塊基石,缺一不可。
3.1工程開始前的驗收
(1)計算機硬件到場安裝前,承建方與建設方共同驗收,是否符合軟件工程建設基礎要求,驗收時發現短缺、破損,承建方應立即要求采購方補發和負責更換。(2)操作系統和基礎應用系統安裝完成后,需要軟件工程承建方進行驗收,測試應用是否符合工程建設標準,驗收合格后方準進行應用軟件開發工作。
3.2工程進行中的測試(初驗)
項目調試后基本達到招標書規定的指標后,可進行驗收測試(初驗)。驗收規范(包括項目、指標、方式和測試儀器等)應由承建方提前提交給建設方。建設方可根據合同、招標書、驗收方案以及建設方的有關規定進行修改和補充,經雙方確認后形成驗收文件作為驗收依據。驗收測試合格后,雙方簽署初驗合格協議,設備進入試運行期。
3.3試運行后的系統完善
工程經過一定時間連續的試運行期后,設備維護方和用戶對系統會提出部分問題和修改建議,承建方跟蹤應用系統運行也會發現一些問題。需要監理方組織各方進行中期運行總結會,分析系統問題,解答操作問題,協調各系統開發人員查找數據交換問題。按照會議決議組織人員進行系統完善,再次進行測試。在試運行期間,由于設備質量等造成某些指標達不到要求,將責成有關單位更換或進行修復,試運行期順延。
3.4整體驗收(終驗)
初驗內容主要是對建設項目的功能、性能、適用性、穩定性等方面進行驗收。平臺試運行后,無質量問題,由建設方按照整體驗收方案的要求組織驗收。
整體驗收內容主要以雙方簽署的合同,包括合同附件、招投標文件,以及國家法律和有關規定等為依據。對平臺各項功能和數據配置要求、性能指標、應用和運行情況等,進行全面的整體核查驗收,驗收后簽署“驗收合格單”。在工程實施各階段所提供的變更資料,與合同正本具有同等的法律約束力。
四、驗收后項目移交
系統終驗結束并正常運行后,由監理方組織項目移交工作,承建方按合同及相關要求移交項目文檔、數據資料及其他設備或材料,辦理移交手續。雙方簽署最終驗收證明,工程實施通過。
參考文獻
關鍵詞:項目驅動法;軟件測試;教學方法
作者簡介:趙曉君(1979-),女,河南南陽人,鄭州輕工業學院軟件學院,講師;黃艷(1976-),女,河南信陽人,鄭州輕工業學院軟件學院,副教授。(河南 鄭州 450002)
基金項目:本文系鄭州輕工業學院校級青年教師教學改革項目的研究成果。
中圖分類號:G642.0 文獻標識碼:A 文章編號:1007-0079(2013)07-0101-02
隨著軟件產業的快速發展,軟件系統的規模越來越大,功能實現也越來越復雜,導致軟件中存在的缺陷數量大大增加,這些缺陷將會帶來各種損失,甚至出現災難性的后果。因此,如何保證軟件質量已成為所有使用軟件和開發軟件的人們關注的焦點。軟件測試作為軟件工程的一個重要組成部分,是目前用來驗證軟件是否能夠滿足用戶需求功能的唯一有效方法,是保證和提高軟件質量的重要環節。為適應軟件產業的發展趨勢和滿足軟件測試人才的大量需求,目前已經有許多大學在軟件工程專業添加軟件測試課程或者添加軟件測試專業方向。
軟件測試專業包含多門專業課程,有“軟件測試理論”、“軟件測試技術”和“軟件缺陷管理”等,其中,“軟件測試理論”課程重點為初學測試的同學講解測試的基礎理論知識,主要包括軟件測試基本理論、軟件測試方法和技術等,在多門專業課程中占有舉足輕重的地位。
一、“軟件測試理論”教學現狀
“軟件測試理論”課程重點介紹軟件測試的基本理論,因此整個課程主要以教師講授為主,在教學的過程中存在以下問題:
1.教學內容理論性較強,難以調動學生學習的主動性
對于初學軟件測試的學生,首先要向其講授相關測試理論,使其建立系統的測試理念。
但是學測試的學生大都是理科生,喜歡操作性強的課程,“軟件測試理論”課程的理論性太強,需要背誦很多概念性的知識,這對于他們來說是比較困難,不能激發學習的主動性,教學效果不理想。
2.測試方法和技術案例實際應用價值不足,學生很迷茫
測試方法和技術是“軟件測試理論”課程學習的重點和難點,這部分內容僅靠老師的講解和書本上的案例很難讓學生深入理解掌握測試技術的內涵,學生在學習這部分知識時會產生迷茫:學習這些知識有什么用處,在具體的項目測試中,應該怎樣應用這些知識?沒有實際的項目案例做支撐,學生會失去繼續學習下去的興趣。
針對上面的問題,本文提出將項目驅動法應用于“軟件測試理論”課程的教學中,學生在進行項目實踐的同時,根據需要學習軟件測試相關理論知識,這樣有助于提高學生的學習主動性,有助于理論知識的牢固掌握,有助于提高學生的實踐技術能力,改善該課程的教學效果。
二、項目驅動法
項目驅動法是目前中國教育領域中一種比較新的教育教學方法。
所謂項目驅動法,是師生通過共同實施一個完整的項目工作而進行的教學活動,它既是一種課程模式,又是一種教學方法。[1]這里的項目根據課程教學內容的不同所包含的涵義也不同。在“軟件測試理論”課程教學中,項目即指一個已經開發完成的軟件測試工作。通常,項目教學都是實踐導向的和任務驅動式的教學。
在項目驅動模式的教學活動中,教師根據學生現有的知識水平和項目經驗選擇一個合適的項目,以項目實施為主線展開教學活動,把課程相關的知識點的講解融入項目操作的每個步驟中。在項目實施的過程中,以學生為中心,教師主要做組織和指導工作,學生在整個項目的實施過程中處于探索知識的情景中,充分發揮主動性、積極性和創新精神,綜合運用所學的知識和技能解決實際問題,最終達到有效地將所學知識系統化深入化的目的。
這種模式從根本上將傳統課堂中老師滿堂灌轉變為“學生為主體,教師為主導”的教學模式。同時,學生通過一個具體項目的實踐,感受到了真實項目管理的思想和團隊協作的必要性,提高了學生的創新能力和項目實踐能力。擁有真實項目的實踐經驗使得學生在擇業時擁有很大競爭優勢。
將項目驅動法應用于“軟件測試理論”課程教學中,在課程理論教學中加入一個完整的項目測試實踐環節,通過項目實踐能夠很好地激發學生的學習主動性,使學生經歷了一個“先做,遇到問題,再學,解決問題,再做,獲得經驗”的學習過程,最終完成一個完整的軟件測試實踐,同時也學到了“軟件測試理論”課程應該掌握的理論知識。這樣,既解決了軟件測試理論課程理論性太強的問題,又解決了測試方法和技術案例實際應用價值不足的問題;而且豐富了學生的實踐經驗,提高了軟件測試理論課程的教學效果。
三、“軟件測試理論”課程教學目標和教學內容
1.教學目標
通過本門課程的學習和實踐,理解軟件測試理論與原則;掌握主流測試技術和方法,熟悉測試用例的編制、熟悉軟件測試的基本流程,熟悉軟件測試過程中各類技術文檔的編制規范,并能靈活運用測試技術解決實際問題。
對于一個具體項目軟件,每一個學生都能夠順利完成如下手工測試流程:根據軟件需求規格說明書撰寫測試計劃,設計測試用例、進行測試環境配置和測試數據準備工作、執行各種測試,撰寫缺陷報告、跟蹤并修復缺陷、進行測試評測,最后提交測試總結報告,達到軟件企業對測試專業人才的要求。
2.教學內容
“軟件測試理論”課程的教學內容主要包括軟件測試基本理論、軟件測試基本技術、軟件測試過程和軟件測試工具。[2]
軟件測試基本理論包括軟件測試、軟件缺陷和測試用例的基本概念,測試的目的、測試模型、測試分類和測試流程。
軟件測試基本技術包括白盒測試和黑盒測試;其中白盒測試包括靜態測試和動態測試,動態測試又包括程序插樁、邏輯覆蓋、基本路徑測試等;黑盒測試包括等價類劃分、邊界值分析、因果圖法、判定表法、場景法等。這些基本技術都是在進行測試用例設計時使用的。
軟件測試過程是指執行測試的過程,通常分為四個階段:單元測試、集成測試、系統測試和驗收測試。
軟件測試工具有多種:功能測試工具、性能測試工具和測試管理工具等。
四、項目驅動法的應用方案
1.項目的設計
實施項目驅動法,首先需要設計項目。項目的設計與選取直接影響到該教學模式的教學效果及學生的學習興趣。“軟件測試理論”課程項目的選取與其他課程又有所不同,學生要進行的操作是對現有的或者已經開發完成的軟件的測試工作,因此在設計項目時應遵循以下幾條原則:
第一,項目是現有的軟件或已經開發完成的軟件,軟件中有部分明顯錯誤,有部分隱藏錯誤;明顯錯誤有助于提高學生的測試積極性,隱藏錯誤有助于啟發學生進行更深入的測試。
第二,項目具有典型性,代表大部分軟件的共性。通過該項目的測試,學生可以掌握大多數軟件的測試流程和測試方法。
第三,項目中有多種情景元素,符合使用多種測試技術和方法,有助于學生在進行項目測試的同時,學習使用多種測試技術設計測試用例的方法。
第四,項目大小和難易適中。每個項目組的人數控制在3~5個人,設計的項目能使學生通過努力在一定的時間內完成。
根據以上原則,本課程目前選擇的項目是《企業薪酬管理系統》。
2.項目驅動法的實施
本課程通過讓學生進行企業薪酬管理系統完整的測試流程實踐的同時,講解測試需求編寫、測試計劃編寫、測試用例設計、測試環境配置、測試執行、缺陷跟蹤和管理、測試報告撰寫等內容。課程授課方式主要是分階段講解測試過程和測試要求,每一個階段開始,老師先講原理,選擇部分內容做例子進行講解,然后學生比照例子跟著做;階段內容完成時,學生提交完成的文檔,老師選擇典型的問題進行講評,然后進行下一個階段的內容,如此類推直至測試結束。
企業薪酬管理系統測試流程設計如圖1所示。
本課程課時為60學時,根據圖1系統測試流程圖安排,基于項目驅動法的“軟件測試理論”課程安排如表1所示。
在課程進行的過程中,必須嚴格按照項目的測試流程進行,測試流程為:先獲取項目測試需求,撰寫測試計劃,設計測試用例,執行測試,提交缺陷報告并跟蹤修復缺陷,最后提交測試總結報告。課程結束,要求學生提交項目測試報告,測試報告包括多個文檔,整個流程中每個階段的工作必須有撰寫規范的文檔提交,如:測試計劃、測試用例、測試執行報告、缺陷報告和測試總結報告等等。
測試報告既體現了教師項目教學的結果,也體現了學生對測試知識技能的掌握水平。通過評價學生作品,找出學生在學習過程中的薄弱環節,進一步改進項目驅動教學的教學安排,使其能夠發揮最大的教學效果。
五、結束語
本文針對軟件學院軟件工程專業的培養對象和教學特點,把真實項目引入“軟件測試理論”課程課堂教學中,采用項目驅動教學法,從項目的需求評審、測試計劃、測試用例設計、測試執行、缺陷報告、測試評測到測試總結一個完整的測試流程,交給學生組建測試團隊,按照流程進行任務分配和管理,最終完成整個項目的測試工作。通過一個完整項目測試流程的完成,有效提高學生的學習和實踐能力、解決問題的能力、團隊協作能力等,使學生在掌握軟件測試的各種測試技術和基本流程的同時,積累了一定的項目測試經驗,為他們今后的就業打下了良好的基礎。
參考文獻:
摘要:軟件工程是高校計算機專業的一門重要課程,工程實踐性非常強,相關理論與技術也發展非常快,為適應社會要求,培養高素質的軟件工程技術人員,文章提供了在課程教學方面所作的積極的教學方法改革。從教學準備階段、教學過程和教學考核三個重要階段,分別闡述了“案例”;教學法的實踐過程,是教學方法改革的一次探索。 關鍵詞:案例教學;實踐教學;軟件工程 軟件工程碩士論文是高等學校計算機教學計劃中的一門核心課程,是研究軟件開發與軟件管理的綜合性工程學科,工程實踐性非常強,要求學生不僅具有良好的程序開發能力,而且要具備軟件項目的整體管理概念,以及團隊合作的精神。因此,傳統的教學方法顯然不能滿足該課程的需求。另一方面,與該課程相關的理論與技術的發展速度也非常迅速。軟件工程碩士論文新的理念、新的開發工具層出不窮,這給課程體系結構的建立、教學資料的選擇和積累帶來了很大的難度。為了提高該課程的教學效果,專門成立了軟件工程課程組。針對該課程的特性,多次召開教學研討會,交流教學體會和有關教學資料,不斷總結教學方法和教學經驗,在吸取國外同類課程Software En- gineering教學經驗的基礎上,積極探索教學方法的改革,將軟件工程專業素質的培養作為教學目標,逐步形成了一套有效的、完善的教學規范。總結起來,可以從教學準備階段、教學過程和教學考核等三個方面來看。
一、軟件工程碩士論文教學準備教學前的準備工作非常重要。首先,根據教學大綱,在深入分析教學內容的基礎上,列出該課程的知識結構體系,以及與相關課程的聯系,從而確定該課程的教學目標。該課程的教學目標主要可以包括以下3方面: (1)知識目標:了解“軟件工程”;這門學科的形成和發展;掌握與大型軟件系統相關的規劃、分析、設計、實現、測試與維護等概念、原理、方法、工具與過程;掌握“軟件工程”;的基本管理方法。 (2)能力目標:體驗軟件工程各階段的主要工作,特別注意吸取教訓;訓練實際軟件工程動手的能力,培養綜合應用能力;通過教師與學生之間、學生與學生之間的合作學習,增強學生的團隊協作能力, 并學會與他人交流。(3)情感目標:通過學生的個性化學習,增強學生的自信心和意志力。其次,軟件工程碩士論文課程組成員充分交流教學體會和相關教學資料,參考了大量國內外先進的軟件工程理論和應用實例,對教學內容進行了必要的補充和刪改,增加了軟件工程學科發展動向的介紹,加強了包括項目管理、版本控制、建模工具和調試工具在內的各種現代軟件工程開發工具的使用介紹,編制了內容豐富、聯系實際的多媒體教學課件。一方面,為訓練學生對現代先進軟件工程技術及其前沿理論發展的敏銳性、提高學生雙語學習的能力,收集準備了大量原版技術文檔;另一方面,為了培養學生自覺應用軟件工程碩士論文的理論分析問題、解 28決問題和使用工具軟件的專業能力,配合理論教學, 設計了完整的、具有實際工程意義的綜合型軟件項目實驗,并為此建立了案例庫,為每一個案例提供詳細的分析參考說明。
二、軟件工程碩士論文教學過程在具體教學過程中,重點采用理論與實踐密切相結合的方式,讓學生在項目開發實踐中自覺應用軟件工程理論。首先,讓學生了解整個課程的結構與重點,以及該課程與其他課程的關系。在深入分析教學內容的基礎上,列出該學科的知識和能力結構體系,以及各單元或章節之間的邏輯關系,然后再按單元或章節分別列出知識能力結構體系。按照教科書的章、節(課)的順序,用簡明扼要的語言列出各知識點的內容,并標出各知識點的學習目標層次,同時注明哪些知識點屬于教學中的重點或難點。其次,在課堂講授中,采用多媒體方式,提高講授信息的先進性和現實性。同時開展指導性自學, 提倡和鼓勵學生閱讀英文原版教材及其參考書。通過一系列討論會,訓練學生對大量新信息的接收消化能力。在軟件工程碩士論文實踐過程中,通過案例研究,把綜合型開發實驗劃分成若干練習單元,進行舉一反三;然后,學生按教師組要求組成4~6人的項目小組,扮演項目開發過程中的不同角色,進行分工協作,模擬練習,參與項目管理和開發,從不同角度全面把握和體會整個軟件工程項目開發和管理的基本思想,共同完成實驗項目。教師加強在實驗過程中的指導作用,要求各項目小組分階段提交討論記錄和項目工程要求的里程碑成果。具體實施過程: (1)選題分組在開始理論教學之前,通過案例研究,向學生提供典型的軟件案例,可來自案例庫。由學生根據自己的興趣自由選擇軟件工程碩士論文題目,組成項目組,并選取項目負責小組長。每小組人數最多不超過6人,各個小組由小組長負責組織、分工、控制進度等,對小組成員的最終實驗成績有5分浮動調整權;引起過半數組員不滿意,改選組長;組長帶領全組順利完成任務, 總評可以加5分。主要要求是讓學生體驗軟件工程各階段的主要工作,特別注意吸取教訓;并且學會與他人合作,培養團隊精神,單干戶將得不到成績。 (2)階段驗收根據理論教學的進度,各個項目開發小組將提供軟件工程碩士論文過程中的階段性成果,大致將提交如下幾個成果:可行性分析報告;需求規格說明書;項目計劃書;總體設計報告;詳細設計說明書;軟件測試報告;各課題組進行合并,現場驗收軟件期末最終版;項目開發總結報告;用戶使用手冊等。每個階段都將嚴格按照軟件工程碩士論文的管理方法進行評審活動,并提供給大家一個互相交流的機會。首先,每個項目組都將匯報、展示自己的成果。主講老師和其他同學組成評審委員會,對每個項目組的匯報情況、里程碑成果、文檔質量進行評審、打分,提出修改意見和建議。每組演講結束后, 分組討論,按階段評分標準給出除自己組外的幾個組的分數,并寫出評語。教學實踐以課題小組為單位完成綜合實驗項目,教師本著訓練同學交流能力的目標,制定一些分組標準。下圖就是需求分析軟件工程碩士論文階段的一個評分標準示例: 最后,主講老師要進行總結點評,既總結課程的主要內容和相關知識點,又點評學生的表現,幫助學生整理學習內容,鼓勵積極性。 (3)成績評定課堂教學不僅僅是理論教學,還包括案例分析、討論,結果展示匯報等,教師引導學生展示自己的實驗成果,根據各個項目小組的整體完成情況和各個成員在其中的表現綜合評定每個學生的成績。每個學生的成績既包含項目小組負責人打分,又包含教師的評分,從而充分調動學生參與項目的主動性,以 29防止部分小組成員不參與項目完成而又蒙混過關的現象。下面將具體描述本課程的考核辦法。
三、教學考核本課程既有理論教學又有實踐環節。每個學生的軟件工程碩士論文課程成績由三部分組成:實踐成績占30%,期末筆試占60%,平時考勤占10%。其中,理論部分的考核以筆試為主。主要考查學生對基本理論與基本概念的理解和掌握情況。實踐成績的評定包括小組成績和個人成績兩大部分,各占50%。小組成績由各個小組階段成績的平均值與系統最終驗收的情況(包括系統是否達到需求規格說明中的功能性、非功能性要求,文檔是否全面、合理、規范,源程序編寫是否規范、可維護性好等方面)組成;個人軟件工程碩士論文成績主要由小組長根據個人在組內的表現和工作給出,約占50%,另外50%的個人成績由最終答辯時主講老師根據答辯成績來評定。小組長的個人成績由老師根據其組織項目組完成軟件開發的具體情況和其管理質量(如分工是否合理、進度安排是否合適、軟件質量如何等)來綜合評定。教學實踐過程在教師引導下,學生自主管理,分工協作,既鍛煉了學生參與項目管理的能力,又訓練了學生之間的團隊合作精神。教師掌握各小組成員的實際完成情況,強化學生各種現代軟件工程開發工具的應用能力,要求學生按規定提交討論記錄和項目工程要求的各種文檔。軟件工程碩士論文形成了一套較為成熟的科學的綜合成績評定方法。該考核辦法較為科學、公正、合理,學生普遍能夠接受,并且極大地推動了學生的學習積極性,學生反映良好。