黨佳奇
陜西工業(yè)職業(yè)技術學院,陜西 咸陽 712000
在最初的DOS(Disk Operating System)階段,計算機軟件的應用難度較高、開發(fā)難度較低,加之計算機普及水平較低,因此這段時間的計算機軟件只是小眾的產(chǎn)物;而當Windows1.0誕生后,人們能夠通過圖形化界面操作計算機軟件(雖然Windows1.0本質(zhì)上還是運行在DOS上的軟件),由此打開了軟件技術開發(fā)的新時代大門,現(xiàn)如今人們所使用的龐大的計算機軟件庫也正是在諸多軟件開發(fā)者以及軟件公司的不斷耕耘之下而來;隨著時間的流轉(zhuǎn),計算機的軟件技術開發(fā)也變得更加具有邏輯性,但同時人們對于軟件日漸嚴格的需求也讓軟件開發(fā)者面臨著較大的挑戰(zhàn),因此根據(jù)現(xiàn)如今的計算機軟件技術開發(fā)現(xiàn)狀分析出問題所在并提出相應解決方案是有意義且必須實現(xiàn)的[1]。
軟件開發(fā),就是按照使用者的需求來構建一個軟件的系統(tǒng),或者一個系統(tǒng)當中的軟件部分。軟件開發(fā)是一個包括需求捕捉,需求分析,設計,實現(xiàn),測試的系統(tǒng)工程。通常情況下,用一定的編程語言來完成軟件。軟件開發(fā)的過程一般都是通過使用軟件來完成的。軟件可以分為兩大類:一類是系統(tǒng)類,一類是應用類,它們不僅包含了能在電腦上操作的各種程序,而且與程序有關的文件通常都屬于軟件。軟件設計思想和方法的總體流程,主要是軟件設計的基本思想和方法,軟件的總體設計與模塊設計,編程和調(diào)試,程序聯(lián)調(diào)和測試,以及編寫和提交程序[2]。
信息化時代的發(fā)展與信息化技術使用的日益普及,極大地影響到了人們今后的工作與生活方式。從現(xiàn)代時代的發(fā)展情況來看,計算機軟件技術的發(fā)展越來越被人們所關注,特別是計算機軟件技術的應用更加便捷。由于計算機的廣泛使用,計算機技術也得到了廣泛應用,人們對計算機技術的要求與日俱增。怎樣充分發(fā)揮和開發(fā)計算機軟件技術,把高素質(zhì)的技術人員吸納到更多的高水平的技術人才,是目前計算機行業(yè)的首要問題。
為了加速網(wǎng)絡的發(fā)展,這個時期的電腦軟件技術需要進行創(chuàng)新發(fā)展。隨著電腦技術的發(fā)展,現(xiàn)代科技的應用將會對互聯(lián)網(wǎng)的傳播起到更大的促進作用,從而促進人們的日常行為發(fā)生更多的改變。同時隨著網(wǎng)絡的安全和隱私性逐漸降低,網(wǎng)絡的安全和隱私的維護水平越來越差,計算機軟件的使用越來越受到重視,其對網(wǎng)絡的安全和隱私的保護也越來越受到重視,因此計算機軟件技術的發(fā)展能夠有效提高人們在網(wǎng)絡中的安全性,并提高人們在網(wǎng)絡中的便利程度。
2.1.1 可視化編程
在目前的軟件開發(fā)當中,可視化編程技術的應用非常廣泛,程序員利用可視化編程可以有效開發(fā)軟件需要的功能以及各類組件,并通過該技術來構建軟件的基本UI。目前常用的可視化編程語言較多,不同的終端以及不同的軟件類型,往往會使用不同的編程語言,例如在Linux系統(tǒng)下往往會選用Java作為主要編程語言,在工控軟件方面或需要大量高并發(fā)數(shù)據(jù)處理的軟件方面,往往會采用C++語言;純Windows開發(fā)環(huán)境下的軟件有時會選用C#作為開發(fā)語言;需要調(diào)用各類大數(shù)據(jù)的情況下會偏向于Python語言;在針對iOS進行軟件開發(fā)時,則必須使用Objective-C語言(在Xcode上進行軟件開發(fā)),而在MAC平臺進行軟件開發(fā)時如今的程序開發(fā)人員往往會選擇Swift語言[3]。
2.1.2 Web開發(fā)設計
Web開發(fā)設計方式是針對于網(wǎng)頁及軟件的開發(fā)、維護、測試、數(shù)據(jù)庫管理等多個方面的技術,由于Web技術的通用性,現(xiàn)如今經(jīng)常會用Web開發(fā)框架來開發(fā)同時兼容多平臺的應用系統(tǒng)。一般情況下,由于Web應用程序需要考慮Gecko、Webkit、Chromium、Trident等內(nèi)核的兼容性,因此只有軟件需要使用聯(lián)網(wǎng)功能顯示網(wǎng)絡信息時才會使用Web技術開發(fā)正常程序。Web軟件開發(fā)的本質(zhì)體系架構是B/S。
2.1.3 Jackson開發(fā)
Jackson開發(fā),全名為Jackson Structure Programming,也可以簡稱為JSP。一般用于數(shù)據(jù)結構小型項目的快速開發(fā),其開發(fā)模式是根據(jù)描述問題來輸出數(shù)據(jù)結構,根據(jù)對應性來生成程序結構。
2.1.4 其他軟件開發(fā)方式
目前主流的開發(fā)方式可以包括ASD開發(fā)、并列征求、水晶法開發(fā)、敏捷方法開發(fā)、面向?qū)ο蟆⒃烷_發(fā)、結構化等,不同的開發(fā)方法有不同的針對目標和應用范圍。可以說沒有哪一種開發(fā)方法是最好的,但不論什么開發(fā)方式,都需要軟件變成語言以及框架作為開發(fā)的工具基礎,同時軟件未來的應用平臺也大致相同,例如原型法的本質(zhì)就是開發(fā)一個軟件原型然后根據(jù)用戶的需求不斷修改該原型,直至滿足用戶要求后再進行BUG全面修復、功能完善和上架,本質(zhì)上原型法并非是開發(fā)的手段,而是開發(fā)的框架流程模式。
計算機軟件技術的開發(fā)流程基本可以分為可行性分析、需求分析、概要設計、詳細設計、開發(fā)階段、測試階段以及運行維護。
(1)可行性分析。公司要為項目指定一個項目經(jīng)理,公司與項目經(jīng)理共同決定該項目的關鍵成員,其中包括產(chǎn)品經(jīng)理,架構工程師, UI工程師,開發(fā)工程師,測試工程師;項目經(jīng)理組織業(yè)務人員、產(chǎn)品經(jīng)理等對項目的場景、效益、技術、管理等進行調(diào)研、可行性分析,并統(tǒng)計目前存在的問題,與用戶進行溝通,將項目調(diào)研報告、可行性分析報告等進行分析。當研究結果和可行性分析報告被審查后,項目團隊能夠在一定的時限和資源條件下進行工程建設,那么就可以提供相應的費用和資金利用方案,向公司和用戶提供相應的信息,以便為下一階段的工作做好充分的鋪墊;如果在調(diào)查、研究后發(fā)現(xiàn),項目無法在規(guī)定時間以及已有資源下完工,應向公司及顧客提出相應的基礎,并進行資源調(diào)配,并在此基礎上進行下一階段的工作[4]。
(2)需求分析。在完成需求收集、需求分析、需求驗證等工作之后,將需求分析和產(chǎn)品原型圖生成,與客戶針對目前的需求分析穩(wěn)當和產(chǎn)品原型圖進行及時的交流,對不滿足需求的進行修正,并將其進行相應的修訂。當產(chǎn)品原型圖設計完成后,產(chǎn)品經(jīng)理可以繼續(xù)完成頁面跳轉(zhuǎn)流程圖的設計,并與用戶進行需求驗證,隨后將訓練文件輸出給項目團隊成員;系統(tǒng)結構工程師按照軟件架構以及功能需求的情況,對系統(tǒng)的結構和主要的功能組件進行分析和設計,并依據(jù)系統(tǒng)的要求和結構進行研發(fā),編制出相應的項目進度和模塊分解表。UI工程師根據(jù)需求、產(chǎn)品原型圖和開發(fā)進度,制訂 UI的規(guī)劃,確保每個頁面的 UI的設計任務都能按時進行。
(3)總體規(guī)劃。架構工程師在軟件運行環(huán)境,模塊編碼,流程控制,接口,操作控制和資料結構的基礎上,基于系統(tǒng)的要求和體系結構進行設計,并將設計概要輸出。開發(fā)工程師按照產(chǎn)品的總體要求進行文件的編寫和數(shù)據(jù)庫結構的設計,并將數(shù)據(jù)庫的設計方案說明輸出;UI工程師根據(jù)需求分析,原型和 UI的規(guī)劃,開發(fā)用戶界面的設計規(guī)格,并生成UI設計規(guī)范文件。
(4)詳細設計。UI工程師按照產(chǎn)品原型、用戶接口設計規(guī)范設計出用戶接口;在此基礎上,開發(fā)工程師對各模塊進行了具體的設計,并對各模塊進行了具體的描述,其中包含了與系統(tǒng)的外部界面、用戶界面、系統(tǒng)內(nèi)部模塊的界面、模塊輸入數(shù)據(jù)、輸出數(shù)據(jù)和局部數(shù)據(jù)等,并編制了具體的設計文件,最終按照數(shù)據(jù)庫設計規(guī)范進行數(shù)據(jù)庫的設計,設計數(shù)據(jù)庫表、字段、描述等。
(5)開發(fā)階段。開發(fā)工程師要從產(chǎn)品原型、界面效果圖、詳細設計文檔等方面進行設計,對每個模塊、頁面的命名進行統(tǒng)一,建立軟件框架,進行模塊編碼;另外,開發(fā)工程師還需要對自己的模塊進行測試,或者讓開發(fā)工程師進行軟件或模塊的自測以消除問題,形成一種良好的開發(fā)模式,比如做好代碼描述、注釋來增強代碼的易用性。
(6)測試階段。測試工程師依據(jù)在軟件開發(fā)過程中所制定的指令文件和軟件體系結構來進行測試,測試用例既要考慮到合理的數(shù)據(jù),又要兼顧到的數(shù)據(jù),還要進行單元測試、集成測試、系統(tǒng)測試,以確保測試過程中的代碼錯誤、算法錯誤,并將其整理為文件,交給軟件開發(fā)人員;軟件開發(fā)人員按照測試人員提供的測試文件,對其中的缺陷進行修正,并將其交給測試人員進行檢測,合格后,即可進行調(diào)試;產(chǎn)品經(jīng)理和測試工程師會安排測試版本,讓普通使用者進行體驗,然后搜集他們的使用建議和問題,然后再讓他們?nèi)バ拚浖?bug,到了這個階段,軟件的 bug就會越來越小,對軟件的影響也會越來越小,所以產(chǎn)品經(jīng)理和測試工程師就可以開始編寫軟件的使用手冊了。
最后是運維階段。在運營期,項目經(jīng)理可以組織客戶、業(yè)務人員、產(chǎn)品和研發(fā)團隊進行產(chǎn)品的測試和試運營,并對用戶進行軟件的使用培訓;而開發(fā)人員則要對系統(tǒng)進行各種日常的維護,并對運行中遇到的問題進行修正。
從技術發(fā)展的角度來分析,國內(nèi)的軟件生產(chǎn)仍處在仿造與加工的過程中,尚未形成一個較大的行業(yè),操作系統(tǒng)、數(shù)據(jù)庫管理系統(tǒng)、核心應用程序等領域尚未形成完整的、具有自主知識產(chǎn)權的系統(tǒng)產(chǎn)品。盡管目前國內(nèi)的許多軟件公司的營業(yè)額已經(jīng)超過了百億元,也有著部分龍頭企業(yè)例如騰訊、網(wǎng)易、阿里等,但中國的軟件業(yè)整體規(guī)模仍然較小,且呈現(xiàn)零散、雜亂的狀態(tài),這是中國軟件業(yè)步入成熟期的必然狀況,也是一個需要解決的問題。盡管我國的軟件公司以超大型企業(yè)帶頭、中小規(guī)模的公司為后備力量,但在很多核心領域尚不能與國外大型公司相比;不過,公司持續(xù)的技術革新以及中國快速發(fā)展的市場,使得中國的軟件公司得以快速成長,創(chuàng)造出前所未有的良好的生存條件。與此同時,我國的資本市場日益完善,為軟件公司的發(fā)展提供了有利的資金支持。從公司的數(shù)量來看,我國的軟件公司雖然非常多,但大多是小型企業(yè),抵御風險的能力差,因此,不可避免地出現(xiàn)了一種追逐眼前利潤的傾向:對于能夠創(chuàng)造市場效益的產(chǎn)品,往往會一窩蜂地涌上去,對于有發(fā)展或市場拓展困難的產(chǎn)品,就會望而卻步,導致產(chǎn)品種類單一,競爭水平低,產(chǎn)品品質(zhì)低等問題。與此同時,我國的企業(yè)管理體制和運行方式也相對滯后,不能滿足當今軟件業(yè)發(fā)展的需要[5]。
隨著軟件行業(yè)的快速發(fā)展,急需大量的專門技術人員,而國內(nèi) IT技術的發(fā)展卻受到制約。雖然這些年來,我們的高校數(shù)量并沒有太多的增長,但隨著高校的教育模式從精英教育轉(zhuǎn)向了全民教育,高校的學生人數(shù)也越來越多,但因為我們的學校教育體系相對滯后,所以很多人都選擇了進入軟件行業(yè)。大學教學與現(xiàn)實分離、不能應用、教學內(nèi)容過時是目前大學普遍的問題。在現(xiàn)在的硬件18個月、軟件9個月更新的時代,我們?nèi)匀皇褂幂^為老舊的課本;雖然每年的畢業(yè)生都有實習機會,但也都是走個形式,而并非真正的工作,在畢業(yè)之后還需要重新積累經(jīng)驗。
當前,全球?qū)涹w工業(yè)的發(fā)展給予了高度的關注,很多國家已經(jīng)將其視為國家發(fā)展的一個重要內(nèi)容和一個經(jīng)濟增長的發(fā)動機。當前,國內(nèi)的軟體公司正面對日益開放的市場,行業(yè)間的激烈的競爭日益加劇,因此,必須加快各軟體公司在全球范圍內(nèi),建立一個更為規(guī)范化的運行機制。在此背景下,我國的軟體公司應加強對本土化的關注,并在全球范圍內(nèi)展開積極的競爭。借鑒發(fā)達國家的先進做法和外國公司的經(jīng)營模式,促進我國企業(yè)走規(guī)范化、國際化的道路,進而讓軟件行業(yè)快速發(fā)展[6]。
軟件是一種承載著現(xiàn)代企業(yè)管理理念與手段的工具,它直接關系到我國整體的經(jīng)濟發(fā)展。中國的軟件廠商積極走向國際市場,不但能夠提高自身的軟件開發(fā)能力還能夠在運用軟件的核心——業(yè)務模式以及管理思維上,取得巨大的進展。因此,中國的軟件公司要充分學習國外的人才培養(yǎng)模式以及軟件開發(fā)技術,來讓企業(yè)自身得到提高。中國軟體工業(yè)發(fā)展的養(yǎng)分來自世界上最先進的軟體工業(yè),軟件公司積極吸收外國科技,為的就是讓自己的成長扎根到最肥沃的土壤里[7]。
軟件業(yè)是一種高專業(yè)性、高知識性的產(chǎn)業(yè),由于其的生產(chǎn)方式,與其它行業(yè)相比要更加注重人才資源。人才是軟件公司生存發(fā)展的重要因素,而軟件技術與市場的激烈程度則體現(xiàn)在對人才的爭奪上。在國際市場上的競爭中,我們需要有一個國際化的技術團隊和一個專業(yè)的團隊。
隨著IT產(chǎn)業(yè)的迅速發(fā)展,世界各地對 IT技術人員的需求量急劇增加,但 IT技術人員的培訓卻遠遠滯后于信息技術的發(fā)展。IT行業(yè)的發(fā)展受到 IT行業(yè)的嚴重影響。目前,國內(nèi) IT教學中的主要問題是:層次單一,內(nèi)容落后,理論無法聯(lián)系實際。我國的 IT技術人員培訓以高校為主,因此本科生居多,碩士研究生數(shù)量較少,博士的數(shù)量更是鳳毛麟角。根據(jù)不全面的數(shù)據(jù),目前我國大學共有400多個計算機類專業(yè),350多個是電子信息類,250多個是通信類;此外,還包括了一些其他的一些領域。但是,當前我國 IT行業(yè)對信息技術人員的需求遠高于高校信息技術人員的供給,導致信息技術人員短缺。
所以,在軟件人才的培育上,首先要引入產(chǎn)業(yè)機制,不僅要依靠普通大學來培養(yǎng)大批的軟件研發(fā)人員,還要引入工業(yè)體制,并引導有能力的公司自行組建或與大學共同組建一支專門的、具有一定規(guī)模的軟件人才隊伍,以此來提高人才的培養(yǎng)速度。①要實行多元化的辦學方式,即政府不限定學校的性質(zhì),專科大學乃至高職院校都可以參與軟件方面的培訓,國企可以申報設立軟件人才培養(yǎng)中心,合資、民營也可以設立。在統(tǒng)一的方針指導下,大學和公司都能充分調(diào)動自己的熱情,通過多種途徑來開展軟件開發(fā)工作。②要有清晰的分層人才培養(yǎng)方案。不同院校應當專門培養(yǎng)不同水平軟件開發(fā)人才的教育工作。諸如系統(tǒng)工程等高端軟件技術人員,應當由雙一流高校進行培訓的,一般大學負責陪開發(fā)管培、運維管培等,以及產(chǎn)業(yè)化專業(yè)培訓單位則負責培養(yǎng)最基本的軟件技術人才。③加強教師資格認定,教師素質(zhì)是保障軟件專業(yè)人才的關鍵。要為受過嚴格的訓練和實踐操作的培訓提供有利的環(huán)境。負責軟件開發(fā)人員的培訓工作,必須經(jīng)過嚴格的考核和合格,合格后方可開展軟件技術人員的培養(yǎng)。④對考試進行統(tǒng)一的驗證。所謂的“統(tǒng)一考試”,就是任何一個由任何院校或公司開辦的訓練中心,都需要經(jīng)過政府認可的考試和鑒定部門的認可,方可進行軟件技術人員的培養(yǎng)。通過了考核和證書的整合,就可以引入行業(yè)的機制,實施不同的教育方式,形成一個統(tǒng)一的管理體系,從而確保不同的教育部門能夠提供高素質(zhì)的軟件專業(yè)人員[8]。
從20世紀90年代開始,我國的計算機軟件技術開發(fā)工作就已初見雛形,到如今由于信息化技術的飛速發(fā)展,計算機的軟件技術開發(fā)水平以及軟件使用者的需求也發(fā)生了劇烈的變化,因此軟件企業(yè)的管理者應當做好軟件開發(fā)管理方式及流程的科學規(guī)劃,并針對軟件使用者的核心需求進行定向開發(fā),從而保障軟件技術開發(fā)工作的順利實施。