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

融合CDIO.OBE的軟件工程教學案例探索

2022-04-29 00:44:03陳國明李振鵬張嘉琛周如旗陳強朱雄泳
計算機應用文摘 2022年20期
關鍵詞:教學

陳國明 李振鵬 張嘉琛 周如旗 陳強 朱雄泳

關鍵詞:軟件工程;Spring Cloud;教學;CDIO-OBE

1引言

高校課程改革的一個重要目標就是培養應用型人才,因此以成果教育為導向(Outcome BasedEducation,OBE)的模式蓬勃發展。OBE是以最終成果為導向的一種工程教育模式,旨在培養掌握專業知識、專業技能,能夠快速融人社會的畢業生。OBE的基本理念在于實施課程時把握反向設計方法,以軟件工程的課程內容、結構和典型成果為基礎,選擇教學內容,使學生深入理解知識,能夠綜合應用各方面知識解決實際問題。其中,課程實施過程包括學習成果呈現方式和對成果的評價方法。學習過程應注重基礎知識的掌握和環境工具的使用,以實踐操作為中心,綜合應用知識,提升創新能力。

在教學案例整體設計中,要合理銜接專業知識與社會需求,引導學生掌握科學的思維方法,辨明研究方向。通過“案例項目驅動”的教學模式,培養學生由被動學習到主動創新研發的能力:借助線上線下多種學習媒介,提高學生的學習能力和創新意識。CDIO工程教育模式代表構思(Conceive)、設計(Design)、實現(Implement)和運作(Operate),符合軟件行業對應用型人才的培養要求,被廣泛應用到軟件工程教學改革實踐中。

CDIO-OBE工程教育模式有利于提高學生的學習、模仿、探索、分析、創新等能力。以學生為中心的教學實踐,有利于學生獲得操作體驗與知識技能,進而促進學生能力的發展。根據軟件行業技術發展的實際需要和企業工作所需要具備的技能、知識、素養要求,重構教學案例,讓學生明確掌握重要知識,并學會如何適應這些知識,為學生的可持續發展以及就業奠定良好的基礎。教學內容需要緊跟時代發展步伐,強調科技創新的新技術、新方法,同步課程改革內容,按照內容分解任務重構教學案例,培養學生的創新精神。引入CDIO-OBE工程教育模式理念,優化軟件工程課程的教學資源案例,既能夠提升學生解決實際問題的能力,也能培養學生的創新精神。

20BE和CDIO教育理念的融合

OBE起源于1990年前后,是由美國教育家威廉.G.斯派迪提出的教學教育以學生為導向,以結果為導向的教育教學模式。目前,OBE已在新西蘭、美國、澳大利亞等國家進行實施,并取得了良好的教學反饋。在中國,OBE被稱為以結果為導向的教育模型,它強調的三個核心概念模型是面向輸出的、以學生為中心的、連續的改進,這些概念代表了工程教育改革方向和先進教育理念。

CDIO工程教育模式是一種體現時代創新特性,以工程教育為背景的教學模式。最初由麻省理工學院和瑞典皇家理工學院通過長期研究、探索和教學實踐創建的。作為新興的教育模式和教學理念,伴隨著信息技術的飛速發展,CDIO成為工程教育的一次深刻變革。CDIO代表了構思(Conceive)、設計(Design)、實現(Implement)和運作(Operate)[3]。以軟件需求到軟件運維的生命周期為載體,讓學生親自操作,親身經歷情景,以直接體驗為基礎,強調全程參與,以邊做邊學的方式進行工程學習。CDlO注重培養學生的工程基礎知識與專業技能、強調團隊合作能力,培養學生因用科學思維方法完成軟件的構思、設計、實現和運作,使其成為符合時代需要,能應對未來挑戰,實現終身發展的創新型工程人才。

