《軟件體系結(jié)構(gòu)》課件全套 李青山 01-緒論-15-課程總結(jié)_第1頁(yè)
《軟件體系結(jié)構(gòu)》課件全套 李青山 01-緒論-15-課程總結(jié)_第2頁(yè)
《軟件體系結(jié)構(gòu)》課件全套 李青山 01-緒論-15-課程總結(jié)_第3頁(yè)
《軟件體系結(jié)構(gòu)》課件全套 李青山 01-緒論-15-課程總結(jié)_第4頁(yè)
《軟件體系結(jié)構(gòu)》課件全套 李青山 01-緒論-15-課程總結(jié)_第5頁(yè)
已閱讀5頁(yè),還剩543頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

軟件體系結(jié)構(gòu)SoftwareArchitecture西安電子科技大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院

國(guó)家示范性軟件學(xué)院軟件體系結(jié)構(gòu)的主題是針對(duì)復(fù)雜軟件系統(tǒng)的高層結(jié)構(gòu)、組織單元之間的相互關(guān)系的描述,以及圍繞這種描

述開展的各項(xiàng)活動(dòng),如設(shè)計(jì)、評(píng)估、實(shí)現(xiàn)、管理等?!盾浖w系結(jié)構(gòu)》課程是軟件工程專業(yè)核心課程,在該課程32學(xué)時(shí)的學(xué)習(xí)中,同學(xué)們將學(xué)習(xí)軟件體系結(jié)構(gòu)的

基本概念、原則和方法。同時(shí),通過實(shí)際軟件項(xiàng)目設(shè)計(jì)

任務(wù)驅(qū)動(dòng)學(xué)生運(yùn)用理論知識(shí)主動(dòng)思考架構(gòu)方案,引導(dǎo)學(xué)生應(yīng)用輔助工具完成系統(tǒng)架構(gòu)設(shè)計(jì)、評(píng)估和實(shí)現(xiàn)。體驗(yàn)

軟件架構(gòu)師在軟件項(xiàng)目全生命周期的任務(wù)、角色,搭建

軟件體系結(jié)構(gòu)“學(xué)與用”的橋梁。任務(wù)導(dǎo)向以面引點(diǎn)案例驅(qū)動(dòng)體驗(yàn)探究西安電子科技大學(xué)軟件體系結(jié)構(gòu)

課程簡(jiǎn)介數(shù)據(jù)流體系結(jié)構(gòu)風(fēng)格調(diào)用/返回體系結(jié)構(gòu)風(fēng)格以數(shù)據(jù)為中心體系結(jié)構(gòu)風(fēng)格虛擬機(jī)體系結(jié)構(gòu)風(fēng)格事件系統(tǒng)體系結(jié)構(gòu)風(fēng)格可用性及其策略性能及其策略可修改性及其策略安全性及其策略可測(cè)試性及其策略易用性及其策略緒論軟件體系結(jié)構(gòu)風(fēng)格軟件體系結(jié)構(gòu)建模和文檔化質(zhì)量屬性及質(zhì)量屬性策略軟件體系結(jié)構(gòu)評(píng)估綜合應(yīng)用案例總結(jié)及展望課程大綱西安電子科技大學(xué)軟件體系結(jié)構(gòu)軟件體系結(jié)構(gòu)2.數(shù)據(jù)流體系結(jié)構(gòu)風(fēng)格3.調(diào)用/返回體系結(jié)構(gòu)風(fēng)格4.以數(shù)據(jù)為中心體系結(jié)構(gòu)風(fēng)格5.虛擬機(jī)體系結(jié)構(gòu)風(fēng)格6.事件系統(tǒng)體系結(jié)構(gòu)風(fēng)格8.可用性及其策略9.性能及其策略10.

可修改性及其策略11.安全性及其策略12.

可測(cè)試性及其策略13.

易用性及其策略1.緒論軟件體系結(jié)構(gòu)風(fēng)格7.軟件體系結(jié)構(gòu)建模和文檔化質(zhì)量屬性及質(zhì)量屬性策略14.

軟件體系結(jié)構(gòu)評(píng)估15.

綜合應(yīng)用案例16.

總結(jié)及展望課程大綱西安電子科技大學(xué)軟件體系結(jié)構(gòu)軟件體系結(jié)構(gòu)理解體系結(jié)構(gòu)定義熟悉體系結(jié)構(gòu)風(fēng)格準(zhǔn)確描述一個(gè)體系結(jié)構(gòu)制定、選擇體系結(jié)構(gòu)方案為特定應(yīng)用定制體系結(jié)構(gòu)利用現(xiàn)有工具加速開發(fā)過程構(gòu)建滿足特定體系結(jié)構(gòu)要求的中等規(guī)模軟件系統(tǒng)課程目標(biāo)西安電子科技大學(xué)軟件體系結(jié)構(gòu)讓我們開始軟件體系結(jié)構(gòu)(Software

Architecture)

e軟件體系結(jié)構(gòu)西安電子科技大學(xué)軟件體系結(jié)構(gòu)緒論Introduction西安電子科技大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院

國(guó)家示范性軟件學(xué)院

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

Architecture西安電子科技大學(xué)什么是Architecture?Architecture

的辭典定義InJblidng

edne.dsctpine

utyet

sutyec

aret,sbjectfed,tArchitecture西安電子科技大學(xué)構(gòu)建Architecture?軟件體系結(jié)構(gòu)圣

·瑪利亞百花大教堂瑞典的瓦薩戰(zhàn)艦案例一圣

·瑪利亞百花大教堂WHY?沒有鋼筋、混凝土等現(xiàn)代建材的時(shí)代,如何筑成全世界最巨大的石砌磚造圓頂?少了鷹架和電動(dòng)吊車,該怎么把37000噸的大理石安穩(wěn)放置

在50米的高空中?建筑體系結(jié)構(gòu)1296年,佛羅倫薩開始動(dòng)工修建一座“具有無與倫比之華美和尊榮

殿

,

足以使任何教堂都相

形見絀”的圣·瑪利業(yè)百花人教堂。然而,大教堂

在蓋好本體后,圓頂部分依然空了50年無法完工

。直到1418年,這座夢(mèng)想中的建筑仍未完成。沒人提供的巨大拱頂和圓頂,以及其中設(shè)備

的設(shè)計(jì)方案。以當(dāng)時(shí)的經(jīng)驗(yàn),面對(duì)這類建筑體系

結(jié)構(gòu),設(shè)計(jì)師無法在美觀和安全之間做出任何妥

協(xié)。西安電子科技大學(xué)

10軟件體系結(jié)構(gòu)1620年代,瑞典與波蘭交戰(zhàn)。瑞典國(guó)王下令建造一艘巨型戰(zhàn)艦,長(zhǎng)70m,

載員300人,兩層甲板,64門重炮,以盡快結(jié)束戰(zhàn)爭(zhēng)。建造期間,國(guó)王得知了丹麥建成縣炮艦的消息,于是在戰(zhàn)艦

骨架已經(jīng)基本搭好之后又決定,為原計(jì)劃修建單層炮艦的“瓦薩”號(hào)增加一個(gè)槍械甲板,把它改建成“雙層”炮艦,使得“瓦薩”號(hào)擁有了

