网站首页
教育杂志
CSSCI期刊 北大期刊 CSCD期刊 统计源期刊 知网收录期刊 维普收录期刊 万方收录期刊 SCI期刊(美)
医学杂志
CSSCI期刊 北大期刊 CSCD期刊 统计源期刊 知网收录期刊 维普收录期刊 万方收录期刊 SCI期刊(美)
经济杂志
CSSCI期刊 北大期刊 CSCD期刊 统计源期刊 知网收录期刊 维普收录期刊 万方收录期刊 SCI期刊(美)
金融杂志
CSSCI期刊 北大期刊 CSCD期刊 统计源期刊 知网收录期刊 维普收录期刊 万方收录期刊 SCI期刊(美)
管理杂志
CSSCI期刊 北大期刊 CSCD期刊 统计源期刊 知网收录期刊 维普收录期刊 万方收录期刊 SCI期刊(美)
科技杂志
CSSCI期刊 北大期刊 CSCD期刊 统计源期刊 知网收录期刊 维普收录期刊 万方收录期刊 SCI期刊(美)
工业杂志
CSSCI期刊 北大期刊 CSCD期刊 统计源期刊 知网收录期刊 维普收录期刊 万方收录期刊 SCI期刊(美)
SCI杂志
中科院1区 中科院2区 中科院3区 中科院4区
全部期刊
公務(wù)員期刊網(wǎng) 論文中心 正文

軟件工程創(chuàng)新性實驗教學(xué)課程實踐

前言:想要寫出一篇引人入勝的文章?我們特意為您整理了軟件工程創(chuàng)新性實驗教學(xué)課程實踐范文,希望能給你帶來靈感和參考,敬請閱讀。

軟件工程創(chuàng)新性實驗教學(xué)課程實踐

摘要:傳統(tǒng)的軟件開發(fā)方法以及對應(yīng)的軟件工程課程實驗設(shè)計通常缺乏一致性、系統(tǒng)性,不利于提高學(xué)生軟件開發(fā)的綜合實踐能力。針對上述問題,開設(shè)實施了軟件工程創(chuàng)新實驗教學(xué)項目“基于AADL模型驅(qū)動的軟件開發(fā)方法”,使得軟件開發(fā)過程的各個階段集成于統(tǒng)一、一致的建??蚣苤小M瑫r,輔以“做中學(xué)”與項目驅(qū)動相結(jié)合的教學(xué)模式,讓學(xué)生從實踐中體驗一個完整的軟件開發(fā)過程,提高學(xué)生的自主學(xué)習(xí)探索、軟件開發(fā)綜合實踐能力,為軟件工程實踐教學(xué)的開展提供實用的可選方案。

關(guān)鍵詞:軟件工程;創(chuàng)新性實驗教學(xué);AADL;模型驅(qū)動;項目

