軟件體系結(jié)構(gòu)101課件_第1頁
軟件體系結(jié)構(gòu)101課件_第2頁
軟件體系結(jié)構(gòu)101課件_第3頁
軟件體系結(jié)構(gòu)101課件_第4頁
軟件體系結(jié)構(gòu)101課件_第5頁
已閱讀5頁,還剩31頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

面向21世紀(jì)的軟件方法論教材

軟件體系結(jié)構(gòu)

—可重構(gòu)軟件設(shè)計(jì)方法學(xué)萬麟瑞

南京航空航天大學(xué)信息科學(xué)與技術(shù)學(xué)院面向21世紀(jì)的軟件方法論教材1課程簡介第一章概論第二章基本體系結(jié)構(gòu)風(fēng)格主程序/子過程結(jié)構(gòu),事件觸發(fā)結(jié)構(gòu),解釋器結(jié)構(gòu),層次結(jié)構(gòu),管道-過濾器結(jié)構(gòu),黑板結(jié)構(gòu),面向?qū)ο蠼Y(jié)構(gòu)第三章分布計(jì)算體系結(jié)構(gòu)C/S;CORBA,RMI;SOA,ESB,OGSA第四章軟件設(shè)計(jì)模式TemplateMethod,Strategy;Composite,MVC;Builder第五章體系結(jié)構(gòu)的形式描述方法第六章軟件構(gòu)架與構(gòu)件設(shè)計(jì)方法第七章應(yīng)用案例分析課程簡介2參考文獻(xiàn)[1]萬建成等.軟件體系結(jié)構(gòu)的原理、組成與應(yīng)用.科學(xué)出版社,2002

[2]張友生.軟件體系結(jié)構(gòu).清華大學(xué)出版社,2004[3]李英軍等譯.設(shè)計(jì)模式.機(jī)械工業(yè)出版社,2000[4]B.P.Douglass著,麥中凡等譯.實(shí)時(shí)設(shè)計(jì)模式.北京航空航天大學(xué)出版社,2004[5]王志堅(jiān)等.軟件構(gòu)件技術(shù)及其應(yīng)用.科學(xué)出版社,2005[6]萬麟瑞.面向構(gòu)件的軟件開發(fā)方法學(xué)研究.小型微型計(jì)算機(jī)系統(tǒng),2003,Vol.24No.3

參考文獻(xiàn)3

第1講:軟件體系結(jié)構(gòu)的發(fā)展與應(yīng)用概況第一章概論1.1軟件體系結(jié)構(gòu)的研究概況1.1.1體系結(jié)構(gòu)的模型抽象理念1.1.2體系結(jié)構(gòu)描述語言1.2軟件體系結(jié)構(gòu)的設(shè)計(jì)理念1.2.1軟件結(jié)構(gòu)及其設(shè)計(jì)理念1.2.2軟件體系結(jié)構(gòu)及其設(shè)計(jì)理念第1講:軟件體系結(jié)構(gòu)的發(fā)展與應(yīng)用概況4第一章概論

大系統(tǒng)認(rèn)知理念:

框架過程設(shè)計(jì)方法程序/數(shù)據(jù)/工具框架構(gòu)架體系結(jié)構(gòu)

軟件框架:從總體上架構(gòu)主部/子部結(jié)構(gòu)的可實(shí)例化系統(tǒng)軟件構(gòu)架:可重構(gòu)領(lǐng)域化的軟件體系結(jié)構(gòu)軟件體系結(jié)構(gòu):

◆系統(tǒng)地研究軟件結(jié)構(gòu)設(shè)計(jì)與構(gòu)造的軟件領(lǐng)域工程

◆程序設(shè)計(jì)方法學(xué)/軟件工程/領(lǐng)域工程/重構(gòu)工程等多學(xué)科相結(jié)合的新興邊緣學(xué)科

◆面向21世紀(jì)的可重構(gòu)軟件設(shè)計(jì)方法學(xué)◆工程性/實(shí)用性強(qiáng)的應(yīng)用學(xué)科與技術(shù)第一章概論51.1軟件體系結(jié)構(gòu)的研究概況軟件方法論的發(fā)展歷程:

面向過程方法面向?qū)ο蠓椒嫦驑?gòu)件方法

程序結(jié)構(gòu)/數(shù)據(jù)結(jié)構(gòu)軟件結(jié)構(gòu)軟件體系結(jié)構(gòu)

