張璋 何書前 鄭志群 石春
摘要:計(jì)算機(jī)軟件開發(fā)技術(shù)涵蓋三個(gè)方面的內(nèi)容,即軟件開發(fā)方法學(xué)、軟件開發(fā)所用工具以及軟件開發(fā)的環(huán)境支撐,其中軟件開發(fā)方法學(xué)占據(jù)主體地位,學(xué)術(shù)界將其稱為軟件工程技術(shù),有效地解決了現(xiàn)代軟件開發(fā)過程中的軟件危機(jī)問題。本文從軟件開發(fā)技術(shù)以及應(yīng)用兩個(gè)方面對(duì)計(jì)算機(jī)軟件的相關(guān)內(nèi)容簡要的論述,為更好地了解和應(yīng)用軟件技術(shù)提供參考。
關(guān)鍵詞:計(jì)算機(jī);軟件;開發(fā)技術(shù);應(yīng)用
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2018)08-0246-02
1計(jì)算機(jī)軟件開發(fā)技術(shù)簡介
1)軟件開發(fā)方法學(xué)——軟件工程技術(shù)
軟件工程(Software Engineering)一門計(jì)算機(jī)技術(shù)工程學(xué)科,通過對(duì)軟件開發(fā)和維護(hù)過程進(jìn)行系統(tǒng)化、規(guī)范化的設(shè)計(jì)和應(yīng)用,解決早期開發(fā)過程中非規(guī)范化軟件開發(fā)引起的軟件危機(jī)問題。整個(gè)開發(fā)過程大致分為三個(gè)階段,即軟件定義階段、軟件開發(fā)階段以及軟件維護(hù)階段,軟件定義階段,主要進(jìn)行軟件項(xiàng)目的可行性研究和需求分析研究,并完成相應(yīng)可行性報(bào)告以及需求分析文檔,做好軟件定義工作是極其關(guān)鍵,是指導(dǎo)后續(xù)開發(fā)以及維護(hù)工作的基礎(chǔ);軟件開發(fā)階段按照需求文檔進(jìn)行開發(fā)設(shè)計(jì),完成編碼工作,并進(jìn)行軟件測試(主要包括白盒以及黑盒測試),最終上交形成測試報(bào)告以及軟件源代碼,并保障所開發(fā)出來的軟件在功能、性能方面達(dá)到設(shè)計(jì)階段的目標(biāo);維護(hù)階段則是根據(jù)用戶的需求變更或者系統(tǒng)的升級(jí)換代進(jìn)行必要的軟件維護(hù),維護(hù)工作貫穿軟件運(yùn)行的整個(gè)周期。軟件工程所追求的目標(biāo)就是在約定成本、限定開發(fā)周期的條件下,開發(fā)出適用性高、穩(wěn)定性強(qiáng)、可維護(hù)性好的軟件系統(tǒng)。軟件工程的核心在于軟件開發(fā)方法,從實(shí)際應(yīng)用的角度來看,當(dāng)前流行的開發(fā)方法包括原型化方法、面向?qū)ο蠓椒?、結(jié)構(gòu)化方法等等,以原型方法為例,主要是通過快速構(gòu)建軟件框架,讓用戶可以進(jìn)行直觀的進(jìn)行感觸,如此不熟悉技術(shù)的人員就能根據(jù)軟件框架原型提出自身需求,并配合開發(fā)人員進(jìn)行不斷的改進(jìn)。總之,計(jì)算機(jī)軟件開發(fā)方法學(xué)——軟件工程廣泛應(yīng)用于現(xiàn)代軟件開發(fā)過程,是計(jì)算機(jī)軟件開發(fā)過程中必不可少的技術(shù)應(yīng)用。
21軟件開發(fā)工具——編程語言
計(jì)算機(jī)軟件開發(fā)離不開開發(fā)工具,所謂的開發(fā)工具就是各種計(jì)算機(jī)編程語言,下面對(duì)常用的開發(fā)語言進(jìn)行簡要的介紹:
Java語言是由Sun Microsystems公司(現(xiàn)被Oracle公司收購)開發(fā)的一種面向?qū)ο蟮木幊陶Z言,Java語言有著龐大的用戶數(shù)量,廣泛應(yīng)用于Web開發(fā)以及移動(dòng)互聯(lián)網(wǎng)軟件(如Android應(yīng)用程序)開發(fā)領(lǐng)域,其運(yùn)行于JVM(Java虛擬機(jī))之上,具有卓越的可移檀陛、跨平臺(tái)性、通用性以及安全性。
C/C++作為傳統(tǒng)編程語言,以高性能和高運(yùn)行效率著稱,其中C語言通常作為開發(fā)操作系統(tǒng)以及底層驅(qū)動(dòng)類軟件的語言廣泛應(yīng)用于嵌入式開發(fā)領(lǐng)域,而C++多見于應(yīng)用型軟件的開發(fā),C/C++可以直接操作底層硬件,這是Java語言所不具備的優(yōu)勢。
Pvthon是一種解釋型的面向?qū)ο缶幊陶Z言,語言結(jié)構(gòu)簡單、語言功能強(qiáng)大,并具有相當(dāng)豐富的類庫,能夠輕松勝任各種操作環(huán)境下的編程任務(wù),廣泛應(yīng)用于計(jì)算機(jī)系統(tǒng)管理任務(wù)的處理和Web編程領(lǐng)域,是近年來發(fā)展較快的一門語言,據(jù)IEEE發(fā)布的編程語言排行榜顯示2017年P(guān)ython占據(jù)首位。
另外還有基于瀏覽器運(yùn)行iavascript腳本語言、專門用來編寫網(wǎng)頁界面HTML+CSS語言、Web領(lǐng)域的輕量型選手PHP語言,Microsoft公司的C#、ASP.net等編程語言,當(dāng)然還包括最為底層的匯編語言等等。不用的編程語言都有各自的應(yīng)用場景,也都具有相應(yīng)的語言特點(diǎn),在進(jìn)行軟件開發(fā)過程中應(yīng)選擇適當(dāng)?shù)拈_發(fā)工具進(jìn)行程序編制。
3)軟件開發(fā)環(huán)境支撐——系統(tǒng)環(huán)境
最為常見的軟件開發(fā)環(huán)境是由桌面型windows操作系統(tǒng)作為開發(fā)環(huán)境支撐的,一方面是基于其無法撼動(dòng)的桌面市場份額,在windows平臺(tái)下進(jìn)行開發(fā)可以輕易地獲取到各種編程工具以及技術(shù)支持;另一方面絕大多數(shù)的計(jì)算機(jī)軟件都運(yùn)行于windows平臺(tái)之下,具有天然的融合度,這與用戶習(xí)慣是密不可分的。當(dāng)然并不是所有的軟件都基于windows運(yùn)行,以當(dāng)前流行移動(dòng)互聯(lián)網(wǎng)軟件為例,其多運(yùn)行于Android操作系統(tǒng)、IOS操作系統(tǒng),但其開發(fā)環(huán)境仍然以桌面系統(tǒng)為主,在開發(fā)完成之后進(jìn)行軟件發(fā)布,即可在移動(dòng)端進(jìn)行運(yùn)行,這與嵌入式軟件開發(fā)過程想類似,在本地環(huán)境下進(jìn)行軟件開發(fā),完成之后再進(jìn)行移植、燒制到嵌入式的存儲(chǔ)芯片。近年來云計(jì)算技術(shù)的發(fā)展,基于計(jì)算機(jī)集群的應(yīng)用軟件(如Hadoop軟件)多部署于Linux操作系統(tǒng)之上,軟件編制過程同樣可以在本地windows系統(tǒng)上完成,用戶可根據(jù)實(shí)際情況進(jìn)行合理的開發(fā)環(huán)境選擇。
2計(jì)算機(jī)軟件應(yīng)用
計(jì)算機(jī)軟件可分為操作系統(tǒng)軟件以及應(yīng)用軟件兩種類型,其中操作系統(tǒng)軟件(如windows系列、Linux各種發(fā)行版、Mac操作系統(tǒng)、Unix操作系統(tǒng)等)主要對(duì)計(jì)算機(jī)硬件資源進(jìn)行抽象和管理,提供應(yīng)用程序的系統(tǒng)接口,可看成計(jì)算機(jī)資源的“大管家”;而應(yīng)用軟件是直接面向于用戶的,是實(shí)現(xiàn)具體業(yè)務(wù)功能的一類軟件,應(yīng)用軟件通常需要調(diào)用操作系統(tǒng)軟件所提供的的系統(tǒng)接口,完成應(yīng)用軟件功能,本文主要是基于應(yīng)用型軟件進(jìn)行探討。
1)傳統(tǒng)軟件應(yīng)用
傳統(tǒng)軟件多指一些基于本地環(huán)境運(yùn)行的一類計(jì)算機(jī)軟件,如常見的文字處理軟件(如notepa、Word等),完成相應(yīng)的功能需要打開特定的應(yīng)用程序進(jìn)行操作。一些與網(wǎng)絡(luò)技術(shù)相結(jié)合的傳統(tǒng)應(yīng)用軟件,在編程領(lǐng)域通常稱之為C/S(客戶端/服務(wù)器)軟件模型,因?yàn)榫邆淇蛻舳?,相?duì)而言,軟件具有高度的靈活性,在個(gè)性化設(shè)計(jì)和內(nèi)容豐富度方面都具有一定的優(yōu)勢,但是一旦服務(wù)器端進(jìn)行升級(jí)則需要重新進(jìn)行客戶端軟件的安裝,這是其不足之處。傳統(tǒng)軟件伴隨著計(jì)算機(jī)信息技術(shù)進(jìn)步而不斷發(fā)展,通過與云服務(wù)器、移動(dòng)互聯(lián)網(wǎng)技術(shù)的整合,大量高可用的應(yīng)用軟件應(yīng)運(yùn)而生,在功能上更加強(qiáng)大,加之服務(wù)器端海量的計(jì)算和存儲(chǔ)性能,能夠帶給用戶更好的應(yīng)用體驗(yàn)。
2)Web軟件應(yīng)用
Web軟件是近年來發(fā)展較快的一類軟件,Web軟件多基于Web browser進(jìn)行運(yùn)行,本地web應(yīng)用是無意義的,通常所說的Web應(yīng)用必然是基于B/S(瀏覽器/服務(wù)器)進(jìn)行服務(wù)的,這是與傳統(tǒng)應(yīng)用軟件較大的不同,相較于傳統(tǒng)應(yīng)用軟件Web應(yīng)用具有良好的跨平臺(tái)性,只要具備瀏覽器運(yùn)行條件即可運(yùn)行,同時(shí)在服務(wù)器進(jìn)行更改,用戶端不必進(jìn)行任何修改即可實(shí)現(xiàn)功能的升級(jí)或更新,而維護(hù)過程集中于服務(wù)器端。當(dāng)然Web軟件也存在自身的一些不足,其應(yīng)用的靈活度相較于客戶端而言,具有一定的局限性,許多功能限制于瀏覽器的窗口之內(nèi),個(gè)性化需求方面相對(duì)較弱,值得慶幸的是,近年來伴隨著HTML5、JQuery等一些富客戶端技術(shù)的發(fā)展和應(yīng)用,Web軟件在應(yīng)用靈活性以及個(gè)性化展示方面已經(jīng)大有改觀,未來Web技術(shù)仍然會(huì)保持較高的市場占有率。
3)移動(dòng)互聯(lián)網(wǎng)軟件應(yīng)用
移動(dòng)互聯(lián)網(wǎng)軟件的應(yīng)用是伴隨著智能終端的發(fā)展而產(chǎn)生的,隨著2010年GooSe的Android的手機(jī)正式發(fā)布,移動(dòng)互聯(lián)網(wǎng)軟件就呈現(xiàn)出了爆發(fā)式的增長,就目前的市場占有情況來看主要是Android和IOS兩大陣營,移動(dòng)互聯(lián)網(wǎng)軟件應(yīng)用已經(jīng)與桌面軟件應(yīng)用在內(nèi)容展現(xiàn)、運(yùn)行效率方面不相上下,一些基于云計(jì)算作為服務(wù)支撐的移動(dòng)互聯(lián)網(wǎng)軟件更具應(yīng)用優(yōu)勢,人們可以借助于移動(dòng)互聯(lián)網(wǎng)軟件完成日常工作、生活以及生產(chǎn)任務(wù),以日常生活中最為常見的微信為例,完全可以替代傳統(tǒng)基于PC設(shè)備之上的即時(shí)通信軟件,同時(shí)其具備支付功能,滿足人們?nèi)粘Y徫?、消費(fèi)等傳統(tǒng)現(xiàn)金功能,為人們生活帶來了極大的便利。除此之外,移動(dòng)互聯(lián)網(wǎng)軟件的發(fā)展為人們更好地利用碎片化時(shí)間,提高生活和工作便捷性帶來了前所未有的技術(shù)保障,移動(dòng)互聯(lián)網(wǎng)技術(shù)必將成為信息技術(shù)領(lǐng)域發(fā)展的重要方向。
4)物聯(lián)網(wǎng)軟件應(yīng)用
所謂的物聯(lián)網(wǎng)軟件是指在傳統(tǒng)的設(shè)備之上進(jìn)行傳感設(shè)備的安裝和使用,根據(jù)傳感設(shè)備所接收和測量的數(shù)據(jù),反饋于遠(yuǎn)程控制系統(tǒng),控制系統(tǒng)進(jìn)行目標(biāo)值的比對(duì),對(duì)非理想數(shù)據(jù)進(jìn)行必要的調(diào)整從而實(shí)現(xiàn)智能化的控制過程。近年來出現(xiàn)的智能家居、智慧城市等都是物聯(lián)網(wǎng)軟件和設(shè)備應(yīng)用的結(jié)果,物聯(lián)網(wǎng)技術(shù)的發(fā)展為是未來社會(huì)的雛形,是人們進(jìn)行資源高效整合、有效利用和智能控制的技術(shù)基礎(chǔ),相信隨著網(wǎng)絡(luò)技術(shù)的不斷成熟,物聯(lián)網(wǎng)技術(shù)必將展現(xiàn)出其誘人的發(fā)展前景。除此之外,計(jì)算機(jī)軟件還廣泛應(yīng)用于人工智能(AI)、神經(jīng)網(wǎng)絡(luò)系統(tǒng)、大數(shù)據(jù)分析等領(lǐng)域,限于篇幅的限制,本文就不一一的進(jìn)行介紹了。
3小結(jié)
本文從計(jì)算機(jī)軟件開發(fā)技術(shù)以及軟件應(yīng)用兩個(gè)方面進(jìn)行簡要的介紹,計(jì)算機(jī)軟件開發(fā)技術(shù)涵蓋了軟件開發(fā)的方法學(xué)——軟件工程技術(shù)、軟件開發(fā)工具——編程語言的應(yīng)用以及開發(fā)環(huán)境——系統(tǒng)環(huán)境的應(yīng)用三個(gè)方面,其中軟件開發(fā)方法學(xué)是破解現(xiàn)代軟件開發(fā)過程中軟件危機(jī)的主要思路,占據(jù)開發(fā)技術(shù)的主體地位。而軟件的應(yīng)用,根據(jù)軟件類型以類型,可為分為傳統(tǒng)應(yīng)用軟件、Web軟件應(yīng)用、移動(dòng)互聯(lián)網(wǎng)軟件應(yīng)用、物聯(lián)網(wǎng)軟件應(yīng)用等,在不同的應(yīng)用領(lǐng)域發(fā)揮著舉足輕重的作用。隨著技術(shù)的進(jìn)步,軟件開發(fā)技術(shù)必將朝著智能化、優(yōu)質(zhì)化以及效率化的方向大踏步前進(jìn),為人類社會(huì)發(fā)展提供更加計(jì)算智慧。