驅(qū)動傳統(tǒng)軟件工程課程教學(xué)主要以經(jīng)典的結(jié)構(gòu)化方法學(xué)和面向?qū)ο蠓椒▽W(xué)為主線,講授兩種方法學(xué)在軟件生命周期開發(fā)各個階段的原理、方法及工具的應(yīng)用[1]。在課程實驗階段,結(jié)構(gòu)化方法學(xué)通常使用數(shù)據(jù)流圖、軟件架構(gòu)圖、流程圖[2]等不同的描述方式來分別刻畫軟件從需求分析、概要設(shè)計到詳細(xì)設(shè)計的開發(fā)模型,對于軟件開發(fā)初級者來說,同一軟件在開發(fā)過程中采用不同描述手段,在兩個不同階段之間,都需要進行手工的模型轉(zhuǎn)換(例如從數(shù)據(jù)流圖到軟件架構(gòu)圖的轉(zhuǎn)換),容易引入錯誤,很難保證所建模軟件系統(tǒng)的輸入輸出一致性。而面向?qū)ο蟮能浖_發(fā)方法學(xué)盡管在軟件開發(fā)生命周期的各個階段主要采用統(tǒng)一的UML語言來建模軟件,但是由于仍然采用了多種視圖模型[3](如用例圖、類圖、順序圖等)來描述同一軟件不同階段的開發(fā),同樣容易導(dǎo)致軟件開發(fā)的不一致性?;谏鲜鰡栴},軟件工程創(chuàng)新性實驗教學(xué)課程引進了一種有別于傳統(tǒng)軟件方法學(xué)的新型軟件開發(fā)方法,即基于AADL(ArchitectureAnalysisandDesignLanguage)[4]模型驅(qū)動的軟件開發(fā)方法?;谀P万?qū)動的軟件開發(fā)方法[3]主要以高度抽象的模型為核心,將軟件開發(fā)焦點聚焦于需求功能的獲取、軟件體系架構(gòu)及業(yè)務(wù)邏輯的設(shè)計,而底層與平臺實現(xiàn)相關(guān)的代碼框架則可以由相應(yīng)的軟件工具自動生成,極大地提高了軟件開發(fā)效率。基于UML的軟件開發(fā)方法也屬于模型驅(qū)動的開發(fā)方法之一。為了避免UML多種視圖模型可能導(dǎo)致的軟件開發(fā)不一致性,本課程結(jié)合當(dāng)前高可信系統(tǒng)的開發(fā)研究熱點,選取了美國汽車工程師協(xié)會提出的體系結(jié)構(gòu)分析與設(shè)計語言AADL作為模型驅(qū)動開發(fā)方法的建模語言。該語言支持自頂向下、粒度逐級細(xì)化的基于組件的開發(fā)方法,將系統(tǒng)、子系統(tǒng)、進程、線程、子程序等常用的計算機運行時組件集成于統(tǒng)一的描述框架中,能夠較好地保證軟件開發(fā)的一致性。另外,該語言除了提供圖形化的表示方式以外,還提供具有精確語義的文本描述以及支持第三方插件的通用XML描述方式,因此便于在軟件設(shè)計早期對其表示的軟件體系架構(gòu)模型進行分析校驗,盡早地檢測出系統(tǒng)設(shè)計缺陷,有效地減少軟件故障檢測成本。本課程在引入上述方法的同時,還結(jié)合“做中學(xué)”[5]與項目驅(qū)動相結(jié)合的教學(xué)模式,將基于AADL模型驅(qū)動的開發(fā)方法應(yīng)用于實踐項目的開發(fā)過程中,從而使需求分析、概要設(shè)計、詳細(xì)設(shè)計、代碼生成等開發(fā)過程集成于統(tǒng)一的開發(fā)框架中,讓軟件開發(fā)者對于軟件開發(fā)各階段的系統(tǒng)一致性及軟件回溯確認(rèn)驗證有一個良好的開發(fā)實踐,聚焦于業(yè)務(wù)需求、架構(gòu)設(shè)計,提高軟件開發(fā)綜合實踐能力。

1基于AADL模型驅(qū)動的軟件開發(fā)方法的應(yīng)用

本課程選取了AADL語言作為模型驅(qū)動的建模語言,能將軟件工程開發(fā)各階段統(tǒng)一于視圖一致的框架中,能夠很好地順應(yīng)經(jīng)典的瀑布模型的開發(fā)過程。在軟件開發(fā)的不同階段,仍然采用以AADL組件為基礎(chǔ)的統(tǒng)一視圖,下層視圖模型在上層的視圖模型的基礎(chǔ)上,提供組件粒度更細(xì)的視圖。例如,AADL系統(tǒng)及細(xì)化的子系統(tǒng)組件模型對應(yīng)于需求分析階段的業(yè)務(wù)需求建模;AADL進程組件模型在系統(tǒng)需求模型的輸入輸出接口限定下進一步推導(dǎo)出體系結(jié)構(gòu)模型,對應(yīng)于軟件工程的概要設(shè)計階段;AADL線程組件及子程序模型作為進程模型內(nèi)部的執(zhí)行體,刻畫軟件的動態(tài)行為,對應(yīng)于軟件工程的詳細(xì)設(shè)計階段。由于該方法遵循自頂向下、逐級求精的方法學(xué),所以每個階段獲取的AADL模型都是基于上一階段的模型框架下細(xì)化得到,便于復(fù)審驗證分析。若發(fā)現(xiàn)某個開發(fā)階段的模型缺陷,可以回溯至上一階段進行重新分析與設(shè)計。對于最終確認(rèn)的詳細(xì)設(shè)計模型,學(xué)生可以進一步手動完成整個編碼工作,也可以選取相應(yīng)的代碼生成工具生成代碼框架,再補充完整業(yè)務(wù)代碼。該方法在需求分析、設(shè)計階段通過對模型進行早期分析驗證來部分替代傳統(tǒng)的代碼測試方法,以減小代碼測試晚期檢測到的錯誤代價。

