郭艷燕,楊 軍,畢遠(yuǎn)偉,婁蘭芳
(1.煙臺(tái)大學(xué) 計(jì)算機(jī)與控制工程學(xué)院,山東 煙臺(tái)264005;2. 煙臺(tái)大學(xué)文經(jīng)學(xué)院 教務(wù)部,山東 煙臺(tái) 264005 )
為了培養(yǎng)學(xué)生面向?qū)ο蟮能浖こ虒?shí)踐能力,以面向?qū)ο笏枷霝轵?qū)動(dòng),設(shè)置軟件工程專業(yè)的面向?qū)ο笳n程體系,課程包括面向?qū)ο蟪绦蛟O(shè)計(jì)、數(shù)據(jù)結(jié)構(gòu)與算法、數(shù)據(jù)庫原理及應(yīng)用、統(tǒng)一建模語言UML、面向?qū)ο蠓椒▽W(xué)、軟件體系結(jié)構(gòu)、軟件工程,并配備相應(yīng)的課程實(shí)訓(xùn)或課程設(shè)計(jì)來強(qiáng)化實(shí)踐環(huán)節(jié),按照知識(shí)層次由淺入深、專業(yè)技能由獨(dú)立到系統(tǒng)、綜合實(shí)踐能力由弱到強(qiáng),搭建出基礎(chǔ)、深入、綜合三階段的漸進(jìn)性階梯式面向?qū)ο笳n程體系的理論和實(shí)踐教學(xué)框架,如圖1所示。
圖1 面向?qū)ο笳n程體系的理論和實(shí)踐教學(xué)框架
基礎(chǔ)階段,通過學(xué)習(xí)面向?qū)ο蟪绦蛟O(shè)計(jì)課程,學(xué)生掌握一門面向?qū)ο缶幊陶Z言,培養(yǎng)學(xué)生的程序設(shè)計(jì)能力;通過數(shù)據(jù)結(jié)構(gòu)和算法課程,培養(yǎng)學(xué)生的數(shù)據(jù)抽象、分析、組織和處理能力;通過數(shù)據(jù)庫原理及應(yīng)用課程,培養(yǎng)學(xué)生利用數(shù)據(jù)庫進(jìn)行數(shù)據(jù)存儲(chǔ)和處理數(shù)據(jù)的能力。深入階段,學(xué)生通過統(tǒng)一建模語言UML課程的學(xué)習(xí),掌握軟件可視化建模的方法和技術(shù),直觀感受和理解面向?qū)ο笏枷?;通過面向?qū)ο蠓椒▽W(xué)課程的學(xué)習(xí),深入全面地掌握面向?qū)ο筌浖_發(fā)的方法和技術(shù)。綜合階段,學(xué)生通過軟件體系結(jié)構(gòu)課程的學(xué)習(xí),理解軟件構(gòu)架的設(shè)計(jì)理論,掌握設(shè)計(jì)模式和架構(gòu)模式,加深對(duì)面向?qū)ο蟮恼J(rèn)識(shí),提升構(gòu)建可復(fù)用性、靈活性、可擴(kuò)展性的高質(zhì)量軟件的能力;通過軟件工程課程的學(xué)習(xí),能夠系統(tǒng)地掌握軟件開發(fā)各階段的目標(biāo)和任務(wù)[3],通過真實(shí)的軟件工程實(shí)踐案例,感受面向?qū)ο筌浖_發(fā)的優(yōu)勢(shì),提高面向?qū)ο蟮母呒?jí)應(yīng)用能力和綜合實(shí)踐能力。課程體系的實(shí)踐環(huán)節(jié),還包括通過鼓勵(lì)學(xué)生參與課外的“互聯(lián)網(wǎng)+”大學(xué)生創(chuàng)新創(chuàng)業(yè)大賽、開放實(shí)驗(yàn)室基金項(xiàng)目、教師科研課題、科技創(chuàng)新及學(xué)科競(jìng)賽等,有效提升學(xué)生的實(shí)踐創(chuàng)新能力[4]。
UML是一種基于面向?qū)ο蟮目梢暬UZ言,是面向?qū)ο笏枷氲挠辛Ρ磉_(dá),是面向?qū)ο蠓椒ㄕ撧D(zhuǎn)化為實(shí)踐的重要工具,在整個(gè)軟件開發(fā)周期都發(fā)揮著重要作用。用例需求分析、面向?qū)ο蠓治雠c設(shè)計(jì)、設(shè)計(jì)模式、架構(gòu)模式、面向?qū)ο筌浖?shí)現(xiàn)與測(cè)試都與UML建模緊密相關(guān)。UML軟件建模不僅有利于理解、分析、設(shè)計(jì)、實(shí)現(xiàn)復(fù)雜的軟件系統(tǒng),而且是制作高質(zhì)量軟件開發(fā)文檔的高效手段。
UML的知識(shí)結(jié)構(gòu)如圖2所示,包括5種視圖和13種圖,不同種類的UML圖反映系統(tǒng)的不同方面,具有不同的抽象層次,在軟件開發(fā)不同階段的重要性也各不相同。由于UML圖直觀易于理解的特點(diǎn),在課程體系的實(shí)踐教學(xué)中,將知識(shí)點(diǎn)與相關(guān)的UML圖進(jìn)行配合講解,建立UML模型與軟件分析、設(shè)計(jì)、實(shí)現(xiàn)之間的映射關(guān)系,有利于幫助學(xué)生理解抽象的課程內(nèi)容,感受面向?qū)ο笏枷?。面向?qū)ο笳n程體系涉及軟件開發(fā)過程的多門課程,將UML作為實(shí)踐教學(xué)的輔助工具,作為貫穿融通課程體系知識(shí)的主線,是教學(xué)改革中的創(chuàng)新思路,如圖3所示。
圖2 UML知識(shí)結(jié)構(gòu)框架
圖3 以UML貫穿主線的面向?qū)ο笳n程體系
1)UML類圖。
類圖給出了系統(tǒng)的靜態(tài)設(shè)計(jì)視圖和靜態(tài)進(jìn)程視圖。類圖不僅內(nèi)涵表達(dá)豐富,而且與其他UML圖有著緊密的聯(lián)系,在UML模型圖中占據(jù)重要地位,是進(jìn)行軟件分析和設(shè)計(jì)最主要的圖,是連接設(shè)計(jì)人員和軟件實(shí)現(xiàn)人員之間的橋梁,在軟件開發(fā)過程中有著特殊的意義,涉及軟件開發(fā)的多個(gè)領(lǐng)域和方面。因此在實(shí)踐教學(xué)中,類圖成為最常用的圖。
2)UML順序圖。
實(shí)際上關(guān)于小組合作教學(xué)形式早就有所研究,但是不同的研究學(xué)者保持著不同的觀點(diǎn).例如美國的約翰·斯萊文教師就曾經(jīng)研究過合作學(xué)習(xí)這種形式,他認(rèn)為其本質(zhì)上就是能夠讓學(xué)生在小組中自主的學(xué)習(xí).但是我國的研究學(xué)者卻有著稍微有所差別的看法,小組合作學(xué)習(xí)形式是一種讓學(xué)生共同進(jìn)步的一種教學(xué)方式.
順序圖專注于系統(tǒng)的動(dòng)態(tài)視圖,是在靜態(tài)視圖基礎(chǔ)上對(duì)系統(tǒng)行為描述的有利補(bǔ)充,關(guān)注在時(shí)間軸上多個(gè)對(duì)象的消息交互。順序圖是UML交互圖中最重要、最常用的圖,尤其是帶有組合交互片段的順序圖,對(duì)復(fù)雜交互情景的描述能力比通信圖強(qiáng)很多,并且是交互縱覽圖的基本組成部分。因此在實(shí)踐教學(xué)中,涉及描述系統(tǒng)交互的實(shí)例可以使用UML順序圖。
3)UML狀態(tài)機(jī)圖。
狀態(tài)機(jī)圖給出了系統(tǒng)的動(dòng)態(tài)視圖,描述對(duì)象具有的各種狀態(tài)、狀態(tài)之間的轉(zhuǎn)換過程以及觸發(fā)狀態(tài)轉(zhuǎn)換的各種事件和條件。狀態(tài)機(jī)圖關(guān)注一個(gè)實(shí)體基于事件反應(yīng)的動(dòng)態(tài)行為,對(duì)于描述類、接口、子系統(tǒng)的復(fù)雜行為尤為重要,非常有助于對(duì)反應(yīng)式系統(tǒng)的建模。因此在實(shí)踐教學(xué)中,涉及依賴于對(duì)象狀態(tài)的行為描述可以使用UML狀態(tài)機(jī)圖。
4)UML活動(dòng)圖。
活動(dòng)圖給出了系統(tǒng)的動(dòng)態(tài)視圖,關(guān)注對(duì)象之間控制流的轉(zhuǎn)換和同步機(jī)制,通常用于描述一個(gè)操作或用例實(shí)現(xiàn)過程中各項(xiàng)活動(dòng)的執(zhí)行流程,是描述算法設(shè)計(jì)的有利工具,對(duì)系統(tǒng)的功能建模和業(yè)務(wù)流程建模特別重要。因此在實(shí)踐教學(xué)中,涉及算法、方法實(shí)現(xiàn)、并行處理的描述可以使用UML活動(dòng)圖。
面向?qū)ο蟪绦蛟O(shè)計(jì)是學(xué)生接觸面向?qū)ο笏枷氲牡谝婚T課程,學(xué)習(xí)使用C++編程語言進(jìn)行程序設(shè)計(jì),通過C++的具體語法體系初步感受面向?qū)ο笏枷?。例如,在講解C++“類的繼承”知識(shí)點(diǎn)時(shí),使用C++代碼定義基類和派生類來建立繼承關(guān)系,如圖4的代碼所示,派生類定義時(shí)不需要包含基類中已有的成員,只需要添加派生類中自己新增的成員,從代碼上體現(xiàn)派生類對(duì)基類的復(fù)用。但僅僅使用代碼的方式體現(xiàn)類的繼承關(guān)系,將會(huì)使學(xué)生把關(guān)注點(diǎn)放在繼承的C++語法結(jié)構(gòu)上,而忽略代碼在深層次上所體現(xiàn)的面向?qū)ο笏枷搿?/p>
在實(shí)踐教學(xué)中,將C++的類繼承代碼與對(duì)應(yīng)UML類圖來聯(lián)合展示,能更好地讓學(xué)生直觀地感受面向?qū)ο笏枷搿ML使用矩形框?qū)?shù)據(jù)和對(duì)數(shù)據(jù)進(jìn)行操作的方法進(jìn)行封裝,體現(xiàn)面向?qū)ο蟮摹胺庋b性”。通過UML類圖中的泛化關(guān)系來展示類之間的繼承關(guān)系,基類和派生類具有一般類和特殊類之間的關(guān)系,體現(xiàn)面向?qū)ο蟮摹袄^承性”;通過在派生類中添加與基類成員同名的新成員來實(shí)現(xiàn)覆蓋機(jī)制,為實(shí)現(xiàn)面向?qū)ο蟮摹岸鄳B(tài)性”奠定基礎(chǔ)。通過該教學(xué)實(shí)例,讓學(xué)生系統(tǒng)地感受到“封裝”是“繼承”的前提和基礎(chǔ),而“繼承”是為了實(shí)現(xiàn)復(fù)用,最終達(dá)到“多態(tài)”的目的。
圖4 UML類圖與類繼承的C++代碼
數(shù)據(jù)結(jié)構(gòu)與算法是軟件工程專業(yè)一門非常重要的專業(yè)基礎(chǔ)課,介紹常見的數(shù)據(jù)結(jié)構(gòu)及其在計(jì)算機(jī)中的存儲(chǔ)結(jié)構(gòu)和操作實(shí)現(xiàn)。將面向?qū)ο笏枷胍朐撜n程,一方面是將C++作為數(shù)據(jù)結(jié)構(gòu)的實(shí)現(xiàn)語言;一方面采用抽象數(shù)據(jù)類型,將數(shù)據(jù)結(jié)構(gòu)中的邏輯結(jié)構(gòu)與數(shù)據(jù)運(yùn)算進(jìn)行封裝,隱藏存儲(chǔ)實(shí)現(xiàn)細(xì)節(jié),達(dá)到以一致的方式調(diào)用底層數(shù)據(jù)結(jié)構(gòu)的目的;另一方面C++中的標(biāo)準(zhǔn)模板庫STL是面向?qū)ο髷?shù)據(jù)結(jié)構(gòu)在更高層次上的抽象。
實(shí)踐教學(xué)實(shí)例1:按照物理存儲(chǔ)結(jié)構(gòu),棧分為順序棧和鏈?zhǔn)綏?。以鏈?zhǔn)綏5闹v解為例,為了使鏈表?xiàng)?shù)據(jù)存儲(chǔ)更具通用性,采用C++的類模板機(jī)制來定義節(jié)點(diǎn)與鏈?zhǔn)綏?,代碼如圖5所示。在教學(xué)過程中,鏈?zhǔn)綏=Y(jié)構(gòu)可以借助對(duì)應(yīng)的UML帶參數(shù)的類圖進(jìn)行可視化展示,鏈?zhǔn)綏V泄?jié)點(diǎn)與節(jié)點(diǎn)之間的鏈接關(guān)系使用UML中單向自反關(guān)聯(lián)關(guān)系進(jìn)行展示,體現(xiàn)出面向?qū)ο蠼Y(jié)構(gòu)中的“實(shí)例連接關(guān)系”,鏈?zhǔn)綏Ec節(jié)點(diǎn)之間的關(guān)系使用UML中組合關(guān)系進(jìn)行展示,體現(xiàn)出面向?qū)ο蠼Y(jié)構(gòu)中的“復(fù)雜事物由簡(jiǎn)單事物組成”。
實(shí)踐教學(xué)實(shí)例2:對(duì)算法的描述不僅可以使用偽代碼,而且可以使用能代替流程圖的UML活動(dòng)圖。學(xué)生通過UML活動(dòng)圖很容易直觀地理解算法的執(zhí)行流程和步驟,圖6使用UML活動(dòng)圖對(duì)冒泡排序算法進(jìn)行可視化描述。
圖5 UML帶參數(shù)的類圖與數(shù)據(jù)結(jié)構(gòu)鏈表?xiàng)5腃++描述
圖6 UML活動(dòng)圖與冒泡排序算法偽代碼
數(shù)據(jù)庫原理及應(yīng)用是軟件工程專業(yè)的核心課程,是專業(yè)理論及實(shí)踐教育的重要基礎(chǔ),主要介紹關(guān)系型數(shù)據(jù)庫的基本理論和實(shí)現(xiàn)方法,學(xué)生通過該課程的學(xué)習(xí),能夠熟練掌握數(shù)據(jù)庫設(shè)計(jì)方法和應(yīng)用技術(shù)。對(duì)數(shù)據(jù)庫建模是數(shù)據(jù)庫設(shè)計(jì)的關(guān)鍵,通過數(shù)據(jù)庫輔助設(shè)計(jì)工具可以實(shí)現(xiàn)數(shù)據(jù)庫建模,構(gòu)建數(shù)據(jù)庫設(shè)計(jì)的概念模型和物理模型[5]。使用UML建模工具可以實(shí)現(xiàn)數(shù)據(jù)庫建模。
在實(shí)踐教學(xué)中,一個(gè)關(guān)系型數(shù)據(jù)庫能夠?yàn)閁ML模型提供一套優(yōu)秀的實(shí)現(xiàn)。例如,在系統(tǒng)分析階段,將E-R圖所描述的實(shí)體關(guān)系使用具有關(guān)聯(lián)關(guān)系的UML實(shí)體類圖展示,從而構(gòu)建數(shù)據(jù)庫的概念模型;在系統(tǒng)設(shè)計(jì)階段,依據(jù)UML實(shí)體類關(guān)系圖實(shí)現(xiàn)對(duì)數(shù)據(jù)庫表的設(shè)計(jì),從而構(gòu)建數(shù)據(jù)庫的物理模型。UML實(shí)體類圖與對(duì)應(yīng)的數(shù)據(jù)庫表設(shè)計(jì)如圖7所示,將具有“1對(duì)多”關(guān)聯(lián)的兩個(gè)實(shí)體類映射為兩張關(guān)系數(shù)據(jù)庫表,實(shí)體類名映射成表名,實(shí)體類中的屬性作為表中的字段出現(xiàn),并將多重性為“1”的表主鍵放在多重性為“多”的表中作為外鍵,來完成實(shí)體類分析到數(shù)據(jù)庫表的設(shè)計(jì)。
面向?qū)ο蠓椒▽W(xué)是提高學(xué)生軟件開發(fā)實(shí)踐能力的重要專業(yè)課,深入、系統(tǒng)、完整地講解面向?qū)ο蟮能浖治?、設(shè)計(jì)、實(shí)現(xiàn)及重構(gòu)方法。該課程雖然強(qiáng)調(diào)以實(shí)踐為主,卻以較強(qiáng)的理論知識(shí)為基礎(chǔ)[6],因此只有對(duì)抽象理論理解透徹,才能加以正確地實(shí)踐。
實(shí)踐教學(xué)實(shí)例1:“單一職責(zé)原則(SRP,Single Responsibility Principle)”是七大面向?qū)ο笤O(shè)計(jì)原則之一,是為了確保軟件設(shè)計(jì)具有高內(nèi)聚的特性,具體陳述為“就一個(gè)類而言,應(yīng)該僅有一個(gè)引起它變化的原因”。由于設(shè)計(jì)原則本身的文字描述過于抽象不易理解,因此在講解時(shí)需要配合對(duì)應(yīng)的UML類圖進(jìn)行思想展示。在教學(xué)實(shí)踐中,通過一個(gè)違反SRP的UML圖實(shí)例,如圖8左圖所示,將矩形的計(jì)算功能與矩形的繪制功能封裝在一個(gè)Rectangle類中,并與兩個(gè)使用該類的應(yīng)用程序建立使用依賴關(guān)系。在此設(shè)計(jì)下,如果GUI圖形庫發(fā)生變化,不僅會(huì)導(dǎo)致與矩形繪制功能相關(guān)的繪圖程序發(fā)生變化,而且會(huì)導(dǎo)致與圖形繪制功能不相關(guān)的數(shù)學(xué)應(yīng)用程序也發(fā)生變化,從而違反了SRP。圖8右圖所示為修改后的符合SRP的設(shè)計(jì),將矩形的兩個(gè)不同類型的功能分別封裝在不同的類中,與各自使用對(duì)應(yīng)功能的應(yīng)用程序建立依賴關(guān)系。通過UML圖的實(shí)例展示,能夠讓學(xué)生清晰地理解單一職責(zé)原則,并感受該原則帶來的設(shè)計(jì)優(yōu)勢(shì)。
圖7 UML實(shí)體類圖與對(duì)應(yīng)的數(shù)據(jù)庫表設(shè)計(jì)
圖8 違反SRP的設(shè)計(jì)實(shí)例與遵循SRP的設(shè)計(jì)實(shí)例
實(shí)踐教學(xué)實(shí)例2:體現(xiàn)動(dòng)態(tài)多態(tài)性的UML圖如圖9所示,構(gòu)建具有泛化關(guān)系的UML類圖來展示抽象父類和具體子類之間的繼承關(guān)系,構(gòu)建多個(gè)UML順序圖來展示不同子類對(duì)父類抽象方法實(shí)現(xiàn)時(shí)的交互細(xì)節(jié),通過將UML的靜態(tài)結(jié)構(gòu)圖與動(dòng)態(tài)行為圖結(jié)合,能夠直觀地體現(xiàn)面向?qū)ο笾械摹斑\(yùn)行時(shí)多態(tài)”特性,有利于學(xué)生對(duì)面向?qū)ο筇匦缘纳钊肜斫夂蛯?shí)踐應(yīng)用。
圖9 體現(xiàn)動(dòng)態(tài)多態(tài)性的UML圖
軟件體系結(jié)構(gòu)是一門軟件工程專業(yè)實(shí)踐性很強(qiáng)的高年級(jí)專業(yè)課,主要介紹軟件體系結(jié)構(gòu)的基本原理、方法和實(shí)踐[7]。學(xué)生通過該課程的學(xué)習(xí),能夠從系統(tǒng)結(jié)構(gòu)角度分析現(xiàn)有的軟件系統(tǒng),針對(duì)特定問題選擇準(zhǔn)確的設(shè)計(jì)模式,并能運(yùn)用所學(xué)知識(shí)高效地設(shè)計(jì)軟件系統(tǒng)。設(shè)計(jì)模式是該課程教學(xué)的重點(diǎn),設(shè)計(jì)模式離不開面向?qū)ο螅ㄟ^UML類圖可以對(duì)各種設(shè)計(jì)模式思想進(jìn)行表達(dá),使用面向?qū)ο缶幊陶Z言可以對(duì)設(shè)計(jì)模式進(jìn)行軟件實(shí)現(xiàn)。同時(shí),通過設(shè)計(jì)模式,可以深化對(duì)面向?qū)ο笤O(shè)計(jì)原則的理解,實(shí)現(xiàn)設(shè)計(jì)原則的具體應(yīng)用。
實(shí)踐教學(xué)實(shí)例:狀態(tài)模式主要解決“對(duì)象如何在每一種狀態(tài)下表現(xiàn)出不同的行為”,適用于控制一個(gè)對(duì)象狀態(tài)轉(zhuǎn)換的條件表達(dá)式過于復(fù)雜時(shí)的情況,把狀態(tài)的判斷邏輯轉(zhuǎn)移到表示不同狀態(tài)的一系列類當(dāng)中,將不同狀態(tài)的行為分割開來[8]。實(shí)踐教學(xué)中,將UML狀態(tài)機(jī)圖與狀態(tài)模式結(jié)構(gòu)類圖來聯(lián)合講解,如圖10所示,狀態(tài)模式類圖中3個(gè)狀態(tài)子類與房間對(duì)象的UML狀態(tài)機(jī)圖中的3個(gè)狀態(tài)對(duì)應(yīng),狀態(tài)模式類圖中3個(gè)子類中的方法與UML狀態(tài)機(jī)圖中觸發(fā)相應(yīng)狀態(tài)改變的事件對(duì)應(yīng),將類對(duì)象狀態(tài)分析和對(duì)應(yīng)設(shè)計(jì)模式的選取充分聯(lián)系在一起,實(shí)現(xiàn)軟件分析到軟件設(shè)計(jì)的過渡。
圖10 UML狀態(tài)機(jī)圖與狀態(tài)模式結(jié)構(gòu)類圖[9]
軟件工程是一門融合多門計(jì)算機(jī)專業(yè)知識(shí)的綜合性課程,從工程學(xué)角度講解軟件工程的基本理論、技術(shù)和方法[10]。通過該課程的學(xué)習(xí),旨在培養(yǎng)學(xué)生具備軟件工程師所需的各項(xiàng)專業(yè)技能和素質(zhì),提高學(xué)生解決軟件開發(fā)全局問題的能力[11]。
軟件工程課程強(qiáng)調(diào)理論與實(shí)踐并重,在理論教學(xué)環(huán)節(jié)中,突出以案例教學(xué)為導(dǎo)向;在實(shí)踐教學(xué)環(huán)節(jié)中,突出軟件項(xiàng)目驅(qū)動(dòng)模式[12]。UML不僅可以應(yīng)用到理論教學(xué)環(huán)節(jié),而且可以應(yīng)用到實(shí)踐環(huán)節(jié)。為了利于學(xué)生對(duì)抽象知識(shí)的理解,在教學(xué)實(shí)踐中以企業(yè)化軟件開發(fā)過程為線索,結(jié)合實(shí)際工程案例,使用UML來對(duì)軟件的需求、分析、設(shè)計(jì)進(jìn)行建模,構(gòu)建軟件系統(tǒng)的靜態(tài)視圖和動(dòng)態(tài)視圖,對(duì)軟件實(shí)現(xiàn)進(jìn)行指導(dǎo),并作為軟件測(cè)試的依據(jù)和開發(fā)文檔,最終實(shí)現(xiàn)模型驅(qū)動(dòng)的軟件開發(fā)。通過以UML模型貫穿軟件開發(fā)全過程的項(xiàng)目講解,讓學(xué)生充分體會(huì)到面向?qū)ο笏枷朐趯?shí)際軟件開發(fā)中的指導(dǎo)作用。
面向?qū)ο笳n程體系強(qiáng)調(diào)將面向?qū)ο笏枷氤浞謶?yīng)用到軟件開發(fā)全過程,將面向?qū)ο蟮脑?、工具、方法、?shí)踐融入一體。課程體系的教學(xué)目標(biāo)是使學(xué)生在具有面向?qū)ο缶幊棠芰Φ幕A(chǔ)上,結(jié)合UML軟件建模,加深理解面向?qū)ο蠹夹g(shù)原理的精髓和實(shí)質(zhì),掌握面向?qū)ο筌浖治鲈O(shè)計(jì)的原則和方法,具有軟件開發(fā)實(shí)踐和綜合應(yīng)用能力[13],通過結(jié)合軟件工程應(yīng)用實(shí)踐,加強(qiáng)學(xué)生計(jì)算思維能力的培養(yǎng),注重軟件設(shè)計(jì)方法的培養(yǎng)和引導(dǎo),提高學(xué)生的創(chuàng)新實(shí)踐能力。由于UML提供了從不同角度觀察和展示軟件系統(tǒng)各種特征的標(biāo)準(zhǔn)方法,可以應(yīng)用到軟件開發(fā)的各個(gè)階段,因此結(jié)合課程體系中各門課程的教學(xué)內(nèi)容,將適當(dāng)?shù)腢ML圖應(yīng)用到實(shí)踐教學(xué)實(shí)例中,不僅有助于教學(xué)內(nèi)容的理解,而且有利于體現(xiàn)課程體系知識(shí)的連貫性、系統(tǒng)性和實(shí)踐性,更好地達(dá)到課程體系的教學(xué)目標(biāo)。