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

?

軟件工程思想在VB課程教學(xué)中應(yīng)用

2015-10-14 08:53覃能杰
讀寫算·素質(zhì)教育論壇 2015年10期
關(guān)鍵詞:窗體程序設(shè)計軟件

覃能杰

中圖分類號:G642.41 文獻(xiàn)標(biāo)識碼:A 文章編號:1002-7661(2015)10-0008-03

一、引言

計算機(jī)軟件復(fù)合人才的缺乏依然是我國計算機(jī)軟件產(chǎn)業(yè)可持續(xù)發(fā)展的瓶頸,經(jīng)過十幾年的發(fā)展,傳統(tǒng)的程序設(shè)計教學(xué)逐漸暴露出一個尖銳的問題:學(xué)生工作后,與軟件企業(yè)的實際人才需求存在較大偏差。通常畢業(yè)生都要在軟件企業(yè)里要經(jīng)過半年以上的磨練才能達(dá)到編寫實用代碼的水平。而剛從學(xué)校畢業(yè)的學(xué)生基本無法直接參與編程工作,必須經(jīng)一個月以上的培訓(xùn)才能在有經(jīng)驗的“師傅”的帶領(lǐng)下進(jìn)行基本的編碼,半年以后才能開始獨立編碼。學(xué)生無法滿足企業(yè)用人需求的地方往往是兩個環(huán)節(jié):軟件工程素養(yǎng)和實踐創(chuàng)新能力。項目開發(fā)與溝通技巧,項目的規(guī)劃、進(jìn)度控制、設(shè)計與測試等流程都需要良好的素質(zhì),因此軟件工程理論教學(xué)與實踐的脫節(jié)是其中的重要原因之一。另外,實踐創(chuàng)新能力的缺乏表現(xiàn)為學(xué)生難以用創(chuàng)造性思維解決問題,難以突破傳統(tǒng)的思維模式尋求創(chuàng)新思路。

VisualBasic(下面簡稱VB)作為一門面向?qū)ο蟮某绦蛟O(shè)計語言,具有簡單易學(xué)、功能強大、應(yīng)用廣泛的特點,被公認(rèn)為是編程效率最高的一種編程工具。VB程序設(shè)計是一門實踐性很強的課程,要求學(xué)生既要學(xué)好理論知識,又要掌握實際操作技能,其目的是培養(yǎng)學(xué)生程序設(shè)計和簡單的系統(tǒng)開發(fā)及應(yīng)用能力?;谀壳暗默F(xiàn)狀,VB語言枯燥難懂,學(xué)生缺乏相應(yīng)的背景知識。教師在教學(xué)過程中也缺乏一套良好的教學(xué)方法,使得這門課既難教又難學(xué)。軟件過程模型、軟件工程方法和軟件工具已在廣闊的行業(yè)應(yīng)用領(lǐng)域得到成功的采用。在此,試圖將軟件工程理論與VB教學(xué)相結(jié)合,探討如何引導(dǎo)學(xué)生從工程的角度解決程序設(shè)計問題,提高學(xué)生的綜合素養(yǎng)。

二、軟件工程基本理論

(一)軟件工程定義

B.w.Boehm認(rèn)為軟件工程就是運用現(xiàn)代科學(xué)技術(shù)知識來設(shè)計并構(gòu)造計算機(jī)程序及為開發(fā)、運行和維護(hù)這些程序所必須的相關(guān)文件資料。這里對“設(shè)計”一詞應(yīng)有廣義的理解,它包括軟件的需求分析和對軟件進(jìn)行修改時所進(jìn)行的再設(shè)計活動。

IEEE說:“軟件工程是開發(fā)、運行、維護(hù)和修復(fù)軟件的系統(tǒng)方法”,其中,“軟件”是計算機(jī)程序、方法、規(guī)則、相關(guān)的文檔資料以及在計算機(jī)上運行時所必需的數(shù)據(jù)。

