軟體開發整體介紹
作為一名軟體開發工程師,我們需要了解在軟體開發過程中的開發流程, 以及軟體開發過程中涉及到的崗位角色,角色的分工、職責, 並瞭解軟體開發中涉及到的三種軟體環境。那麼,我們將從 軟體開發流程、角色分工、軟體環境 三個方面,來整體上介紹一下軟體開發。
一、 軟體開發流程
1). 第1階段: 需求分析
完成產品原型、需求規格說明書的編寫。
產品原型,一般是透過網頁(html)的形式展示當前的頁面展示什麼樣的資料, 頁面的佈局是什麼樣子的,點選某個選單,開啟什麼頁面,點選某個按鈕,出現什麼效果,都可以透過產品原型看到。
需求規格說明書, 一般來說就是使用 Word 文件來描述當前專案有哪些功能,每一項功能的需求及業務流程是什麼樣的,都會在文件中描述。
2). 第2階段: 設計
設計的內容包含 產品設計、UI介面設計、概要設計、詳細設計、資料庫設計。
在設計階段,會出具相關的UI介面、及相關的設計文件。比如資料庫設計,需要設計當前專案中涉及到哪些資料庫,每一個資料庫裡面包含哪些表,這些表結構之間的關係是什麼樣的,表結構中包含哪些欄位,欄位型別都會在文件中描述清楚。
3). 第3階段: 編碼
編寫專案程式碼、並完成單元測試。
作為軟體開發工程師,我們主要的工作就是在該階段, 對分配給我們的模組功能,進行編碼實現。編碼實現完畢後,進行單元測試,單元測試透過後再進入到下一階段。
4). 第4階段: 測試
在該階段中主要由測試人員, 對部署在測試環境的專案進行功能測試, 並出具測試報告。
5). 第5階段: 上線運維
在專案上線之前, 會由運維人員準備伺服器上的軟體環境安裝、配置, 配置完畢後, 再將我們開發好的專案,部署在伺服器上執行。
我們作為軟體開發工程師, 我們主要的任務是在編碼階段, 但是在一些小的專案組當中, 也會涉及到資料庫的設計、測試等方面的工作。
二、 角色分工
學習了軟體開發的流程之後, 我們還有必要了解一下在整個軟體開發過程中涉及到的崗位角色,以及各個角色的職責分工。
崗位/角色 | 職責/分工 |
---|---|
專案經理 | 對整個專案負責,任務分配、把控進度 |
產品經理 | 進行需求調研,輸出需求調研文件、產品原型等 |
UI設計師 | 根據產品原型輸出介面效果圖 |
架構師 | 專案整體架構設計、技術選型等 |
開發工程師 | 功能程式碼實現 |
測試工程師 | 編寫測試用例,輸出測試報告 |
運維工程師 | 軟體環境搭建、專案上線 |
上述我們講解的角色分工, 是在一個專案組中比較標準的角色分工, 但是在實際的專案中, 有一些專案組由於人員配置緊張, 可能並沒有專門的架構師或測試人員, 這個時候可能需要有專案經理或者程式設計師兼任。
三、 軟體環境
在我們日常的軟體開發中,會涉及到軟體開發中的三套環境, 那麼這三套環境分別是: 開發環境、測試環境、生產環境。 接下來,我們分別介紹一下這三套環境的作用和特點。
1). 開發環境(development)
我們作為軟體開發人員,在開發階段使用的環境,就是開發環境,一般外部使用者無法訪問。
比如,我們在開發中使用的MySQL資料庫和其他的一些常用軟體,我們可以安裝在本地, 也可以安裝在一臺專門的伺服器中, 這些應用軟體僅僅在軟體開發過程中使用, 專案測試、上線時,我們不會使用這套環境了,這個環境就是開發環境。
2). 測試環境(testing)
當軟體開發工程師,將專案的功能模組開發完畢,並且單元測試透過後,就需要將專案部署到測試伺服器上,讓測試人員對專案進行測試。那這臺測試伺服器就是專門給測試人員使用的環境, 也就是測試環境,用於專案測試,一般外部使用者無法訪問。
3). 生產環境(production)
當專案開發完畢,並且由測試人員測試透過之後,就可以上線專案,將專案部署到線上環境,並正式對外提供服務,這個線上環境也稱之為生產環境。
擴充知識:
準生產環境: 對於有的公司來說,專案功能開發好, 並測試透過以後,並不是直接就上生產環境。為了保證我們開發的專案在上線之後能夠完全滿足要求,就需要把專案部署在真實的環境中, 測試一下是否完全符合要求啊,這時候就誕生了準生產環境,你可以把他當做生產環境的克隆體,準生產環境的伺服器配置, 安裝的應用軟體(JDK、Tomcat、資料庫、中介軟體 ...) 的版本都一樣,這種環境也稱為 "模擬環境"。
ps.由於專案的性質和型別不同,有的專案可能不需要這個環境