面向?qū)ο蟮南到y(tǒng)分析與編程語言_第1頁
面向?qū)ο蟮南到y(tǒng)分析與編程語言_第2頁
面向?qū)ο蟮南到y(tǒng)分析與編程語言_第3頁
面向?qū)ο蟮南到y(tǒng)分析與編程語言_第4頁
面向?qū)ο蟮南到y(tǒng)分析與編程語言_第5頁
已閱讀5頁,還剩43頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

面向?qū)ο蟮南到y(tǒng)分析與編程語言第一頁,共四十八頁,2022年,8月28日講座內(nèi)容一、面向?qū)ο蟮幕驹矶⒚嫦驅(qū)ο蟮南到y(tǒng)分析三、常用語言的分析比較第二頁,共四十八頁,2022年,8月28日一、面向?qū)ο蟮幕驹淼谌?,共四十八頁?022年,8月28日連接成員的機制(靜態(tài)聯(lián)結(jié)與動態(tài)關(guān)聯(lián))生產(chǎn)軟件產(chǎn)品什么是面向?qū)ο蠹夹g(shù)以面向?qū)ο蠓椒▽W(xué)為基礎(chǔ)的軟件系統(tǒng)組織和結(jié)構(gòu)設(shè)計的工程技術(shù)特點: 標(biāo)準(zhǔn)的工藝流程 統(tǒng)一的生產(chǎn)規(guī)范內(nèi)容:面向?qū)ο蠓治?面向?qū)ο笤O(shè)計 面向?qū)ο蟪绦蛟O(shè)計內(nèi)部組成層次結(jié)構(gòu)思維方法知其然,知其所以然第四頁,共四十八頁,2022年,8月28日面向?qū)ο蠹夹g(shù)及其發(fā)展歷史從“軟件工程”的發(fā)展史看面向?qū)ο蠹夹g(shù)出現(xiàn)的必然性面向過程結(jié)構(gòu)化程序設(shè)計面向?qū)ο蟪绦蛟O(shè)計面向機器機器語言助記符語言匯編語言面向機器指令代碼FORTRANBASIC面向過程程序設(shè)計CPASCAL結(jié)構(gòu)化程序設(shè)計C++Java面向?qū)ο蟪绦蛟O(shè)計面向網(wǎng)絡(luò)程序設(shè)計JavaVs.NetCAR面向網(wǎng)絡(luò)程序設(shè)計第五頁,共四十八頁,2022年,8月28日面向?qū)ο蠓椒▽W(xué)基本內(nèi)涵(1)客觀世界的事物由各種各樣的實體(對象)構(gòu)成(2)每個對象都有各自的內(nèi)部狀態(tài)和運動(狀態(tài))規(guī)律(3)根據(jù)對象的屬性和運動規(guī)律的相似性可以將對象分類(4)復(fù)雜對象由相對簡單的對象組成(5)不同對象的組合及其間的相互作用和聯(lián)系構(gòu)成了系統(tǒng)(6)對象間的相互作用通過消息傳遞,對象根據(jù)所接收到的消息做出自身的反應(yīng)第六頁,共四十八頁,2022年,8月28日對象的模塊化在程序?qū)崿F(xiàn)中將一些密切相關(guān)的操作以某種風(fēng)格匯集在一起,形成相對獨立的整體。模塊2模塊1模塊化的特征在于抽象和信息隱藏抽象劃分方式與客觀事物本來面目相對應(yīng)信息隱藏內(nèi)部信息的訪問必須通過接口模塊化設(shè)計遵守的準(zhǔn)則:分解與組合(注重:可分解性、可組合性、可理解性)分解組合第七頁,共四十八頁,2022年,8月28日軟件重用面向?qū)ο蠹夹g(shù)的發(fā)展使得軟件重用技術(shù)更臻完善和規(guī)范:多種重用方式:子程序(Subroutine)、程序包(Package)、庫(Library)對象的封裝使得對象模塊在程序開發(fā)者看來是一個黑匣子,它只需通過接口去操作對象和理解對象的行為,而不必關(guān)心其內(nèi)部實現(xiàn)細(xì)節(jié),從而程序開發(fā)人員能夠直接重用已經(jīng)開發(fā)的對象模塊對象的繼承在另一個角度提供了軟件重用方式,即通過繼承允許程序開發(fā)者自己的對象重用具有相同特性的其它對象的代碼面向?qū)ο蠹夹g(shù)中的COM(ComponentObjectModel)等提供了將對象模塊組裝在一起的同一機制和方法,利用他們應(yīng)用程序開發(fā)人員可以方便地利用已有的對象模塊組合在一起,構(gòu)造出更大規(guī)模的應(yīng)用程序第八頁,共四十八頁,2022年,8月28日對象數(shù)據(jù)封裝(1)問題空間 所有要研究的客觀現(xiàn)實的全體稱為問題空間或問題域,而把要研究的問題(客觀世界中的實體)稱之為問題空間的對象

