摘要:軟件作為一種特別的產(chǎn)品,軟件的發(fā)展規(guī)模與繁瑣性不斷地提高。本文主要從四個(gè)層面對軟件工程技術(shù)的發(fā)展進(jìn)行一些思索:第一,就事物發(fā)展規(guī)律的視角,闡述了軟基工程技術(shù)的發(fā)展史;第二,就軟件本質(zhì)特點(diǎn)的視角,分析了虛擬機(jī)各個(gè)抽象方面的構(gòu)成;第三,就軟件開發(fā)的視角,體現(xiàn)軟件工程要探究的內(nèi)容;第四,研究了軟件技術(shù)的發(fā)展動(dòng)向。本文還介紹了軟件工程技術(shù)在課程設(shè)計(jì)中的應(yīng)用情況。
關(guān)鍵詞:軟件工程;軟件特稱;網(wǎng)構(gòu)軟件;軟件復(fù)用
中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A 文章編號:1007-9599 (2012) 22-0000-02
軟件工程是一門獨(dú)立的學(xué)科,它已經(jīng)經(jīng)歷過三十年的發(fā)展時(shí)間。20世紀(jì)60年代,受高級語言流行的影響,計(jì)算機(jī)的使用范圍也得到了擴(kuò)大,對軟件系統(tǒng)需求量的急速升高,導(dǎo)致所說的“軟件危機(jī)”出現(xiàn),也就是軟件開發(fā)在質(zhì)量和效率等層面上都滿足不了應(yīng)用的需求。為了解決這個(gè)問題,提出了“軟件工程”這一名詞,使軟件開發(fā)逐步從“藝術(shù)”和“技巧”以及“個(gè)體行為”朝“工程”與“群體協(xié)同工作”發(fā)展過程。本文就對這個(gè)變化過程中存在的問題進(jìn)行研究。
1 軟基技術(shù)發(fā)展歷程
軟件工程在過程中具有一定意義的發(fā)展,主要有:第一,20世紀(jì)60年代晚期:開始關(guān)注程序結(jié)構(gòu)的探究;結(jié)構(gòu)化的程序設(shè)計(jì)想法產(chǎn)生;軟件工程想法與軟件工程這一名詞被正式提出。第二,20世紀(jì)70年代:軟件開發(fā)的初始時(shí)期得到關(guān)注,人們開始探究結(jié)構(gòu)化分析與設(shè)計(jì)手段;程序設(shè)計(jì)方法學(xué)研究變成一個(gè)單獨(dú)的研究范圍;提出了將數(shù)據(jù)當(dāng)成核心的抽象數(shù)據(jù)類型概念;軟件工具逐漸產(chǎn)生。第三,20世紀(jì)80年代:軟件開發(fā)方法學(xué)逐漸取代了程序設(shè)計(jì)方法學(xué);輔助軟件工程以及軟件工程環(huán)境的研究是當(dāng)時(shí)的熱點(diǎn);面向?qū)ο蠹夹g(shù)逐漸產(chǎn)生而且還逐漸地流行起來。第四,20世紀(jì)90年代:面向?qū)ο蠓椒ㄅc技術(shù)變成主要的軟件開發(fā)技術(shù);軟件過程探究成為當(dāng)時(shí)的熱點(diǎn),還有企業(yè)軟件改善也是當(dāng)時(shí)的熱點(diǎn);軟件的復(fù)用與軟件構(gòu)建技術(shù)在當(dāng)時(shí)被看成是唯一一條能夠有效解決軟件危機(jī)的方法。
軟件為客觀事物的反映,客觀世界是變化發(fā)展的,促使軟件也要隨著客觀事物的發(fā)展而發(fā)展,這樣的客觀事物發(fā)展規(guī)律使得軟件工程的出現(xiàn)與發(fā)展。假如只從解決計(jì)算機(jī)軟件和硬件的異構(gòu)性與各類軟件間的異構(gòu)性視角,就能夠看見軟基技術(shù)的發(fā)展方式。比如,為了屏蔽硬件間的異構(gòu)性發(fā)展了操作系統(tǒng),為了屏蔽操作系統(tǒng)間與C語言間的異構(gòu)性產(chǎn)生了支持軟件與中間件等等;隨著解決這種問題的持續(xù)深入,對于引用性與適應(yīng)性的需求就會(huì)持續(xù)地提高,還有軟件技術(shù)的持續(xù)發(fā)展,也會(huì)產(chǎn)生一些其他繁瑣的異構(gòu)問題,這種問題的解決會(huì)使軟件技術(shù)得到很好地發(fā)展。
2 軟件與軟件內(nèi)容
軟件的研究內(nèi)容可以分成三個(gè)方面:首先,研究軟件的本質(zhì)與模型,也就是軟件的元素和結(jié)構(gòu)模型,它為軟件具有良好結(jié)構(gòu)性且可以有效運(yùn)行的前提。同時(shí),與其相差不多形式化模型的探究也為主要的研究問題,它為軟件可以生產(chǎn)自動(dòng)化不可缺少的條件;其次,對于特別的軟件模型,探究有效的開發(fā)技術(shù),來提升軟件系統(tǒng)開發(fā)的效果與質(zhì)量。最后,研究一定領(lǐng)域的軟件或者是特別應(yīng)用的軟件。
軟件技術(shù)的研究內(nèi)容又可以分成軟件語言和軟件工程等。軟件語言為進(jìn)行書寫軟件的語言,它主要有需求級語言和功能級語言以及實(shí)現(xiàn)級語言,對于不一樣的語言處理方式所使用的軟件模式也是不一樣的。軟件工程主要研究的是怎樣利用計(jì)算機(jī)科學(xué)和數(shù)學(xué)理論來有效地開發(fā)軟件。具體有:將軟件開發(fā)方法作為研究內(nèi)容的軟件方法學(xué),將軟件生命周期作為研究內(nèi)容的軟件工程,還有將自動(dòng)化軟件研發(fā)歷程作為內(nèi)容的CASE工具與環(huán)境。軟件系統(tǒng)主要為操作系統(tǒng)以及語言處理系統(tǒng)等軟件。它們是人們開發(fā)各種使用系統(tǒng)運(yùn)行的支撐。比如操作系統(tǒng)為用來管理系統(tǒng)資源的軟件,主要就是為了提升計(jì)算機(jī)的整體使用狀況。語言處理系統(tǒng)主要有各種各樣的處理程序,例如。解釋程序與匯編程序以及編輯程序等,主要是把該程序的使用者書寫軟件翻譯成計(jì)算機(jī)能夠理解與運(yùn)行的程序,數(shù)據(jù)庫系統(tǒng)只要由數(shù)據(jù)庫以及它的管理系統(tǒng)構(gòu)成,主要用來支持關(guān)系到眾多數(shù)據(jù)保存與處理的使用系統(tǒng)開發(fā)與運(yùn)行。
3 軟件工程的主要研究內(nèi)容
就某種角度而言,軟件開發(fā)的實(shí)質(zhì)就是達(dá)到“高層概念”至“低層概念”的反映,達(dá)到“高層處理邏輯”至“低層處理邏輯”的反映。就大型軟件系統(tǒng)的研發(fā)而言,這個(gè)反應(yīng)時(shí)對比較繁瑣的,牽扯到有關(guān)人員、使用的技術(shù)和采用的手段與所需要的資金以及時(shí)間的束縛,于是,就可以將軟件工程概括為:軟件工程是指“利用計(jì)算機(jī)科學(xué)理論與技術(shù)還有工程管理原則與方法,根據(jù)預(yù)算與進(jìn)度,達(dá)到滿足軟件使用者的需求的軟件產(chǎn)品的定義和開發(fā)以及發(fā)布與維護(hù)的工程或者是把它當(dāng)成是研究對象的學(xué)科?!避浖こ毯蛣e的工程相同,要擁有自己的目標(biāo)和活動(dòng)以及需要堅(jiān)持的原則。
它的基本目標(biāo)為生產(chǎn)擁有正確性的產(chǎn)品和可用性的產(chǎn)品以及開銷核算的產(chǎn)品。正確性是指產(chǎn)品達(dá)到預(yù)定的功能的程度;可用性是指軟件的結(jié)構(gòu)和實(shí)現(xiàn)以及文檔為用戶使用的使用程度;開銷合算性是指軟件的研發(fā)和使用的總體開銷滿足軟件使用者的需要。上述目標(biāo)的實(shí)現(xiàn)不管是在理論方面還是在具體使用里都存有問題需要解決,束縛了對過程和過程模型以及工程方法的選擇。
軟件工程活動(dòng)包括需求和設(shè)計(jì)以及實(shí)現(xiàn)等活動(dòng)。需求活動(dòng)為在抽象層上創(chuàng)設(shè)系統(tǒng)模型的行為,需求規(guī)約為需求活動(dòng)的主要產(chǎn)品,需求規(guī)約為軟件研發(fā)者與軟件需求者間訂立約定的基礎(chǔ),為設(shè)計(jì)的輸入。軟件體系結(jié)構(gòu)和處理算法等為設(shè)計(jì)的產(chǎn)品。實(shí)現(xiàn)活動(dòng)為設(shè)計(jì)規(guī)約之代碼變換的行為。
軟件設(shè)計(jì)的主要目的就是為了要實(shí)現(xiàn)好的結(jié)構(gòu),讓研發(fā)出來的軟件擁有較好的結(jié)構(gòu)性與演化性。軟件工程主要研究軟件研發(fā)范型、設(shè)計(jì)方法和工程支持技術(shù)以及工程管理技術(shù)。軟件研發(fā)范型與軟件工程的“方向”有關(guān)。探索準(zhǔn)確的求解軟件的計(jì)算邏輯;軟件設(shè)計(jì)方法與軟件工程的“途徑”有關(guān),探索“高層概念模型與處理邏輯”至“低層概念模型與處理邏輯”的映射。綜上所述,軟件工程開發(fā)就是如上所說的一種映射,并且這種映射里牽扯到人員和技術(shù)以及成本等元素,因此,就要研究軟件生產(chǎn)模式問題。
傳統(tǒng)的產(chǎn)業(yè)發(fā)展模式都為滿足標(biāo)準(zhǔn)的令構(gòu)件生產(chǎn)和以零部件為基礎(chǔ)的產(chǎn)品的組裝,在這個(gè)活動(dòng)中,部件為核心,“復(fù)用”為一定的手段。事實(shí)表明,這樣的模式為軟件研發(fā)實(shí)現(xiàn)工程化的必經(jīng)過程。于是,軟件行業(yè)的發(fā)展到發(fā)展成規(guī)模經(jīng)濟(jì),符合要求部件的生產(chǎn)與部件的復(fù)用是其實(shí)現(xiàn)的重要因素。
4 軟件工程的未來發(fā)展方向
二十世紀(jì)后期逐步流行的網(wǎng)絡(luò)為人們提供了一個(gè)資源眾多的計(jì)算舞臺,將來怎樣在網(wǎng)絡(luò)上不斷地整合資源,使資源能夠有效為使用者服務(wù),是軟件研究的熱點(diǎn)。網(wǎng)絡(luò)舞臺擁有分布性和開放性以及異構(gòu)性等特點(diǎn),這是傳統(tǒng)軟件所不具有的。這就給軟件工程的發(fā)展提出了新的問題。軟件工程要采用新的方法和技術(shù)去解這個(gè)問題。當(dāng)前,具有帶表性的事情就是對中間技術(shù)的研究。
如上所說,網(wǎng)絡(luò)的飛速發(fā)展和普及,讓軟件環(huán)境逐漸從靜態(tài)封閉轉(zhuǎn)向開放和動(dòng)態(tài)。軟件系統(tǒng)要適合這種發(fā)展方向,漸漸地就會(huì)表現(xiàn)出多目標(biāo)和柔性的形態(tài)。與這樣的軟件形態(tài)相比,傳統(tǒng)的軟件技術(shù)和方法等機(jī)會(huì)面臨一些沖擊與挑戰(zhàn)。就總體上而言,它為研究人員研究軟件理論和方法等給予了機(jī)遇,讓研究人員可能研究出一套與網(wǎng)絡(luò)開放和動(dòng)態(tài)環(huán)境的新型軟件技術(shù)體系。就局部而言,網(wǎng)路的發(fā)展會(huì)使系統(tǒng)軟件的研究重點(diǎn)逐漸從操作系統(tǒng)向中間平臺轉(zhuǎn)變,網(wǎng)構(gòu)軟件的方法與技術(shù)的發(fā)展也會(huì)使中間件平臺在創(chuàng)新技術(shù)上有所發(fā)展。
5 在課程設(shè)計(jì)中的應(yīng)用
從軟件工程的視角去引導(dǎo)同學(xué)實(shí)行課程設(shè)計(jì),讓學(xué)生了解在課程設(shè)計(jì)時(shí),將系統(tǒng)地把學(xué)過的知識運(yùn)用在實(shí)際問題中,依照軟件工程的思想進(jìn)行工作。
5.1 將可行性研究引導(dǎo)選題,把握好選題這一關(guān)
在選題應(yīng)該堅(jiān)持以下原則:首先,從專業(yè)要培養(yǎng)的目標(biāo)的為出發(fā)點(diǎn),顯現(xiàn)專業(yè)所要訓(xùn)練的內(nèi)容,不僅使學(xué)生能夠得到全面的訓(xùn)練,還要保障課程設(shè)計(jì)具有量的編程,來清楚它的工作成果。其次,選題應(yīng)要做到具有完整性與獨(dú)立性。最后,提倡學(xué)生通過參加社會(huì)活動(dòng)來尋求課題,培養(yǎng)學(xué)生們自主學(xué)習(xí)能力。
5.2 規(guī)范設(shè)計(jì)過程
仔細(xì)設(shè)計(jì)環(huán)節(jié)的任務(wù)為進(jìn)一步的進(jìn)入函數(shù)內(nèi)部,將偽代碼或者是注釋的方式實(shí)現(xiàn)整個(gè)函數(shù),但是在這個(gè)過程不編寫代碼,要設(shè)計(jì)出程序的說明。并且依據(jù)函數(shù)語句流向編寫各個(gè)函數(shù)單元測試規(guī)劃。自系統(tǒng)設(shè)計(jì)起,同學(xué)們根據(jù)軟件工程需求,畫出DFD圖,將輸入和輸出數(shù)據(jù)流給予詳細(xì)的說明,構(gòu)建滿足軟件工程需要的數(shù)據(jù)字典,依據(jù)DFD圖畫出模塊結(jié)構(gòu)圖。
6 總結(jié)
軟件作為一種特別的產(chǎn)品,軟件的發(fā)展規(guī)模與繁瑣性不斷地提高。本文主要從四個(gè)層面對軟件工程技術(shù)的發(fā)展進(jìn)行一些思索:首先,就事物發(fā)展規(guī)律的視角,闡述了軟基工程技術(shù)的發(fā)展史;其次,就軟件本質(zhì)特點(diǎn)的視角,分析了虛擬機(jī)各個(gè)抽象方面的構(gòu)成;再次,就軟件開發(fā)的視角,體現(xiàn)軟件工程要探究的內(nèi)容;最后,研究了軟件技術(shù)的發(fā)展動(dòng)向。本文還介紹了軟件工程技術(shù)在課程設(shè)計(jì)中的應(yīng)用情況。
參考文獻(xiàn):
[1]王宇.軟件工程的開發(fā)方法在智能庫管系統(tǒng)中的應(yīng)用[J].計(jì)算機(jī)光盤軟件與應(yīng),2011(17).
[2]王海梅.敏捷開發(fā)模式在本科計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)教學(xué)中的應(yīng)用探索[J].計(jì)算機(jī)光盤與應(yīng)用,2010(12).
[3]楊南化.電子化測評技術(shù)在軟件工程專業(yè)教學(xué)中的應(yīng)用[J].華僑大學(xué)學(xué)報(bào)(自然科學(xué)版),2009(06).
[4]韓強(qiáng).軟件工程(數(shù)字媒體技術(shù))特色專業(yè)的特色建設(shè)[J].中國電子商務(wù),2010(02).
[5]孫希,張居洋.省級氣象預(yù)報(bào)業(yè)務(wù)系統(tǒng)軟件工程開發(fā)原則與技術(shù)[J].氣象科學(xué),2010(15).
[6]李衛(wèi)紅.基于語義網(wǎng)的軟件工程數(shù)據(jù)查詢處理技術(shù)研究[J].中國電子商務(wù),2011(05).
[7]尹峰.試論軟件工程增設(shè)為一級學(xué)科后的基于與挑戰(zhàn)[J].黔南民族師范學(xué)院學(xué)報(bào),2012(32).
[8]孫昌愛,劉超.網(wǎng)絡(luò)環(huán)境下軟件工程教學(xué)的嘗試與思考[J].科教導(dǎo)刊,2012(12).
[9]薛清平.關(guān)于對軟件工程控制的幾點(diǎn)思考[J].激素啊你光盤軟件與應(yīng)用,2011(23).
[10]毛紅艷,姜寧康.關(guān)于軟件工程信息共享技術(shù)的探討[J].電腦知識與技術(shù),2011(07).