計(jì)算機(jī)軟件技術(shù)基礎(chǔ)淺談?wù)撐?/h1>
時(shí)間:
堅(jiān)烘964由 分享
計(jì)算機(jī)軟件技術(shù)基礎(chǔ)是仿真工程與自動(dòng)化專業(yè)的核心課程之一,該課程是整合課程,主要包括c++面向?qū)ο蟪绦蛟O(shè)計(jì)、算法與數(shù)據(jù)結(jié)構(gòu)、操作系統(tǒng)、軟件工程等方面的內(nèi)容,知識(shí)龐雜且難以掌握。下面是學(xué)習(xí)啦小編給大家推薦的計(jì)算機(jī)軟件技術(shù)基礎(chǔ)淺談?wù)撐?,希望大家喜歡!
計(jì)算機(jī)軟件技術(shù)基礎(chǔ)淺談?wù)撐钠?/h2>
《計(jì)算機(jī)軟件技術(shù)基礎(chǔ)課程的案例建設(shè)》
摘要:案例教學(xué)能有效提高學(xué)生分析問題和解決問題的能力,是現(xiàn)代教育的常用教學(xué)方法之一。文章分析案例教學(xué)中的案例特征,以實(shí)際工程項(xiàng)目的一個(gè)子系統(tǒng)為背景,設(shè)計(jì)實(shí)時(shí)仿真監(jiān)視系統(tǒng)案例并介紹案例的具體建設(shè)情況,指出該案例對(duì)提高學(xué)生的學(xué)習(xí)興趣以及分析問題和解決問題的能力具有明顯的效果。
關(guān)鍵詞:軟件技術(shù)基礎(chǔ);案例教學(xué);案例建設(shè);實(shí)時(shí)仿真;監(jiān)視系統(tǒng)
1、計(jì)算機(jī)軟件技術(shù)基礎(chǔ)課程中案例教學(xué)的必要性
計(jì)算機(jī)軟件技術(shù)基礎(chǔ)是仿真工程與自動(dòng)化專業(yè)的核心課程之一,是一門應(yīng)用性很強(qiáng)的專業(yè)基礎(chǔ)課。該課程是整合課程,主要包括c++面向?qū)ο蟪绦蛟O(shè)計(jì)、算法與數(shù)據(jù)結(jié)構(gòu)、操作系統(tǒng)、軟件工程等方面的內(nèi)容,知識(shí)龐雜且難以掌握。學(xué)生在學(xué)習(xí)該課程之后常常感到困惑:所學(xué)知識(shí)有什么用,怎樣運(yùn)用所學(xué)知識(shí)?一些學(xué)生雖然能夠在考試中考出高分,卻不知道怎樣解決實(shí)際問題。如何使學(xué)生認(rèn)識(shí)所學(xué)知識(shí)的用途,融會(huì)貫通并靈活運(yùn)用,是這門課應(yīng)重點(diǎn)考慮的問題。目前,案例教學(xué)在法律類和管理類課程教學(xué)中的地位和作用已在教育界達(dá)成共識(shí)。教育部高等學(xué)校計(jì)算機(jī)科學(xué)與技術(shù)教學(xué)指導(dǎo)委員會(huì)于2006年6月發(fā)布了《關(guān)于進(jìn)一步加強(qiáng)高等學(xué)校計(jì)算機(jī)基礎(chǔ)教學(xué)的意見暨計(jì)算機(jī)基礎(chǔ)課程教學(xué)基本要求(試行)》白皮書,明確指出在教學(xué)方法和手段上運(yùn)用案例教學(xué)的必要性,因此,將案例教學(xué)作為一種教學(xué)方法引入工科類課程的教學(xué),具有可行性和必要性。
2、認(rèn)識(shí)案例
案例教學(xué)法就是在教師的指導(dǎo)下,根據(jù)教學(xué)目的和要求,以案例為基本素材,把學(xué)生帶人特定的教學(xué)情境中進(jìn)行思考,以此加深學(xué)生對(duì)基本原理和概念的理解,進(jìn)而培養(yǎng)并提高學(xué)生運(yùn)用理論知識(shí)分析問題和鋸決問題能力的一種教學(xué)方法。
案例是案例教學(xué)的基礎(chǔ),離開了案例,案例教學(xué)就無從談起。案例與一般教學(xué)中的例題有著本質(zhì)區(qū)別,案例教學(xué)中的案例是將多個(gè)知識(shí)點(diǎn)融人一個(gè)整體來解決實(shí)際問題,涉及的知識(shí)面廣,知識(shí)間具有連貫性和系統(tǒng)性,涵蓋的知識(shí)具有綜合性的特點(diǎn),知識(shí)和原理蘊(yùn)藏于案例之中。一般教學(xué)中的例題往往是配合某一章節(jié)或某一知識(shí)點(diǎn),從某個(gè)角度、某個(gè)方面或某個(gè)層次反映所學(xué)理論和方法,起著驗(yàn)證和說明作用,常常帶有為講知識(shí)而杜撰例子的痕跡,各個(gè)例題之間相對(duì)獨(dú)立,涵蓋的知識(shí)單一,知識(shí)和原理孤立地呈現(xiàn)在學(xué)生面前。一般說來,工科類課程的案例應(yīng)具有以下基本特征。
1)真實(shí)性。
客觀真實(shí)性是案例的基本特征。教學(xué)案例應(yīng)源于真實(shí),取材于工程實(shí)際或科研課題,但是又要高于真實(shí)。為了突出主題,可以對(duì)真實(shí)做一定的刪減處理。
2)綜合性。
案例應(yīng)是綜合知識(shí)的載體,既要以學(xué)生已掌握的知識(shí)為依據(jù)輻射足夠多的知識(shí)點(diǎn),又要在匹配教學(xué)內(nèi)容的基礎(chǔ)上對(duì)知識(shí)有一定程度的擴(kuò)展。
3)完整性。
案例是完整過程的載體,涉及了解背景、查詢資料、分析信息、發(fā)現(xiàn)問題、探求方法、采取行動(dòng)、解決問題的全過程。
4)啟發(fā)性。
案例教學(xué)著眼于能力的培養(yǎng),希望得到的不是案例的標(biāo)準(zhǔn)答案,而是解決問題的思維方法和能力。案例中,解決問題的方式是開放性的,可以留給學(xué)生想象的空間和發(fā)揮的余地。
5)實(shí)踐性。
學(xué)生可以對(duì)案例進(jìn)行復(fù)現(xiàn)、改進(jìn)和完善,也可以按照自己的思考去實(shí)現(xiàn),增強(qiáng)理論應(yīng)用于實(shí)際的能力,實(shí)現(xiàn)從理論到實(shí)踐的轉(zhuǎn)化。
3、案例建設(shè)
案例教學(xué)的前提是高質(zhì)量的案例,高質(zhì)量的案例既要覆蓋足夠的知識(shí),又要控制合適的規(guī)模。規(guī)模過小,則不能溶入足夠的知識(shí),也不能提供足夠的研討與思維空間;規(guī)模過大,則在短時(shí)間內(nèi)難以被學(xué)生接受,不能得到預(yù)期的教學(xué)效果。筆者以實(shí)際工程項(xiàng)目衛(wèi)星實(shí)時(shí)仿真系統(tǒng)的一個(gè)子系統(tǒng)為案例背景,在突出主題的前提下,進(jìn)行了適當(dāng)?shù)脑斅约皠h減處理,形成了“實(shí)時(shí)仿真監(jiān)視系統(tǒng)”案例。
3.1 案例背景簡(jiǎn)介
衛(wèi)星實(shí)時(shí)仿真系統(tǒng)能夠?qū)πl(wèi)星的方案、設(shè)計(jì)、集成、測(cè)試和運(yùn)行各個(gè)階段進(jìn)行仿真驗(yàn)證,是提高衛(wèi)星總體設(shè)計(jì)水平的重要手段,其網(wǎng)絡(luò)關(guān)系連接如圖1所示。在此系統(tǒng)中,仿真模型解算、物理設(shè)備接口等苛刻實(shí)時(shí)約束的節(jié)點(diǎn)通過反射內(nèi)存互聯(lián),構(gòu)成實(shí)時(shí)內(nèi)環(huán),外環(huán)則通過普通網(wǎng)絡(luò)互聯(lián),將人機(jī)交互、可視化、數(shù)據(jù)處理等實(shí)時(shí)約束弱的節(jié)點(diǎn)互聯(lián),內(nèi)、外環(huán)都可以根據(jù)需要擴(kuò)充且內(nèi)環(huán)不受外環(huán)影響,苛刻實(shí)時(shí)得到保障。轉(zhuǎn)發(fā)計(jì)算機(jī)完成內(nèi)存數(shù)據(jù)的提取并轉(zhuǎn)發(fā)外環(huán),仿真管理計(jì)算機(jī)則同時(shí)管理內(nèi)、外環(huán)系統(tǒng)。衛(wèi)星仿真監(jiān)控是衛(wèi)星實(shí)時(shí)仿真過程中的重要一環(huán),它將抽象的仿真活動(dòng)形象化,并及時(shí)將信號(hào)數(shù)據(jù)以各種方式反饋給用戶,以利于用戶分析、理解和決策。衛(wèi)星實(shí)時(shí)仿真監(jiān)控系統(tǒng),能夠模擬通過控制、監(jiān)視和測(cè)量星上設(shè)備的工作狀態(tài)實(shí)現(xiàn)實(shí)時(shí)連續(xù)地記錄工作過程、測(cè)試數(shù)據(jù)和描繪曲線。圖1中,人機(jī)交互計(jì)算機(jī)、曲線顯示計(jì)算機(jī)和三維顯示等外環(huán)計(jì)算機(jī)共同實(shí)現(xiàn)仿真監(jiān)視功能。我們將人機(jī)交互計(jì)算機(jī)和曲線顯示計(jì)算機(jī)的功能提取出來,要求系統(tǒng)具有一定的通用性,能夠適應(yīng)不同監(jiān)視任務(wù)和不同數(shù)據(jù)類型,形成“實(shí)時(shí)仿真監(jiān)視系統(tǒng)”案例。
3.2 實(shí)時(shí)仿真監(jiān)視系統(tǒng)案例
實(shí)時(shí)仿真監(jiān)視系統(tǒng)的工作原理為:轉(zhuǎn)發(fā)計(jì)算機(jī)完成內(nèi)存數(shù)據(jù)的提取并轉(zhuǎn)發(fā)外環(huán),外環(huán)上的實(shí)時(shí)仿真監(jiān)視系統(tǒng)首先進(jìn)行初始化,隨后自動(dòng)生成系統(tǒng)主界面。系統(tǒng)支持兩種運(yùn)行模式:監(jiān)視模式和回放模式。在監(jiān)視模式下,系統(tǒng)既要處理主界面信息,又要處理網(wǎng)絡(luò)數(shù)據(jù)。主界面信息的處理包括響應(yīng)用戶交互消息、更新實(shí)時(shí)監(jiān)視界面、實(shí)時(shí)繪制曲線;網(wǎng)絡(luò)數(shù)據(jù)的處理包接監(jiān)聽網(wǎng)絡(luò)端口,接收、解析和保存數(shù)據(jù)包,將有效數(shù)據(jù)寫入共享數(shù)據(jù)結(jié)構(gòu),供給系統(tǒng)繪制曲線。在回放模式下,不再需要對(duì)網(wǎng)絡(luò)進(jìn)行監(jiān)聽,直接讀取監(jiān)視模式下保存的原始數(shù)據(jù)文件,然后進(jìn)行相應(yīng)處理即可。
為實(shí)現(xiàn)上述目的,使系統(tǒng)具有一定的通用性,我們?cè)O(shè)計(jì)了如下方案:
(1)在軟件工程思想指導(dǎo)下,進(jìn)行需求分析、總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼實(shí)現(xiàn)以及綜合測(cè)試。通過該案例,讓學(xué)生對(duì)軟件工程思想指導(dǎo)下的軟件開發(fā)全過程有一個(gè)感性認(rèn)識(shí);
(2)采用多線程技術(shù)實(shí)現(xiàn)監(jiān)視模式下的主界面信息處理和網(wǎng)絡(luò)數(shù)據(jù)處理,僅用單線程實(shí)現(xiàn)回放模式;
(3)設(shè)計(jì)一個(gè)數(shù)據(jù)包發(fā)送測(cè)試程序,模擬轉(zhuǎn)發(fā)計(jì)算機(jī)的功能。
為此,我們結(jié)合本課程的基本知識(shí)點(diǎn)將系統(tǒng)的主要功能模塊劃分為界面管理和數(shù)據(jù)處理兩大部分,界面管理部分主要承擔(dān)主界面信息的處理,數(shù)據(jù)處理部分則主要負(fù)責(zé)數(shù)據(jù)的處理。
3.2.1 界面管理
系統(tǒng)運(yùn)行過程中始終需要對(duì)系統(tǒng)主界面進(jìn)行管理。從運(yùn)行初期的生成主界面,到運(yùn)行中的監(jiān)視過程的顯示,再到最終的系統(tǒng)結(jié)束,都需要對(duì)主界面進(jìn)行即時(shí)的調(diào)整。為了提高通用性,系統(tǒng)采用基于配置文件的方式,通過用戶提供的配置文件,動(dòng)態(tài)改變系統(tǒng)監(jiān)視任務(wù),也就是說,系統(tǒng)能夠改變每次運(yùn)行時(shí)的任務(wù),主界面顯示的內(nèi)容具有不確定性。
1)讀取配置文件,獲取初始化信息。
系統(tǒng)運(yùn)行之前,需要進(jìn)行初始化,這就需要系統(tǒng)讀取配置文件,包括全部信號(hào)、實(shí)時(shí)顯示信號(hào)、數(shù)據(jù)包類型等配置文件。用戶必須按照約定的正確格式提供配置文件,否則系統(tǒng)有可能無法正確識(shí)別相關(guān)信息。從軟件工程的角度,配置文件的設(shè)計(jì)與確定應(yīng)在總體設(shè)計(jì)階段完成。配置文件的類型、組織方式以及數(shù)據(jù)正確性的檢驗(yàn),都是學(xué)生可以自由發(fā)揮和擴(kuò)展的內(nèi)容。
2)自動(dòng)生成實(shí)時(shí)監(jiān)視界面。
監(jiān)視對(duì)象的不確定性使得系統(tǒng)的監(jiān)視界面無法固定,然而,不能將界面的生成工作完全交給用戶完成,這就需要設(shè)計(jì)一種適用于不同監(jiān)視任務(wù)的界面生成算法,使系統(tǒng)將界面生成工作承擔(dān)下來。另外,系統(tǒng)界面的尺寸等信息是用戶所不知道的,因此被監(jiān)視的信號(hào)在系統(tǒng)主界面中的顯示位置無法由用戶設(shè)定,這就需要系統(tǒng)自己完成界面的排布任務(wù)。因此,要求設(shè)計(jì)一個(gè)具有較強(qiáng)通用性的監(jiān)視界面自適應(yīng)生成算法,這部分涉及算法設(shè)計(jì)和計(jì)算機(jī)系統(tǒng)配置的獲取等基礎(chǔ)知識(shí),算法設(shè)計(jì)是學(xué)生能夠自由發(fā)揮并出彩的部分。
3)定時(shí)更新監(jiān)視界面。
為了實(shí)現(xiàn)實(shí)時(shí)監(jiān)視功能,系統(tǒng)需要對(duì)監(jiān)視界面進(jìn)行定時(shí)更新,以顯示當(dāng)前被監(jiān)視信號(hào)的實(shí)時(shí)數(shù)據(jù)。為了滿足用戶的不同需求,系統(tǒng)提供0.5s、1s、2s三種刷新頻率。系統(tǒng)可以根據(jù)用戶選擇的刷新頻率對(duì)主界面進(jìn)行更新。這部分主要涉及定時(shí)器的使用。
4)處理用戶交互消息。
系統(tǒng)需要對(duì)用戶的交互消息進(jìn)行處理,主要為鼠標(biāo)消息,包括運(yùn)行模式的切換、仿真的開始與結(jié)束、加載歷史數(shù)據(jù)包文件等。這部分涉及所選編程環(huán)境下的消息響應(yīng)機(jī)制問題。
3.2.2 數(shù)據(jù)處理
系統(tǒng)在運(yùn)行過程中,需要對(duì)數(shù)據(jù)包進(jìn)行接收、解析和存儲(chǔ),還要為曲線繪制提供原始數(shù)據(jù),因此需要設(shè)計(jì)一個(gè)專用的數(shù)據(jù)結(jié)構(gòu)。
1)接收網(wǎng)絡(luò)數(shù)據(jù)包。
在監(jiān)控模式下,系統(tǒng)既要處理主界面信息,又要通過網(wǎng)絡(luò)接收數(shù)據(jù)包。為了避免“漏掉”數(shù)據(jù)包,系統(tǒng)必須對(duì)網(wǎng)絡(luò)持續(xù)進(jìn)行監(jiān)聽。如果主線程將大量時(shí)間用在網(wǎng)絡(luò)監(jiān)聽上,勢(shì)必?zé)o法對(duì)用戶的交互做出及時(shí)響應(yīng)。因此,需要將數(shù)據(jù)包的接收放在一個(gè)單獨(dú)的線程中。這涉及操作系統(tǒng)進(jìn)程管理的相關(guān)概念,是多線程程序設(shè)計(jì)技術(shù)的典型應(yīng)用;也涉及網(wǎng)絡(luò)通信技術(shù),需要了解網(wǎng)絡(luò)通信協(xié)議等相關(guān)知識(shí)。
2)解析數(shù)據(jù)包。
在接收到數(shù)據(jù)包后,需要將數(shù)據(jù)包內(nèi)的數(shù)據(jù)進(jìn)行解析,獲得數(shù)據(jù)包內(nèi)的數(shù)據(jù),將最新的數(shù)據(jù)更新至系統(tǒng)對(duì)應(yīng)的變量中,以供實(shí)時(shí)顯示。解析數(shù)據(jù)包涉及網(wǎng)絡(luò)通信程序設(shè)計(jì)技術(shù)。
3)保存原始數(shù)據(jù)包。
系統(tǒng)要求有回放功能,因此需要將接收到的數(shù)據(jù)包寫入文件,進(jìn)行永久保存。數(shù)據(jù)包的保存有兩種方式:解析后按段保存和作為整體進(jìn)行二進(jìn)制保存。第一種方法耗時(shí),需較大工作量。第二種方法簡(jiǎn)便,工作量小。顯然第二種方法更適合本系統(tǒng)。由于系統(tǒng)必須適應(yīng)兩種類型的數(shù)據(jù)包,因此,進(jìn)行數(shù)據(jù)保存時(shí),采用以形參類型為區(qū)別的方式進(jìn)行同名函數(shù)的重載,實(shí)現(xiàn)兩種類型數(shù)據(jù)包文件的存儲(chǔ)。這部分功能涉及C++面向?qū)ο蟪绦蛟O(shè)計(jì)中的重載技術(shù)以及文件操作技術(shù)。
4)讀取數(shù)據(jù)文件,獲取數(shù)據(jù)包。
在回放模式下,系統(tǒng)不再對(duì)網(wǎng)絡(luò)進(jìn)行監(jiān)聽,不進(jìn)行數(shù)據(jù)包的接收,需要通過讀取之前保存的原始數(shù)據(jù)包文件獲得數(shù)據(jù)包。原始數(shù)據(jù)包文件保存的是二進(jìn)制形式的數(shù)據(jù)包,系統(tǒng)每次讀取之后需要對(duì)數(shù)據(jù)包進(jìn)行解析,這與接收到數(shù)據(jù)包的過程是一樣的,不同之處在于回放過程不再需要將數(shù)據(jù)包進(jìn)行保存。這涉及C++面向?qū)ο蟪绦蛟O(shè)計(jì)中的文件操作,同時(shí),通過監(jiān)視模式下的多線程程序設(shè)計(jì)與回放模式下的單線程程序設(shè)計(jì)的對(duì)比,使學(xué)生真切感受并理解多線程程序設(shè)計(jì)技術(shù)及其應(yīng)用場(chǎng)合等。
5)共享數(shù)據(jù)。
系統(tǒng)嵌套了曲線繪制模塊,因此,數(shù)據(jù)處理與曲線繪制之間需要有一塊共享數(shù)據(jù)內(nèi)存。在收到數(shù)據(jù)包并解析后,馬上將有用的信息寫入該共享內(nèi)存。寫入操作由數(shù)據(jù)包接收線程處理,讀取操作由主線程內(nèi)的曲線繪制模塊完成,因此,需要對(duì)兩個(gè)線程進(jìn)行同步。這涉及數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)和操作系統(tǒng)的同步與互斥。
6)快速查找。
系統(tǒng)支持大數(shù)據(jù)量下的仿真監(jiān)視,對(duì)數(shù)據(jù)的快速查找有較高的需求,因此,需要設(shè)計(jì)支持快速查找的哈希表數(shù)據(jù)結(jié)構(gòu),包括哈希函數(shù)的確定、沖突的解決等,這涉及數(shù)據(jù)結(jié)構(gòu)的哈希表技術(shù)。
4、結(jié)語
“實(shí)時(shí)仿真監(jiān)視系統(tǒng)”案例,涵蓋了軟件工程、c++面向?qū)ο蟪绦蛟O(shè)計(jì)、算法與數(shù)據(jù)結(jié)構(gòu)、操作系統(tǒng)和網(wǎng)絡(luò)通信等計(jì)算機(jī)軟件技術(shù)基礎(chǔ)課程及其先導(dǎo)與后繼課程的知識(shí)點(diǎn),是一個(gè)與學(xué)生所學(xué)專業(yè)密切相關(guān)的實(shí)際應(yīng)用系統(tǒng),容易引起學(xué)生的興趣,也容易被學(xué)生理解和接受。這樣的案例既與教學(xué)目標(biāo)相吻合,又便于教師駕馭和把握。
從學(xué)生反饋的情況看,學(xué)生普遍認(rèn)為,案例教學(xué)法方式新穎,實(shí)時(shí)仿真監(jiān)視系統(tǒng)案例與專業(yè)基礎(chǔ)結(jié)合緊密;能引導(dǎo)學(xué)生積極思考,提高學(xué)生的學(xué)習(xí)興趣以及分析問題和解決問題的能力。該案例在教學(xué)過程中取得了明顯的教學(xué)效果。
為了更好地開展案例教學(xué),我們必須把建設(shè)高質(zhì)量的案例作為重點(diǎn)來抓,選擇合適的案例背景,制定合理的案例建設(shè)計(jì)劃。實(shí)踐證明,只有經(jīng)過長(zhǎng)時(shí)間的積累、認(rèn)真的思考、精心的選擇和多次教學(xué)實(shí)踐,才能獲得高質(zhì)量的教學(xué)案例;只有經(jīng)過團(tuán)隊(duì)的長(zhǎng)期努力,才能建設(shè)高質(zhì)量的教學(xué)案例庫(kù)。
點(diǎn)擊下頁(yè)還有更多>>>計(jì)算機(jī)軟件技術(shù)基礎(chǔ)淺談?wù)撐?/strong>