版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 環(huán)氧地坪詳細(xì)施工措施方案
- 工字鋼挑架施工方案設(shè)計(jì)要點(diǎn)方案
- 鋼板樁支護(hù)技術(shù)措施方案
- 防火門施工措施方案
- 管廊預(yù)埋件施工方案
- 外墻真石漆吊籃施工方案
- 瀝青路面修補(bǔ)安全作業(yè)方案
- 高速公路瀝青灌縫施工方案
- 塑膠運(yùn)動(dòng)場(chǎng)鋪設(shè)工藝方案
- 施工方案編制模板及范例
- 復(fù)旦大學(xué)招生面試常見問題及回答要點(diǎn)
- 危險(xiǎn)化學(xué)品兼容性矩陣表
- 道路交通法律課件
- 老年人營(yíng)養(yǎng)不良篩查與營(yíng)養(yǎng)支持方案
- 2025年中國(guó)潛孔鉆機(jī)行業(yè)細(xì)分市場(chǎng)研究及重點(diǎn)企業(yè)深度調(diào)查分析報(bào)告
- 搶劫案件偵查課件
- 食品經(jīng)營(yíng)場(chǎng)所及設(shè)施設(shè)備清洗消毒和維修保養(yǎng)制度
- DB14T2163-2020 《信息化項(xiàng)目軟件運(yùn)維費(fèi)用測(cè)算指南》
- 二氧化碳爆破施工技術(shù)方案
- 名詞單數(shù)變復(fù)數(shù)教案
- 國(guó)考題庫(kù)文件下載及答案詳解(歷年真題)
評(píng)論
0/150
提交評(píng)論