1.1.1體系結(jié)構(gòu)的模型抽象理念

1.程序結(jié)構(gòu)抽象:機(jī)器指令—匯編語言—子程序—控制流程—高級(jí)語言—過程/函數(shù)—數(shù)據(jù)結(jié)構(gòu)/類型—模塊程序

2.軟件結(jié)構(gòu)抽象①面向過程模型(功能模型,數(shù)據(jù)流模型)②面向數(shù)據(jù)模型(信息模型,語義數(shù)據(jù)模型)③面向?qū)ο竽P停▽?duì)象模型,組件模型)1.1軟件體系結(jié)構(gòu)的研究概況63.軟件體系結(jié)構(gòu)抽象內(nèi)涵:體系結(jié)構(gòu)風(fēng)格,設(shè)計(jì)模式;構(gòu)件,形式描述;MDA(1)體系結(jié)構(gòu)風(fēng)格:具有相同風(fēng)范或族集特性的特定結(jié)構(gòu)類型

①調(diào)用-返回結(jié)構(gòu):靜態(tài)結(jié)構(gòu)的基礎(chǔ)描述方法主程序/子過程結(jié)構(gòu),層次結(jié)構(gòu),客戶/服務(wù)器結(jié)構(gòu)

②請求-響應(yīng)結(jié)構(gòu):運(yùn)行結(jié)構(gòu)的基礎(chǔ)描述方法中斷/事件結(jié)構(gòu),進(jìn)程/線程結(jié)構(gòu),消息結(jié)構(gòu)

③虛擬機(jī)系統(tǒng):編譯器,解釋器,規(guī)則基/產(chǎn)生式系統(tǒng)

④數(shù)據(jù)流系統(tǒng):順序批處理結(jié)構(gòu),編譯器,狀態(tài)轉(zhuǎn)換器,管道—過濾器結(jié)構(gòu),工作流結(jié)構(gòu)

⑤數(shù)據(jù)中心系統(tǒng):黑板系統(tǒng),數(shù)據(jù)倉庫,超文本系統(tǒng)

⑥面向?qū)ο笙到y(tǒng):對(duì)象結(jié)構(gòu),Agent結(jié)構(gòu)3.軟件體系結(jié)構(gòu)抽象7

(2)設(shè)計(jì)模式:結(jié)構(gòu)/行為上具有參照價(jià)值的可預(yù)制設(shè)計(jì)樣板可形成面向模式的軟件體系結(jié)構(gòu)三種類型:構(gòu)造型,結(jié)構(gòu)型,行為型

①構(gòu)造型模式:生成器,抽象工廠,工廠方法,原型,單例;整體—部分,視圖句柄;指針計(jì)數(shù)器

②結(jié)構(gòu)型模式:組合器;代理結(jié)構(gòu);享元,外觀;

模型—視圖—控制(MVC),表示—抽象—控制(PAC);適配器,橋接器

③行為型模式:模板方法,策略,觀察器;迭代器,命令結(jié)構(gòu),責(zé)任鏈;發(fā)送—接收,客戶—分發(fā)—服務(wù),出版—訂購(2)設(shè)計(jì)模式:結(jié)構(gòu)/行為上具有參照價(jià)值的可預(yù)制設(shè)計(jì)樣板81.1.2體系結(jié)構(gòu)描述語言

ADL:為軟件系統(tǒng)的概念框架建模和形式規(guī)約描述提供具體的概念元、語法和語義的說明語言

(1)數(shù)學(xué)描述語言MDL:Z語言,類屬理論,Petri網(wǎng)

(2)軟件說明語言SDL:UML,XML,IDL;WPDL,XPDL

(3)體系結(jié)構(gòu)語言ADL:①結(jié)構(gòu)風(fēng)格類:

Aesop,C2,Wright結(jié)構(gòu)實(shí)例類:Adage,MetaH,Rapide,Unicon約束配置類:Darwin,CHAM②可交換體系結(jié)構(gòu)描述語言ACME(中介表達(dá)通用工具)

非ADL語言:編程語言,模塊接口語言MIL,需求描述語言;數(shù)學(xué)描述語言;軟件說明語言1.1.2體系結(jié)構(gòu)描述語言91.2軟件體系結(jié)構(gòu)的設(shè)計(jì)理念1.2.1軟件結(jié)構(gòu)及其設(shè)計(jì)理念

