freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

劉學(xué)明軟件工程(編輯修改稿)

2025-07-20 22:36 本頁面
 

【文章內(nèi)容簡介】 ,這場爭論的實質(zhì)就在于是講究好結(jié)構(gòu)程序還是講究效率。所謂好結(jié)構(gòu)程序,指程序結(jié)構(gòu)清晰、易于 閱讀、易于驗證。好結(jié)構(gòu)程序從效率上看不一定是最好的程序,但是它能提高程序的可讀性、可理解性和可靠性,易于查錯和維護。爭論的結(jié)果,人們普遍認為 ,在計算機運行速度大大提高、存儲容量不斷擴大的情況下,程序的可靠性和可維護性已成為第一要求,除了系統(tǒng)的核心程序以及其他一些特殊要求的程序之外,在通常情況下,寧可降低一些效率,也要保證好的程序結(jié)構(gòu)。從此,人們開始總結(jié)出一套程序設(shè)計的基本原理和方法,并摸索出了一套規(guī)律,使程序設(shè)計不再是一種純粹技巧性的工作,逐漸上升為一門科學(xué),又仍保持著藝術(shù)的特點。結(jié)構(gòu)化程序設(shè)計(SP)是以模 塊化設(shè)計為中心,將待開 發(fā)的 軟件系統(tǒng)劃分為若干個相互獨立的 模塊,這樣使完成每一個模塊的工作變單純而明確,為設(shè)計一些較大的軟件打下了良好的基礎(chǔ)。 由于模塊相互獨立,因此在設(shè)計其中一個模塊時,不會受到其它模塊的牽連,因而可將原來較為復(fù)雜的問題化簡為一系列簡單模塊的設(shè)計。模塊的獨立性還為擴充已有的系統(tǒng)、建立新系統(tǒng)帶來了不少的方便,因為我們可以充分利用現(xiàn)有的模塊作積木式的擴展。 按照結(jié)構(gòu)化程序設(shè)計的觀點,任何算法功能都可以通過由程序模塊組成的三種基本程序結(jié)構(gòu)的組合: 順序結(jié)構(gòu)、 選擇結(jié)構(gòu)和 循環(huán)結(jié)構(gòu)來 實現(xiàn)。 結(jié)構(gòu)化程序設(shè)計的基本思想是采用自頂向下,逐步求精的程序設(shè)計方法和 單入口單出口的控制 結(jié)構(gòu)。自 頂 向下、逐步求精的程序設(shè)計方法從問題本身開始,經(jīng)過逐步細化,將解決問題的步驟分解 為由基本程序結(jié)構(gòu)模塊組成的結(jié)構(gòu)化程序框圖;單入口單出口 的思想 認為 一個復(fù)雜的程序,如果它僅是由順序、選擇和循環(huán)三種基本程序結(jié)構(gòu)通過組合、嵌套構(gòu)成,那么這個新構(gòu)造的程序一定是一個 單入口單出口的程序。據(jù)此就很容易編寫出結(jié)構(gòu)良好、易于調(diào)試的程序來。軟件生命周期法或結(jié)構(gòu)化方法雖然被歸為“傳統(tǒng)方法學(xué)” ,并不是說該方法已經(jīng)不適用,沒有人使用了。這種方法學(xué) 歷經(jīng)數(shù)十年,可 謂歷 史悠久,為廣大軟件工程師所熟悉,在開發(fā)某些類型的軟件是也比較有效,在相當長的時期內(nèi)還有其生命力。尤其是時下流行的面向?qū)ο蠓椒ㄒ彩腔净谲浖芷诜▽τ谲浖A段的劃分的思想,所以對于學(xué)員而言,了解并掌握軟件生命周期法 還是十分必要的。面向?qū)ο蠓椒ㄡ槍θ遮厪?fù)雜的軟件需求的挑戰(zhàn),軟件業(yè)界重點發(fā)展了面向?qū)ο?ObjectOriented -簡稱OO)的軟件開發(fā)方法。面向?qū)ο蠓椒ǖ某霭l(fā)點和基本原則,是盡可能模擬人學(xué)習(xí)習(xí)慣的思維方式,是開發(fā)軟件的方法與過程盡可能接近人類認識世界解決問題的方法和過程,也就是使描述問題的問題空間與現(xiàn)實解法的解空間在結(jié)構(gòu)上盡可能一致。面向?qū)ο蠓椒ㄕJ為,客觀世界的問題都是由客觀世界中的實體及實體間相互的關(guān)系構(gòu)成。我們把客觀世界中的 實體抽象為問題域中的對象(Object)。因 為所要解決的問題具有特殊性,因此,對象是不固定的。一個雇 員可以作 為一個對象,一家公司也可以作為一個對象。到底應(yīng)該把什么抽象為對象,由所需解決的問題決定。諸如“對象”和“對象的屬性”這樣的概念,可以一直追溯到上世紀50年代初。它們首先出現(xiàn)于關(guān)于人工智能的早期著作中。然而,OO的 實際發(fā)展卻是始于1966年 (當年文化大革命在中國爆發(fā)) 。當時Kisten Nygaard和OleJohan Dahl開發(fā)了具有更高 級抽象機制的 Simula語言。Simula提供了比子程序更高一級的抽象和封裝;為仿真一個實際問題,引入了數(shù)據(jù)抽象和類的概念。大約在同一時期, Alan Kay正在尤他大學(xué)的一臺個人計算機上努力工作,他希望能在其上實現(xiàn)圖形化和模擬仿真。盡管由于軟硬件的限制,Kay 的嘗試沒有成功,但他的這些想法并沒有丟失。 70年代初期,他加入了Palo Alto研究中心(PARC) ,再次將這些想法付諸實施。   在PARC,他所在的研究小 組堅信計算機技術(shù)是改善人與人、人與機器之 間通訊渠道的關(guān)鍵。在這信念的支持下,并吸取了Simula的類的概念,他們開發(fā)出Smalltalk語言;1972年P(guān)ARC發(fā)布了Smalltalk的第一個版本。大約在此時,“面向?qū)ο蟆?這一術(shù)語正式確定。Smalltalk被認為是第一個真正面向?qū)ο蟮恼Z言。Smalltalk 的目標是為了使軟件設(shè)計能夠以盡可能自動化的單元來進行。在Smalltalk中一切都是對象即某個類的實例。最初的Smalltalk的世界中, 對象與名 詞緊緊相連。 Smalltalk還支持一個高度交互式的開發(fā)環(huán)境和原型方法。這一原創(chuàng)性的工作開始并未發(fā)表,只是視為帶濃厚試驗性質(zhì)的學(xué)術(shù)興趣而已。 Smalltalk80是PARC的一系列Smalltalk版本的總結(jié), 發(fā)布于1981年。 1981年8月的BYTE雜志公布了Smalltalk 開發(fā)組的重要結(jié)果。在這期雜志的封面圖上,一個熱氣球正從一個孤島上冉冉升起來,標志著PARC的面向?qū)ο笏枷氲膯⒑健T撌窍蜍浖_發(fā)界公開發(fā)表的時候了。起初,影響只是漸進式的,但很快就 躍升到火爆的程度。熱氣球確實啟航了,而且影響深遠。早期Smalltalk關(guān)于開發(fā)環(huán)境的研究導(dǎo)致了后來的一系列進展:窗口(window ),圖標( icon),鼠標(mouse) 和下拉式window環(huán)境。Smalltalk語言還影響了80年代早期和中期的面向?qū)ο蟮恼Z言,如: ObjectC(1986), C++(1986), Self(1987),Eiffl(1987),Flavors(1986)。面向 對象的應(yīng) 用領(lǐng)域也被進一步拓寬。對象不再僅僅與名詞相聯(lián)系,還包括事件和過程。 1980 Grady Booch首先提出面向?qū)ο笤O(shè)計(OOD)的概念。然后其他人緊隨其后,面向?qū)ο蠓治龅募夹g(shù)開始公開發(fā)表。1985年,第一個商用面向?qū)ο髷?shù)據(jù) 庫問世。 1990年代以來,面向?qū)ο蟮姆治?、測試、度量和管理等研究都得到 長足發(fā)展。目前對象技術(shù)的前沿課題包括設(shè)計模板(design patterns)、分布式 對象系統(tǒng)和基于網(wǎng)絡(luò)的 對象應(yīng)用等。目前人們的普遍認為OO技術(shù)是針對“軟件危機” 的最佳對策。最初被多數(shù)人看作只是一種不切實際的方法和滿足一時好奇心的研究,現(xiàn)在得到了人們近乎狂熱的歡迎。許多編程語言都推出了支持面向?qū)ο蟮男掳姹尽4罅康拿嫦驅(qū)ο蟮拈_發(fā)方法被提出來。關(guān)于OO的會議、學(xué)術(shù)研討班和 課程極受歡迎。無數(shù) 專業(yè) 的學(xué)術(shù)期刊都為這一話題開辟了專門的版面。一些軟件開發(fā)合同甚至也指明了必須使用OO的技術(shù)和語言。面向?qū)ο蟮能浖_發(fā)對于90年代,就向是結(jié)構(gòu)化的軟件開發(fā)對于70年代那樣讓人著迷,而且OO的發(fā)展勢頭還在日益加速。 為什么面向?qū)ο筮\動發(fā)展到了現(xiàn)在這樣火爆的程度?部分是源于人們長久以來的一個希望:人們希望它,象以前其他的軟件開發(fā)技術(shù)一樣,能夠滿足軟件開發(fā)對于生產(chǎn)效率、可靠性、易維護性、易管理等方面的更高、更快、更 強的迫切需求。  面向?qū)ο蟮拈_發(fā)強調(diào)從問題域的概念到軟件程序和界面的直接映射;心理學(xué)的研究也表明,把客觀世界看成是許多對象更接近人類的自然思維方式。對象比函數(shù)更為穩(wěn)定;軟件需求的變動往往是功能相關(guān)的變動,而其功能的執(zhí)行者對象通常不會有大的變動。另外,面向?qū)ο蟮拈_發(fā)也支持、鼓勵軟件工程實踐中的信息隱藏、數(shù)據(jù)抽象和封裝。在一個對象內(nèi)部的修改被局部隔離。面向?qū)ο箝_發(fā)的軟件易于修改、擴充和維護。   面向?qū)ο笠脖粩U充應(yīng)用于軟件生命周期的各個階段從分析到編碼。而且,面向?qū)ο蟮姆椒ㄗ匀欢坏刂С挚焖僭头ê蚏AD(Rapid Application Development)。面向?qū)ο箝_發(fā)的使用鼓勵重用,不僅軟件的重用,還包括分析、 設(shè)計的模型的重用。更進一步,OO技術(shù)還方便了軟件的互換 性,即,網(wǎng) 絡(luò)中一個節(jié)點上應(yīng)用能夠利用另一個節(jié)點上的資源。面向?qū)ο蟮拈_發(fā)還支持并發(fā)、層次和復(fù)雜等一些在目前的軟件系統(tǒng)中常見的現(xiàn)象。今天我們常常會需要建造一些軟件系統(tǒng)不止是一黑盒應(yīng)用。這些復(fù)雜系統(tǒng)通常包含由多個子系統(tǒng)組成的層次結(jié)構(gòu)。面向?qū)ο蟮拈_發(fā)支持開放系統(tǒng)的建設(shè);利用不同的應(yīng)用來進行軟件集成有了更大的柔性。最后,面向?qū)ο箝_發(fā)的使用可以減小開發(fā)復(fù)雜系統(tǒng)所面臨的危險,主要是因為系統(tǒng)集成遍布軟件生命周期的各個階段。 在面向?qū)ο缶幊讨?,程序被看作是相互協(xié)作的對象集合,每個對象都是某個類的實例,所有的類構(gòu)成一個通過繼承關(guān)系相聯(lián)系的層次結(jié)構(gòu)。面向?qū)ο蟮恼Z言常常具有以下特征:對象生成功能、消息 傳遞機制、 類和遺傳機制。 這些概念當然可以并且也已經(jīng)在其他編程語言中單獨出現(xiàn),但只有在面向?qū)ο笳Z言中,他們才共同出現(xiàn),以一種獨特的合作方式互相協(xié)作、互相補充。八十年代末以來,隨著面向?qū)ο蠹夹g(shù)成為研究的熱點出現(xiàn)了幾十種支持軟件開發(fā)的面向?qū)ο蠓椒?。其中,Booch, Coad/Yourdon, OMT, 和Jacobson的方法在面向 對 象軟件開發(fā)界得到了廣泛的認可。特別值得一提的是統(tǒng)一的建模語言UML (Unified Modeling Language),他是一種用于描述、構(gòu)造 軟件系統(tǒng)以及商 業(yè)建模的語言,該方法結(jié)合了在大型、復(fù)雜 系統(tǒng)的建模領(lǐng)域得到認可的優(yōu)秀的軟件工程方法如Booch, OMT, 和Jacobson方法等的 優(yōu)點,統(tǒng)一了符號體系,并從其它的方法和工程實踐中吸收了許多經(jīng)過實際檢驗 的概念和技術(shù)。UML已經(jīng) 成為大多數(shù)公司采用的標 準,也是ANSI 和OMG等部門采用的標準。方法簡單比較一.系統(tǒng)觀點? 傳統(tǒng)方法:系統(tǒng)是過程的集合,過程與數(shù)據(jù)實體交互,過程接受輸入并產(chǎn)生輸出? 面向?qū)ο蠓椒ǎ合到y(tǒng)是交互對象的集合,對象與人或其它對象交互,對象發(fā)送與響應(yīng)消息二.看待問題? 傳統(tǒng)方法:面向功能 ,把系統(tǒng)看成一組功能? 面向?qū)ο蠓椒ǎ喊褑栴}當作一組相互作用的實體,并確定實體間關(guān)系三.關(guān)于程序的定義? 傳統(tǒng)方法:程序=數(shù)據(jù)結(jié)構(gòu)+ 算法? 面向?qū)ο蠓椒ǎ撼绦?= 對象+消息四.編程? 傳統(tǒng)方法:面向過程的編碼? 面向?qū)ο蠓椒ǎ好嫦驅(qū)ο蟮木幋a? 傳統(tǒng)方法需求分析 → 總體設(shè)計 → 詳細設(shè)計 → 面向過程的編碼 → 測試? 面向?qū)ο蠓椒ㄜ浖治雠c對象抽取 → 對象詳細設(shè)計 → 面向?qū)ο蟮木幋a → 測試167。2 軟件開發(fā)模型及工具本章主要講述軟件開發(fā)的過程和工具。軟件過程是軟件工程三要素中的一個方面,是軟件工程的根基。軟件工程與軟件過程是包括與被包括的關(guān)系。軟件過程是為了獲得高質(zhì)量軟件所需要完成的一系列任務(wù)的框架,規(guī)定了完成各項軟任務(wù)的工作步驟。為了解決軟件開發(fā)中的實際問題,必須綜合出一個開發(fā)策略,該策略能夠覆蓋過程、方法和工具三個層次和軟件開發(fā)的一般階段。這個策略常常被稱為過程模型,也稱作軟件開發(fā)模型。軟件開發(fā)模型(Software Development Model)是指軟 件開發(fā)全部 過程、活動和任務(wù)的結(jié)構(gòu)框架。軟件開發(fā)包括需求、設(shè)計、編碼和測試等階段,有時也包括 維護階段。軟件開發(fā)模型能清晰、直觀地表達軟件開發(fā)全過程,明確規(guī)定了要完成的主要活動和任務(wù),用來作為軟件項目工作的基礎(chǔ)。最早出現(xiàn)的軟件開發(fā)模型是1970年WRoyce提出的瀑布模型。該模型給出了固定的順序,將生存期活動從上一個階段向下一個階段逐級過渡,如同流水下瀉,最 終得到所開發(fā)的軟件產(chǎn)品,投入使用。但計算拓廣到統(tǒng)計分析、商業(yè)事務(wù)等領(lǐng)域時,大多數(shù)程序采用高級語言(如 FORTRAN、COBOL等)編寫。瀑布模式模型也存在著缺乏靈活性、無法通過并發(fā)活動澄清本來不夠確切的需求等缺點。根據(jù)各種開發(fā)模型的不同特征,有人歸納為傳統(tǒng)開發(fā)模型、演化開發(fā)模型和面向?qū)ο箝_發(fā)模型?,F(xiàn)實中的開發(fā)模型有很多,我們只選取一些常用的典型開發(fā)模型進行介紹。所涉及到的典型的開發(fā)模型有:1) 瀑布模型(waterfall model);2) 快速原型模型(rapid prototype model);3) 增量模型 (inCRemental model);4) 螺旋模型(SPIral model) ;5) 噴泉模型(fountAIn model);6) 快速開發(fā)模型RAD(Rapid  Application Development)7) 迭代式開發(fā)模型(iterative development model)8) 統(tǒng)一過程開發(fā)模型RUP(Rational Unified Process)9) 極限編程模型XP(eXtreme Programming)167。2-1 傳統(tǒng)開發(fā)模型167。2-1-1 瀑布模型(Waterfall Model )1970年WinSTon Royce提出了著名的瀑布模型, 在20世紀80年代以前,瀑布模型一直是唯一被廣泛采用的軟件開發(fā)模型?,F(xiàn)在,它仍然是廣為采用的過程模型。傳統(tǒng)的軟件工程方法學(xué)的軟件過程,基本上可以用瀑布模型來描述。瀑布模型將軟件生命周期劃分為制定計劃、需求分析、軟件設(shè)計、程序 編寫、軟件測試和運行維護等六個基本活動,并且規(guī)定了它們自上而下、相互銜接的固定次序,如同瀑布流水,逐級下落。參見下圖所示: 瀑 布 模 型瀑 布 模 型、、定 義階 段開發(fā)階段維 護 階 段、 、、、、 在瀑布模型中,軟件開發(fā)的各項活動嚴格按照線性方式進行,當前活動接受上一項活動的工作結(jié)果,實施完成所需的工作內(nèi)容。當前活 動的工作結(jié)果需要進行驗證,如果 驗證通過,則該結(jié)果作為下一項活動的輸入, 繼續(xù)進行下一項活動,否 則返回修改。因此人們把這種順序進行的模型稱作“線性模型” 。瀑布模型強調(diào)文檔的作用,并要求每個階段都要仔細驗證。瀑布模型可以為項目團隊帶來一些原則性方法,確保能夠在項目開始階段就考慮項目需求,并且
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1