2以“做中學(xué)”模式提高學(xué)生探究式學(xué)習(xí)能力

2.1教學(xué)設(shè)計

課程實驗采取“做中學(xué)”教學(xué)模式,以促進學(xué)生自主學(xué)習(xí),探索未知科學(xué)的能力。參與課程的學(xué)生包括計算機專業(yè)以及來自于地理信息科學(xué)、機械電子工程、信息科學(xué)、信息管理等非專業(yè)的學(xué)生,基礎(chǔ)各不相同,且大部分同學(xué)從未接觸過AADL語言建模項目,所以配套編寫了詳細(xì)的實驗指導(dǎo)書,提前分發(fā)給學(xué)生進行實驗準(zhǔn)備與預(yù)習(xí)。給學(xué)生提供豐富的國內(nèi)外文獻參考資料,學(xué)生可以在遇到問題時進行查閱解惑,并要求學(xué)生將問題及解決方案寫入報告。要求學(xué)生通過系列調(diào)研后,自主選擇一種AADL語言建模工具,在實踐中快速學(xué)習(xí)一門語言的使用與相應(yīng)的建模方法。課程同時也給予學(xué)生自由的探索空間,對于問題的解決給予開放式的策略,不作過多限制。例如在AADL建模時,學(xué)生可以選擇AADL文本、XML、圖形表示之一,但要求整個軟件建模階段采用前后一致的表示方式,以便于模型的分析與驗證。對于模型分析驗證的方法可以基于不同的表示形式,采取不同的分析手段。

2.2教學(xué)效果

學(xué)生通過自主學(xué)習(xí)實驗指導(dǎo)書以及查閱文獻資料,能夠選擇當(dāng)前流行的AADL語言建模工具(如OSATE等)輔助軟件系統(tǒng)的開發(fā),并能通過工具自帶示例快速的學(xué)習(xí)AADL語法,體驗該語言的建模特性。例如,有的學(xué)生選擇采用AADL文本的建模方法,并利用現(xiàn)有的詞法、語法分析工具(如LEX,YACC)對AADL文本進行分析驗證;有的學(xué)生則以AADL文本相對應(yīng)的XML表示為基礎(chǔ),采用XML解析技術(shù)(如DOM、SAX)自己實現(xiàn)模型解析與分析的邏輯。有的學(xué)生采用圖形表示方式進行建模,直觀明了,但發(fā)現(xiàn)圖形表示的模型不便于之后的模型檢測,因此利用相應(yīng)工具將圖形轉(zhuǎn)換為文本方式,進行進一步處理。通過做中學(xué)的模式,學(xué)生通過實踐,發(fā)現(xiàn)具體問題,激發(fā)學(xué)生的求知欲與好奇心,再輔以詳實的實驗指導(dǎo)書和豐富的參考資料,提高學(xué)生自主探究解決問題的能力。

3以項目驅(qū)動提高學(xué)生綜合實踐能力

3.1教學(xué)設(shè)計