1.軟件的結(jié)構(gòu)要素

程序:一組數(shù)據(jù)與處理方法(操作指令)的集合早期:Pascal語言的發(fā)明者N.Wirth提出的程序理念

程序=算法+數(shù)據(jù)結(jié)構(gòu)

發(fā)展:非交互交互性數(shù)據(jù)處理與計(jì)算方法

程序=界面+算法+數(shù)據(jù)結(jié)構(gòu)三層構(gòu)架軟件:一組程序、相關(guān)信息及其文檔的集合程序—按預(yù)定功能和性能要求設(shè)計(jì)的可執(zhí)行指令序列信息—包括驅(qū)動(dòng)數(shù)據(jù)結(jié)構(gòu)正常工作的數(shù)據(jù)和設(shè)計(jì)知識(shí)文檔—與程序開發(fā)、維護(hù)和使用有關(guān)的圖文資料1.2軟件體系結(jié)構(gòu)的設(shè)計(jì)理念10

(1)結(jié)構(gòu)元素:關(guān)于軟件的基本組成原理及軟件分塊機(jī)制

部件:程序片段(指令序列),數(shù)據(jù)(數(shù)據(jù)項(xiàng)集);過程,函數(shù),變量;模塊;對(duì)象;表,庫,倉

關(guān)系:順序,分支,循環(huán);并行,嵌套,選擇;回環(huán)中斷,參數(shù),消息;主程序/子過程;程序覆蓋(2)控制流程:語句結(jié)構(gòu)程序結(jié)構(gòu)模塊結(jié)構(gòu)▲CHE①順序結(jié)構(gòu):sequence[i]②分支結(jié)構(gòu):if…else…

switchcase[i]…else…③循環(huán)結(jié)構(gòu):while…do…repeat…until…

④轉(zhuǎn)移語句:過程調(diào)用:<過程名>(參數(shù)1,…,參數(shù)n)中斷/事件設(shè)置:set<事件>to<過程名>;(1)結(jié)構(gòu)元素:關(guān)于軟件的基本組成原理及軟件分塊機(jī)制11

2.模塊結(jié)構(gòu):體現(xiàn)程序語句序列的基本功能分塊▲CHE與連接控制流之間的構(gòu)造關(guān)系

外部表示:具有順序、選擇、循環(huán)及其轉(zhuǎn)移連接控制方式的程序結(jié)構(gòu)抽象

內(nèi)部表示:具有I/O、處理邏輯、內(nèi)部數(shù)據(jù)及其運(yùn)行特性的一組算法的集合2.模塊結(jié)構(gòu):體現(xiàn)程序語句序列的基本功能分塊▲CHE12

3.基本連接機(jī)制(1)過程調(diào)用:部件間通過對(duì)方的過程或方法來實(shí)現(xiàn)顯式連接調(diào)用時(shí)必須知道對(duì)方的部件標(biāo)識(shí)、操作標(biāo)識(shí)及參數(shù)設(shè)置形式:<過程名列表>(參數(shù)表)擴(kuò)充模式:本地過程調(diào)用(LPC),遠(yuǎn)程過程調(diào)用(RPC)(2)事件觸發(fā):用特定事件名來標(biāo)識(shí)中斷號(hào)所形成的隱式連接事件:對(duì)象狀態(tài)轉(zhuǎn)換的控制信息/方法調(diào)用的消息事件設(shè)置:set<事件>to<過程名>;事件腳本定義:事件名[監(jiān)護(hù)條件]/動(dòng)作表達(dá)式(3)服務(wù)接口:部件間通過互連接口進(jìn)行功能交互和數(shù)據(jù)交換,以實(shí)現(xiàn)請求方和接收方之間的連接服務(wù)

接口∷=(接口名,類型,事件,操作,上下文)3.基本連接機(jī)制134.軟件結(jié)構(gòu)設(shè)計(jì)的總體理念

設(shè)計(jì)思想+概念元素+表示方法+通用劃分策略

層次抽象:體現(xiàn)問題復(fù)雜度分割與組塊分層的結(jié)構(gòu)化觀點(diǎn)表示方法:程序-模塊/功能結(jié)構(gòu)(控制結(jié)構(gòu),控制關(guān)系)數(shù)據(jù)結(jié)構(gòu)(類型,值)抽象數(shù)據(jù)類型(對(duì)象,關(guān)系,操作方法,語義)對(duì)象結(jié)構(gòu)(對(duì)象,分類,關(guān)系,消息/方法)

