您當前的位置:首頁 > 百科 > 軟件百科 > 軟件開發

軟件開發

 ? 2016-12-01 10:47:52

  軟件開發是根據用戶要求建造出軟件系統或者系統中的軟件部分的過程。軟件開發是一項包括需求捕捉、需求分析、設計、實現和測試的系統工程。軟件一般是用某種程序設計語言來實現的。通常采用軟件開發工具可以進行開發。軟件分為系統軟件和應用軟件,并不只是包括可以在計算機上運行的程序,與這些程序相關的文件一般也被認為是軟件的一部分。 軟件設計思路和方法的一般過程,包括設計軟件的功能和實現的算法和方法、軟件的總體結構設計和模塊設計、編程和調試、程序聯調和測試以及編寫、提交程序。

中文名

英文名

含    義

應用領域

軟件開發

Software

development

根據用戶需求編寫指定軟件的行為

廣泛

  目 錄

  1、軟件開發定義

  2、軟件開發原理

  3、軟件開發計劃

  4、軟件開發前期分析

  5、軟件開發前期設計

  6、軟件編碼

  7、軟件測試

  8、軟件維護

  9、軟件開發的發展歷程

  10、軟件開發開發工具

  11、軟件開發圖書

  12、軟件開發行業前景

  13、軟件開發行業劃分

  軟件開發定義:

  隨著計算機技術廣泛應用到社會生活的各個領域,使得軟件開發需求持續攀升。全國IT行業軟件人才總需求量達數十萬之多。軟件人才主要在各大軟件公司、企事業單位、高等院校、各大研究所、國防等重要部門從事軟件設計開發、應用與研究工作。

  軟件開發包括:項目管理控制程序、需求分析控制程序、概要設計控制程序、編碼控制程序、設計評審控制程序、配置管理控制程序、軟件工具控制程序、測試和驗收控制程序等。

  軟件開發原理:

  軟件開發流程即軟件設計思路和方法的一般過程,包括設計軟件的功能和實現的算法和方法、軟件的總體結構設計和模塊設計、編程和調試、程序聯調和測試以及編寫、提交程序。

  軟件開發計劃:

  對所要解決的問題進行總體定義,包括了解用戶的要求及現實環境,從技術、經濟和社會因素等3個方面研究并論證本軟件項目的可行性,編寫可行性研究報告,探討解決問題的方案,并對可供使用的資源(如計算機硬件、系統軟件、人力等)成本,可取得的效益和開發進度作出估計,制訂完成開發任務的實施計劃。

  軟件開發前期分析:

  軟件需求分析就是對開發什么樣的軟件的一個系統的分析與設想。它是一個對用戶的需求進行去粗取精、去偽存真、正確理解,然后把它用軟件工程開發語言(形式功能規約,即需求規格說明書)表達出來的過程。本階段的基本任務是和用戶一起確定要解決的問題,建立軟件的邏輯模型,編寫需求規格說明書文檔并終得到用戶的認可。需求分析的主要方法有結構化分析方法、數據流程圖和數據字典等方法。本階段的工作是根據需求說明書的要求,設計建立相應的軟件系統的體系結構,并將整個系統分解成若干個子系統或模塊,定義子系統或模塊間的接口關系,對各子系統進行具體設計定義,編寫軟件概要設計和詳細設計說明書,數據庫或數據結構設計說明書,組裝測試計劃。在任何軟件或系統開發的初始階段必須先完全掌握用戶需求,以期能將緊隨的系統開發過程中哪些功能應該落實、采取何種規格以及設定哪些限制優先加以定位。系統工程師終將據此完成設計方案,在此基礎上對隨后的程序開發、系統功能和性能的描述及限制作出定義。

  軟件開發前期設計:

  軟件設計可以分為概要設計和詳細設計兩個階段。實際上軟件設計的主要任務就是將軟件分解成模塊是指能實現某個功能的數據和程序說明、可執行程序的程序單元。可以是一個函數、過程、子程序、一段帶有程序說明的獨立的程序和數據,也可以是可組合、可分解和可更換的功能單元。模塊,然后進行模塊設計。概要設計就是結構設計,其主要目標就是給出軟件的模塊結構,用軟件結構圖表示。詳細設計的首要任務就是設計模塊的程序流程、算法和數據結構,次要任務就是設計數據庫,常用方法還是結構化程序設計方法。

  軟件編碼:

  軟件編碼是指把軟件設計轉換成計算機可以接受的程序,即寫成以某一程序設計語言表示的“源程序清單”。充分了解軟件開發語言、工具的特性和編程風格,有助于開發工具的選擇以及保證軟件產品的開發質量。

  當前軟件開發中除在專用場合,已經很少使用二十世紀80年代的高級語言了,取而代之的是面向對象的開發語言。而且面向對象的開發語言和開發環境大都合為一體,大大提高了開發的速度。

  軟件測試:

  軟件測試的目的是以較小的代價發現盡可能多的錯誤。要實現這個目標的關鍵在于設計一套出色的測試用例(測試數據與功能和預期的輸出結果組成了測試用例)。如何才能設計出一套出色的測試用例,關鍵在于理解測試方法。不同的測試方法有不同的測試用例設計方法。兩種常用的測試方法是白盒法測試對象是源程序,依據的是程序內部的的邏輯結構來發現軟件的編程錯誤、結構錯誤和數據錯誤。結構錯誤包括邏輯、數據流、初始化等錯誤。用例設計的關鍵是以較少的用例覆蓋盡可能多的內部程序邏輯結果。白盒法和黑盒法依據的是軟件的功能或軟件行為描述,發現軟件的接口、功能和結構錯誤。其中接口錯誤包括內部/外部接口、資源管理、集成化以及系統錯誤。黑盒法用例設計的關鍵同樣也是以較少的用例覆蓋模塊輸出和輸入接口。

  軟件維護:

  維護是指在已完成對軟件的研制(分析、設計、編碼和測試)工作并交付使用以后,對軟件產品所進行的一些軟件工程的活動。即根據軟件運行的情況,對軟件進行適當修改,以適應新的要求,以及糾正運行中發現的錯誤。編寫軟件問題報告、軟件修改報告。

  一個中等規模的軟件,如果研制階段需要一年至二年的時間,在它投入使用以后,其運行或工作時間可能持續五年至十年。那么它的維護階段也是運行的這五年至十年期間。在這段時間,人們幾乎需要著手解決研制階段所遇到的各種問題,同時還要解決某些維護工作本身特有的問題。做好軟件維護工作,不僅能排除障礙,使軟件能正常工作,而且還可以使它擴展功能,提高性能,為用戶帶來明顯的經濟效益。然而遺憾的是,對軟件維護工作的重視往往遠不如對軟件研制工作的重視。而事實上,和軟件研制工作相比,軟件維護的工作量和成本都要大得多。

  在實際開發過程中,軟件開發并不是從第一步進行到后一步,而是在任何階段,在進入下一階段前一般都有一步或幾步的回溯。在測試過程中的問題可能要求修改設計,用戶可能會提出一些需要來修改需求說明書等。

  軟件開發的發展歷程:

  從計算機發明到現在,出現了多種軟件開發方法,19世紀60年代的發生的軟件危機促使了“軟件工程”這個概念的誕生。但是目前軟件開發的現狀如何呢?毫無疑問,現在的軟件開發方法論目前也在迅速的發展。每天,我們都能夠從各類信息渠道獲得新的軟件開發方法或者新的程序開發語言,每一種開發方法或者開發語言都號稱著有著相當的進步,都聲稱著能簡化開發過程,縮短開發時間。

  從編程語言的層面上來說,機器語言、匯編語言、C語言、C++、JAVA、C#、Python、Ruby、JavaScript等等這么多的編程語言,每種語言都有著它自己的特點以及存在的理由,其中,有號稱無所不能的通用編程語言,如C、C++、JAVA等等,也有著為了特定的目標而實現特定的功能的語言,如JavaScript、Ruby等等。各種編程語言之間的相互吸收和相互競爭同時又促進了這種編程語言的不斷進步與發展。于是,各類編程語言都不斷出現自己的新版本,理所當然的,新的版本肯定是比前面的版本要先進得多,功能要強大得多。

  從編程的方法論上來說,從一開始的機器語言和匯編語言直接對機器碼進行編程,到后面,“結構化”的編程方法開始出現并流行起來;而后,“軟件危機”的出現終導致“面向對象”的編程方法大行其道,而“軟件工程”的概念則試圖將軟件開發當作一個系統的工業化工程進行管理;到后來,人們發現,軟件的發展實在是太迅速了,軟件系統是越做越大,功能是越來越強,而其中出現的問題同時也是越來越多,于是,可復用的軟件方法論開始流行,“面向構件”進行編程的理論開始出現;而后,在這基礎上,IBM的“SOA理論”則試圖去解決一個大型系統內部的各大功能模塊或者子系統之間以及幾個大系統的整合以及相互連接的問題。當然,這些理論都只是一部分,在這過程中,還出現了更多的號稱能夠(其實也確實能夠)簡化編程工作的方法論出現,如“設計模式”、“AOP面向切片編程”、“敏捷程序開發”等等。

  就目前來說,現在的軟件開發處于百家爭鳴的狀態,無論從理論上還是實際的應用上,沒有哪種開發方法和開發語言是能夠一統天下的。當年,JAVA出現的目的就是為了簡化開發,代替C++語言,然而,現實的情況卻是JAVA的體系架構越來越復雜,越來越龐大。而后,python、ruby等號稱更簡單的語言出現了,雖然這些語言確實簡化了很多的開發工作,但是,我們卻驚奇的發現,沒有一種語言能夠完全取代另外一種。好笑的是,每種語言都有一批強烈而偏激的支持者,經常聽說兩種語言的支持者相互貶低對方,爭

  得面紅耳赤,甚至大打出手的。更奇怪的是,每一種語言的版本也在不斷的更新,而更新的內容似乎我們永遠都用不到(如C++語言,現在就沒有哪個編譯環境是完全100%的支持其新的國際標準的)。

  軟件開發人才培養:

  中國擁有豐富的勞動力資源,隨著經濟的高速發展,高等教育、職業教育的規模和水平大幅

  度擴大和提高,近一個時期,軟件開發人才培養成為中國教育培訓界的熱點。然而,擺在

  中國軟件界和教育界面前的重要問題是,大量高等院校畢業生面臨擇業困境,而大批IT企業卻難以招收到適用的人才。如何盡快填平教育與就業之間的這條鴻溝,成為業界需要深入

  探討的焦點話題。軟件業的發展關系到一個國家的政治和未來,軟件產業將成為21世紀擁有大產業規模和具廣闊前景的新興產業之一。軟件領域是一個包括系統軟件、Linux

  應用、中間件軟件、嵌入式軟件、數據庫軟件、財務及企業管理軟件、教育軟件、游戲軟件、語音應用軟件等在內的復雜的集合體。2007、2008年的軟件行業,軟件外包和軟件產品化是投資的兩大主線。未來中國外包的市場規模將不斷增長,同時,行業集中度將逐步提升,

  而領先的企業獲得的增長速度將高于行業平均增長速度。各個企業將充分受益于軟件外包的行業趨勢,利用其充分提升企業的業績。目前,中國的系統集成類上市公司軟件產品化比例非常低,造成了企業贏利狀況不明顯。產品化程度高的公司主要是集中在管理軟件、金融行業軟件、及聚焦于某個行業的軟件公司。提升軟件產品化的程度將非常有益于中國軟件企業競爭力的提高。

  在人才需求方面,由于IT技術在通信、醫療、教育等各個方面的全面發展促進了各個軟件

  開發方向的發展、從架構、編程到測試對人才的需求旺盛。從2007年的招聘情況看來,軟

  件開發工程師、軟件測試工程師、網絡系統工程師、咨詢工程師等都有很多招聘職位,人才需求很大。尤其是軟件開發工程師,繼2008年的短缺之后,隨處于經濟低潮期,但2009年仍然有很大的人才缺口,軟件開發工程師很多都享受著地位和薪水的雙高待遇。企業招聘

  人數很多,而且相比更加青睞有經驗的應聘人群。有些專家指出,中國的IT隊伍存在嚴重的結構失衡,既缺乏高級IT人才,也缺乏技能型、應用型信息技術人才,以及一大批能從事基礎性工作的技術人員。中國軟件人才的“金字塔”型合理結構并未實現,軟件產業健康、

  快速發展所需要三類人才:既懂技術又懂管理的軟件開發高級人才、系統分析及設計人員(軟件工程師)、熟練的程序員(軟件藍領)這三類由高到低的人才結構并未呈金字塔型。除此之外,人才的地區分布差異也比較明顯,一些發達城市人才有供過于求現象,而邊遠城市人才則普遍匱乏。目前,軟件開發主要分兩類,一類是通用軟件開發;另一類是軟件定制服務。未來國內IT企業將需要大量的通用軟件開發人才。同時,針對各行各業的軟件定制服務也將對軟件人才提出更高的要求,好是該行業的從業人員能夠進入IT

  業設計適合行業特征的軟件。

  目前,高校軟件開發人才畢業生數目不斷增加,但是仍然難以滿足軟件業快速發展的需要。

  而且存在著畢業生求職無門、企業合適人才難求的供需錯位現象。中國政府大力發展軟件開

  發人才培訓事業,建立了軟件開發人才培訓基地;結合學院化教育與職業化教育,整合學校、

  培訓機構和IT企業資源,努力培養企業需要的合格人才,緩解人才缺乏現象。許多城市在

  近年也曾出臺一些軟件人才優惠政策,以期形成人才吸引機制。

  軟件開發開發工具:

  軟件開發工具是用于輔助軟件生命周期過程的基于計算機的工具。通常可以設計并實現工具來支持特定的軟件工程方法,減少手工方式管理的負擔。與軟件工程方法一樣,他們試圖讓軟件工程更加系統化,工具的種類包括支持單個任務的工具及囊括整個生命周期的工具。

  軟件需求工具,包括需求建模工具和需求追蹤工具。

  軟件設計工具,用于創建和檢查軟件設計,因為軟件設計方法的多樣性,這類工具的種類很多。

  軟件構造工具,包括程序編輯器、編譯器和代碼生成器、解釋器和調試器等。

  軟件測試工具,包括測試生成器、測試執行框架、測試評價工具、測試管理工具和性能分析工具。

  軟件維護工具,包括理解工具(如可視化工具)和再造工具(如重構工具)。

  軟件配置管理工具,包括追蹤工具、版本管理工具和發布工具。

  軟件工程管理工具,包括項目計劃與追蹤工具、風險管理工具和度量工具。

  軟件工程過程工具,包括建模工具、管理工具和軟件開發環境。

  軟件質量工具,包括檢查工具和分析工具

  軟件開發圖書:

  淺顯的入門類圖書。這類書的標題往往是《XX天精通XXX》、《XXX從入門到精通》、《XX開發實戰》等,通常從軟件的安裝講起。有人批評這類書為爛 書、毫無價值,這并不公平。至少我曾經從這些書中學到了一些東西。即使是21天系列書,也有適合看的人群。只不過,它一般也就只能看21天而已,過后就可 以扔到廢紙堆。這類書只適于還沒有入門的初學者,從中學到一些入門招式。在剛起步時一般買一本就夠了。如果你善于使用搜索引擎,那幾乎沒有買這類書的必要。

  國內外高手寫的實戰類圖書。這類書實戰性很強,將技術及原理講得很透徹。比如《Windows環境下32位匯編語言程序設計》、《深入解析MFC》、 《Delphi深度探索》、《深入淺出WPF》、《深入剖析ASP .NET組件設計》等。以前這類書都是從國外翻譯或從臺灣引進的,現在國內高手越來越多,出自國內作者的圖書也越來越多。如果能在學習的每個方向看兩三本 這類圖書,并通過實踐消化掉,那么毫無疑問,你會成為一名優秀的程序員。

  國外大牛寫的揭露本質、有豐富思想的書。這類書就是所謂的經典書,例如《代碼大全》、《編程珠璣》、《設計模式》、《重構》、《代碼整潔之道》等。經典書就像一個有深度、有思想的朋友,能給你啟發,每次閱讀都會有新的收獲,這類書具有真正的收藏價值。看經典書永遠是正確的選擇,它絕不會浪費你的時間,因為 經典書是無數人沙里淘金、幫你挑選出的結果。

  軟件開發行業前景:

  12.1java

  據有關數據顯示,目前,我國對軟件人才的需求已達20萬,并且以每年20%左右的速度增長。在未來5年內,合格軟件人才的需求將遠大于供給。2010年,我國軟件人才的缺口已達43.5萬,其中尤以JAVA人才為缺乏。當前世界各地持有JavaProgrammer證書的人員供需差距極大,迫使企業不得不用高薪聘請Java程序員。因此,JavaProgrammer的含金量比一般的技術人員要高出很大一塊。在美國、加拿大、澳大利亞、新加坡等發達國家和中等發達國家,持有JavaProgrammer認證證書的人年薪均在4-10萬美金,而在國內持有JavaProgrammer認證的程序員也有極好的工作機會和很高的薪水。

  12.2嵌入式

  根據業內發布的薪資報告,嵌入式行業初入門的開發人員平均月薪一般都能達到5000元左右,有3年以上經驗的人員年薪都在10萬元以上,中高級的嵌入式軟件工程師月薪平均已超過萬元,具有10年工作經驗的高級嵌入式軟件工程師年薪在30萬元左右。

  12.3Android

  隨著Android平臺的擴張,引發了Android人才荒,2010年移動開發人才需求20萬,未來人才需求缺口將達百萬。但符合條件的Android工程師屈指可數,企業招聘難度可想而知。我們相信,在未來幾年內,Android開發工程師將成為3G行業炙手可熱的崗位之一。3G人才全球緊缺,實用人才培養已迫在眉睫!在國內三大運營商如火如荼的3G營銷戰持續升溫,再加上3G的推出對整個行業的巨大推動作用,無疑將引爆3G手機開發工程師這個黃金職位。

  12.4軟件工程

  隨著世界產業轉移的加速,歐美、日本等發達國家將大量的軟件開發業務轉移到中國、印度等國家。據統計,目前全球軟件外包市場規模超過1000億元,我國軟件服務外包產業總收入在未來三年將達260多億美元,隨之而來的是對軟件服務外包人才的巨大需求,未來5年,國內服務外包產業人才需求量至少要達到100萬。目前軟件外包從業人員的薪資水平普遍高于一般軟件開發人員,就業前景廣闊。但是目前軟件開發行業人才輸入量遠遠小于人才需求量,例如一家叫做上海北大青鳥于達校區的軟件開發培訓機構每年輸送超過5000名優秀IT人才,但是這個數目還是遠遠小于人才需求。要想有個好的計算機職業,首先得有扎實的技術作為基礎;其次,要經常了解計算機方面的新信息,學習新的技術;第三,實踐經驗必不可少,在校期間通過多種渠道積累了實踐經驗,如暑期有針對性的打工,或通過熟人關系積累實踐經驗,也可有目的性地參加見習培訓,學校安排的實習等等.第四,了解計算機行業有哪些職位,以及這些職位需要什么技術,有針對性地做好就業準備。

  IOS就是運行在iphone上的一個系統,是由蘋果公司開發的,就好比電腦上的XP一樣,IOS就是iphone的靈魂。眾所周知,現在的智能手機產品非常受青睞,人們在被它智能的應用所折服的同時也將研發智能軟件的3G行業看做是具發展力、有前途的行業之一。IOS初是設計給iphone使用,后來陸續套用到ipod touch、ipad以及apple tv產品上。也就是說,ios是蘋果所有移動產品的操作系統,蘋果ios是目前全球完善、生態環境優秀的移動開發平臺。IOS軟件開發不僅就業薪資高,而且工作環境優越,社會地位也高。

  高校IOS軟件開發專業畢業生可以在以iOS平臺為主的iPhone/iPad/iPod/iTunes等系統研發及應用軟件開發工作(包括手機游戲及各類功能的軟件開發)。比如Mac一體化架構師、iOS軟件開發工程師、iOS游戲開發工程師、UI界面分析師、iOS應用測試工程師等。現在的安卓與IOS基本占手機市場的各一半,并且隨著4G牌照的發放,智能手機可能有一天替代電腦,成為人們的必需品之一。

  12.5手游開發

  GDC是 Game Developers Conference 的簡稱,中文名稱為游戲開發者大會。GDC是一年一度的游戲開發者大的聚會,每年將有數萬名游戲開發者參加大會。大會獎項有年度佳游戲獎、年度佳原創音樂獎、年度佳角色設計獎、年度佳游戲設計獎、年度佳游戲設計獎、年度佳游戲設計獎、年度佳劇本創作獎等獎項。2014年度游戲行業盛會GDC(游戲開發者大會)在3月17日-21日于美國舊金山舉行,大會吸引了全球預計超過23000名程序員、美術師、制作人、游戲開發領域的專業人士參與。

  2014年,中國手游的市值突破10億美元。據易觀國際日前發布的報告顯示,2013年中國移動游戲全平臺發行商市場中,中國手游占據17.9%的市場份額,排名第一。

  軟件開發行業劃分:

  13.1手機

  Mac OS(蘋果的),Linux,Palm(大特色是不能后臺),BlackBerry(黑莓)Windows Phone(WP,不錯的系統,)Android(安卓,07年興起的,很好的系統),還有幾個新系統,三星與intel聯合開發的tizen,Mozilla 公司的FireFox OS ,N900的maemo。

  13.2電腦

  企業管理軟件,如:如MES系統軟件、OA系統軟件、CRM系統軟件、HR系統軟件、ERP系統軟件

上一篇:軟件        下一篇:軟件開發流程
    100期30选5