㈠ 軟體測試的歷史和發展
迄今為止,軟體測試的發展一共經歷了五個重要時期:
1957年之前-調試為主(Debugging Oriented)
1957–1978-證明為主(Demonstration Oriented)
1979–1982-破壞為主(Destruction Oriented)
1983–1987-評估為主(Evaluation Oriented)
1988–至今-預防為主(Prevention Oriented)
調試為主
20世紀50年代,計算機剛誕生不久,只有科學家級別的人才會去編程,需求和程序本身也遠遠沒有現在這么復雜多變,相當於開發人員一人承擔需求分析,設計,開發,測試等所有工作,當然也不會有人去區分調試和測試。然而嚴謹的科學家們已經在開始思考 「怎麼知道程序滿足了需求?」這類問題了。
證明為主
1957年,Charles Baker在他的一本書中對調試和測試進行了區分:
調試(Debug):確保程序做了程序員想它做的事情
測試(Testing):確保程序解決了它該解決的問題
這是軟體測試史上一個重要的里程碑,它標志測試終於自立門戶師出有名了。
當時計算機應用的數量,成本和復雜性都大幅度提升,隨之而來的經濟風險也大大增加,測試就顯得很有必要了,這個時期測試的主要目就是確認軟體是滿足需求的,也就是我們常說的「做了該做的事情」。
破壞為主
1979年,《軟體測試的藝術》 (The Art of Software Testing)第一版問世,這本書是測試界的經典之作。書中給出了軟體測試的經典定義:
The process of executing a program with the intent of finding errors.
測試是為發現錯誤而執行程序的過程。
這個觀點較之前證明為主的思路,是一個很大的進步。我們不僅要證明軟體做了該做的事情,也要保證它沒做不該做的事情,這會使測試更加全面,更容易發現問題。
評估為主
1983年,美國國家標准局(National Bureau of Standards)發布「Guideline for Lifecycle Validation, Verification and Testing of Computer Software」,也就是我們常說的VV&T。VV&T提出了測試界很有名的兩個名詞:驗證(Verification)和確認(Validation)
Verification: Are we building the proct right?
Validation: Are we building the right proct?
人們提出了在軟體生命周期中使用分析,評審,測試來評估產品的理論。軟體測試工程在這個時期得到了快速的發展:
出現測試經理(test manager),測試分析師(test analyst)等職稱
開展正式的國際性測試會議和活動
發表大量測試刊物
發布相關國際標准
以上種種都預示著:軟體測試正作為一門獨立的,專業的,具有影響力的工程學發展起來了。
預防為主
預防為主是當下軟體測試的主流思想之一。STEP(Systematic Test and Evaluation Process)是最早的一個以預防為主的生命周期模型,STEP認為測試與開發是並行的,整個測試的生命周期也是由計劃,分析,設計,開發,執行和維護組成,也就是說,測試不是在編碼完成後才開始介入,而是貫穿於整個軟體生命周期。我們都知道,沒有100%完美的軟體,零缺陷是不可能的,所以我們要做的是:盡量早的介入,盡量早的發現這些明顯的或隱藏的bug,發現得越早,修復起來的成本越低,產生的風險也越小
㈡ 計算機軟體的發展經歷了哪些歷程,各階段有何特徵、理論體系、優勢與不足
軟體的發展大致經歷了如下三個階段:
⑴第一階段(20世紀40年代中期到50年代中期)。從第一台計算機上的第一個程序開始到實用的高級程序設計語言出現以前是計算機軟體發展初期。這個階段計算機應用領域的比較窄,主要是科學與工程計算,處理對象為數值數據,以個體方式使用機器(或匯編)語言編製程序。第一階段只要研究科學計算程序與工程計算程序、服務性程序和程序庫,人們對與程序有關的文檔的重要性認識不足,重點考慮程序本身。
⑵第二階段(20世紀50年代中期到60年代後期)。從高級程序設計語言出現到軟體工程提出以前是軟體發展的第二階段。這個階段研究對象增加了並發程序,並著重研究高級程序設計語言、編譯程序、操作系統以及各種支撐軟體和應用軟體。隨著計算機系統的處理能力得到加強,設計和編製程序的工作方式逐漸走向合作方式。
⑶第三階段(20世紀60年代後期軟體工程提出以來)。由於大型軟體的開發是一項工程性的任務,採用個體或合作方式不僅效率低、可靠性差、而且很難完成任務,只有採用工程方法才能適應高效率高質量編制軟體的需求,因而在1968年的大西洋公約組織的學術會議上提出的軟體工程的概念。40多年來,軟體領域的工作呈現出了許多新的特點。
㈢ 急需一篇有關「軟體技術」的發展歷史、現狀、存在問題等的論文!!!!!
一、「軟體技術」發展歷史
第一是軟體技術發展早期(20世紀50和60年代);第二是結構化程序和對象技術發展時期(70和80年代);第三是從90年代到現在,軟體工程技術發展新時期。
1、軟體技術發展早期
在計算機發展早期,應用領域較窄,主要是科學與工程計算,處理對象是數值數據。1956年在J.Backus領導下為IBM機器研製出第一個實用高級語言Fortran及其翻譯程序。此後,相繼又有多種高級語言問世,從而使設計和編製程序的功效大為提高。這個時期計算機軟體的巨大成就之一,就是在當時的水平上成功地解決了兩個問題:一方面從Fortran及Algol60開始設計出了具有高級數據結構和控制結構的高級程序語言,另一方面又發明了將高級語言程序翻譯成機器語言程序的自動轉換技術,即編譯技術。然而,隨著計算機應用領域的逐步擴大,除了科學計算繼續發展以外,出現了大量的數據處理和非數值計算問題。為了充分利用系統資源,出現了操作系統;為了適應大量數據處理問題的需要,開始出現資料庫及其管理系統。軟體規模與復雜性迅速增大。當程序復雜性增加到一定程度以後,軟體研製周期難以控制,正確性難以保證,可靠性問題相當突出。為此,人們提出用結構化程序設計和軟體工程方法來克服這一危機。軟體技術發展進入一個新的階段。
2、結構化程序和對象技術發展時期
從70年代初開始,大型軟體系統的出現給軟體開發帶來了新問題。大型軟體系統的研製需要花費大量的資金和人力,可是研製出來的產品卻是可靠性差、錯誤多、維護和修改也很困難。一個大型操作系統有時需要幾千人年的工作量,而所獲得的系統又常常會隱藏著幾百甚至幾千個錯誤。程序可靠性很難保證,程序設計工具的嚴重缺乏也使軟體開發陷入困境。
結構程序設計的討論導致產生了由Pascal到Ada這一系列的結構化語言。這些語言具有較為清晰的控制結構,與原來常見的高級程序語言相比有一定的改進,但在數據類型抽象方面仍顯不足。面向對象技術的興起是這一時期軟體技術發展的主要標志。「面向對象」這一名詞在80年代初由Smalltalk語言的設計者開始提出,而後逐漸流行起來。
面向對象的程序結構將數據及其上作用的操作一起封裝,組成抽象數據或者叫做對象。具有相同結構屬性和操作的一組對象構成對象類。對象系統就是由一組相關的對象類組成,能夠以更加自然的方式模擬外部世界現實系統的結構和行為。對象的兩大基本特徵是信息封裝和繼承。通過信息封裝,在對象數據的外圍好像構築了一堵「圍牆」,外部只能通過圍牆的「窗口」去觀察和操作圍牆內的數據,這就保證了在復雜的環境條件下對象數據操作的安全性和一致性。通過對象繼承可實現對象類代碼的可重用性和可擴充性。可重用性使能處理父、子類之間具有相似結構的對象共同部分,避免代碼一遍又一遍的重復。可擴充性使能處理對象類在不同情況下的多樣性,在原有代碼的基礎上進行擴充和具體化,以求適應不同的需要。
傳統的面向過程的軟體系統以過程為中心。過程是一種系統功能的實現,而面向對象的軟體系統是以數據為中心。與系統功能相比,數據結構是軟體系統中相對穩定的部分。對象類及其屬性和服務的定義在時間上保持相對穩定,還能提供一定的擴充能力,這是十分重要的事情,這樣就可大為節省軟體生命周期內系統開發和維護的開銷。就像建築物的地基對於建築物的壽命十分重要一樣,信息系統以數據對象為基礎構築,其系統穩定性就會十分牢固。到20世紀80年代中期以後,軟體的蓬勃發展更來源於當時兩大技術進步的推動力:一是微機工作站的普及應用,另一是高速網路的出現。其導致的直接結果是:一個大規模的應用軟體,可以由分布在網路上不同站點機的軟體協同工作去完成。由於軟體本身的特殊性和多樣性,在大規模軟體開發時,人們幾乎總是面臨困難處境。軟體工程面臨許多新問題和新挑戰,而進入一個新的發展時期。
3、軟體工程技術發展新時期
自從軟體工程名詞誕生,歷經三十餘年的研究和開發,人們深刻認識到,軟體開發必須按照工程化的原理和方法來組織和實施。軟體工程技術在軟體開發方法和軟體開發工具方面,在軟體工程發展的早期,特別是20世紀70、80年代軟體蓬勃發展時期,已經取得了非常重要的進步。軟體工程作為一個學科方向,愈來愈受到人們的重視。但是,隨著大規模網路應用軟體的出現所帶來的新問題,使得軟體工程中,在如何協調合理預算、控制開發進度和保證軟體質量等方面,軟體人員面臨更加困難的境地。
進入20世紀90年代,Internet和WWW技術的蓬勃發展使軟體工程進入一個新的技術發展時期。以軟體組件復用為代表,基於組件的軟體工程技術正在使軟體開發方式發生巨大改變。早年軟體危機中提出的嚴重問題,有望從此開始找到切實可行的解決途徑。在這個時期軟體工程技術發展代表性標志在三個方面,即:
①基於組件的軟體工程和開發方法成為主流。組件是自包含的,具有相對獨立的功能特性和具體實現,並為應用提供預定義好的服務介面。組件化軟體工程是通過使用可復用組件來開發、運行和維護軟體系統的方法、技術和過程。
②軟體過程管理進入軟體工程的核心進程和操作規范。軟體工程管理應以軟體過程管理為中心去實施,貫穿於軟體開發過程的始終。在軟體過程管理得到保證的前提下,軟體開發進度和產品質量也就隨之得到保證。
③網路應用軟體規模愈來愈大,復雜性愈來愈高,使得軟體體系結構從兩層向三層或者多層結構轉移,使應用的基礎架構和業務邏輯相分離。應用的基礎架構由提供各種中間件系統服務組合而成的軟體平台來支持,軟體平台化成為軟體工程技術發展的新趨勢。軟體平台為各種應用軟體提供一體化的開放平台,既可保證應用軟體所要求基礎系統架構的可靠性、可伸縮性和安全性的要求;又可使應用軟體開發人員和用戶只要集中關注應用軟體的具體業務邏輯實現,而不必關注其底層的技術細節。當應用需求發生變化時,只要變更軟體平台之上的業務邏輯和相應的組件實施就行了。
以上這些標志象徵軟體工程技術已經發展上升到一個新階段。這個階段尚遠未結束。軟體技術發展日新月異,Internet的進步促使計算機技術和通信技術相結合,更使軟體技術發展呈五彩繽紛局面。軟體工程技術的發展也永無止境。
二、「軟體技術」發展中的問題
(一) 人才結構失衡。隨著總量供不應求這一矛盾的緩和,我國軟體人才結構不盡合理的問題進一步凸現,成為我國軟體人才體系的突出特點,主要體現在如下方面:
1、高端軟體人才缺乏。從經濟規律來看,一種工業化時代的產業結構,要求是一個金字塔型的人才梯隊,軟體業需要的不僅僅需要從事基礎開發的程序設計員作為智力基礎,更需要塔尖的高級人才。目前高級軟體人才仍是中國軟體企業最緊缺的軟體人才類型,在這種背景下,中國軟體人才的「金字塔」形的合理結構並未實現。我國軟體技術人員約有19萬人左右,此外,還有30萬人在從事計算機應用、科研與教育工作。但是,我國軟體技術人員中70%是從事程序開發、技術支持和服務的人員,軟體產業發展所急需的系統分析師、架構設計師、高級工程師、項目經理和技術工人的數量非常匱乏,無法滿足軟體產業發展對高層次人才的需求。
2、復合型軟體人才缺乏。高素質的復合型軟體人才正逐漸成為軟體人才中的新寵。復合型軟體人才有兩種類型:一種是既精通軟體又精通硬體的基礎理論和設計技能的人才;另一種是既精通軟體基礎理論和設計技能,同時又精通其他專業業務和應用知識的復合型人才,這類人才是軟體領域與其他應用領域交叉的復合型人才。目前我國軟體產業正處於產業化的進程中,產業化的一個要求就是資本的介入,在一個產業鏈中,資本是不可缺少的一個環節,這就需要我國培養出大批軟體類資本運作人才,為軟體企業的發展贏得資金。而產業鏈的下游是產品的銷售環節,又需要大批渠道及銷售、公關、宣傳人才以及軟體售後技術支持人才。另外,由於我國的軟體產業主要是發展採取外包模式,這就要求既懂得軟體知識,又能嫻熟地運用外語的復合型人才。
(二)自主知識產權的主流軟體產品較少,產品多為低端產品。我國的軟體產品,主要集中在產業鏈的低端、輔助型和外掛式的產品階段;在核心技術上有創新、自主設計的「重量級」軟體產品還比較缺乏;許多基礎性、關鍵性軟體還處於空白狀態。中國的軟體產業從上世紀八十年代開始發展,到今天雖然取得了長足的進步,但是國內很少有企業能夠達到承攬國際項目所需的嚴格的內部流程及質量控制。雖然有眾多優秀的軟體工程師,但多數外包企業尚未建立起正確的流程,也未能培養出准確掌握這些流程的開發人員。在中國軟體市場,國外品牌的產品仍然占據高端系統軟體、資料庫軟體的絕大部分市場份額,占據中間件、行業應用軟體、ERP軟體的大部分市場份額;國內品牌產品則在ERP和財務管理軟體、防殺毒軟體、中文信息處理軟體及部分行業應用領域占據優勢。
(三)核心技術缺乏,創新能力不足。我國大部分軟體生產企業在較低層面上進行著大量重復性的工作,是一種小作坊式的生產,這種生產方式為了眼前的生存,根本無力開展軟體技術創新,再加上盜版泛濫成災,企業缺乏技術創新的動力,很多企業幾乎沒有研發投入。軟體產業中發展較快的產品領域主要是游戲、財務及商務管理、教育領域,而技術含量較高的大型資料庫系統、管理信息系統的開發及發展較為緩慢。軟體企業創新能力不足,軟體產品的生命周期很短、產品更新升級頻繁、換代速度很快,軟體產品高利潤、高回報的主要源泉,應該來自於持續不斷的創新。而目前中國軟體企業的創新能力不足,特別是對軟體產業鏈上游產品的原始創新力不足。
三、「軟體技術」發展中問題的解決辦法及措施
1、改進教育模式培養人才,面向市場吸引人才。調查發現,教育體制的落後導致了軟體專業畢業生缺乏實際編程能力,無法適應企業的實際需要。而軟體企業自身又不願提供相應的培訓,這樣一來編程人員的數量幾乎是處在一種「凈減」狀態。所以,我們要從教育抓起,多為學生提供實踐機會,不斷加強學生的實際編程能力。同時,也應該提供專業的培訓,不斷提高員工的理論水平和實際操作水平,有助於滿足企業各層次的人才需求。由於我國的軟體外包發展模式,在人才培訓方面,要積極擴大國內軟體高級人才與國際軟體市場的聯系和交流,擴大面向出口的專業化二次培訓規模,重在加強項目經理和程序員的外語能力和過程管理能力,為軟體出口提供更廣泛的人才基礎。要將引進面向國際市場的人才作為我國引進人才的重點領域,使我國成為軟體國際化人才的高地。在吸引海外留學人員回國發展的工作中,重點吸引一批優秀的項目經理、系統分析師和軟體工程師。
2、不斷研發擁有自主知識產權的關鍵技術與核心技術。軟體產業必須強調自主知識技術,強調知識產權,這是因為它在很大程度上決定著一個國家信息安全和綜合國力。要發展具有自主知識產權的軟體產品,應該在軟體研究與開發上加大投入,注重跟蹤和模仿,獨立從事軟體自主核心技術的研發,逐步在操作系統、資料庫管理系統和關鍵應用軟體方面形成完整、系統的自主版權軟體產品。同時加快核心軟體技術和產品制度創新及產業化。集中支持核心技術軟體,基礎軟體工具和嵌入式軟體的開發和自主的軟體創新信息產業化。
3、推行軟體園建設。作為加快發展軟體技術、有效推進軟體產業發展而興起的軟體園,在研發與引進軟體新技術、創新開發軟體新產品、加速軟體成果轉化等方面,具有典型的示範與帶動作用。軟體園區集中提供了理想的軟體研發場地、良好的成果孵化環境、相當規模的軟體流通市場、完善的人才培訓場所、便利的交通與生活設施、良好的休閑娛樂場所,能充分發揮軟體園區的群體優勢和規模效應。
總之,軟體是信息產業的靈魂。我們應該加強人才培養,提高自主研發能力,不斷掌握核心技術,繼續做大軟體產業規模,使我國立足於世界信息強國之列。
㈣ 軟體工程的發展過程
軟體是由計算機程序和程序設計的概念發展演化而來的,是在程序回和程序設計發展到一定規模並答且逐步商品化的過程中形成的。軟體開發經歷了程序設計階段、軟體設計階段和軟體工程階段的演變過程。 在Internet平台上進一步整合資源,形成巨型的、高效的、可信的虛擬環境,使所有資源能夠高效、可信地為所有用戶服務,成為軟體技術的研究熱點之一。
軟體工程領域的主要研究熱點是軟體復用和軟體構件技術,它們被視為是解決「軟體危機」的一條現實可行的途徑,是軟體工業化生產的必由之路。而且軟體工程會朝著開放性計算的方向發展,朝著可以確定行業基礎框架、指導行業發展和技術融合的「開放計算」。
㈤ 請問你知道應用程序的發展史嗎
第一個寫軟體的人是Ada( Ada Lovelace),在1860年代她嘗試為 Babbage(Charles Babbage)的機械式計算機寫軟體。盡管他們的努力失敗了,但他們的名字永遠載入了計算機發展的史冊。她的父親就是那個狂熱的,不趨炎附勢的激進詩人和冒險家拜倫。她本身也是一個光彩照人的人物—數學尖子和某種程度上的賭徒。她最重要的貢獻來自於與發明家Charles Babbage的合作,從而設計出世界上首批大型計算機—Difference Engine和Analytical Engine。她甚至認為如果有正確的指令,Babbage的機器可以用來作曲,這是一個多麼瘋狂的想法,因為當時大多數人只把它看成是一個機械化算盤,而她卻有渲染力和感召力來傳播她的思想。
20世紀50年代,軟體伴隨著第一台電子計算機的問世誕生了。以寫軟體為職業的人也開始出現,他們多是經過訓練的數學家和電子工程師。1960年代美國大學里開始出現授予計算機專業的學位,教人們寫軟體。
在計算機系統發展的初期,硬體通常用來執行一個單一的程序,而這個程序又是為一個特定的目的而編制的。早期當通用硬體成為平常事情的時候,軟體的通用性卻是很有限的。大多數軟體是由使用該軟體的個人或機構研製的,軟體往往帶有強烈的個人色彩。早期的軟體開發也沒有什麼系統的方法可以遵循,軟體設計是在某個人的頭腦中完成的一個隱藏的過程。而且,除了源代碼往往沒有軟體說明書等文檔。
從60年代中期到70年代中期是計算機系統發展的第二個時期,在這一時期軟體開始作為一種產品被廣泛使用,出現了「軟體作坊」專職應別人的需求寫軟體。這一軟體開發的方法基本上仍然沿用早期的個體化軟體開發方式,但軟體的數量急劇膨脹,軟體需求日趨復雜,維護的難度越來越大,開發成本令人吃驚地高,而失敗的軟體開發項目卻屢見不鮮。「軟體危機」就這樣開始了!
「軟體危機」使得人們開始對軟體及其特性進行更深一步的研究,人們改變了早期對軟體的不正確看法。早期那些被認為是優秀的程序常常很難被別人看懂,通篇充滿了程序技巧。現在人們普遍認為優秀的程序除了功能正確,性能優良之外,還應該容易看懂、容易使用、容易修改和擴充。
1968年北大西洋公約組織的計算機科學家在聯邦德國召開的國際學術會議上第一次提出了「軟體危機」(software crisis)這個名詞。 概括來說,軟體危機包含兩方面問題:一、如何開發軟體,以滿足不斷增長,日趨復雜的需求;二、如何維護數量不斷膨脹的軟體產品。
1968年秋季,NATO(北約)的科技委員會召集了近50名一流的編程人員、計算機科學家和工業界巨頭,討論和制定擺脫「軟體危機」的對策。在那次會議上第一次提出了軟體工程(software engineering)這個概念。
軟體工程是一門研究如何用系統化、規范化、數量化等工程原則和方法去進行軟體的開發和維護的學科。軟體工程包括兩方面內容:軟體開發技術和軟體項目管理。軟體開發技術包括軟體開發方法學、軟體工具和軟體工程環境。軟體項目管理包括軟體度量、項目估算、進度控制、人員組織、配置管理、項目計劃等。
為迎接軟體危機的挑戰,人們進行了不懈的努力。這些努力大致上是沿著兩個方向同時進行的。
一是從管理的角度,希望實現軟體開發過程的工程化。這方面最為著名的成果就是提出了大家都很熟悉的「瀑布式」生命周期模型。它是在60年代末「軟體危機」後出現的第一個生命周期模型。如下所示:
分析 → 設計 → 編碼 → 測試 → 維護
後來,又有人針對該模型的不足,提出了快速原型法、螺旋模型、噴泉模型等對「瀑布式」生命周期模型進行補充。現在,它們在軟體開發的實踐中被廣泛採用。
這方面的努力,還使人們認識到了文檔的標准以及開發者之間、開發者與用戶之間的交流方式的重要性。一些重要文檔格式的標准被確定下來,包括變數、符號的命名規則以及原代碼的規範式。
軟體工程發展的第二個方向,側重與對軟體開發過程中分析、設計的方法的研究。這方面的重要成果就是在70年代風靡一時的結構化開發方法,即PO(面向過程的開發或結構化方法)以及結構化的分析、設計和相應的測試方法。
軟體工程的目標是研製開發與生產出具有良好的軟體質量和費用合算的產品。費用合算是指軟體開發運行的整個開銷能滿足用戶要求的程度,軟體質量是指該軟體能滿足明確的和隱含的需求能力有關特徵和特性的總和。軟體質量可用六個特性來作評價,即功能性、可靠性、易使用性、效率、維護性、易移植性。
軟體不是純物化的東西,其中包含著人的因素,於是就有很多變動的東西,不可能像理想的物質生產過程,基於物理學等的原理來做。早期的軟體開發僅考慮人的因素,傳統的軟體工程強調物性的規律,現代軟體工程最根本的就是人跟物的關系,就是人和機器(工具、自動化)在不同層次的不斷循環發展的關系。
面向對象的分析、設計方法(OOA和OOD)的出現使傳統的開發方法發生了翻天覆地的變化。隨之而來的是面向對象建模語言(以UML為代表)、軟體復用、基於組件的軟體開發等新的方法和領域。
與之相應的是從企業管理的角度提出的軟體過程管理。即關注於軟體生存周期中所實施的一系列活動並通過過程度量、過程評價和過程改進等涉及對所建立的軟體過程及其實例進行不斷優化的活動使得軟體過程循環往復、螺旋上升式地發展。其中最著名的軟體過程成熟度模型是美國卡內基梅隆大學軟體工程研究所(SEI)建立的CMM(Capability Maturity Model),即能力成熟度模型。此模型在建立和發展之初,主要目的是為大型軟體項目的招投標活動提供一種全面而客觀的評審依據,而發展到後來,又同時被應用於許多軟體機構內部的過程改進活動中
㈥ 軟體需求的發展歷程
80年代中期,形成了軟體工程子領域——需求工程(requirement engineering, RE)。從1993年起每兩年舉辦一次需求工程國際研討會(ISRE),自1994年起每兩年舉辦一次需求工程國際會議(ICRE),一些關於需求工程的工作小組相繼成立。需求工程是隨著計算機的發展而發展的,在計算機發展的初期,軟體規模不大,軟體開發所關注的是代碼編寫,需求分析很少受到重視。後來軟體開發引入了生命周期的概念,需求分析成為其第一階段。隨著軟體系統規模的擴大,需求分析與定義在整個軟體開發與維護過程中越來越重要,直接關繫到軟體的成功與否。人們逐漸認識到需求分析活動不再僅限於軟體開發的最初階段,它貫穿於系統開發的整個生命周期。
進入90年代以來,需求工程成為研究的熱點之一。一些關於需求工程的工作小組也相繼成立,如歐洲的RENOIR(Requirements Engineering Network of International Cooperating Research Groups ),並開始開展工作。
㈦ 簡述軟體的發展過程
軟體是由計算機程序和程序設計的概念發展演化而來的,是在程序和程序設計發展到一定規模並且逐步商品化的過程中形成的。軟體開發經歷了程序設計階段、軟體設計階段和軟體工程階段的演變過程。
程序設計階段
程序設計階段出現在1946年~1955年。此階段的特點是:尚無軟體的概念,程序設計主要圍繞硬體進行開發,規模很小,工具簡單,無明確分工(開發者和用戶),程序設計追求節省空間和編程技巧,無文檔資料(除程序清單外),主要用於科學計算。 [2]
軟體設計階段
軟體設計階段出現在1956年~1970年。此階段的特點是:硬體環境相對穩定,出現了「軟體作坊」的開發組
軟體工程
織形式。開始廣泛使用產品軟體(可購買),從而建立了軟體的概念。隨著計算機技術的發展和計算機應用的日益普及,軟體系統的規模越來越龐大,高級編程語言層出不窮,應用領域不斷拓寬,開發者和用戶有了明確的分工,社會對軟體的需求量劇增。但軟體開發技術沒有重大突破,軟體產品的質量不高,生產效率低下,從而導致了「軟體危機」的產生。
㈧ 軟體的發展歷史簡介
軟體業的歷史要追溯到50年前,它有半個世紀的發展。
第一代:早期專業服務公司,1949——1959。第一批獨立於賣主的軟體公司是為個人客戶開發定製解決方案的專業軟體服務公司。
在美國,這個發展過程是由幾個大軟體項目推進的,這些項目先是由美國政府,後來是由幾家美國大公司認購的。這些巨型項目為第一批獨立的美國軟體公司提供了重要的學習機會,並使美國在軟體業中成了早期的主角。
第二代:早期軟體產品公司,1959——1969。在第一批獨立軟體服務公司成立10年後,第一批軟體產品出現了。它們被專門開發出來重復銷售給一個以上的客戶。一種新型的軟體公司誕生了,這是一種要求不同管理技術的公司。
第三代:強大的企業解決方案提供商的出現,1969——1981 。
IBM給軟體與硬體分別定價的決定再次證實了軟體業的獨立性。在隨後的歲月里,越來越多的獨立軟體公司破土而出,為所有不同規模的企業提供新產品——可以看出它們超越了硬體廠商所提供的產品。最終,客戶開始從硬體公司以外的賣主那兒尋找它們的軟體來源並確定為其付錢。
第四代:客戶大眾市場軟體,1981——1994 。個人計算機的出現建立了一種全新的軟體:基於個人計算機的大眾市場提交了它們的產品。這呼喚著極其不同的營銷和銷售方法。
PARC為今日的PC確立了技術基礎:由施樂1969年創立的帕洛阿爾托研究中心(PARC),用突破性的革新,諸如黑白屏幕、位映射顯示、按鈕、激光列印機、字處理器和網路(最值得一提的是乙太網),為個人計算機革命奠定了基礎。
在PARC工作的科學家有些後來為蘋果公司及微軟工作,或者創立了他們自己的公司。
(8)軟體工程發展歷史擴展閱讀:
80年代和90年代的平台:在80年代和90年代,許多企業解決方案提供商從大型計算機專有的操作系統平台轉向諸如Unix(1973年)、IBM OS/2和微軟NT等新的平台。這個轉變通常使這些公司從使用它們自己所有的軟體中贏得了暴利。
Peoplesoft,一個新的未繼承遺產的企業解決方案公司:朝向更新的操作系統平台的轉變允許其他的公司進入這個市場。其中之一是Peoplesoft,由杜菲爾德(Dave Duffield)和莫里斯(Ken Morris)成立於1987年。
他們是Integral系統公司出來的兩個軟體工程師,看到了基於個人計算機的人力資源管理系統(HRMS)軟體的潛力。 Peoplesoft能夠在HRMS之下通過收購開發許多垂直功能市場(諸如健康保健和財務服務),使自己成了傳統企業解決方案提供商的一個值得認真對待的競爭者。
輔助合作者:大多數EPR公司嚴重依賴於合作者們以輔助和改制它們的產品。這些合作者們通常在一個大的系統安裝中獲得2至6倍於EPR賣家的收入。這樣,兩邊都從90年代初以來的巨大市場增長中有所獲益。
在EPR合作者的陣營里,特別是大會計公司,一種相當活躍的合並——集中化在80年代和90年代裡發生了。1987年KPMG的合並,以及更近的1998年普華/永道合並,似乎是全球范圍專業軟體服務工業化的一個信號。
㈨ 電腦軟體的發展史
電腦軟體的發展史
第一代軟體(1946-1953)
第一代軟體是用機器語言編寫的,機器語言是內置在計算機電路中的指令,由0和1組成。
第二代軟體(1954-1964)
當硬體變得更強大時,就需要更強大的軟體工具使計算機得到更有效地使用。匯編語言向正確的方向前進了一大步,但是程序員還是必須記住很多匯編指令。
第三代軟體(1965-1970)
在這個時期,由於用集成電路取代了晶體管,處理器的運算速度得到了大幅度的提高,處理器在等待運算器准備下一個作業時,無所事事。因此需要編寫一種程序,使所有計算機資源處於計算機的控制中,這種程序就是操作系統。
第四代軟體(1971-1989)
20世紀70年代出現了結構化程序設計技術,Pascal語言和Mola-2語言都是採用結構化程序設計規則制定的,Basic這種為第三代計算機設計的語言也被升級為具有結構化的版本,此外,還出現了靈活且功能強大的C語言。
第五代軟體(1990-至今)
第五代軟體中有三個著名事件:在計算機軟體業具有主導地位的Microsoft公司的崛起、面向對象的程序設計方法的出現以及萬維網(World Wide Web)的普及。
(9)軟體工程發展歷史擴展閱讀
依據許可方式的不同,大致可將軟體區分為幾類:
1、專屬軟體:
此類授權通常不允許用戶隨意的復制、研究、修改或散布該軟體。違反此類授權通常會有嚴重的法律責任。傳統的商業軟體公司會採用此類授權,例如微軟的Windows和辦公軟體。專屬軟體的源碼通常被公司視為私有財產而予以嚴密的保護。
2、自由軟體:
此類授權正好與專屬軟體相反,賦予用戶復制、研究、修改和散布該軟體的權利,並提供源碼供用戶自由使用,僅給予些許的其它限制。以Linux、Firefox 和OpenOffice 可做為此類軟體的代表。
3、共享軟體:
通常可免費的取得並使用其試用版,但在功能或使用期間上受到限制。開發者會鼓勵用戶付費以取得功能完整的商業版本。根據共享軟體作者的授權,用戶可以從各種渠道免費得到它的拷貝,也可以自由傳播它。
4、免費軟體:
可免費取得和轉載,但並不提供源碼,也無法修改。
5、公共軟體:
原作者已放棄權利,著作權過期,或作者已經不可考究的軟體。使用上無任何限制。