1.軟體生命週期
軟體生命週期是指軟體從開始研製到最終被廢棄所經歷的各個階段。在不同的階段裡,由不同的組織和人員執行不同的任務,需要消耗不同的資源。
生命週期常見的有:瀑布模型、v模型、敏捷開發模型。
階段:需求分析->軟體設計->程式編碼->軟體測試->執行維護
1.1瀑布模型
瀑布模型是將軟體生存週期的各項活動規定為按固定順序而連線的若干階段工作,包括問題定義及規劃、需求分析、軟體設計、程式編碼、軟體測試和執行維護等六個基本活動,並且規定了他們自上而下,相互銜接的固定次序,形如瀑布流水,逐級下落,具有順序性和依賴性,最終得到軟體產品。
包括軟體工程開發、企業專案開發、產品生產以及市場銷售等構造瀑布模型。
每個階段規定的文件需進行評審,評審完後才可以進入下乙個階段。
優點:
1)為專案提供按階段劃分的檢查點
2)當前一階段完成後,你只需要關注後一階段
3)可在迭代模型中應用瀑布模型
4)提供乙個模板,這個模板使得分析,設計,編碼,測試和支援的方法可以在該模板下有乙個共同的指導
缺點:
1)各個階段的劃分完全固定,階段之間產生大量的文件,極大地增加了工作量。
2)由於開發模型是線性的,使用者只有等到整個過程的末期才能見到開發成果,從而增加了開發風險。
3)通過過多的強制完成日期和里程碑來跟蹤各個專案階段。
4)瀑布模型的突出缺點是不適應使用者需求的變化。
1.2v模型
通過開發和測試同時進行的方式來縮短開發周期,提高開發效率。其形狀像乙個字母a,故稱為v模型。
對應關係:
一般來講:單元測試所對應的是詳細設計環節,也就是說,單元測試的測試用例是和詳細設計一起出現的,在研發人員做詳細設計的時候,相應的測試人員也就把測試用例寫了出來;整合測試對應概要設計,在做模組功能分析及模組介面,資料傳輸方法的時候,就把整合測試用例根據概要設計中模組功能及介面等實現方法編寫出來,以備以後作整合測試的時候可以直接引用;而系統測試,就是根據需求分析而來,在系統分析人員作系統分析,編寫需求說明書的時候測試人員就根據客戶需求說明書,把最後能實現系統功能的各種測試用例寫出來,為做最後系統測試作準備。驗收測試與使用者需求對應,是非設計流程。
適用範圍:
v模式是一種傳統軟體開發模型,一般適用於一些傳統資訊系統應用的開發,而一些高效能高風險的系統、網際網路軟體,或乙個系統難以被具體模組化的時候,就比較難做成v模式所需的各種構件,需要更強調迭代的開發模型或者敏捷開發模型。
1.3敏捷開發模型
是一種以使用者需求進化為核心(強調溝通、弱化文件)、迭代、循序漸進的開發方法。強調以人為本,專注於交付對客戶有價值的軟體。是乙個用於開發和維持複雜產品的框架。就是把乙個大專案分為多個相互聯絡,但也可以獨立執行的小專案,並分別完成,在此過程中軟體一直處於可使用狀態。
1.3.1敏捷開發的流程
1)產品負責人將整個產品設計成產品代辦列表。就是乙個個需求列表。(可以理解為需求或者要做的事情)
2)召開產品迭代計畫會議,確定哪些需求是需要在第乙個迭代中完成的,評估迭代的時間(建議是2-4周),得到相應的迭代週期任務列表。
ps:提前發布功能需求列表,會議提倡所有團隊人員參與
3)把迭代的功能需求寫在紙條上貼在任務牆,讓大家(自主認領)認領分配。(任務牆就是把未完成、進行中、已完成的工作狀態貼到乙個牆上,這樣大家都可以看到任務的狀態)
ps:在開發人員開始開發乙個任務時,需要找來對應的測試人員講解該任務功能,以便測試人員有一致的理解,並且一開始就進行測試用例,自動化系統測試指令碼的開發(若需要自動化測試的話)。
4)評審會議是在迭代完成時舉行,要向客戶演示自己完成的軟體產品,並獲得客戶的反饋。
ps:很多使用者對軟體開發是沒有概念的,他只知道自己有某種需求。所以就要通過不斷的讓使用者看到產品的模型,這個過程使用者才會逐步的對產品產生概念。
5)最後是總結會議,以輪流發言方式進行,每個人都要發言,總結好的實踐和教訓,並落實到後續的開發中。不要流於形式。
1.3.2.敏捷開發適用原則
1、個人與互動:重於流程與工具
----強調人與人的溝通,所以盡可能要集中化辦公。異地開發模式容易讓人疲憊
個人技能要提高。尤其對於架構師要求很高。
管理者要多參與專案有關的事情。
減少對開發人員的干擾,問題集中整理問。
2、可用的軟體:重於詳盡的檔案
----強調文件的作用。必要的文件是必須的,具有傳承性。
3、與客戶合作:重於合約協商
----做好客戶引導。客戶都是想在盡可能短的時間內,交付盡可能多的功能。
4、回應變化:重於遵循計畫
----無理變化,舉棋不定的結果,並不是說都需要及時響應,會導致很多浪費。
二、筆試題
1、生命週期模型包括哪些階段?你們公司的開發模型是什麼?
軟體生命週期
軟體生命週期 三個過程 定義,開發,維護 九個階段 可行性研究 需求分析,概要設計 詳細設計 編碼與單元測試 整合測試 驗收測試,執行與維護 退役。可行性研究 系統分析人員在使用者的配合下對使用者的要求和現有的環境及條件進行深入調查寫出調研報告,從技術可行性,經濟可行性,法律可行性,操作可行性等方面...
軟體生命週期
同任何事物一樣,乙個軟體產品或軟體系統也要經歷孕育 誕生 成長 成熟 衰亡等階段,一般稱為軟體生存週期 軟體生命週期 把整個軟體生存週期劃分為若干階段,使得每個階段有明確的任務,使規模大,結構複雜和管理複雜的軟體開發變的容易控制和管理。通常,軟體生存週期包括可行性分析與開發項計畫 需求分析 設計 概...
軟體生命週期
軟體有乙個孕育 誕生 成長 成熟和衰亡的生成過程。這個過程即為軟體的生命週期 軟體生存期的六個步驟為 1.制定計畫 2.需求分析 3.設計 4.程式編碼 5.測試 6.執行與維護 確定要開發軟體系統的總目標 給出功能 效能 可靠性以及介面等方面的要求 完成該任務的可行性研究 估計可利用的資源 硬體 ...