www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 技術(shù)學(xué)院 > 技術(shù)前線
[導(dǎo)讀]在計(jì)算機(jī)系統(tǒng)發(fā)展的早期時(shí)代(20世紀(jì)60年代中期以前),通用硬件相當(dāng)普遍﹐軟件卻是為每個(gè)具體應(yīng)用而專門編寫的。這時(shí)的軟件通常是規(guī)模較小的程序,編寫者和使用者往往是同一個(gè)(或同一組)人。這種個(gè)體化的軟件環(huán)境,使得軟件設(shè)計(jì)通常是在人們頭腦中進(jìn)行的一個(gè)隱含的過程,除了程序清單之外,沒有其他文檔資料保存下來。

迄今為止,計(jì)算機(jī)系統(tǒng)已經(jīng)經(jīng)歷了4個(gè)不同的發(fā)展階段,但是,人們?nèi)匀粵]有徹底擺脫“軟件危機(jī)”的困擾,軟件已經(jīng)成為限制計(jì)算機(jī)系統(tǒng)發(fā)展的瓶頸。

為了更有效地開發(fā)與維護(hù)軟件,軟件工作者在么0 世紀(jì)b0 平代口期1知隊(duì)真研究消除軟件危機(jī)的途徑,從而逐漸形成」一門新興的上.在子骨—開v軟件工程學(xué)(通常簡稱為“軟件工程”)。

一、軟件危機(jī)

在計(jì)算機(jī)系統(tǒng)發(fā)展的早期時(shí)代(20世紀(jì)60年代中期以前),通用硬件相當(dāng)普遍﹐軟件卻是為每個(gè)具體應(yīng)用而專門編寫的。這時(shí)的軟件通常是規(guī)模較小的程序,編寫者和使用者往往是同一個(gè)(或同一組)人。這種個(gè)體化的軟件環(huán)境,使得軟件設(shè)計(jì)通常是在人們頭腦中進(jìn)行的一個(gè)隱含的過程,除了程序清單之外,沒有其他文檔資料保存下來。

軟件危機(jī):在軟件的開發(fā)和維護(hù)過程中所遇到的一系列嚴(yán)重問題。

軟件危機(jī)主要包含兩方面的問題:

1、如何開發(fā)軟件,以滿足對軟件日益增長的需求

2、如何維護(hù)數(shù)量不斷膨脹的已有軟件。

從20世紀(jì)60年代中期到70年代中期是計(jì)算機(jī)系統(tǒng)發(fā)展的第二個(gè)時(shí)期,這個(gè)時(shí)期的一個(gè)重要特征是出現(xiàn)了“軟件作坊”,廣泛使用產(chǎn)品軟件。

但是,軟件作坊基本上仍然沿用早期形成的個(gè)體化軟件開發(fā)方法。隨著計(jì)算機(jī)應(yīng)用的日益普及,軟件數(shù)量急劇膨脹。在程序運(yùn)行時(shí)發(fā)現(xiàn)的錯(cuò)誤必須設(shè)法改正;用戶有了新的需求時(shí)必須相應(yīng)地修改程序;硬件或操作系統(tǒng)更新時(shí),通常需要修改程序以適應(yīng)新的環(huán)境。上述種種軟件維護(hù)工作,以令人吃驚的比例耗費(fèi)資源。更嚴(yán)重的是,許多程序的個(gè)體化特性使得它們最終成為不可維護(hù)的?!败浖C(jī)”就這樣開始出現(xiàn)了!1968年北大西洋公約組織的計(jì)算機(jī)科學(xué)家在西德召開國際會(huì)議,討論軟件危機(jī)問題,在這次會(huì)議上正式提出并使用了“軟件工程”這個(gè)名詞,一門新興的工程學(xué)科就此誕生了。

1 軟件危機(jī)的介紹

軟件危機(jī)是指在計(jì)算機(jī)軟件的開發(fā)和維護(hù)過程中所遇到的一系列重問題。這些問題絕不僅僅是不能正常運(yùn)行的軟件才具有的,實(shí)際上,乎所有軟件都不同程度地存在這些問題。

概括地說,軟件危機(jī)包含下述兩方面的問題:

(1)如何開發(fā)軟件,以滿足對軟件日益增長的需求;

(2)如何維護(hù)數(shù)量不斷膨脹的已有軟件。

鑒于軟件危機(jī)的長期性和癥狀不明顯的特征,近年來有人建議把軟件危機(jī)更名為“軟件蕭條( depression)”或“軟件困擾(affliction)”。不過“軟件危機(jī)”這個(gè)詞強(qiáng)調(diào)了問題的嚴(yán)重性,而且也已為絕大多數(shù)軟件工作者所熟悉,所以本書仍將沿用它。