通用劃分:接口/實(shí)現(xiàn);程序/數(shù)據(jù);型/實(shí)例;實(shí)體/規(guī)約4.軟件結(jié)構(gòu)設(shè)計(jì)的總體理念141.2.2軟件體系結(jié)構(gòu)及其設(shè)計(jì)理念

1.軟件體系結(jié)構(gòu)定義軟件體系結(jié)構(gòu):是具有整體化抽象層次的骨架體結(jié)構(gòu),是可模式化/模型化/模板化的問題解決框架;是可預(yù)制、可替換、可組合和可演化的軟件模型,是由一組構(gòu)件、連接子關(guān)系以及相關(guān)約束組成的軟件系統(tǒng)2.體系結(jié)構(gòu)設(shè)計(jì)的概念模型要素:components,connectors,constraints;Configuration構(gòu)架=構(gòu)件名(類型,端口,計(jì)算方法)+連接件名(類型,角色,交互方法)+約束(實(shí)體約束,連接約束)+配置(構(gòu)件名,連接件名,粘連特性)1.2.2軟件體系結(jié)構(gòu)及其設(shè)計(jì)理念15

3.軟件體系結(jié)構(gòu)的特性

①整體性:側(cè)重體系化結(jié)構(gòu)的描述與設(shè)計(jì),包括全局結(jié)構(gòu)與局部結(jié)構(gòu)的演化關(guān)系和宏觀特性;比基本軟件結(jié)構(gòu)具有更高層次的設(shè)計(jì)抽象,一般針對(duì)復(fù)雜和大型的軟件系統(tǒng)

②層次性:側(cè)重軟件抽象的粒度級(jí)劃分,一般定義為構(gòu)架級(jí)、構(gòu)件級(jí)和對(duì)象級(jí)

③可預(yù)制性:單元結(jié)構(gòu)成熟,可預(yù)先設(shè)計(jì)、實(shí)現(xiàn)和提供選擇④

可替換性:不是可修改和可覆蓋,而是可插拔和可重載⑤可組合性:結(jié)構(gòu)可重組,部件可重用,應(yīng)用接口可擴(kuò)充⑥可演化性:框架-規(guī)則-實(shí)例;泛化/特化;

通過模板方法和創(chuàng)建機(jī)制動(dòng)態(tài)生成一個(gè)特定應(yīng)用3.軟件體系結(jié)構(gòu)的特性16

4.體系結(jié)構(gòu)的設(shè)計(jì)層次

體現(xiàn)問題分割與抽象形式的規(guī)范化和結(jié)構(gòu)化觀點(diǎn);體現(xiàn)軟件分塊的粒度級(jí)劃分思想與設(shè)計(jì)通則;體現(xiàn)功能分割、軟件分層、基于協(xié)議的層間交互和語義規(guī)則描述等設(shè)計(jì)思想

(1)層次構(gòu)成特征

高層:接近應(yīng)用描述與領(lǐng)域性模型,形成概念結(jié)構(gòu)中層:接近軟件設(shè)計(jì)與原理性模型,形成邏輯結(jié)構(gòu)低層:接近硬件/程序與可用性模型,形成物理結(jié)構(gòu)

(2)層次劃分方法

縱向:依據(jù)問題復(fù)雜度/重要性形成層間關(guān)系抽象橫向:依據(jù)問題分塊大小/結(jié)構(gòu)獨(dú)立性形成層內(nèi)功能抽象4.體系結(jié)構(gòu)的設(shè)計(jì)層次17

(3)體系結(jié)構(gòu)的層次模型

按軟件抽象粒度級(jí)和構(gòu)成關(guān)系劃分(層次/粒度)(3)體系結(jié)構(gòu)的層次模型18

面向21世紀(jì)的軟件方法論教材

軟件體系結(jié)構(gòu)

—可重構(gòu)軟件設(shè)計(jì)方法學(xué)萬麟瑞