任何一個客觀實體都是對象——對象的組成——相互作用(2)解空間 所有的解(程序及執(zhí)行程序的計算機)組成的集合稱為解空間,把解(程序及執(zhí)行程序的計算機實體)稱做解空間的對象

對可解問題空間對象至少有一個解空間對象與其相對應(yīng)(3)封裝 將客觀事物抽象為一個相對獨立的實體,其中含有該事物的屬性及行為第九頁,共四十八頁,2022年,8月28日對象數(shù)據(jù)封裝對象的形態(tài)與靜態(tài)特征問題空間對象圖書1MyBook1:CBook書名:程序設(shè)計總頁數(shù):280版本:2m_pczName:char*=“程序設(shè)計”nTotalPage:int=280nEdition:int=2返回書名返回總頁數(shù)返回版本號char*GetBookName();intGetTotalPage();intGetEdition();分析中的對象設(shè)計中的對象人、學(xué)生、學(xué)校、班級、處、電視、汽車……等都可以被看作對象第十頁,共四十八頁,2022年,8月28日人類認(rèn)識世界的認(rèn)知規(guī)律之一:——根據(jù)對象的屬性和運動規(guī)律的相似性分類認(rèn)識和描述相似屬性和功能相似的對象構(gòu)成對象類任何一個具體的對象都是相應(yīng)對象類的一個實例類與對象的不同←→類的實例化對象類和對象實例對象之間通過消息傳遞,對象對所接收消息的反應(yīng)對象之間的相互作用抽象模型SenderReceiver/SenderMessage1ReceiverMessage1Message2第十一頁,共四十八頁,2022年,8月28日對象之間的關(guān)系(1)一般—特殊結(jié)構(gòu)人類對事物進(jìn)行分類后,在概念上,一些種類的事物之間存在著聯(lián)系,一些類之間在行為、屬性等方面具有部分相似性,其間存在一般與特殊的對應(yīng)關(guān)系:汽車與轎車、學(xué)生與班委會……這種關(guān)系不存在于具體對象實例之間,而存在于對象類之間。一般性寓于特殊性之中,體現(xiàn)在一般類對象所具有的屬性和操作包含于特殊類對象之中。汽車轎車客車卡車火車客車貨車罐車第十二頁,共四十八頁,2022年,8月28日對象之間的關(guān)系一般類特殊類特殊類的每個對象都為一般類的實例,因此特殊類的對象必將具有相應(yīng)的一般類的屬性和操作—特殊類這種獲取屬性和方法的方式稱為繼承由于特殊類(對象)具有一般類的所有屬性和操作,所以特殊類的任何一個對象必定是相應(yīng)一般類的對象,因此這種關(guān)系又常稱為IS_A_KIND_OF關(guān)系如果類A具有類B的全部屬性和操作,并且具有一些自己獨特的屬性和操作,那么A稱作B的特殊類,B稱作A的一般類

