軟體為什麼越來越復雜
❶ 為什麼存在軟體危機
軟體危機:軟體發展第二階段的末期,由於計算機硬體技術的進步。一些復雜的、大型的軟體開發項目提出來了,但,軟體開發技術的進步一直未能滿足發展的要求。在軟體開發中遇到的問題找不到解決的辦法,使問題積累起來,形成了尖銳的矛盾,因而導致了軟體危機。主要表現在以下幾個方面:
a.經費預算經常突破,完成時間一再拖延。
b.開發的軟體不通滿足用戶要求。
c.開發的軟體可維護性差。
d. 開發的軟體可靠性差。
軟體危機產生的原因是由於軟體產品本身的特點以及開發軟體的方式、方法、技術和人員引起的:
a.軟體的規模越來越大,結構越來越復雜。
b.軟體開發管理困難而復雜。
c.軟體開發費用不斷增加。
d.軟體開發技術落後。
e.生產方式落後。
f.開發工具落後,生產率提高緩慢。
自己根據這幾方面,扯開來來談就是的,想怎麼說就怎麼說
❷ 為什麼會產生軟體危機怎樣克服軟體危機
(1) 開發人員方面,對軟體產品缺乏正確認識,沒有真正理解軟體產品是一個完整的配置組成。造成開發中制定計劃盲目、編程草率,不考慮維護工作的必要性。
(2) 軟體本身方面,對於計算機系統來說,軟體是邏輯部件,軟體開發過程沒有統一的、公認的方法論和規范指導,造成軟體維護困難。
(3) 尤其是隨著軟體規模越來越大,復雜程度越來越高,原有軟體開發方式效率不高、質量不能保證、成本過高、研製周期不易估計、維護困難等一系列問題更為突出,技術的發展已經遠遠不能適應社會需求。
(1) 充分吸收和借鑒人類長期以來從事各種工程項目中積累的行之有效的有效原理、概念、技術與方法,特別是吸取幾十年來人類從事計算機硬體研究和開發的經驗教訓。在開發軟體的過程中努力作到良好的組織,嚴格的管理,相互友好的協作。
(2) 推廣在實踐中總結出來的開發軟體的成功的技術和方法,並研究更好、更有效的技術和方法,盡快克服在計算機系統早期發展階段形成的一些錯誤概念和作法。
(3) 根據不同的應用領域,開發更好的軟體工具並使用這些工具。將軟體開發各個階段使用的軟體工具集合成一個整體,形成一個很好的軟體開發支環環境。總之為了解決軟體危機,既要有技術措施(方法和工具),又要有必要的組織管理措施
❸ 軟體的特徵
軟體的特點:
1 是一種邏輯產品,與物質產品有很大的區別。
2 軟體產品的生產主要是研製,生產成本主要在開發和研製,開發研製完成後,通過復制就產生了大量軟體產品。
3 軟體產品不會用壞,不存在磨損,消耗。
4 生產主要是腦力勞動,還末完全擺脫手工開發方式,大部分產品是"定做"的。
5 開發軟體的費用不斷增加,致使生產成本相當昂貴
按軟體的功能劃分-
系統軟體:能與計算機硬體緊密配合在一起,使計算機系統各個部件、相關的軟體和數據協調、高效率地工作的軟體。如操作系統、資料庫管理系統、設備驅動程序以及通信處理程序等。系統軟體是計算機系統中必不可少的一個組成部分。
應用軟體:是在特定的領域內開發,為特定目的服務的一類軟體。如,CAD-CAM 計算機輔助製造-CAI 計算機輔助教學, 專家系統,模式識別,剎車系統
支撐軟體:是協助用戶開發軟體的工具性軟體,其中包括幫助程序人員開發軟體產品的工具,也包括幫助管理人員控制開發的進程的工具。
按規模劃分:
1、微型--只有一個人,甚至是半時,在幾天之內完成的軟體。寫出的程序不到500行語句。
2、小型--一個人半年之內完成的2千行以內的程序。例如,數值計算問題或是數據處理問題就是這種規模的課題。這種程序通常沒有與其他程序的介面。
如,有求伯君開發最初的 WPS,單獨完成BASIC 的比爾.蓋茨。
3、中型--5人以內在一年多時間里完成的5千到5萬行的程序。這種課題開始出現了軟體人員之間,軟體人員與用戶之間的聯系、協調和配合關系的問題。
4、大型--5人至10人在兩年多的時間里完成5萬行到10萬行的程序。例如編譯程序、小型分時系統、應用軟體包、實時控制系統等很可能都是這種軟體。
5、甚大型-100人至1000人參加
6、極大型--2000-5000人參加,如,微軟的windows 2000項目就包含了近3000名工程師,他們被分成幾百個小的團隊。
按開發分---軟體產品和軟體項目
軟體產品---指的是不局限於特定領域的、可以被廣大用戶直接使用的軟體系統。如微軟的 Windows,Office等。這類系統的特點是技術含量高,開發時要考到各種不同的用戶需求;
軟體項目--也稱定製軟體,是受某個特定客戶(或少數客戶)的委託,由一個或多個軟體開發機構在合同的約如我們常說的管理信息系統(MIS)和電子商務系統。這類軟體的特點是領域知識所佔的比重較大,相對技術而言工程性更強。例如,軍用防空指揮系統、衛星控制系統等均為這類軟體。
針對這兩種不同類型的軟體,應該有不同的軟體開發方法去指導項目開發過程。
軟體項目的開發,目前比較成熟的軟體開發方法有軟體成熟度模型(CMM)。 這種軟體開發模型試圖將整個軟體開發過程規范化和量化,直到可以對軟體開發過程進行定量的控制和優化。
軟體產品的開發,像微軟公司積累了許多成功的經驗。
軟體生產的發展:
1 程序設計時代:這個階段生產方式是個體勞動,生產工具是機器語言,匯編語言。(1946-1956年)
2 程序系統時代:這個階段生產方式是小集團合作生產,生產工具是高級語言,開發方法仍依靠個人技巧,但開始提出結構化方法。(1956-1968年)
3 軟體工程時代:這個階段生產方式是工程化的生產,使用資料庫,開發工具,開發環境,網路,分布式面向對象技術來開發軟體。(1968年至今)
軟體危機: 軟體開發技術的進步未能滿足發展的要求。在軟體開發中遇到的問題找不到解決的辦法,問題積累起來,形態尖銳的矛盾,導致了軟體危機。
軟體危機的表現:
1 經費預算經常突破,完成時間一再拖延。
2 開發的軟體不能滿足用戶要求。
3 開發的軟體可維護性差。
4 開發的軟體可靠性差。
軟體危機產生原因:
1 軟體規模越來越大,結構越來越復雜。
2 軟體開發管理困難而復雜。
3 軟體開發費用不斷增加。
4 軟體開發技術落後。
5 生產方式落後,仍採用手工方式。
6 開發工具落後,生產率提高緩慢。
軟體工程:用科學的知識和技術原理來定義,開發,維護軟體的一門學科。
用工程科學的觀點進行費用估算,制定進度,制定計劃和方案。
用管理科學的方法和原理進行生產的管理。
用數學的方法建立軟體開發中的各種模型和演算法。
那麼為達到軟體優質高產這個目標,從技術到管理做了大量的努力,從而逐漸已形成了"軟體工程學"這一新學科。
它包含以下主要內容:
1、軟體開發方法:軟體工程的方法提供了建造軟體在技術上需要"如何做"。 方法涵蓋了一系列的任務:需求分析、設計、編程、測試和維護。
是在60年代後期才逐步形成了一種軟體開發方法,在不同的軟體開發階段對應有不同的方法,例如在軟體的設計階段有"結構化分析與設計"方法,在軟體測試階段有"黑盒"與"白盒"測試技術,等等。
象目前又有一種更新的技術"面向對象的程序設計方法"。在這一方法中,數據和數據的操作是被封閉在一個個稱為"對象(Object) "的統一體中,對象之間則是通過"消息"(message")進行相互聯系的。
從而使由軟體所描述的系統與客觀世界的系統在結構上十分相似,不僅提高了軟體的可修改性與可維護性,同時也提高了軟體的可重用性,那麼這些都是工程多年來所追求的目標。從結構程序設計到面向對象程序設計,是程序設計方法的又一次飛躍。
2、軟體工具:所謂工具,在這里泛指是開發一切幫助開發軟體的軟體。為了提高軟體設計的質量和生產效率,現已經發展了許多的幫助開發和維護軟體的軟體 。例如,我們要用某種語言來開發一個應用軟體,這就要涉及到 "編輯程序、編譯程序、連接程序等,另外在軟體測試階段還要用到 "測試數據產生器、排錯程序、跟蹤程序、靜態分析工具和覆蓋監視工具等。也就是說在不同的時期要用到不同的軟體開發工具。目前,軟體工具發展迅速,許多用於軟體分析和設計的工具正在建立,其目標 就是要實現軟體生產自動化。
3、軟體工程環境:軟體方法和工具是軟體開發的兩大支柱,她們之間密切相關。軟體方法提出了明確的工作步驟和標準的文檔格式,這是設計軟體工具的基礎,而軟體工具的實現又將促進軟體方法的推廣和發展。
"環境"一詞,對不同用戶有著不同的含義。對最終用戶(end user)而言,環境就是他們運行程序所使用的計算機系統。這類用戶對環境的要求,主要是運行可靠,操作方便,容易學習和使用。而對於軟體開發人員來說,則就不同了,可以說環境就是他們進行軟體開發活動動的舞台。(例如,Algo-60,或者 資料管理系統(DbaseII DbaseIII),例如界面只能採用菜單來完成各種功能)
象現在生產資料庫管理的軟體的環境有:大型資料庫軟體 Sybase ,還有能幫助進行程序設計的 PB 軟體)
4、軟體工程管理學:大家知道,對於一個企業來說,如果只有先進的設備和技術,而沒有完善的管理,是不可能獲得應有的經濟效益的(例如海爾的海爾文化就是企業管理的象徵),(例如微軟企業文化宗旨的一句話)
軟體生產也是一樣的,如果管理不善,是不可能高質量、按時完成任務的。
"軟體工程管理就是對軟體工程生存期內的各階段的活動進行管理。軟體工程管理的目的是為了能按預期的時間和費用,成功地完成軟體的開發和維護任務。
軟體工程管理學的內容包括軟體費用管理、人員組織、工程計劃管理、軟體配置管理等各項方面的內容。
顯然,軟體工程管理也可藉助計算機來實現。供經理人員估算成本、指定進度、生成報告等管理工具都已經在許多公司使用了。一個理想的軟體工程環境,應該同時具備 支持開發和支持管理兩個方面的工具。
以上簡介了軟體工程學的主要組成成分--軟體工程方法學、軟體工程環境以及軟體工程管理的基本內容台和作用。它們即包括計算機科學家的研究成果,也概括了廣大軟體工作者的時間經驗。還必須指出,軟體開發技術可區分為形式化方法與非形式化方法兩大分支。前者以形式化的程序變化和嚴整為主要內容,目的在於達到程序設計的自動化,多用於計算機應用人員。本課程主要討論的是工程化的軟體開發技術。
軟體工程目標:付出較低開發成本;達到要求的功能;取得較好的性能;開發的軟體易於移植;只需較低的維護費用;能按時完成開發任務,及時交付使用;開發的軟體可靠性高。
軟體工程內容:研究內容包括開發技術和開發管理兩個方面。
開發技術主要研究 :軟體開發方法,開發過程,開發工具和環境。採集者退散
開發管理主要研究 :軟體管理學,軟體經濟學,軟體心理學。
軟體工程需要解決的問題:軟體的費用,可靠性,可維護性,軟體生產率和軟體的重用。
❹ 為什麼網上的軟體資源突然越來越難下載了
這個感覺的確很明顯,導致軟體資源越來越難下載的因素有好多個,小迷蟲認為下面幾個原因是最主要的。
啊哈,小迷蟲之前做了很多安裝系統的圖文教程,有興趣的朋友可以一閱!
❺ 為什麼所以軟體都越來越臃腫了呢。
你好!因為一些軟體,它們的功能在增加,在完善,在打漏洞補丁,使體積就在不斷地增加 。這是正常的現象。沒辦法。謝謝。
❻ 為什麼手機用久了都會變卡是因為硬體會老化嗎還是只是因為軟體越來越復雜了。
是手機內存被佔了,有些文件用清理軟體清不完的。堆積多了就卡。建議重置手機
❼ 軟體危機產生的原因,以及應對方法
軟體危機是指落後的軟體生產方式無法滿足迅速增長的計算機軟體需求,從而導致軟體開發與維護過程中出現一系列嚴重問題的現象。
產生軟體危機的原因主要有兩個方面:
1.這與軟體本身的特性有關。
與硬體不同,軟體是計算機系統的邏輯部分,而不是物理部分。軟體樣品是產品,試制過程也是生產過程。
軟體不會因使用時間過長而「老化」或「磨損」;在編寫程序代碼並在計算機上運行之前,很難測量軟體開發過程的進度和評估軟體質量。因此,軟體開發過程的管理和控制是非常困難的。
2.軟體開發人員的弱點。
首先,軟體產品是人們思考的結果,所以軟體產品的水平最終在很大程度上取決於軟體人員的教育、培訓和經驗積累。
合作開發大型軟體通常需要很多人,即使對於一個軟體開發人員深入研究領域的應用程序,所以你需要用戶和軟體和軟體開發人員之間的溝通,不可避免地發生在這個過程中理解的差異,導致後續錯誤的設計或實現。
(7)軟體為什麼越來越復雜擴展閱讀:
解決途徑
人們開始開發過程中軟體開發和軟體工具的使用,協助軟體項目管理和生產技術,人們還將使用在軟體生命周期的所有階段的軟體工具有機地集合作為一個整體,形成可以支持軟體開發和維護的整個過程的集成軟體支持環境,以解決軟體危機從管理和技術兩個方面的問題。
此外,人工智慧和軟體工程的結合在20世紀80年代後期成為一個活躍的研究領域。基於程序轉換、自動生成和可復用軟體的新軟體技術的研究取得了一定的進展。
在軟體工程理論的指導下,發達國家建立了較為完整的軟體產業生產體系,形成了較強的軟體生產能力。軟體標准化和可重用性受到業界的高度重視,在避免勞動重復使用和緩解軟體危機方面發揮了重要作用。
❽ 為什麼java這么火,很多年了,java一直長盛不衰,可是java內容很復雜啊,而且越來越復雜,太多東西要學
相對於兩種語言,C++的復雜體現在變數的定義有兩種模式,一種是指針,一種沒有指針,另外C++是可以對內存進行操作,需要程序對使用的內存做及時的釋放;
相比較JAVA語言,變數的定義只有一種,沒有指針的概念,其實在底層的語義封裝的時候就是C++中的指針概念,簡單的說,JAVA定義的變數都是指針,而且Java有自己的垃圾回收機制,那麼就不存在程序進行內存釋放問題。
java是面向應用的,C++是面向底層的。
從程序的開發設計角度來考慮,底層的程序需要進行切塊,各個模塊間的交互需要明確,因此C++程序往往文件大小不會太大;而應用層的程序,對於用戶來說就是實打實的功能,基於目前硬體設備的性能提升,軟體功能的應用將越來越復雜,這就導致了JAVA的內容很多很雜。
因此從這點來看,JAVA是因為應用面的廣,而導致技術的雜而多。
工資高低不看語言,先是看公司、在看崗位、在看技術
❾ 為什麼百度知道軟體要搞的越來越復雜呢以至於讓許多玩友找不到任務窗口改在哪兒了。
慢慢適應一下就好了,這就是那個時代變了,我也不得不變。任務欄在我的最上方右邊那四個小方格圖標里,點開就可以看到了。
❿ 現在手機功能越來越復雜了,真的有必要搞這么多功能嗎
智能手機的發展伴隨著越來越經驗豐富的過程。今天,使用手機非常好更簡單。智能手機已開發至今,進行的應用程序基本上是固定的,即使手機有數百個功能,它也是我們的主要用途。面對這些已經使用了多次,即使有些復雜,它已經成為一種習慣,潛意識。此外,了解更簡單。
手機