具體地說,軟件危機(jī)主要有以下一些典型表現(xiàn):

(1))對軟件開發(fā)成本和進(jìn)度的估計(jì)常常很不準(zhǔn)確。實(shí)際成本比估計(jì)成本有可能高出一個(gè)數(shù)量級,實(shí)際進(jìn)度比預(yù)期進(jìn)度拖延幾個(gè)月甚至幾年的現(xiàn)象并不罕見。這種現(xiàn)象降低了軟件開發(fā)組織的信譽(yù)。而為了趕進(jìn)度和節(jié)約成本所采取的一些權(quán)宜之計(jì)又往往損害了軟件產(chǎn)品的質(zhì)量,從而不可避免地會(huì)引起用戶的不滿。

(2)用戶對“已完成的”軟件系統(tǒng)不滿意的現(xiàn)象經(jīng)常發(fā)生。軟件開發(fā)人員常常在對用戶要求只有模糊的了解,甚至對所要解決的問題還沒有確切認(rèn)識的情況下,就匆忙著手編寫程序。軟件開發(fā)人員和用戶之間的信息交流往往很不充分,“閉門造車”必然導(dǎo)致最終的產(chǎn)品不符合用戶的實(shí)際需要。

(3)軟件產(chǎn)品的質(zhì)量往往靠不住。軟件可靠性和質(zhì)量保證的確切的定量概念剛剛出現(xiàn)不久,軟件質(zhì)量保證技術(shù)(審查、復(fù)審、程序正確性證明和測試)還沒有堅(jiān)持不懈地應(yīng)用到軟件開發(fā)的全過程中,這些都導(dǎo)致軟件產(chǎn)品發(fā)生質(zhì)量問題。

(4)軟件常常是不可維護(hù)的。很多程序中的錯(cuò)誤是非常難改正的,實(shí)際上不可能使這些程序適應(yīng)新的硬件環(huán)境,也不能根據(jù)用戶的需要在原有程序中增加一些新的功能。“可重用的軟件”還是一個(gè)沒有完全做到的、正在努力追求的目標(biāo),人們?nèi)匀辉谥貜?fù)開發(fā)類似的或基本類似的軟件。

(5)軟件通常沒有適當(dāng)?shù)奈臋n資料。計(jì)算機(jī)軟件不僅僅是程序,還應(yīng)該有一整套文檔資料。這些文檔資料應(yīng)該是在軟件開發(fā)過程中產(chǎn)生出來的,而且應(yīng)該是“最新式的”(即和程序代碼完全一致的)。軟件開發(fā)組織的管理人員可以使用這些文檔資料作為“里程碑”,來管理和評價(jià)軟件開發(fā)工程的進(jìn)展?fàn)顩r;軟件開發(fā)人員可以利用它們作為通信工具,在軟件開發(fā)過程中準(zhǔn)確地交流信息;對于軟件維護(hù)人員而言,這些文檔資料更是必不可少的。缺乏必要的文檔資料或者文檔資料不合格,必然給軟件開發(fā)和維護(hù)帶來許多嚴(yán)重的困難和問題。

(6)軟件成本在計(jì)算機(jī)系統(tǒng)總成本中所占的比例逐年上升。由于微電子學(xué)技術(shù)的進(jìn)步和生產(chǎn)自動(dòng)化程度的不斷提高,硬件成本逐年下降,然而軟件開發(fā)需要大量人力,軟件成本隨著通貨膨脹以及軟件規(guī)模和數(shù)量的不斷擴(kuò)大而持續(xù)上升。美國在1985年軟件成本大約已占計(jì)算機(jī)系統(tǒng)總成本的90%。

(7)軟件開發(fā)生產(chǎn)率提高的速度﹐遠(yuǎn)遠(yuǎn)跟不上計(jì)算機(jī)應(yīng)用迅速普及深入的趨勢。軟件產(chǎn)品“供不應(yīng)求”的現(xiàn)象使人類不能充分利用現(xiàn)代計(jì)算機(jī)硬件提供的巨大潛力。

以上列舉的僅僅是軟件危機(jī)的一些明顯的表現(xiàn),與軟件開發(fā)和維護(hù)有關(guān)的問題遠(yuǎn)遠(yuǎn)不止這些。

2產(chǎn)生軟件危機(jī)的原因

在軟件開發(fā)和維護(hù)的過程中存在這么多嚴(yán)重問題,一方面與軟件本身的特點(diǎn)有關(guān),另一方面也和軟件開發(fā)與維護(hù)的方法不正確有關(guān)。