在OBE的理念下,專業訓練計劃遵循回溯原則設計,通過設置期望學習輸出來設計教學案例。期望學習輸出來自對專業職位、職責和軟件開發能力的調查。以學生為中心建立課程案例,在實地調研學生實習的單位或企業的基礎上,根據現實需求探索軟件工程教學案例改革,基于OBE-CDIO的教育理念來設計教學案例。課程案例對應課程培養的能力和知識,明確每個人的期望學習輸出,嚴格執行CDIO教育示范工程,保證工程教學效果。課堂教學以學生為中心,教師在課堂積極答疑,通過設計教學過程來指導學生完成項目,并監控工程質量。課程案例采用多種教學方法,引導學生積極學習,培養良好的學習習慣,并在各個階段進行定期總結、反思以及評估實際學習輸出與期望學習輸出,科學分析實施過程出現的問題,及時調整計劃并改進教學策略。

2.1軟件工程案例教學模塊的設計

軟件工程的課程案例是以一個餐飲信息管理系統為主線,根據CDIO-OBE模式特征,圍繞課程理論知識與實踐內容,還需要更好地體現以學生為中心的自主學習方式[6]。在課程教學案例的設計中,強調各個知識模塊之間的相互作用,通過模塊的系統學習,學生應該掌握軟件工程項目實施的基本方法。教師上課之前對照知識點模塊,可以很清楚地把握教學內容。軟件工程案例的教學按照知識模塊一共劃分為四個模塊,即餐飲信息管理系統軟件結構的設計與數據模型設計(設計Design)、MVVM方案的構思(構思Conceive)、Spring Cloud框架(運作Operate)、實現網頁前端(實現Implement)。在該教學案例中,各個模塊的學習成果可以通過可視化的形式展現出來,因此可在此基礎上進行教學評價與質量檢測。

2.2餐飲信息管理系統軟件結構設計以及數據模型設計(設計,Design)

在融合OBE和CDIO的教學案例設計中,前期信息系統需求分析包括系統功能建模、系統對象建模、系統動態建模。以數據模型設計(提供餐飲信息管理系統的數據模型)為例,通過建立基本的概念數據模型、邏輯數據模型以及物理數據模型,在CDIO中強調設計(Design)的理念,范例中的數據模型可供學生參考,并由學生提出改進方案。

本案例中初始的數據庫設計概念模型如圖1所示,主要涉及菜品種類表(category)、菜品信息表(product_info)、訂單概述表(order_summary)、訂單詳情表(order_detail)以及用戶表(dinner_user)。其中,菜品種類和菜品信息為一對多關系,訂單概述與訂單詳情是一對多關系,訂單詳情與菜品信息是一對一關系。

2.3MVC模式與MVVM模式(構思,Conceive)

2.3.1MVC模式

構思是設計過程中的一種模式,在這種模式中,學生將精力集中在構思的產生上。CDIO中的構思比較抽象,學生難以迅速集中注意力進行訓練,學習難度較大。良好的案例有助于學生對工程設計內容的理解,突破難點,改善訓練環境。好的設計模式還能使軟件更容易修改和維護,其結構經過長期發展形成解決方案,體現出創作構思的整體性。這種構思在實施可行的基礎上具有一定的創新性。

所謂MVC模式,即模型一視圖一控制器(Model-View-Controller)模式,三個部分分別對應內部數據、數據表示和輸入/輸出控制部分,把它們分開獨立設計,其過程是:首先,控制器接收用戶的請求,并決定調用哪個模型進行處理;然后,模型用業務邏輯來響應用戶的請求并返回數據:最后,控制器用視圖來表示模型返回的數據,將其呈現給用戶。模型側重數據和功能,視圖側重數據顯示,控制器側重用戶輸入,其優點是把數據和業務規則分開表示。

(1)模型對象

模型對象是應用程序中用于處理應用程序數據邏輯的部分,其變化通過事件處理通知視圖和控制器對象。

(2)視圖對象

視圖對象代表GUI對象,并且以用戶需要的格式表示模型狀態,是交互系統與外界的接口。它包含子視圖,子視圖用于顯示模型的不同部分。通常而言,每個視圖對象對應一個控制器對象。

(3)控制器對象

控制器對象代表事件,主要處理用戶的輸入行為,給模型發送業務事件,將其解析為模型執行的動作。同時,模型的更新與修改經由控制器通知視圖,實現各視圖與模型的一致。

