国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

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

2022-04-29 00:44:03陳國(guó)明李振鵬張嘉琛周如旗陳強(qiáng)朱雄泳
計(jì)算機(jī)應(yīng)用文摘 2022年20期
關(guān)鍵詞:軟件工程教學(xué)

陳國(guó)明 李振鵬 張嘉琛 周如旗 陳強(qiáng) 朱雄泳

關(guān)鍵詞:軟件工程;Spring Cloud;教學(xué);CDIO-OBE

1引言

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

在教學(xué)案例整體設(shè)計(jì)中,要合理銜接專業(yè)知識(shí)與社會(huì)需求,引導(dǎo)學(xué)生掌握科學(xué)的思維方法,辨明研究方向。通過“案例項(xiàng)目驅(qū)動(dòng)”的教學(xué)模式,培養(yǎng)學(xué)生由被動(dòng)學(xué)習(xí)到主動(dòng)創(chuàng)新研發(fā)的能力:借助線上線下多種學(xué)習(xí)媒介,提高學(xué)生的學(xué)習(xí)能力和創(chuàng)新意識(shí)。CDIO工程教育模式代表構(gòu)思(Conceive)、設(shè)計(jì)(Design)、實(shí)現(xiàn)(Implement)和運(yùn)作(Operate),符合軟件行業(yè)對(duì)應(yīng)用型人才的培養(yǎng)要求,被廣泛應(yīng)用到軟件工程教學(xué)改革實(shí)踐中。

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

20BE和CDIO教育理念的融合

OBE起源于1990年前后,是由美國(guó)教育家威廉.G.斯派迪提出的教學(xué)教育以學(xué)生為導(dǎo)向,以結(jié)果為導(dǎo)向的教育教學(xué)模式。目前,OBE已在新西蘭、美國(guó)、澳大利亞等國(guó)家進(jìn)行實(shí)施,并取得了良好的教學(xué)反饋。在中國(guó),OBE被稱為以結(jié)果為導(dǎo)向的教育模型,它強(qiáng)調(diào)的三個(gè)核心概念模型是面向輸出的、以學(xué)生為中心的、連續(xù)的改進(jìn),這些概念代表了工程教育改革方向和先進(jìn)教育理念。

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

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

2.1軟件工程案例教學(xué)模塊的設(shè)計(jì)

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

2.2餐飲信息管理系統(tǒng)軟件結(jié)構(gòu)設(shè)計(jì)以及數(shù)據(jù)模型設(shè)計(jì)(設(shè)計(jì),Design)

在融合OBE和CDIO的教學(xué)案例設(shè)計(jì)中,前期信息系統(tǒng)需求分析包括系統(tǒng)功能建模、系統(tǒng)對(duì)象建模、系統(tǒng)動(dòng)態(tài)建模。以數(shù)據(jù)模型設(shè)計(jì)(提供餐飲信息管理系統(tǒng)的數(shù)據(jù)模型)為例,通過建立基本的概念數(shù)據(jù)模型、邏輯數(shù)據(jù)模型以及物理數(shù)據(jù)模型,在CDIO中強(qiáng)調(diào)設(shè)計(jì)(Design)的理念,范例中的數(shù)據(jù)模型可供學(xué)生參考,并由學(xué)生提出改進(jìn)方案。

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

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

2.3.1MVC模式

構(gòu)思是設(shè)計(jì)過程中的一種模式,在這種模式中,學(xué)生將精力集中在構(gòu)思的產(chǎn)生上。CDIO中的構(gòu)思比較抽象,學(xué)生難以迅速集中注意力進(jìn)行訓(xùn)練,學(xué)習(xí)難度較大。良好的案例有助于學(xué)生對(duì)工程設(shè)計(jì)內(nèi)容的理解,突破難點(diǎn),改善訓(xùn)練環(huán)境。好的設(shè)計(jì)模式還能使軟件更容易修改和維護(hù),其結(jié)構(gòu)經(jīng)過長(zhǎng)期發(fā)展形成解決方案,體現(xiàn)出創(chuàng)作構(gòu)思的整體性。這種構(gòu)思在實(shí)施可行的基礎(chǔ)上具有一定的創(chuàng)新性。

所謂MVC模式,即模型一視圖一控制器(Model-View-Controller)模式,三個(gè)部分分別對(duì)應(yīng)內(nèi)部數(shù)據(jù)、數(shù)據(jù)表示和輸入/輸出控制部分,把它們分開獨(dú)立設(shè)計(jì),其過程是:首先,控制器接收用戶的請(qǐng)求,并決定調(diào)用哪個(gè)模型進(jìn)行處理;然后,模型用業(yè)務(wù)邏輯來響應(yīng)用戶的請(qǐng)求并返回?cái)?shù)據(jù):最后,控制器用視圖來表示模型返回的數(shù)據(jù),將其呈現(xiàn)給用戶。模型側(cè)重?cái)?shù)據(jù)和功能,視圖側(cè)重?cái)?shù)據(jù)顯示,控制器側(cè)重用戶輸入,其優(yōu)點(diǎn)是把數(shù)據(jù)和業(yè)務(wù)規(guī)則分開表示。

