需求分析
(1)相關系統分析員向使用者初步了解需求,然後用相關的工具軟體列出要開發的系統的大功能模組,每個大功能模組有哪些小功能模組,對於有些需求比較明確相關的介面時,在這一步裡面可以初步定義好少量的介面。
(2)系統分析員深入了解和分析需求,根據自己的經驗和需求用word或相關的工具再做出乙份文件系統的功能需求文件。這次的文件會清楚列出系統大致的大功能模組,大功能模組有哪些小功能模組,並且還列出相關的介面和介面功能。
(3)系統分析員向使用者再次確認需求。
概要設計
首先,開發者需要對軟體系統進行概要設計,即系統設計。概要設計需要對軟體系統的設計進行考慮,包括系統的基本處理流程、系統的組織結構、模組劃分、功能分配、介面設計、執行設計、資料結構設計和出錯處理設計等,為軟體的詳細設計提供基礎。
詳細設計
在概要設計的基礎上,開發者需要進行軟體系統的詳細設計。在詳細設計中,描述實現具體模組所涉及到的主要演算法、資料結構、類的層次結構及呼叫關係,需要說明軟體系統各個層次中的每乙個程式(每個模組或子程式)的設計考慮,以便進行編碼和測試。應當保證軟體的需求完全分配給整個軟體。詳細設計應當足夠詳細,能夠根據詳細設計報告進行編碼。
編碼 在軟體編碼階段,開發者根據《軟體系統詳細設計報告》中對資料結構、演算法分析和模組實現等方面的設計要求,開始具體的編寫程式工作,分別實現各模組的功能,從而實現對目標系統的功能、效能、介面、介面等方面的要求。在規範化的研發流程中,編碼工作在整個專案流程裡最多不會超過1/2,通常在1/3的時間,所謂磨刀不誤砍柴功,設計過程完成的好,編碼效率就會極大提高,編碼時不同模組之間的進度協調和協作是最需要小心的,也許乙個小模組的問題就可能影響了整體進度,讓很多程式設計師因此被迫停下工作等待,這種問題在很多研發過程中都出現過。編碼時的相互溝通和應急的解決手段都是相當重要的。
測試 測試編寫好的系統。交給使用者使用,使用者使用後確認每個功能。軟體測試有很多種:按照測試執行方,可以分為內部測試和外部測試;按照測試範圍,可以分為模組測試和整體聯調;按照測試條件,可以分為正常操作情況測試和異常情況測試;按照測試的輸入範圍,可以分為全覆蓋測試和抽樣測試。總之,測試同樣是專案研發中乙個相當重要的步驟,對於乙個大型軟體,3個月到1年的外部測試都是正常的,因為永遠都會有不可預料的問題存在。完成測試後,完成驗收並完成最後的一些幫助文件,整體專案才算告一段落。
軟體交付
在軟體測試證明軟體達到要求後,軟體開發者應向使用者提交開發的目標安裝程式、資料庫的資料字典、《使用者安裝手冊》、《使用者使用指南》、需求報告、設計報告、測試報告等雙方合同約定的產物。
《使用者安裝手冊》應詳細介紹安裝軟體對執行環境的要求、安裝軟體的定義和內容、在客戶端、伺服器端及中介軟體的具體安裝步驟、安裝後的系統配置。
《使用者使用指南》應包括軟體各項功能的使用流程、操作步驟、相應業務介紹、特殊提示和注意事項等方面的內容,在需要時還應舉例說明。
驗收 使用者驗收。
維護 根據使用者需求的變化或環境的變化,對應用程式進行全部或部分的修改。
關於《軟體工程化》的「化」
英文 software egineering 的後乙個詞,本身就是乙個動名詞,在中文裡,我們翻譯為名詞 工程 遮蔽了其 動詞 屬性。19698年nato召開se會議的目的是解決軟體開發存在的經費 工期 質量 功能和非功能 等不可 無法計畫,大量專案失敗的危機。提出來向傳統工程,例如,機械 建築 製造...
前端工程化 圍繞Jenkins打造工作流的過程
1年前入職時,公司前端部門的靜態 部署都是用ftp工具拖拽部署,沒有記錄,沒有關聯,經常造成許多困擾的問題,比如 今天有沒有其他人在我要部署的路徑上工作?我的 為啥被蓋掉了?被誰蓋掉的?啥時候蓋掉的?本地build,ftp拖拽部署這種方式,導致git版本與手動的構建 部署沒啥關聯,更有在本地寫完 部...
AI工程化涉及到的開源選型專案 持續更新
演算法落地會涉及到原始資料加工 原始資料採集 工作流排程和快取等,以下是今年工程化涉及到的一些開源產品 資料同步 datax 離線資料同步工具 平台,基於xxl job canal 實現解析binlog然後同步到其他地方 otter 基於資料庫增量日誌解析,準實時同步到本機房或異地機房的mysql ...