雙排、64門艦炮,全長(zhǎng)達(dá)到了69米,成為當(dāng)時(shí)裝備最齊全、武裝程度最高的戰(zhàn)船。1628年,Vasa

戰(zhàn)艦建造完成,在下水鳴放了幾響禮炮之后,很快沉入水中。WHY?雖然Vasa戰(zhàn)艦制造工藝精良,但船體比例嚴(yán)重失調(diào),體系結(jié)構(gòu)存在致命缺鴨市盟兆前人設(shè)計(jì)經(jīng)驗(yàn)的基礎(chǔ)上,既要執(zhí)行暴躁國(guó)王的“功能性”需求,又要考慮“非功能性”要求(如安全性、可靠性、造價(jià)等)。面對(duì)諸多相互沖突的約束條件,做出了錯(cuò)誤的權(quán)衡,對(duì)一些不可能實(shí)現(xiàn)的要求做了妥協(xié)。案例二瑞典瓦薩戰(zhàn)艦西安電子科技大學(xué)

11軟件體系結(jié)構(gòu)功能性/非功能性要求高軟件體系結(jié)構(gòu)

總體的系統(tǒng)結(jié)構(gòu)設(shè)計(jì)比計(jì)算算法和數(shù)據(jù)結(jié)構(gòu)的選擇更為重要建筑體系結(jié)構(gòu)功能模塊

規(guī)模大大規(guī)模復(fù)雜軟件系統(tǒng)需求復(fù)雜、變化頻繁軟件體系結(jié)構(gòu)

軟件體系結(jié)構(gòu)的動(dòng)機(jī)西安電子科技大學(xué)

12軟件體系結(jié)構(gòu)的發(fā)展史軟件體系結(jié)構(gòu)定義軟件體系結(jié)構(gòu)的研究活動(dòng)軟件體系結(jié)構(gòu)的作用13本節(jié)內(nèi)容軟件體系結(jié)構(gòu)43西安電子科技大學(xué)12

軟件體系結(jié)構(gòu)開發(fā)模式眾包軟件體系結(jié)構(gòu)的發(fā)展史~60年代

70~80年代

90年代

2000年代

2010年代系統(tǒng)=算法+數(shù)據(jù)結(jié)構(gòu)子程序+子程序

對(duì)

+

對(duì)

構(gòu)

件+

務(wù)

+

務(wù)

線面向?qū)ο箝_發(fā)

C++/Java/C#誕生;UML出現(xiàn);軟件質(zhì)量管控體系(COCOMO);

互聯(lián)網(wǎng)誕生西安電子科技大學(xué)

14程序自動(dòng)生成;軟件庫(kù)挖掘智能化軟件開發(fā)編譯器出現(xiàn);C語(yǔ)言誕生;COBOL語(yǔ)言誕生

集成開發(fā)環(huán)境出現(xiàn);軟件工程誕生結(jié)構(gòu)化程序出現(xiàn);程序驗(yàn)

證方法出現(xiàn)形式化方法出現(xiàn)軟件構(gòu)件化出現(xiàn);

J2EE誕生,CORBA誕生搜狐、阿里等成立云計(jì)算出現(xiàn)并流行智能機(jī)流行,移動(dòng)服務(wù)出現(xiàn)工程化時(shí)期云與移動(dòng)服務(wù)開發(fā)企業(yè)小

組個(gè)人

高級(jí)語(yǔ)言面向過程開發(fā)面向服務(wù)開發(fā)時(shí)代特征工業(yè)化協(xié)作化現(xiàn)代程序自動(dòng)生成;軟件庫(kù)挖掘軟件構(gòu)件化出現(xiàn);

智能化軟件開發(fā)J2EE誕

時(shí)代特征搜狐、阿里等成立~60年代

70~80年代

90年代

2000年代

2010年代系統(tǒng)=算

+

數(shù)

據(jù)

結(jié)

構(gòu)

+

對(duì)

+

對(duì)

構(gòu)

+

連接

務(wù)

+

務(wù)

線“無體系結(jié)構(gòu)”概念和理論體系形成

理論完善及普及應(yīng)用西安電子科技大學(xué)

15軟件體系結(jié)構(gòu)的發(fā)展史C++/Java/C#誕生;UML出現(xiàn);軟件質(zhì)量管控體系(COCOMO);

互聯(lián)網(wǎng)誕生編譯器出現(xiàn);C語(yǔ)言誕生;COBOL語(yǔ)言誕生

集成開發(fā)環(huán)境出現(xiàn);軟件工程誕生結(jié)構(gòu)化程序出現(xiàn);程序驗(yàn)

證方法出現(xiàn)形式化方法出現(xiàn)CORBA誕生

云與移動(dòng)服務(wù)開發(fā)云計(jì)算出現(xiàn)并流行智能機(jī)流行,移動(dòng)服務(wù)出現(xiàn)開發(fā)模式眾包工程化時(shí)期軟件體系結(jié)構(gòu)企業(yè)小組面向過程開發(fā)面向服務(wù)開發(fā)面向?qū)ο箝_發(fā)高級(jí)語(yǔ)言個(gè)人工業(yè)化協(xié)作化現(xiàn)代概念體系和理。論體系形成理論完善和普及應(yīng)用1968北大西洋公約組織(NATO)會(huì)議上第一次出現(xiàn)詞語(yǔ)"SoftwareArchitecture(軟件體系結(jié)構(gòu)/軟件架構(gòu))"軟件體系結(jié)構(gòu)

軟件體系結(jié)構(gòu)的發(fā)展史西安電子科技大學(xué)

16體系結(jié)構(gòu)出現(xiàn)(1968)軟件體系結(jié)構(gòu)的定義逐漸明確;相關(guān)體系結(jié)構(gòu)書籍出版;體系結(jié)構(gòu)風(fēng)格、描述方法、演化及重用等研究方向成為

軟件工程領(lǐng)域的研究熱點(diǎn)。軟件體系結(jié)構(gòu)的發(fā)展史1968北大西洋公約組織(NATO)

會(huì)議上第一次出現(xiàn)詞語(yǔ)"Software

Architecture(軟件體系結(jié)構(gòu)/軟件架構(gòu))"西安電子科技大學(xué)

17概念體系和理。論體系形成體系結(jié)構(gòu)出現(xiàn)(1968)理論完善和普及應(yīng)用軟件體系結(jié)構(gòu)1999年,1stIFIP軟件架構(gòu)會(huì)議召開;

Markup

架構(gòu)描述語(yǔ)言提出,支持廣泛的架構(gòu)模型共享;軟件產(chǎn)品線被提出,吸引了大量

的大型企業(yè)的關(guān)注;IEEE1471-2000發(fā)布,為軟件架構(gòu)的普及應(yīng)用制定了標(biāo)準(zhǔn)化規(guī)范。軟件體系結(jié)構(gòu)的定義逐漸明確;相關(guān)體系結(jié)構(gòu)書籍出版;體系結(jié)構(gòu)風(fēng)格、描述方法、演化及重用等研究方向成為軟件工程領(lǐng)域的研究熱點(diǎn)。1968北大西洋公約組織(NATO)

會(huì)議上第一次出現(xiàn)詞語(yǔ)“SoftwareArchitecture(軟件體系結(jié)構(gòu)/軟件架構(gòu))”軟件體系結(jié)構(gòu)的發(fā)展史西安電子科技大學(xué)