Faidey給出的軟件工程的定義為:軟件工程學(xué)為在成本限額以內(nèi)按時完成開發(fā)和修改軟件產(chǎn)品所需的系統(tǒng)生產(chǎn)和維護(hù)的技術(shù)與管理的科學(xué)。

《計算機(jī)科學(xué)技術(shù)百科全書》中的定義:軟件工程是應(yīng)用計算機(jī)科學(xué)、數(shù)學(xué)及管理科學(xué)等原理,開發(fā)軟件的工程。軟件工程借鑒傳統(tǒng)工程的原則、方法,以提高質(zhì)量、降低成本。其中,計算機(jī)科學(xué)、數(shù)學(xué)用于構(gòu)建模型與算法,工程科學(xué)用于制定規(guī)范、設(shè)計范型(paradigm)、評估成本及確定權(quán)衡,管理科學(xué)用于計劃、資源、質(zhì)量、成本等管理。

上面是軟件的幾個定義,其實概括起來就是軟件+工程。就是把工程學(xué)的思想應(yīng)用于軟件,但是軟件工程又不同于其他的工程,它有它特別的地方。采用工程的概念、原理、技術(shù)和方法來開發(fā)與維護(hù)軟件,把經(jīng)過時間考驗而證明正確的管理技術(shù)和當(dāng)前能夠得到的最好的技術(shù)方法結(jié)合起來,這就是軟件工程。隨著信息化的不斷擴(kuò)大,軟件的范圍已經(jīng)越來越廣了,越來越大了。所以有一個良好的軟件開發(fā)方法,能有效的提高軟件的開發(fā)效率。軟件工程就是研究這一方面的。如同土木工程,建筑工程一樣,軟件也需要系統(tǒng)化,規(guī)范化,可量化的進(jìn)行開發(fā)。

(二)軟件工程基本要素

軟件工程包括了三個基本要素:方法、工具和過程。

軟件工程方法為軟件開發(fā)提供了“如何做”的技術(shù)。它包括了多方面的任務(wù),如項目計劃與估算、軟件系統(tǒng)需求分析、數(shù)據(jù)結(jié)構(gòu)、系統(tǒng)總體結(jié)構(gòu)的設(shè)計、算法過程的設(shè)計、編碼、測試以及維護(hù)等。

軟件工具為軟件工程方法提供了自動的或半自動的軟件支撐環(huán)境。目前,已經(jīng)推出了許多軟件工具,已經(jīng)能夠支持上述的軟件工程方法。已經(jīng)有人把諸多的軟件工具集成起來,使得一種工具生產(chǎn)的信息可以為其它的工具所使用,這樣建立起一種被稱之為計算機(jī)輔助軟件工程(CASE)的軟件開發(fā)支撐系統(tǒng)。

軟件工程的過程則是將軟件工程的方法和工具綜合起來以達(dá)到合理、及時地進(jìn)行計算機(jī)軟件開發(fā)的目的。軟件工程的過程定義了方法使用的順序、要求交付的文檔資料、為保證質(zhì)量和協(xié)調(diào)變化所需的管理及軟件開發(fā)各個階段完成的里程碑。

(三)軟件開發(fā)模型

軟件生命周期是軟件工程的基礎(chǔ),它由軟件功能的大小決定的。要開發(fā)一個高質(zhì)量的軟件產(chǎn)品,首先要根據(jù)軟件生存周期為各項開發(fā)的流程確定一個合理的框架,稱為軟件生存期模型或軟件開發(fā)模型。

瀑布模型(Waterfall Model)也稱線性順序模型。瀑布模型把開發(fā)過程分成固定的、相對獨立的各個階段,每個階段都有確定的、有限的任務(wù),而且在各個階段采用一些規(guī)范的開發(fā)方法和管理手段,力求保證軟件質(zhì)量和提高軟件生產(chǎn)率。瀑布模型各個階段的工作順序展開,恰如“奔流不息、拾級而下”的瀑布,故而得名。軟件開發(fā)的瀑布模型實際是對軟件生命周期的模擬。