通過在已有類的基礎(chǔ)上添加一些特殊的屬性和操作形成新類的方式—稱為派生CPersonCStudentChar*NameIntNumber軌道衡超偏載軌道衡(2)父類—子類結(jié)構(gòu)(繼承、派生)第十三頁,共四十八頁,2022年,8月28日單一繼承、多重繼承一般類一般類特殊類WNDSTRUCTCWindowTreeCScreenObjectCEditTextCWnd一般類特殊類特殊類第十四頁,共四十八頁,2022年,8月28日繼承異常圖例順序環(huán)境屬性m1m2m3并發(fā)環(huán)境屬性同步控制部分功能定義部分屬性繼承需要同步控制改變被迫重定義第十五頁,共四十八頁,2022年,8月28日派生是人類認(rèn)識的深入新的認(rèn)知經(jīng)常建立在已有認(rèn)知的基礎(chǔ)上,在已有知識的基礎(chǔ)上通過進(jìn)行新探索、新認(rèn)識,在原有描述中添加新成分形成新認(rèn)識的描述鳥類北京麻雀東北麻雀南方麻雀麻雀類孔雀類…

……

…繼承代表著認(rèn)識的連續(xù)性第十六頁,共四十八頁,2022年,8月28日二、面向?qū)ο蟮南到y(tǒng)分析第十七頁,共四十八頁,2022年,8月28日需求分析與建模在關(guān)系數(shù)據(jù)庫設(shè)計的實體關(guān)系模型的基礎(chǔ)上擴展了類、繼承和行為等概念得到。需求的描述,而不是問題的解決。哪些特性可選、哪些必需從模糊的設(shè)計和實現(xiàn)需求中分離出正確的需求產(chǎn)生需求建立模型開發(fā)者管理者用戶問題描述對象模型動態(tài)模型函數(shù)模型與用戶磋商學(xué)科知識實際經(jīng)驗第十八頁,共四十八頁,2022年,8月28日面向?qū)ο蟮姆治龊驮O(shè)計 分析模型 設(shè)計模型 實現(xiàn)模型面向?qū)ο蠓治鯫OA面向?qū)ο笤O(shè)計OOD面向?qū)ο髮崿F(xiàn)OOI靜態(tài)特性:類層次關(guān)系模型動態(tài)特性:狀態(tài)圖、事件蹤跡圖行為功能:數(shù)據(jù)流圖第十九頁,共四十八頁,2022年,8月28日靜態(tài)結(jié)構(gòu)分析系統(tǒng)消息各個具體控件消息消息窗口按鈕圖標(biāo)菜單確定0..1幫助0..1消息10..1文件0..1編輯0..1消息窗口按鈕確定0..1圖標(biāo)消息0..1菜單文件0..1編輯0..1幫助0..1第二十頁,共四十八頁,2022年,8月28日動態(tài)行為分析對象生命周期

對象的動態(tài)行為包括兩個方面的內(nèi)容: 單個對象自身生命周期演化; 整個對象系統(tǒng)中對象間消息傳遞及相互作用對象狀態(tài)導(dǎo)致狀態(tài)轉(zhuǎn)換的事件狀態(tài)轉(zhuǎn)換時的動作S1S2S3S4event1event2event3event4狀態(tài)轉(zhuǎn)換圖第二十一頁,共四十八頁,2022年,8月28日動態(tài)行為分析(數(shù)據(jù)流圖)施動者通過產(chǎn)生或使用數(shù)據(jù)驅(qū)動數(shù)據(jù)流圖的主動對象,與數(shù)據(jù)流圖的輸入輸出聯(lián)系在一起。分析采集數(shù)據(jù)屏幕顯示數(shù)據(jù)處理數(shù)據(jù)存儲

