前言:尋找寫作靈感?中文期刊網用心挑選的敏捷開發模式在軟件項目教學中應用,希望能為您的閱讀和創作帶來靈感,歡迎大家閱讀并分享。
摘要:敏感開發模式是一種將多種語言的高級設計工具和手段集合起來的應用型技術,是將程序的控制邏輯作為基礎,利用計算機的信息化處理水平開發的綜合性系統。隨著計算機科學的發展,傳統軟件開發已經無法滿足現代社會的需要,敏捷開發模式應運而生。本文主要闡述敏捷開發模式在應用型本科院校軟件開發課程項目中的應用,并結合學生的特點,讓學生在實踐中掌握敏捷開發的操作。
關鍵詞:敏捷開發模式;軟件開發課程;項目教學實踐
1引言
隨著軟件行業的不斷發展,傳統的軟件系統變得愈加復雜,“軟件危機”越發嚴重。在軟件開發中,常常伴隨著超出預算成本、開發人員頻繁流動、開發周期過長、體系制度官僚化、軟件質量降低和市場環境迅速變化等問題。這讓軟件開發過程越加笨重復雜,越來越不適應現代社會的需求,導致軟件開發失敗率上升。在應用型本科高校軟件開發課程教學中,實訓項目教學是培養學生軟件開發能力的一個重要核心環節。為了保證預期教學目標的實現,把時下軟件工程行業領域中敏捷開發模式與軟件開發實訓項目教學二者有機結合,可以使學生融入軟件企業真實流程,培養其良好的職業素養,達到更好的與企業需求接軌的課程教學目標[1]。
2教學存在的問題
針對新時代新形勢下應用型人才培養目標,國內同類院校針對軟件開發課程采用了一些先進教學改革理念,初步探索并實施了“項目案例教學”、“校企聯合培養”、“以證促學、以賽促學”等多種教學改革方式并取得一定的成效[2]。但在實施過程中或多或少存在一定的問題。
2.1開發進度難以控制。與其他一般工程項目相比,軟件開發項目由于工作難以具體量化,涉及人的因素很多,項目開發進度難以控制。主要表現在以下兩個方面:一是開發活動時間難以預估,軟件開發活動屬于高智力活動,實際開發過程中可能遇到意想不到的問題。二是開發時間與開發人員的能力、職業素養有很大關系。同樣一個程序模塊,不同人員所需的開發時間相差巨大,有人可能需要一天,有人可能需要一周。同時,在軟件開發課程項目教學中,大部分學生沒有開發經驗,并且課程教學時長有限,教學執行過程中經常存在需求分析、需求設計等變更突發情況。這種變動往往導致前期開發設計工作作廢,造成教學進度滯后,甚至導致針對整個項目開發的教學過程失敗。
2.2教學過程難以管理。在傳統軟件開發課程項目教學中,軟件項目開發過程的各個階段實施線性管理。在完成代碼編寫前無法進行軟件測試環節的實施,造成在代碼編寫階段負責軟件代碼測試環節的小組成員無法順利展開工作。同時,很多時候學習開發團隊中綜合能力較強的學生經常完成絕大部分工作任務,團隊中能力較弱的學生逐步變成了旁觀者。團隊成員之間無法進行有效溝通和協作,導致無法帶動全體學生共同進步,合作完成學習任務的初衷不能實現[3]。軟件開發課程項目實施是與軟件工程課程相匹配的后續主要集中實踐教學環節。其主要目的是通過與真實企業脫密項目的開發與學習來培養高年級學生的動手實踐操作能力,使學生通過實際的“真項目”和“真動手”把在軟件工程相關課堂上掌握的軟件開發理論知識進一步消化吸收、理解和鞏固。軟件開發課程項目教學環節通常的做法是把班級全體學生分成若干個小組,按照軟件工程項目管理的思想、方法和過程進行固定題目的模擬項目開發,通過撰寫開發計劃、需求分析、編碼設計等相關項目文檔來鍛煉學生的動手能力。但是,面對當下新一代信息技術所提出的培養復合型和創新型工程人才的要求,目前這種教學組織形式普遍存在項目相關課程教學與新一代信息技術產業需求脫節,校外企業課程指導教師人員精力不夠;項目開發課程整體評價方法單一等一系列問題。這些問題限制了軟件開發課程項目教學難以達到預期的效果[4]。
3敏捷開發模式優勢
3.1明確要求結果精。以往傳統瀑布開發模式從一個點開始,一個面結束。這樣的開發會導致成果與出發點嚴重偏離,重點無法被作為重點開發出來,從而與原來的構想相差甚遠。敏捷開發模式類似接力比賽,每一段開發過程都不長,并且還能把握好每次過程變化的時機,遵循計劃變更響應變化,可以使軟件開發所要求的結果更加精準。敏捷開發是將用戶的需求進化作為核心,運用循序漸進、迭代的方法進行軟件開發。在當前的市場中,很多都是中小型軟件企業的開發方法。在計算機軟件開發中,敏捷開發最具代表性。這種代表性體現在項目的分割中,敏捷開發是將開發項目分割為多個小項目,在保證每個小項目都具備可集成、可視、可運行的效果下,最終實現開發項目的整體運行。敏捷開發的核心原則就是主張簡單、擁抱變化,在軟件開發中,要堅持最簡單的解決方案,盡可能地保持軟件模型的簡單化。但在開發過程中,團隊的人員與環境是不斷變化的,因此開發方式也要與現實相符,不斷變化[5]。
3.2更新迭代有保障。敏捷開發模式方法軟件開發迭代周期的質量要求非常高。要求敏捷開發團隊擁有靈活的開發方法,甚至會在開發正式功能代碼之前先開發與之相對應的該功能模塊的測試代碼,因此質量有保障。在敏捷開發模式下,最具核心價值的功能模塊總是被優先考慮開發,這樣能給客戶帶來最大的投資收益。同時,速度快也是敏捷開發模式最顯著的優點之一。敏捷開發模式團隊通常重點專注于當前開發項目中最需要、最具價值的功能模塊。另外,較短的迭代周期使團隊成員能迅速進入開發狀態。
3.3靈活互動效果好。在應用型本科院校,將敏捷開發模式應用到軟件開發的課程項目中,可以增強學生的語言組織能力與溝通能力。因為敏捷開發需要將客戶的需求作為核心,需要學生不斷地與客戶進行溝通,了解客戶的具體需要,在溝通中逐步完善軟件開發內容。而且敏捷項目在完成中需要進行分組,每個小組通過相互配合完成項目的階段性成果,有助于培養學生的團隊意識[6]。由于將項目分為多個子項目,學生在開發過程中要先對子項目進行測試,可以在短期內看到開發成果,讓他們的成就感得到滿足,有利于激發他們的開發熱情。同時,在應用型本科院校中嘗試敏捷開發課程項目,也讓學生體驗到軟件開發企業的工作流程與工作方法。
4敏捷開發模式的應用
4.1課前準備。不同于傳統的軟件開發課程,敏捷開發項目在教學應用中對教師、機器設備、上課場地等方面有很高的要求。對教師來說,開展敏捷開發模式的課程教學需要教師具有相關的軟件開發經驗。教師可以編寫較為完善的《項目需求說明書》,并在課前分好小組,為每組選出“項目經理”,并教授“項目經理”如何給組員分配項目任務與編寫《項目任務書》。這就需要教師運用大量的時間進行準備與思考。在任務的選擇上不能過于簡單,這樣會體現不出實踐的作用;也不能超出學生的能力范圍,這會降低學生的學習動力[7]。在“項目”開始時,教師要組織學生進行5分鐘的小組成員會議。這需要教師對課堂的把控十分精準。在場地上,學校要為每個小組提供較為獨立的空間,用作小組的項目開發地,方便小組成員之間的交流與探討,也防止與其他小組之間的沖撞。在上課安排上,教師要安排3-4課時的時間進行敏捷開發模式的課程。軟件開發是一件需要學生長時間專注的事情,要進行大量的腦力分析與項目校準,要耗費大量的時間。在設備上,學生需要大量的信息作為項目開發的理論基礎。學校提供信息化的查詢平臺,方便學生實時查看項目的推進速度,并在線填寫工作日志與查閱項目任務書[8]。
4.2實踐過程。開始時,教師扮演部門經理或用戶的角色,將項目任務下去,確定好《項目需求說明書》、項目原型與項目立項工作。然后由各小組的項目經理對小組成員進行任務劃分,根據成員分工制定《項目任務書》,明確各成員的工作任務。小組成員在分配到任務后,要明確任務的要求,根據任務要求確定所需技術的應用?;诿艚蓍_發的軟件課程項目開發流程如圖1所示。各小組開進行敏捷開發中,要制定開發體系,要建立以項目經理為主導,包含設計、前臺聯絡、后臺開發和產品測試的團隊,進行產品迭代開發。項目經理要明確小組的敏捷開發方式,制定完善的開發流程,確定迭代周期,讓產品更具吸引力。小組內部要明確使用工具的配備,確認日志、監控平臺等工具的有效性。在進行開發中,小組要進行四個會議的召開。迭代計劃會議:迭代計劃會議是每個項目進行前要召開的會議,是明確項目的具體需求重要會議。會議上,小組內要對開發時長進行估算,根據項目需求的優先排序,明確工作計劃,分析產品需求列表的工作時間,制定迭代周期與迭代目標。每日站會:課程項目實踐中,每次上課都要進行5分鐘的站會。這5分鐘內,小組成員需站立完成,所以稱為每日站會。會議內容主要是進行組內的任務溝通,在會上各成員對“昨天的工作進度”、“今天的工作計劃”、“工作中遇到的問題”等話題進行探討。項目經理負責記錄會議上的內容,并在會后針對提出的問題進行私下解答。迭代審評會議:這個會議主要是向用戶進行成果展示。在課程項目中,各小組要將開發的成果展示給教師或全班學生,演示產品的使用功能并接受教師與其他學生的評價指導[9]。迭代總結會議:迭代總結會議是在項目完成后進行的總結會議。會議的主體圍繞“這次項目有哪些值得延續的地方”、“這次項目有哪些還能進步的地方”、“這次項目有哪些做得不好的地方”三個話題進行,在團隊內部進行討論與分析,根據問題的輕重緩急進行解決,并在之后的項目中注意此問題的發生[10]。
4.3課程評價。在項目課程教學之后,教師要及時地進行評價考核,指出學生在項目中存在的問題,并針對問題提出改進的措施。教師可以根據學生在項目開發中的平時表現與項目結束時的表現進行評價。平時評價是教師每節課結束時,學生在會議上的自我評價與每組“項目經理”分配的工作任務的完成度與完成質量的評價。根據《項目任務書》,教師要給每位學生當天的工作日志上進行優、良、中、差四個等級的工作評價,將優、良、中、差分別折算為4分、3分、2分、1分,最后取總成績的平均分作為學生的平時成績。項目結束評價是在項目驗收階段,由各個小組根據項目的展示相互評價,教師也要根據項目完成的質量進行總結評價。項目評價的整體成績是50%的小組互投成績和50%教師評價成績的總和。最后會將平時成績與小組項目成績進行綜合,得出個人的總成績。通過這種課堂評價,可以更有效地提升學生的軟件開發能力。這種敏捷開發模式的應用也讓學生在走出校園后,更加適應企業的工作環境。在應用型本科院校的軟件開發課程應用敏捷開發,讓學生在工作前了解軟件開發公司在進行軟件開發中的組織架構、工作方式,更好地與客戶進行溝通、交流。每次項目的結束都會增強學生軟件開發的學習認知,提高學生學習的興趣。
5結論
綜上所述,在應用型本科院校的軟件開發課程項目中引入敏捷開發模式,與行業企業共建課程資源庫、真實項目教學案例庫,全面推動課堂教學改革,探索實施“以學為中心、以教為主導”的軟件項目課堂教學。積極推進基于敏捷開發模式的教學方法和教學手段改革,進而推進現代信息技術與教育教學深度融合,推進突出能力和素質培養的教學方法改革,對構建線上線下混合等教學模式有著良好的推動和引領作用。同時積極推進課程考核評價方式改革,探索以學生學習成果為導向的教學評價,進一步加強過程性考核評價,形成過程性考核與終結性考核有機結合的課程考核評價方式??梢哉{動學生的學習積極性,培養學生團隊協作能力與動手能力,實現知識、能力和素質培養的有機結合。當然,在實際操作中,敏捷開發模式在軟件項目教學中的應用需要學校提供充足的軟、硬件條件,給參與其中的教師一個寬松的教學改革環境。同時要求最好小班教學,如果人數過多,會產生較高的教學成本,也不好掌握教學效果。敏捷開發模式的引入,也要根據學生的實際情況進行操作,選擇合適的敏捷開發模式,在實踐中不斷完善發展。
作者:孫德剛 單位:山東華宇工學院信息工程學院