亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        軟件體系架構(gòu)課程本科教學(xué)探討

        2010-12-31 00:00:00裘國永
        計算機(jī)教育 2010年24期


          摘要:現(xiàn)代社會的每一方面都需要依賴軟件,構(gòu)造高質(zhì)量軟件需要設(shè)計良好的架構(gòu)和專業(yè)的實現(xiàn)過程。因此,軟件體系架構(gòu)被選作軟件工程方面的主修課程。文章結(jié)合軟件體系架構(gòu)本身及學(xué)生知識結(jié)構(gòu)特點,介紹如何選擇本科階段軟件體系架構(gòu)課程教學(xué)內(nèi)容、以及教授方面的經(jīng)驗。文章設(shè)計了教學(xué)內(nèi)容的體系架構(gòu),涵蓋課堂教學(xué)及實驗環(huán)節(jié),并進(jìn)行詳細(xì)闡述。
          關(guān)鍵詞:軟件體系架構(gòu);本科課程;軟件工程
          
          軟件體系架構(gòu) (Software Architecture,以下簡稱SA)學(xué)科涉及內(nèi)容紛繁龐雜,至今一直處于發(fā)展演進(jìn)階段,選取什么樣的內(nèi)容進(jìn)行本科階段教學(xué)工作,是一個值得深入研究的問題。
          國內(nèi)外相關(guān)機(jī)構(gòu)針對此問題提出了指導(dǎo)性意見,如在IEEE-CS和ACM聯(lián)合工作組制定的SEEK (Software Engineering Education Knowledge)[1]中,軟件工程本科生獲得學(xué)位所需要掌握的相關(guān)知識包括:體系架構(gòu)的視圖與表示、權(quán)衡問題、硬件問題、需求的可追蹤性、特定領(lǐng)域的SA和軟件產(chǎn)品線、風(fēng)格和設(shè)計模式。我國教育部門于2006年制定高校“計算機(jī)科學(xué)與技術(shù)本科專業(yè)規(guī)范”[2],以IEEE-CS和ACM制定的相關(guān)標(biāo)準(zhǔn)為藍(lán)本,對2003年以來的相關(guān)工作進(jìn)行了總結(jié)和改進(jìn)。這些指導(dǎo)性文件為SA教學(xué)提供了參考框架,但并沒有規(guī)范具體教學(xué)內(nèi)容。下面結(jié)合我校計算機(jī)學(xué)院的教學(xué)實踐,對這個問題進(jìn)行討論。
          1學(xué)生知識結(jié)構(gòu)及課程特點分析
          1.1學(xué)生知識結(jié)構(gòu)分析
          由于大四階段學(xué)生面臨實習(xí)、找工作或考研等任務(wù),軟件體系架構(gòu)課程通常于大學(xué)三年級開設(shè)。此前學(xué)生學(xué)過的專業(yè)課程包括高級語言程序設(shè)計(C語言)、匯編語言、數(shù)據(jù)結(jié)構(gòu)、計算機(jī)組成原理、單片機(jī)及其應(yīng)用、操作系統(tǒng)、軟件工程、計算機(jī)網(wǎng)絡(luò)、可視化程序設(shè)計、面向?qū)ο蟪绦蛟O(shè)計(C++、Java),同期開始的課程包括數(shù)據(jù)庫、編譯原理、應(yīng)用服務(wù)器開發(fā)、網(wǎng)絡(luò)工程、構(gòu)件技術(shù)、UML建模等。盡管已有不少專業(yè)基礎(chǔ)知識,但學(xué)生普遍缺乏大型軟件項目的實戰(zhàn)經(jīng)驗,許多學(xué)生甚至是第一次接觸SA概念。因此,從自身經(jīng)歷出發(fā),學(xué)生難以自發(fā)體會到SA對軟件系統(tǒng)的重要性。這就造成教師要把許多SA概念“推”給學(xué)生,盡管不能說是拔苗助長,顯然不及學(xué)生主動去“拉”知識的效果好。
          1.2SA課程的特點
          SA不是一門成熟學(xué)科,主要表現(xiàn)在:1) 缺乏明確的定義。2) 問題的解決方案不唯一,尋找解決方案沒有固定統(tǒng)一的途徑可遵循。3) 如何維持SA與具體軟件質(zhì)量屬性之間的關(guān)系,沒有明確答案。良好的架構(gòu)是成功軟件開發(fā)的基礎(chǔ)和必要條件,但不是充分條件,還有許多因素如編碼技術(shù)等,都會影響軟件質(zhì)量。4) SA涉及不僅僅計算機(jī)學(xué)科內(nèi)容,還包括商業(yè)、政治、心理、藝術(shù)、社會經(jīng)驗等諸多方面因素。5) 缺少成熟、經(jīng)典的教材及教學(xué)案例。國內(nèi)很多高校也是在最近幾年內(nèi),才陸續(xù)開設(shè)了這門課程,很多地方還待改善,例如就課程名稱來說,用“軟件體系架構(gòu)” 就比“軟件體系結(jié)構(gòu)”更準(zhǔn)確[3],因為英文“結(jié)構(gòu)”一詞應(yīng)該用structure,而architecture則表達(dá)更宏觀的含義,更貼近SA實質(zhì)內(nèi)容。
          1.3SA教學(xué)策略和教學(xué)內(nèi)容的體系架構(gòu)
          基于以上特點,我們在學(xué)期一開始就給學(xué)生布置了軟件開發(fā)任務(wù),讓他們變被動為主動,有目的地接受課堂內(nèi)容,主動去搜集相關(guān)知識。教學(xué)中對一些理論性、抽象性較高的內(nèi)容做了適當(dāng)取舍和調(diào)整,增強(qiáng)實例演示。針對于SA中某些不確定內(nèi)容,教師提出幾種可能解決途徑,讓學(xué)生思考討論其優(yōu)缺點。學(xué)生在開發(fā)軟件時,將親身體會SA對軟件開發(fā)的決定性影響。
          2SA教學(xué)內(nèi)容討論
          2.1軟件開發(fā)流程介紹
          軟件開發(fā)流程包括:調(diào)研、立項、需求分析、總體設(shè)計、詳細(xì)設(shè)計、編碼、測試、產(chǎn)品化、結(jié)項、維護(hù)。同時教學(xué)中還概要介紹了開發(fā)工具、開發(fā)語言和開發(fā)方法學(xué)(瀑布、RUP、極限編程),展示一個軟件開發(fā)實例。上述內(nèi)容共計4學(xué)時。
          盡管前期軟件工程課程中會介紹這方面的部分內(nèi)容,仍有必要向?qū)W生指出SA設(shè)計在軟件開發(fā)中所處位置,為后面介紹SA對軟件開發(fā)各階段的影響奠定基礎(chǔ),并通過實例演示,引起學(xué)生的興趣。
          2.2SA概論
          主要是關(guān)于SA的宏觀介紹,包括:編程語言的進(jìn)化歷史、SA發(fā)展歷史、SA各種定義(含IEEE 14784MQYynKzSJup61h6TAiU9D1pCqFg/BaoGJrZbEPlZU=1-2000標(biāo)準(zhǔn))及其存在問題、哪些因素會影響到SA及SA對其的反作用。共計4學(xué)時。
          歷史介紹使學(xué)生了解SA學(xué)科發(fā)展的來龍去脈;定義、影響因素的介紹使學(xué)生意識到SA設(shè)計會受商業(yè)、架構(gòu)師技能、前期產(chǎn)品架構(gòu)等多因素影響,具有相當(dāng)大的復(fù)雜性和不確定性。這個階段可以開始給學(xué)生布置軟件開發(fā)任務(wù),讓他們自己先思考如何完成工作,逐漸從被動接受過渡到主動獲取知識。
          2.3常見SA風(fēng)格及應(yīng)用實例
          SA風(fēng)格包括分層風(fēng)格、管道—過濾器風(fēng)格、黑板風(fēng)格、代理風(fēng)格、視圖—表示—控制器(MVC)風(fēng)格、表示—抽象—控制(PAC)風(fēng)格、微內(nèi)核風(fēng)格、反射風(fēng)格、C/S 和B/S風(fēng)格、P2P風(fēng)格、面向?qū)ο箫L(fēng)格、解釋器風(fēng)格等,另外對應(yīng)每一種SA風(fēng)格都有應(yīng)用案例。約12學(xué)時。
          這部分是SA多年發(fā)展成果的一個總結(jié),也是課程的一個重點。講解時,教師指出這些風(fēng)格所適用的軟件系統(tǒng)類型,給出每種風(fēng)格的應(yīng)用實例,并用UML表示該風(fēng)格(其中一些可布置為課后作業(yè))。同時提醒學(xué)生注意:1)這些風(fēng)格屬于宏觀級別;2)風(fēng)格之間不是嚴(yán)格獨立的;3)實際系統(tǒng)可能包含多種風(fēng)格;4)開發(fā)軟件系統(tǒng)時,應(yīng)當(dāng)首先考慮這些成熟的風(fēng)格,再根據(jù)具體情況加以修正和細(xì)化。
          2.4SA描述及編檔
          內(nèi)容包括基于UML的SA描述、SA編檔和“4+1”SA視圖。4~6學(xué)時。
          這部分涉及體系結(jié)構(gòu)描述語言(ADLs),但考察后發(fā)現(xiàn),一方面,ADLs較枯燥,很難引起學(xué)生的興趣;另一方面,SA本身有著眾多不確定性,尤其是開發(fā)的初期階段,此時精確描述的SA會被修改多次,事實反倒是一些粗線條、不精確、不一致的SA內(nèi)容真正在引導(dǎo)軟件開發(fā)前進(jìn);最后,當(dāng)前ADLs自身存在很多不足,對實際軟件開發(fā)幾乎沒有影響。因此,本部分重點集中在怎樣用UML描述SA和SA文檔編檔上,對ADLs及用途僅做簡短介紹。從實用角度看,UML已經(jīng)發(fā)展了十多年,因方便與外界交流,被業(yè)界廣泛接受,學(xué)有所用。但是,僅用圖形符號來表述SA會帶來一些不確定性,因此還要補(bǔ)充適當(dāng)符號、術(shù)語和原理等的文字說明,并從涉眾的不同視角出發(fā),去關(guān)注SA。
          
          2.5質(zhì)量屬性驅(qū)動的SA設(shè)計
          內(nèi)容包括:常見的質(zhì)量屬性(可用性、可修改性、性能、安全性、易用性、可測試性等)及實現(xiàn)方法;理解屬性之間的權(quán)衡;列舉質(zhì)量屬性應(yīng)用案例;從質(zhì)量屬性分析入手,設(shè)計SA并進(jìn)一步求精。約8學(xué)時。
          這部分除過讓學(xué)生了解實現(xiàn)質(zhì)量屬性的基本戰(zhàn)術(shù)外,還要使其意識到尋找各種屬性之間的平衡,是架構(gòu)師的重要責(zé)任。如何設(shè)計SA方法眾多,沒有統(tǒng)一途徑可循,介紹過多的設(shè)計方法,反而會讓學(xué)生感覺難以適從,因此重點講解基于質(zhì)量屬性的設(shè)計方法。
          2.6SA評估
          內(nèi)容包括架構(gòu)權(quán)衡分析方法ATAM及案例。4學(xué)時。
          評估方法還有許多,如軟件架構(gòu)分析方法SAAM、成本收益分析方法CBAM等,各有所長。為集中注意力避免盲目學(xué)習(xí),除ATAM外,我們對其余評估方法均只做概要介紹。
          2.7SA設(shè)計及實現(xiàn)實例
          
          講授一個人工智能軟件的SA設(shè)計、評估、實現(xiàn)和編檔。約4學(xué)時。
          本軟件在開學(xué)第一堂課就已經(jīng)向?qū)W生展示,在課程接近結(jié)尾時把其SA設(shè)計及實現(xiàn)過程講解給學(xué)生,前后呼應(yīng)。好的實例勝過千言萬語,讓學(xué)生觀察體驗如何運用所學(xué)知識解決具體問題。
          2.8SA前沿講座
          邀請大公司軟件開發(fā)人員作講座,約4~6學(xué)時。講座內(nèi)容包括:面向服務(wù)的體系架構(gòu)SOA及Web Service;多核并行計算→集群→網(wǎng)格計算→物聯(lián)網(wǎng)→云計算;國外SA教學(xué)課程;國際知名專家關(guān)于SA的最新論文等。
          這部分主要用于開闊學(xué)生視野。例如,學(xué)生看過微軟、谷歌、IBM等的“云”架構(gòu)后,體會到盡管應(yīng)用領(lǐng)域日新月異,SA的一些基本原理和方法仍然有效。專家論文中的觀點和方法對理解SA有很好的啟發(fā)效果,使學(xué)生把握到學(xué)科前沿動態(tài),了解自己所處位置及努力方向。公司開發(fā)人員的講座是對課堂教學(xué)的有益補(bǔ)充,使學(xué)生了解實際軟件開發(fā)中問題,有針對性地進(jìn)行學(xué)習(xí)。
          2.9SA課程自學(xué)內(nèi)容
          自學(xué)內(nèi)容有設(shè)計模式、軟件產(chǎn)品線、特定領(lǐng)域軟件體系結(jié)構(gòu)(J2EE,WWW等)、SA重構(gòu)等。
          設(shè)計模式屬于軟件開發(fā)過程中的詳細(xì)設(shè)計部分,如果放在SA課程中會使內(nèi)容過于龐大、流于形式,我們考慮將來開設(shè)單獨的課程。自學(xué)內(nèi)容這塊我們要求學(xué)生查閱相關(guān)參考書,就其感興趣領(lǐng)域撰寫閱讀報告,深度上要求知曉主旨大義,略過細(xì)節(jié)。
          2.10SA教材選取
          到目前為止,SA課程沒有集大成的教材,國內(nèi)外教材各有長處和不足。正因如此,我們決定不固定教材,要求學(xué)生遇到相關(guān)問題后,就同一問題查閱相應(yīng)的中外參考資料[3-10]。
          3實驗環(huán)節(jié)
          實驗內(nèi)容包括軟件可修改性實驗;動態(tài)人機(jī)交互界面實驗;管道—過濾器模式軟件的設(shè)計及實現(xiàn);MVC風(fēng)格軟件的設(shè)計與實現(xiàn);主要SA風(fēng)格的(UML)描述;人工智能軟件SA的設(shè)計(實現(xiàn))、評估、編檔。約20學(xué)時。
          教師在對學(xué)生分組時候應(yīng)注意人員搭配,根據(jù)情況及時調(diào)整,避免某些工作有的組進(jìn)行不下去。學(xué)生分組后,按指定內(nèi)容完成實驗,通過實驗使學(xué)生體會如何將理論轉(zhuǎn)換為實際軟件產(chǎn)品,掌握知識要點。根據(jù)學(xué)生特點,我們選取了難度和復(fù)雜度適中、包含人機(jī)交互的項目。每次實驗后組織課堂討論,交流經(jīng)驗體會。部分實驗內(nèi)容如圖2~圖4所示。
          圖2中顯示一個可修改軟件質(zhì)量屬性場景,主要讓學(xué)生掌握如何利用軟件工程基本知識,靈活適應(yīng)需求變化。這些知識包括信息隱藏原則、最小權(quán)限原則、基于函數(shù)的過程設(shè)計、面向?qū)ο笤O(shè)計等,它們不僅是計算機(jī)專業(yè)學(xué)生應(yīng)當(dāng)掌握的基礎(chǔ)知識,而且也貫穿SA設(shè)計實現(xiàn)、發(fā)展演化的全部過程。圖3顯示管道—過濾器SA風(fēng)格有著眾多實際應(yīng)用,如編譯器、示波器等數(shù)據(jù)流處理系統(tǒng)?;诋?dāng)今多核處理器的普及,我們讓學(xué)生設(shè)計實現(xiàn)一個多線程環(huán)境下的管道—過濾器風(fēng)格軟件。圖4的MVC實驗?zāi)康氖亲寣W(xué)生掌握人機(jī)交互軟件的SA設(shè)計和實現(xiàn)。實驗開始前教師將一些基礎(chǔ)的算法程序交給學(xué)生,然后讓他們按照MVC風(fēng)格將這些程序組織起來,形成一個容易拓展的軟件架構(gòu)。其他實驗還包括SA的設(shè)計、UML描述、評估、文檔制作,等等,內(nèi)容涵蓋SA教學(xué)環(huán)節(jié)的各主要方面,有效配合課堂教學(xué)。
          4結(jié)語
          SA課程建設(shè)涉及內(nèi)容繁多,今后我們還需在以下方面加強(qiáng)努力:1)教學(xué)、實驗案例及教材建設(shè);2)從
          
           SA到軟件實現(xiàn),如何保證質(zhì)量屬性一致性;3)如何使SA教學(xué)適應(yīng)工業(yè)軟件產(chǎn)品開發(fā)的實戰(zhàn)需求等。SA正向成熟期過渡,課程建設(shè)將緊緊圍繞學(xué)科發(fā)展方向和社會需求而進(jìn)行。
          
          參考文獻(xiàn):
          [1] Bourque

        性色视频加勒比在线观看| 日本高清不在线一区二区色| 国产女主播免费在线观看| 亚洲AV无码资源在线观看| 青青草原亚洲在线视频| 日本一本一道久久香蕉男人的天堂| 天天碰免费上传视频| 中文日韩亚洲欧美制服| 精品综合久久久久久97超人| 国产成人久久精品亚洲小说| 午夜男女视频一区二区三区| 久久精品国产一区老色匹| 国产精品对白一区二区三区| 亚洲av无码一区二区三区人| 理论片午午伦夜理片影院| 亚洲av成人一区二区三区网址 | 午夜三级a三级三点在线观看| 丁香六月久久婷婷开心| 国产天堂在线观看| 日本高清中文字幕二区在线 | 久久精品国产精品亚洲| 放荡的闷骚娇妻h| 日本精品一区二区在线看| av男人的天堂亚洲综合网| 国语对白做受xxxxx在线| 成人国产精品一区二区网站| 日韩熟女精品一区二区三区视频 | 免费做爰猛烈吃奶摸视频在线观看 | 亚洲乱码av中文一区二区| 99国产精品无码专区| 久久亚洲春色中文字幕久久久综合| 人妻少妇偷人精品久久性色av| 先锋影音av最新资源| 四虎影视国产在线观看精品| 国产成人综合日韩精品无| 国产视频激情视频在线观看| 丰满多毛的大隂户毛茸茸| 午夜三级网| 久久国产精品精品国产色| 免费观看交性大片| 国产精品美女久久久久久2018 |