(1)模型對(duì)象

模型對(duì)象是應(yīng)用程序中用于處理應(yīng)用程序數(shù)據(jù)邏輯的部分,其變化通過事件處理通知視圖和控制器對(duì)象。

(2)視圖對(duì)象

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

(3)控制器對(duì)象

控制器對(duì)象代表事件,主要處理用戶的輸入行為,給模型發(fā)送業(yè)務(wù)事件,將其解析為模型執(zhí)行的動(dòng)作。同時(shí),模型的更新與修改經(jīng)由控制器通知視圖,實(shí)現(xiàn)各視圖與模型的一致。

2.3.2MVVM模式

MVVM模式改進(jìn)了MVC模式,更好地分離了視圖和模型。MVVM的組成結(jié)構(gòu)如下。

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

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

(3)視圖模型層(ViewModel):該層主要負(fù)責(zé)Model層與View層的通信以及數(shù)據(jù)與視圖之間的綁定。可以將數(shù)據(jù)封裝并傳遞至視圖層,或?qū)⒁晥D的行為與狀態(tài)的變換傳遞到Model層。

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

2.3.3CDIO中的構(gòu)思

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

2.4Spring aoud微服務(wù)框架(運(yùn)作,Operate)

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

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

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

2.4.2主要類圖與項(xiàng)目流程簡(jiǎn)介

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

2.4.3服務(wù)組成結(jié)構(gòu)

項(xiàng)目部署架構(gòu)如圖5所示。

(1) DINNER-SERVER

Eureka注冊(cè)中心,提供服務(wù)注冊(cè)服務(wù),其本身也屬于一個(gè)服務(wù),各個(gè)節(jié)點(diǎn)啟動(dòng)后,會(huì)在Eureka Server中進(jìn)行注冊(cè)。Eureka Server不需要注冊(cè)自身,且不需要拉取配置文件。Eureka會(huì)定時(shí)刪除不健康的服務(wù)節(jié)點(diǎn),當(dāng)大批服務(wù)節(jié)點(diǎn)宕機(jī)時(shí),Eureka會(huì)認(rèn)為自身網(wǎng)絡(luò)故障,便會(huì)開啟自我保護(hù)模式,不再刪除節(jié)點(diǎn),在該項(xiàng)目中將該功能關(guān)閉。并且,Eureka具有服務(wù)緩存的功能,當(dāng)某個(gè)服務(wù)節(jié)點(diǎn)宕機(jī)時(shí),微服務(wù)的Provider和Consumer仍可以依托緩存繼續(xù)通信。

(2) DINNER-CONFIG-SERVER

分布式配置中心,集中管理每個(gè)微服務(wù)的配置文件,使用Citee統(tǒng)一存儲(chǔ),實(shí)現(xiàn)配置文件的版本控制。在配置文件中填人Gitee相關(guān)參數(shù),當(dāng)項(xiàng)目啟動(dòng)時(shí),Config Server會(huì)從遠(yuǎn)程倉庫中拉取相關(guān)配置文件。

(3) MANACER-CATEWAY

餐飲信息管理系統(tǒng)賣家端人口,采用Spring CloudZuul作為API網(wǎng)關(guān),可以根據(jù)訪問的路由將請(qǐng)求分發(fā)到相應(yīng)的服務(wù),自定義白名單對(duì)訪問名單內(nèi)路由的所有請(qǐng)求直接放行。Hytrix為Spring Cloud Netflix的容錯(cuò)組件,當(dāng)遠(yuǎn)程調(diào)用超出所設(shè)置的時(shí)間時(shí),Hytrix將會(huì)執(zhí)行相應(yīng)的保護(hù)措施。Ribbon為Spring Cloud Netflix的負(fù)載均衡組件,當(dāng)連接超出所設(shè)置的時(shí)間時(shí),Ribbon將會(huì)根據(jù)相應(yīng)的負(fù)載均衡算法,重新選擇服務(wù)節(jié)點(diǎn),在本案例的多數(shù)服務(wù)中都有相關(guān)配置。

(4) CUSTOMER-CATEWAY

餐飲信息管理系統(tǒng)買家端的人口,同樣采用Spring Cloud Zuul作為API網(wǎng)關(guān),其主要配置與MANACER-CATEWAY基本相同。在CUSTOMER-GATEWAY中對(duì)訂單服務(wù)等服務(wù)配置了服務(wù)降級(jí)處理,當(dāng)遠(yuǎn)程調(diào)用超時(shí)或錯(cuò)誤時(shí),將會(huì)返回托底數(shù)據(jù),避免服務(wù)雪崩。