2.3.2MVVM模式

MVVM模式改進了MVC模式,更好地分離了視圖和模型。MVVM的組成結構如下。

(1)模型層(Model):指數據模型,或指代表內容的數據訪問層,在前后端分離的架構中,可以理解為后端往前端傳遞的數據。

(2)視圖層(View):即用戶界面。

(3)視圖模型層(ViewModel):該層主要負責Model層與View層的通信以及數據與視圖之間的綁定。可以將數據封裝并傳遞至視圖層,或將視圖的行為與狀態的變換傳遞到Model層。

本文的課程案例采用前后端分離的架構開發。在該架構中,后端對應MVVM模式中的Model層,圍繞數據庫系統進行業務邏輯的處理,封裝數據(主要為JSON格式)并傳輸至前端。前端對應MVVM模式中的ViewModel層和View層。前端從后端獲取的數據通過JavaScript代碼進行二次封裝,以生成符合View層使用預期的視圖數據模型,以HTML加CSS的形式進行展示。當視圖發生變化時,前端根據與后端約定好的接口規則,通過JavaScript代碼向后端發起請求。而MVVM模式降低了模塊之間的耦合度,前后端分離架構提高了開發效率。

2.3.3CDIO中的構思

以學生為中心的教學模式,強調學生個性化學習。在前后端分離的技術應用中,項目里有很多代碼都是重復的。例如,幾乎每個基礎模塊的代碼都有增刪改查的功能,而這些功能都大同小異,如果這些功能都要自己去寫,將會降低開發的效率[8]。啟發學生積極思考,自己尋求解決方法,這種重復性的代碼可以使用代碼生成(前后端代碼的生成Java,html,xml,sql),也就是通過統- JSON數據格式設計,通過導人數據庫的表來生成代碼。

2.4Spring aoud微服務框架(運作,Operate)

2.4.1CDIO的運作(Operate)與Spring Cloud微服務框架

利用有限的時間將難懂的專業術語向學生描述清楚,使學生在操作的過程中因加深了對知識的理解而收獲成就感,從而增強學生的主動性、創造性和實踐能力。并且.教師通過設計詳細的運作文檔把過程中每一步的配置操作都記錄下來:學生通過對典型案例進行閱讀、思考、分析、討論、交流和操作復現,提高其分析問題和解決問題的能力[9]。學生掌握后端Spring Cloud微服務框架基本的運作,通過對SpringCloud的部署以及對環境的設置,使得項目得以正常運作。其運作的成果如圖2所示,基礎的點餐服務的各組件可以正常運行以及展示。

Spring Cloud Netflix微服務框架作為后端架構,在學生了解MVC設計模式、前后端分離技術以及SpringBoot框架的基礎上,為學生介紹分布式應用架構設計理念。微服務架構就是將原來單體應用,按照一定粒度拆分為多個獨立的服務,從而降低項目耦合度,實現快速擴容和彈性伸縮。本案例使用VM Ware虛擬機進行后端本地部署,操作系統使用CentOS 8,同時需要啟動餐飲信息管理系統所需要的各個組件。將相關組件啟動后,運行啟動腳本,即可完成部署,所有注冊成功的微服務都可以在Eureka注冊中心中進行查看。

2.4.2主要類圖與項目流程簡介

Controller類圖(API接口)如圖3所示,Service類圖(業務實現類)如圖4所示。以添加菜品為例,前端按照后端接口文檔給定參數,包括菜品名(name)、菜品圖標(icon)、菜品介紹(desc)、菜品價格(price)、菜品狀態(status)和菜品庫存(stock),并將其封裝成JSON對象,根據路由發送到后端。數據會先經過Zuul網關,判斷用戶是否登錄以及請求路徑是否合法等,然后會根據請求路徑分發到對應服務的Controller接口并轉換成對應的DTO對象進行數據校驗。在接口中會調用Service的方法進行業務邏輯處理,如果沒有出現錯誤,則會將DTO對象轉換為持久層(Mapper)對象,并調用持久層相應的添加方法將數據寫入數據庫中,完整的請求調用鏈可以通過Zipkin等分布式鏈路追蹤工具進行查看。

