葉鵬 倪友聰
摘要:軟件設(shè)計(jì)是軟件工程課程教學(xué)的重難點(diǎn)內(nèi)容。然而目前在教學(xué)實(shí)踐中,由于缺乏相關(guān)教學(xué)資源使學(xué)生難以快速理解和掌握軟件設(shè)計(jì)的理論和技術(shù)。針對(duì)這一問(wèn)題,本文提出一種Android快速開(kāi)發(fā)框架AF4Ad,在此基礎(chǔ)上將AF4Ad框架應(yīng)用到實(shí)踐教學(xué)案例,并通過(guò)對(duì)比分析使用和不使用AF4Ad框架兩種情形下對(duì)于學(xué)生的軟件設(shè)計(jì)的影響,進(jìn)而說(shuō)明AF4Ad框架的有效性。
關(guān)鍵詞:軟件工程;軟件框架;實(shí)踐教學(xué)
中圖分類(lèi)號(hào):G642.41 ? ? 文獻(xiàn)標(biāo)志碼:A ? ? 文章編號(hào):1674-9324(2015)43-0242-02
一、引言
在本科階段的軟件工程課程教學(xué)中,軟件設(shè)計(jì)能力被作為學(xué)生的重點(diǎn)需要培養(yǎng)的能力。然而,對(duì)于軟件設(shè)計(jì)能力培養(yǎng)的難點(diǎn)在于:在軟件設(shè)計(jì)實(shí)踐中不但要理解信息隱蔽、模塊化等抽象概念,而且還要掌握高內(nèi)聚、低耦合等設(shè)計(jì)原則。因而,軟件設(shè)計(jì)一直被認(rèn)為是軟件工程課程教學(xué)中亟待解決的難點(diǎn)。由于缺乏與軟件設(shè)計(jì)相關(guān)的教學(xué)資源,使得學(xué)生往往難以在有限教學(xué)課時(shí)內(nèi)理解和掌握軟件設(shè)計(jì)的抽象理論和技術(shù),影響了軟件工程課程的教學(xué)效果。近幾年國(guó)內(nèi)外在軟件工程教學(xué)研究工作中,主要是通過(guò)引入CDIO[1]思想改進(jìn)傳統(tǒng)的軟件工程課程教學(xué)[2-5],特別是強(qiáng)調(diào)了以項(xiàng)目驅(qū)動(dòng)的方式培養(yǎng)和提高學(xué)生的軟件開(kāi)發(fā)的實(shí)踐能力[6-8]。這些研究都針對(duì)軟件工程教學(xué)改革進(jìn)行了有益的探索,但仍然缺乏有效的教學(xué)資源來(lái)幫助學(xué)生快速理解和掌握軟件設(shè)計(jì)的理論和技術(shù),并切實(shí)培養(yǎng)和提高他們軟件開(kāi)發(fā)的實(shí)踐能力。
二、軟件框架AF4Ad簡(jiǎn)介
軟件框架AF4Ad是重要的教學(xué)資源。它幫助學(xué)生理解抽象的軟件設(shè)計(jì)理論知識(shí),同時(shí)也為他們運(yùn)用這些知識(shí)進(jìn)行軟件設(shè)計(jì)實(shí)踐起到指導(dǎo)作用?;贏ndroid SDK[9],在AF4Ad框架中設(shè)計(jì)并實(shí)現(xiàn)了一組可重用的軟件構(gòu)件。AF4Ad框架本身不僅可以幫助學(xué)生更好理解軟件體系結(jié)構(gòu)風(fēng)格、設(shè)計(jì)模型和軟件框架等知識(shí),而且還能使學(xué)生利用它提供的可重用構(gòu)件高效地進(jìn)行Android移到應(yīng)用軟件的開(kāi)發(fā)。AF4Ad框架被分為用戶(hù)界面層(UI layer),領(lǐng)域?qū)樱―omain layer)和基礎(chǔ)層(Foundation Layer),如圖1所示。UI層實(shí)現(xiàn)圖形用戶(hù)界面,提供應(yīng)用程序與用戶(hù)交互的功能;Domain層用于封裝業(yè)務(wù)實(shí)體和業(yè)務(wù)服務(wù),并向UI層提供業(yè)務(wù)功能接口;Foundation層則用于封裝一組通用服務(wù)(網(wǎng)絡(luò)通信、數(shù)據(jù)持久化等),并向Domain層提供統(tǒng)一的接口。
三、AF4Ad框架在軟件設(shè)計(jì)實(shí)踐教學(xué)案例中運(yùn)用
為了說(shuō)明AF4Ad框架的有效性,我們開(kāi)展了對(duì)照實(shí)驗(yàn)研究。首先選取Android移動(dòng)應(yīng)用軟件中最為常見(jiàn)的用戶(hù)登錄模塊為實(shí)驗(yàn)案例,然后隨機(jī)挑選10名學(xué)生,并將它們分成兩個(gè)組,一個(gè)是實(shí)驗(yàn)組,另一個(gè)是對(duì)照組。其中實(shí)驗(yàn)組采用我們前期提出的設(shè)計(jì)方法[10],使用AF4Ad框架設(shè)計(jì)用戶(hù)登錄模塊,而對(duì)照組不使用本文提出的AF4Ad框架完成設(shè)計(jì)工作。最后,通過(guò)使用CK套件[11]分析兩個(gè)組的設(shè)計(jì)方案的內(nèi)聚性和耦合性。
實(shí)驗(yàn)結(jié)果如表1所示。其中CBO用于度量對(duì)象之間的耦合性。CBO值越小,表明該類(lèi)獨(dú)立性越強(qiáng),修改它時(shí)所涉及的類(lèi)也越少,維護(hù)的代價(jià)越小。LCOM用于度量對(duì)象的內(nèi)聚性。LCOM值記錄類(lèi)中訪(fǎng)問(wèn)相同成員屬性的成員方法數(shù)量,LCOM可表明類(lèi)的各成員方法之間的獨(dú)立性。LCOM越大,類(lèi)的封裝性越差,內(nèi)聚度就越小;而LCOM越小,類(lèi)的封裝性越好,內(nèi)聚度就越大。圖2反映了所有類(lèi)的平均CBO值和LCOM值。
實(shí)驗(yàn)結(jié)果表明,實(shí)驗(yàn)組設(shè)計(jì)方案的內(nèi)聚性平均提高了50%,耦合性平均降低了60%。實(shí)證了AF4Ad框架的有效性。
四、結(jié)語(yǔ)
AF4Ad框架為軟件設(shè)計(jì)實(shí)踐教學(xué)提供了一種有效的教學(xué)資源。實(shí)驗(yàn)證明,AF4Ad框架為學(xué)生在軟件設(shè)計(jì)時(shí)提供了有效支持,幫助他們能更好地理解軟件設(shè)計(jì)的抽象概念,使他們更容易進(jìn)行軟件設(shè)計(jì)實(shí)踐,進(jìn)而獲得更好的設(shè)計(jì)方案。下一步,將繼續(xù)完善該框架的內(nèi)容,使其能更好支持軟件設(shè)計(jì)的實(shí)踐教學(xué)過(guò)程。
參考文獻(xiàn):
[1]Crawley E F,Malmqvist J,Lucas W A,et al. The CDIO Syllabus v2. 0. An Updated Statement of Goals for Engineering Education[C]. Proceedings of 7th International CDIO Conference,Copenhagen,Denmark,2011.
[2]韓智,張振虹,李興娟.基于CDIO理念的軟件工程課程教學(xué)改革[J].計(jì)算機(jī)教育,2010,(11):56-59.
[3]張德海,柳青,黃光能.基于CDIO的軟件工程教學(xué)質(zhì)量保障體系構(gòu)建探索與實(shí)踐[J].計(jì)算機(jī)工程與科學(xué),2011,33(A1):182-185.
[4]梁瑞仕,曾荔枝,楊亮.基于CDIO理念的本科《軟件工程》教學(xué)改革研究[J].現(xiàn)代計(jì)算機(jī):上半月版,2011,(8):25-26.
[5]蔡建平,黃志清.CDIO工程教育理念在軟件開(kāi)發(fā)綜合能力培養(yǎng)中的實(shí)踐[J].教育技術(shù)期刊,2011,2(5):1-7.
[6]Chen C Y,Chong P P. Software engineering education:A study on conducting collaborative senior project development[J]. Journal of Systems and Software,2011,84(3):479-491.
[7]徐玲,張小洪,文俊浩,等.軟件工程專(zhuān)業(yè)實(shí)踐教學(xué)體系的構(gòu)建[J].計(jì)算機(jī)教育,2010,(11):137-1149.
[8]Ragan E D,F(xiàn)rezza S,Cannell J. Product-based learning in software engineering education[C]. Frontiers in Education Conference,2009. FIE'09. 39th IEEE,2009. IEEE,2009:1-6.
[9]余世龍.Google Android SDK開(kāi)發(fā)范例大全[J].2010.
[10]葉鵬,倪友聰.基于軟件框架的軟件設(shè)計(jì)實(shí)踐教學(xué)方法研究[J].計(jì)算機(jī)教育,2014,(2):28.
[11]Chidamber S R,Kemerer C F. A metrics suite for object oriented design[J]. Software Engineering,IEEE Transactions on,1994,20(6):476-493.