• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      應(yīng)用型本科軟件體系結(jié)構(gòu)課程教學(xué)內(nèi)容設(shè)計(jì)

      2018-06-27 07:53:04李天科
      計(jì)算機(jī)教育 2018年6期
      關(guān)鍵詞:視圖案例教學(xué)內(nèi)容

      李天科

      (海南熱帶海洋學(xué)院 海洋信息工程學(xué)院,海南 三亞 572022)

      0 引 言

      隨著面向?qū)ο蠹夹g(shù)和構(gòu)件化技術(shù)在軟件開發(fā)中的應(yīng)用,軟件的規(guī)模越來越大,結(jié)構(gòu)越來越復(fù)雜。軟件架構(gòu)師在復(fù)雜軟件的設(shè)計(jì)實(shí)踐中,深切感受到軟件的體系結(jié)構(gòu)設(shè)計(jì)和規(guī)格說明,對(duì)提高軟件項(xiàng)目的質(zhì)量、控制軟件開發(fā)的進(jìn)度、降低軟件項(xiàng)目的成本與風(fēng)險(xiǎn)至關(guān)重要。

      軟件體系結(jié)構(gòu)在軟件開發(fā)中,為不同的風(fēng)險(xiǎn)承擔(dān)者提供了共同交流的語言,是對(duì)不同風(fēng)險(xiǎn)承擔(dān)者的不同功能和質(zhì)量需求進(jìn)行折中和權(quán)衡,最終形成一個(gè)滿足這些需求的全局設(shè)計(jì)[1-2]。

      作為應(yīng)用型本科院校,軟件工程專業(yè)培養(yǎng)的學(xué)生不僅要有一定的基礎(chǔ)理論知識(shí),同時(shí)也要有較強(qiáng)的工程實(shí)踐技能,將來既要能成為合格的程序員,也要逐步成為軟件架構(gòu)師。因此,在軟件工程專業(yè)的教學(xué)計(jì)劃中,將軟件體系結(jié)構(gòu)作為一門核心課程,總體目標(biāo)就是為軟件企業(yè)初步培養(yǎng)所需的軟件架構(gòu)設(shè)計(jì)人才。

      1 軟件體系結(jié)構(gòu)課程的特點(diǎn)

      (1)軟件體系結(jié)構(gòu)不是一門成熟的學(xué)科[3]。主要表現(xiàn)在:目前軟件體系結(jié)構(gòu)的定義不統(tǒng)一;軟件體系結(jié)構(gòu)模型、描述、設(shè)計(jì)、評(píng)估、測(cè)試等問題的解決方案不唯一,尋找解決方案也沒有固定統(tǒng)一的途徑可遵循[3-4];如何平衡軟件體系結(jié)構(gòu)與具體軟件質(zhì)量屬性需求之間的關(guān)系,沒有明確答案。

      (2)軟件體系結(jié)構(gòu)課程內(nèi)容抽象程度高。軟件體系結(jié)構(gòu)的基本概念、原則和方法是對(duì)諸多不同領(lǐng)域軟件系統(tǒng)共性特征的提取和升華,并不針對(duì)某一特定領(lǐng)域或特定系統(tǒng)。這些知識(shí)對(duì)于大部分從未實(shí)際參與過大型軟件研發(fā)工作的學(xué)生來講難以理解。

      (3)缺少成熟、經(jīng)典的教材及教學(xué)案例。目前,國(guó)內(nèi)外學(xué)者編著出版了一系列軟件體系結(jié)構(gòu)教材[5]??傮w來說,多數(shù)教材系統(tǒng)地介紹了軟件體系結(jié)構(gòu)的基本原理,對(duì)軟件體系結(jié)構(gòu)的設(shè)計(jì)方法介紹得不夠細(xì)致。另外,教材中的案例比較少,案例的規(guī)模也比較小[6]。

      2 軟件體系結(jié)構(gòu)課程教學(xué)內(nèi)容的整合

      2.1 整合的必要性

      (1)教學(xué)內(nèi)容與教學(xué)目標(biāo)有差距。按照軟件體系結(jié)構(gòu)課程教學(xué)大綱的要求,軟件體系結(jié)構(gòu)課程的培養(yǎng)目標(biāo),應(yīng)該是通過該門課程培養(yǎng)學(xué)生的軟件體系結(jié)構(gòu)分析能力,即從軟件體系結(jié)構(gòu)的角度審視軟件;培養(yǎng)學(xué)生軟件體系結(jié)構(gòu)的設(shè)計(jì)能力,即選擇適合的軟件體系結(jié)構(gòu)風(fēng)格、設(shè)計(jì)滿足需求的軟件體系結(jié)構(gòu)的能力。

      但是,以往我們基本圍繞軟件體系結(jié)構(gòu)概論、軟件體系結(jié)構(gòu)建模、軟件體系結(jié)構(gòu)風(fēng)格、軟件體系結(jié)構(gòu)描述、動(dòng)態(tài)軟件體系結(jié)構(gòu)、基于服務(wù)的體系結(jié)構(gòu)、軟件體系結(jié)構(gòu)的分析與測(cè)試、軟件體系結(jié)構(gòu)評(píng)估、基于體系結(jié)構(gòu)的軟件開發(fā)等內(nèi)容[2-3]展開教學(xué)。盡管這些內(nèi)容涵蓋了軟件體系結(jié)構(gòu)的基本概念,以及圍繞軟件體系結(jié)構(gòu)開展的各項(xiàng)活動(dòng)。但是對(duì)軟件體系結(jié)構(gòu)的設(shè)計(jì)方法和設(shè)計(jì)過程介紹得比較少,學(xué)生學(xué)習(xí)了軟件體系結(jié)構(gòu)以后,對(duì)大型軟件如何從軟件需求規(guī)格說明過渡到軟件體系結(jié)構(gòu)沒有深入的了解,對(duì)不同的質(zhì)量需求如何影響軟件體系結(jié)構(gòu),以及軟件體系結(jié)構(gòu)如何在不同的利益相關(guān)者之間進(jìn)行折中和平衡了解得就更少。

      (2)學(xué)生學(xué)習(xí)的主動(dòng)性不足。主要原因有3方面,一是我們?cè)诖笕诙W(xué)期開設(shè)本課程,在此之前學(xué)生學(xué)習(xí)了幾門編程語言、數(shù)據(jù)庫(kù)原理、軟件工程、面向?qū)ο蟮姆治雠c設(shè)計(jì)以及操作系統(tǒng)和數(shù)據(jù)結(jié)構(gòu)等課程。在這些課程的學(xué)習(xí)中,學(xué)生遇到的都是規(guī)模比較小、問題描述很清楚的軟件項(xiàng)目,學(xué)生只需要應(yīng)用結(jié)構(gòu)化程序設(shè)計(jì)方法,或者面向?qū)ο蟮某绦蛟O(shè)計(jì)方法就能完成設(shè)計(jì),對(duì)于軟件體系結(jié)構(gòu)課程中介紹的軟件設(shè)計(jì)方法不夠重視;二是軟件體系結(jié)構(gòu)設(shè)計(jì)屬于高層設(shè)計(jì),設(shè)計(jì)結(jié)果是否合理沒有直觀印象,學(xué)生做完軟件項(xiàng)目的結(jié)構(gòu)設(shè)計(jì)沒有完成源程序編寫的那種成就感;三是軟件體系結(jié)構(gòu)課程偏重概念、原理的介紹,學(xué)生沒有大型軟件項(xiàng)目設(shè)計(jì)的體驗(yàn),很難將軟件體系結(jié)構(gòu)的抽象理論與實(shí)際聯(lián)系起來,因此,普遍感覺這門課程枯燥乏味。

      2.2 整合實(shí)踐過程

      經(jīng)過幾年的教學(xué)實(shí)踐,我們將軟件體系結(jié)構(gòu)課程的教學(xué)內(nèi)容整合為兩大部分,一部分是軟件體系結(jié)構(gòu)的基本概念和原理,包括軟件體系結(jié)構(gòu)概論、軟件體系結(jié)構(gòu)建模、軟件體系結(jié)構(gòu)風(fēng)格和軟件體系結(jié)構(gòu)描述;另一部分是軟件體系結(jié)構(gòu)設(shè)計(jì),包括軟件需求分析、概念架構(gòu)設(shè)計(jì)和細(xì)化架構(gòu)[7],具體內(nèi)容見表1。

      (1)軟件體系結(jié)構(gòu)概論介紹了不同學(xué)者對(duì)軟件體系結(jié)構(gòu)給出的定義,讓學(xué)生初步了解復(fù)雜軟件體系結(jié)構(gòu)需要從多個(gè)不同的視角去理解;然后詳細(xì)介紹軟件體系結(jié)構(gòu)在軟件開發(fā)各個(gè)階段的作用,使學(xué)生進(jìn)一步理解軟件體系結(jié)構(gòu)是早期設(shè)計(jì)決策的體現(xiàn),是不同風(fēng)險(xiǎn)承擔(dān)者進(jìn)行交流的手段;最后概括地介紹軟件體系結(jié)構(gòu)的發(fā)展和應(yīng)用現(xiàn)狀。

      軟件體系結(jié)構(gòu)建模是軟件體系結(jié)構(gòu)課程的教學(xué)重點(diǎn)內(nèi)容之一,目的是讓學(xué)生深入理解復(fù)雜軟件體系結(jié)構(gòu)需要應(yīng)用多視圖建模,其中“一個(gè)架構(gòu)視圖是對(duì)于從某一視角或某一點(diǎn)上看到的系統(tǒng)所作的簡(jiǎn)化描述,描述中涵蓋了系統(tǒng)的某一特定方面,而省略了與此方面無關(guān)的實(shí)體”[8]。教學(xué)內(nèi)容包括:“邏輯視圖+物理視圖”模型;“4+1”視圖模型;五視圖模型(邏輯視圖、運(yùn)行視圖、開發(fā)視圖、數(shù)據(jù)視圖、物理視圖);讓學(xué)生了解不同規(guī)模的軟件,可以用不同的視圖模型來建模。要求學(xué)生掌握“4+1”視圖模型,并能熟練應(yīng)用UML進(jìn)行描述。

      表1 軟件體系結(jié)構(gòu)教學(xué)內(nèi)容設(shè)計(jì)表

      軟件體系結(jié)構(gòu)風(fēng)格也是軟件體系結(jié)構(gòu)課程的重點(diǎn)之一,教學(xué)內(nèi)容分為經(jīng)典軟件體系結(jié)構(gòu)風(fēng)格;基于網(wǎng)絡(luò)的軟件體系結(jié)構(gòu)風(fēng)格[9];“平臺(tái)/插件”體系結(jié)構(gòu)風(fēng)格[10]。經(jīng)典軟件體系結(jié)構(gòu)風(fēng)格包括:調(diào)用/返回風(fēng)格(主程序/子程序風(fēng)格、面向?qū)ο箫L(fēng)格);數(shù)據(jù)流風(fēng)格(順序批處理體系結(jié)構(gòu)風(fēng)格、管道/過濾器風(fēng)格);基于事件系統(tǒng)風(fēng)格;層次結(jié)構(gòu)風(fēng)格?;诰W(wǎng)絡(luò)的軟件體系結(jié)構(gòu)風(fēng)格包括:B/S風(fēng)格、C/S風(fēng)格、P2P風(fēng)格。通過學(xué)習(xí)讓學(xué)生深刻理解并熟練掌握常用的軟件體系結(jié)構(gòu)風(fēng)格。

      (2)軟件體系結(jié)構(gòu)設(shè)計(jì)方法是軟件體系結(jié)構(gòu)課程教學(xué)的重點(diǎn)。軟件體系結(jié)構(gòu)有多種設(shè)計(jì)方法[11],包括工件驅(qū)動(dòng)的軟件體系結(jié)構(gòu)設(shè)計(jì);用例驅(qū)動(dòng)的軟件體系結(jié)構(gòu)設(shè)計(jì);模式驅(qū)動(dòng)的軟件體系結(jié)構(gòu)設(shè)計(jì);領(lǐng)域驅(qū)動(dòng)的軟件體系結(jié)構(gòu)設(shè)計(jì);需求驅(qū)動(dòng)的軟件體系結(jié)構(gòu)設(shè)計(jì)等方法。我們?cè)诮虒W(xué)實(shí)踐中重點(diǎn)給學(xué)生介紹需求驅(qū)動(dòng)的軟件體系結(jié)構(gòu)設(shè)計(jì)方法。軟件體系結(jié)構(gòu)設(shè)計(jì)的實(shí)質(zhì)是將軟件需求分析所描述的問題空間轉(zhuǎn)換成軟件體系結(jié)構(gòu)所描述的解空間,要實(shí)現(xiàn)轉(zhuǎn)換,先要有可靠的軟件需求分析結(jié)果,然后確定軟件的概念架構(gòu)。由于我們軟件工程專業(yè)的教學(xué)計(jì)劃里面沒有開設(shè)需求工程課程。因此,在軟件體系結(jié)構(gòu)設(shè)計(jì)的教學(xué)內(nèi)容中包括了軟件需求分析和軟件架構(gòu)設(shè)計(jì)兩部分。

      軟件需求分析包括[7]:愿景分析;需求獲取和需求分析。愿景分析就是讓學(xué)生了解如何確定軟件系統(tǒng)的業(yè)務(wù)目標(biāo)、應(yīng)用范圍;如何進(jìn)行可行性分析;如何進(jìn)行風(fēng)險(xiǎn)評(píng)估。需求獲取和需求分析介紹了需求捕獲的方法以及需求分析的方法。需求分析的結(jié)果采用用例圖和用例規(guī)約來描述。

      軟件概念架構(gòu)設(shè)計(jì)包括[7]:概念架構(gòu)的概念,概念架構(gòu)設(shè)計(jì)方法。重點(diǎn)介紹如何從功能需求向設(shè)計(jì)過渡,以及如何從質(zhì)量需求向設(shè)計(jì)過渡。通過學(xué)習(xí)讓學(xué)生了解軟件概念架構(gòu)的設(shè)計(jì)方法、子系統(tǒng)的劃分和架構(gòu)風(fēng)格選型等。細(xì)化架構(gòu)設(shè)計(jì)主要介紹軟件架構(gòu)的描述方法。

      3 案例驅(qū)動(dòng)教學(xué)方法的實(shí)施

      軟件體系結(jié)構(gòu)是一門偏重抽象理論的課程,教學(xué)內(nèi)容中介紹的基本概念和原理都是針對(duì)不同領(lǐng)域軟件系統(tǒng)的一般分析和設(shè)計(jì)方法,并不針對(duì)某一特定軟件系統(tǒng),學(xué)生在學(xué)習(xí)過程中普遍感覺難以理解。因此,我們?cè)诮虒W(xué)過程中,盡量采用案例驅(qū)動(dòng)教學(xué)。用案例說明基本概念和原理,在案例中展現(xiàn)軟件體系結(jié)構(gòu)的分析方法和設(shè)計(jì)方法,這樣不僅能給學(xué)生以直觀的印象,而且能引導(dǎo)學(xué)生積極思考和討論。

      我們選取的案例分為3種類型,第一類案例選自現(xiàn)有的教材,這類案例規(guī)模小,適合于教學(xué),用于幫助學(xué)生理解基本概念和原理。如在講授經(jīng)典軟件體系結(jié)構(gòu)風(fēng)格的時(shí)候,選取“文章中查找和重組關(guān)鍵詞系統(tǒng)”(key word in context,KWIC)作為教學(xué)案例,分別采用面向過程、面向?qū)ο?、基于事件和管道過濾器4種不同的風(fēng)格進(jìn)行分析和設(shè)計(jì),然后對(duì)各種設(shè)計(jì)方案的優(yōu)缺點(diǎn)進(jìn)行比較,讓學(xué)生理解不同軟件體系結(jié)構(gòu)風(fēng)格的特點(diǎn)。第二類案例選自學(xué)生的課程設(shè)計(jì),圍繞教學(xué)內(nèi)容進(jìn)行互動(dòng)式案例教學(xué)。如講授軟件需求分析時(shí),讓學(xué)生介紹自己完成的“商場(chǎng)倉(cāng)庫(kù)管理系統(tǒng)”的需求分析結(jié)果,然后其他同學(xué)根據(jù)需求規(guī)格說明書中的用例圖和用例規(guī)約,分析和評(píng)價(jià)該功能性的需求是否完備;根據(jù)非功能需求列表和描述,分析哪些是關(guān)鍵性的功能需求,哪些非功能需求之間是相互排斥的。通過討論學(xué)生逐漸明白了需求獲取、需求分析、需求描述的方法。第三類案例選自學(xué)生畢業(yè)實(shí)習(xí)時(shí)參與開發(fā)的實(shí)際項(xiàng)目,這類項(xiàng)目一般規(guī)模比較大,由具有豐富實(shí)踐經(jīng)驗(yàn)的軟件架構(gòu)師設(shè)計(jì)。如為某市政務(wù)中心開發(fā)的“用戶管理體系大數(shù)據(jù)管理平臺(tái)”,整個(gè)系統(tǒng)包括統(tǒng)一認(rèn)證用戶管理系統(tǒng)、用戶管理體系數(shù)據(jù)支撐平臺(tái)、政務(wù)服務(wù)數(shù)據(jù)一表通系統(tǒng)、用戶專屬檔案門戶系統(tǒng)、政務(wù)服務(wù)數(shù)據(jù)交換系統(tǒng)、綜合窗口支撐系統(tǒng)、多規(guī)合一聯(lián)審系統(tǒng)等多個(gè)子系統(tǒng)。在教學(xué)中將該項(xiàng)目的可行性分析結(jié)果、需求分析結(jié)果、總體設(shè)計(jì)方案和每個(gè)子系統(tǒng)的設(shè)計(jì)方案介紹給學(xué)生,讓學(xué)生了解大規(guī)模復(fù)雜軟件的分析和設(shè)計(jì)方法。

      4 結(jié) 語

      通過整合軟件體系結(jié)構(gòu)課程的教學(xué)內(nèi)容,使其更加符合應(yīng)用型本科軟件工程專業(yè)的培養(yǎng)目標(biāo),即不僅要讓學(xué)生了解軟件體系結(jié)構(gòu)的基本概念和原理,更重要的是要讓學(xué)生掌握復(fù)雜軟件的設(shè)計(jì)方法和描述方法。同時(shí)采用案例驅(qū)動(dòng)教學(xué),將抽象的理論與實(shí)際案例結(jié)合起來,激發(fā)學(xué)生的學(xué)習(xí)興趣,幫助學(xué)生深入理解理論知識(shí),提高學(xué)生的應(yīng)用能力,使軟件體系結(jié)構(gòu)課程的教學(xué)不再那么枯燥乏味。與前幾年相比較,近兩年在軟件體系結(jié)構(gòu)教學(xué)中逐步整合了教學(xué)內(nèi)容,學(xué)習(xí)效果有較明顯的改觀,學(xué)生在軟件項(xiàng)目開發(fā)中能應(yīng)用軟件體系結(jié)構(gòu)設(shè)計(jì)方法,完成較規(guī)范的軟件體系結(jié)構(gòu)設(shè)計(jì)。

      [1]張友生, 李雄. 軟件體系結(jié)構(gòu)原理、方法與實(shí)踐[M]. 北京: 清華大學(xué)出版社, 2014.

      [2]束永安, 羅斌, 朱方義. 軟件體系結(jié)構(gòu)教學(xué)研究[J]. 電腦知識(shí)與技術(shù), 2009(28): 7974-7976.

      [3]路綱, 裘國(guó)永. 軟件體系架構(gòu)課程本科教學(xué)探討[J]. 計(jì)算機(jī)教育, 2010(24): 128-131.

      [4]覃征, 邢劍寬. 軟件體系結(jié)構(gòu)課程教學(xué):抽象與實(shí)踐的協(xié)調(diào)與統(tǒng)一[J]. 中國(guó)大學(xué)教學(xué), 2009(7): 14-15.

      [5]覃征, 邢劍寬, 董金春, 等. 軟件體系結(jié)構(gòu)[M]. 2版. 北京: 清華大學(xué)出版社, 2008.

      [6]李暾, 文艷軍, 劉萬偉, 等. 軟件體系結(jié)構(gòu)課程教學(xué)改革規(guī)劃與實(shí)施[J].計(jì)算機(jī)教育, 2015(6): 19-22.

      [7]溫昱. 軟件架構(gòu)設(shè)計(jì): 程序員向架構(gòu)師轉(zhuǎn)型必備[M]. 2版. 北京: 電子工業(yè)出版社, 2012.

      [8]Philippe K. Rational統(tǒng)一過程引論[M]. 2版·影印版. 北京: 中國(guó)電力出版社, 2003.

      [9]孫玉山, 劉旭東. 軟件設(shè)計(jì)模式與體系結(jié)構(gòu)[M]. 北京: 高等教育出版社, 2013.

      [10]李俊娥, 周洞汝.“平臺(tái)/插件”軟件體系結(jié)構(gòu)風(fēng)格[J]. 小型微型計(jì)算機(jī)系統(tǒng), 2007(5): 876-881.

      [11]王一賓, 李心科. 軟件體系結(jié)構(gòu)設(shè)計(jì)方法的研究[J]. 計(jì)算機(jī)工程與設(shè)計(jì), 2005(3): 604-607.

      猜你喜歡
      視圖案例教學(xué)內(nèi)容
      案例4 奔跑吧,少年!
      隨機(jī)變量分布及統(tǒng)計(jì)案例拔高卷
      挖掘數(shù)學(xué)教學(xué)內(nèi)容所固有的美
      5.3 視圖與投影
      視圖
      發(fā)生在你我身邊的那些治超案例
      Y—20重型運(yùn)輸機(jī)多視圖
      SA2型76毫米車載高炮多視圖
      “啟蒙運(yùn)動(dòng)”一課教學(xué)內(nèi)容分析
      “清末新政”也可作為重要的教學(xué)內(nèi)容
      常山县| 九龙城区| 烟台市| 漳平市| 习水县| 武山县| 兴安县| 宜宾市| 油尖旺区| 吉隆县| 依兰县| 常熟市| 镇江市| 怀宁县| 梅州市| 简阳市| 甘洛县| 长阳| 曲麻莱县| 永清县| 巫溪县| 江门市| 广昌县| 徐州市| 元江| 贵南县| 渭源县| 铜陵市| 馆陶县| 阿坝县| 永川市| 新余市| 页游| 扶绥县| 庐江县| 博客| 连城县| 班戈县| 响水县| 三台县| 南城县|