![面向?qū)ο蟮南到y(tǒng)分析與編程語言_第1頁](http://file4.renrendoc.com/view/54ae4ba46b81ce1c2a97fe0601f138ce/54ae4ba46b81ce1c2a97fe0601f138ce1.gif)
![面向?qū)ο蟮南到y(tǒng)分析與編程語言_第2頁](http://file4.renrendoc.com/view/54ae4ba46b81ce1c2a97fe0601f138ce/54ae4ba46b81ce1c2a97fe0601f138ce2.gif)
![面向?qū)ο蟮南到y(tǒng)分析與編程語言_第3頁](http://file4.renrendoc.com/view/54ae4ba46b81ce1c2a97fe0601f138ce/54ae4ba46b81ce1c2a97fe0601f138ce3.gif)
![面向?qū)ο蟮南到y(tǒng)分析與編程語言_第4頁](http://file4.renrendoc.com/view/54ae4ba46b81ce1c2a97fe0601f138ce/54ae4ba46b81ce1c2a97fe0601f138ce4.gif)
![面向?qū)ο蟮南到y(tǒng)分析與編程語言_第5頁](http://file4.renrendoc.com/view/54ae4ba46b81ce1c2a97fe0601f138ce/54ae4ba46b81ce1c2a97fe0601f138ce5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
面向?qū)ο蟮南到y(tǒng)分析與編程語言第1頁,共48頁,2023年,2月20日,星期四講座內(nèi)容一、面向?qū)ο蟮幕驹矶?、面向?qū)ο蟮南到y(tǒng)分析三、常用語言的分析比較第2頁,共48頁,2023年,2月20日,星期四一、面向?qū)ο蟮幕驹淼?頁,共48頁,2023年,2月20日,星期四連接成員的機(jī)制(靜態(tài)聯(lián)結(jié)與動(dòng)態(tài)關(guān)聯(lián))生產(chǎn)軟件產(chǎn)品什么是面向?qū)ο蠹夹g(shù)以面向?qū)ο蠓椒▽W(xué)為基礎(chǔ)的軟件系統(tǒng)組織和結(jié)構(gòu)設(shè)計(jì)的工程技術(shù)特點(diǎn): 標(biāo)準(zhǔn)的工藝流程 統(tǒng)一的生產(chǎn)規(guī)范內(nèi)容:面向?qū)ο蠓治?面向?qū)ο笤O(shè)計(jì) 面向?qū)ο蟪绦蛟O(shè)計(jì)內(nèi)部組成層次結(jié)構(gòu)思維方法知其然,知其所以然第4頁,共48頁,2023年,2月20日,星期四面向?qū)ο蠹夹g(shù)及其發(fā)展歷史從“軟件工程”的發(fā)展史看面向?qū)ο蠹夹g(shù)出現(xiàn)的必然性面向過程結(jié)構(gòu)化程序設(shè)計(jì)面向?qū)ο蟪绦蛟O(shè)計(jì)面向機(jī)器機(jī)器語言助記符語言匯編語言面向機(jī)器指令代碼FORTRANBASIC面向過程程序設(shè)計(jì)CPASCAL結(jié)構(gòu)化程序設(shè)計(jì)C++Java面向?qū)ο蟪绦蛟O(shè)計(jì)面向網(wǎng)絡(luò)程序設(shè)計(jì)JavaVs.NetCAR面向網(wǎng)絡(luò)程序設(shè)計(jì)第5頁,共48頁,2023年,2月20日,星期四面向?qū)ο蠓椒▽W(xué)基本內(nèi)涵(1)客觀世界的事物由各種各樣的實(shí)體(對象)構(gòu)成(2)每個(gè)對象都有各自的內(nèi)部狀態(tài)和運(yùn)動(dòng)(狀態(tài))規(guī)律(3)根據(jù)對象的屬性和運(yùn)動(dòng)規(guī)律的相似性可以將對象分類(4)復(fù)雜對象由相對簡單的對象組成(5)不同對象的組合及其間的相互作用和聯(lián)系構(gòu)成了系統(tǒng)(6)對象間的相互作用通過消息傳遞,對象根據(jù)所接收到的消息做出自身的反應(yīng)第6頁,共48頁,2023年,2月20日,星期四對象的模塊化在程序?qū)崿F(xiàn)中將一些密切相關(guān)的操作以某種風(fēng)格匯集在一起,形成相對獨(dú)立的整體。模塊2模塊1模塊化的特征在于抽象和信息隱藏抽象劃分方式與客觀事物本來面目相對應(yīng)信息隱藏內(nèi)部信息的訪問必須通過接口模塊化設(shè)計(jì)遵守的準(zhǔn)則:分解與組合(注重:可分解性、可組合性、可理解性)分解組合第7頁,共48頁,2023年,2月20日,星期四軟件重用面向?qū)ο蠹夹g(shù)的發(fā)展使得軟件重用技術(shù)更臻完善和規(guī)范:多種重用方式:子程序(Subroutine)、程序包(Package)、庫(Library)對象的封裝使得對象模塊在程序開發(fā)者看來是一個(gè)黑匣子,它只需通過接口去操作對象和理解對象的行為,而不必關(guān)心其內(nèi)部實(shí)現(xiàn)細(xì)節(jié),從而程序開發(fā)人員能夠直接重用已經(jīng)開發(fā)的對象模塊對象的繼承在另一個(gè)角度提供了軟件重用方式,即通過繼承允許程序開發(fā)者自己的對象重用具有相同特性的其它對象的代碼面向?qū)ο蠹夹g(shù)中的COM(ComponentObjectModel)等提供了將對象模塊組裝在一起的同一機(jī)制和方法,利用他們應(yīng)用程序開發(fā)人員可以方便地利用已有的對象模塊組合在一起,構(gòu)造出更大規(guī)模的應(yīng)用程序第8頁,共48頁,2023年,2月20日,星期四對象數(shù)據(jù)封裝(1)問題空間 所有要研究的客觀現(xiàn)實(shí)的全體稱為問題空間或問題域,而把要研究的問題(客觀世界中的實(shí)體)稱之為問題空間的對象
任何一個(gè)客觀實(shí)體都是對象——對象的組成——相互作用(2)解空間 所有的解(程序及執(zhí)行程序的計(jì)算機(jī))組成的集合稱為解空間,把解(程序及執(zhí)行程序的計(jì)算機(jī)實(shí)體)稱做解空間的對象
對可解問題空間對象至少有一個(gè)解空間對象與其相對應(yīng)(3)封裝 將客觀事物抽象為一個(gè)相對獨(dú)立的實(shí)體,其中含有該事物的屬性及行為第9頁,共48頁,2023年,2月20日,星期四對象數(shù)據(jù)封裝對象的形態(tài)與靜態(tài)特征問題空間對象圖書1MyBook1:CBook書名:程序設(shè)計(jì)總頁數(shù):280版本:2m_pczName:char*=“程序設(shè)計(jì)”nTotalPage:int=280nEdition:int=2返回書名返回總頁數(shù)返回版本號(hào)char*GetBookName();intGetTotalPage();intGetEdition();分析中的對象設(shè)計(jì)中的對象人、學(xué)生、學(xué)校、班級(jí)、處、電視、汽車……等都可以被看作對象第10頁,共48頁,2023年,2月20日,星期四人類認(rèn)識(shí)世界的認(rèn)知規(guī)律之一:——根據(jù)對象的屬性和運(yùn)動(dòng)規(guī)律的相似性分類認(rèn)識(shí)和描述相似屬性和功能相似的對象構(gòu)成對象類任何一個(gè)具體的對象都是相應(yīng)對象類的一個(gè)實(shí)例類與對象的不同←→類的實(shí)例化對象類和對象實(shí)例對象之間通過消息傳遞,對象對所接收消息的反應(yīng)對象之間的相互作用抽象模型SenderReceiver/SenderMessage1ReceiverMessage1Message2第11頁,共48頁,2023年,2月20日,星期四對象之間的關(guān)系(1)一般—特殊結(jié)構(gòu)人類對事物進(jìn)行分類后,在概念上,一些種類的事物之間存在著聯(lián)系,一些類之間在行為、屬性等方面具有部分相似性,其間存在一般與特殊的對應(yīng)關(guān)系:汽車與轎車、學(xué)生與班委會(huì)……這種關(guān)系不存在于具體對象實(shí)例之間,而存在于對象類之間。一般性寓于特殊性之中,體現(xiàn)在一般類對象所具有的屬性和操作包含于特殊類對象之中。汽車轎車客車卡車火車客車貨車罐車第12頁,共48頁,2023年,2月20日,星期四對象之間的關(guān)系一般類特殊類特殊類的每個(gè)對象都為一般類的實(shí)例,因此特殊類的對象必將具有相應(yīng)的一般類的屬性和操作—特殊類這種獲取屬性和方法的方式稱為繼承由于特殊類(對象)具有一般類的所有屬性和操作,所以特殊類的任何一個(gè)對象必定是相應(yīng)一般類的對象,因此這種關(guān)系又常稱為IS_A_KIND_OF關(guān)系如果類A具有類B的全部屬性和操作,并且具有一些自己獨(dú)特的屬性和操作,那么A稱作B的特殊類,B稱作A的一般類
通過在已有類的基礎(chǔ)上添加一些特殊的屬性和操作形成新類的方式—稱為派生CPersonCStudentChar*NameIntNumber軌道衡超偏載軌道衡(2)父類—子類結(jié)構(gòu)(繼承、派生)第13頁,共48頁,2023年,2月20日,星期四單一繼承、多重繼承一般類一般類特殊類WNDSTRUCTCWindowTreeCScreenObjectCEditTextCWnd一般類特殊類特殊類第14頁,共48頁,2023年,2月20日,星期四繼承異常圖例順序環(huán)境屬性m1m2m3并發(fā)環(huán)境屬性同步控制部分功能定義部分屬性繼承需要同步控制改變被迫重定義第15頁,共48頁,2023年,2月20日,星期四派生是人類認(rèn)識(shí)的深入新的認(rèn)知經(jīng)常建立在已有認(rèn)知的基礎(chǔ)上,在已有知識(shí)的基礎(chǔ)上通過進(jìn)行新探索、新認(rèn)識(shí),在原有描述中添加新成分形成新認(rèn)識(shí)的描述鳥類北京麻雀東北麻雀南方麻雀麻雀類孔雀類…
……
…繼承代表著認(rèn)識(shí)的連續(xù)性第16頁,共48頁,2023年,2月20日,星期四二、面向?qū)ο蟮南到y(tǒng)分析第17頁,共48頁,2023年,2月20日,星期四需求分析與建模在關(guān)系數(shù)據(jù)庫設(shè)計(jì)的實(shí)體關(guān)系模型的基礎(chǔ)上擴(kuò)展了類、繼承和行為等概念得到。需求的描述,而不是問題的解決。哪些特性可選、哪些必需從模糊的設(shè)計(jì)和實(shí)現(xiàn)需求中分離出正確的需求產(chǎn)生需求建立模型開發(fā)者管理者用戶問題描述對象模型動(dòng)態(tài)模型函數(shù)模型與用戶磋商學(xué)科知識(shí)實(shí)際經(jīng)驗(yàn)第18頁,共48頁,2023年,2月20日,星期四面向?qū)ο蟮姆治龊驮O(shè)計(jì) 分析模型 設(shè)計(jì)模型 實(shí)現(xiàn)模型面向?qū)ο蠓治鯫OA面向?qū)ο笤O(shè)計(jì)OOD面向?qū)ο髮?shí)現(xiàn)OOI靜態(tài)特性:類層次關(guān)系模型動(dòng)態(tài)特性:狀態(tài)圖、事件蹤跡圖行為功能:數(shù)據(jù)流圖第19頁,共48頁,2023年,2月20日,星期四靜態(tài)結(jié)構(gòu)分析系統(tǒng)消息各個(gè)具體控件消息消息窗口按鈕圖標(biāo)菜單確定0..1幫助0..1消息10..1文件0..1編輯0..1消息窗口按鈕確定0..1圖標(biāo)消息0..1菜單文件0..1編輯0..1幫助0..1第20頁,共48頁,2023年,2月20日,星期四動(dòng)態(tài)行為分析對象生命周期
對象的動(dòng)態(tài)行為包括兩個(gè)方面的內(nèi)容: 單個(gè)對象自身生命周期演化; 整個(gè)對象系統(tǒng)中對象間消息傳遞及相互作用對象狀態(tài)導(dǎo)致狀態(tài)轉(zhuǎn)換的事件狀態(tài)轉(zhuǎn)換時(shí)的動(dòng)作S1S2S3S4event1event2event3event4狀態(tài)轉(zhuǎn)換圖第21頁,共48頁,2023年,2月20日,星期四動(dòng)態(tài)行為分析(數(shù)據(jù)流圖)施動(dòng)者通過產(chǎn)生或使用數(shù)據(jù)驅(qū)動(dòng)數(shù)據(jù)流圖的主動(dòng)對象,與數(shù)據(jù)流圖的輸入輸出聯(lián)系在一起。分析采集數(shù)據(jù)屏幕顯示數(shù)據(jù)處理數(shù)據(jù)存儲(chǔ)
數(shù)據(jù)流圖中為后繼訪問而存儲(chǔ)數(shù)據(jù)的被動(dòng)對象。與施動(dòng)者不同,它不產(chǎn)生任何操作,僅對存儲(chǔ)和訪問數(shù)據(jù)的請求響應(yīng)。讀數(shù)氣溫最高溫度最低溫度第22頁,共48頁,2023年,2月20日,星期四面向?qū)ο蟮南到y(tǒng)設(shè)計(jì)分析期間建立系統(tǒng)模型設(shè)計(jì)期間模型問題空間對象面向?qū)ο笤O(shè)計(jì)階段在分析模型基礎(chǔ)上進(jìn)行未來軟件的系統(tǒng)設(shè)計(jì)、對象設(shè)計(jì),從而得到設(shè)計(jì)模型,該模型包含了解決問題的方案和策略。是確定問題具體解決方案的過程第23頁,共48頁,2023年,2月20日,星期四系統(tǒng)設(shè)計(jì)1.系統(tǒng)層次結(jié)構(gòu)設(shè)計(jì)系統(tǒng)設(shè)計(jì)是以軟件方式實(shí)現(xiàn)系統(tǒng)功能而進(jìn)行軟件的系統(tǒng)結(jié)構(gòu)設(shè)計(jì)及程序?qū)崿F(xiàn)中的總體的、策略性的解決方案的制定高層次接口模塊1模塊2模塊3應(yīng)用程序模塊1模塊2模塊3核心模塊1模塊2模塊3驅(qū)動(dòng)模塊1模塊2模塊3硬件模塊1模塊2模塊3對軟件系統(tǒng)進(jìn)行的整體劃分。水平方向代表系統(tǒng)的不同抽象級(jí)別與層次;縱向表明每個(gè)層次所提供的功能模塊時(shí)間空間軟件硬件單一一般效率可維第24頁,共48頁,2023年,2月20日,星期四2系統(tǒng)數(shù)據(jù)存儲(chǔ)設(shè)計(jì)系統(tǒng)中各種數(shù)據(jù)對象的存儲(chǔ)方式設(shè)計(jì):內(nèi)存數(shù)據(jù)結(jié)構(gòu)、文件、數(shù)據(jù)庫等如分布環(huán)境中對象的存儲(chǔ)結(jié)構(gòu)與單機(jī)環(huán)境下不同、持久對象等3系統(tǒng)資源訪問設(shè)計(jì)確定需要使用的資源,包括訪問機(jī)制和訪問安全性機(jī)制等如:訪問隊(duì)列等4網(wǎng)絡(luò)與分布設(shè)計(jì)如何將問題劃分給不同節(jié)點(diǎn)進(jìn)行分布式運(yùn)算,需考慮網(wǎng)絡(luò)流量、節(jié)點(diǎn)計(jì)算能力、系統(tǒng)效率6互操作設(shè)計(jì)5并發(fā)性設(shè)計(jì)并發(fā)性控制,多進(jìn)程、多線程等文件并行訪問,使用臨界區(qū)、事件、互斥量、信號(hào)燈等相對于Client/Server而言。多個(gè)進(jìn)程之間可能需要為對方提供服務(wù)??赡鼙容^復(fù)雜,因?yàn)橛锌赡艽嬖谄脚_(tái)異構(gòu)問題。例外、邊界也許要處理系統(tǒng)設(shè)計(jì)第25頁,共48頁,2023年,2月20日,星期四原則:復(fù)用性可擴(kuò)充性健壯性協(xié)作性面向?qū)ο蟪绦蛟O(shè)計(jì):使用程序設(shè)計(jì)語言將設(shè)計(jì)方案加以表達(dá)類定義靜態(tài)模型動(dòng)態(tài)模型類的實(shí)現(xiàn)約束實(shí)現(xiàn)于代碼中增強(qiáng)系統(tǒng)健壯性面向?qū)ο蟪绦蛟O(shè)計(jì)的原則第26頁,共48頁,2023年,2月20日,星期四加強(qiáng)軟件可復(fù)用性的原則:保證操作的內(nèi)聚性
功能相對單一減少單一功能模塊代碼規(guī)模
函數(shù)代碼的適當(dāng)規(guī)模保證操作對外接口的一致性
相似操作具有一致性接口分解設(shè)計(jì)中的操作
以相對單一和基本的操作聯(lián)合實(shí)現(xiàn)設(shè)計(jì)中的操作操作均勻覆蓋數(shù)據(jù)
考慮操作的普適性加強(qiáng)封裝
操作只針對內(nèi)部數(shù)據(jù),實(shí)現(xiàn)與接口分離減少操作耦合
減少操作之間的相關(guān),盡量上下文無關(guān)第27頁,共48頁,2023年,2月20日,星期四綜合考慮效率與通用原則效率的考慮 好的算法與數(shù)據(jù)結(jié)構(gòu) 各種隱式調(diào)用(=、構(gòu)造函數(shù)、參數(shù)傳遞) 動(dòng)態(tài)綁定內(nèi)存管理 動(dòng)態(tài)分配(new錯(cuò))與內(nèi)存泄漏(leak)
VisualC++中內(nèi)存泄漏的自動(dòng)偵測封裝與通用 盡量保持封裝性與通用性的統(tǒng)一類型 類型檢查有助于發(fā)現(xiàn)錯(cuò)誤,尤其是參數(shù)、賦值方面參數(shù)化類持久對象約束可示化開發(fā)環(huán)境第28頁,共48頁,2023年,2月20日,星期四三、常用語言的分析比較第29頁,共48頁,2023年,2月20日,星期四常用面向?qū)ο蟮某绦蛘Z言VBPBC/C++/VCDelphiJavaVS.Net(C#,VB,VC++,VJ)其它第30頁,共48頁,2023年,2月20日,星期四常用程序設(shè)計(jì)語言的比較:要增加代碼的可重用性,要考慮以下幾點(diǎn):
代碼的可讀性。如格式、是否接近英語語法和單詞。代碼的表達(dá)能力,也就是簡單性,能用最少的語句和單詞實(shí)現(xiàn)同樣的功能。代碼的結(jié)構(gòu)性,如函數(shù)、模塊、類。語言功能的強(qiáng)大從下面幾點(diǎn)來說:
是否擁有大量的庫支持。這是最重要的,要求編寫任何功能的程序都有強(qiáng)大的庫支持。語法功能是否強(qiáng)大,比如是否有出錯(cuò)處理。是否有指針。
語言的友好性:語言包的大小,語言包越小,學(xué)習(xí)越簡單。語言是否有友好的編輯調(diào)試環(huán)境。語言的可視化和集成編程環(huán)境。第31頁,共48頁,2023年,2月20日,星期四常用程序設(shè)計(jì)語言的比較:VB全稱VisualBasic,它是以Basic語言作為其基本語言的一種可視化編程工具。VB作為一種較早出現(xiàn)的開發(fā)程序以其容易學(xué)習(xí),開發(fā)效率較高,具有完善的幫助系統(tǒng)等優(yōu)點(diǎn)曾影響了好幾代編程人員,但是VB不具備跨平臺(tái)特性,從而也決定了VB在未來的軟件開發(fā)中將會(huì)逐漸地退出其歷史舞臺(tái)。它對組件技術(shù)的支持是基于COM和ActiveX,對于組件技術(shù)不斷完善發(fā)展的今天,它也顯出了它的落后性。VB在進(jìn)行系統(tǒng)底層開發(fā)的時(shí)候也是相對復(fù)雜的,調(diào)用API函數(shù)需聲明,調(diào)用不方便,不能進(jìn)行DDK編程,不可能深入Ring0編程,不能嵌套匯編。具有面向?qū)ο筇匦?,比VC好,但也不算強(qiáng)。網(wǎng)絡(luò)功能和數(shù)據(jù)庫功能也沒有非常突出的表現(xiàn)。綜上所述,VB作為一種可視化的開發(fā)工具由于其本身的局限性,導(dǎo)致了它在未來軟件開發(fā)中逐步被其他工具所代替。第32頁,共48頁,2023年,2月20日,星期四常用程序設(shè)計(jì)語言的比較:C/C++自從C發(fā)明了以后,取代了匯編語言在操作系統(tǒng)編程的領(lǐng)導(dǎo)地位。各種操作系統(tǒng)的編程接口的默認(rèn)語言都是C語言。C++是C語言的加強(qiáng)版,增加了面向?qū)ο蠛推渌杏玫墓δ?,編程更方便輕松;C++亦支援大部分C的程序,大部分C編譯器也支援C++。在Unix-like上編寫圖形界面程序,有兩個(gè)選擇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)一性差的問題。第33頁,共48頁,2023年,2月20日,星期四常用程序設(shè)計(jì)語言的比較:VC++是基于MFC庫的可視化的開發(fā)工具,從總體上說它是一個(gè)功能強(qiáng)大但是不便使用的一種工具。它在網(wǎng)絡(luò)開發(fā)和多媒體開發(fā)都具有不俗的表現(xiàn),幫助系統(tǒng)也做得非常不錯(cuò)但是雖然是使用C++作為基本語言,但它在面向?qū)ο筇匦陨蠀s不夠好,主要是為了兼容C的程序,結(jié)果顧此失彼;在組件支持上也不太好。除了支持COM,ActiveX外還支持CORBA,但是沒有任何IDE支持,是所有C編譯器的功能,需要CORBA中間件支持。最大的問題是開發(fā)效率不高。第34頁,共48頁,2023年,2月20日,星期四常用程序設(shè)計(jì)語言的比較:PB全稱PowerBuilder,是開發(fā)MIS系統(tǒng)和各類數(shù)據(jù)庫跨平臺(tái)的首選,使用簡單,容易學(xué)習(xí),容易掌握,在代碼執(zhí)行效率上也有相當(dāng)出色的表現(xiàn)。PB是一種真正的4GL語言(第四代語言),可隨意直接嵌套SQL語句返回值被賦值到語句的變量中,支持存儲(chǔ)過程和數(shù)據(jù)庫函數(shù),數(shù)據(jù)訪問中具有無可比擬的靈活性。但是它在系統(tǒng)底層開發(fā)中犯了跟VB一樣的錯(cuò)誤,調(diào)用API函數(shù)需聲明,調(diào)用不方便,不能進(jìn)行DDK編程,不可能深入Ring0編程,不能嵌套匯編。在網(wǎng)絡(luò)開發(fā)中提供了較多動(dòng)態(tài)生成Web頁面的用戶對象和服務(wù)以及系統(tǒng)對象,非常適合編寫服務(wù)端動(dòng)態(tài)Web應(yīng)用,有利于商業(yè)邏輯的封裝;但是用于網(wǎng)絡(luò)通訊的支持不足;靜態(tài)頁面定制支持有限,使得PB在網(wǎng)絡(luò)方面的應(yīng)用也不能非常廣泛。具有面向?qū)ο筇匦?,相對而言比VB要好些。第35頁,共48頁,2023年,2月20日,星期四常用程序設(shè)計(jì)語言的比較:C++Builder,Delphi它們都是基于VCL庫的可視化開發(fā)工具,它們在組件技術(shù)的支持、數(shù)據(jù)庫支持、系統(tǒng)底層開發(fā)支持、網(wǎng)絡(luò)開發(fā)支持、面向?qū)ο筇匦缘雀鞣矫娑加邢喈?dāng)不錯(cuò)的表現(xiàn)。學(xué)習(xí)使用較為容易,充分提現(xiàn)了所見即所得的可視化開發(fā)方法,開發(fā)效率高。由于兩者都是Borland公司的產(chǎn)品,自然繼承了該公司一貫以來的優(yōu)良傳統(tǒng):代碼執(zhí)行效率高。但是,它們并不是毫無缺點(diǎn),它們所作的最大不足之處就是他們的幫助系統(tǒng)在眾多的編程工具中是屬于比較差的。C++Builder的VCL庫是基于Objectpascal(面向?qū)ο髉ascal),使得C++Builder在程序的調(diào)試執(zhí)行上都面向落后于其他編程工具。而Delphi則是它的語言不夠廣泛,開發(fā)系統(tǒng)軟件功能不足。
第36頁,共48頁,2023年,2月20日,星期四常用程序設(shè)計(jì)語言的比較:Java目前比較出名的是Borland出的JBuilder和IBM出的VisualAgeforJava,兩種工具都有一定數(shù)量的是用人群。JBuilder繼承了C++Builder/Delphi的特點(diǎn),在可視化上做得非常不錯(cuò),使用簡便。由于Java本身語言的特點(diǎn)使得他們在網(wǎng)絡(luò)開發(fā)中具有高人一等的表現(xiàn),而且面向?qū)ο筇匦愿?,支持的組件技術(shù)也非常多,跨平臺(tái)的特性也使得它在現(xiàn)在和未來的開發(fā)中占據(jù)越來越重要的地位。但是在系統(tǒng)底層開發(fā)和多媒體開發(fā)中卻表現(xiàn)得并不讓人滿意,這與設(shè)計(jì)Java的意圖有關(guān),其主要還是跨平臺(tái)。第37頁,共48頁,2023年,2月20日,星期四常用程序設(shè)計(jì)語言的比較:數(shù)據(jù)訪問對象VB:DAO,ADO,RDO功能相仿;PB:Transaction,DwControl,可綁定任何SQL語句和存儲(chǔ)過程,數(shù)據(jù)訪問具有無與比擬的靈活性;C++Builder/Dephi:具有包括DataSource,Table,Query,Midas,ADO在內(nèi)的二十多個(gè)組件和類完成數(shù)據(jù)訪問;VC:同VB,但有不少類庫可供使用,但極不方便,開發(fā)效率很低;Java:JavaJDBCAPI,不同的IDE具有不同的組件
第38頁,共48頁,2023年,2月20日,星期四常用程序設(shè)計(jì)語言的比較:數(shù)據(jù)表現(xiàn)對象VB:DBGriD,與數(shù)據(jù)庫相關(guān)的數(shù)據(jù)表現(xiàn)控件只有此一種,只能表現(xiàn)簡單表格數(shù)據(jù),表現(xiàn)手段單一;PB:DataWindow對象(功能異常強(qiáng)大,其資源描述語句構(gòu)成類似HTML的另外一種語言,可在其中插入任何對象,具有包括DBGrid在內(nèi)的數(shù)百種數(shù)據(jù)表現(xiàn)方法),只此一項(xiàng)功能就注定了PB在數(shù)據(jù)庫的功能從誕生的那一天起就遠(yuǎn)遠(yuǎn)超過了某些開發(fā)工具今天的水平;C++Builder/Dephi:具有包括DBGrid,DBNavigator,DBEdit,DBLookupListBox在內(nèi)的15個(gè)數(shù)據(jù)感知組件,DecisionCube,DecisionQuery在內(nèi)的6個(gè)數(shù)據(jù)倉庫組件和包括QRChart,QRExpr在內(nèi)的20多個(gè)報(bào)表組建,可靈活表現(xiàn)數(shù)據(jù),新版的控件更多;VC:同數(shù)據(jù)訪問對象,無直接的數(shù)據(jù)表現(xiàn)對象;Java:不同的IDE具有不同的組件,比較著名的有Jbuilder,PowerJ,VisualAgeforJava.
第39頁,共48頁,2023年,2月20日,星期四常用程序設(shè)計(jì)語言的比較:SQL語句執(zhí)行方式VB:將一句SQL串綁定到一個(gè)命令對象中,結(jié)果返回到ResultSet對象中自行拆取;PB:是一種真正的4GL語言,可隨意直接嵌套SQL語句返回值被賦值到語句的變量中,支持語句級(jí)游標(biāo),存儲(chǔ)過程和數(shù)據(jù)庫函數(shù);C++Builder/Dephi:使用數(shù)據(jù)庫組件或類完成SQL語句串的執(zhí)行和提交;VC:同數(shù)據(jù)訪問對象,無直接的組件支持SQL語句執(zhí)行;Java:SQLJ,JavaJDBCAPI.
第40頁,共48頁,2023年,2月20日,星期四常用程序設(shè)計(jì)語言的比較:面向?qū)ο筇匦悦嫦驅(qū)ο筇匦?/p>
VB:差;PB:較好;C++Builder/Dephi:很好;
VC:一般;Java:非常好跨平臺(tái)特性
VB:跨平臺(tái)性不怎么好,但是可以與WINDOWS家族無縫連接。
PB:跨平臺(tái)性一般
C++Builder/Dephi:WINDOWS家族,Linux
VC:無
Java:所有能夠運(yùn)行Java虛擬機(jī)的操作系統(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第41頁,共48頁,2023年,2月20日,星期四常用程序設(shè)計(jì)語言的比較:網(wǎng)絡(luò)或WEB開發(fā)支持VB:Asp,VBScript,具有編寫DHTML的簡單IDE,編寫靜態(tài)頁面非常方便;用于網(wǎng)絡(luò)通訊的支持一般。PB:DynaSript,Web.PB;提供了較多動(dòng)態(tài)生成Web頁面的用戶對象和服務(wù)以及系統(tǒng)對象,非常適合編寫服務(wù)端動(dòng)態(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等三十余個(gè)組件及類,用來處理網(wǎng)絡(luò)通訊控制,流處理,Mail,Email,FTP,HTTP等應(yīng)用協(xié)議處理以及生成動(dòng)態(tài)頁面和商業(yè)邏輯的封裝;功能強(qiáng)大,使用方便。VC:SAPI,WININETAPI等各類網(wǎng)絡(luò)或互聯(lián)網(wǎng)API可自由而方便的調(diào)用;提供CAsyncSocket等數(shù)量眾多的類;功能強(qiáng)大但使用不太方便。Java:不可直接調(diào)用API但內(nèi)置非常多的網(wǎng)絡(luò)及互聯(lián)網(wǎng)功能;可利用ServletAPI,JavaBeanAPI,以及JSP等協(xié)同開發(fā)功能強(qiáng)大的Web應(yīng)用;功能強(qiáng)大,對于某些IDE使用不太方便。第42頁,共48頁,2023年,2月20日,星期四常用程序設(shè)計(jì)語言的比較:綜合評價(jià)VB:是新人開發(fā)與系統(tǒng)無關(guān)的綜合應(yīng)用程序的首選;VB開發(fā)效率高,代碼執(zhí)行效率一般,但是入門和學(xué)習(xí)速度快,有較好的學(xué)習(xí)氛圍和幫助書籍和幫助文檔。但是隨著微軟的.net技術(shù)的推廣,VB將會(huì)逐漸推出歷史舞臺(tái)。PB:是開發(fā)大型MIS及各類數(shù)據(jù)庫跨平臺(tái)應(yīng)用的首選;從數(shù)據(jù)庫前端工具來講甚至遠(yuǎn)遠(yuǎn)超過了Oracle的Develop系列等專門的工具;從通用語言角度來講功能也與VB等不相上下;多媒體和網(wǎng)絡(luò)功能與其他工具相比較弱。C++Builder/Dephi:是唯一一套能夠同時(shí)適用于開發(fā)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 粵人版地理八年級(jí)下冊《第二節(jié) 重要的地理分界線》聽課評課記錄1
- 新人教版七年級(jí)數(shù)學(xué)上冊 3.1.2 《等式的性質(zhì)》聽評課記錄
- 七年級(jí)(人教版)集體備課聽評課記錄:3.2《解一元一次方程(一)-合并同類項(xiàng)與移項(xiàng)1》
- 新蘇教版六年級(jí)數(shù)學(xué)下冊聽評課記錄
- 三年級(jí)語文上聽評課記錄
- 蘇科版數(shù)學(xué)七年級(jí)下冊10.2《二元一次方程組》聽評課記錄
- 人教版地理七年級(jí)下冊第十章《極地地區(qū)》聽課評課記錄1
- 人教版數(shù)學(xué)八年級(jí)下冊《19.3 課題學(xué)習(xí) 選擇方案》聽評課記錄
- 新人教版七年級(jí)數(shù)學(xué)上冊1.3.2《有理數(shù)的減法》聽評課記錄2
- 八年級(jí)道德與法治上冊聽課評課記錄第一單元走進(jìn)社會(huì)生活
- FCI測試試題附答案
- 扁平藍(lán)色企業(yè)五險(xiǎn)一金知識(shí)培訓(xùn)講座宣講通用教學(xué)講座課件
- 新編《公路隧道養(yǎng)護(hù)技術(shù)規(guī)范》解讀課件
- 違紀(jì)行為處罰確認(rèn)單
- 雞蛋出廠檢驗(yàn)報(bào)告
- 高一化學(xué)教學(xué)進(jìn)度計(jì)劃表
- 新員工入職培訓(xùn)考試附答案
- 高校畢業(yè)生就業(yè)見習(xí)登記表
- 植物有效成分的提取
- 財(cái)務(wù)收支月報(bào)表excel模板
- 江蘇省社會(huì)穩(wěn)定風(fēng)險(xiǎn)評估辦法(試行)
評論
0/150
提交評論