通過項目制的方式,讓學(xué)生組成2~3人的團隊實踐一個完整的基于模型驅(qū)動的軟件開發(fā)過程,提高學(xué)生的綜合知識應(yīng)用能力、溝通合作能力、軟件復(fù)審能力、文檔撰寫能力等多項綜合實踐能力。首先,學(xué)生需要綜合軟件工程、操作系統(tǒng)、計算機組成原理等多門課程的知識來理解AADL各組件的建模語義,并將其準(zhǔn)確地應(yīng)用于項目開發(fā)各階段的建模。其次,每組學(xué)生都要負(fù)責(zé)該組項目開發(fā)的一個或多個階段的建模與分析任務(wù),負(fù)責(zé)每個階段建模的學(xué)生還需要對其建立的模型采用適當(dāng)?shù)姆绞竭M行分析驗證,如果發(fā)現(xiàn)問題,可回溯至上一階段的模型,與其負(fù)責(zé)的學(xué)生進行溝通確認(rèn),共同解決問題。同時,在每個階段需要輸出規(guī)范的文檔,以備復(fù)審,且作為下一階段開發(fā)的依據(jù)。

3.2教學(xué)效果

多數(shù)團隊項目成員能夠嚴(yán)格按照軟件開發(fā)瀑布模型各階段進行任務(wù)分工,并利用AADL語言固有的分層組件語義進行自頂向下逐級細(xì)化的開發(fā)。例如,負(fù)責(zé)需求建模的成員使用AADL語言精確地刻畫出系統(tǒng)及子系統(tǒng)模型的輸入輸出接口,并給出相應(yīng)的需求分析文檔。該團隊負(fù)責(zé)概要設(shè)計的成員依據(jù)該需求分析文檔,繼續(xù)在由AADL系統(tǒng)組件刻畫的需求模型的接口之下進一步細(xì)化推導(dǎo)出體系架構(gòu)模型,并輸出概要設(shè)計文檔。負(fù)責(zé)詳細(xì)設(shè)計的成員依據(jù)概要設(shè)計文檔,在由AADL進程組件刻畫的體系架構(gòu)模型的接口之下進一步刻畫系統(tǒng)的動態(tài)行為模型,以保持系統(tǒng)的一致性和可回溯性。由于整個軟件開發(fā)過程的一致性,當(dāng)發(fā)現(xiàn)問題時,團隊成員能夠依據(jù)該階段的模型和撰寫的文檔快速向上回溯,通過進一步溝通探討,及時解決問題。

4結(jié)語

該項目作為華中農(nóng)業(yè)大學(xué)本科創(chuàng)新性實驗項目之一,來自于計算機科學(xué)與技術(shù)等六個不同專業(yè)的學(xué)生參加了總共30個學(xué)時的課程實驗。學(xué)生自由組成了多個小組體驗了基于AADL模型驅(qū)動的軟件開發(fā)方法,通過“做中學(xué)”的方式,從實際項目中體驗了軟件工程從需求分析到詳細(xì)設(shè)計的自頂向下逐級細(xì)化的設(shè)計思想,提高了學(xué)生的自主學(xué)習(xí)探索能力以及軟件開發(fā)綜合實踐能力,增加了學(xué)生探究科研、開發(fā)可信軟件的興趣。該項目為軟件工程創(chuàng)新性教學(xué)改革提供了一種實用可行的參考方案。

參考文獻

[1]竇萬峰.軟件工程方法與實踐(第3版)[M].北京:機械工業(yè)出版社,2016.

[2]竇萬峰.軟件工程實驗教程(第3版)[M].北京:機械工業(yè)出版社,2016.

[3]杜德慧.UML建模分析與設(shè)計:基于MDA的軟件開發(fā)[M].北京:機械工業(yè)出版社,2018.

[4]楊志斌,皮磊,胡凱,等.復(fù)雜嵌入式實時系統(tǒng)體系結(jié)構(gòu)設(shè)計與分析語言:AADL[J].軟件學(xué)報,2010,21(5):899-915.

[5]鄒欣.構(gòu)建之法:現(xiàn)代軟件工程(第三版)[M].北京:人民郵電出版社,2017.

作者:王穎 陳仲民 王建勇 單位:華中農(nóng)業(yè)大學(xué)信息學(xué)院

免责声明

本站为第三方开放式学习交流平台,所有内容均为用户上传,仅供参考,不代表本站立场。若内容不实请联系在线客服删除,服务时间:8:00~21:00。

AI写作,高效原创

在线指导,快速准确,满意为止

立即体验
相關(guān)熱門標(biāo)簽
文秘服务 AI帮写作 润色服务 论文发表