數(shù)據(jù)流圖中為后繼訪問而存儲數(shù)據(jù)的被動對象。與施動者不同,它不產(chǎn)生任何操作,僅對存儲和訪問數(shù)據(jù)的請求響應(yīng)。讀數(shù)氣溫最高溫度最低溫度第二十二頁,共四十八頁,2022年,8月28日面向?qū)ο蟮南到y(tǒng)設(shè)計分析期間建立系統(tǒng)模型設(shè)計期間模型問題空間對象面向?qū)ο笤O(shè)計階段在分析模型基礎(chǔ)上進(jìn)行未來軟件的系統(tǒng)設(shè)計、對象設(shè)計,從而得到設(shè)計模型,該模型包含了解決問題的方案和策略。是確定問題具體解決方案的過程第二十三頁,共四十八頁,2022年,8月28日系統(tǒng)設(shè)計1.系統(tǒng)層次結(jié)構(gòu)設(shè)計系統(tǒng)設(shè)計是以軟件方式實現(xiàn)系統(tǒng)功能而進(jìn)行軟件的系統(tǒng)結(jié)構(gòu)設(shè)計及程序?qū)崿F(xiàn)中的總體的、策略性的解決方案的制定高層次接口模塊1模塊2模塊3應(yīng)用程序模塊1模塊2模塊3核心模塊1模塊2模塊3驅(qū)動模塊1模塊2模塊3硬件模塊1模塊2模塊3對軟件系統(tǒng)進(jìn)行的整體劃分。水平方向代表系統(tǒng)的不同抽象級別與層次;縱向表明每個層次所提供的功能模塊時間空間軟件硬件單一一般效率可維第二十四頁,共四十八頁,2022年,8月28日2系統(tǒng)數(shù)據(jù)存儲設(shè)計系統(tǒng)中各種數(shù)據(jù)對象的存儲方式設(shè)計:內(nèi)存數(shù)據(jù)結(jié)構(gòu)、文件、數(shù)據(jù)庫等如分布環(huán)境中對象的存儲結(jié)構(gòu)與單機環(huán)境下不同、持久對象等3系統(tǒng)資源訪問設(shè)計確定需要使用的資源,包括訪問機制和訪問安全性機制等如:訪問隊列等4網(wǎng)絡(luò)與分布設(shè)計如何將問題劃分給不同節(jié)點進(jìn)行分布式運算,需考慮網(wǎng)絡(luò)流量、節(jié)點計算能力、系統(tǒng)效率6互操作設(shè)計5并發(fā)性設(shè)計并發(fā)性控制,多進(jìn)程、多線程等文件并行訪問,使用臨界區(qū)、事件、互斥量、信號燈等相對于Client/Server而言。多個進(jìn)程之間可能需要為對方提供服務(wù)??赡鼙容^復(fù)雜,因為有可能存在平臺異構(gòu)問題。例外、邊界也許要處理系統(tǒng)設(shè)計第二十五頁,共四十八頁,2022年,8月28日原則:復(fù)用性可擴充性健壯性協(xié)作性面向?qū)ο蟪绦蛟O(shè)計:使用程序設(shè)計語言將設(shè)計方案加以表達(dá)類定義靜態(tài)模型動態(tài)模型類的實現(xiàn)約束實現(xiàn)于代碼中增強系統(tǒng)健壯性面向?qū)ο蟪绦蛟O(shè)計的原則第二十六頁,共四十八頁,2022年,8月28日加強軟件可復(fù)用性的原則:保證操作的內(nèi)聚性

功能相對單一減少單一功能模塊代碼規(guī)模

函數(shù)代碼的適當(dāng)規(guī)模保證操作對外接口的一致性

相似操作具有一致性接口分解設(shè)計中的操作

以相對單一和基本的操作聯(lián)合實現(xiàn)設(shè)計中的操作操作均勻覆蓋數(shù)據(jù)

考慮操作的普適性加強封裝

操作只針對內(nèi)部數(shù)據(jù),實現(xiàn)與接口分離減少操作耦合

