北京軟件開發公司軟件系統開發流程,軟件開發詳細流程軟件開發是指一個軟件項目的開發,如市場調查,需求分析,可行性分析,初步設計,詳細設計,形成文檔,建立初步模型,編寫詳細代碼,測試修改,發布等。
軟件是怎麽樣開(kāi)發(fā)出來的?
1.市場調研;
2.需求分析;
3.概要設;
4.詳細設計;
5.編碼;
6.測試。
第一個步驟是市場(chǎng)調(diào)研,技術和市場(chǎng)要結合才能體現較大價值!
第二個步驟是需求分析,這個階段需要出三樣東西,用戶視圖,數據詞(cí)典和用戶操作手冊(cè)。
用戶視圖——是該(gāi)軟件用戶(包括終端用戶和管理用戶)所能看到的頁面樣式,這裏面包含瞭(le) 很多操作方面的流程和條件。
數據詞典——是指明數據邏輯關系並(bìng)加以整理的東東,完成瞭(le)數據詞典,數據庫的設計就完成瞭(le)一半多。 用戶操作手冊是指明瞭(le)操作流程的說明書。
請注意!用戶操作流程和用戶視圖是由需求決定的,因此應該在軟件設計之前完成,完成這些,就爲程序研發提供瞭(le)約束和準繩,如果因果颠倒,順序不分,開發工作和實際需求往往因此産(chǎn)生隔閡脫節的現象。
需求分析,除瞭(le)以上工作,筆(bǐ)者以爲作爲項目設計者應當完整的做出項目的性能需求說明書(因爲往往性能需求隻有懂技術的人才可能理解,這就需要技術專家和需求方(客戶或公司市場部門)能夠有真正的溝通和瞭(le)解)。
第三個步驟是概要設計,将系統功能模塊初步劃分,並(bìng)給出合理的研發(fā)流程和資源要求。
作爲快速原型設計方法,完成概要設計就可以進入編碼階段瞭(le),通常採用這種方法是因爲涉及的研發任務屬於新領域,技術主管人員一上來無法給出明確的詳細設計說明書,但是並(bìng)不是說詳細設計說明書不重要,事實上快速原型法在完成原型代碼後,根據評測結果和 經驗教訓的總結,還要重新進行詳細設計的步驟!
第四個步驟是詳細設計,這是考驗技術專家設計思維的重要關卡,詳細設計說明書應當把具體的模塊以較’幹淨’的方式(黑箱結構)提供給編(biān)碼者,使得系統整體模塊化達到較大;一份好的詳細設計說明書,可以使編(biān)碼的複雜性減低到較低,實際上,嚴格地講詳細 設計說明書應當把每個函數中的每個參數的定義都詳細的提供出來,從需求分析到概要 設計到完成詳細設計說明書,一個軟件項目就應當說完成瞭(le)一半瞭(le)。換言之,一個大型軟件系統在完成瞭(le)一半的時候,其實還沒有開始一行代碼工作。
那些把作軟件的程序員簡單理解爲寫代碼的,就從(cóng)根子上犯瞭(le)錯誤瞭(le)。
第五個步驟是編碼,在規範化的研發流程中,編碼工作在整個項目流程裏較多不會超過1/ 2,通常在1/3的時間,所謂磨刀不誤砍柴功,設計過程完成的好,編碼效率就會極大提 高,編碼時不同模塊之間的進度協調和協作是較需要小心的,也許一個小模塊的問題就可能影響瞭(le)整體進度,讓很多程序員因此被迫停下工作等待,這種問題在很多研發過程中都出現過。 編碼時的相互溝通和應急的解決手段都是相當重要的,對於(yú)程序員而言,bug永遠存在,你必須永遠面對這個問題,大名鼎鼎的微軟,可曾有連續三個月不發補丁的時候嗎?從來沒有!
第六個步驟是測試
測試有很多種:
按照測(cè)試(shì)執行方,可以分爲内部測(cè)試(shì)和外部測(cè)試(shì)
按照測(cè)試範圍,可以分爲模塊測(cè)試和整體聯調(diào)
按照測(cè)試條件,可以分爲正常操作情況(kuàng)測(cè)試和異常情況(kuàng)測(cè)試
按照測(cè)試的輸入範(fàn)圍,可以分爲全覆蓋測(cè)試和抽樣測(cè)試
以上都很好理解,不再解釋(shì)。
總之,測(cè)試同樣是項目研發中一個相當重要的步驟,對於(yú)一個大型軟件,3個月到1年的外部測(cè)試都是正常的,因爲永遠都會又不可預料的問題存在。
完成測試後,完成驗收並(bìng)完成較後的一些幫助文檔,整體項目才算告一段落,當然日後少不瞭(le)升級,修補等等工作,隻要不是想通過一錘子買賣騙錢,就要不停的跟蹤軟件的運營狀況並(bìng)持續修補升級,直到這個軟件被徹底淘汰爲止。
什麽是軟件開(kāi)發(fā)的核心問題
按照軟件工程鼻祖,《人月神話》作者 Brooks 在“沒有銀彈——軟件工程中的根本和次要問題”一章中闡述的思想,軟件開發的核心問題就是如何從概念上對一個複雜的業務系統進行建模。這個建模是含義廣泛的,不僅僅包括對象建模,還包括數據建模、算法建模等等一系列的内容。總而言之是要先找到解決複雜問題的突破口(先要搞明白需要做什麽,然後再考慮如何做)。至於(yú)採(cǎi)用什麽表示方法(簡單文本、UML 圖、E-R 圖)、採(cǎi)用什麽高級語言、是否一定要用面向對象、使用什麽開發工具都是次要的問題。
軟件開發方法
軟件開發方法(Software Development Method)是指軟件開發過程所遵循的辦法和步驟。 軟件開發活動的目的是有效地得到一些工作産物,也就是一個運行的系統及其支持文檔,並(bìng)且滿足有關的質量要求。軟件開發是一種非常複雜的腦力勞動,所以經常更多讨論的是軟件開發方法學,指的是規則、方法和工具的集成,既支持開發,也支持以後的演變過程(交付運行後,系統還會變化,或是爲瞭(le)改錯,或是爲瞭(le)功能的增減)。
關於組成軟件開發和系統演化的活動有著(zhe)各種模型(參見軟件生存周期,軟件開發模型,軟件過程),但是典型地都包含瞭(le)以下的過程或活動:分析、設計、實現、確認(測試驗收)、演化(維護)。
有些軟件開發方法是專門針對(duì)某一開發階段的,屬於(yú)局部性的軟件開發方法。
特别是軟件開發的實踐表明,在開發的早期階段多做努力,在後來的測試和維護階段就會使費用較大地得以縮減。因此,針對分析和設計階段的軟件開發方法特别受到重視。其它階段的方法,從程序設計發展的初期起就是研究的重點,已經發展得比較成熟(參(cān)見程序設計,維護過程)。除瞭(le)分階段的局部性軟件開發方法之外,還有覆蓋開發全過程的全局性方法,尤爲軟件開發方法學注意的重點。
對(duì)軟件開發(fā)方法的一般要求:
當(dāng)提出一種軟件開發(fā)方法時,應該考慮許多因素,包括:
①覆蓋開發全過程,並(bìng)且便於(yú)在各階段間的過渡;
②便於(yú)在開發(fā)各階段中有關人員之間的通信;
③支持有效的解決(jué)問題(tí)的
④支持系統設計(jì)和開發(fā)的各種不同途徑;
⑤在開發(fā)過程中支持軟件正確(què)性的校驗和驗證;
⑥便於(yú)在系統需求中列入設計(jì)、實際和性能的約束;
⑦支持設計(jì)師和其他技術人員的智力勞動(dòng);
⑧在系統(tǒng)的整個(gè)生存周期都支持它的演化;
⑨受自動(dòng)化工具的支持。
此外,在開發的所有階段,有關的軟件産(chǎn)物都應該是可見和可控的;軟件開發方法應該可教學、可轉移,還應該是開放的,即可以容納新的技術、管理方法和新工具,並(bìng)且與已有的标準相适應。