(1)什麼是軟體危機?其典型表現是是什麼?為什麼會出現軟體危機?
軟體危機是指在計算機軟體的開發和維護過程中所遇到的一系列嚴重問題。這些問題絕不僅僅是不能執行的軟體才具有的,實際上,幾乎所有的軟體都不同程度地存在這些問題。
典型表現:
①對軟體開發成本和進度的估計不準確。實際成本比估計成本有可能高出乙個數量級,實際進度比預期進度拖延幾個月甚至幾年的現象並不罕見。這種現象降低了軟體開發組織的信譽。而為了趕進度和節約成本所採取的一些權宜之計又往往損害了軟體產品的質量,從而不可避免地會引起使用者的不滿。
②使用者對「已完成的"軟體系統不滿意的現象經常發生。軟體開發人員常常在對使用者要求只有模糊的了解,甚至對所要解決的問題還沒有確切認識的情況下,就匆忙著手編寫程式。軟體開發人員和使用者之間的資訊交流往往很不充分,「閉門造車」必然導致最終的產品不符合使用者的實際需要。
③軟體產品的質量往往靠不住。軟體可靠性和質量保證的確切的定量概念剛剛出現不久,軟體質量保證技術(審查、複審、程式正確性證明和測試)還沒有堅持不懈地應用到軟體開發的全過程中,這些都導致軟體產品發生質量問題。
④軟體常常是不可維護的。很多程式中的錯誤是非常難改正的,實際上不可能使這些程式適應新的硬體環境,也不能根據使用者的需要在原有程式中增加一些新的功能。「可重用的軟體」還是一-個沒有完全做到的、正在努力追求的目標,人們仍然在重複開發類似的或基本類似的軟體。
⑤軟體通常沒有適當的文件資料。計算機軟體不僅僅是程式,還應該有一整套文件資料。
⑥軟體成本在計算機系統總成本中所佔的比例逐年上公升。由於微電子學技術的進步和生產自動化程度的不斷提高,硬體成本逐年下降,然而軟體開發需要大量人力,軟體成本隨著通貨膨脹以及軟體規模和數量的不斷擴大而持續上公升。
⑦軟體開發跟不上計算機應用迅速普及深入的趨勢。軟體產品「供不應求」的現象使人類不能充分利用現代計算機硬體提供的巨大潛力。
出現軟體危機原因:
(1)客觀原因
①軟體是計算機系統中的邏輯部件而不是物理部件。
②軟體規模龐大,而且程式複雜性將隨著程式規模的增加而呈指數上公升。
(2)主觀原因
①對軟體開發和維護有不少糊塗觀念,採用了錯誤的方法和技術。
②存在與軟體開發和維護有關的許多錯誤認識和做法。
③對使用者要求沒有完整準確的認識就匆忙著手編寫程式。
④乙個軟體從定義、開發、使用和維護,直到最終被廢棄,要經歷乙個漫長的時期。
⑤乙個軟體產品必須由乙個完整的配置組成,主要包括程式、文件和資料等成分。
⑥在軟體開發的不同階段進行修改需要付出的代價是很不相同的。
⑦輕視維護是乙個最大的錯誤。
(2)什麼是軟體工程?產生軟體危機的原因
軟體工程是是從管理和技術兩方面研究如何更好地開發和維護計算機軟體的一門新興學科。採用工程的概念、原理、技術和方法來開發與維護軟體,把經過時間考驗而證明正確的管理技術和當前能夠得到的最好的技術方法結合起來,以經濟地開發出高質量的軟體並有效地維護它,這就是軟體工程。
(1)客觀原因
①軟體是計算機系統中的邏輯部件而不是物理部件。
②軟體規模龐大,而且程式複雜性將隨著程式規模的增加而呈指數上公升。
(2)主觀原因
①對軟體開發和維護有不少糊塗觀念,採用了錯誤的方法和技術。
②存在與軟體開發和維護有關的許多錯誤認識和做法。
③對使用者要求沒有完整準確的認識就匆忙著手編寫程式。
④乙個軟體從定義、開發、使用和維護,直到最終被廢棄,要經歷乙個漫長的時期。
⑤乙個軟體產品必須由-乙個完整的配置組成,主要包括程式、文件和資料等成分。
⑥在軟體開發的不同階段進行修改需要付出的代價是很不相同的。
⑦輕視維護是乙個最大的錯誤。
(3)軟體生命週期都包括那幾個階段。
軟體生命週期由軟體定義、軟體開發和執行維護(也稱為軟體維護) 3個時期組成,每個時期又進一步劃分成若干個階段。
組成(1)軟體定義
軟體定義時期通常進一- 步劃分成3個階段,即問題定義、可行性研究和需求分析。這個時期的總任務是:①確定軟體開發工程必須完成的總目標;②確定工程的可行性;③匯出實現工程目標應該採用的策略及系統必須完成的功能;④估計完成該項工程需要的資源和成本,並且制定工程進度表。
(2)軟體開發
通常由下述4個階段組成:總體設計,詳細設計,編碼和單元測試,綜合測試。其中前兩個階段又稱為系統設計,後兩個階段又稱為系統實現。
(3)執行和維護
軟體執行和維護的主要任務是使軟體持久地滿足使用者的需要。出現下述三種情況的時候需要進行維護:①當軟體在使用過程中發現錯誤時應該加以改正:②當環境改變時應該修改軟體以適應新的環境;③當使用者有新要求時應該及時改進軟體以滿足使用者的新需要。
(4)什麼是軟體生命週期模型?
軟體生存週期模型是描述軟體開發過程中各種活動如何執行的模型。軟體生存週期模型確立了軟體開發和演繹中各階段的次序限制以及各階段或機動的準則,確立開發過程所遵守的規定和限制,便於各種活動的協調,便於各種人員的有效通訊,有利於活動重用,有利於活動管理。
(5)在可行性研究階段,主要從哪些因素考慮每種解法的可行性?
對每種可能的解決方案都應該仔細研究它的可行性,通常,至少從下述三個方面研究每種解決方案的可行性。
①技術可行性:使用現有的技術能否實現這個系統。
②經濟可行性:這個系統的經濟效益能否超過它的開發成本。
③操作可行性:這個系統的操作方式在該客戶組織內是否行得通。
軟體測試理論知識
軟體 有程式,資料和文件 工程化 系統化,模組化,規範化,可度量化 可用數字表示的 工程的定義 使用工程化的思想完成複雜的對人類有意義的過程 軟體工程 使用工程化思想開發符合使用者需求的軟體的過程 目標 在時間,資源,人員的限制條件下構建滿足使用者需求的軟體產品 prd 產品需求文件 專案 在有限的...
軟體工程理論
按使用最廣泛的瀑布模型來理解軟體工程的話,可以把軟體工程大致分為6個階段 1 可行性研究 2 需求分析 3 概要設計 4 詳細設計 5 編碼測試 6 實施運維。第一步 可行性研究 可行性研究是專案生命週期的第一步,一般可以從技術 經濟 社會和法律等角度加以分析。1 技術可行性分析 2 經濟可行性分析...
軟體測試理論知識(一)
學習軟體測試的基礎理論已經有很久了,這裡就當做是自己的乙個鞏固與提公升吧,想要學習測試理論基礎,但是又不知道從何下手的可以關注我的部落格,不定期更新!我也就不廢話了,直接上乾貨。軟體測試的方式 例如 通過設計來驗證需求定義的規格是否正確,通過編碼來驗證設計的合理性,通過測試來驗證編碼的正確性 2.確...