軟件不同于硬件,它是計(jì)算機(jī)系統(tǒng)中的邏輯部件而不是物理部件。由于軟件缺乏“可見性”,在寫出程序代碼并在計(jì)算機(jī)上試運(yùn)行之前,軟件開發(fā)過程的進(jìn)展情況較難衡量﹐軟件的質(zhì)量也較難評價(jià),因此,管理和控制軟件開發(fā)過程相當(dāng)困難。此外,軟件在運(yùn)行過程中不會(huì)因?yàn)槭褂脮r(shí)間過長而被“用壞”,如果運(yùn)行中發(fā)現(xiàn)了錯(cuò)誤﹐很可能是遇到了一個(gè)在開發(fā)時(shí)期引入的在測試階段沒能檢測出來的錯(cuò)誤。因此,軟件維護(hù)通常意味著改正或修改原來的設(shè)計(jì),這就在客觀上使得軟件較難維護(hù)。

軟件不同于一般程序,它的一個(gè)顯著特點(diǎn)是規(guī)模龐大,而且程序復(fù)雜性將隨著程序規(guī)模的增加而呈指數(shù)上升。為了在預(yù)定時(shí)間內(nèi)開發(fā)出規(guī)模龐大的軟件,必須由許多人分工合作,然而,如何保證每個(gè)人完成的工作合在一起確實(shí)能構(gòu)成一個(gè)高質(zhì)量的大型軟件系統(tǒng),更是一個(gè)極端復(fù)雜困難的問題,這不僅涉及許多技術(shù)問題,諸如分析方法、設(shè)計(jì)方法、形式說明方法、版本控制等,更重要的是必須有嚴(yán)格而科學(xué)的管理。

軟件本身獨(dú)有的特點(diǎn)確實(shí)給開發(fā)和維護(hù)帶來一些客觀困難,但是人們在開發(fā)和使用計(jì)算機(jī)系統(tǒng)的長期實(shí)踐中,也確實(shí)積累和總結(jié)出了許多成功的經(jīng)驗(yàn)。如果堅(jiān)持不懈地使用經(jīng)過實(shí)踐考驗(yàn)證明是正確的方法,許多困難是完全可以克服的,過去也確實(shí)有一些成功的范例。但是,目前相當(dāng)多的軟件專業(yè)人員對軟件開發(fā)和維護(hù)還有不少糊涂觀念,在實(shí)踐過程中或多或少地采用了錯(cuò)誤的方法和技術(shù),這可能是使軟件問題發(fā)展成軟件危機(jī)的主要原因。

與軟件開發(fā)和維護(hù)有關(guān)的許多錯(cuò)誤認(rèn)識和做法的形成,可以歸因于在計(jì)算機(jī)系統(tǒng)發(fā)展的早期階段軟件開發(fā)的個(gè)體化特點(diǎn)。錯(cuò)誤的認(rèn)識和做法主要表現(xiàn)為忽視軟件需求分析的重要性,認(rèn)為軟件開發(fā)就是寫程序并設(shè)法使之運(yùn)行,輕視軟件維護(hù)等。

事實(shí)上,對用戶要求沒有完整準(zhǔn)確的認(rèn)識就匆忙著手編寫程序是許多軟件開發(fā)工程失敗的主要原因之一。只有用戶才真正了解他們自己的需要,但是許多用戶在開始時(shí)并不能準(zhǔn)確具體地?cái)⑹鏊麄兊男枰o軟件開發(fā)人員需要做大量深入細(xì)致的調(diào)查研究工作,反復(fù)多次地和用戶交流信息,才能真正全面、準(zhǔn)確、具體地了解用戶的要求。對問題和目標(biāo)的正確認(rèn)識是解決任何問題的前提和出發(fā)點(diǎn)﹐軟件開發(fā)同樣也不例外。急于求成,倉促上陣,對用戶要求沒有正確認(rèn)識就匆忙著手編寫程序﹐這就如同不打好地基就蓋高樓一樣,最終必然垮臺。事實(shí)上,越早開始寫程序,完成它所需要用的時(shí)間往往越長。

一個(gè)軟件從定義、開發(fā),使用和維護(hù),直到最終被廢棄,要經(jīng)歷一個(gè)漫長的時(shí)期,這就如同一個(gè)人要經(jīng)過嬰兒、兒童、青年、中年和老年,直到最終死亡的漫長時(shí)期一樣。通常把軟件經(jīng)歷的這個(gè)漫長的時(shí)期稱為生命周期。