18體系結(jié)構(gòu)出現(xiàn)(1968)概念體系和理。論體系形成理論完善和普及應(yīng)用軟件體系結(jié)構(gòu)軟件體系結(jié)構(gòu)

本節(jié)內(nèi)容

1

軟件體系結(jié)構(gòu)的發(fā)展史2

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

軟件體系結(jié)構(gòu)的研究活動(dòng)4

軟件體系結(jié)構(gòu)的作用西安電子科技大學(xué)

19組成派關(guān)注于軟件本身,將軟件體系結(jié)構(gòu)看做構(gòu)件和交互的集合。有哪些部分組成,如何組成,強(qiáng)調(diào)整體結(jié)構(gòu)和配置決策派關(guān)注于軟件架構(gòu)中的實(shí)體(人),將軟件體系結(jié)構(gòu)視為一系列重要設(shè)計(jì)決策的集合。人員意志和決策,注重架構(gòu)風(fēng)格和模式的選擇軟件體系結(jié)構(gòu)

軟件體系結(jié)構(gòu)定義系統(tǒng)草圖

構(gòu)件集合設(shè)計(jì)決策…

定義駁雜多端組成派決策派西安電子科技大學(xué)【Perry

and

Wolf,1992】A

set

ofarchitectural

(or,if

you

will,design)elements

that

have

aparticular

form.PerryandWolfdistinguishbetween

processingelements,dataelements,andconnecting

elements,and

this

taxonomy

by

andlarge

persists

through

most

other

definitions

andapproaches.元素(elements)

是指具有一定形式的結(jié)構(gòu)化元

素。包括處理元素(processingelements)、數(shù)

據(jù)元素(dataelements)

和連接元素(connecting

elements)。√

處理元素負(fù)責(zé)對(duì)數(shù)據(jù)進(jìn)行加工√

數(shù)據(jù)元素是被加工的信息√

連接元素把體系結(jié)構(gòu)的不同部分組合連接起來1

992年,

DE.Perry

與A

L.Wolf對(duì)軟件架構(gòu)進(jìn)行了闡述,認(rèn)為軟件體系結(jié)構(gòu)是具有一定形式的結(jié)構(gòu)化元素。這一定義在大多數(shù)定義中被廣泛繼承。軟件體系結(jié)構(gòu)定義-組成派定義軟件體系結(jié)構(gòu)西安電子科技大學(xué)【D

Garlan,M

Shaw,1993】.beyondthe

algorithms

anddata

structures

ofthe

computation;designing

and

specifyingtheoverall

system

structureemergesasanewkindofproblem.Structural

issues

includegrossorganizationandglobal

control

structure;protocols

for

communication,synchronization,and

data

access;assignment

offunctionality

to

design

elements;physical

distribution;compositionofdesign

elements;scalingand

performance;andselection

among

design

alternatives.“軟件設(shè)計(jì)過程中的一個(gè)層次,超越了計(jì)算過程中的算法設(shè)計(jì)和數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)。組件(component)

可以是一組代

碼,也可以是獨(dú)立的程序;連接件(connector)

用于表示組件之

間的相互關(guān)系,可以是過程調(diào)用、管道

和消息等;約束(constraint)

為組件連接時(shí)的條

件。1

9

9

3

,D

Garlan,M

Shaw提出軟件架構(gòu)包括component

、connector和constraint三大要素。軟件體系結(jié)構(gòu)定義-組成派定義西安電子科技大學(xué)軟件體系結(jié)構(gòu)2011年,ISO/IEC/IEEE

標(biāo)準(zhǔn)中定義軟件架構(gòu)是某一系統(tǒng)的基本組織結(jié)構(gòu),其內(nèi)容包括軟件構(gòu)件,構(gòu)件間的聯(lián)系,構(gòu)件與其環(huán)境間的聯(lián)系,以及指導(dǎo)上述內(nèi)

容設(shè)計(jì)與演化的原理?!綢SO/IEC/IEEE,2011】

ABSTRACT

ISO/IEC/IEEE

42010:2011

addresses

the

creation,analysis

andsustainmentof

architecturesofsystemsthroughtheuseof

architecturedescriptions.Aconceptual

model

ofarchitecture

description

is

established.Therequired

contents

ofan

architecture

description

arespecified.Architecture

viewpoints,architecture

frameworks

and

architecture

description

languages

are

introduced

forcodifying

conventions

and

commonpractices

ofarchitecture

description.Therequired

content

ofarchitectureviewpoints,architecture

frameworks

and

architecture

description

languages

is

specified.Annexesprovidethemotivation

andbackground

forkey

concepts

andterminology

andexamples

of

applying

ISO/IEC/IEEE

42010:2011.軟件體系結(jié)構(gòu)定義-組成派定義軟件體系結(jié)構(gòu)西安電子科技大學(xué)【Booch,1999】Anarchitectureisthesetof

importantdecisionsaboutthe

organizationof

asoftwaresystem,theselectionof

thestructuralelementsandtheirinterfacesbywhichthesystemiscomposed,togetherwiththeirbehaviorasspecifiedinthecollaborationsamongthoseelements,the

compositionofthesestructuralandbehavioralelementsintoprogressivelylargersubsystems,and

the

architecturalstyle

thatguidesthisorganizationcomposition.—these

elements

and

their

interfaces,their

collaborations,andtheir

composition.一系列重要決策的集合關(guān)于:√

軟件系統(tǒng)的組織;√

組成系統(tǒng)的結(jié)構(gòu)元素和它們之間的接口,及這些元素相互協(xié)作時(shí)所體現(xiàn)的行為;√

如何組合這些元素,使它們逐漸合成為更大的子系統(tǒng);√

指導(dǎo)這一軟件系統(tǒng)組織的架構(gòu)風(fēng)格。1999年,

Booch,Rumbaugh

and

Jacobson從另一個(gè)角度對(duì)軟件架構(gòu)的概念進(jìn)行了全新的詮釋,認(rèn)為架構(gòu)是一系列重要決策的集合。軟件體系結(jié)構(gòu)定義-決策派定義軟件體系結(jié)構(gòu)西安電子科技大學(xué)軟件體系結(jié)構(gòu)定義-決策派定義在Booch

定義的基礎(chǔ)上,其他決策派定義產(chǎn)生?!続nton,2005】軟件架構(gòu)是架構(gòu)層次上所有設(shè)計(jì)決策的集合體,這些設(shè)計(jì)決策與以下內(nèi)容

有關(guān):架構(gòu)改造的影響、原理、設(shè)計(jì)準(zhǔn)則、設(shè)

計(jì)約束以及附加需求?!綤ruchten,2006】軟件體系結(jié)構(gòu)是設(shè)計(jì)決策+設(shè)計(jì)(設(shè)計(jì)決策的推理過程)。軟件體系結(jié)構(gòu)西安電子科技大學(xué)Andreas

Rausch認(rèn)為軟件架構(gòu)是一個(gè)針對(duì)軟件改變的框架。Aakash

Ahmad認(rèn)為軟件架構(gòu)是包含設(shè)計(jì)、演化、構(gòu)建配置的推理和構(gòu)件互連關(guān)系的高層抽象結(jié)構(gòu)。Muthu

Rajagopal認(rèn)為軟件架構(gòu)是能夠有效組合在一起的軟件和硬件構(gòu)件的集合