軟件生命周期的階段劃分有多種方法。典型的階段劃分為問題定義、可行性研究、需求分析、概要設(shè)計(總體設(shè)計)、詳細(xì)設(shè)計、編碼與單元測試、綜合測試、維護(hù)等八個階段,總體由計劃、開發(fā)和運行三個時期組成。

1.問題定義。問題定義階段必須回答的關(guān)鍵問題是“要解決的問題是什么?”,通過系統(tǒng)分析員與客戶的溝通交流,使雙方對問題理解明晰化,得到雙方都認(rèn)可和接受的文檔。

2.可行性研究。可行性研究階段所回答的關(guān)鍵問題是“有可行的解嗎?”??尚行匝芯勘容^簡短,主要研究問題的范圍,探索問題是否值得去解,是否有可行的解決辦法,并對建議的系統(tǒng)做出成本效益分析。

3.需求分析。需求分析階段必須回答的關(guān)鍵問題是“系統(tǒng)必須做什么?”,主要是確定目標(biāo)系統(tǒng)必須具備哪些功能。系統(tǒng)分析員必須和客戶進(jìn)行充分的交流,誘導(dǎo)出客戶對系統(tǒng)的需求,并且予以確認(rèn)。需求分析階段是重要而且是必不可少的階段,否則到了開發(fā)后期將付出高昂的修改成本。

4.總體設(shè)計。總體設(shè)計階段必須回答的關(guān)鍵問題是“概括地說,應(yīng)該如解決這個問題?”,這個階段也被稱為概要設(shè)計。系統(tǒng)分析員使用系統(tǒng)流程圖描述多種可能的系統(tǒng),并從成本效益角度選擇最佳方案,設(shè)計軟件的結(jié)構(gòu)。

5.詳細(xì)設(shè)計。詳細(xì)設(shè)計階段回答的關(guān)鍵問題是“應(yīng)該怎樣具體地實現(xiàn)這樣系統(tǒng)?”,其任務(wù)就是解法的具體化,即設(shè)計出程序的詳細(xì)規(guī)格說明。

6.編碼和單元測試。關(guān)鍵任務(wù)是寫出正確的程序模塊,程序員根據(jù)目標(biāo)系統(tǒng)的性質(zhì)和實際環(huán)境,選取適當(dāng)?shù)母呒壋绦蛟O(shè)計語言,把詳細(xì)設(shè)計的結(jié)果翻譯成用選定的語言書寫的程序,并測試每個具體的模塊。

7.綜合測試。關(guān)鍵任務(wù)是通過測試使軟件達(dá)到預(yù)定的要求。測試是為了發(fā)現(xiàn)程序中的錯誤而執(zhí)行程序的過程,最基本的測試是集成測試和驗收測試,具體方法有黑盒測試、白盒測試等。

8.軟件維護(hù)。關(guān)鍵任務(wù)是使軟件持久的滿足客戶需要。按照維護(hù)的性質(zhì)不同,軟件維護(hù)分為改正性維護(hù)、適應(yīng)性維護(hù)、完善性維護(hù)和預(yù)防性維護(hù)。軟件的可維護(hù)性是維護(hù)人員理解、改正和改進(jìn)軟件的難易程度,主要由可理解性、可測試性和可修改性決定。決定軟件可維護(hù)性和可修改性的最終因素是軟件設(shè)計階段采用的方法和軟件文檔資料。

三、用“瀑布模型”理論指導(dǎo)VB教學(xué)