軟件開發(fā)最初的工作應(yīng)是問題定義,也就是確定要求解決的問題是什么;然后要進(jìn)行可行性研究,決定該問題是否存在一個(gè)可行的解決辦法;接下來應(yīng)該進(jìn)行需求分析,也就是深入具體地了解用戶的要求,在所要開發(fā)的系統(tǒng)(不妨稱之為目標(biāo)系統(tǒng))必須做什么這個(gè)問題上和用戶取得完全一致的看法。經(jīng)過上述軟件定義時(shí)期的準(zhǔn)備工作才能進(jìn)入開發(fā)時(shí)期,而在開發(fā)時(shí)期,首先需要對軟件進(jìn)行設(shè)計(jì)(通常又分為概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)兩個(gè)階段),然后才能進(jìn)入編寫程序的階段,程序編寫完之后還必須經(jīng)過大量的測試工作(需要的工作量通常占軟件開發(fā)全部工作量的40%~50%)才能最終交付使用。所以,編寫程序只是軟件開發(fā)過程中的一個(gè)階段,而且在典型的軟件開發(fā)工程中,編寫程序所需的工作量只占軟件開發(fā)全部工作量的10%~20%。

另一方面還必須認(rèn)識到程序只是完整的軟件產(chǎn)品的一個(gè)組成部分,在上述軟件生命周期的每個(gè)階段都要得出最終產(chǎn)品的一個(gè)或幾個(gè)組成部分(這些組成部分通常以文檔資料的形式存在)。也就是說,一個(gè)軟件產(chǎn)品必須由一個(gè)完整的配置組成,軟件配置主要包括程序、文檔和數(shù)據(jù)等成分。必須清除只重視程序而忽視軟件配置其余成分的糊涂觀念。

做好軟件定義時(shí)期的工作,是降低軟件成本提高軟件質(zhì)量的關(guān)鍵。如果軟件開發(fā)人員在定義時(shí)期沒有正確全面地理解用戶需求,直到測試階段或軟件交付使用后才發(fā)現(xiàn)“已完成的”軟件不完全符合用戶的需要,這時(shí)再修改就為時(shí)已晚了。

嚴(yán)重的問題是,在軟件開發(fā)的不同階段進(jìn)行修改需要付出的代價(jià)是很不相同的,在早期引入變動(dòng),涉及的面較少,因而代價(jià)也比較低;而在開發(fā)的中期,軟件配置的許多成分已經(jīng)完成,引入一個(gè)變動(dòng)要對所有已完成的配置成分都做相應(yīng)的修改,不僅工作量大,而且邏輯上也更復(fù)雜,因此付出的代價(jià)劇增;在軟件“已經(jīng)完成”時(shí)再引入變動(dòng),當(dāng)然需要付出更高的代價(jià)。根據(jù)美國一些軟件公司的統(tǒng)計(jì)資料,在后期引入一個(gè)變動(dòng)比在早期引入相同變動(dòng)所需付出的代價(jià)高2~3個(gè)數(shù)量級。

通過上面的論述不難認(rèn)識到,輕視維護(hù)是一個(gè)最大的錯(cuò)誤。許多軟件產(chǎn)品的使用壽命長達(dá)10年甚至20年,在這樣漫長的時(shí)期中不僅必須改正使用過程中發(fā)現(xiàn)的每一個(gè)潛伏的錯(cuò)誤,而且當(dāng)環(huán)境變化時(shí)(例如硬件或系統(tǒng)軟件更新?lián)Q代)還必須相應(yīng)地修改軟件以適應(yīng)新的環(huán)境,特別是必須經(jīng)常改進(jìn)或擴(kuò)充原來的軟件以滿足用戶不斷變化的需要。所有這些改動(dòng)都屬于維護(hù)工作,而且是在軟件已經(jīng)完成之后進(jìn)行的,因此維護(hù)是極端艱巨復(fù)雜的工作,需要花費(fèi)很大代價(jià)。統(tǒng)計(jì)數(shù)據(jù)表明,實(shí)際上用于軟件維護(hù)的費(fèi)用占軟件總費(fèi)用的55%~70%。軟件工程學(xué)的一個(gè)重要目標(biāo)就是提高軟件的可維護(hù)性,減少軟件維護(hù)的代價(jià)。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

上海2025年8月26日 /美通社/ -- 在全球數(shù)字經(jīng)濟(jì)加速演進(jìn)的時(shí)代浪潮中,海量數(shù)據(jù)資源正成為企業(yè)發(fā)展的雙刃劍。超66%的企業(yè)面臨"數(shù)據(jù)沉睡"危機(jī)——分散于供應(yīng)鏈、財(cái)務(wù)、客戶運(yùn)營等數(shù)十個(gè)系統(tǒng)的業(yè)務(wù)...

