夏小娜,戚萬(wàn)學(xué)
(1.曲阜師范大學(xué) 統(tǒng)計(jì)學(xué)院,山東 曲阜 273165;2.曲阜師范大學(xué) 信息科學(xué)與工程學(xué)院,山東 日照 276826;3.曲阜師范大學(xué) 中國(guó)教育大數(shù)據(jù)研究院,山東 曲阜 273165)
軟件工程是計(jì)算機(jī)科學(xué)與技術(shù)和軟件工程等工程類專業(yè)的基礎(chǔ)課程[1],在工程性團(tuán)隊(duì)協(xié)作素養(yǎng)的培養(yǎng)和提升方面,具有重要地位[2]。在軟件工程的教學(xué)過(guò)程中,需要考慮課程實(shí)踐過(guò)程的群體協(xié)作訓(xùn)練[3-4],加大學(xué)習(xí)者自主和互助解決問(wèn)題的力度[5]。
首先,授課者應(yīng)根據(jù)課程內(nèi)容,找出課程知識(shí)點(diǎn)的線索走向和前后聯(lián)系,將課程教學(xué)規(guī)劃為課堂學(xué)習(xí)、應(yīng)用實(shí)踐和專題研討3 個(gè)層次;其次,將課程內(nèi)容分成不同的學(xué)習(xí)階段和學(xué)習(xí)子目標(biāo),在每個(gè)階段,制定不同的實(shí)踐內(nèi)容和執(zhí)行步驟,設(shè)定不同階段的考核指標(biāo)和評(píng)定規(guī)則;再次,將學(xué)習(xí)者分成不同的參與組,針對(duì)應(yīng)用實(shí)踐和專題研討兩個(gè)層次,每個(gè)組設(shè)定相應(yīng)的參與Title(主題),每個(gè)Title 部署為一系列的執(zhí)行任務(wù)。
為提高學(xué)習(xí)者參與軟件工程課程教學(xué)的主動(dòng)性和自覺(jué)性,基于翻轉(zhuǎn)課堂的基本理念[6-7],在課程授課時(shí)間有限且任務(wù)多的前提下,本研究結(jié)合軟件工程方法學(xué)的極限編程模型思想,提出結(jié)對(duì)模式驅(qū)動(dòng)的協(xié)作教學(xué)機(jī)制。跟蹤軟件工程一學(xué)期的教學(xué)過(guò)程,抽取兩個(gè)專業(yè)學(xué)習(xí)者的學(xué)習(xí)行為數(shù)據(jù),設(shè)計(jì)參與度計(jì)算方法,并結(jié)合統(tǒng)計(jì)檢驗(yàn)指標(biāo)展開實(shí)證分析。
“結(jié)對(duì)編程(Pair programming)”[8]是軟件工程過(guò)程模型——極限編程(Extreme Programming,簡(jiǎn)稱XP)的核心理念。它要求兩人為一個(gè)“Pair”參與合作同一段代碼,一人(思考者)分析問(wèn)題另一人(編程者)編碼實(shí)現(xiàn)。思考者需要保持軟件頂層概念,而非僅關(guān)注當(dāng)前問(wèn)題,編程者只需要關(guān)注局部問(wèn)題解決的可計(jì)算化和可編程化。如果編程者遇到了問(wèn)題,兩個(gè)人就需要角色互換。如果兩者都處于問(wèn)題解決的“瓶頸”,可以邀請(qǐng)本系統(tǒng)的其他人參與討論。這種理念可以保證整個(gè)團(tuán)隊(duì)實(shí)現(xiàn)“自頂向下、逐步求精”的研發(fā)互助目標(biāo)。將團(tuán)隊(duì)成員分解成多個(gè)相對(duì)獨(dú)立又可以適時(shí)溝通的“Pair”單元,不同的“Pair”先完成各自的分配任務(wù),再?gòu)恼w上分層次、分階段地實(shí)現(xiàn)“Pair”工作的有效集成。
“結(jié)對(duì)”理念運(yùn)用于軟件工程課程教學(xué),需要先剖析課程知識(shí)結(jié)構(gòu),這里按照橫向和縱向兩條線索展開,橫向是結(jié)構(gòu)化和面向?qū)ο髢煞N方法體系,縱向是軟件的生命周期線索。根據(jù)縱向的脈絡(luò)階段劃分,橫向任務(wù)交叉進(jìn)行??v向根據(jù)軟件生命周期的定義,從時(shí)間維度劃分成相互關(guān)聯(lián)的多個(gè)階段。
“結(jié)對(duì)”是采用“Pair”為基本參與單元的多層次、多階段迭代的組織模式,每一項(xiàng)參與任務(wù),都是兩人結(jié)對(duì)協(xié)作。在任務(wù)推進(jìn)過(guò)程中,不同的“Pair”適時(shí)溝通,及時(shí)融合,不時(shí)迭代,有效集成。圖1 是“結(jié)對(duì)”模式驅(qū)動(dòng)的軟件工程協(xié)作教學(xué)機(jī)制剖面圖,圖的中間部分是軟件生命周期的相關(guān)階段,不同階段之間存在嚴(yán)格的先后次序,自頂向上有序進(jìn)行,每一階段的任務(wù)都以上一階段的執(zhí)行結(jié)果為依據(jù),也是下一階段任務(wù)開始的前提條件。每一階段的執(zhí)行結(jié)果,也可以反饋到相鄰的上一階段。
圖1 “結(jié)對(duì)”模式驅(qū)動(dòng)的軟件工程協(xié)作教學(xué)機(jī)制
基于圖1 的邏輯部署,需要在軟件工程的教學(xué)過(guò)程中設(shè)計(jì)不同Title 的應(yīng)用實(shí)踐和專題研討案例。每個(gè)Title 指定一個(gè)負(fù)責(zé)人(Leader),Leader 根據(jù)Title 的實(shí)施目標(biāo),制定任務(wù)執(zhí)行的標(biāo)準(zhǔn)和規(guī)模,擔(dān)任“監(jiān)督者”和“調(diào)控者”的角色。并配置一定數(shù)量的參與成員,一般為4~5 人,兩兩結(jié)合形成“Pair”。同時(shí)要求屬于同一Title 的Pair 之間保持溝通,做到任務(wù)執(zhí)行過(guò)程的透明化和公開化。不同Pair 的任務(wù)關(guān)聯(lián)過(guò)程采用漸增式的集成思路,即每一次的集成,只引入一個(gè)Pair任務(wù)關(guān)聯(lián),這樣做利于發(fā)現(xiàn)問(wèn)題和解決問(wèn)題。
“結(jié)對(duì)模式”驅(qū)動(dòng)的協(xié)作教學(xué)機(jī)制具有共同的組織原理。無(wú)論P(yáng)air 參與的是哪一個(gè)Title,都遵循軟件生命周期的8 個(gè)階段,將這8 個(gè)步驟的任務(wù)集定義為X1、X2......X8,每個(gè)步驟對(duì)應(yīng)的課堂學(xué)習(xí)、應(yīng)用實(shí)踐和專題研討的參與度分別定義為L(zhǎng)i、Ci和Ri,取值區(qū)間為[0,1],其經(jīng)驗(yàn)權(quán)重系數(shù)通常設(shè)定為0.5、0.3 和0.2,則Xi=0.5Li+0.3Ci+0.2Ri。軟件生命周期的任務(wù)權(quán)重系數(shù)定義為a1、a2......a8,一般情況下,默認(rèn)取值為1,表明每一個(gè)階段的任務(wù)都很重要,每個(gè)Pair 的參與度平均值計(jì)算模型表示為,其中φt是調(diào)節(jié)Title 難易程度的因子,取值范圍為[1,1.5],由Title 的規(guī)模、任務(wù)量和技術(shù)研發(fā)目標(biāo)等共同決定,通常取自經(jīng)驗(yàn)值。
同一Title 的任務(wù)量計(jì)算是一個(gè)迭代過(guò)程。從兩個(gè)最基本的Pair 任務(wù)集成一個(gè)子整體開始,之后的每一次集成,只發(fā)生在子整體與一個(gè)Pair 的任務(wù)之間。這樣,就產(chǎn)生了子整體和每一個(gè)Pair 任務(wù)集成的額外工作量。工作量會(huì)隨著集成度的增加,難度系數(shù)將呈放大趨勢(shì)。將任務(wù)集成難度的定性系數(shù)表示為F(s),其中F(1)=1,F(xiàn)(2)=1,F(xiàn)(s)=F(s-1)+F(s-2)。任務(wù)量的難度值計(jì)算模型設(shè)計(jì)為f(s,F(xiàn)(s))=f(2,F(xiàn)(2))+φt×f(s-1,F(xiàn)(s-1))。由于每一次漸增集成過(guò)程都是兩兩集成,可以將f(2,F(xiàn)(2))作為難度函數(shù)的常量平衡值。其中s=|Pair|-1,表示集成的次數(shù),|Pair|是一個(gè)Title 所分成的Pair 個(gè)數(shù)。
結(jié)對(duì)模式的參與度計(jì)算方法是關(guān)于Title 任務(wù)集成的定性描述,得到的結(jié)果可以衡量參與Title 的任務(wù)難度,適合用于不同Title 的參與情況比較。
分別選擇一屆軟件工程和計(jì)算機(jī)科學(xué)與技術(shù)兩個(gè)專業(yè)15 名研究生的課程學(xué)習(xí)行為數(shù)據(jù)為樣本,運(yùn)用第2 部分的參與度計(jì)算方法,統(tǒng)計(jì)分析課堂學(xué)習(xí)、應(yīng)用實(shí)踐和專題研討中取得的成績(jī),實(shí)證檢驗(yàn)結(jié)對(duì)模式在個(gè)體學(xué)習(xí)積極性、任務(wù)難易度、考核成績(jī)等方面的應(yīng)用效果。
圖2 Pair模式的組建方法
為此將應(yīng)用實(shí)踐設(shè)定為3 個(gè)特定的訓(xùn)練Title:PT1.考勤系統(tǒng)、PT2.招聘系統(tǒng)和PT3.圖書系統(tǒng),專題研討Title 包括RT1.區(qū)塊鏈、RT2.電子商務(wù)和RT3.大數(shù)據(jù)。15 人中指定3 個(gè)Leader,由Leader 分別組建5 人參與小組,每組采用隨機(jī)方式選擇實(shí)用實(shí)踐和專題研討題目。
在Pair 規(guī)劃時(shí),Leader 自主與其他成員組成Pair,完成不同任務(wù)目標(biāo)的分析與設(shè)計(jì),5 人組的Pair 組建方式如圖2 所示。A、B、C 和D 是4 個(gè)成員,假設(shè)A 與C 的分工是類似的,B 和D的分工是類似的,L 是Leader,A 和B、C、D可以分別組成合作Pair,L 設(shè)定為任務(wù)可兼顧的角色,分別和A 和B、C、D 中的一個(gè)組成Pair,這樣每個(gè)組就可以形成4 個(gè)Pair。同樣的,A 和D、B、D 也可以分別組成合作Pair,也可以有4種組合方法。這里將圖中8 個(gè)單元右側(cè)的學(xué)習(xí)者定義為編程者,左邊的學(xué)習(xí)者為思考者。
表1 是應(yīng)用實(shí)踐和專題研討兩部分的相關(guān)指標(biāo)。Leader根據(jù)Title的目標(biāo)要求,規(guī)劃Title任務(wù)?;贚eader 的技術(shù)和能力特點(diǎn),根據(jù)圖2 的Pair組建方法,選擇合適的“4-Pair”單元。根據(jù)以往軟件研發(fā)經(jīng)驗(yàn),3 個(gè)訓(xùn)練Title 的研發(fā)規(guī)模近似,則Pair 的任務(wù)漸增集成工作量可以設(shè)定為同值。3 個(gè)研討Title 的主旨目標(biāo)是一樣的,但是Leader規(guī)劃的任務(wù)目標(biāo)和要求是不一樣的,執(zhí)行要求也有所不同,從系統(tǒng)的開發(fā)技術(shù)、支持跨平臺(tái)和支持移動(dòng)設(shè)備3 個(gè)方面考慮,所對(duì)應(yīng)的應(yīng)用實(shí)踐和專題研討的難易度也就不一樣,Title 的φt應(yīng)具有不同的權(quán)重值。從表中可以看出,兩個(gè)專業(yè)雖然選題一樣,但不同的Pair 組建方式不同、研發(fā)目標(biāo)不同、參與人不同、Leader 的編程和組織協(xié)調(diào)能力不同等,都會(huì)影響團(tuán)隊(duì)合作效果和任務(wù)執(zhí)行難度。
在軟件工程課程的授課過(guò)程中,由授課者不定期組織應(yīng)用實(shí)踐和專題研討的進(jìn)度交流會(huì),討論不同Title 前期工作存在的問(wèn)題。每組的Leader 主講,Pair 做任務(wù)的針對(duì)性陳述,所有參與人及時(shí)了解不同Title 的進(jìn)展?fàn)顟B(tài),總結(jié)參與過(guò)程存在的優(yōu)缺點(diǎn)。應(yīng)用實(shí)踐和專題研討的考核一般在學(xué)期末完成,通過(guò)組建評(píng)審小組,建立評(píng)審標(biāo)準(zhǔn)和衡量指標(biāo),統(tǒng)一進(jìn)行評(píng)分。最后由授課者和Leader共同參與計(jì)算每一個(gè)Pair 的參與度。
課程學(xué)習(xí)結(jié)束,產(chǎn)生了與課程相關(guān)的考試成績(jī)、系統(tǒng)研發(fā)文檔、系統(tǒng)代碼和專題報(bào)告等數(shù)據(jù),也是學(xué)習(xí)者學(xué)習(xí)行為的描述載體。課堂學(xué)習(xí)、應(yīng)用實(shí)踐和專題研討分別對(duì)應(yīng)不同的考核標(biāo)準(zhǔn),見表2。講授者主導(dǎo)的課堂學(xué)習(xí)側(cè)重基礎(chǔ)知識(shí)的考核,主要體現(xiàn)為期末筆試;應(yīng)用實(shí)踐從系統(tǒng)驗(yàn)收的角度設(shè)立考核標(biāo)準(zhǔn);專題研討從學(xué)術(shù)報(bào)告質(zhì)量角度進(jìn)行考量。
課程3 個(gè)考核方面的成績(jī)分布見表3。課程學(xué)習(xí)的成績(jī)均分布在70~100 之間,應(yīng)用實(shí)踐和專題研討的最高分均出現(xiàn)在兩個(gè)專業(yè)的第3 個(gè)Title,其實(shí)現(xiàn)難度是中等偏上。這兩個(gè)分組的共同點(diǎn)是Leader 的組織協(xié)調(diào)能力強(qiáng),有較好的編程能力,分組成員也取得了良好的課程學(xué)習(xí)成績(jī)??梢钥闯觯行У膱F(tuán)隊(duì)合作可以提高團(tuán)隊(duì)成員的課程學(xué)習(xí)效果,開發(fā)出一個(gè)應(yīng)用操作友好、功能相對(duì)完備的軟件強(qiáng)過(guò)面面俱到的高難度技術(shù)追求,符合軟件工程的基本理念。
表1 課程應(yīng)用實(shí)踐和專題研討相關(guān)指標(biāo)
表2 考核標(biāo)準(zhǔn) %
表3 課程考核成績(jī)分布
每個(gè)Title 分化為4 個(gè)Pair 的結(jié)對(duì)參與過(guò)程,其中ThreePair 和FourPair 的成員之一是Leader,即Leader 在一個(gè)組內(nèi)參與2 個(gè)Pair。訓(xùn)練Title 和專題Title 得分最高的分組,負(fù)責(zé)人所在的ThreePair 和FourPair 參與度都比較高,說(shuō)明Leader 的參與度會(huì)影響團(tuán)隊(duì)的凝聚力和執(zhí)行力。4 個(gè)Pair 都服務(wù)于Title 的整體目標(biāo),任務(wù)合作的相關(guān)性也將影響整體目標(biāo)。對(duì)“Pair—Pair”的任務(wù)相關(guān)性進(jìn)行統(tǒng)計(jì)分析得到表4,ThreePair與FourPair 的合作相關(guān)性在0.05 級(jí)別(雙尾)相關(guān)性顯著。這與Leader 的Pair 參與有直接關(guān)系。
對(duì)Pair 為基本單元的Title 實(shí)施進(jìn)行樣本的統(tǒng)計(jì)指標(biāo)描述,以驗(yàn)證不同分工的配對(duì)顯著性,檢驗(yàn)結(jié)果見表5,訓(xùn)練Title 和專題Title 的難度指標(biāo)檢驗(yàn)結(jié)果存在顯著性差異,這是兩個(gè)不同類別的主題,具有明顯的執(zhí)行差異,滿足樣本檢驗(yàn)的前提條件。
對(duì)同一Title 的Pair 配對(duì)顯著性進(jìn)行檢驗(yàn)。配對(duì)有OnePair-TwoPair 和ThreePair-FourPair,OnePair和TwoPair 再 分 別 與Leader 參 與 的ThreePair、FourPair 分別配對(duì),以此檢驗(yàn)非Leader 參與的Pair 與Leader 參與的Pair 之間是否存在配對(duì)差異。通過(guò)t 檢驗(yàn)得到Pair 的參與度配對(duì)不存在顯著性差異,說(shuō)明同一Title 的Pair 配對(duì)是易于融合的,也利于課堂學(xué)習(xí)、應(yīng)用實(shí)踐和專業(yè)研討3 個(gè)方面的成績(jī)考核。
表4 Pair模式的合作相關(guān)性
表5 Pair模式的配對(duì)樣本檢驗(yàn)
結(jié)對(duì)模式是軟件工程過(guò)程模型的一種重要實(shí)施范式,它在提高現(xiàn)代軟件研發(fā)團(tuán)隊(duì)協(xié)作和研發(fā)質(zhì)量方面具有推動(dòng)意義。本研究針對(duì)軟件工程課程多角度的學(xué)習(xí)手段和考核方式需求,在課程的應(yīng)用實(shí)踐和專題研討訓(xùn)練中,采用了“結(jié)對(duì)”合作模式。為此,抽取兩個(gè)專業(yè)的15 名學(xué)習(xí)者為研究樣本,形成同等規(guī)模的組單元,指定具有一定的編程或組織管理能力的學(xué)習(xí)者為分組Title 的Leader,由Leader 根 據(jù)Title 實(shí) 施目標(biāo)制定不同階段不同層次的各級(jí)參與任務(wù)。組成員兩兩組合,形成任務(wù)執(zhí)行的“Pair”單元。通過(guò)統(tǒng)計(jì)、分析和對(duì)比一個(gè)學(xué)期軟件工程課程的學(xué)習(xí)行為數(shù)據(jù),可以得出這樣的結(jié)論:結(jié)對(duì)模式可以增強(qiáng)分組的任務(wù)協(xié)作力和課程學(xué)習(xí)積極性,具有較好編程能力和組織協(xié)調(diào)能力的分組Leader,利于提高團(tuán)隊(duì)的應(yīng)用研發(fā)質(zhì)量和專題報(bào)告水平,提升任務(wù)執(zhí)行的規(guī)范性和全局性。因此,結(jié)對(duì)模式可以改進(jìn)具有團(tuán)作協(xié)作特性的課程教學(xué)效果,具有理論和實(shí)踐的借鑒意義和參考價(jià)值。