VisualBasic是一種可視化的編程語言,用于開發(fā)Win-dows環(huán)境下應(yīng)用程序的工具,采用面向?qū)ο蟮某绦蛟O(shè)計方法和事件驅(qū)動方式的程序設(shè)計原理。VB是可以快速掌握的一種編程語言,相對VC等簡單易學(xué),開發(fā)環(huán)境友好便利,是初學(xué)者的首選入門語言,軟件工程理論提供的軟件系統(tǒng)開發(fā)的方法學(xué),是指導(dǎo)軟件系統(tǒng)開發(fā)的理論工具。而VB是面向?qū)ο蟮某绦蛟O(shè)計語言,是作為軟件開發(fā)重要基礎(chǔ)之一的計算機(jī)程序設(shè)計語言,它也遵循軟件開發(fā)的一般規(guī)律。因而,將面向?qū)ο蟮能浖こ痰睦碚撨\用于VB程序設(shè)計是較為自然合理的事情,讓程序設(shè)計同樣遵循軟件開發(fā)、運行和維護(hù)的一般規(guī)律。因此,在VB教學(xué)中融入軟件工程的思想。不僅能鞏固原木的概念、方法,還能讓學(xué)生熟悉項目開發(fā)的流程。用工程的思想解決實際問題,對后續(xù)的其他計算機(jī)類課程也會產(chǎn)生積極的影響。

1.讓學(xué)生意識到軟件工程思想的重要性

軟件工程是一門研究用工程化方法構(gòu)建和維護(hù)高質(zhì)量軟件的學(xué)科,是軟件行業(yè)在過去幾十年的發(fā)展過程中總結(jié)出的經(jīng)驗和理論,具有較強的理論性和抽象性。而VB程序設(shè)計屬于軟件行業(yè)中的實踐環(huán)節(jié),從辯證唯物主義哲學(xué)的角度來講,理論源于實踐,而又反過來指導(dǎo)實踐。

