




下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
軟件危機(jī)的成因及解決方案
軟件危機(jī)是指在計(jì)算機(jī)軟件的開發(fā)和維護(hù)中面臨的一些嚴(yán)重問(wèn)題。概括地說(shuō),主要包括兩個(gè)方面的問(wèn)題:一是如何開發(fā)軟件,怎樣滿足對(duì)軟件的日益增長(zhǎng)的需求;二是如何維護(hù)數(shù)量不斷膨脹的已有軟件。目前使用的計(jì)算機(jī)仍然沿用馮?諾依曼計(jì)算機(jī)思想,主要適于數(shù)值計(jì)算,而大量的非數(shù)值計(jì)算只好借助軟件的幫助轉(zhuǎn)換成運(yùn)算和邏輯判斷,這就使得軟件非常復(fù)雜龐大。那么從硬件著手,研究出能夠推理和運(yùn)算的計(jì)算機(jī),軟件危機(jī)會(huì)有根本性的緩解,這也是人們正在積極研究的第五代計(jì)算機(jī)的目標(biāo)之一。但是,在計(jì)算機(jī)體系結(jié)構(gòu)和功能沒有根本性變革的情況下,必須尋找解決軟件危機(jī)的途徑。因此,為了解決軟件危機(jī),采取一定的技術(shù)措施作保證,如軟件設(shè)計(jì)方法和軟件工具。軟件設(shè)計(jì)是一項(xiàng)十分困難的任務(wù),對(duì)軟件設(shè)計(jì)方法的研究有助于人們更好地開發(fā)軟件。1利用原采方法目前現(xiàn)有軟件設(shè)計(jì)方法有結(jié)構(gòu)化分析和設(shè)計(jì)、原型法、JSP/JSD、形式化方法、OOA方法等。下面對(duì)現(xiàn)有軟件設(shè)計(jì)方法從基本思想、基本步驟、優(yōu)缺點(diǎn)等方面進(jìn)行分析比較。1.1問(wèn)題解的建立這是最常用的軟件設(shè)計(jì)方法,它的基本思想是自頂向下按功能的不同劃分不同的子系統(tǒng),然后對(duì)每個(gè)子系統(tǒng)按照逐步求精的方法求得問(wèn)題解,將軟件開發(fā)過(guò)程看作是軟件生命周期,建立的是瀑布模型。其基本步驟為:分析→設(shè)計(jì)→編碼→測(cè)試→運(yùn)行/維護(hù)。這種方法的主要優(yōu)點(diǎn)是應(yīng)用時(shí)間長(zhǎng)、簡(jiǎn)單、直觀、易于接受,并且已有了一定的應(yīng)用基礎(chǔ)并開辟了應(yīng)用市場(chǎng)。局限性主要在于當(dāng)功能經(jīng)常變化,難于適應(yīng)變化要求;后期發(fā)現(xiàn)的錯(cuò)誤維護(hù)代價(jià)太高;不支持功能復(fù)用,造成大量的代碼冗余。1.2簡(jiǎn)化模型開發(fā)原型法分為兩種,漸增型和示例型。漸增型是設(shè)計(jì)的每一步都是最終產(chǎn)品的一部分。而示例型則是快速開發(fā)出的運(yùn)行系統(tǒng)只是一個(gè)示例而已。原型法的基本思想是借助程序自動(dòng)生成環(huán)境或軟件工程支持環(huán)境,構(gòu)造一個(gè)實(shí)際系統(tǒng)簡(jiǎn)化的模型,供開發(fā)人員和用戶交流,使設(shè)計(jì)具有靈活性,其要點(diǎn)是,第一要快,否則便失去意義;第二原型要能運(yùn)轉(zhuǎn)起來(lái),用戶可以觀察到效果,提供修改意見。開發(fā)的基本步驟是首先簡(jiǎn)化系統(tǒng),其次實(shí)現(xiàn)原型,然后經(jīng)過(guò)反復(fù)修改,最終真正實(shí)現(xiàn)。這種方法適合于那些軟件人員和用戶對(duì)系統(tǒng)服務(wù)需求的理解模糊不清的情況,允許用戶在看到原型后改變?cè)瓉?lái)的要求。但是原型化方法必須有一定的軟件工具和開發(fā)環(huán)境作為支撐的條件,因此原型化方法往往受到軟件工具和開發(fā)環(huán)境的限制。1.3楊樹系統(tǒng)開發(fā)方法(1)結(jié)構(gòu)的層次結(jié)構(gòu)JSP(JacksonStructuredProgramming)是杰克遜結(jié)構(gòu)程序設(shè)計(jì)方法,是一種典型的面向數(shù)據(jù)結(jié)構(gòu)的分析和設(shè)計(jì)的方法。其主要設(shè)計(jì)思想是按輸入、輸出和內(nèi)部信息的數(shù)據(jù)結(jié)構(gòu)進(jìn)行軟件設(shè)計(jì)的,把數(shù)據(jù)結(jié)構(gòu)的描述變換成程序結(jié)構(gòu)的描述,設(shè)計(jì)出反映數(shù)據(jù)結(jié)構(gòu)的程序結(jié)構(gòu)。JSP方法將問(wèn)題分解為順序、選擇和重復(fù)三種基本結(jié)構(gòu)形式表示的層次結(jié)構(gòu)如圖1所示。這樣對(duì)一個(gè)要解決的問(wèn)題,總是要把解的結(jié)構(gòu)設(shè)計(jì)成同問(wèn)題的結(jié)構(gòu)一樣,使程序既容易理解,又容易修改以滿足將來(lái)問(wèn)題的變化。JSP方法首先考察問(wèn)題的環(huán)境,分析所要處理的數(shù)據(jù),作出數(shù)據(jù)結(jié)構(gòu)圖及圖示邏輯;再以數(shù)據(jù)結(jié)構(gòu)為基本點(diǎn)形成程序結(jié)構(gòu);最后列出進(jìn)行處理所需要的基本操作,并把這些操作分配給程序結(jié)構(gòu)中的適當(dāng)部分。JSP方法的優(yōu)點(diǎn)是客觀,不依賴于設(shè)計(jì)者自己的創(chuàng)造和經(jīng)驗(yàn),不同的設(shè)計(jì)者可以設(shè)計(jì)出同樣的解。簡(jiǎn)單易學(xué),用JSP圖示邏輯可以很容易地導(dǎo)出Cobol程序,目前已研制出從JSP方法設(shè)計(jì)的結(jié)構(gòu)自動(dòng)導(dǎo)出Cobol程序的工具。雖然JSP方法簡(jiǎn)單易學(xué),步驟規(guī)范,但也存在著一些局限性,最大的不足是當(dāng)軟件系統(tǒng)的規(guī)模龐大時(shí),輸入和輸出之間就會(huì)出現(xiàn)大量復(fù)雜的信息,JSP方法難于對(duì)付的結(jié)構(gòu)沖突問(wèn)題??梢岳弥虚g文件解決沖突,但它明顯降低了功效,而且從概念上說(shuō)中間文件也是不必要的;隨著軟件系統(tǒng)規(guī)模的增大,且結(jié)構(gòu)沖突的可能性及解決沖突的算法復(fù)雜性亦隨之增大。因此JSP方法只適用于小型程序的開發(fā),只是一種程序設(shè)計(jì)方法,并不適用于解決大型軟件的開發(fā)問(wèn)題。(2)數(shù)值模擬wpJSD(JacksonSystemDeveloping)是杰克遜系統(tǒng)開發(fā)方法,它以活動(dòng)(即事件)為中心,一連串活動(dòng)的順序組合構(gòu)成進(jìn)程,系統(tǒng)模型抽象為一組以通信方式互相聯(lián)系的進(jìn)程。JSD方法的基本思想是仿真并描述客觀世界,然后添加輸出功能,最后實(shí)現(xiàn)系統(tǒng)的轉(zhuǎn)換。它的基本步驟可分為六步,一是實(shí)體動(dòng)作分析,從問(wèn)題的描述中,提取軟件系統(tǒng)要產(chǎn)生和運(yùn)用的實(shí)體(人、物或組織),以及現(xiàn)實(shí)世界作用于實(shí)體上的動(dòng)作(事件);二是實(shí)體結(jié)構(gòu)分析,把作用于實(shí)體的動(dòng)作或由實(shí)體執(zhí)行的動(dòng)作,按時(shí)間發(fā)生的先后次序排序,構(gòu)成進(jìn)程,并用一個(gè)層次的Jackson結(jié)構(gòu)圖表示;三是定義初始模型步,把實(shí)體和動(dòng)作表示成一個(gè)進(jìn)程模型,定義模型與現(xiàn)實(shí)世界的聯(lián)系。模型系統(tǒng)的規(guī)格說(shuō)明可用系統(tǒng)規(guī)格說(shuō)明圖來(lái)表示;四是功能描述,說(shuō)明與已定義的動(dòng)作相對(duì)應(yīng)的功能,為已定義的動(dòng)作加入功能函數(shù);五是決定系統(tǒng)時(shí)間特性,對(duì)進(jìn)程加入時(shí)間因素,對(duì)進(jìn)程調(diào)度特性進(jìn)行評(píng)價(jià)和說(shuō)明;六是實(shí)現(xiàn),設(shè)計(jì)組成系統(tǒng)的硬件和軟件,實(shí)現(xiàn)系統(tǒng)的原型。前三步屬于需求分析階段,后三步屬于設(shè)計(jì)階段。JSD方法開創(chuàng)性地進(jìn)行了客觀世界及其同軟件間關(guān)系的研究;明確了軟件系統(tǒng)說(shuō)明決策同軟件系統(tǒng)實(shí)現(xiàn)決策的界限;做出容易的決策應(yīng)該先于困難的決策;應(yīng)當(dāng)盡可能推遲最容易導(dǎo)致錯(cuò)誤的決策;含蓄的決策應(yīng)當(dāng)避免,不應(yīng)有隱含的約定存在;如果一個(gè)決策易于出錯(cuò),應(yīng)當(dāng)盡早證實(shí)它的正確性;應(yīng)當(dāng)盡可能使決策之間沒有依賴關(guān)系,使它們互不相關(guān)。其局限性是客觀世界及其同軟件間關(guān)系的認(rèn)識(shí)不完整;軟件系統(tǒng)實(shí)現(xiàn)結(jié)構(gòu)過(guò)于復(fù)雜;軟件說(shuō)明結(jié)構(gòu)的描述技術(shù)不恰當(dāng);JSD中并不包含諸如選題,計(jì)劃管理,代價(jià)/收益分析等內(nèi)容,也不包含實(shí)施環(huán)境問(wèn)題的研究?jī)?nèi)容,這在一定程度上影響了它的推廣應(yīng)用;JSD在實(shí)現(xiàn)階段所做的變換十分費(fèi)勁,以致利用人的智力進(jìn)行變換難以保證其有效性和可靠性,且變換的選擇又過(guò)于復(fù)雜,目前仍無(wú)法用計(jì)算機(jī)自動(dòng)實(shí)現(xiàn)。1.4基于數(shù)學(xué)的形式語(yǔ)義學(xué)模型形式化方法(formalmethods)是保證計(jì)算機(jī)系統(tǒng)正確性的一種重要手段。這類方法用抽象的數(shù)學(xué)手段刻畫計(jì)算機(jī)軟硬件的結(jié)構(gòu)及其性質(zhì),并通過(guò)形式證明等途徑來(lái)提高系統(tǒng)的可靠性。在使用形式化方法時(shí),形式化規(guī)格說(shuō)明(formalspecification)起著重要的作用。它的基本思想是,對(duì)系統(tǒng)建立一個(gè)數(shù)學(xué)模型,研究提供一種基于數(shù)學(xué)的形式語(yǔ)義學(xué)的軟件規(guī)格說(shuō)明語(yǔ)言,用這種語(yǔ)言嚴(yán)格的描述所開發(fā)的軟件功能,并由計(jì)算機(jī)完全機(jī)械地將它轉(zhuǎn)換成可執(zhí)行代碼。其基本步驟是定義形式化的規(guī)格說(shuō)明語(yǔ)言;對(duì)形式化的規(guī)格說(shuō)明語(yǔ)言進(jìn)行實(shí)現(xiàn)轉(zhuǎn)換,即形式化語(yǔ)言可由計(jì)算機(jī)自動(dòng)處理,可利用相應(yīng)的軟件工具對(duì)規(guī)格說(shuō)明進(jìn)行分析、查錯(cuò)和驗(yàn)證。形式化方法是以一定的數(shù)學(xué)概念和理論作基礎(chǔ)來(lái)指導(dǎo)軟件的開發(fā)的,所以具有嚴(yán)格、規(guī)范的優(yōu)點(diǎn)。同時(shí)也因?yàn)橐休^強(qiáng)的數(shù)學(xué)基礎(chǔ),不能被普遍接受,形式化規(guī)格說(shuō)明的理論和技術(shù)尚處于研究階段,未成熟到工程應(yīng)用的程度,因此該方法不太實(shí)用。1.5軟件開發(fā)過(guò)程的opd實(shí)現(xiàn)軟件工程中的面向?qū)ο驩O(Object-Oriented)方法包括面向?qū)ο蠓治鯫OA(Object-OrientedAnalysis)、面向?qū)ο笤O(shè)計(jì)OOD(Object-orientedDesign)和面向?qū)ο蟪绦蛟O(shè)計(jì)OOP(Object-orientedProgramming),OO方法的發(fā)展過(guò)程本身是需求驅(qū)動(dòng)的自底向上的發(fā)展過(guò)程,即先有OOP的產(chǎn)生,再在OOP的基礎(chǔ)上進(jìn)一步發(fā)展了OOD和OOA。由OOA,OOD,OOP構(gòu)成的軟件開發(fā)過(guò)程的OO方法覆蓋了軟件生命周期的分析、設(shè)計(jì)和實(shí)現(xiàn)等各個(gè)階段,成為指導(dǎo)軟件開發(fā)的全面的、完整的方法。隨著面向?qū)ο蠹夹g(shù)的快速發(fā)展,面向?qū)ο蟮母鞣N軟件開發(fā)方法正在相互融合,并進(jìn)入實(shí)施應(yīng)用階段,從而有力地促使了這一方法逐步走向成熟。OOA基本思想是認(rèn)識(shí)客觀對(duì)象及其屬性,認(rèn)識(shí)對(duì)象的整體及組成部分和對(duì)象類的形成及其區(qū)分。其基本步驟有:標(biāo)識(shí)對(duì)象;標(biāo)識(shí)結(jié)構(gòu);標(biāo)識(shí)主題;定義屬性;定義服務(wù)。主要特點(diǎn)是過(guò)程抽象;數(shù)據(jù)抽象;信息隱蔽;繼承。OOD基本思想是根據(jù)OOA的結(jié)構(gòu),對(duì)系統(tǒng)進(jìn)一步細(xì)化。其基本步驟有:設(shè)計(jì)問(wèn)題域部分;設(shè)計(jì)人機(jī)交互部分;設(shè)計(jì)任務(wù)管理部分;設(shè)計(jì)數(shù)據(jù)管理部分。OO方法的主要優(yōu)點(diǎn)是,歸納和演繹思想的綜合體現(xiàn);問(wèn)題空間和解空間的同構(gòu);繼承機(jī)制的引入,很好的支持了重用性;對(duì)象機(jī)制有力地支持了信息隱藏的概念;多態(tài)性、持久性和動(dòng)態(tài)聯(lián)編對(duì)程序設(shè)計(jì)起到了很好的作用。OO方法從計(jì)算機(jī)角度看有它巨大的優(yōu)勢(shì),但OO方法在建立客觀系統(tǒng)模型方面有不足之處。OOA一開始就有很多計(jì)算機(jī)方面的術(shù)語(yǔ)和概念不容易被一般用戶或參與應(yīng)用軟件開發(fā)的業(yè)務(wù)人員所了解,即使了解了,也很難正確使用,為真正掌握這些概念需要有一定的計(jì)算機(jī)背景知識(shí),所以O(shè)OA在應(yīng)用軟件開發(fā)中,建立客戶系統(tǒng)的描述方面不能被普遍接受和推廣使用。2軟件復(fù)用的未來(lái)趨勢(shì)軟件復(fù)用的思想首次提出是在1968年NATO軟件工程會(huì)議上,貝爾實(shí)驗(yàn)室的DongMcIlroy提出了基于編碼重用的軟件開發(fā)。1983年Freeman又進(jìn)一步拓廣了軟件復(fù)用的概念,指出了可復(fù)用的構(gòu)件不僅可以是源代碼,還可以是模塊、設(shè)計(jì)結(jié)構(gòu)、規(guī)格說(shuō)明和文檔等,而且不僅可按組裝方式復(fù)用,還可按模式復(fù)用。近幾年來(lái),人們開始認(rèn)識(shí)到,軟件復(fù)用是一條實(shí)現(xiàn)軟件工業(yè)化現(xiàn)實(shí)可行的途徑,也是解決軟件危機(jī)的重要途徑。對(duì)軟件復(fù)用技術(shù)的研究已成為軟件工程領(lǐng)域中的一個(gè)主攻方向。OO中的對(duì)象/類也可被重用,但對(duì)象/類是源代碼級(jí)的,它們的重用會(huì)受到編程語(yǔ)言的限制,由于對(duì)象沒有標(biāo)準(zhǔn)的對(duì)外接口,不能使用組裝技術(shù)來(lái)生成應(yīng)用程序。隨著OO方法理論體系的完善,軟件復(fù)用的研究已經(jīng)逐漸集中到了軟件構(gòu)件技術(shù)上。構(gòu)件技術(shù)是一種更高層次的對(duì)象技術(shù),它是獨(dú)立于語(yǔ)言和面向應(yīng)用程序,它只規(guī)定構(gòu)件的外在表現(xiàn)形式,而不關(guān)心其內(nèi)部實(shí)現(xiàn)方法,它即可用OO編程語(yǔ)言實(shí)現(xiàn),也可用非OO的過(guò)程語(yǔ)言實(shí)現(xiàn)。只要遵循構(gòu)件技術(shù)的規(guī)范,各個(gè)軟件開發(fā)商就可以用自己方便的語(yǔ)言去實(shí)現(xiàn)可被重用的構(gòu)件。構(gòu)件技術(shù)改變了軟件生產(chǎn)方式,將軟件生產(chǎn)劃分為構(gòu)件生產(chǎn)和構(gòu)件集成兩個(gè)方面。開發(fā)者專心于構(gòu)件的生產(chǎn),集成者充分利用構(gòu)件,專心于應(yīng)用。這樣的生產(chǎn)模式具有如下優(yōu)點(diǎn):(1)有利于更合理地組織和使用人力和財(cái)力資源;(2)考慮到跨越軟件開發(fā)組織的資源和信息共享;(3)提高了軟件復(fù)用程度,從而提高軟件生產(chǎn)率和軟件質(zhì)量。軟構(gòu)件技術(shù)給軟件業(yè)帶來(lái)很大的影響。系統(tǒng)集成商不再向以前那樣大量的做程序的編碼工作,主要的工作將是評(píng)估和選定現(xiàn)有的軟構(gòu)件,組裝成所需的系統(tǒng)。這樣有助于形成明確分工又全球共享的開放式軟件社會(huì)。軟構(gòu)件代表了新一代軟件技術(shù)的發(fā)展方向。當(dāng)前對(duì)軟件復(fù)用的研究涉及面較寬,包括構(gòu)件的設(shè)計(jì)、生產(chǎn)、獲取、構(gòu)件的描述和規(guī)范、構(gòu)件的再次工程、構(gòu)件的組織和查詢、構(gòu)件的復(fù)合組裝、基于構(gòu)件的價(jià)格分析、體系結(jié)構(gòu)、框架、模式等等。目前,在構(gòu)件模型方面有3C、REBOOT、CORBRA、COM等,在構(gòu)件描述語(yǔ)言及復(fù)合方面有LIL、CDL、CIDER、RESOLVE等,在復(fù)用支持環(huán)境方面有REBOOT、RESOFT等。在國(guó)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 農(nóng)村材料合同范本
- 動(dòng)產(chǎn)汽車互易合同范本
- 企業(yè)投資期權(quán)合同范本
- 2024年徐州市凱信電子設(shè)備有限公司招聘考試真題
- 勞動(dòng)關(guān)系合同范本
- 2024年西安醫(yī)學(xué)院第一附屬醫(yī)院灃東醫(yī)院招聘筆試真題
- 2024年臺(tái)州仙居縣人民醫(yī)院醫(yī)共體招聘工作人員筆試真題
- 2024鞍鋼資本金融管理業(yè)務(wù)人才招聘4人筆試參考題庫(kù)附帶答案詳解
- 第16課《誡子書》教學(xué)設(shè)計(jì) 2024-2025學(xué)年統(tǒng)編版語(yǔ)文七年級(jí)上冊(cè)
- 出售環(huán)衛(wèi)用車合同范本
- 2025年湖南城建職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)新版
- 《中國(guó)古代文學(xué)史及作品選II》教學(xué)大綱
- 代工生產(chǎn)合同范本
- 瑜伽課程合同轉(zhuǎn)讓協(xié)議書范本
- 個(gè)人經(jīng)營(yíng)性貸款合同模板
- 人教版英語(yǔ)2025七年級(jí)下冊(cè) Unit1Animal Friends教師版 語(yǔ)法講解+練習(xí)
- DeepSeek新手入門教程
- 課件:《教育強(qiáng)國(guó)建設(shè)規(guī)劃綱要(2024-2035年)》學(xué)習(xí)宣講
- 2025年山東化工職業(yè)學(xué)院高職單招職業(yè)適應(yīng)性測(cè)試近5年常考版參考題庫(kù)含答案解析
- 2025年全國(guó)幼兒園教師資格證考試教育理論知識(shí)押題試題庫(kù)及答案(共九套)
- 2024年鄭州電力高等??茖W(xué)校高職單招職業(yè)適應(yīng)性測(cè)試歷年參考題庫(kù)含答案解析
評(píng)論
0/150
提交評(píng)論