(5) DINNER-PRODUCT

菜品服務(wù),買家端能夠查看菜品信息,賣家端能夠?qū)Σ似沸畔⑦M(jìn)行增刪改查等操作。在需要拉取配置文件的服務(wù)中編寫bootstrap.yml文件,編寫要獲取的配置文件的相關(guān)參數(shù),Spring Boot會(huì)優(yōu)先讀取該文件,然后訪問DINNER-CONFIG-SERVER獲取相應(yīng)的配置文件,并使之生效。

(6) DINNER-ORDER

訂單服務(wù),為買家提供下單功能,賣家能夠?qū)τ唵涡畔⑦M(jìn)行增刪改查等操作。

(7) DINNER-USER

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

(8) DINNER-AUTH

認(rèn)證服務(wù),負(fù)責(zé)賣家與買家的賬號(hào)登錄以及退出等操作。

案例提供Spring Cloud Netflix相關(guān)資料,可以讓學(xué)生可以更深入地了解Spring Cloud Netflix的相關(guān)知識(shí)。而項(xiàng)目的詳細(xì)結(jié)構(gòu)、業(yè)務(wù)實(shí)現(xiàn)以及代碼邏輯等板塊,則可以讓學(xué)生自行閱讀源代碼進(jìn)行研究[10]。

2.5網(wǎng)頁前端的實(shí)現(xiàn)(實(shí)現(xiàn),Implement)

網(wǎng)頁前端的實(shí)現(xiàn)模塊提供美觀的圖形化網(wǎng)頁操作界面,屬于人機(jī)交互的界面接口設(shè)計(jì)以及CDIO的實(shí)現(xiàn)部分( Implement)??晒W(xué)生運(yùn)行以及調(diào)試的網(wǎng)頁前端界面成果如圖6所示。

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

2.6教學(xué)過程概述

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

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

(3)在初次教學(xué)實(shí)踐中,有學(xué)生反饋項(xiàng)目部署與運(yùn)行方面的問題。此后的教學(xué)中將會(huì)收集相關(guān)問題以及解決方案,不斷迭代操作手冊(cè)的內(nèi)容。在成果展示中發(fā)現(xiàn)有更為優(yōu)秀的項(xiàng)目,能夠作為新的項(xiàng)目模板進(jìn)行教學(xué),完成對(duì)教學(xué)案例的迭代。

3基于OBE和CDIO的實(shí)施要點(diǎn)

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

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

隨著項(xiàng)目實(shí)踐的增加,大部分學(xué)生都能在學(xué)習(xí)中自行解決問題,循序漸進(jìn)地總結(jié),最終形成理論。應(yīng)用CDIO教育理念,設(shè)計(jì)項(xiàng)目教學(xué)環(huán)節(jié),目的是激發(fā)學(xué)生的興趣、好奇心和熱情,帶動(dòng)學(xué)生團(tuán)隊(duì)和個(gè)人努力探索新知識(shí)。因此,闖關(guān)流程分為個(gè)人級(jí)別和團(tuán)隊(duì)級(jí)別、強(qiáng)制級(jí)別和可選級(jí)別。案例項(xiàng)目的設(shè)計(jì)要滿足學(xué)生的個(gè)體差異,引導(dǎo)學(xué)生積極學(xué)習(xí)新知識(shí)。

4結(jié)束語

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

猜你喜歡
軟件工程教學(xué)
微課讓高中數(shù)學(xué)教學(xué)更高效
甘肅教育(2020年14期)2020-09-11 07:57:50
“自我診斷表”在高中數(shù)學(xué)教學(xué)中的應(yīng)用
東方教育(2017年19期)2017-12-05 15:14:48
對(duì)外漢語教學(xué)中“想”和“要”的比較
依托工作室的軟件工程實(shí)踐教學(xué)研究
基于工程教育認(rèn)證的《軟件工程》課程教學(xué)質(zhì)量建設(shè)研究 
關(guān)于提高軟件工程實(shí)踐教學(xué)質(zhì)量的幾點(diǎn)思考
關(guān)于如何創(chuàng)新和完善計(jì)算機(jī)軟件工程管理的探討
跨越式跳高的教學(xué)絕招
體育師友(2013年6期)2013-03-11 18:52:18
三江| 光山县| 布尔津县| 麦盖提县| 文山县| 张家港市| 贡觉县| 凌源市| 惠安县| 治县。| 绿春县| 嘉义县| 高碑店市| 苏尼特右旗| 平塘县| 宜川县| 道真| 同德县| 隆德县| 甘孜县| 沐川县| 新干县| 股票| 巴南区| 莲花县| 长子县| 蒙山县| 长岭县| 夹江县| 合肥市| 韩城市| 永年县| 崇阳县| 沾益县| 固安县| 淮安市| 句容市| 四平市| 疏附县| 长顺县| 嘉鱼县|