
軟件開發是根據用戶要求建造出軟件系統或者系統中的軟件部分的過程。軟件開發是一項包括需求捕捉、需求分析、設計、實現和測試的系統工程。軟件一般是用某種程序設計語言來實現的。通常采用軟件開發工具可以進行開發。軟件分為系統軟件和應用軟件,并不只是包括可以在計算機上運行的程序,與這些程序相關的文件一般也被認為是軟件的一部分。軟件設計思路和方法的一般過程,包括設計軟件的功能和實現的算法和方法、軟件的總體結構設計和模塊設計、編程和調試、程序聯調和測試以及編寫、提交程序。
1、基礎知識
學習軟件開發需要大量與數學、英語打交道,所以需要有一定的數學、英語基礎。有了這個基礎,學起來可以事半功倍。當然,對數學、英語的要求也沒有想象中的那么高。
2、基礎編程語言
編程語言是學軟件開發的鑰匙,初學者好根據自身的喜好或者職業規劃選擇語言。目前主流的編程語言包括Java、PHP、.net、C#語言等,新手建議從C語言開始,是基礎也實用的語言,之后也可以慢慢擴展。其實很多編程語言之間有所互通,比如數據類型、變量、常量等。在學習實踐過程中,了解編程內涵,養成編程思維,這樣跨語言學習會非常快。
3、數據庫(SQL Server)知識
除了基礎學習,數據庫相關的也是必不可少的。數據的存儲、調用在軟件開發運行過程中必不可少。
4、web相關知識
主要分為HTML、CSS、JavaScript。
經過這四個階段,基本就掌握了完整的開發基礎了。很多人可能會說,內容太多,無法全部掌握怎么辦?不用擔心,現在專業的軟件開發公司,也是團隊分工協作,跨語言、跨崗位非常少。如果有一些計算機編程基礎,3個月就能打開軟件開發的大門,如果是零基礎,少需要一個月,而且軟件開發更新速度比較快,需要跟著時代不斷學習進步。
1、熟練一門語言
熟練一門語言可以幫助你看懂前人的代碼,熟悉語言的特性,用更好的方式實現功能,同時避免一些意外并且你認為神奇的錯誤。總而言之,熟練一門語言是你進入開發的第一步。
2、面向對象設計
為了應對軟件開發中的面向對象設計思想,開發人員也需要學習一種面向對象的語言。
面向對象設計是一種設計復雜程序的方法,它將代碼分成了單獨的類和對象(類的實例),這些類和對象封裝了一些特定的功能。
3、Linux基礎
開發都是基于類Unix系統的,所以Lunix必定需要接觸,命令通用;而且幾乎所有的后端服務器用的都是Lunix系統,同時即使你只做前端,也需要很多的接觸系統相關的東西。
4、源代碼管理
管理源代碼是任何軟件開發項目不可或缺的組成部分。在使用源代碼之前,應該有一個網絡來共享項目的所有文件。
源代碼管理工具最基本的功能,是保留軟件項目中對文件所做更改的歷史記錄。它還允許多個開發人員同時處理相同的代碼, 并將這些處理代碼融合在一起。
所有的開發人員都應該知道如何使用源代碼管理工具,以便能夠檢查代碼并從多個來源融合代碼。
5、調試
對于軟件開發人員來說,經常會花費90%左右的時間,來弄清楚自己的代碼為什么不起作用了。不論你從事任何語言的代碼開發,代碼調試都是開發過程中不可缺少的一部分。
6、數據庫
主要有兩種數據庫技術:關系數據庫和文檔數據庫。
開發人員應該對于關系數據庫很熟悉,當然同時對文檔數據庫也應該有所了解。
在軟件開發中,數據庫通常用于存儲應用程序的數據。
1、軟件需求工具:包括需求建模工具和需求追蹤工具。
2、軟件設計工具:用于創建和檢查軟件設計,因為軟件設計方法的多樣性,這類工具的種類很多。
3、軟件構造工具:包括程序編輯器、編譯器和代碼生成器、解釋器和調試器等。
4、軟件測試工具:包括測試生成器、測試執行框架、測試評價工具、測試管理工具和性能分析工具。
5、軟件維護工具:包括理解工具(如可視化工具)和再造工具(如重構工具)。
6、軟件配置管理工具:包括追蹤工具、版本管理工具和發布工具。
7、軟件工程管理工具:包括項目計劃與追蹤工具、風險管理工具和度量工具。
8、軟件工程過程工具:包括建模工具、管理工具和軟件開發環境。
9、軟件質量工具:包括檢查工具和分析工具。
1、可視化編程
掌握程序設計方法及可視化技術,精通一種可視化平臺及其軟件開發技術。獲取Delphi程序員系列、Java初級或VB開發能手認證。 就業方向:企業、政府、社區、各類學校等可視化編程程序員。
2、WEB應用程序設計
具有美工基礎和網頁動畫設計能力,掌握交互式網頁程序的設計技術,能進行網站建設和維護。獲取Macromedia多媒體互動設計師或Delphi初級程序員或Delphi快速網絡開發工程師認證。 就業方向:企業、政府、社區、各類學校等WEB應用程序員。
3、軟件測試
掌握軟件測試的基本原理、方法和組織管理,精通軟件測試工具。獲取ATA軟件測試工程師或Delphi初級程序員或Java初級程序員認證。 就業方向:企業、政府、社區、各類學校等軟件測試員。
4、數據庫管理
能應用關系范式進行數據庫設計,精通SQL語言,勝任數據庫服務器管理與應用工作。獲取Oracle數據庫管理或SQL Server數據庫應用或Windows XP應用認證。 就業方向:企業、政府、社區、各類學校等部門的中、大型數據庫管理員。
5、圖形圖像制作
精通國際上流行的圖形/圖像制作工具(如CorelDraw、Photoshop、Pagemaker等)。獲取平面設計師相關的認證。 就業方向:廣告制作公司、建筑設計公司、包裝裝璜設計公司、居室裝修公司、出版印刷公司。
6、網絡構建技術
熟悉網絡結構和組網方式,掌握建網方法,能利用工具分析和排除常見網絡故障。獲取Cisco路由配置或華為網絡工程或AMP應用工程師認證。 就業方向:企業、政府、社區、各類學校等網絡構建工程師。
7、網絡系統管理
掌握網絡系統管理的基本知識與應用技能,能進行網絡系統的安全設置。獲取Window2000 Server或TurboLinux TLCE或Cisco路由配置專家認證。 就業方向:企業、政府、社區、各類學校等網絡系統管理員。
8、多媒體制作
具有多媒體程序設計與多媒體制作策劃的能力。基本掌握面向對象程序設計與建模、造型設計、場景設計、分鏡頭原理等技能。獲取多媒體設計師相關的認證。 就業方向:多媒體設計與制作公司、動畫美術制作出版公司、廣告制作公司。
9、計算機辦公應用
精通辦公自動化應用與管理,熟悉服務器的安裝、管理和維護,基于應用服務器的相關服務和軟件系統,具備對服務器的網絡安全設置、郵件、網頁發布、FTP、OA、BBS等系統的應用和維護能力。 就業方向:企業、政府、社區、各類學校等系統管理。
1、市場需求大
Internet、游戲產業、手機、通信等行業的實現,都是需要軟件的。這些載體越發達,對軟件人才的需求越大。
2、就業范圍廣
軟件是Internet、游戲產業、無線通信(如4G等)的靈魂。沒有軟件,他們無法運營。所以軟件工程師可以在軟件的相關行業,比如軟件編寫、軟件培訓師、軟件測試、項目經理等職位應聘職位,就業的范圍非常廣。
3、薪資起點高
因為軟件人才在IT行業里地位高,崗位重要,所以薪資也比較高。而且軟件在IT行業里是利潤最高的部分,最大的成本就是人工工資成本。
1、需求分析
(1)相關系統分析員向用戶初步了解需求,然后用相關的工具軟件列出要開發的系統的大功能模塊,每個大功能模塊有哪些小功能模塊,對于有些需求比較明確相關的界面時,在這一步里面可以初步定義好少量的界面。
(2)系統分析員深入了解和分析需求,根據自己的經驗和需求用WORD或相關的工具再做出一份文檔系統的功能需求文檔。這次的文檔會清楚列出系統大致的大功能模塊,大功能模塊有哪些小功能模塊,并且還列出相關的界面和界面功能。
(3)系統分析員向用戶再次確認需求。
2、概要設計
首先,開發者需要對軟件系統進行概要設計,即系統設計。概要設計需要對軟件系統的設計進行考慮,包括系統的基本處理流程、系統的組織結構、模塊劃分、功能分配、接口設計、運行設計、數據結構設計和出錯處理設計等,為軟件的詳細設計提供基礎。
3、詳細設計
在概要設計的基礎上,開發者需要進行軟件系統的詳細設計。在詳細設計中,描述實現具體模塊所涉及到的主要算法、數據結構、類的層次結構及調用關系,需要說明軟件系統各個層次中的每一個程序(每個模塊或子程序)的設計考慮,以便進行編碼和測試。應當保證軟件的需求完全分配給整個軟件。詳細設計應當足夠詳細,能夠根據詳細設計報告進行編碼。
4、編碼
開發者根據《軟件系統詳細設計報告》中對數據結構、算法分析和模塊實現等方面的設計要求,開始具體的編寫程序工作,分別實現各模塊的功能,從而實現對目標系統的功能、性能、接口、界面等方面的要求。
5、測試
測試編寫好的系統,交給用戶使用,用戶使用后一個一個的確認每個功能。測試同樣是項目研發中一個相當重要的步驟,對于一個大型軟件,3個月到1年的外部測試都是正常的,因為永遠都會有不可預料的問題存在。完成測試后,完成驗收并完成最后的一些幫助文檔,整體項目才算告一段落。當然日后少不了升級,修補等等工作,只要不是想通過一錘子買賣騙錢,就要不停的跟蹤軟件的運營狀況并持續修補升級,直到這個軟件被徹底淘汰為止。
6、軟件交付
在軟件測試證明軟件達到要求后,軟件開發者應向用戶提交開發的目標安裝程序、數據庫的數據字典、《用戶安裝手冊》、《用戶使用指南》、需求報告、設計報告、測試報告等雙方合同約定的產物。
7、驗收
用戶驗收。
8、維護
根據用戶需求的變化或環境的變化,對應用程序進行全部或部分的修改。