版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
如何構造系統(tǒng)--一個小例子
----用VisualBasic開發(fā)一個應用程序ResearchCenteronIntelligentComputingforEnterprises&Services,HarbinInstituteofTechnology戰(zhàn)德臣哈爾濱工業(yè)大學教授.博士生導師教育部大學計算機課程教學指導委員會委員控件對象類窗口對象屬性設置窗口工程窗口窗體對象設計窗口窗體對象控件對象對象的事件
驅動程序窗口軟件系統(tǒng)的一種構造環(huán)境:VisualBasic(目標)軟件系統(tǒng)產(chǎn)生用戶使用如何構造系統(tǒng)--一個小例子(1)目標軟件系統(tǒng)與其構造環(huán)境怎樣構造呢?如何構造系統(tǒng)--一個小例子(2)如何利用環(huán)境提供的對象來構造程序VisualBasic提供了一組部分功能已經(jīng)實現(xiàn)的對象(對象框架)從中選擇合適的對象來構造自己的應用程序如何構造系統(tǒng)--一個小例子(2)如何利用環(huán)境提供的對象來構造程序設置對象的屬性,調整界面的布局,以反映應用程序的語義如何構造系統(tǒng)--一個小例子(2)如何利用環(huán)境提供的對象來構造程序為不同對象的不同操作,配置不同的程序,以完成不同的功能如何構造系統(tǒng)--一個小例子(3)程序的構造與運行調試并運行應用程序開發(fā)/編輯狀態(tài)下的應用程序運行狀態(tài)下的應用程序開發(fā)/編輯狀態(tài)下的應用程序運行狀態(tài)下的應用程序如何構造系統(tǒng)--一個小例子(4)小結?構造系統(tǒng)是簡單的構造系統(tǒng),利用面向對象的思維進行構造,是簡單的需要知道并了解對象?面向對象程序設計?面向對象系統(tǒng)構造?復雜系統(tǒng)/方法,之所以學習/掌握不好,是因為沒有思維的引導而僅注意細節(jié)對象及相關概念
---由對象的通俗示例到VisualBasic的對象ResearchCenteronIntelligentComputingforEnterprises&Services,HarbinInstituteofTechnology戰(zhàn)德臣哈爾濱工業(yè)大學教授.博士生導師教育部大學計算機課程教學指導委員會委員現(xiàn)實世界(或者說系統(tǒng))是由可區(qū)分“對象”構成的…(對象標識)“對象”之間是相互獨立的,對象有自己的狀態(tài)、對象自己執(zhí)行自身的動作而無需其他對象干預…(對象屬性及函數(shù))“對象”在接收到需服務的請求(消息/事件)時,可為其他對象提供服務…(消息驅動/事件驅動)張三李四王五類與對象的概念對象及相關概念(1)怎樣理解類與對象?有些對象具有相似的特性描述,組成一個“類”。各自獨立運行的類的實例:對象同類對象的共性形式或者說對象的類型:類張三王五類與對象的概念對象及相關概念(1)怎樣理解類與對象?類是對象的抽象或稱對象的“類型”,定義了同類型對象的框架(名字、屬性和功能);對象是類的實例,是實際運行的個體。類對象消息?消息是對象之間傳遞的內容,如指示、打聽、請求……消息是對象之間交互的唯一的內容消息是
“對象.函數(shù)()”的調用和執(zhí)行張三王五請問...(消息)您問…的解答是…(消息)Call王五.回答身高()Execute王五.回答身高()andReturn“身高是1.64m”對象及相關概念(2)對象間的交互--消息?
事件(Event)?事件是外界產(chǎn)生的一種能夠激活對象功能的特殊消息。當發(fā)生事件后將給所涉及對象發(fā)送一個消息,對象便可執(zhí)行相應的功能---事件驅動;有人敲門有電話張三.電話鈴響(){//不接;自動回復在上課;…}張三.有人敲門(){//暫停課程;詢問并處理;…}張三.其他(){…….}對象及相關概念(3)什么是事件?什么是事件驅動程序?對象及相關概念(4)Windows的對象與VisualBasic的對象?窗口(窗體)對象文本框對象按鈕對象列表框對象滾動條對象程序員無需關心的部分:事先做好,直接使用程序員可能關心的部分:留出相應位置,允許程序員編寫和修改程序員關心的部分:在相應位置,編寫和修改對象及相關概念(5)VisualBasic的對象框架與基于對象框架的系統(tǒng)構造?將同類別對象的共性內容做成一個對象框架對象框架基于對象框架的系統(tǒng)構造對象及相關概念(6)可視化程序的一種支撐技術—消息循環(huán)?應用程序1的消息循環(huán):循環(huán)接收屬于應用程序1的消息Windows系統(tǒng)的消息循環(huán):循環(huán)接收屬于操作系統(tǒng)的消息消息1消息2消息m應用程序2應用程序n應用程序1應用程序2的消息循環(huán):循環(huán)接收屬于應用程序2的消息消息1消息2消息m應用程序n的消息循環(huán):循環(huán)接收屬于應用程序n的消息用戶產(chǎn)生的事件或其他應用程序發(fā)出的消息依據(jù)應用程序隊列和消息確定向哪個應用程序發(fā)送消息1消息2消息m依據(jù)消息和對象控制序列找到對應該消息的對象程序執(zhí)行之對象2對象n對象1對象2對象n對象1134267消息循環(huán)是一個消息管理程序。它能夠接收各種消息,并將消息傳遞給各種相關對象,調用相關對象的事件驅動程序予以處理。是對象之間調用關系的一種處理機制。窗口對象按鈕對象一類控件對象文本框對象--一類控件對象對象及相關概念(7)VisualBasic的對象組織及其調用關系?將不同類別對象的之間的關系做成一個結構框架。結構框架是按照某一種體系結構(Architecture)實現(xiàn)的,用于連接、裝配各種對象形成系統(tǒng)的一套程序理解界面如何做!理解界面的要素與后面的程序如何銜接!對象框架自動產(chǎn)生、運行與銜接
小結基于對象框架的構造軟件系統(tǒng)對象框架對象類消息事件事件驅動程序消息循環(huán)面向對象程序構造的表達方法ResearchCenteronIntelligentComputingforEnterprises&Services,HarbinInstituteofTechnology戰(zhàn)德臣哈爾濱工業(yè)大學教授.博士生導師教育部大學計算機課程教學指導委員會委員類圖:描述類及其之間關系的一種圖示化方法類1變量及其類型函數(shù)名()類2變量及其類型函數(shù)名()繼承關系類3變量及其類型函數(shù)名()組合關系類名字變量及其類型函數(shù)名()類4變量及其類型函數(shù)名()聚合關系繼承關系組合關系聚合關系面向對象程序構造的表達方法(1)類/對象的概念及關系表達?Application…Create()Open()Activate()Deactivate()Close()Destroy()Window...Create()Open()Activate()Deactivate()Close()Destroy()聚合關系CtrButton...Create()Getfocus()Click()Dblclick()Lostfocus()Destroy()CtrText...Create()Getfocus()Click()TextChange()Lostfocus()Destroy()組合關系組合關系面向對象程序構造的表達方法(2)用類圖表達VisualBasic的結構框架?組合關系其他的控件對象類VisualBasic應用程序的結構框架Window...…Open()…CtrButton...…Click()…CtrText...…TextChange()…組合關系組合關系Window類的objectnWindow類的object1Window類的object2CtrButton類的object1“確定”CtrButton類的object2“取消”CtrButton類的object3“普通按鈕”面向對象程序構造的表達方法(2)用類圖表達VisualBasic的結構框架?VisualBasic窗體對象與控件對象的關系示意序列圖(又稱次序圖):描述類的對象之間交互關系的一種圖示化方法對象a:類1消息對象b:類1Call對象b的函數(shù)()類1的對象a發(fā)送一個消息給類1的對象b,即:對象a調用了對象b的一個函數(shù)():類1消息:類2Call類2的對象的函數(shù)()類1的某一對象(注意類前面的冒號,表示該框中是一個對象)發(fā)送一個消息給類2的某一對象.即:類1的對象調用了類2某對象的一個函數(shù)()面向對象程序構造的表達方法(3)對象之間消息交互的表達?:Application:Window:CtrButton:CtrTextCreate()Create()Create()Create()Open()Open()Getfocus()Activate()Lostfocus()DeActivate()DeActivate()Close()Close()……中間過程還有很多消息傳送,在此被忽略……面向對象程序構造的表達方法(4)用次序圖表達VisualBasic的結構框架--對象之間的消息交互?VisualBasic各類對象的消息交互關系示意對象a:類1對象b:類2對象b的函數(shù)()對象a:類1對象b:類2消息循環(huán)事件識別消息并找到相應對象()形成相應對象的函數(shù)調用或調用對象a的函數(shù)()或調用對象b的函數(shù)()消息消息各個對象不斷的產(chǎn)生消息,傳遞給消息循環(huán)消息循環(huán)依據(jù)消息的特征調用相應對象的函數(shù)()對象之間直接傳遞消息對象之間通過消息循環(huán)傳遞消息面向對象程序構造的表達方法(4)用次序圖表達VisualBasic的結構框架--對象之間的消息交互?VisualBasic的消息循環(huán)
小結基于對象框架的構造軟件系統(tǒng)對象框架對象類函數(shù)類圖次序圖面向對象程序設計語言ResearchCenteronIntelligentComputingforEnterprises&Services,HarbinInstituteofTechnology戰(zhàn)德臣哈爾濱工業(yè)大學教授.博士生導師教育部大學計算機課程教學指導委員會委員(傳統(tǒng)的、面向過程的)計算機語言(程序)的基本構成要素程序:變量與常量、表達式、語句與函數(shù)。主函數(shù)main():主程序函數(shù)定義:定義一個新函數(shù),即自己編寫的程序段落函數(shù)調用:調用一個函數(shù)完成一個計算
類與對象,消息與事件,函數(shù)或稱方法面向對象程序設計語言(1)面向過程的計算機語言vs.面向對象的計算機語言?(現(xiàn)代的、面向對象的)計算機語言(程序)的基本構成要素對象占用相對獨立的內存區(qū)域“若干同類別對象,雖有相同的程序,但卻處理不同的數(shù)據(jù)而產(chǎn)生不同的結果呢?”兩方面技術:一是抽象與封裝,二是對象的自動產(chǎn)生與運行。面向對象程序設計語言(2)對象和類要解決什么問題?對象:a1對象:a2類:A1數(shù)據(jù)D1,D2;函數(shù)f1(),f2();a1.D1,a1.D2;a1.f1();a1.f2()類:A2數(shù)據(jù)D3,D4;函數(shù)f3(),f4();a2.D1,a2.D2;a2.f1();a2.f2()對象:a3對象:a4a3.D3,a3.D4;a3.f3();a3.f4()a4.D3,a4.D4;a4.f3();a4.f4()對象:a11a11.D1,a11.D2;a11.f1();a11.f2()數(shù)據(jù)結構封裝了若干個變量;函數(shù)封裝了若干行的語句;類/對象封裝了若干數(shù)據(jù)結構和函數(shù)。定義創(chuàng)建與運行類:A1數(shù)據(jù)D1,D2;函數(shù)f1(),f2();面向對象程序設計語言(3)怎樣定義對象的結構---定義“類”?ClassA1 //定義一個類{
intD1,D2
//定義變量
intf1();
//定義類中的函數(shù)
intf2(); //定義類中的函數(shù)
intf1() //類A1的函數(shù)f1的程序{//f1的程序語句塊}
intf2() //類A1的函數(shù)f2的程序{//f2的程序語句塊1a4=newA2;
//創(chuàng)建類A2的對象a4
//f2的程序語句塊2D1=calla4.f3();//調用另一對象的某一函數(shù)
//f2的程序語句塊3}}對象結構的定義---即類的定義對象:a1對象:a2類:A1數(shù)據(jù)D1,D2;函數(shù)f1(),f2();a1.D1,a1.D2;a1.f1();a1.f2()a2.D1,a2.D2;a2.f1();a2.f2()對象:a11a11.D1,a11.D2;a11.f1();a11.f2()Main(){intM1,M2;
a1=newA1; //創(chuàng)建類A1的對象a1
a2=newA1; //創(chuàng)建類A1的對象a2a11
=newA1;//創(chuàng)建類A1的對象a11
M1=calla1.f1();
//執(zhí)行對象a1的f1的程序
M2=calla2.f1();
//執(zhí)行對象a2的f1的程序
a1.D1=15;
//對象a1的數(shù)據(jù)D1被賦值為15
a2.D1=20;
//對象a2的數(shù)據(jù)D1被賦值為20
……}對象的創(chuàng)建與運行面向對象程序設計語言(4)怎樣創(chuàng)建和運行對象?差別:面向過程的程序要素vs.面向對象的程序要素ClassA1
{
intD1,D2;
intf1(intqty)
{
inttemp;……//f1的程序語句塊}}intA1::f2()
{
//f2的程序語句塊}intf2(){//f2的程序語句塊
}Main()
{…a1=newA1;a2=newA1;a1.D1=M1;callf2();calla1.f1(M1);calla2.f1(M2);}Main(){
intD1,D2
intsum;sum=D1;callf1(sum);callf2();}intf1(intqty)
{
inttemp;temp=qty*qty;
return(qty);
//f1的程序語句塊}intf2()
{//f2的程序語句塊}獨立定義的函數(shù)全局變量局部變量類中定義的函數(shù)類中定義的函數(shù)獨立定義的函數(shù)用類產(chǎn)生對象調用對象的函數(shù)調用獨立的函數(shù)定義“類”面向對象程序設計語言(5)再看:面向過程的計算機語言vs.面向對象的計算機語言?對象:a1對象:a2a1.D1,a1.D2;a1.f1();a1.f2()a2.D1,a2.D2;a2.f1();a2.f2()對象:a4a4.D3,a4.D4;a4.f3();a4.f4()Calla4.f3();Calla4.f3();Main程序Calla1.f1();Calla2.f1();消息與對象的交互面向對象程序設計語言(6)消息與對象的交互?軟件模式(SoftwarePattern)由面向對象的程序構造,到(可視化的)對象框架的構造面向對象程序設計語言(7)VisualBasic對象類的實現(xiàn):軟件模式小結對象類對象框架基于對象框架的構造軟件系統(tǒng)面向對象程序構造:
組件/構件vs.結構框架ResearchCenteronIntelligentComputingforEnterprises&Services,HarbinInstituteofTechnology戰(zhàn)德臣哈爾濱工業(yè)大學教授.博士生導師教育部大學計算機課程教學指導委員會委員結構框架與構件ApplicationFrameworkApplicationBodyApplication程序員創(chuàng)建與編寫:按組件之間連接協(xié)議編寫(程序設計技巧:界面設計技巧、Java程序設計技巧等)按組件連接協(xié)議進行Component裝配與運行ClassA::Function1(){…//源程序代碼…}Component1ClassB::Function2(){…//源程序代碼…}Component2ClassC::Function3(){…//源程序代碼…}Component3ClassC::Function3(){//運行態(tài)程序代碼}Component3ClassB::Function2(){//運行態(tài)程序代碼}Component2ClassA::Function1(){//運行態(tài)程序代碼}Component1Connector1Connector2Connector5文件文件中的程序(軟件架構與軟件設計模式)操作系統(tǒng)或中間件系統(tǒng)支持運行(J2EE或.NET)面向對象程序構造:組件/構件vs.結構框架(1)一般意義的結構框架與組件?業(yè)務處理程序數(shù)據(jù)結構與數(shù)據(jù)存取界面連接件(Connector)程序員按連接約定書寫;結構框架按連接約定給予連接實現(xiàn)連接件(Connector)數(shù)據(jù)存取層構件業(yè)務邏輯層構件表示層構件數(shù)據(jù)庫聯(lián)接與訪問約定表示層與業(yè)務邏輯層聯(lián)接與訪問約定結構框架:容器業(yè)務邏輯層與數(shù)據(jù)存取層訪問約定數(shù)據(jù)庫管理系統(tǒng)一種中間件結構框架vs.組件/構件面向對象程序構造:組件/構件vs.結構框架(2)一種典型的結構框架:組件及其之間的關系不同組件的連接示意:事件驅動程序vs.用戶界面面向對象程序構造:組件/構件vs.結構框架(3)簡單的結構框架—不分離、緊耦合data2.Text對象名.屬性名該對象的名字為data2,其有一個屬性為Textadd_click()對象名_事件名()該對象的名字為add,其有一個事件為Click業(yè)務處理程序與用戶界面程序緊耦合在一起用戶界面實現(xiàn)用戶界面的代碼處理業(yè)務的各種程序,類及其中的函數(shù)面向對象程序構造:組件/構件vs.結構框架(4)簡單的結構框架---分離、耦合對象的:標識id,值value,事件onclick,類型typeonclick事件的驅動程序dbAccount不同組件的連接示意:事件驅動程序vs.用戶界面業(yè)務處理程序與用戶界面是分離的,但相互之間有耦合關系MVC框架:Model-View-Controller面向對象程序構造:組件/構件vs.結構框架(5)MVC結構框架---分離、借助于第三方關聯(lián)OKButton_ClickCancelButton_ClickGenButton_ClickProcess1(){…}Process2(){…}
Process3(){…}Case:OKButton_ClickProcess1();Case:CancelButton_ClickProcess2();Case:GenButton_ClickProcess3();界面要素及其操作業(yè)務處理程序界面要素及其操作與業(yè)務處理程序的映射ViewModelControllerMVCModel:程序Controller:界面要素與程序的映射View:界面MVC框架:Model-View-Controller面向對象程序構造:組件/構件vs.結構框架(5)MVC結構框架---分離、借助于第三方關聯(lián)業(yè)務處理程序與用戶界面是分離的,相互之間通過Controller聯(lián)系和映射這種結構有什么優(yōu)點?為什么要這樣開發(fā)呢?MVC框架:Model-View-Controller面向對象程序構造:組件/構件vs.結構框架(5)MVC結構框架---分離、借助于第三方關聯(lián)Springs開發(fā)集成框架Rails開發(fā)框架(建議同學自己查閱資料了解)AJAX框架,Webx框架通用概念結構Spring框架實現(xiàn)的概念分層可用于相應分層的開發(fā)技術面向對象程序構造:組件/構件vs.結構框架(6)基于結構框架的系統(tǒng)構造?基于組件/構件的構造對象類對象框架基于對象框架的構造結構框架(中間件)軟件系統(tǒng)小結軟件體系結構暨不同的軟件設計藝術ResearchCenteronIntelligentComputingforEnterprises&Services,HarbinInstituteofTechnology戰(zhàn)德臣哈爾濱工業(yè)大學教授.博士生導師教育部大學計算機課程教學指導委員會委員構建軟件也和建造不同特色建筑一樣,雖然看不見,但也有不同的風格。建筑的不同風格,不僅體現(xiàn)在建筑的外觀上,還體現(xiàn)在其基本的構件、構件間的連接方式、建造比例等,即體現(xiàn)的是一種體系結構。同樣,軟件也有不同的體系結構,不同體系結構能夠解決不同類別的問題。軟件體系結構vs.建筑體系結構軟件體系結構暨不同的軟件設計藝術(1)什么是軟件體系結構?
系統(tǒng)的結構
構件1構件2構件3構件4構件5系統(tǒng)的構件構件1系統(tǒng)構件2構件3構件4構件5+軟件體系結構構件:一組基本的構成要素
連接件:這些要素之間的連接關系物理分布:這些要素連接之后形成的拓撲結構約束:作用于這些要素或連接關系上的限制條件質量:(運行時的)性能。基于軟件體系結構的開發(fā)軟件體系結構暨不同的軟件設計藝術(1)什么是軟件體系結構?直接連接式集成的軟件體系結構軟件體系結構暨不同的軟件設計藝術(2)軟件體系結構的一個例子--面向“集成”的不同設計基于中間件集成的軟件體系結構軟件體系結構暨不同的軟件設計藝術(2)軟件體系結構的一個例子--面向“集成”的不同設計所謂的路由器是什么?其功能是什么?表示與存儲:存儲了一系列的路徑選擇規(guī)則(即什么條件,選擇什么路徑)執(zhí)行:按請求者給出的條件,查找規(guī)則,根據(jù)找到的規(guī)則,確定相應的路徑即提供者,實現(xiàn)二者的連接。轉換:必要的話要進行格式的轉換。不同提供者有不同的信息格式,請求者有統(tǒng)一的格式,與不同提供者連接時,由路由器進行相應格式的轉換。想象一下,代理器應具有什么樣的功能呢?基于中間件集成的軟件體系結構軟件體系結構暨不同的軟件設計藝術(2)軟件體系結構的一個例子--面向“集成”的不同設計Client/Server結構—C/S結構Browser/Server結構—B/S結構客戶端程序服務器端程序Web程序服務器端程序通用瀏覽器軟件體系結構暨不同的軟件設計藝術(3)軟件體系結構的第一個例子—C/S與B/S結構有限的客戶機(裝載客戶端程序)更新時要到每一處客戶機進行更新無限的客戶機(只要有通用瀏覽器)更新時只需在服務器上進行更新常見的軟件體系結構風格
數(shù)據(jù)流風格(如管道/過濾器、批處理等)、調用-返回風格(如主程序-子程序結構、面向對象結構、層次結構等)、倉庫風格(如數(shù)據(jù)中心、黑板系統(tǒng)等)。多處理器結構、客戶機-服務器結構(C/S)、瀏覽器-服務器結構(B/S)、分布式對象結構(如總線結構)、面向服務的體系結構SOA常見的軟件設計模式(微觀的軟件體系結構)
FactoryPattern(抽象工廠模式)、Fa?adePattern(外觀模式)、CommandPattern(命令模式)、StrategyPattern(策略模式)、IteratorPattern(迭代器模式)、AdaptorPattern(適配器模式)、ObserverPattern(觀察者模式)、BridgePattern(橋接模式)、SingletonPattern(單件模式)等等常見的軟件體系結構和軟件模式需要在后續(xù)課程中深入學習和掌握這些模式和體系結構軟件體系結構暨不同的軟件設計藝術(4)都有哪些軟件體系結構?軟件體系結構軟件設計模式軟件體系結構暨不同的軟件設計藝術(5)軟件結構的變化硬件平臺操作系統(tǒng)系統(tǒng)服務功能應用服務功能應用系統(tǒng)服務功能應用服務功能應用系統(tǒng)服務功能應用服務功能應用硬件平臺操作系統(tǒng)系統(tǒng)服務功能應用服務功能應用應用應用異構分布計算平臺操作系統(tǒng)、網(wǎng)絡協(xié)議通信服務特定應用編程接口應用應用應用信息服務功能服務通用編程接口中間件異構分布計算平臺操作系統(tǒng)、網(wǎng)絡協(xié)議特定應用編程接口應用應用應用通用編程接口數(shù)據(jù)庫管理系統(tǒng)應用服務器(中間件)其他如消息中間件、遠程過程調用中間件等軟件系統(tǒng)構造方法的演變ResearchCenteronIntelligentComputingforEnterprises&Services,HarbinInstituteofTechnology戰(zhàn)德臣哈爾濱工業(yè)大學教授.博士生導師教育部大學計算機課程教學指導委員會委員60’s,70’s年代的軟件:
結構化程序編程語言:C語言,F(xiàn)ortran語言簡單的平房怎樣讀得懂他人的程序;怎樣使自己編制的程序被其他人使用?怎樣使程序被他人讀懂并檢查正確性?主函數(shù)()數(shù)據(jù)結構與數(shù)據(jù)算法(的實現(xiàn))函數(shù)f1(){…}函數(shù)f2(){…}系統(tǒng)=算法
+數(shù)據(jù)結構(1960’s)系統(tǒng)=子程序/函數(shù)
+函數(shù)調用
(1980’s)軟件系統(tǒng)構造方法的演變(1)結構化程序構造?數(shù)據(jù)消息函數(shù)函數(shù)數(shù)據(jù)函數(shù)函數(shù)數(shù)據(jù)函數(shù)函數(shù)對象(類)對象消息對象(類)DataBase
數(shù)據(jù)庫管理系統(tǒng)對象=函數(shù)
+數(shù)據(jù)結構系統(tǒng)=對象
+消息(1980’s)80’s年代的軟件:
面向對象的程序編程語言:C++(83),Java(95),Visual系列語言(90)等復雜的特色建筑如:巨大拱頂和圓頂如何建設?軟件系統(tǒng)構造方法的演變(2)面向對象的程序構造?DataBase
數(shù)據(jù)庫管理系統(tǒng)ODBC開放數(shù)據(jù)庫互連DataBase
數(shù)據(jù)庫管理系統(tǒng)構件=對象
+消息構件=實現(xiàn)體
+接口系統(tǒng)=構件
+連接件
(1990’s)90’s年代的軟件:
構件化系統(tǒng)編程語言:Visual系列語言;Windows操作系統(tǒng)現(xiàn)代化復雜的高樓如:地基、承重、結構怎樣?軟件系統(tǒng)構造方法的演變(3)構件化的程序構造?90’s年代的軟件:
構件化系統(tǒng)基于體系結構與設計模式的軟件開發(fā)J2EE:Springs,Rails等.NetCORBA中間件予以支撐。Weblogic(BEA)WebSphere
(IBM)Tomcat(開源)…硬件操作系統(tǒng)應用程序硬件操作系統(tǒng)應用程序中間件現(xiàn)代化復雜的高樓如:地基、承重、結構怎樣?軟件系統(tǒng)構造方法的演變(3)構件化的程序構造?服務1服務nAB服務1服務m服務1(需求)服務總線:
控制并切換<服務1(需求)>是調用構件A的服務1還是構件B的服務1系統(tǒng)=服務
+服務總線
(2000’s)服務=構件的公共標準的接口系統(tǒng)=對象+消息(1980’s)系統(tǒng)=構件+連接件(1990’s)如:各建筑之間的互連互通?城鎮(zhèn)與城市的構建2000’s年代的軟件:
面向服務的體系結構SOA
基于Internet的軟件開發(fā)與云計算體系結構軟件系統(tǒng)構造方法的演變(4)服務化的程序構造?系統(tǒng)1構件流程+接口系統(tǒng)2構件流程+接口通過ESB調用相應的Service開放的接口,即:Service服務總線ESB:EnterspriseServiceBus(注冊、部署、管理、執(zhí)行Service)獲取要使用的Service注冊WebServiceInterface&WebServiceCall接口()軟件系統(tǒng)構造方法的演變(4)服務化的程序構造?WebServiceInterface后端處理邏輯數(shù)據(jù)訪問層數(shù)據(jù)源層UI界面前端處理邏輯調用層處理UI界面前端處理邏輯調用層處理WebService后端處理邏輯數(shù)據(jù)訪問層數(shù)據(jù)源層WebService后端處理邏輯數(shù)據(jù)訪問層數(shù)據(jù)源層WebService后端處理邏輯數(shù)據(jù)訪問層數(shù)據(jù)源層UI界面前端處理邏輯調用層處理WebServiceWebServiceWebService……注冊與部署WSDL程序庫WS注冊表發(fā)現(xiàn)并反饋消息傳輸協(xié)議轉換協(xié)議轉換訪問綁定訪問綁定路由控制路由控制BPEL引擎安全控制服務監(jiān)控其他…ESB傳統(tǒng)業(yè)務構件的開發(fā)服務化業(yè)務構件的開發(fā)ESB:
EnterpriseServiceBus軟件系統(tǒng)構造方法的演變(4)服務化的程序構造?ESB面向服務的體系結構:SOA—ServiceOrientedArchitecture軟件系統(tǒng)構造方法的演變(4)服務化的程序構造?SOA簡單的平房復雜的特色建筑如:巨大拱頂和圓頂如何建設?不能倒塌是第一位的現(xiàn)代化復雜的高樓如:地基、承重、結構怎樣?如:各建筑之間的互連互通?城鎮(zhèn)與城市的構建結構化程序:算法+數(shù)據(jù)結構子程序+函數(shù)調用對象化程序:對象+消息構件化程序:構件+體系結構服務化程序:服務+服務總線軟件的可靠性、可用性等軟件系統(tǒng)構造方法的演變(5)軟件系統(tǒng)構造方法的演變過程?基于組件/構件的構造對象類對象框架基于對象框架的構造結構框架(中間件)軟件系統(tǒng)面向服務的軟件系統(tǒng)構造
小結系統(tǒng)與系統(tǒng)類問題求解-總結ResearchCenteronIntelligentComputingforEnterprises&Services,HarbinInstituteofTechnology戰(zhàn)德臣哈爾濱工業(yè)大學教授.博士生導師教育部大學計算機課程教學指導委員會委員WhatHowWhereWhoWhenWhyDataFunctionNetworksPeopleTimeMotivation層級視角層級0層級1層級2層級3A-0整個系統(tǒng)1234A0123A212A212413A23由宏觀到微觀由粗粒度到細粒度不同視角看同一系統(tǒng)系統(tǒng)與系統(tǒng)類問題求解-總結(1)回顧:問題域建模-結構化思維?問題域建模----多視角多層次刻畫系統(tǒng)功能(或活動)輸入輸出目標與控制支撐問題域建模結構化思維自頂向下分解系統(tǒng)與系統(tǒng)類問題求解-總結(2)回顧:軟件域建模-面向對象思維?對象(類)1對象(類)2對象(類)4對象(類)3對象(類)1.狀態(tài)1對象(類)1.狀態(tài)2對象(類)1.狀態(tài)3功能A(轉換)對象(類)1功能A功能B功能C功能B(轉換)對象(類)1.狀態(tài)1對象(類)1.狀態(tài)2對象(類)1.狀態(tài)nS1:識別對象(類)S2:識別每一對象(類)的狀態(tài)S3:識別每一對象(類)的狀態(tài)的轉換S4:識別對象(類)的功能軟件域建模面向對象思維對象/類狀態(tài)與狀態(tài)變換-功能Model:程序Controller:界面要素與程序的映射View:界面基于組件/構件的構造對象類對象框架基于對象框架的構造結構框架(中間件)軟件系統(tǒng)面向服務的軟件系統(tǒng)構造系統(tǒng)與系統(tǒng)類問題求解-總結(3)回顧:軟件系統(tǒng)構造?軟件系統(tǒng)的構成軟件系統(tǒng)(設計)
模塊的集合
+
結構
+
數(shù)據(jù)庫模塊程序類的集合
+
各程序類對象間函數(shù)調用關系的集合。結構
(組成系統(tǒng)的模塊或構件+)模塊/構件之間的連接關系與作用關系,以及由模塊/構件與模塊/構件交互形成的拓撲結構。數(shù)據(jù)庫
永久保存的數(shù)據(jù)表的集合(程序)類程序變量集合
+
函數(shù)(子程序)的集合函數(shù)完成一個具體功能的程序變量函數(shù)處理與保存的數(shù)據(jù)
對象/實例程序類的一個執(zhí)行實體數(shù)據(jù)表
數(shù)據(jù)庫的基本控制單位…系統(tǒng)與系統(tǒng)類問題求解-總結(4)軟件系統(tǒng)?軟件系統(tǒng)的構成軟件系統(tǒng)(設計)
模塊的集合
+
結構+
數(shù)據(jù)庫模塊
程序類的集合+
各程序類的對象間函數(shù)調用關系的集合。結構
(組成系統(tǒng)的模塊或構件+)模塊/構件之間的連接關系與作用關系,以及由模塊/構件與模塊/構件交互形成的拓撲結構。數(shù)據(jù)庫
永久保存的數(shù)據(jù)表的集合(程序)類程序變量集合
+
函數(shù)(子程序)的集合函數(shù)完成一個具體功能的程序變量函數(shù)處理與保存的數(shù)據(jù)
對象/實例程序類的一個執(zhí)行實體數(shù)據(jù)表
數(shù)據(jù)庫的基本控制單位…系統(tǒng)與系統(tǒng)類問題求解-總結(4)軟件系統(tǒng)?軟件系統(tǒng)的構成軟件系統(tǒng)(設計)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度山西省高校教師資格證之高等教育法規(guī)自我提分評估(附答案)
- 2024年度年福建省高校教師資格證之高等教育學綜合練習試卷B卷附答案
- 2024年堿錳電池項目投資申請報告代可行性研究報告
- 新條令.新亮點-內務條令解讀
- 2024年度衛(wèi)生間工程承建協(xié)議
- 基建類和生產(chǎn)類標準差異條款
- 2024賓館租賃與管理協(xié)議
- 2024年產(chǎn)品銷售與購買具體協(xié)議
- 人教部編版二年級語文上冊第18課《劉胡蘭》精美課件
- 2024年食品加工定制服務協(xié)議模板
- 2023年傳染病防治知識考試試題及答案
- Windows server WEB服務器搭建與應用說課公開課一等獎省優(yōu)質課大賽獲獎課件
- 高考作文寫作句子素材:動漫臺詞(附適用主題與示例)
- 主題班會-同學情教學課件
- 泌尿系統(tǒng)完整結構培訓課件
- (中職)Office 辦公軟件應用W11-3詩詞-實訓任務+評分標準
- 規(guī)培體表腫物切除術
- 履帶吊使用安全技術規(guī)程
- 漢語詞性專題練習(附答案)
- 店長轉正考核(員工評價)
- 9-2 《第三方過程評估淋蓄水檢查內容》(指引)
評論
0/150
提交評論