南京航空航天大學(xué)信息科學(xué)與技術(shù)學(xué)院面向21世紀(jì)的軟件方法論教材19課程簡介第一章概論第二章基本體系結(jié)構(gòu)風(fēng)格主程序/子過程結(jié)構(gòu),事件觸發(fā)結(jié)構(gòu),解釋器結(jié)構(gòu),層次結(jié)構(gòu),管道-過濾器結(jié)構(gòu),黑板結(jié)構(gòu),面向?qū)ο蠼Y(jié)構(gòu)第三章分布計(jì)算體系結(jié)構(gòu)C/S;CORBA,RMI;SOA,ESB,OGSA第四章軟件設(shè)計(jì)模式TemplateMethod,Strategy;Composite,MVC;Builder第五章體系結(jié)構(gòu)的形式描述方法第六章軟件構(gòu)架與構(gòu)件設(shè)計(jì)方法第七章應(yīng)用案例分析課程簡介20參考文獻(xiàn)[1]萬建成等.軟件體系結(jié)構(gòu)的原理、組成與應(yīng)用.科學(xué)出版社,2002

[2]張友生.軟件體系結(jié)構(gòu).清華大學(xué)出版社,2004[3]李英軍等譯.設(shè)計(jì)模式.機(jī)械工業(yè)出版社,2000[4]B.P.Douglass著,麥中凡等譯.實(shí)時(shí)設(shè)計(jì)模式.北京航空航天大學(xué)出版社,2004[5]王志堅(jiān)等.軟件構(gòu)件技術(shù)及其應(yīng)用.科學(xué)出版社,2005[6]萬麟瑞.面向構(gòu)件的軟件開發(fā)方法學(xué)研究.小型微型計(jì)算機(jī)系統(tǒng),2003,Vol.24No.3

參考文獻(xiàn)21

第1講:軟件體系結(jié)構(gòu)的發(fā)展與應(yīng)用概況第一章概論1.1軟件體系結(jié)構(gòu)的研究概況1.1.1體系結(jié)構(gòu)的模型抽象理念1.1.2體系結(jié)構(gòu)描述語言1.2軟件體系結(jié)構(gòu)的設(shè)計(jì)理念1.2.1軟件結(jié)構(gòu)及其設(shè)計(jì)理念1.2.2軟件體系結(jié)構(gòu)及其設(shè)計(jì)理念第1講:軟件體系結(jié)構(gòu)的發(fā)展與應(yīng)用概況22第一章概論

大系統(tǒng)認(rèn)知理念:

框架過程設(shè)計(jì)方法程序/數(shù)據(jù)/工具框架構(gòu)架體系結(jié)構(gòu)

軟件框架:從總體上架構(gòu)主部/子部結(jié)構(gòu)的可實(shí)例化系統(tǒng)軟件構(gòu)架:可重構(gòu)領(lǐng)域化的軟件體系結(jié)構(gòu)軟件體系結(jié)構(gòu):

◆系統(tǒng)地研究軟件結(jié)構(gòu)設(shè)計(jì)與構(gòu)造的軟件領(lǐng)域工程

◆程序設(shè)計(jì)方法學(xué)/軟件工程/領(lǐng)域工程/重構(gòu)工程等多學(xué)科相結(jié)合的新興邊緣學(xué)科

◆面向21世紀(jì)的可重構(gòu)軟件設(shè)計(jì)方法學(xué)◆工程性/實(shí)用性強(qiáng)的應(yīng)用學(xué)科與技術(shù)第一章概論231.1軟件體系結(jié)構(gòu)的研究概況軟件方法論的發(fā)展歷程:

面向過程方法面向?qū)ο蠓椒嫦驑?gòu)件方法

程序結(jié)構(gòu)/數(shù)據(jù)結(jié)構(gòu)軟件結(jié)構(gòu)軟件體系結(jié)構(gòu)

1.1.1體系結(jié)構(gòu)的模型抽象理念

1.程序結(jié)構(gòu)抽象:機(jī)器指令—匯編語言—子程序—控制流程—高級(jí)語言—過程/函數(shù)—數(shù)據(jù)結(jié)構(gòu)/類型—模塊程序

2.軟件結(jié)構(gòu)抽象①面向過程模型(功能模型,數(shù)據(jù)流模型)②面向數(shù)據(jù)模型(信息模型,語義數(shù)據(jù)模型)③面向?qū)ο竽P停▽?duì)象模型,組件模型)1.1軟件體系結(jié)構(gòu)的研究概況243.軟件體系結(jié)構(gòu)抽象內(nèi)涵:體系結(jié)構(gòu)風(fēng)格,設(shè)計(jì)模式;構(gòu)件,形式描述;MDA(1)體系結(jié)構(gòu)風(fēng)格:具有相同風(fēng)范或族集特性的特定結(jié)構(gòu)類型