,這些構(gòu)件組合后能滿足預(yù)期需求。Vivek

Khare認(rèn)為軟件架構(gòu)是設(shè)計(jì)和構(gòu)建軟件應(yīng)用的科學(xué)和藝術(shù),這些軟件應(yīng)

用滿足生命周期中用戶的各種需求。軟件體系結(jié)構(gòu)

軟件體系結(jié)構(gòu)定義-其他定義業(yè)界還存在一些其他觀點(diǎn),從獨(dú)特的角度詮釋軟件體系結(jié)構(gòu)【CMU,2018】西安電子科技大學(xué)軟件體系結(jié)構(gòu)定義

總結(jié)基于DGarlan,MShaw的定義,我們可將軟件體系結(jié)構(gòu)的定義理解為:軟件體系結(jié)構(gòu)=組件+連接件+約束Software

Architecture=Components+Connectors+Constrains>

組件:具有某種功能的可重用的軟件模塊單元,表示了系統(tǒng)中主要的計(jì)算單元和數(shù)據(jù)存儲(chǔ)。連接件:表示了組件之間的交互,簡(jiǎn)單的連接件有:管道(pipe)

、

過程調(diào)用(procedure-call)

、事件廣播

(event

broadcast)等。復(fù)雜的連接件有:客戶-服務(wù)器

(client-server)通信協(xié)議,數(shù)據(jù)庫(kù)和應(yīng)用之間SQL連接等。約

:表示了組件和連接件的拓?fù)溥壿嫼图s束(constraint)。軟件體系結(jié)構(gòu)西安電子科技大學(xué)

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

本節(jié)內(nèi)容

1

軟件體系結(jié)構(gòu)的發(fā)展史2

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

軟件體系結(jié)構(gòu)的研究活動(dòng)4

軟件體系結(jié)構(gòu)的目標(biāo)與作用28西安電子科技大學(xué)

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

軟件體系結(jié)構(gòu)的研究活動(dòng)-從建筑體系結(jié)構(gòu)看起建筑完成之后,如何對(duì)其進(jìn)行恰當(dāng)程度的修改?重要模塊有了更改后,如何保證整棟建筑質(zhì)量不受影響?

如何快速節(jié)省的將圖紙變?yōu)閷?shí)物(即施工過程)?建筑模塊怎樣搭配才合理?每種典型建筑(醫(yī)院、工廠、旅館)

的典型結(jié)構(gòu)是什么樣子?需要什

么樣的構(gòu)件?如何繪制建筑體系結(jié)構(gòu)的

圖紙?如何根據(jù)圖紙進(jìn)行質(zhì)量評(píng)估?西安電子科技大學(xué)

29基本的建筑單元都有哪些?有哪些典型的建筑風(fēng)格?有哪些實(shí)用、美觀、強(qiáng)度、造價(jià)合理、可復(fù)用的大粒度建筑單元,使建造出來的建筑更能滿足用戶的需求?如何進(jìn)行軟件體軟件體系結(jié)構(gòu)進(jìn)持軟件體系結(jié)構(gòu)構(gòu)進(jìn)行描述、分析

結(jié)構(gòu)的設(shè)計(jì)與實(shí)現(xiàn)軟件體系結(jié)構(gòu)

軟件體系結(jié)構(gòu)的研究活動(dòng)-軟件體系結(jié)構(gòu)要解決的問題軟件的基本構(gòu)造這些構(gòu)造單元之最終形成何種樣

元是什么?

何連

?的拓?fù)浣Y(jié)構(gòu)30型應(yīng)用領(lǐng)域的典型

體系結(jié)構(gòu)是什么樣子?如果對(duì)已經(jīng)存在使用何種工具來邊何對(duì)軟件體系結(jié)修

改?

設(shè)計(jì)?

和驗(yàn)證?西安電子科技大學(xué)軟件體系結(jié)構(gòu)

軟件體系結(jié)構(gòu)的研究活動(dòng)-軟件體系結(jié)構(gòu)的研究?jī)?nèi)容軟件體系結(jié)構(gòu)的建模與表示(

Architecture

Modeling

and

Documenting)軟件體系結(jié)構(gòu)風(fēng)格的研究(Software

Architecture

Styles)體系結(jié)構(gòu)描述語(yǔ)言(ArchitectureDescriptionLanguage,ADL)軟件體系結(jié)構(gòu)的評(píng)價(jià)方法(Architecture

Evaluation

)軟件產(chǎn)品線及特定領(lǐng)域軟件框架的研究(Product

line

and

DSSA)動(dòng)態(tài)軟件體系結(jié)構(gòu)31西安電子科技大學(xué)軟件體系結(jié)構(gòu)

軟件體系結(jié)構(gòu)的研究活動(dòng)-動(dòng)態(tài)演化自適應(yīng)體系結(jié)構(gòu)動(dòng)態(tài)演化自適應(yīng)體系結(jié)構(gòu)——來源為解決軟件運(yùn)行環(huán)境開放性、動(dòng)態(tài)性、多變性等引起系統(tǒng)頻繁變化的問題,對(duì)軟件提出了自適應(yīng)|性要求。軟件體系結(jié)構(gòu)通過實(shí)體關(guān)聯(lián)描述組件間的交互關(guān)系,其被整個(gè)運(yùn)行環(huán)境共享,因此可作為觸

發(fā)條件驅(qū)動(dòng)軟件系統(tǒng)自適應(yīng)演化,對(duì)整個(gè)軟件系統(tǒng)進(jìn)行監(jiān)控,實(shí)現(xiàn)全局的適應(yīng)?;隗w系結(jié)構(gòu)的自適應(yīng)系統(tǒng)動(dòng)態(tài)演化,就是將

軟件變化映射為體系結(jié)構(gòu)變化。軟件體系結(jié)構(gòu)

以實(shí)體顯性表示,作為系統(tǒng)動(dòng)態(tài)演化的依據(jù)。基于體系結(jié)構(gòu)的軟件軟件體系結(jié)構(gòu)為考察自適應(yīng)系統(tǒng)提供了全面、系統(tǒng)、易于理解的模型軟件體系結(jié)構(gòu)有助于對(duì)自適應(yīng)系統(tǒng)動(dòng)態(tài)演化的正確和有效評(píng)估現(xiàn)有自適應(yīng)框架

現(xiàn)有方法忽略變化特征與系統(tǒng)結(jié)構(gòu)特點(diǎn)。現(xiàn)有方法忽略了變化間關(guān)聯(lián)關(guān)系及變化對(duì)系

統(tǒng)的潛在影響。自適應(yīng)過程軟件體系結(jié)構(gòu)西安電子科技大學(xué)面臨瓶頸1乙3基于體系結(jié)構(gòu)的軟件自適應(yīng)需要引入基本體系結(jié)構(gòu)生成器,負(fù)責(zé)從實(shí)際運(yùn)行的系統(tǒng)中不斷提取最新的軟件體系結(jié)構(gòu)信息,把系統(tǒng)自身的動(dòng)態(tài)調(diào)整在體系結(jié)構(gòu)的抽象層面上得以表達(dá),引入演化執(zhí)