2.4.3服務組成結構

項目部署架構如圖5所示。

(1) DINNER-SERVER

Eureka注冊中心,提供服務注冊服務,其本身也屬于一個服務,各個節點啟動后,會在Eureka Server中進行注冊。Eureka Server不需要注冊自身,且不需要拉取配置文件。Eureka會定時刪除不健康的服務節點,當大批服務節點宕機時,Eureka會認為自身網絡故障,便會開啟自我保護模式,不再刪除節點,在該項目中將該功能關閉。并且,Eureka具有服務緩存的功能,當某個服務節點宕機時,微服務的Provider和Consumer仍可以依托緩存繼續通信。

(2) DINNER-CONFIG-SERVER

分布式配置中心,集中管理每個微服務的配置文件,使用Citee統一存儲,實現配置文件的版本控制。在配置文件中填人Gitee相關參數,當項目啟動時,Config Server會從遠程倉庫中拉取相關配置文件。

(3) MANACER-CATEWAY

餐飲信息管理系統賣家端人口,采用Spring CloudZuul作為API網關,可以根據訪問的路由將請求分發到相應的服務,自定義白名單對訪問名單內路由的所有請求直接放行。Hytrix為Spring Cloud Netflix的容錯組件,當遠程調用超出所設置的時間時,Hytrix將會執行相應的保護措施。Ribbon為Spring Cloud Netflix的負載均衡組件,當連接超出所設置的時間時,Ribbon將會根據相應的負載均衡算法,重新選擇服務節點,在本案例的多數服務中都有相關配置。

(4) CUSTOMER-CATEWAY

餐飲信息管理系統買家端的人口,同樣采用Spring Cloud Zuul作為API網關,其主要配置與MANACER-CATEWAY基本相同。在CUSTOMER-GATEWAY中對訂單服務等服務配置了服務降級處理,當遠程調用超時或錯誤時,將會返回托底數據,避免服務雪崩。

(5) DINNER-PRODUCT

菜品服務,買家端能夠查看菜品信息,賣家端能夠對菜品信息進行增刪改查等操作。在需要拉取配置文件的服務中編寫bootstrap.yml文件,編寫要獲取的配置文件的相關參數,Spring Boot會優先讀取該文件,然后訪問DINNER-CONFIG-SERVER獲取相應的配置文件,并使之生效。

(6) DINNER-ORDER

訂單服務,為買家提供下單功能,賣家能夠對訂單信息進行增刪改查等操作。

(7) DINNER-USER

用戶服務,提供買家與賣家用戶信息的各種操作。

(8) DINNER-AUTH

認證服務,負責賣家與買家的賬號登錄以及退出等操作。

案例提供Spring Cloud Netflix相關資料,可以讓學生可以更深入地了解Spring Cloud Netflix的相關知識。而項目的詳細結構、業務實現以及代碼邏輯等板塊,則可以讓學生自行閱讀源代碼進行研究[10]。

2.5網頁前端的實現(實現,Implement)

網頁前端的實現模塊提供美觀的圖形化網頁操作界面,屬于人機交互的界面接口設計以及CDIO的實現部分( Implement)。可供學生運行以及調試的網頁前端界面成果如圖6所示。

本案例前端技術采用React框架,UI框架使用Ant Design Pro,修改Nginx服務器配置文件,啟動Nginx即可完成前端部署。本案例前端架構基于AntDesign Pro框架開發,采用了TypeScript,React,Umi.js等前端技術棧,實現前后端分離的模式進行開發。通過React構建View層視圖以及ViewModel層的業務邏輯,利用Umi.js完整的插件體系與webpack進行前端工程化的模塊開發。其中,后臺管理界面采用的是ProComponents頁面組件進行構建,而權限管理、數據流、網絡請求服務、跨域代理、mock數據等業務則是通過Umi的各種播件進行開發。

2.6教學過程概述

