徐海濤,陳 婧
(杭州電子科技大學計算機學院 浙江 杭州 310018)
實踐教學在計算機類專業(yè)教育中起著不可替代的重要作用,也是提高人才培養(yǎng)質(zhì)量的切入點和突破口,高校應(yīng)將實踐教學環(huán)節(jié)作為計算機類專業(yè)人才培養(yǎng)體系建設(shè)的核心任務(wù)之一,并采取各種辦法促進學生提高動手能力。為此,杭州電子科技大學在制訂計算機類專業(yè)培養(yǎng)計劃時,特別強調(diào)了實訓(xùn)教學環(huán)節(jié)的重要性,專門設(shè)立了“創(chuàng)新實踐”課程。根據(jù)學生的興趣方向,分組配備導(dǎo)師進行針對性實訓(xùn)。通過本課程的學習,學生將會對創(chuàng)新或者創(chuàng)業(yè)了解得更為深入,并且學生在相關(guān)實踐過程中能提高系統(tǒng)設(shè)計及解決實現(xiàn)過程中具體問題的能力,為將來深造或工作帶來實質(zhì)性幫助。
近年來,國內(nèi)外很多高校都在進行計算機類專業(yè)教育的改革創(chuàng)新,將一些新的教學方法引入實踐教學中。從2020 年開始,本課程組積極探索在創(chuàng)新實踐課程中引入CMMI 和FDD 結(jié)合的實踐教學模式改革,并已取得階段性成果。
CMMI(Capability Maturity Model Integration,能力成熟度模型集成)是一種用于評估和改進軟件工程、系統(tǒng)工程和產(chǎn)品開發(fā)過程的方法。CMMI 最初由美國國防部(DoD)開發(fā),旨在幫助其承包商改進其軟件工程和系統(tǒng)工程過程,提高其開發(fā)的軟件和系統(tǒng)的質(zhì)量、可靠性。CMMI現(xiàn)在已經(jīng)成為一種全球性的模型,被廣泛應(yīng)用于各種類型的組織,包括工業(yè)、政府和學術(shù)界。CMMI 模型包括五個不同的成熟度等級,每個等級代表了組織的過程成熟度,從初始級別(Level 1)到優(yōu)化級別(Level 5)。每個等級都定義了一組特定的過程目標和實踐,以幫助組織改進其軟件和系統(tǒng)開發(fā)過程的效率和質(zhì)量。CMMI 為改進一個組織的各種過程提供了一個單一的集成化框架,新的集成模型框架消除了各個模型的不一致性,減少了模型間的重復(fù),增加透明度和理解,建立了一個自動的、可擴展的框架,因而能夠從總體上改進組織的質(zhì)量和效率。通過實施CMMI模型,可以幫助提高產(chǎn)品和服務(wù)質(zhì)量、提高生產(chǎn)效率和成本效益、提高客戶滿意度、提高員工參與和團隊合作、改善管理決策和控制風險等。CMMI 主要關(guān)注點在于成本效益、明確重點、過程集中和靈活性四個方面。
特征驅(qū)動開發(fā)(Feature Driven Development,F(xiàn)DD)由Jeff de Luca、Eric Lefebvre、Peter Coad 共同開發(fā),是一種敏捷軟件開發(fā)方法,其著重點在于快速、可重復(fù)地交付高質(zhì)量的軟件功能。FDD 的主要特點包括以下幾點:
①以功能為中心:FDD強調(diào)將軟件開發(fā)過程劃分為可重復(fù)的、功能完整的特征集,以便于跟蹤和管理軟件功能。
②迭代開發(fā):FDD 鼓勵團隊以迭代方式進行開發(fā),每次迭代都可以交付完整的特征集,并在下一次迭代中進一步完善和優(yōu)化功能。
③強調(diào)團隊合作:FDD強調(diào)開發(fā)團隊成員之間的緊密合作,以便確保所有人都了解項目的目標和計劃。
⑤強調(diào)測量和監(jiān)控:FDD提倡對項目進度和質(zhì)量進行測量和監(jiān)控,以便及時調(diào)整開發(fā)過程,確保項目成功。
在“創(chuàng)新實踐”課程實訓(xùn)教學中,總體實施過程使用基于FDD 的軟件開發(fā)過程,該方法將實踐過程分為五個階段,分別是:
①開發(fā)總體設(shè)計階段:在這個階段中,團隊成員通過與客戶的交流,理解并定義項目的總體目標、范圍和需求。然后,團隊將這些需求轉(zhuǎn)化為一個總體的功能模型,形成一個概覽,作為后續(xù)開發(fā)的基礎(chǔ)。
②制訂特征列表階段(Build a Features List):在這個階段中,團隊將總體功能模型細化為一組具體的、可執(zhí)行的特征列表。這些特征是項目開發(fā)的基本單位,每個特征都是客戶或用戶希望在軟件中實現(xiàn)的一個功能或者一組相關(guān)功能。
③計劃階段(Plan by Feature):在這個階段中,團隊成員根據(jù)特征列表,制訂實現(xiàn)這些特征所需的計劃和進度。在制訂計劃時,特征會被分解成更小的、可實現(xiàn)的子任務(wù),然后根據(jù)子任務(wù)的優(yōu)先級和依賴關(guān)系,制訂一個可行的開發(fā)計劃。
④設(shè)計特征階段(Design by Feature):在這個階段中,團隊成員對每個特征進行詳細的設(shè)計,并將其轉(zhuǎn)化為代碼實現(xiàn)的方案。設(shè)計階段可以迭代多次,直到設(shè)計方案滿足客戶需求、符合項目目標并且對后續(xù)開發(fā)有利。
首先,米勒法官和約翰·桑頓就是文明的象征。他們并沒有壓榨虐待巴克,相反,生活在法官家中,讓巴克天生有了一種自豪感。如果說,巴克與米勒法官只是一種合作關(guān)系,那么與桑頓生活在一起,則讓巴克充滿愛意。顯然,作者把桑頓塑造成了一個理想的主人。巴克對桑頓的愛,讓它對桑頓的命令言聽計從。桑頓也成了連接巴克與人類社會的唯一紐帶。桑頓遇害,巴克為主人復(fù)仇之后便毅然決然回應(yīng)了自己內(nèi)心的呼喚,回歸了荒野。桑頓在此便是人類中心主義的一個反例。一個個主人的更替,只是在尋求理想中的文明“他者”。
⑤構(gòu)建特征階段(Build by Feature):在這個階段中,團隊成員根據(jù)設(shè)計方案,進行特征的實現(xiàn)和測試。一旦實現(xiàn)了特征,就會進行集成測試和系統(tǒng)測試,以確保特征符合客戶要求、系統(tǒng)穩(wěn)定且沒有錯誤。在構(gòu)建階段中,團隊可以通過不斷迭代,優(yōu)化特征的實現(xiàn),以適應(yīng)客戶需求的變化。
在實際的實施過程中,本課程組對FDD 方法進行了融合CMMI 改進。主要改進如下:
2.2.1 角色分配
在CMMI 中,參與一個軟件項目的角色比較多,一般有項目經(jīng)理、軟件總設(shè)計師、軟件設(shè)計師、軟件測試人員、軟件質(zhì)量保證人員、軟件配置管理人員等。而FDD 的角色一般較少,主要有三種:業(yè)務(wù)專家、首席架構(gòu)師和主程序員。本方法中,為了滿足對CMMI 三級所有過程域的支持,采用的角色有:項目經(jīng)理、業(yè)務(wù)專家、首席架構(gòu)師、主程序員、軟件質(zhì)量保證人員、軟件配置管理員等。
在“創(chuàng)新實踐”課程開始之前,首先讓學生自由組隊,每個團隊的人數(shù)限制在6―8 人之間,項目經(jīng)理由一個具備一定管理能力的學生擔任。業(yè)務(wù)專家由教師擔任,如一個班級人數(shù)比較多,也可以邀請助教、研究生等參與,業(yè)務(wù)專家作為客戶代表對產(chǎn)品提出需求。首席架構(gòu)師、主程序員、軟件質(zhì)量保證人員、軟件配置管理員等角色分別由一名同學擔任。
2.2.2 PPQA 過程域
在傳統(tǒng)的FDD 方法中,并沒有專門的軟件質(zhì)量保證人員。本混合方法增加了軟件質(zhì)量保證人員來實現(xiàn)CMMI中PPQA 過程域。
軟件質(zhì)量保證人員通過參與項目的階段性評審和審計、對項目日常活動與規(guī)程的符合性進行檢查、對配置管理工作進行檢查和審計、跟蹤問題的解決情況等內(nèi)容來保證軟件的質(zhì)量。此過程中,形成的文檔主要有:《過程評價表》《活動問題報告》《代碼檢查報告》和《產(chǎn)品問題報告》等。
2.2.3 CMMI 標準過程域
FDD支持或部分支持一些CMMI三級過程域,如CM、MA、IPM、PI、R D、RskM 等。為了完全支持這些CMMI過程域,需要確定風險源、風險參數(shù)、風險管理策略和制訂風險緩解計劃等,并在項目實施過程中不斷跟蹤風險,適時實施風險緩解計劃。
2.2.4 適度的軟件文檔
CMMI 重視文檔在軟件開發(fā)中的作用,而FDD 作為敏捷開發(fā)方法卻強調(diào)輕文檔。我們認為一定的文檔有利于項目的維護工作,也有利于新成員快速熟悉項目。因此,本混合方法強調(diào)適度的軟件文檔。采用的軟件文檔主要包括:產(chǎn)品需求文檔、項目管理文檔、軟件開發(fā)文檔、軟件測試文檔、用戶指南等。
2.2.5 強調(diào)需求管理
FDD 的一個重要特點是強調(diào)對需求的管理。CMMI也非常注重需求管理,包括需求分析、需求跟蹤和需求變更管理等。通過結(jié)合CMMI 和FDD 的需求管理方法,可以更好地滿足客戶需求,提高軟件質(zhì)量。
2.2.6 加強測試和驗證
CMMI 提供了一組測試和驗證的最佳實踐,包括測試計劃、測試執(zhí)行和測試結(jié)果分析等。將這些最佳實踐與FDD的測試方法相結(jié)合,可以確保軟件交付的質(zhì)量和穩(wěn)定性。
2.2.7 強調(diào)團隊合作和溝通
FDD 強調(diào)團隊合作和溝通,而CMMI 也強調(diào)了團隊協(xié)作和知識共享。通過結(jié)合這兩個方法,可以確保團隊成員之間的協(xié)作和溝通,并促進知識共享,從而提高開發(fā)效率和質(zhì)量。
2.2.8 重視過程改進
CMMI 強調(diào)持續(xù)的過程改進,包括識別和糾正過程中的問題,并實施改進措施。通過將這些方法與FDD 相結(jié)合,可以不斷優(yōu)化開發(fā)過程,提高軟件質(zhì)量和效率。
本課程組改進的結(jié)合Scrum 和FDD 的軟件開發(fā)實訓(xùn)方法已在作者所在的學校計算機及軟件工程專業(yè)實施3 個學期,取得了不錯的效果。課程成績優(yōu)良率、學生滿意度等均得到了提高。另外,因為計算機類專業(yè)學生的畢業(yè)設(shè)計題目相當一部分也是軟件開發(fā)類題目,所以經(jīng)過實施本方法的“創(chuàng)新實踐”課程訓(xùn)練之后,學生的畢業(yè)設(shè)計成績也得到了提高。教學效果的統(tǒng)計數(shù)據(jù)如表1 所示。使用本教學方案后,課程成績優(yōu)良率比之前平均提升7%,學生滿意度平均提升4.3%,畢業(yè)設(shè)計優(yōu)良率平均提升6%(見表1)。

表1 教學效果對比數(shù)據(jù)
實踐教學是培養(yǎng)具有創(chuàng)新意識的高素質(zhì)工程技術(shù)人才的重要環(huán)節(jié),是理論聯(lián)系實際、培養(yǎng)學生掌握科學方法和提高動手能力的重要平臺。本文針對結(jié)合CMMI和FDD思想的教學法在“創(chuàng)新實踐”課程中的應(yīng)用進行了探討,提出了一種較為實用的實踐教學方法,在實際教學中也取得了較好的效果。