減少操作之間的相關(guān),盡量上下文無關(guān)第二十七頁,共四十八頁,2022年,8月28日綜合考慮效率與通用原則效率的考慮 好的算法與數(shù)據(jù)結(jié)構(gòu) 各種隱式調(diào)用(=、構(gòu)造函數(shù)、參數(shù)傳遞) 動態(tài)綁定內(nèi)存管理 動態(tài)分配(new錯)與內(nèi)存泄漏(leak)

VisualC++中內(nèi)存泄漏的自動偵測封裝與通用 盡量保持封裝性與通用性的統(tǒng)一類型 類型檢查有助于發(fā)現(xiàn)錯誤,尤其是參數(shù)、賦值方面參數(shù)化類持久對象約束可示化開發(fā)環(huán)境第二十八頁,共四十八頁,2022年,8月28日三、常用語言的分析比較第二十九頁,共四十八頁,2022年,8月28日常用面向?qū)ο蟮某绦蛘Z言VBPBC/C++/VCDelphiJavaVS.Net(C#,VB,VC++,VJ)其它第三十頁,共四十八頁,2022年,8月28日常用程序設(shè)計語言的比較:要增加代碼的可重用性,要考慮以下幾點:

代碼的可讀性。如格式、是否接近英語語法和單詞。代碼的表達(dá)能力,也就是簡單性,能用最少的語句和單詞實現(xiàn)同樣的功能。代碼的結(jié)構(gòu)性,如函數(shù)、模塊、類。語言功能的強大從下面幾點來說:

是否擁有大量的庫支持。這是最重要的,要求編寫任何功能的程序都有強大的庫支持。語法功能是否強大,比如是否有出錯處理。是否有指針。

語言的友好性:語言包的大小,語言包越小,學(xué)習(xí)越簡單。語言是否有友好的編輯調(diào)試環(huán)境。語言的可視化和集成編程環(huán)境。第三十一頁,共四十八頁,2022年,8月28日常用程序設(shè)計語言的比較:VB全稱VisualBasic,它是以Basic語言作為其基本語言的一種可視化編程工具。VB作為一種較早出現(xiàn)的開發(fā)程序以其容易學(xué)習(xí),開發(fā)效率較高,具有完善的幫助系統(tǒng)等優(yōu)點曾影響了好幾代編程人員,但是VB不具備跨平臺特性,從而也決定了VB在未來的軟件開發(fā)中將會逐漸地退出其歷史舞臺。它對組件技術(shù)的支持是基于COM和ActiveX,對于組件技術(shù)不斷完善發(fā)展的今天,它也顯出了它的落后性。VB在進(jìn)行系統(tǒng)底層開發(fā)的時候也是相對復(fù)雜的,調(diào)用API函數(shù)需聲明,調(diào)用不方便,不能進(jìn)行DDK編程,不可能深入Ring0編程,不能嵌套匯編。具有面向?qū)ο筇匦裕萔C好,但也不算強。網(wǎng)絡(luò)功能和數(shù)據(jù)庫功能也沒有非常突出的表現(xiàn)。綜上所述,VB作為一種可視化的開發(fā)工具由于其本身的局限性,導(dǎo)致了它在未來軟件開發(fā)中逐步被其他工具所代替。第三十二頁,共四十八頁,2022年,8月28日常用程序設(shè)計語言的比較:C/C++自從C發(fā)明了以后,取代了匯編語言在操作系統(tǒng)編程的領(lǐng)導(dǎo)地位。各種操作系統(tǒng)的編程接口的默認(rèn)語言都是C語言。C++是C語言的加強版,增加了面向?qū)ο蠛推渌杏玫墓δ埽幊谈奖爿p松;C++亦支援大部分C的程序,大部分C編譯器也支援C++。在Unix-like上編寫圖形界面程序,有兩個選擇KDE和Gnome∶KDE更成熟,但它使用了不是開源的Qt函數(shù)庫;Gnome支持多語言和面向?qū)ο蟮某绦蜷g的協(xié)同,有它的GUI工具GTK。在Windows環(huán)境中,通常使用VC,但由于VC的編譯器和API太復(fù)雜,難于掌握,并非開放源代碼的工具。其他選擇有從Unix-like系統(tǒng)移植過來的djgpp、mingw。和其他語言相比,雖然C和C++都已經(jīng)定下了其標(biāo)準(zhǔn),但編譯器、函數(shù)庫、操作系統(tǒng)API五花八門,有些又未必全面支援最新的標(biāo)準(zhǔn),造成學(xué)習(xí)的難度大、統(tǒng)一性差的問題。第三十三頁,共四十八頁,2022年,8月28日常用程序設(shè)計語言的比較:VC++是基于MFC庫的可視化的開發(fā)工具,從總體上說它是一個功能強大但是不便使用的一種工具。它在網(wǎng)絡(luò)開發(fā)和多媒體開發(fā)都具有不俗的表現(xiàn),幫助系統(tǒng)也做得非常不錯但是雖然是使用C++作為基本語言,但它在面向?qū)ο筇匦陨蠀s不夠好,主要是為了兼容C的程序,結(jié)果顧此失彼;在組件支持上也不太好。除了支持COM,ActiveX外還支持CORBA,但是沒有任何IDE支持,是所有C編譯器的功能,需要CORBA中間件支持。最大的問題是開發(fā)效率不高。第三十四頁,共四十八頁,2022年,8月28日常用程序設(shè)計語言的比較:PB全稱PowerBuilder,是開發(fā)MIS系統(tǒng)和各類數(shù)據(jù)庫跨平臺的首選,使用簡單,容易學(xué)習(xí),容易掌握,在代碼執(zhí)行效率上也有相當(dāng)出色的表現(xiàn)。PB是一種真正的4GL語言(第四代語言),可隨意直接嵌套SQL語句返回值被賦值到語句的變量中,支持存儲過程和數(shù)據(jù)庫函數(shù),數(shù)據(jù)訪問中具有無可比擬的靈活性。但是它在系統(tǒng)底層開發(fā)中犯了跟VB一樣的錯誤,調(diào)用API函數(shù)需聲明,調(diào)用不方便,不能進(jìn)行DDK編程,不可能深入Ring0編程,不能嵌套匯編。在網(wǎng)絡(luò)開發(fā)中提供了較多動態(tài)生成Web頁面的用戶對象和服務(wù)以及系統(tǒng)對象,非常適合編寫服務(wù)端動態(tài)Web應(yīng)用,有利于商業(yè)邏輯的封裝;但是用于網(wǎng)絡(luò)通訊的支持不足;靜態(tài)頁面定制支持有限,使得PB在網(wǎng)絡(luò)方面的應(yīng)用也不能非常廣泛。具有面向?qū)ο筇匦?,相對而言比VB要好些。第三十五頁,共四十八頁,2022年,8月28日常用程序設(shè)計語言的比較:C++Builder,Delphi它們都是基于VCL庫的可視化開發(fā)工具,它們在組件技術(shù)的支持、數(shù)據(jù)庫支持、系統(tǒng)底層開發(fā)支持、網(wǎng)絡(luò)開發(fā)支持、面向?qū)ο筇匦缘雀鞣矫娑加邢喈?dāng)不錯的表現(xiàn)。學(xué)習(xí)使用較為容易,充分提現(xiàn)了所見即所得的可視化開發(fā)方法,開發(fā)效率高。由于兩者都是Borland公司的產(chǎn)品,自然繼承了該公司一貫以來的優(yōu)良傳統(tǒng):代碼執(zhí)行效率高。但是,它們并不是毫無缺點,它們所作的最大不足之處就是他們的幫助系統(tǒng)在眾多的編程工具中是屬于比較差的。C++Builder的VCL庫是基于Objectpascal(面向?qū)ο髉ascal),使得C++Builder在程序的調(diào)試執(zhí)行上都面向落后于其他編程工具。而Delphi則是它的語言不夠廣泛,開發(fā)系統(tǒng)軟件功能不足。