行管理器負(fù)責(zé)在實(shí)際系統(tǒng)上執(zhí)行在軟件體系結(jié)構(gòu)層面表述的動(dòng)態(tài)調(diào)整命令,實(shí)現(xiàn)軟件自適應(yīng)演化。軟件體系結(jié)構(gòu)的研究活動(dòng)

動(dòng)態(tài)演化自適應(yīng)體系結(jié)構(gòu)動(dòng)態(tài)演化自適應(yīng)體系結(jié)構(gòu)——過程33用戶層需求變化用戶管理設(shè)計(jì)基本體系結(jié)構(gòu)系統(tǒng)層運(yùn)行

系統(tǒng)分析判斷模型管

理器規(guī)劃決策器演化執(zhí)行管理器數(shù)據(jù)庫(kù)知識(shí)管理器目標(biāo)知識(shí)庫(kù)效用信息庫(kù)領(lǐng)域信息庫(kù)自適應(yīng)層狀態(tài)管理器軟件體系結(jié)構(gòu)軟件體系結(jié)構(gòu)自適應(yīng)動(dòng)態(tài)演化西安電子科技大學(xué)制定或

在線擴(kuò)展-

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

軟件體系結(jié)構(gòu)的研究活動(dòng)-動(dòng)態(tài)演化自適應(yīng)體系結(jié)構(gòu)典型框架——RAINBOWRainbow框架由卡內(nèi)基

·梅隆大學(xué)(CMU)

的SW

Cheng團(tuán)隊(duì)于2004年提出,使用了基于外部模型的控制閉環(huán)來實(shí)現(xiàn)自適應(yīng)調(diào)整。該方法使用軟件體系結(jié)構(gòu)模型動(dòng)態(tài)監(jiān)控系統(tǒng),對(duì)系統(tǒng)約束規(guī)則及運(yùn)行

性能綜合分析,通過系統(tǒng)API重構(gòu)基礎(chǔ)設(shè)施,應(yīng)用于多種典型系統(tǒng)中自適應(yīng)調(diào)整穩(wěn)定性提升明顯。自適應(yīng)引擎約束評(píng)估器自適應(yīng)執(zhí)行

模型管理器基礎(chǔ)設(shè)施重構(gòu)目標(biāo)系統(tǒng)APIRAINBOW

框架架構(gòu)設(shè)計(jì)圖西安電子科技大學(xué)策略操作映射系統(tǒng)層在Libra視頻會(huì)議系統(tǒng)中多客戶自適應(yīng)過程穩(wěn)定性測(cè)試圖(左)在典型系統(tǒng)Znn中自適應(yīng)過程響應(yīng)時(shí)間對(duì)比圖(右)規(guī)則性能體系結(jié)構(gòu)層Tinepoint

of

nequest(sec)Ltemey創(chuàng)需求規(guī)約體系結(jié)構(gòu)設(shè)計(jì)分析/應(yīng)用程序體系結(jié)構(gòu)

自適應(yīng)策略調(diào)整適應(yīng)性軟件體系結(jié)構(gòu)部署可調(diào)整的軟件系統(tǒng)

自適應(yīng)支撐機(jī)制具有適應(yīng)性的軟件系統(tǒng)元素動(dòng)作具體調(diào)整動(dòng)作構(gòu)件添加和刪除創(chuàng)建或釋放容器實(shí)例替換替換整個(gè)構(gòu)件;替換構(gòu)件契約;

釋放舊實(shí)例,并且創(chuàng)新新的實(shí)例構(gòu)件的約束添加、刪除、替換相應(yīng)的截取器連接子協(xié)議添加和刪除添加或刪除相應(yīng)的發(fā)送者和接收

者,為傳輸層協(xié)議添加刪除傳輸者對(duì)協(xié)議的調(diào)整調(diào)整協(xié)議的實(shí)現(xiàn)配置重配置上述調(diào)整的不同組合自適應(yīng)軟件體系結(jié)構(gòu)方法(SASA)由北京大學(xué)梅宏院士于2008年提出,該方法首先根據(jù)需求規(guī)約設(shè)計(jì)體系結(jié)構(gòu),并依據(jù)需求規(guī)約選擇與自適應(yīng)相關(guān)的質(zhì)量場(chǎng)景,然后按照體系結(jié)構(gòu)分析方法選擇適

