• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      軟件體系結(jié)構(gòu)課程教學(xué)改革規(guī)劃與實(shí)施

      2015-12-29 00:00:00李暾文艷軍劉萬偉董威羅宇
      計(jì)算機(jī)教育 2015年6期

      摘要:針對當(dāng)前軟件體系結(jié)構(gòu)課程教學(xué)的挑戰(zhàn),提出基于案例式教學(xué)、翻轉(zhuǎn)課堂和開源軟件的課程教學(xué)改革思路,闡述在軟件工程碩士中進(jìn)行課程教改的實(shí)施過程并說明效果。

      關(guān)鍵詞:軟件體系結(jié)構(gòu);翻轉(zhuǎn)課堂;開源軟件

      引言

      隨著軟件規(guī)模的不斷擴(kuò)大,軟件體系結(jié)構(gòu)理論產(chǎn)生。軟件體系結(jié)構(gòu)的設(shè)計(jì)在中大型軟件項(xiàng)目中更易于顯示它的意義,軟件體系結(jié)構(gòu)課程因此也成為軟件工程學(xué)科中的一門重要課程。軟件體系結(jié)構(gòu)的主題是針對復(fù)雜軟件系統(tǒng)高層結(jié)構(gòu)、組織單元之間相關(guān)關(guān)系的描述,以及圍繞這種描述開展的各項(xiàng)活動,如設(shè)計(jì)、評估、管理、測試等。目前,工業(yè)界對軟件架構(gòu)師的要求和需求越來越高,對軟件體系結(jié)構(gòu)課程教學(xué)也提出新的要求——真實(shí),即在課程教學(xué)中讓學(xué)生用真實(shí)軟件體驗(yàn)架構(gòu)師的工作。

      1 課程特點(diǎn)和面臨的問題

      軟件體系結(jié)構(gòu)課程有其自身的特點(diǎn),具體表現(xiàn)為以下幾方面。

      (1)知識面涵蓋極為廣泛。軟件體系結(jié)構(gòu)各階段的活動大量涉及網(wǎng)絡(luò)、數(shù)據(jù)庫、操作系統(tǒng)、軟件工程等課程的知識,是對這些知識的綜合考慮和運(yùn)用,對學(xué)生的背景知識要求非常高。

      (2)課程知識抽象程度高。軟件體系結(jié)構(gòu)設(shè)計(jì)著重于對軟件宏觀層面的探索,這種探索與學(xué)生非常熟悉的具體編碼距離非常遠(yuǎn),如果主要依賴于課堂講授,學(xué)生難于理解和掌握。

      (3)理論與實(shí)踐的平衡。理論知識是能適用于全體軟件體系結(jié)構(gòu)設(shè)計(jì)的一般知識,而實(shí)踐要求在盡可能真實(shí)的系統(tǒng)上進(jìn)行真正的設(shè)計(jì)折中,以便將一般化的知識與具體軟件項(xiàng)目相結(jié)合,獲得更好的學(xué)習(xí)效果。

      國防科技大學(xué)軟件體系結(jié)構(gòu)課程面向軟件工程碩士開設(shè),學(xué)生的特點(diǎn)是專業(yè)背景知識和工作經(jīng)歷參差不齊,學(xué)生主要是來自于計(jì)算機(jī)專業(yè)和軟件工程專業(yè)的本科生,有的參與過商業(yè)軟件開發(fā),也有的只參與過畢業(yè)設(shè)計(jì),但普遍基本缺乏完整項(xiàng)目的體驗(yàn)。

      我們在近幾年的教學(xué)中發(fā)現(xiàn),將全部的課堂時間用于講授軟件體系結(jié)構(gòu)的抽象理論會使學(xué)生感到枯燥乏味,容易將這門課變成一門需要背誦大量原則而后又無法具體應(yīng)用的課,難以體現(xiàn)和理解軟件體系結(jié)構(gòu)在軟件開發(fā)中的重要地位。此外,在考察了大部分教材后,我們發(fā)現(xiàn)教材上的案例規(guī)模較小,只適合于教學(xué)而無法讓學(xué)生進(jìn)行實(shí)踐。最后,課時有限,只有36學(xué)時,但跨度較長,有12周,如何利用好課時和較長的授課周期,安排好課堂和實(shí)踐內(nèi)容,一直是困擾我們的主要問題之一。針對課程特點(diǎn)和存在的問題,我們提出從課堂授課內(nèi)容、授課形式和實(shí)踐環(huán)節(jié)對課程教學(xué)進(jìn)行改進(jìn),具體來說,授課內(nèi)容上以學(xué)生動手后進(jìn)行總結(jié)為主、授課形式上以案例式教學(xué)為主、實(shí)踐環(huán)節(jié)上以開源軟件的設(shè)計(jì)與分析為主,三者結(jié)合,盡可能地在較為真實(shí)的環(huán)境下,使學(xué)生體驗(yàn)并運(yùn)用軟件體系結(jié)構(gòu)理論知識于具體的項(xiàng)目中,提升教學(xué)效果。

      2 教學(xué)改革方案和實(shí)施

      國防科技大學(xué)軟件體系結(jié)構(gòu)課是軟件工程碩士的專業(yè)必修課,共36學(xué)時,每周一次課,每次3學(xué)時,共持續(xù)12周。教學(xué)內(nèi)容安排如下:①8學(xué)時:軟件體系結(jié)構(gòu)基礎(chǔ)知識;②10學(xué)時:3個教材案例;③12學(xué)時:外聘專家授課;④4學(xué)時:學(xué)生報(bào)告開源項(xiàng)目實(shí)踐結(jié)果;⑤2學(xué)時:考試。

      上述內(nèi)容安排按順序開展,實(shí)驗(yàn)環(huán)節(jié)與課程教學(xué)同步進(jìn)行。在教材案例實(shí)驗(yàn)教學(xué)中,我們采用先學(xué)生設(shè)計(jì)再教師講授的方式,開源項(xiàng)目的實(shí)驗(yàn)與外聘專家授課互不影響。

      2.1 案例式教學(xué)與翻轉(zhuǎn)課堂的結(jié)合

      在課程教學(xué)過程中,教師可首先講授軟件體系結(jié)構(gòu)的基礎(chǔ)知識,包括定義、視圖、軟件質(zhì)量屬性、軟件體系結(jié)構(gòu)設(shè)計(jì)方法與流程,該階段的理論授課必不可少,是后續(xù)課程和實(shí)踐的基礎(chǔ)。在該階段不應(yīng)再引入更多的理論知識,原因是介紹的這些知識已足夠?qū)W生開始初步的設(shè)計(jì)實(shí)踐活動,而更多的知識如軟件體系結(jié)構(gòu)模式等內(nèi)容的引入將增加學(xué)生的負(fù)擔(dān),卻對實(shí)踐環(huán)節(jié)沒有幫助。

      在介紹軟件體系結(jié)構(gòu)設(shè)計(jì)方法和流程時,教師可選用Client/Server體系結(jié)構(gòu)風(fēng)格實(shí)現(xiàn)的ATM系統(tǒng) 為案例,在課堂上詳細(xì)介紹如何從軟件需求分析開始,得到最后體系結(jié)構(gòu)設(shè)計(jì)的過程、方法,同時穿插大量的隨堂練習(xí)。例如,針對ATM系統(tǒng)的全部用例,選取一個用例作為課堂示范,在詳細(xì)介紹完針對該用例的靜態(tài)模型、動態(tài)模型、控制狀態(tài)機(jī)的設(shè)計(jì)后,要求學(xué)生在課堂上及時完成ATM系統(tǒng)其他用例的設(shè)計(jì),為后續(xù)的實(shí)踐環(huán)節(jié)打好基礎(chǔ)。

      在后續(xù)的授課中,教師可以案例式教學(xué)為主,形式上采用翻轉(zhuǎn)課堂的形式。該階段授課的案例以各種教材收集的案例為主,目的是循序漸進(jìn),使學(xué)生能逐步適應(yīng)軟件體系結(jié)構(gòu)的設(shè)計(jì)任務(wù)?我們選取的案例有面向服務(wù)體系結(jié)構(gòu)風(fēng)格的在線銷售系統(tǒng)、基于構(gòu)件軟件體系結(jié)構(gòu)模式的緊急事件監(jiān)控系統(tǒng)、實(shí)時軟件體系結(jié)構(gòu)的自動行車系統(tǒng)等。在該教學(xué)環(huán)節(jié),針對每一個案例,教師可采用以下教學(xué)模式。

      (1)課堂上不會首先介紹和案例相關(guān)的理論知識,而是依序?qū)⒚總€案例以作業(yè)的形式先布置給學(xué)生,每個學(xué)生有一周的時間分析該案例并完成作業(yè)要求的設(shè)計(jì)任務(wù),作業(yè)涉及的新知識需要學(xué)生自己查資料學(xué)習(xí)。

      (2)在下一次課之前要求學(xué)生必須交作業(yè),在下一次課上,圍繞上次布置的案例進(jìn)行詳細(xì)講解并以參考設(shè)計(jì)的形式介紹給學(xué)生。

      (3)在該案例的每個設(shè)計(jì)階段,指出學(xué)生作業(yè)中的普遍問題并引導(dǎo)學(xué)生將其作業(yè)與參考設(shè)計(jì)進(jìn)行對比,找出不足之處。

      (4)在案例講授過程中,逐漸引入其所采用軟件體系結(jié)構(gòu)模式的知識。

      這種教學(xué)模式將進(jìn)行3輪,分別將選取的案例講授并實(shí)踐完畢。經(jīng)過該教學(xué)環(huán)節(jié),學(xué)生首先能在課程的早期就進(jìn)入較大項(xiàng)目的實(shí)踐,而不需要等到所有的理論知識都介紹完;其次,對每個案例的每個設(shè)計(jì)階段和結(jié)果,學(xué)生都已在作業(yè)中進(jìn)行過深入的思考和實(shí)踐,因此能在課堂上馬上抓住設(shè)計(jì)的重點(diǎn)并發(fā)現(xiàn)自己設(shè)計(jì)的不足之處;最后,教師結(jié)合具體案例介紹各種軟件體系結(jié)構(gòu)模式將抽象知識具體化,使學(xué)生通過對幾個體系結(jié)構(gòu)風(fēng)格的學(xué)習(xí)進(jìn)一步(自學(xué))掌握更多的風(fēng)格,理解體系結(jié)構(gòu)風(fēng)格的意義。

      2.2 開源軟件的作用

      在學(xué)生掌握并實(shí)踐了軟件體系結(jié)構(gòu)設(shè)計(jì)方法和過程,并且見識并理解了一些常用的軟件體系結(jié)構(gòu)模式后,教師就可以引導(dǎo)學(xué)生用真實(shí)的大型軟件進(jìn)行實(shí)踐。我們選擇開源軟件作為課程實(shí)踐的主要項(xiàng)目,首先將學(xué)生分成3~4人一組,要求每組從文獻(xiàn)中選擇一種軟件作為實(shí)踐對象,這些開源項(xiàng)目主要依托SourceForge進(jìn)行開發(fā),也允許學(xué)生從GitHub選擇項(xiàng)目進(jìn)行實(shí)踐,這些項(xiàng)目都是非常經(jīng)典的開源項(xiàng)目,共同特點(diǎn)是規(guī)模大、用戶多、文檔多,便于學(xué)生開展學(xué)習(xí)和分析。在具體實(shí)踐時,學(xué)生將經(jīng)歷以下幾個階段。

      (1)了解項(xiàng)目。對所選擇的項(xiàng)目,首先閱讀文獻(xiàn)對應(yīng)的章節(jié),了解該開源軟件的需求、應(yīng)用背景、體系結(jié)構(gòu)概貌等知識。

      (2)識別利益攸關(guān)者(stakeholder)。仔細(xì)分析所選的項(xiàng)目,假想作為架構(gòu)師開發(fā)這樣的項(xiàng)日,該項(xiàng)目涉及的利益攸關(guān)者會有哪些、各自的利益訴求是什么等。

      (3)標(biāo)識質(zhì)量屬性。根據(jù)已學(xué)的質(zhì)量屬性及其度量,分析所選項(xiàng)目會有哪些主要的、潛在可能的質(zhì)量屬性需求,并利用文獻(xiàn)中介紹的方法對質(zhì)量屬性進(jìn)行建模。

      (4)體系結(jié)構(gòu)描述。根據(jù)所學(xué)的“4+1”視圖,對所選開源項(xiàng)目的體系結(jié)構(gòu)視圖進(jìn)行描述和刻畫。

      (5)體系結(jié)構(gòu)評估。根據(jù)提取的體系結(jié)構(gòu)設(shè)計(jì)和質(zhì)量屬性,組內(nèi)學(xué)生分別扮演不同的利益攸關(guān)者,實(shí)踐ATAM等軟件體系結(jié)構(gòu)評估活動。

      (6)源代碼分析。在模塊級別層面上閱讀和分析所選項(xiàng)目的源代碼,繪制模塊級別的軟件結(jié)構(gòu)圖,并與軟件體系結(jié)構(gòu)設(shè)計(jì)視圖進(jìn)行映射。

      這些實(shí)踐將持續(xù)5周,授課教師和輔導(dǎo)教師需要全程跟蹤每個小組的活動。經(jīng)過該環(huán)節(jié),學(xué)生可以利用真實(shí)的大型軟件項(xiàng)目體驗(yàn)軟件體系結(jié)構(gòu)相關(guān)的活動,包括需求分析、體系結(jié)構(gòu)設(shè)計(jì)與評估等;通過閱讀源代碼,與體系結(jié)構(gòu)設(shè)計(jì)進(jìn)行比較,體驗(yàn)體系結(jié)構(gòu)設(shè)計(jì)的決策在實(shí)踐中如何體現(xiàn);通過質(zhì)量屬性的建模和體系結(jié)構(gòu)評估活動,體驗(yàn)體系結(jié)構(gòu)設(shè)計(jì)中折中是如何進(jìn)行的。

      2.3 業(yè)界專家授課

      在利用開源軟件進(jìn)行實(shí)踐的同時,我們邀請業(yè)界一線架構(gòu)師進(jìn)行授課。聘請的專家來自各個行業(yè),開發(fā)的商業(yè)項(xiàng)目多種多樣,如醫(yī)院信息管理系統(tǒng)、健康信息管理系統(tǒng)、在線照片分享系統(tǒng)、智能樓宇監(jiān)控系統(tǒng)等,這些項(xiàng)目有實(shí)際的應(yīng)用背景、用戶、利益攸關(guān)者、質(zhì)量屬性等,不再是教材中的假想案例。專家會結(jié)合每個具體案例介紹從需求到體系結(jié)構(gòu)設(shè)計(jì)、軟件發(fā)布的整個軟件開發(fā)過程,帶著學(xué)生一起思考和設(shè)計(jì),課堂上安排適量的隨堂練習(xí)。與理論知識相呼應(yīng),專家重點(diǎn)介紹在體系結(jié)構(gòu)設(shè)計(jì)階段的具體考量和取舍及其原因。同時,專家也會從自身的角度講述對軟件體系結(jié)構(gòu)的認(rèn)識以及對軟件體系結(jié)構(gòu)設(shè)汁的一些感悟,如軟件體系結(jié)構(gòu)不是一次設(shè)計(jì)出來,而是“磨”出來的等。

      通過該授課環(huán)節(jié),學(xué)生將具體見識到一線架構(gòu)師的工作及其在軟件團(tuán)隊(duì)中的作用。一線架構(gòu)師對軟件體系結(jié)構(gòu)結(jié)合具體項(xiàng)目的講授用的是平實(shí)、具體的語言,更容易讓學(xué)生接受和理解。學(xué)生再與課堂上學(xué)到的理論知識對照,能發(fā)掘出理論知識更深一層的含義,也能在具體的項(xiàng)目中發(fā)現(xiàn)理論知識的應(yīng)用。

      我們認(rèn)為專家授課對學(xué)生影響最大的是軟件工程中一般原則的具體應(yīng)用方法,每位專家都有自己一套獨(dú)特的分析設(shè)計(jì)方法,雖然看起來不一樣,但是對軟件工程、軟件體系結(jié)構(gòu)等設(shè)計(jì)原則的體現(xiàn)是一致的,使學(xué)生認(rèn)識到課堂上學(xué)習(xí)到的一般原則是如何靈活地體現(xiàn)在設(shè)計(jì)中的。

      3 實(shí)施與效果

      我們在近3屆軟件工程碩士“軟件體系結(jié)構(gòu)”課程教學(xué)中實(shí)施該教改方案,3屆學(xué)生人數(shù)分別為70人、37人、40人。課堂教學(xué)上嚴(yán)格按照安排的學(xué)時展開,授課教師和輔導(dǎo)教師全程跟蹤指導(dǎo),隨時發(fā)現(xiàn)學(xué)生學(xué)習(xí)中的問題,全部課程在12周內(nèi)完成。問卷調(diào)查顯示,與以前的教學(xué)效果相比,學(xué)生對軟件體系結(jié)構(gòu)及其相關(guān)技術(shù)、方法的理解更深,突出體現(xiàn)在以下幾方面。

      (1)通過安排的實(shí)驗(yàn),學(xué)生能在理論學(xué)習(xí)的同時盡早開始實(shí)踐,對軟件體系結(jié)構(gòu)方法和技術(shù)的運(yùn)用緊跟理論學(xué)習(xí),將抽象知識具象化。

      (2)在案例的選擇上從教材案例到實(shí)際開源項(xiàng)目,循序漸進(jìn),學(xué)生在各實(shí)驗(yàn)中能馬上運(yùn)片j所學(xué)知識,不會出現(xiàn)無從下手的情況。實(shí)際開源項(xiàng)目上的實(shí)驗(yàn)?zāi)芸简?yàn)學(xué)生的綜合應(yīng)用能力,增強(qiáng)學(xué)生的信心。

      (3)授課方式上先做再講,比簡單的預(yù)習(xí)和閱讀資料更能給學(xué)生帶來挑戰(zhàn),學(xué)生上課時的疑問更多,聽課時注意力更集中,能及時發(fā)現(xiàn)自己的不足并改進(jìn)。

      (4)-線架構(gòu)師的授課非常受學(xué)生歡迎,學(xué)生認(rèn)識到抽象原則知識在實(shí)踐中如何運(yùn)用:原則上遵循,實(shí)際操作時靈活。

      4 結(jié)語

      我們在軟件體系結(jié)構(gòu)課程教學(xué)方面進(jìn)行探索和實(shí)踐,設(shè)計(jì)的教學(xué)內(nèi)容、授課形式和安排的實(shí)驗(yàn)對提升教學(xué)效果非常有效,但在實(shí)踐中也發(fā)現(xiàn)要堅(jiān)持這種教學(xué)方案,對教師和學(xué)生的要求都非常高,每年都需要重新設(shè)計(jì)教學(xué)案例并聘請一線架構(gòu)師,工作量非常大。對學(xué)生而言,要堅(jiān)持做完所有的實(shí)驗(yàn)需要花費(fèi)大量時間,如能堅(jiān)持下來必有收獲,但實(shí)際教學(xué)中存在搭便車和抄襲的現(xiàn)象。今后,針對新的問題,我們還將在軟件體系結(jié)構(gòu)課程教學(xué)上不斷探索,尋求更好的培養(yǎng)方式,以期達(dá)到更佳的培養(yǎng)效果。

      博乐市| 普定县| 沽源县| 永济市| 闸北区| 无棣县| 元氏县| 阜新市| 定南县| 新蔡县| 大新县| 同心县| 门头沟区| 赞皇县| 富源县| 遂宁市| 广安市| 余姚市| 垣曲县| 大新县| 盱眙县| 平定县| 高清| 普定县| 廊坊市| 嘉黎县| 布拖县| 凤凰县| 海安县| 天津市| 西昌市| 房产| 绿春县| 南陵县| 同心县| 柳林县| 会东县| 疏附县| 巢湖市| 嘉黎县| 青铜峡市|