第三十六頁,共四十八頁,2022年,8月28日常用程序設(shè)計語言的比較:Java目前比較出名的是Borland出的JBuilder和IBM出的VisualAgeforJava,兩種工具都有一定數(shù)量的是用人群。JBuilder繼承了C++Builder/Delphi的特點,在可視化上做得非常不錯,使用簡便。由于Java本身語言的特點使得他們在網(wǎng)絡(luò)開發(fā)中具有高人一等的表現(xiàn),而且面向?qū)ο筇匦愿?,支持的組件技術(shù)也非常多,跨平臺的特性也使得它在現(xiàn)在和未來的開發(fā)中占據(jù)越來越重要的地位。但是在系統(tǒng)底層開發(fā)和多媒體開發(fā)中卻表現(xiàn)得并不讓人滿意,這與設(shè)計Java的意圖有關(guān),其主要還是跨平臺。第三十七頁,共四十八頁,2022年,8月28日常用程序設(shè)計語言的比較:數(shù)據(jù)訪問對象VB:DAO,ADO,RDO功能相仿;PB:Transaction,DwControl,可綁定任何SQL語句和存儲過程,數(shù)據(jù)訪問具有無與比擬的靈活性;C++Builder/Dephi:具有包括DataSource,Table,Query,Midas,ADO在內(nèi)的二十多個組件和類完成數(shù)據(jù)訪問;VC:同VB,但有不少類庫可供使用,但極不方便,開發(fā)效率很低;Java:JavaJDBCAPI,不同的IDE具有不同的組件