當(dāng)?shù)恼{(diào)整方案,最后根據(jù)方案對(duì)系統(tǒng)進(jìn)行構(gòu)件添加刪除和重配置等調(diào)整,實(shí)現(xiàn)軟件動(dòng)態(tài)演化。軟件體系結(jié)構(gòu)的研究活動(dòng)

動(dòng)態(tài)演化自適應(yīng)體系結(jié)構(gòu)35SASA

體系結(jié)構(gòu)層次的調(diào)整典型框架——自適應(yīng)軟件體系結(jié)構(gòu)方法基于場(chǎng)景的自適應(yīng)分析和

自適應(yīng)調(diào)整方案的確定軟件體系結(jié)構(gòu)西安電子科技大學(xué)

目前,基于體系結(jié)構(gòu)的自適應(yīng)軟件動(dòng)態(tài)演化技術(shù)以成功應(yīng)用于多種大型復(fù)雜系統(tǒng)(如電子商務(wù)系統(tǒng)、CPS

系統(tǒng)等)。未來,結(jié)合最新理念擴(kuò)寬研究思路,與新興技術(shù)交叉融合實(shí)現(xiàn)廣泛應(yīng)用。軟件體系結(jié)構(gòu)的研究活動(dòng)

動(dòng)態(tài)演化自適應(yīng)體系結(jié)構(gòu)未來工作西安電子科技大學(xué)強(qiáng)化學(xué)習(xí)

統(tǒng)計(jì)分析

概率理論●交叉融合新技術(shù),應(yīng)對(duì)群體自適應(yīng)電子商務(wù)系統(tǒng)

物理信息融和系統(tǒng)技術(shù)成熟,應(yīng)用廣泛社群智能

數(shù)據(jù)流推理推動(dòng)發(fā)展,展望未來●擴(kuò)寬研究思路,應(yīng)對(duì)不確定性軟件體系結(jié)構(gòu)MADAM框架PBAAM框架應(yīng)用

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

本節(jié)內(nèi)容

1

軟件體系結(jié)構(gòu)的發(fā)展史2

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

軟件體系結(jié)構(gòu)的研究活動(dòng)4

軟件體系結(jié)構(gòu)的作用西安電子科技大學(xué)

37利用SA,

支持用戶、項(xiàng)目負(fù)責(zé)人、

系統(tǒng)架構(gòu)師、程序員、測(cè)試人員

之間進(jìn)行交流和協(xié)商;從不同視

角審查備選的SA,

對(duì)得出的意見

進(jìn)行綜合,找出合理的平衡方案;

從用戶角度考慮未來的需求變化,

并使SA

能夠提前支持這些變化;需求分析把SA

文檔作為維護(hù)和升級(jí)的

重要依據(jù)。維護(hù)與升級(jí)測(cè)試與評(píng)審根據(jù)SA的約束條件,對(duì)軟

件的質(zhì)量屬性進(jìn)行測(cè)試。軟件設(shè)計(jì)參考經(jīng)典SA

風(fēng)

,設(shè)計(jì)系統(tǒng)體系結(jié)構(gòu)模

,推敲其存在的缺陷和替代方案,并進(jìn)行評(píng)估;進(jìn)而逐步細(xì)化SA

,

并對(duì)定

型后的SA作文檔化工作;各開發(fā)團(tuán)隊(duì)按照SA

規(guī)定的“構(gòu)件及其之間的相互關(guān)系”進(jìn)行開發(fā),保證最終得到的系統(tǒng)與最初的SA

致;軟件實(shí)現(xiàn)項(xiàng)

規(guī)

劃考慮項(xiàng)目的規(guī)模、復(fù)雜度、可行性等;軟件生命周期西安電子科技大學(xué)

38軟件體系結(jié)構(gòu)的作用

軟件生命周期中的作用軟件體系結(jié)構(gòu)軟件體系結(jié)構(gòu)作用

借用艾茲格

·

迪科斯徹的話:“

...the

largerthe

project,themore

essentialthestructuring!”(1968)軟

結(jié)

構(gòu)

用-SAisveryimportant西安電子科技大學(xué)

39軟件體系結(jié)構(gòu)圖靈獎(jiǎng)獲得者:

Edsger

Dijkstra【Perry

and

Wolf,1992】Perry

DE,Wolf

AL.Foundations

for

theStudy

of

Software

Architecture[J].ACMSIGSOFTSoftware

Engineering

Notes,1992,17(4):40-52.【D

Garlan,M

Shaw,1993】D

Garlan,M

Shaw.An

introduction

to

Software

Architecture[M].Advances

in

softwareengineering

and

knowledge

engineering,1993:1-39.【ISO/IEC/IEEE,2011】ISO/IEC/IEEE

42010:2011[P42010/D1],Systemsandsoftwareengineering—Architecturedescription,2011.【Booch,1999】G

Booch,JRumbaugh,IJacobson.The

Unified

ModelingLanguage

UserGuide[M].2nded.AddisonWesley,1999.【Anton,2005】A

Janse,JBosch.Software

Architecture

as

a

Set

ofArchitectural

Design

Decision[C].Proceedings

ofthe5hworking

IEEE/IFIP

Conference

on

Software

Architecture.IEEE,2005:109-120.【Kruchten,2006】P

Kruchten,PLago,etal.Building

upandreasoningaboutarchitecturalknowledge[C].Proceedingof

theInternational

Conference

on

the

Quality

of

Software

Architectures.Springer,Berlin,Heidelberg,2006:43-58.【CMU,2018】Community

Software

Architecture

Definitions

[EB/OL]./architecture/start/community.cfm,2018西安電子科技大學(xué)軟件體系結(jié)構(gòu)

Reference歡迎各位同學(xué)交流討論計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院微信西安電子科技大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院

國(guó)家示范性軟件學(xué)院數(shù)據(jù)流體系結(jié)構(gòu)風(fēng)格Data

Flow

Style軟件體系結(jié)構(gòu)課程組西安電子科技大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院

國(guó)家示范性軟件學(xué)院1

軟件體系結(jié)構(gòu)風(fēng)格2

數(shù)據(jù)流體系結(jié)構(gòu)風(fēng)格3

批處理體系結(jié)構(gòu)風(fēng)格4

管道-過濾器體系結(jié)構(gòu)風(fēng)格西安電子科技大學(xué)軟件體系結(jié)構(gòu)

本節(jié)內(nèi)容

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

結(jié)

構(gòu)

風(fēng)

格-

從“建筑風(fēng)格”開始哥特式

源于12世紀(jì)的法國(guó),并持續(xù)到16世紀(jì)強(qiáng)調(diào)垂直高度和石骨架結(jié)構(gòu)√

優(yōu)美的彩色玻璃窗畫√直刺蒼穹的尖頂√

叢生的圓柱√

飛扶壁√

有龍骨的拱頂√

尖頂形狀的圓弧拱門√

強(qiáng)調(diào)雕塑的細(xì)節(jié)西安電子科技大學(xué)文藝復(fù)興式

發(fā)源于意大利弗洛倫薩,借鑒和發(fā)揚(yáng)了古希臘和古羅馬建筑思想。結(jié)構(gòu)清晰、規(guī)則,遵循簡(jiǎn)單的形狀和數(shù)學(xué)比例簡(jiǎn)單的圓柱、對(duì)稱,區(qū)別于日后不規(guī)則的、復(fù)雜的多面建筑

古典風(fēng)格的圓柱、完美的幾何設(shè)計(jì)和半球形的屋頂軟件體系結(jié)構(gòu)風(fēng)格

從“建筑風(fēng)格”開始西安電子科技大學(xué)軟件體系結(jié)構(gòu)-軟件體系結(jié)構(gòu)

結(jié)

構(gòu)

風(fēng)

格-

從“建筑風(fēng)格”開始Architecturalstyle

constitutesamodeofclassifyingarchitecture

largelybymorphologicalcharacteristicsin

terms

of

form,techniques,materials,etc.(建筑風(fēng)格等同于建筑體系結(jié)構(gòu)的一種可分類的模式,通過諸如外形、技術(shù)和材料等形態(tài)上的特征加以區(qū)分)。“風(fēng)格”——經(jīng)過長(zhǎng)時(shí)間的實(shí)踐,被證明具有良好的工藝可行性、性能與實(shí)用性,并可直接用來遵循與模仿(復(fù)用)。西安電子科技大學(xué)軟件體系結(jié)構(gòu)風(fēng)格

回到“軟件體系結(jié)構(gòu)風(fēng)格”A

software

architecture

style(軟件體系結(jié)構(gòu)風(fēng)格)describes

a

class

of

architectures(描述一類體系結(jié)構(gòu))independent

on

the

problems(獨(dú)立于實(shí)際問題,強(qiáng)調(diào)了軟件系統(tǒng)中通用的組織結(jié)構(gòu))found

repeatedly

in

practice(在實(shí)踐中被多次應(yīng)用)a

package

of

design

decisions(是若干設(shè)計(jì)思想的綜合)>

has

known

properties

that

permit

reuse(具有已經(jīng)被熟知的特性,并且可以復(fù)用)西安電子科技大學(xué)軟件體系結(jié)構(gòu)-描述特定領(lǐng)域中軟件系統(tǒng)家族的組織方式的慣用模式(idiomatic

paradigm),反映了領(lǐng)域中眾多系統(tǒng)所共有

的結(jié)構(gòu)和語(yǔ)義特性,并指導(dǎo)如何將各個(gè)模塊和子系統(tǒng)有效

地組織成一個(gè)完整的系統(tǒng)。Architecturestyle={Component/Connectorvocabulary,Topology,SemanticConstraints軟件體系結(jié)構(gòu)

軟件體系結(jié)構(gòu)風(fēng)格-定義西安電子科技大學(xué)西安電子科技大學(xué)虛擬機(jī)

Virtual

machineInterpreterRule-based

svstem解釋器

基于規(guī)則

的系統(tǒng)軟件體系結(jié)構(gòu)風(fēng)格

-Taxonomy

of

stylesCommunicatingprocesses進(jìn)程通信Data

flow

數(shù)據(jù)流隱式調(diào)用

顯式調(diào)用Data-centered調(diào)用-返回Layered分層Repository

Blackboard

倉(cāng)庫(kù)

板軟件體系結(jié)構(gòu)Pipesandfilters管道-過濾器主程序-子過程

00Independent

componentsMain

programandsubroutine以數(shù)據(jù)為中心BatchsequentialObject-oriented獨(dú)立構(gòu)件事件系統(tǒng)ImplicitinvocationExplicitinvocationEventsystems批處理Call/return1

軟件體系結(jié)構(gòu)風(fēng)格2

數(shù)據(jù)流體系結(jié)構(gòu)風(fēng)格3

批處理體系結(jié)構(gòu)風(fēng)格4

管道-過濾器體系結(jié)構(gòu)風(fēng)格西安電子科技大學(xué)

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

本節(jié)內(nèi)容

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

數(shù)據(jù)流體系結(jié)構(gòu)風(fēng)格-直觀理解處

:數(shù)據(jù)到達(dá)即被激活,一個(gè)直觀實(shí)例:在MS

Excel中,改變某個(gè)單元格的值,則依賴于該單元格的其他單元格的值也會(huì)隨之改變.西安電子科技大學(xué)無數(shù)據(jù)時(shí)不工作數(shù)據(jù)流處理Adata

flow

system

isone

inwhichthe

availabilityof

data

controls

the

computation(數(shù)據(jù)的可用性決定著處理<計(jì)算單元>是否執(zhí)行)the

structure

ofthe

design

is

decided

by

orderlymotion

of

data

from

process

to

process(系統(tǒng)結(jié)構(gòu)由數(shù)據(jù)在各處理之間的有序移動(dòng)決定)in

a

pure

data

flow

system,there

is

no

otherinteraction

between

processes(在純數(shù)據(jù)流系統(tǒng)中,處理之

間除了數(shù)據(jù)交換沒有任何其他的交互)數(shù)據(jù)流體系結(jié)構(gòu)風(fēng)格

特征西安電子科技大學(xué)

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

數(shù)據(jù)流體系結(jié)構(gòu)風(fēng)格-基本構(gòu)件>C

omponents:data

processing

components(基本構(gòu)件:數(shù)據(jù)處理)Interfaces

are

input

ports

and

output

ports(構(gòu)件接口:輸入

端口和輸出端口),Input

ports

read

data;output

ports

writedataComputational

model:read

data

from

input

ports,compute,write

data

to

output

ports(計(jì)算模型:從輸入端口讀數(shù),經(jīng)過計(jì)算/處理,然后寫到輸出端口)

ig

rri

l

Read,

Comp

Write

O輸入端口輸出端口geArTrata西安電子科技大學(xué)

53

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

數(shù)據(jù)流體系結(jié)構(gòu)風(fēng)格-連接件Connectors:data

flow(stream)(連接件:數(shù)據(jù)流)√Unidirectional,usually

asynchronous,buffered

(單向、通常是異步、有緩沖)√Interfacesare

readerandwriterroles(接口角色:reader

和writer)√Computational

model(計(jì)算模型:把數(shù)據(jù)從一個(gè)處理的輸出端口傳送到另一個(gè)處理的輸入端口)西安電子科技大學(xué)≤<Role>>Reader

Writer0<<data

buffering>>Read

CompWrite

,Comp

WriteRead數(shù)據(jù)流體系結(jié)構(gòu)風(fēng)格-PatternsofDataFlowinSystems處理Data

can

flow

in

free

patterns數(shù)據(jù)自由流動(dòng)nearlylinear

data

flow

systems近似線性數(shù)據(jù)流highly

constrained

cyclic

structures在限度內(nèi)的循環(huán)數(shù)據(jù)流西安電子科技大學(xué)

55軟件體系結(jié)構(gòu)數(shù)據(jù)數(shù)據(jù)流體系結(jié)構(gòu)風(fēng)格

典型數(shù)據(jù)流風(fēng)格Pipe

and

Filter(管道-過濾器

)Batch

Sequential(批處理)西安電子科技大學(xué)

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

Control(過程控制-1

軟件體系結(jié)構(gòu)風(fēng)格2

數(shù)據(jù)流體系結(jié)構(gòu)風(fēng)格3

批處理體系結(jié)構(gòu)風(fēng)格4

管道-過濾器體系結(jié)構(gòu)風(fēng)格西安電子科技大學(xué)

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

本節(jié)內(nèi)容7094(c)

(d)

(e)將磁帶作為計(jì)算設(shè)備的輸入

,

進(jìn)行計(jì)算,得到輸出結(jié)果1401(a)

(b)將用戶輸入的紙帶上的

數(shù)據(jù)寫入磁帶西安電子科技大學(xué)

58批處理體系結(jié)構(gòu)風(fēng)格

直觀結(jié)構(gòu)(1/2)Systemtape

OutputtapePrinter1401(f)打印計(jì)算結(jié)果軟件體系結(jié)構(gòu)Card

readerTape

driveInput

tape

批處理體系結(jié)構(gòu)風(fēng)格

直觀結(jié)構(gòu)(21/2)Data

transformation西安電子科技大學(xué)

59Report

ReportTape

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

ValidateTape

SortData

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

批處理體系結(jié)構(gòu)風(fēng)格-定義(1/2)Components(processingsteps)are

independentprograms

(基本構(gòu)件:獨(dú)立的應(yīng)用程序)Connectorsaresometypeofmedia

-traditionallytape

(連接件:某種類型的媒質(zhì))Topology:Connectors

define

data

flow

graph(連接

件定義了相應(yīng)的數(shù)據(jù)流圖,表達(dá)拓?fù)浣Y(jié)構(gòu))西安電子科技大學(xué)批處理體系結(jié)構(gòu)風(fēng)格

定義(2/2)Processing

steps

are

independent

programs(每個(gè)處理步驟是一個(gè)獨(dú)立的程序)Each

step

runs

to

completion

before

next

step

starts(每一步必須在前一步結(jié)束后才能開始)Data

transmitted

as

a

whole

between

steps(數(shù)據(jù)必須是完整的,以整體的方式傳遞)西安電子科技大學(xué)軟件體系結(jié)構(gòu)

源代碼文件代碼分析抽象語(yǔ)法樹程序轉(zhuǎn)換度量分析結(jié)果文件相似代碼檢測(cè)P-String

文件相似代碼顯示批處理體系結(jié)構(gòu)風(fēng)格實(shí)例:基于Eclipse的代碼重復(fù)檢測(cè)工具西安電子科技大學(xué)批處理體系結(jié)構(gòu)風(fēng)格

應(yīng)用實(shí)例(1/2)軟件體系結(jié)構(gòu)-Lralm⑥JavadeeDecluraticCr□Canol.

Srch

Sinilrity

Viw23

口序號(hào)文件名文件路徑相類型上方法開臨位置上法賣位置相似文件023458101112relec

Cu

jaY4

Celig0wirkpueMa1120farldsre\eabinCaipt5.j4W4外tStrin

886

135rerel

we

rel

re\leaeohleoaeol+eaalbsrelelbeiCuginjvaCleelipsewirkjuee\Mal1ofarldsreelbeanCaipiajar部tString8661325sre\eol

englnfo

jaw

C

eclijserkujuee\elloYarisre\eso\ban\Coplato

jav外惠qry21543962sreleelCenlsfejwC

leligserkpeeallYrl4relesbeuCoplafe

jW外部7ery21543002trelelbCcpInfo

jw

CclprpeEHllearldecbenCplaf

jm外qry21544011re\eeCeapIsfe

jw外圖ery21543392we\ealeon\al]ureleolegInfojw

C.lcl:wrkapucaHalloParldare\es\bean\Conplafe,jav外

醇qory34624064wereleelh\LastataZafe.jwCl*elisrksjuea110far1dsre\esnlbin\BesesteInfa

j外部復(fù)ry16412069sreleon'Brelee

heseatalafe.jaVa

C.leelysesrkspuee\HelloPrl4sreesrel

aeatelate

jv

Cecsysrksjue\HallYarldec\rele\+

tat+lsfo

jv

C+cligs+rkspseHal1oYarl4veenlsrele

nstateIafo

jw

C:lelswrkspsceHal10farldree

ben\Beseatelnfsj

BeeateInts

jReteatInfs

jaraw外涯ery1641343)relwereleon'eloneoa\Y-11外器Try1642069w外部郭

