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

下載本文檔

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

文檔簡(jiǎn)介

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

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

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

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

……

…繼承代表著認(rèn)識(shí)的連續(xù)性第16頁(yè),共48頁(yè),2023年,2月20日,星期四二、面向?qū)ο蟮南到y(tǒng)分析第17頁(yè),共48頁(yè),2023年,2月20日,星期四需求分析與建模在關(guān)系數(shù)據(jù)庫(kù)設(shè)計(jì)的實(shí)體關(guān)系模型的基礎(chǔ)上擴(kuò)展了類、繼承和行為等概念得到。需求的描述,而不是問(wèn)題的解決。哪些特性可選、哪些必需從模糊的設(shè)計(jì)和實(shí)現(xiàn)需求中分離出正確的需求產(chǎn)生需求建立模型開發(fā)者管理者用戶問(wèn)題描述對(duì)象模型動(dòng)態(tài)模型函數(shù)模型與用戶磋商學(xué)科知識(shí)實(shí)際經(jīng)驗(yàn)第18頁(yè),共48頁(yè),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頁(yè),共48頁(yè),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頁(yè),共48頁(yè),2023年,2月20日,星期四動(dòng)態(tài)行為分析對(duì)象生命周期

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

數(shù)據(jù)流圖中為后繼訪問(wèn)而存儲(chǔ)數(shù)據(jù)的被動(dòng)對(duì)象。與施動(dòng)者不同,它不產(chǎn)生任何操作,僅對(duì)存儲(chǔ)和訪問(wèn)數(shù)據(jù)的請(qǐng)求響應(yīng)。讀數(shù)氣溫最高溫度最低溫度第22頁(yè),共48頁(yè),2023年,2月20日,星期四面向?qū)ο蟮南到y(tǒng)設(shè)計(jì)分析期間建立系統(tǒng)模型設(shè)計(jì)期間模型問(wèn)題空間對(duì)象面向?qū)ο笤O(shè)計(jì)階段在分析模型基礎(chǔ)上進(jìn)行未來(lái)軟件的系統(tǒng)設(shè)計(jì)、對(duì)象設(shè)計(jì),從而得到設(shè)計(jì)模型,該模型包含了解決問(wèn)題的方案和策略。是確定問(wèn)題具體解決方案的過(guò)程第23頁(yè),共48頁(yè),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對(duì)軟件系統(tǒng)進(jìn)行的整體劃分。水平方向代表系統(tǒng)的不同抽象級(jí)別與層次;縱向表明每個(gè)層次所提供的功能模塊時(shí)間空間軟件硬件單一一般效率可維第24頁(yè),共48頁(yè),2023年,2月20日,星期四2系統(tǒng)數(shù)據(jù)存儲(chǔ)設(shè)計(jì)系統(tǒng)中各種數(shù)據(jù)對(duì)象的存儲(chǔ)方式設(shè)計(jì):內(nèi)存數(shù)據(jù)結(jié)構(gòu)、文件、數(shù)據(jù)庫(kù)等如分布環(huán)境中對(duì)象的存儲(chǔ)結(jié)構(gòu)與單機(jī)環(huán)境下不同、持久對(duì)象等3系統(tǒng)資源訪問(wèn)設(shè)計(jì)確定需要使用的資源,包括訪問(wèn)機(jī)制和訪問(wèn)安全性機(jī)制等如:訪問(wèn)隊(duì)列等4網(wǎng)絡(luò)與分布設(shè)計(jì)如何將問(wèn)題劃分給不同節(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)程、多線程等文件并行訪問(wèn),使用臨界區(qū)、事件、互斥量、信號(hào)燈等相對(duì)于Client/Server而言。多個(gè)進(jìn)程之間可能需要為對(duì)方提供服務(wù)。可能比較復(fù)雜,因?yàn)橛锌赡艽嬖谄脚_(tái)異構(gòu)問(wèn)題。例外、邊界也許要處理系統(tǒng)設(shè)計(jì)第25頁(yè),共48頁(yè),2023年,2月20日,星期四原則:復(fù)用性可擴(kuò)充性健壯性協(xié)作性面向?qū)ο蟪绦蛟O(shè)計(jì):使用程序設(shè)計(jì)語(yǔ)言將設(shè)計(jì)方案加以表達(dá)類定義靜態(tài)模型動(dòng)態(tài)模型類的實(shí)現(xiàn)約束實(shí)現(xiàn)于代碼中增強(qiáng)系統(tǒng)健壯性面向?qū)ο蟪绦蛟O(shè)計(jì)的原則第26頁(yè),共48頁(yè),2023年,2月20日,星期四加強(qiáng)軟件可復(fù)用性的原則:保證操作的內(nèi)聚性

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

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

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

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

考慮操作的普適性加強(qiáng)封裝

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

減少操作之間的相關(guān),盡量上下文無(wú)關(guān)第27頁(yè),共48頁(yè),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)偵測(cè)封裝與通用 盡量保持封裝性與通用性的統(tǒng)一類型 類型檢查有助于發(fā)現(xiàn)錯(cuò)誤,尤其是參數(shù)、賦值方面參數(shù)化類持久對(duì)象約束可示化開發(fā)環(huán)境第28頁(yè),共48頁(yè),2023年,2月20日,星期四三、常用語(yǔ)言的分析比較第29頁(yè),共48頁(yè),2023年,2月20日,星期四常用面向?qū)ο蟮某绦蛘Z(yǔ)言VBPBC/C++/VCDelphiJavaVS.Net(C#,VB,VC++,VJ)其它第30頁(yè),共48頁(yè),2023年,2月20日,星期四常用程序設(shè)計(jì)語(yǔ)言的比較:要增加代碼的可重用性,要考慮以下幾點(diǎn):

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

是否擁有大量的庫(kù)支持。這是最重要的,要求編寫任何功能的程序都有強(qiáng)大的庫(kù)支持。語(yǔ)法功能是否強(qiáng)大,比如是否有出錯(cuò)處理。是否有指針。

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

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

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

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

第40頁(yè),共48頁(yè),2023年,2月20日,星期四常用程序設(shè)計(jì)語(yǔ)言的比較:面向?qū)ο筇匦悦嫦驅(qū)ο筇匦?/p>

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

VC:一般;Java:非常好跨平臺(tái)特性

VB:跨平臺(tái)性不怎么好,但是可以與WINDOWS家族無(wú)縫連接。

PB:跨平臺(tái)性一般

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

VC:無(wú)

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(沒(méi)有任何IDE支持,是所有C編譯器的功能,需要CORBA中間件支持)

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

溫馨提示

  • 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論