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

正文內(nèi)容

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

2025-07-20 22:36 本頁(yè)面
 

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