T

Y642184外顯Try642184te\enallbenBetesteInfsjaw外ry642184releo11n\anbeabe批處理體系結(jié)構(gòu)風(fēng)格

應(yīng)用實(shí)例(2/2)西安電子科技大學(xué)

63基于Eclipse的代碼重復(fù)檢測(cè)工具軟件體系結(jié)構(gòu)re\eo

ateatalafe.jaw6

1外-1

軟件體系結(jié)構(gòu)風(fēng)格2

數(shù)據(jù)流體系結(jié)構(gòu)風(fēng)格3

批處理體系結(jié)構(gòu)風(fēng)格4

管道-過濾器體系結(jié)構(gòu)風(fēng)格西安電子科技大學(xué)軟件體系結(jié)構(gòu)

本節(jié)內(nèi)容

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

管道-過濾器體系結(jié)構(gòu)風(fēng)格-直觀結(jié)構(gòu)(1/)自來水處理中的Pipe-and-Filter

結(jié)構(gòu)過濾池

排水池加壓泵場(chǎng)

低地西安電子科技大學(xué)

65送水管給水管/高地排水池

排水管水源地送水泵場(chǎng)高地田田□

0管道-過濾器體系結(jié)構(gòu)風(fēng)格-直觀結(jié)構(gòu)(2/2)Pipes(管道)Filters(過濾器)