第三十八頁,共四十八頁,2022年,8月28日常用程序設(shè)計語言的比較:數(shù)據(jù)表現(xiàn)對象VB:DBGriD,與數(shù)據(jù)庫相關(guān)的數(shù)據(jù)表現(xiàn)控件只有此一種,只能表現(xiàn)簡單表格數(shù)據(jù),表現(xiàn)手段單一;PB:DataWindow對象(功能異常強大,其資源描述語句構(gòu)成類似HTML的另外一種語言,可在其中插入任何對象,具有包括DBGrid在內(nèi)的數(shù)百種數(shù)據(jù)表現(xiàn)方法),只此一項功能就注定了PB在數(shù)據(jù)庫的功能從誕生的那一天起就遠(yuǎn)遠(yuǎn)超過了某些開發(fā)工具今天的水平;C++Builder/Dephi:具有包括DBGrid,DBNavigator,DBEdit,DBLookupListBox在內(nèi)的15個數(shù)據(jù)感知組件,DecisionCube,DecisionQuery在內(nèi)的6個數(shù)據(jù)倉庫組件和包括QRChart,QRExpr在內(nèi)的20多個報表組建,可靈活表現(xiàn)數(shù)據(jù),新版的控件更多;VC:同數(shù)據(jù)訪問對象,無直接的數(shù)據(jù)表現(xiàn)對象;Java:不同的IDE具有不同的組件,比較著名的有Jbuilder,PowerJ,VisualAgeforJava.

第三十九頁,共四十八頁,2022年,8月28日常用程序設(shè)計語言的比較:SQL語句執(zhí)行方式VB:將一句SQL串綁定到一個命令對象中,結(jié)果返回到ResultSet對象中自行拆取;PB:是一種真正的4GL語言,可隨意直接嵌套SQL語句返回值被賦值到語句的變量中,支持語句級游標(biāo),存儲過程和數(shù)據(jù)庫函數(shù);C++Builder/Dephi:使用數(shù)據(jù)庫組件或類完成SQL語句串的執(zhí)行和提交;VC:同數(shù)據(jù)訪問對象,無直接的組件支持SQL語句執(zhí)行;Java:SQLJ,JavaJDBCAPI.