①調(diào)用-返回結(jié)構(gòu):靜態(tài)結(jié)構(gòu)的基礎(chǔ)描述方法主程序/子過程結(jié)構(gòu),層次結(jié)構(gòu),客戶/服務(wù)器結(jié)構(gòu)

②請求-響應(yīng)結(jié)構(gòu):運(yùn)行結(jié)構(gòu)的基礎(chǔ)描述方法中斷/事件結(jié)構(gòu),進(jìn)程/線程結(jié)構(gòu),消息結(jié)構(gòu)

③虛擬機(jī)系統(tǒng):編譯器,解釋器,規(guī)則基/產(chǎn)生式系統(tǒng)

④數(shù)據(jù)流系統(tǒng):順序批處理結(jié)構(gòu),編譯器,狀態(tài)轉(zhuǎn)換器,管道—過濾器結(jié)構(gòu),工作流結(jié)構(gòu)

⑤數(shù)據(jù)中心系統(tǒng):黑板系統(tǒng),數(shù)據(jù)倉庫,超文本系統(tǒng)

⑥面向?qū)ο笙到y(tǒng):對(duì)象結(jié)構(gòu),Agent結(jié)構(gòu)3.軟件體系結(jié)構(gòu)抽象25

(2)設(shè)計(jì)模式:結(jié)構(gòu)/行為上具有參照價(jià)值的可預(yù)制設(shè)計(jì)樣板可形成面向模式的軟件體系結(jié)構(gòu)三種類型:構(gòu)造型,結(jié)構(gòu)型,行為型

①構(gòu)造型模式:生成器,抽象工廠,工廠方法,原型,單例;整體—部分,視圖句柄;指針計(jì)數(shù)器

②結(jié)構(gòu)型模式:組合器;代理結(jié)構(gòu);享元,外觀;

模型—視圖—控制(MVC),表示—抽象—控制(PAC);適配器,橋接器

③行為型模式:模板方法,策略,觀察器;迭代器,命令結(jié)構(gòu),責(zé)任鏈;發(fā)送—接收,客戶—分發(fā)—服務(wù),出版—訂購(2)設(shè)計(jì)模式:結(jié)構(gòu)/行為上具有參照價(jià)值的可預(yù)制設(shè)計(jì)樣板261.1.2體系結(jié)構(gòu)描述語言

ADL:為軟件系統(tǒng)的概念框架建模和形式規(guī)約描述提供具體的概念元、語法和語義的說明語言

(1)數(shù)學(xué)描述語言MDL:Z語言,類屬理論,Petri網(wǎng)

(2)軟件說明語言SDL:UML,XML,IDL;WPDL,XPDL

(3)體系結(jié)構(gòu)語言ADL:①結(jié)構(gòu)風(fēng)格類:

Aesop,C2,Wright結(jié)構(gòu)實(shí)例類:Adage,MetaH,Rapide,Unicon約束配置類:Darwin,CHAM②可交換體系結(jié)構(gòu)描述語言ACME(中介表達(dá)通用工具)

非ADL語言:編程語言,模塊接口語言MIL,需求描述語言;數(shù)學(xué)描述語言;軟件說明語言1.1.2體系結(jié)構(gòu)描述語言271.2軟件體系結(jié)構(gòu)的設(shè)計(jì)理念1.2.1軟件結(jié)構(gòu)及其設(shè)計(jì)理念

1.軟件的結(jié)構(gòu)要素

程序:一組數(shù)據(jù)與處理方法(操作指令)的集合早期:Pascal語言的發(fā)明者N.Wirth提出的程序理念

程序=算法+數(shù)據(jù)結(jié)構(gòu)

發(fā)展:非交互交互性數(shù)據(jù)處理與計(jì)算方法

程序=界面+算法+數(shù)據(jù)結(jié)構(gòu)三層構(gòu)架軟件:一組程序、相關(guān)信息及其文檔的集合程序—按預(yù)定功能和性能要求設(shè)計(jì)的可執(zhí)行指令序列信息—包括驅(qū)動(dòng)數(shù)據(jù)結(jié)構(gòu)正常工作的數(shù)據(jù)和設(shè)計(jì)知識(shí)文檔—與程序開發(fā)、維護(hù)和使用有關(guān)的圖文資料1.2軟件體系結(jié)構(gòu)的設(shè)計(jì)理念28