Data

sink(數(shù)據(jù)終止點(diǎn))

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

source(數(shù)據(jù)源點(diǎn))西安電子科技大學(xué)軟件體系結(jié)構(gòu)

管道-過濾器體系結(jié)構(gòu)風(fēng)格-定義(1/13)場(chǎng)

:數(shù)據(jù)源源不斷的產(chǎn)生,系統(tǒng)需要對(duì)這些數(shù)據(jù)進(jìn)行若干處理(分析、計(jì)算、轉(zhuǎn)換等)。解決方案:√

把系統(tǒng)分解為幾個(gè)序貫的處理步驟,這些步驟之間通過數(shù)據(jù)流連接,一個(gè)步驟的輸出是另一個(gè)步驟的輸入;√

每個(gè)處理步驟由一個(gè)過濾器構(gòu)件(Filter)實(shí)

現(xiàn)

;√

處理步驟之間的數(shù)據(jù)傳輸由管道(Pipe)負(fù)責(zé)。每個(gè)處理步驟(過濾器)都有一組輸入和輸出,過濾器從管

道中讀取輸入的數(shù)據(jù)流,經(jīng)過內(nèi)部處理,然后產(chǎn)生輸出數(shù)據(jù)流并寫入管道中。西安電子科技大學(xué)軟件體系結(jié)構(gòu)

管道-過濾器體系結(jié)構(gòu)風(fēng)格-定義(21/13)Components:

Filters—process

data

streams(構(gòu)件:過濾器,處理數(shù)據(jù)流)√A

filter

encapsulates

a

processing

step(algorithm

orcomputation)

(一個(gè)過濾器封裝了一個(gè)處理步驟)√Datasource

and

data

end/sink

are

particular

filters(數(shù)據(jù)源點(diǎn)和數(shù)據(jù)終止點(diǎn)可以看作是特殊的過濾器)Connectors:

A

pipeconnectsasourceandaendfilter(連接件:管道,連接一個(gè)源和一個(gè)目的過濾器)√

Pipes

move

data

from

a

filter

output

to

a

filter

input√

Data

may

be

a

stream

of

ASCII

charactersTopology:Connectors

define

data

flow

graphStyle

invariants

:Filtersare

independent西安電子科技大學(xué)

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

管道-過濾器體系結(jié)構(gòu)風(fēng)格-定義(3/3)Incrementally

transform

data

from

the

source

to

thesink

(遞增的讀取和消費(fèi)數(shù)據(jù)流),數(shù)據(jù)到來時(shí)便被處理,不是收集然后處理,即在輸入被完全消費(fèi)之前,輸出便產(chǎn)生了。FilterFilterFilterFilter西安電子科技大學(xué)軟件體系結(jié)構(gòu)

管道-過濾器體系結(jié)構(gòu)風(fēng)格-過濾器(1/3)Filter(過濾器)Incrementallytransformsomeofthesourcedatainto

sink

data(目標(biāo):將源數(shù)據(jù)變換成目標(biāo)數(shù)據(jù))>Stream

to

stream

transformation(從“數(shù)據(jù)流”→“數(shù)據(jù)流”的變換)西安電子科技大學(xué)

70

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

管道-過濾器體系結(jié)構(gòu)風(fēng)格-過濾器(2/3)過濾器對(duì)數(shù)據(jù)流的五種變換類型data:a

data:a+b增加/豐富

通過計(jì)算和增加信息來豐富數(shù)據(jù)data:a

data:a-b刪減/濃縮

通過濃縮和刪減來精煉數(shù)據(jù)data:a'通過改變數(shù)據(jù)表現(xiàn)方式來轉(zhuǎn)化數(shù)據(jù)data:a將一個(gè)數(shù)據(jù)流分解為多個(gè)數(shù)據(jù)

data:bdata:a+b合并

將多個(gè)數(shù)據(jù)流合并為一個(gè)數(shù)據(jù)流西安電子科技大學(xué)data:a轉(zhuǎn)換data:a+b分解data:adata:b軟件體系結(jié)構(gòu)

管道-過濾器體系結(jié)構(gòu)風(fēng)格-過濾器(3/3)Filtersareindependententities.no

context

in

processing

streams(無上下文信息)no

state

preservation

between

instantiations(不保留狀態(tài))no

knowledge

of

upstream/downstream

filters(對(duì)其他過濾器無任何了解)西安電子科技大學(xué)

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

管道-過濾器體系結(jié)構(gòu)風(fēng)格-管道(1/2

)Pipes:movedata

fromafilter'soutput

to

afilter's

input(ortoadevice

orfile).Onewayflowfromone

data

source

toone

data

sink(單向流)A

pipe

may

implement

a

buffer(可能具有緩沖區(qū))Pipes

form

data

transmission

graph(管道形成傳輸圖)不同的管道中流動(dòng)的數(shù)據(jù)流,可能具有不同的數(shù)據(jù)格式,數(shù)據(jù)在流過每一個(gè)過濾器時(shí),被過濾器進(jìn)行了豐富、精練、轉(zhuǎn)換、融合、分解等操作,因而發(fā)生了變化。西安電子科技大學(xué)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論