關(guān)鍵字: AI 模型 軟件 數(shù)據(jù)分析

加快開發(fā)進(jìn)程;提升質(zhì)量、安全性、性能與成本效益 利用耐世特在底盤領(lǐng)域的專業(yè)知識和線控技術(shù)產(chǎn)品組合 美國密西根州奧本山2025年8月11日 /美通社/ --?耐...

關(guān)鍵字: MOTION 軟件 運(yùn)動(dòng)控制 NI

從自然汲取,向未來創(chuàng)造 上海2025年8月8日 /美通社/ -- 2025 世界機(jī)器人大會(huì)將于8月8-12日在北京亦創(chuàng)國際會(huì)展中心拉開帷幕,F(xiàn)esto(A112展位­)將以"從自然汲取,向未來創(chuàng)造&q...

關(guān)鍵字: FESTO 機(jī)器人 BSP 軟件

引言:穿越變革浪潮,迎接智能金融時(shí)代 上海2025年7月28日 /美通社/ -- 在全球科技變革的浪潮中,生成式AI正加速驅(qū)動(dòng)各行業(yè)變革,金融行業(yè)尤為顯著。在強(qiáng)監(jiān)管與用戶需求升級的雙重壓力,行業(yè)亟需重構(gòu)服務(wù)模...

關(guān)鍵字: 軟件 生成式AI 模型 數(shù)字化

寧波2025年7月28日 /美通社/ -- 日前,在第四屆寧波市專利創(chuàng)新大賽的聚光燈下,中之杰智能的創(chuàng)新技術(shù)"一種基于電子周轉(zhuǎn)箱的生產(chǎn)管理方法及系統(tǒng)"強(qiáng)勢斬獲專利優(yōu)秀獎(jiǎng)。這枚沉甸甸的獎(jiǎng)?wù)卤澈?..

關(guān)鍵字: 軟件 電子 智能工廠 BSP

杭州2025年7月28日 /美通社/ -- 近日,大華股份與北京北大軟件工程股份有限公司(以下簡稱"北大軟件")簽署戰(zhàn)略合作協(xié)議。雙方將重點(diǎn)圍繞長江禁漁等領(lǐng)域,發(fā)揮各自在產(chǎn)品、技術(shù)、平臺等方面的經(jīng)驗(yàn)和...

關(guān)鍵字: 軟件 數(shù)字化

Zephyr開源項(xiàng)目由Linux基金會(huì)維護(hù),是一個(gè)針對資源受限的嵌入式設(shè)備優(yōu)化的小型、可縮放、多體系結(jié)構(gòu)實(shí)時(shí)操作系統(tǒng)(RTOS)。近年來,Zephyr RTOS在嵌入式開發(fā)中的采用度逐步增加,支持的開發(fā)板和傳感器不斷增加...

關(guān)鍵字: 嵌入式系統(tǒng) 軟件開發(fā) 實(shí)時(shí)操作系統(tǒng) Zephyr項(xiàng)目

在嵌入式系統(tǒng)和高可靠性軟件開發(fā)中,靜態(tài)代碼分析已成為預(yù)防缺陷的關(guān)鍵手段。PC-Lint(現(xiàn)更名為Gimpel Lint)作為行業(yè)領(lǐng)先的C/C++靜態(tài)分析工具,能夠檢測出編譯器難以發(fā)現(xiàn)的隱式錯(cuò)誤和編碼規(guī)范違規(guī)。本文通過實(shí)戰(zhàn)...

關(guān)鍵字: PC-Lint 軟件開發(fā) 靜態(tài)代碼

成都 2025年7月16日 /美通社/ -- 由立嘉會(huì)議展覽有限公司主辦的"2025第四屆成渝地區(qū)裝備制造業(yè)博覽會(huì)"將于9月11日至13日在成都世紀(jì)城新國際會(huì)展中心盛大舉辦。本屆博覽會(huì)以&...

關(guān)鍵字: BSP 軟件 供應(yīng)鏈 智能制造

上海 2025年7月14日 /美通社/ -- 近日,微創(chuàng)軟件與全球領(lǐng)先的工業(yè)級綠色智能系統(tǒng)解決方案提供商——上海電氣集團(tuán)股份有限公司旗下直屬子公司上海電氣數(shù)字科技有限公司,以下簡稱"電氣數(shù)科"宣布深...

關(guān)鍵字: 電氣 軟件 數(shù)字化 BSP
關(guān)閉