(1)在課堂上為學生介紹項目基本情況,包括項目主題、項目模塊、相關技術等,并為學生提供所需要用到的軟件工具、基本項目代碼以及操作手冊。操作手冊提供圖文并茂的項目介紹、運行環境的安裝、項目部署步驟以及相關技術的參考資料[11]。但考慮到學生的能力水平不一致,需要鼓勵學生組隊合作,按照操作手冊的指示完成項目的部署。

(2)要求學生在課下認真研讀項目源碼,必要時可以根據操作手冊提供的資料對相關技術進行學習。教師需要收集學生在項目部署以及閱讀源碼時遇到的問題,在教學社群或課堂上予以解答。另外,建議學生根據技術偏好進行分工,如前端開發、后端開發、項目測試與項目運維,讓學生真實地了解軟件項目的開發流程以及生命周期,并應用軟件工程相關知識撰寫項目手冊,在課堂上進行展示和考查。

(3)在初次教學實踐中,有學生反饋項目部署與運行方面的問題。此后的教學中將會收集相關問題以及解決方案,不斷迭代操作手冊的內容。在成果展示中發現有更為優秀的項目,能夠作為新的項目模板進行教學,完成對教學案例的迭代。

3基于OBE和CDIO的實施要點

案例的基本簡化模塊已經在對計算機學院軟件工程專業學生的教學中進行實施,并提供了一定設計構建的經驗,通過在課程中注入模塊來加強學生對產品系統生命周期的了解。課程案例及實踐項目需要緊跟軟件行業的發展趨勢,學生的學習成果需要適應企業要求,通過教學案例改革,培養學生的軟件工程應用能力、軟件項目開發與測試能力、專業素質等,使學生熟悉軟件項目開發流程和規范,不僅要開發出好的軟件,還要培養良好的開發習慣。而且,通過教學案例提高了學生使用所學知識的能力以及根據實際情況解決具體問題的能力,也能培養學生的創新意識和團隊合作精神。更重要的是,學生可以通過案例接觸到最前沿的新技術,不會出現“閉門造車”的現象,能有效促進學生的成長[12]。

可見,理論和實踐是教學過程的兩個重要方面,兩者缺一不可,相輔相成。軟件開發的實踐體系要緊跟軟件產業的發展,注重軟件人才的綜合素質和創新意識的培養。因此,軟件開發的實際系統應該是分層的。首先,將課程案例劃分為知識塊,為每個知識模塊提供教學、模仿、升級、綜合項目。其次,這些項目是CDIO的項目,階段之間是多個知識塊的綜合應用。課堂以學生為中心,通過設計項目案例模塊,完善每個模塊的詳細操作指引文檔,引導學生按照文檔步驟完成各個模塊的任務,細心引導、幫助、培養學生完成任務,提高學生的學習興趣,耐心點撥學生困惑,使學生不斷進步。教師在教學的過程中要注重教育,讓學生享受成功的喜悅。最后,學生需要在課前根據教學微視頻提前完成知識學習,而教師需要在課堂上進行基礎項目的教學,引導學生從簡單到復雜,前后銜接,使得教學更深入、更徹底。

隨著項目實踐的增加,大部分學生都能在學習中自行解決問題,循序漸進地總結,最終形成理論。應用CDIO教育理念,設計項目教學環節,目的是激發學生的興趣、好奇心和熱情,帶動學生團隊和個人努力探索新知識。因此,闖關流程分為個人級別和團隊級別、強制級別和可選級別。案例項目的設計要滿足學生的個體差異,引導學生積極學習新知識。

4結束語