很多學(xué)生在接受軟件工程思想時,往往有一種誤解,認(rèn)為只有編寫大型軟件時才需要用到軟件工程中的理論,對于平時課堂上所學(xué)的小例子,則不需要高深的理論指導(dǎo)。甚至有人認(rèn)為VB程序設(shè)計與軟件工程是完全沒有關(guān)系的兩門課。這種認(rèn)識是因?qū)幊汤碚摵蛯嵺`之間的互補關(guān)系缺乏了解而造成的。其實軟件工程中的思想,在編程過程中隨處可見,尤其對于VB這樣一門面向?qū)ο蟮母呒壘幊陶Z言。教師在進(jìn)行教學(xué)時應(yīng)注意培養(yǎng)學(xué)生的軟件工程意識,讓學(xué)生認(rèn)識到軟件工程思想的重要性和普適性。比如,在講解變量時,可對軟件工程中變量的命名規(guī)則加以介紹;學(xué)習(xí)函數(shù)時,在介紹函數(shù)的語法的同時,也應(yīng)強調(diào)一下函數(shù)的設(shè)計原則,例如在一行內(nèi)只寫一條語句,并采取適當(dāng)?shù)目s進(jìn)格式,使程序的邏輯和功能變得更加明確,否則會降低代碼的可讀性和可測試性;講解類中成員的訪問權(quán)限時,可以引申出軟件工程中“代碼隔離”原則。通過在講解語法的同時,深入淺出地引入軟件工程中的理論思想,使學(xué)生認(rèn)識到軟件工程思想的重要性,進(jìn)而從一個較高的角度去認(rèn)識程序設(shè)計。

2.了解軟件是有生命周期的

VB作為一門實用的編程語言,是后續(xù)計算機(jī)類課程的基礎(chǔ)。因此,教師在初步介紹VB的產(chǎn)生、發(fā)展和特點后,就應(yīng)該引入軟件工程的基本理論。首先讓學(xué)生了解,軟件是有生命周期的,一個軟件從定義、開發(fā)、使用和維護(hù),直到最終被廢棄,要經(jīng)歷一個漫長的時期,即軟件除了編碼之外,還有許多更重要的階段。根據(jù)傳統(tǒng)的軟件生命周期方法,我們知道編碼只是軟件開發(fā)的一個很小的階段,而且是處于實現(xiàn)階段。

對于VB初學(xué)者來說,由于沒有正式接受系統(tǒng)化開發(fā)方法的指導(dǎo),往往會形成一個錯誤的認(rèn)識,認(rèn)為軟件開發(fā)就是編碼,即拿到問題后就著手編寫程序。這種做法的不良后果初學(xué)者無法體會到,因為他們所面臨的需要解決的問題,無論從規(guī)模,還是從難易程度而言,實在是太小了。所以在直接編寫程序的過程中,大腦已經(jīng)讓初學(xué)者無意識地完成了問題的定義和設(shè)計過程。但是,這種僥幸的“個體化”做法對于復(fù)雜的現(xiàn)實問題的解決,即軟件項目的開發(fā)是絕對行不通的。因此,必須從接觸軟件概念開始,就樹立正確的開發(fā)觀,為今后專業(yè)化開發(fā)打好基礎(chǔ)。

3.強調(diào)軟件需求分析和設(shè)計

在以往的VB教學(xué)中,教師常常先講解程序設(shè)計的基本語句與結(jié)構(gòu)以及一些常用控件。再舉幾個例子說明其使用辦法,由于講解的程序通常都是簡單短小的,所以不會強調(diào)應(yīng)該進(jìn)行需求分析和設(shè)計。其實即使很小的程序也需要進(jìn)行簡單的分析和設(shè)計。在教師給出學(xué)生題目后,應(yīng)提醒學(xué)生編程前先分析、設(shè)計。比如很簡單的例子,設(shè)計計算長方形面積的程序,那么首先我們先明確需求:根據(jù)用戶輸入的長方形的長和寬,計算輸出長方形的面積;那么接下來應(yīng)該怎么實現(xiàn)呢,算法可以確定求出長方形面積-長×寬,再思考窗體、控件作為對象需要哪些事件、方法。所以不論程序的規(guī)模大小,最好能讓學(xué)生學(xué)會用流程圖來描述其步驟。

4.引導(dǎo)學(xué)生用軟件工程中的思想解決實際問題

讓學(xué)生認(rèn)識到軟件工程的重要性,最行之有效的辦法就是用軟件工程中的思想解決程序設(shè)計中的實際問題。再好的理論如不能應(yīng)用于實踐,也只能被束之高閣。相比起抽象的理論,學(xué)生往往更容易接受像VB這樣具有強烈實踐性質(zhì)的課程。因此,教師在課堂上可通過難度適當(dāng)?shù)陌咐龑?dǎo)學(xué)生積極地用軟件工程中的思想解決VB程序設(shè)計中的實際問題,這對于學(xué)生編程能力的提高具有很大的促進(jìn)作用,同時也讓學(xué)生更深刻的體會了軟件工程思想的重要性和實用性。

VB程序設(shè)計中的很多問題都可以在軟件工程理論中找到答案,下面以教學(xué)過程中典型的兩個案例進(jìn)行說明。

案例一:學(xué)生甲在用VB編寫一個圖書館管理系統(tǒng)時遇到一個問題,系統(tǒng)在窗體A中以列表的形式顯示了一個班級中全體學(xué)生的基本信息,當(dāng)雙擊某一學(xué)生記錄時,彈出窗體B,在窗體B中對該生的基本信息進(jìn)行編輯,當(dāng)關(guān)閉窗體B時,應(yīng)同步更新窗體A中該生的基本信息。問題是,更新窗體A的代碼應(yīng)該在窗體A中調(diào)用還是在窗體B中調(diào)用?

顯然,如放在窗體B中調(diào)用,在關(guān)閉窗體B的同時調(diào)用更新窗體A的代碼,這種代碼結(jié)構(gòu)實現(xiàn)起來比較簡單,因而是很多初學(xué)者的選擇。但如果從軟件工程中“低耦合,高內(nèi)聚”的思想來看,在A中彈出B,在B中更新A,會導(dǎo)致兩個窗體交叉引用(A引用了B,B也引用了A),屬于較高級別的耦合;而如果在A中彈出B,然后在A中更新A,則兩個窗體之間僅是單向引用(A引用了B,B沒有引用A),因此可以得出結(jié)論,在窗體A中執(zhí)行更新代碼是較優(yōu)選擇。

案例二:學(xué)生乙想用VB編寫一款能夠在線對弈的象棋程序。該生平時動手能力較強,考試成績也非常優(yōu)秀,但在處理這個實際問題時卻感到無從下手,不知道第一步該做什么。通過對軟件工程理論的學(xué)習(xí),該生逐步了解了軟件開發(fā)的正常過程,從需求分析開始入手,到類圖的設(shè)計,再到代碼實現(xiàn)、測試,最終成功地完成了該程序。

通過軟件工程中的思想理論解決VB程序設(shè)計中的具體問題,使學(xué)生感覺到,軟件工程不再是一種“看不見、摸不著”的空中樓閣,而是一種行之有效的解決實際問題的手段,從而可達(dá)到“學(xué)以致用”的教學(xué)目的。

四、結(jié)論

總體而言,程序設(shè)計是一個完整的過程,而不是我們通常認(rèn)為的程序設(shè)計就是“編寫程序”,它只是整個程序設(shè)計過程中的一個環(huán)節(jié)而已。從實踐來看,“編寫程序”這個任務(wù)在整個程序設(shè)計當(dāng)中占有的比例,往往不到三分之一。在一個項目中,我們往往是將更多的時間用在前面的“問題分析”與“設(shè)計算法”以及后期的編寫文檔等等。

將軟件工程理論思想與方法前移應(yīng)用與V B課程設(shè)計的項目教學(xué)方法,改變了過去課程設(shè)計與實際應(yīng)用系統(tǒng)開發(fā)脫節(jié)的教學(xué)模式,盡早培養(yǎng)了學(xué)生系統(tǒng)設(shè)計的思想,對后續(xù)課程的教學(xué)與將來的社會工作實踐實際都起到了比較好的教學(xué)效果。特別表現(xiàn)在工程應(yīng)用設(shè)計、系統(tǒng)測試與技術(shù)文檔的書寫等方面,全面提高了學(xué)生綜合應(yīng)用能力與創(chuàng)新思維的培養(yǎng),在實踐的教學(xué)效果上,取得了比較滿意的效果。

責(zé)任編輯 李翔

猜你喜歡
窗體程序設(shè)計軟件
禪宗軟件
基于Visual Studio Code的C語言程序設(shè)計實踐教學(xué)探索
試談Access 2007數(shù)據(jù)庫在林業(yè)檔案管理中的應(yīng)用
從細(xì)節(jié)入手,談PLC程序設(shè)計技巧
軟件對對碰
高職高專院校C語言程序設(shè)計教學(xué)改革探索
PLC梯形圖程序設(shè)計技巧及應(yīng)用
談軟件的破解與保護(hù)
巧設(shè)WPS窗體控件讓表格填寫更規(guī)范
豐富多彩的Android軟件
车致| 贵溪市| 西充县| 电白县| 常熟市| 酒泉市| 海阳市| 马尔康县| 佳木斯市| 绥阳县| 衡水市| 大庆市| 广安市| 昌黎县| 唐海县| 吴桥县| 肃宁县| 长治县| 台中县| 昭苏县| 札达县| 裕民县| 博罗县| 柳河县| 土默特右旗| 额尔古纳市| 彩票| 株洲县| 台东县| 新蔡县| 法库县| 三原县| 桐乡市| 白玉县| 平遥县| 祁阳县| 阜康市| 临漳县| 阳泉市| 辛集市| 漾濞|