999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

軟件體系結構設計能力的培養

2023-04-29 00:00:00束永安
秦智 2023年12期

[摘要]在分析軟件體系結構課程背景的基礎上,提出課程設計及優化新方法,增強課程內容的實用性以及與軟件行業相關性;針對不同的教學內容,選擇基于問題的教學方法或基于案例的教學方法,培養學生的軟件體系結構設計能力。

[關鍵詞]軟件體系結構設計;基于問題的教學;基于案例的教學

[中圖分類號]G642""""" [文獻標識碼]A

[DOI]:10.20122/j.cnki.2097-0536.2023.12.004

引言

軟件體系結構從高層次把握軟件的整體結構設計,對軟件的質量屬性具有決定性影響[1]。軟件體系結構課程教學的主要目標是培養學生的軟件體系結構設計能力,包括具有軟件設計和開發經驗、熟悉系統及互聯關系、能快速抓住問題并診斷出可能的錯誤根源、能夠根據上下文環境對項目做出重要決策的領導才能等。

一、軟件體系結構課程背景

(一)課程授課對象

本課程的授課對象是大學本科高年級學生,他們的主要學習目標是學習實際的技能以便在實習、畢業設計、工作面試等場合有更好的表現,將來有更好的發展。為了激發學生的學習興趣,培養學生軟件體系結構設計能力,我們在課程建設中聚焦以下兩個方面:首先,課程的內容具有實用性,學生能夠把課程中學到的技術應用于具體的項目設計中,提高軟件開發能力;其次,課程的內容具有軟件行業相關性,課程內容能夠與時俱進,教學案例的選取能夠反映當前軟件行業的發展動態。

(二)課程面臨的挑戰

本課程教學的一個主要挑戰是傳授實用的技能,學生能夠把學到的技能立即應用到項目中或實習工作中。從教師的角度來看,我們應該認識到傳授實用軟件體系結構技能的重要性,要確認課程內容的實用性和行業相關性:這個模型是不是很重要?在什么情況下使用這種體系結構風格?在教學過程中,我們通常要說明或者被學生要求說明有關概念、軟件體系結構風格和模式、模型等如何應用于信息系統和工程中。

本課程教學的另一個挑戰是如何使得這些抽象的概念易于理解。軟件體系結構設計對于學生來說是嶄新的領域,通過本課程學習能夠實現從具體的軟件編程和低層次的軟件設計向抽象的體系結構設計的觀念模式的轉變。學生在學習這門課之前習慣于寫代碼、然后編譯運行得到一個確定的結果;而本課程要求學生在圖表中確定構件間的結構關系,證明經過權衡的關鍵決策、沒有具體的輸出,這與以前的思維模式截然不同。

(三)教學方法

我們采用傳統的課堂講授教學與研討會相結合的教學方法,課堂教學側重于傳授架構軟件系統的基礎知識,為學生舉行研討會提供背景知識。對于研討會,有兩種組織形式:一種采用基于問題的學習方法,另一種采用基于案例的學習方法。對基于問題學習的研討會,把學生分成5人一組,布置開放性問題,這類問題往往有多種解決方案;對基于案例學習的研討會,同樣也把學生分成5人一組,分配學習案例并要求學生課前準備。當學生討論開始偏離主題時,教師發揮引導者的作用,通過具有引導性的問題使學生回到學習主題,學生和老師協作完成學習任務并對學習的知識點做出結論。因此,基于問題的學習方法被稱作開放學習方法,而基于案例的學習方法被稱作引導學習方法;這兩種方法具有共性,即讓學生專注探索的過程,激勵學生解決問題,培養學生獨立學習的能力以及團隊協作精神。在多年的教學過程中,我們一直從教學內容的實用性以及與軟件行業的相關性角度,研究這兩種方法中哪個方法能使學生更有效地學習這門課的知識。

(四)課程目標

本課程主要目標是提高學生理解、設計和評價軟件體系結構的能力。通過本課程學習,學生具有以下能力:

1.能夠解釋軟件系統的體系結構如何適配組織或企業的業務目標和他們的組織結構;

2.能夠在設計軟件體系結構時,注重通用的應用集成構件;

3.能夠使用軟件體系結構語言描述軟件體系結構;

4.能夠通過質量屬性及質量屬性間的權衡關系分析軟件體系結構。

二、課程設計和優化

(一)課程內容

本課程內容按照純課堂講課并輔以研討會的形式進行[2][3],理論課教學時間中約75%以課堂講授形式進行,約25%以研討會形式進行;實驗課主要以研討會形式進行,要求學生能夠用課堂所學的知識解決特定的問題。

(二)課程的組織

由于本課程內容抽象,為實現教學內容實用性和行業相關性目標,我們將抽象的理論與具體的案例相結合。

在軟件設計模式的教學中,主要介紹MVC、工廠方法、代理、觀察者等經典的設計模式。以MVC模式為例,要求學生利用基本MVC 模式實現一個簡單的應用程序,其功能是在程序界面上實現一個圖形化的溫度計來直觀地顯示溫度,隨著升溫按鈕和降溫按鈕的操作,要求分華氏溫度和攝氏溫度顯示。

在軟件體系結構風格的教學中,首先學習客戶機/服務器、瀏覽器/服務器、事件驅動、分層系統等常用的傳統風格。以瀏覽器/服務器風格為例,要求學生在MyEclipse、Tomcat環境下實現本學院學生學籍管理系統,然后結合當時軟件業界的發展學習面向服務的體系結構、微服務、機器學習、云計算、物聯網、大數據等新近的體系結構參考模型。以面向Web服務的體系結構為例,要求學生通過查詢當前已發布的關于股票信息的Web服務接口,設計一個股票查詢的用戶界面,允許用戶輸入待查詢的股票代碼或股票名稱,顯示該股票的當前價格、成交量、歷史最高價、歷史最低價等相關信息。在教學過程中,我們不僅解釋做什么、如何做以實現某個風格,更重要的是分析使用該風格時要考慮什么,以加深理解。

軟件體系結構評估關注的是系統的質量屬性。對于質量屬性的教學,我們不僅需要學生理解質量屬性,能夠描述質量屬性的場景;還需要學生了解不同質量屬性的權衡策略以及有關調整措施,從而增強本課程的實用性。比如,討論是否要把web、應用和數據庫各層分開部署到不同的節點上,在節點間安裝防火墻以限制訪問和監控數據從而實現安全性;這種設計風格雖然提高了安全性,但導致額外的故障點,進而影響了服務的獲取性,當然服務的獲取性可以通過對多個節點實施集群技術來調整。又比如,開發產品線可以提高維護性,但導致額外的早期投資,當然也可以通過重用技術來得到補償。我們要求學生描述其具體軟件設計的決策,討論軟件質量、權衡以及如何在多個質量屬性間進行調整與折衷,這種討論有助于學生實現從軟件設計開發向體系結構設計的思維模式轉變;同時也會給學生引導性問題讓他們進一步思考他們的學習,例如“在你們設計的體系結構中,對安全性的設計總是對其它質量屬性有負面的影響嗎?”

在教學過程中注重學生軟技能的培養。交流和領導才能對于軟件架構師領導、介紹、協商和證明體系結構的設計和決策是十分重要的,讓學生輪流領導一個團隊并在討論會上介紹他們的設計,對學生的評價依據包括他們在研討會上提交的紙質報告、在研討會上的表現以及是否表明已具有實際應用所學概念和方法的能力。在這過程中,發現有些學生專業基礎知識較弱,他們論證其設計決策過程難以令人信服;而對于那些在研討會上不主動的學生也要找機會讓他們輪流展示他們的成果。

(三)研討會的組織

為了學生更好地理解軟件體系結構及其實用性,我們在課程期間舉辦研討會,采用基于問題的學習方法和基于案例的學習方法。

對采用基于問題學習方法的研討會,對每個組布置開放性體系結構問題。在研討組內,學生需要討論設計方案,進行進一步的研究,向教師和其他同學報告他們的發現和結論。在研討會上,學生的角色是軟件架構師,而教師的角色是學習的引導者,對體系結構的設計提供必要的指導。

對采用基于案例學習方法的研討會,每一個小組在課前需要閱讀有關項目場景的資料,需要解決項目場景中的給定問題,例如項目場景可以是架構一個復雜的分布式信息系統,學生需要應用體系結構概念,實現軟件的質量需求。在研討會上,學生的角色是軟件架構師,教師的角色是其他的風險承擔者,如公司經理、IT團隊成員等,其職能是明確功能需求并對體系結構的技術設計提供指導。

對于以上兩種學習方法,我們采取對等學習策略,每個小組都可以聽取來自其他組的評論。但也存在一個問題,由于報告時間的限制,學生可能不能全面了解其他組的設計方案、不能發現其中的問題,導致學生在聽報告時沒有問題,進而不能評價設計方案。為此,我們又對研討會的組織進行改進,把每個組的學生分為兩個小組,一個小組的學生負責解釋本組的設計方案,另一個小組負責理解指定的其他組的設計方案以便在其他組報告時準備問題,這種學習方法大大促進了學習進程,學生也能夠吸收多個同學的經驗并應用于實踐。

(四)課程反饋及分析

每個學生在課程結束后需要回答下列問題,每個問題評分值采用Likert5級評分法,1表示非常不滿意,5表示非常滿意。

關于課程整體評價的問題:

1.課程實現了教學目標了嗎?

2.這門課程很好地傳授了你們需要的知識和技能了嗎?

3.你對本課程整體滿意度如何?

關于研討會評價的問題:

4.實驗模塊具有實用性和應用性嗎?

5.研討會提供的材料質量如何?

6.研討會達到預期目標了嗎?

7.課堂師生互動程度如何?

我們也設計開放性問題,要求學生寫出對課程其它方面的評價:

8.你如何運用在課程中學到的知識和技能?

9.本課程你最喜歡的和最不喜歡的是什么?

10.你對課程改進有什么建議?

關于課程的實用性以及行業相關性,我們對問題2和3的分值進行統計,結果顯示整體滿意度和課程實用性呈現向上的趨勢,表明課程設計的持續改進有效地提升了學生對課程的滿意度。對這兩組數據的相關性分析表明,課程的實用性及應用性與整體滿意度高度相關。

從開放性問題的反饋中可以看出,有些學生能夠很好地理解抽象的概念,認為教師能夠為課程內容提供豐富的用例,能夠用恰當的類比解釋抽象的概念;有些學生已具有體系結構思維,能夠從較高的層次解決問題,把體系結構的相關知識和技能運用到具體的項目中。當然,也有少數學生認為他們難以完成難度較大的任務,對此,我們會提前安排一些預習材料和課后的指導,幫助學生做好課程準備。

三、結語

我們以實用和保持與行業相關的方式進行軟件體系結構課程教學受到學生的高度認可,使用案例研究、類比、展示和討論創造一個學生能夠易于理解的學習環境。從教師的角度,這種教學方式需要花費大量的精力準備課程,特別是研討會;同時也需要持續和產業界協作,保持課程內容的相關性與實用性。

參考文獻:

[1]瑪麗·肖,大衛·加蘭.軟件體系結構:一門新興學科的觀點[M].紐約:普倫蒂斯霍爾出版社,1996.

[2]張友生.軟件體系結構原理、方法與實踐(2版)[M].北京:清華大學出版社,2014.

[3]萬建成,盧雷.軟件體系結構的原理、組成與應用[M].北京:科學出版社,2002.

主站蜘蛛池模板: 呦女亚洲一区精品| 巨熟乳波霸若妻中文观看免费| 一本无码在线观看| 欧美日韩在线观看一区二区三区| 国产精品亚洲片在线va| 国产区人妖精品人妖精品视频| 全部免费毛片免费播放| 青青操国产视频| 中文字幕亚洲乱码熟女1区2区| 99精品视频在线观看免费播放| 伊人色在线视频| 欧美第二区| 久久精品亚洲专区| 丝袜国产一区| 欧美亚洲国产精品第一页| 欧美日韩一区二区三区四区在线观看| 欧美一区二区丝袜高跟鞋| 欧美日韩在线成人| av免费在线观看美女叉开腿| 无码在线激情片| 欧美日韩在线第一页| 日本不卡在线视频| 中文字幕亚洲精品2页| 午夜精品区| 欧美午夜小视频| 国产精品hd在线播放| 99re视频在线| 热99精品视频| 99热这里只有精品免费国产| 亚洲青涩在线| 超清无码一区二区三区| 午夜欧美理论2019理论| 1024你懂的国产精品| 国产免费高清无需播放器| 18禁色诱爆乳网站| 无遮挡国产高潮视频免费观看| 国产SUV精品一区二区6| 无码乱人伦一区二区亚洲一| 亚洲av无码牛牛影视在线二区| 久久精品66| 97人人模人人爽人人喊小说| 国产精品成人免费综合| jizz国产在线| 国产视频你懂得| 国产高清在线观看91精品| 漂亮人妻被中出中文字幕久久 | 久久久久亚洲av成人网人人软件| 国产真实乱子伦视频播放| 丁香五月婷婷激情基地| 97se亚洲综合在线| 久久无码免费束人妻| 97色伦色在线综合视频| 国产男女免费完整版视频| 亚洲国产91人成在线| 亚洲欧美精品日韩欧美| 精品国产一二三区| 久久狠狠色噜噜狠狠狠狠97视色 | 喷潮白浆直流在线播放| 久久无码高潮喷水| 日本少妇又色又爽又高潮| 亚洲国产成人精品青青草原| 国国产a国产片免费麻豆| 国产美女无遮挡免费视频网站| 国产真实乱人视频| 在线欧美日韩国产| 精品精品国产高清A毛片| 亚洲IV视频免费在线光看| 精品91在线| V一区无码内射国产| 国产人碰人摸人爱免费视频| 最新日本中文字幕| 99热亚洲精品6码| 欧美在线一级片| 精品成人一区二区三区电影| 日韩av无码精品专区| 国产精欧美一区二区三区| 久久综合五月| 久久精品无码国产一区二区三区| 国产精欧美一区二区三区| 成人在线观看一区| 国产理论一区| 播五月综合|