(1)結(jié)構(gòu)元素:關(guān)于軟件的基本組成原理及軟件分塊機(jī)制

部件:程序片段(指令序列),數(shù)據(jù)(數(shù)據(jù)項(xiàng)集);過程,函數(shù),變量;模塊;對(duì)象;表,庫,倉

關(guān)系:順序,分支,循環(huán);并行,嵌套,選擇;回環(huán)中斷,參數(shù),消息;主程序/子過程;程序覆蓋(2)控制流程:語句結(jié)構(gòu)程序結(jié)構(gòu)模塊結(jié)構(gòu)▲CHE①順序結(jié)構(gòu):sequence[i]②分支結(jié)構(gòu):if…else…

switchcase[i]…else…③循環(huán)結(jié)構(gòu):while…do…repeat…until…

④轉(zhuǎn)移語句:過程調(diào)用:<過程名>(參數(shù)1,…,參數(shù)n)中斷/事件設(shè)置:set<事件>to<過程名>;(1)結(jié)構(gòu)元素:關(guān)于軟件的基本組成原理及軟件分塊機(jī)制29

2.模塊結(jié)構(gòu):體現(xiàn)程序語句序列的基本功能分塊▲CHE與連接控制流之間的構(gòu)造關(guān)系

外部表示:具有順序、選擇、循環(huán)及其轉(zhuǎn)移連接控制方式的程序結(jié)構(gòu)抽象

內(nèi)部表示:具有I/O、處理邏輯、內(nèi)部數(shù)據(jù)及其運(yùn)行特性的一組算法的集合2.模塊結(jié)構(gòu):體現(xiàn)程序語句序列的基本功能分塊▲CHE30

3.基本連接機(jī)制(1)過程調(diào)用:部件間通過對(duì)方的過程或方法來實(shí)現(xiàn)顯式連接調(diào)用時(shí)必須知道對(duì)方的部件標(biāo)識(shí)、操作標(biāo)識(shí)及參數(shù)設(shè)置形式:<過程名列表>(參數(shù)表)擴(kuò)充模式:本地過程調(diào)用(LPC),遠(yuǎn)程過程調(diào)用(RPC)(2)事件觸發(fā):用特定事件名來標(biāo)識(shí)中斷號(hào)所形成的隱式連接事件:對(duì)象狀態(tài)轉(zhuǎn)換的控制信息/方法調(diào)用的消息事件設(shè)置:set<事件>to<過程名>;事件腳本定義:事件名[監(jiān)護(hù)條件]/動(dòng)作表達(dá)式(3)服務(wù)接口:部件間通過互連接口進(jìn)行功能交互和數(shù)據(jù)交換,以實(shí)現(xiàn)請求方和接收方之間的連接服務(wù)

接口∷=(接口名,類型,事件,操作,上下文)3.基本連接機(jī)制314.軟件結(jié)構(gòu)設(shè)計(jì)的總體理念

設(shè)計(jì)思想+概念元素+表示方法+通用劃分策略

層次抽象:體現(xiàn)問題復(fù)雜度分割與組塊分層的結(jié)構(gòu)化觀點(diǎn)表示方法:程序-模塊/功能結(jié)構(gòu)(控制結(jié)構(gòu),控制關(guān)系)數(shù)據(jù)結(jié)構(gòu)(類型,值)抽象數(shù)據(jù)類型(對(duì)象,關(guān)系,操作方法,語義)對(duì)象結(jié)構(gòu)(對(duì)象,分類,關(guān)系,消息/方法)

通用劃分:接口/實(shí)現(xiàn);程序/數(shù)據(jù);型/實(shí)例;實(shí)體/規(guī)約4.軟件結(jié)構(gòu)設(shè)計(jì)的總體理念321.2.2軟件體系結(jié)構(gòu)及其設(shè)計(jì)理念

1.軟件體系結(jié)構(gòu)定義軟件體系結(jié)構(gòu):是具有整體化抽象層次的骨架體結(jié)構(gòu),是可模式化/模型化/模板化的問題解決框架;是可預(yù)制、可替換、可組合和可演化的軟件模型,是由一組構(gòu)件、連接子關(guān)系以及相關(guān)約束組成的軟件

溫馨提示

  • 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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論