第四十頁,共四十八頁,2022年,8月28日常用程序設(shè)計語言的比較:面向?qū)ο筇匦悦嫦驅(qū)ο筇匦?/p>

VB:差;PB:較好;C++Builder/Dephi:很好;

VC:一般;Java:非常好跨平臺特性

VB:跨平臺性不怎么好,但是可以與WINDOWS家族無縫連接。

PB:跨平臺性一般

C++Builder/Dephi:WINDOWS家族,Linux

VC:無

Java:所有能夠運行Java虛擬機的操作系統(tǒng)組件技術(shù)支持

VB:COM,ActiveX

PB:COM,JavaBean,Jaguar,UserObject使用:CORBA+ActiveX

C++Builder/Dephi:COM,ActiveXCORBA(本身自帶CORBA中間件VisiBroker,有豐富向?qū)В?/p>

VC:COM,ActiveX,CORBA(沒有任何IDE支持,是所有C編譯器的功能,需要CORBA中間件支持)

Java:JavaBean,CORBA,ActiveX第四十一頁,共四十八頁,2022年,8月28日常用程序設(shè)計語言的比較:網(wǎng)絡(luò)或WEB開發(fā)支持VB:Asp,VBScript,具有編寫DHTML的簡單IDE,編寫靜態(tài)頁面非常方便;用于網(wǎng)絡(luò)通訊的支持一般。PB:DynaSript,Web.PB;提供了較多動態(tài)生成Web頁面的用戶對象和服務(wù)以及系統(tǒng)對象,非常適合編寫服務(wù)端動態(tài)Web應(yīng)用,有利于商業(yè)邏輯的封裝;用于網(wǎng)絡(luò)通訊的支持不足;靜態(tài)頁面定制支持有限。C++Builder/Dephi:ISAPI,WININETAPI等各類網(wǎng)絡(luò)或互聯(lián)網(wǎng)API可自由而方便的調(diào)用;提供了ServerSocket,ClientSocket等三十余個組件及類,用來處理網(wǎng)絡(luò)通訊控制,流處理,Mail,Email,FTP,HTTP等應(yīng)用協(xié)議處理以及生成動態(tài)頁面和商業(yè)邏輯的封裝;功能強大,使用方便。VC:SAPI,WININETAPI等各類網(wǎng)絡(luò)或互聯(lián)網(wǎng)API可自由而方便的調(diào)用;提供CAsyncSocket等數(shù)量眾多的類;功能強大但使用不太方便。Java:不可直接調(diào)用API但內(nèi)置非常多的網(wǎng)絡(luò)及互聯(lián)網(wǎng)功能;可利用ServletAPI,JavaBeanAPI,以及JSP等協(xié)同開發(fā)功能強大的Web應(yīng)用;功能強大,對于某些IDE使用不太方便。第四十二頁,共四十八頁,2022年,8月28日常用程序設(shè)計語言的比較:綜合評價VB:是新人開發(fā)與系統(tǒng)無關(guān)的綜合應(yīng)用程序的首選;VB開發(fā)效率高,代碼執(zhí)行效率一般,但是入門和學(xué)習(xí)速度快,有較好的學(xué)習(xí)氛圍和幫助書籍和幫助文檔。但是隨著微軟的.net技術(shù)的推廣,VB將會逐漸推出歷史舞臺。PB:是開發(fā)大型MIS及各類數(shù)據(jù)庫跨平臺應(yīng)用的首選;從數(shù)據(jù)庫前端工具來講甚至遠(yuǎn)遠(yuǎn)超過了Oracle的Develop系列等專門的工具;從通用語言角度來講功能也與VB等不相上下;多媒體和網(wǎng)絡(luò)功能與其他工具相比較弱。C++Builder/Dephi:是唯一一套能夠同時適用于開發(fā)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論