本文探討了CDIO-OBE教育模式下的軟件工程教學案例模塊的設計與實施。軟件工程案例的教學按照知識模塊一共劃分為四個模塊,即餐飲信息管理系統軟件結構的設計與數據模型設計(設計Design)、MVVM方案的構思(構思Conceive)、Spring Cloud框架(運作Operate)和網頁前端的實現(實現Implement),并在案例各模塊充分展現基于成果的教育(OBE)。在案例中,項目的學習成果可以通過可視化的形式展現出來。同時,以CDIO-OBE為導向,教學內容緊跟時代發展步伐,強調科技創新的新技術和新方法,同步課程改革內容,按照內容分解任務,重構教學案例,并為每個模塊設計詳細實現文檔,然后布置相應的案例任務來指導學生按照文檔內容逐步去實現。通過期望學習輸出,使學生清晰地了解學習課程后將要達到的學習成果,提高課程的教學質量,為學生就業打下良好的基礎。基于CDIO-OBE的工程教育模式理念能夠培養學生的創新精神,也能提升學生解決實際問題的能力,是強化實踐的有效手段。從審查及評價結果可以看出,采用此教學理念模式的教學效果明顯,具有一定的理論價值與應用價值。

猜你喜歡
教學
微課讓高中數學教學更高效
甘肅教育(2020年14期)2020-09-11 07:57:50
「微寫作」教學實踐的思考
“以讀促寫”在初中寫作教學中的應用
如何讓高中生物教學變得生動有趣
甘肅教育(2020年12期)2020-04-13 06:25:34
談高中音樂欣賞教學中的“聽、看、想、說、動”
“自我診斷表”在高中數學教學中的應用
東方教育(2017年19期)2017-12-05 15:14:48
對外漢語教學中“想”和“要”的比較
唐山文學(2016年2期)2017-01-15 14:03:59
對識譜教學的認識與思考
《可以預約的雪》教學探索與思考
中學語文(2015年6期)2015-03-01 03:51:42
對高等數學教學的一些思考
主站蜘蛛池模板: 一区二区无码在线视频| 高潮毛片免费观看| 亚洲综合激情另类专区| 五月天综合婷婷| 五月综合色婷婷| 一级一级一片免费| 欧美午夜视频在线| 国产在线91在线电影| 三级毛片在线播放| 国产丰满大乳无码免费播放| 中文字幕久久波多野结衣| 国产自在线播放| 伊人色在线视频| 思思99热精品在线| 国产女人18毛片水真多1| 色偷偷一区| 欧美a在线看| 综合色在线| 呦系列视频一区二区三区| 国产玖玖玖精品视频| 99热精品久久| 精品人妻无码中字系列| 91区国产福利在线观看午夜| 亚洲乱码视频| 91九色最新地址| 久久www视频| 亚洲国产日韩一区| 最新亚洲人成无码网站欣赏网| 国产黄色爱视频| 欧美国产综合色视频| 美女国产在线| 中文国产成人精品久久| 性视频久久| 日本高清有码人妻| 亚洲欧美在线精品一区二区| 亚洲清纯自偷自拍另类专区| 亚洲性日韩精品一区二区| 亚洲日韩AV无码精品| 亚洲欧美日韩综合二区三区| 播五月综合| 亚洲欧美另类日本| 丰满的熟女一区二区三区l| 午夜人性色福利无码视频在线观看| 欧美高清视频一区二区三区| 久久国产拍爱| 亚洲精品欧美重口| 免费观看精品视频999| 日韩无码视频专区| 欧美人与牲动交a欧美精品| 无码高潮喷水在线观看| 亚洲IV视频免费在线光看| 午夜福利在线观看成人| 美女国产在线| 乱码国产乱码精品精在线播放| 亚洲成网站| 欧美成人午夜视频| 狠狠色丁香婷婷综合| 国产精品部在线观看| 天堂av高清一区二区三区| 亚洲性色永久网址| 全部免费特黄特色大片视频| 欧美亚洲国产视频| 97视频免费在线观看| 伊人国产无码高清视频| 亚洲中文字幕在线精品一区| 成人精品视频一区二区在线| 欧美翘臀一区二区三区| 国产网站黄| 国产拍在线| 精品人妻一区二区三区蜜桃AⅤ| 香蕉视频国产精品人| 亚洲国产日韩一区| 玖玖精品在线| 99成人在线观看| 日韩a级毛片| 成人精品在线观看| 毛片视频网址| 国产亚洲高清在线精品99| 久久人人爽人人爽人人片aV东京热 | 熟妇人妻无乱码中文字幕真矢织江 | 成人午夜视频网站| 国产欧美在线观看精品一区污|