




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、: :r rvProject NameSoftware Architecture DocumentVersion Revision HistoryDateVersio nDescripti onAuthorV yyyy-mm-dd vn ame8.關(guān)鍵功能關(guān)鍵質(zhì)量屬性業(yè)務(wù)需求和約束因素架構(gòu)設(shè)計原則備選架構(gòu)設(shè)計方案及被否原因架構(gòu)設(shè)計對后續(xù)工作的限制(詳設(shè),部署等)職責(zé)劃分與職責(zé)確定 接口設(shè)計與協(xié)作機制 重要設(shè)計包vPreject Name)Versio n:Software Architecture Docume ntDate: V yyyy-mm-dd vdocument identifier
2、文檔簡介1.1文檔目的文檔范圍定義、縮寫詞和縮略語參考資料1.21.31.444442.架構(gòu)描述方式2.1架構(gòu)視圖閱讀指南2.2圖表與模型閱讀指南3,架構(gòu)設(shè)計目標(biāo)3.13.23.34.架構(gòu)設(shè)計原則4.14.24.35.邏輯架構(gòu)視圖5.15.25.36.開發(fā)架構(gòu)視圖8.6.1Project劃分1峠6.2Project 116.2.1 Project目錄結(jié)構(gòu)指導(dǎo)16.2.2程序單元組織16.2.3框架與應(yīng)用之間的關(guān)系(可選)16.3Project 2.1亠6.4Project n .131運行架構(gòu)視圖37.1控制流組織1O7.2控制流的創(chuàng)建、銷毀、通信17.3加鎖設(shè)計14物理架構(gòu)視圖148.1物理
3、拓?fù)?A8.2軟件到硬件的映射18.3優(yōu)化部署1Page 2 of 187.vPreject Name)Versio n:Software Architecture Docume ntDate: V yyyy-mm-dd vdocument identifier9.數(shù)據(jù)架構(gòu)視圖10.9.19.29.3持久化機制的選擇 持久化存儲方案 數(shù)據(jù)同步與復(fù)制策略171717關(guān)鍵質(zhì)量屬性的設(shè)計原理1716vPreject Name)Versio n:v1 0Software Architecture Docume ntDate: V yyyy-mm-dd vdocument identifier圖表與模型
4、閱讀指南對后續(xù)文檔內(nèi)容中所用到的建模語言 說明。”八、/七輯架棟、/舛職吾論q q分職IIII向?qū)﹀?;或結(jié)構(gòu)化貢耐仍件、嘯脇、0 0、/程序單兀毎已.單尤組織/、直向更件、廣、 雨1 1向TableTable或文件、/數(shù)據(jù)架構(gòu)、/茅久教據(jù)單兀.數(shù)捱存儲格式-、/、行架構(gòu)、控制流控制虎組旺X XUi ir r詢控制墻物理架構(gòu)物湮節(jié)點亠挾舉節(jié)克峯寸心= L 孑弁n向節(jié)點jQ3.架構(gòu)設(shè)計目標(biāo)功能、質(zhì)量、約束,一個都不能少。3.1關(guān)鍵功能對架構(gòu)設(shè)計至關(guān)重要的功能,包括如下4 4類:核心功能、必做功能、高風(fēng)險功能、獨特功 能。所謂獨特功能,指這個功能覆蓋了上述3 3類功能沒有涉及到的職責(zé)。3,2關(guān)鍵質(zhì)量
5、屬性人之所以痛苦,很多時候是因為追求錯誤的東西。下圖是確定關(guān)鍵質(zhì)量的 路圖。5 5大原則的整體思2.2(例如UMLUML)、表格(例如目標(biāo)-場景-決策表)等進行絹戶架構(gòu)設(shè)計原則投標(biāo)時經(jīng)常講架構(gòu)設(shè)計原則,但到了架構(gòu)文檔,這些著眼大局的考慮卻丟了O O檔模板,認(rèn)為應(yīng)當(dāng)把它們“找回來O OvPreject Name)Versio n:v1 0Software Architecture Docume ntDate: V yyyy-mm-dd vdocument identifier3.3業(yè)務(wù)需求和約束因素創(chuàng)造性地提出約束需求的4 4大類型,這是一種極為實用的分類方式。特別是業(yè)務(wù)需求對架構(gòu) 設(shè)計而言是一
6、種約束的觀點,解決了很多架構(gòu)師的現(xiàn)實困惑。下圖標(biāo)明了4 4類約束在次-需求方面矩陣中的位置,可以幫助我們理解產(chǎn)生約束需求的根源。廣義功能業(yè)務(wù)級/需求業(yè)務(wù)壞境用戶級需求環(huán)境開護團饑蔭繹JS開發(fā)圾需求彳為需求發(fā)期質(zhì)量構(gòu)建環(huán)境4.1架構(gòu)設(shè)計原則著重描述重大的權(quán)衡取舍考慮。4.2備選架構(gòu)設(shè)計方案及被否原因在概念架構(gòu)一級,對備選架構(gòu)設(shè)計方案進行描述,并闡述它們未被采用的原因。這有利于團 架構(gòu)設(shè)計方案的來龍去脈,提高團隊對當(dāng)前架構(gòu)設(shè)計方案的認(rèn)可度。隊了解當(dāng)前4.3架構(gòu)設(shè)計對后續(xù)工作的限制(詳設(shè),部署等)架構(gòu)設(shè)計不僅應(yīng)該包含指導(dǎo)”,也應(yīng)該包含重要的邙艮制”O(jiān) O例如,一份只是說明性能都重要的架構(gòu)文檔,實際上
7、忽視了 “可擴展性和性能之間存在的矛盾關(guān)系”O(jiān) O此時,最有效的辦法 就是在架構(gòu)文檔中明確說明任何提升可擴展性的架構(gòu)設(shè)計和 詳細(xì)設(shè)計,都應(yīng)通過架構(gòu)團隊的評審才 能引入,以確保性能目標(biāo)不受重大影響O O和可擴展性5.邏輯架構(gòu)視圖關(guān)注點:此架構(gòu)設(shè)計視圖的關(guān)注點是職責(zé)劃分。4.推薦的本文參考:任何復(fù)雜系統(tǒng)的架構(gòu)設(shè)計都不是一蹴而就的,所以架構(gòu)師需要理性思維過程的指導(dǎo)。針對邏輯架構(gòu)設(shè)計這個關(guān)鍵環(huán)節(jié),一線架構(gòu)師實踐指南一書給出了2 2條建議:一是“以質(zhì)疑驅(qū)動的螺旋思維”,二是相對分離地考慮結(jié)構(gòu)方面的切分和行為方面的定義O O下圖 所示即為椎薦的謬輻架構(gòu)設(shè)計理件思維過稈。1 1質(zhì)戦冃已的哎訃特殊功能場杲支持
8、嗎?耦合性.重用性咋樣?5.1職責(zé)劃分與職責(zé)確定內(nèi)容:將系統(tǒng)切分成更小的單元, 塊、關(guān)鍵類等。意義:一句話,職責(zé)劃分不合理,職責(zé)劃分相關(guān):一方面,每個功能都是由一條職責(zé)協(xié)作鏈完成的;另一方面,職責(zé)劃分方式也影響著質(zhì) 量,于是需要職責(zé)模型針對特定質(zhì)量屬性要求做出相應(yīng)調(diào)整和優(yōu)化。很多人認(rèn)為架構(gòu)設(shè)計就是職責(zé)劃分的 藝術(shù),雖略顯片面,但足以表明職責(zé)劃分的重要性。參考:基于對業(yè)界大量案例的研究,梳理出了 “模塊劃分的3 3種必用手段,如下圖所示,更多內(nèi)容可參考一線架構(gòu)師實踐指南一書。 vProject Name)Vdrifolfti的切Software Architecture Docume ntDat
9、e: V yyyy-mm-dd vdocument identifier二模塊+接口”等以偏概全的注意: 邏輯架構(gòu)視圖無疑是最重要的, 但同時也應(yīng)避免架 構(gòu)認(rèn)識。 并明確這些單元的職責(zé)。具體而言,職責(zé)單元可以是層、子系統(tǒng)、模功能和質(zhì)量都會受到影響。也就是說,功能需求和質(zhì)量需 求無一不和vPreject Name)Versio n:v1 0Software Architecture Docume ntDate: V yyyy-mm-dd vdocument identifier裁哨性原則5.2接口設(shè)計與協(xié)作機制內(nèi)容:本節(jié)描述接口的定義,以及協(xié)作的方式和規(guī)范。意義:恰恰是因為有了各模塊之間“未來合
10、作的契約”,分頭開發(fā)各模塊才有了基本保證。參考:推薦利用“包-接口圖,來識別接口。下圖為一個“包 -接口圖的示例。分層的絡(luò)化/ / /F /職貴分原則架構(gòu)本身考耄分區(qū)的引入Software Architecture Docume ntDate: V yyyy-mm-dd vdocument identifier窗口界面共享畀面I IWindowsWindows外殼#展FacadeFacade命令描述進度展規(guī)蟻沖接口再能耀沖機制爪啣$控制解IR的押制介卄爪竭句伏 1 1 玄的艸 V V內(nèi)容縄沖達倔頤喀址対相應(yīng)擅口進fj啊調(diào)畀肚按門對超出額電価I】容鞍泊內(nèi)容址汀H H征肚“壓粥實現(xiàn)足實現(xiàn)里1字符耶
11、列的用瓠解川纏鼻法 久戚不冷兀們息的兒堀結(jié)果接口接口以字荷漬歷式讀文件 牛咸文件鍍沖扳曾包格式分曲燈沖參考,推薦使用序列圖,建議少用、甚至杜絕使用協(xié)作圖。下圖為一個序列圖的示例。r r界IlliIlli選項進用WuWu (Jk(Jk端機解丿k k縮共用4 稈序和夕、空擴展共亨.的歡用界面支持-乍縮vProject Name)Versio n:v1 0Software Architecture Docume ntDate: V yyyy-mm-dd vdocument identifieridid ZipHLnePZipHLneP HajHaj5.3重要設(shè)計包內(nèi)容:對重要子系統(tǒng)的設(shè)計進行灰盒”級
12、描述。意義:“每個子系統(tǒng)在架構(gòu)設(shè)計中都應(yīng)保持黑盒子”的觀點,過于理想化了。對于業(yè)務(wù)層、通用協(xié)作機 制而言,經(jīng)常需要在架構(gòu)設(shè)計期間就引入“灰盒級描述。參考:類圖和灰盒包圖,在本節(jié)中較多出現(xiàn)。下圖為一灰盒包圖示例。Software Architecture Docume ntDate: V yyyy-mm-dd vdocument identifier/ / AdapterMtAdapterMt ;dtdt詢用4c-inter!act-inter!act? ?1 1X X1驚GanttChartImpIGanttChartImpI歲調(diào)用來自第三方的片特聞繪制包述取數(shù)抓屮卜intcTfaccAint
13、cTfaccAP6.開發(fā)架構(gòu)視圖關(guān)注點:此架構(gòu)設(shè)計視圖的關(guān)注點是程序單元組織。注意:此架構(gòu)設(shè)計視圖是必須的、不應(yīng)剪裁掉的。但實際情況卻是,很多架構(gòu)師不關(guān)注 開發(fā)架構(gòu)視 圖,導(dǎo)致很多程序開發(fā)人員抱怨架構(gòu)師就知道高來高去,架構(gòu)對編程工作沒什么指導(dǎo)性O(shè) O6.1Project劃分內(nèi)容:本節(jié)說明整個系統(tǒng)將劃分成哪幾個ProjectProject來開發(fā),其中,ProjectProject指開發(fā)環(huán)境所感知到的工程O O 意義:基本好處是,有利于開發(fā)的組織;而對一些大型的集成系統(tǒng)而言,由于同時涉及了 恥b b應(yīng)用、桌面應(yīng)用、嵌入式應(yīng)用等軟件形態(tài), 后,我們推薦核心代碼應(yīng)主動地切分到單獨的 以降低核心代碼外泄
14、的風(fēng)險。所以此時ProjectProject劃分其實是不得不做的;最ProjectProject以進行獨立的軟件配置管理(SCMSCM), ,參考:ProjectProject劃分必然是屬于架構(gòu)設(shè)計inin essess AreaArea)直接映射到ProjectProject經(jīng)常意味著工作內(nèi)容的遺漏。其實,業(yè)界不少有見地的專家已經(jīng)認(rèn)識 到WBSWBS(工作分解結(jié)構(gòu))做得太早太草率危害很大,就與“ProjectProject劃分不到位”不無關(guān)系。的工作,嚴(yán)格來講僅靠需求分析劃分的業(yè)務(wù)域(BusBus6.2Project 1內(nèi)容:對ProjectProject劃分后的每個ProjectProje
15、ct進行目錄結(jié)構(gòu)、程序單元組織、框架與應(yīng)用關(guān)系的說明。莊現(xiàn)層么7 7意義:為團隊并行開發(fā)提供必要基礎(chǔ),讓不同程序小組看到自己應(yīng)該負(fù)責(zé)的程序目錄。參考:不要把所有程序目錄的約定都定義得太細(xì),否則這份架構(gòu)文檔就要天天更新了。程序單元組織內(nèi)容:源碼、程序庫、框架、目標(biāo)碼等類型程序單元之間的編譯依賴關(guān)系。意義:或許有人認(rèn)為這沒什么技術(shù)含量,但架構(gòu)設(shè)計本來就不是只關(guān)心技術(shù)含量最高問題的。君不見, 很多軟件工程師跳槽到新的企業(yè)之后,竟然連一個能正常編譯源碼的開發(fā)壞境都建不起來一一其實,他們不知道ProjectProject所依賴的LibraryLibrary有哪些是其中重要原因一一這本應(yīng)在架構(gòu)文檔中給出明
16、確描述的??蚣芘c應(yīng)用之間的關(guān)系(可選)內(nèi)容:框架(Framework(Framework)。意義:既然不適用FrameworkFramework的開發(fā)越來越少了,既然程序員犯的很多錯誤都和對FrameworkFramework理解不到位有關(guān),架構(gòu)師就有責(zé)任明確說明FrameworkFramework和待開發(fā)系統(tǒng)之間的關(guān)系。參考:下圖描述了JGraphJGraph框架和待開發(fā)應(yīng)用的關(guān)系。vPreject Name)Versio n:v1 0Software Architecture Docume ntDate: V yyyy-mm-dd vdocument identifierProject目錄
17、結(jié)構(gòu)指導(dǎo)內(nèi)容:關(guān)于該ProjectProject一級目錄、二級目錄等基本目錄結(jié)構(gòu)的約定。6226.2.3621參考:下圖描述了StrutsStruts框架和待開發(fā)應(yīng)用的關(guān)系。vPreject Name)Versio n:v1 0Software Architecture Docume ntDate: V yyyy-mm-dd vdocument identifierGruGru詆框茱【V6.36.47.7.1Project n.內(nèi)容:對ProjectProject劃分后的每個PrejectPreject進行目錄結(jié)構(gòu)、程序單元組織、框架與應(yīng)用關(guān)系的說明。運行架構(gòu)視圖關(guān)注點:此架構(gòu)設(shè)計視圖的關(guān)注點
18、是控制流組織。注意:進程和線程是廣為人知的控制流實現(xiàn)技術(shù),但在架構(gòu)設(shè)計思維當(dāng)中,對于系統(tǒng)軟件和嵌入式軟件 極為重要的中斷服務(wù)程序也是控制流,這樣利于架構(gòu)師統(tǒng)一利用不同控制流手段設(shè)計并行和并發(fā)??刂屏鹘M織內(nèi)容:控制流有哪些,每條控制流各是何種形式(例如進程、線程、中斷服務(wù)程序),哪些軟件單元是 控制流的起點,整條控制流中分別調(diào)用了哪些軟件單元。vProject Name)Versio n:v1 0Software Architecture Docume ntDate: V yyyy-mm-dd Project 2.內(nèi)容:對ProjectProject劃分后的每個PrejectPreject進行目
19、錄結(jié)構(gòu)、程序單元組織、框架與應(yīng)用關(guān)系的說明。意義:這是對系統(tǒng)運行時結(jié)構(gòu)的刻畫,主要反映系統(tǒng)的動態(tài)結(jié)構(gòu)。7,2控制流的創(chuàng)建、銷毀、通信意義:一旦引入了多條控制流,附加工作就產(chǎn)生了一一此時控制流的創(chuàng)建和銷毀、以及控制 流之間的通 信關(guān)系往往是必須考慮的。加鎖設(shè)計內(nèi)容:系統(tǒng)中有多條控制流在同時運行的情況下,一個經(jīng)典問題是多于一條控制流可能會同時修改某些 數(shù)據(jù)結(jié)構(gòu),而造成數(shù)據(jù)的不一致。為此,架構(gòu)師需要關(guān)注加鎖設(shè)計,合理引入臨界區(qū)或同步機制。意義:加鎖設(shè)計事關(guān)系統(tǒng)的正確性。值得注意的是,忽略加鎖設(shè)計造成的問題往往以不易 重現(xiàn)的BugBug 的形式出現(xiàn),困惑的程序員會對測試人員說,你看你報的BugBug在
20、我機器上根本就不存在呀O O參考:對通用組件、通用模塊的設(shè)計而言,加鎖設(shè)計應(yīng)予以專門關(guān)注,思維要點是 研究未來通用模塊的各種可能使用場景。物理架構(gòu)視圖關(guān)注點:此架構(gòu)設(shè)計視圖的關(guān)注點是物理節(jié)點(NodeNode)分布,以及軟件到硬件的具體映射關(guān) 系。注意:物理節(jié)點即可以是PCPC機或服務(wù)器,也可以是單片機、單板機或?qū)S脵C,從而物理架構(gòu)視圖既適 用于描述企業(yè)信息系統(tǒng),也適合于描述嵌入式軟件系統(tǒng)。物理拓?fù)鋬?nèi)容:一為硬件選型,二為硬件之間的拓?fù)溥B接關(guān)系。意義:對于分布式系統(tǒng)的設(shè)計,此節(jié)極為重要、而且是必須的。7.38.1參考:下圖是某企業(yè)級系統(tǒng)的物理拓?fù)鋱D。vPreject Name)Versio n
21、:v1 0Software Architecture Docume ntDate: V yyyy-mm-dd vdocument identifier游間層1 1參考:下圖是某嵌入式系統(tǒng)的物理拓?fù)鋱D。8.2軟件到硬件的映射內(nèi)容:明確每個物理節(jié)點上有哪些(一到多個)軟件的目標(biāo)單元,并說明具體的“映射方 式是安裝、 是部署、還是燒寫、抑或是下載。意義:如果把此節(jié)漏了,就無法表明本文檔的主題一一軟件系統(tǒng)一一和上述硬件、硬件拓?fù)鋠Preject Name)Versio n:v1 0Software Architecture Docume ntDate: V yyyy-mm-dd vdocument i
22、dentifier的關(guān)系。意義:物理架構(gòu)設(shè)計的優(yōu)劣,造成的成本差異和質(zhì)量差異,可能是天壤之別。所以必須重視。關(guān)注點:此架構(gòu)設(shè)計視圖的關(guān)注點是持久化。 數(shù)據(jù)庫、FlashFlash等方式中的一種或多種完成。 注明其文檔名稱等信息。8.3參考: 下圖所示為設(shè)備調(diào)試系統(tǒng)中,軟件到硬件的映射關(guān)系。PC機匚 n 桌面部分t5xtgui.exet5xtgui.exeIIIIIIRS.232RS.232 /調(diào)試機djj嵌入制分tsxt.hextsxt.hex丿優(yōu)化部署內(nèi)容:為達降低成本、提高性能和可靠性等等目標(biāo),應(yīng)特別關(guān)注的部署考慮。9.參考:下圖展示的, 構(gòu)師實踐指南一書。0 0o/b耳口多顯金是ADME
23、MSADMEMS方法重點推薦的特定為E E目標(biāo)的滴丘“物理架構(gòu)設(shè)計思維要點,更多內(nèi)容可參考一線架技木可行性易維護性性能持續(xù)可用性可伸縮性計算開銷內(nèi)萍爭閉碩盤爭用I I冊I層.軟件單元CPUCPU爭州數(shù)據(jù)爭用數(shù)據(jù)單元物理節(jié)點具體而言,場景化可以借助扁平文件、關(guān)系數(shù)據(jù)庫、實時注意:本視圖單獨歸檔時,請在此節(jié)經(jīng)濟性最終目標(biāo) 投資與維護成內(nèi)容:如下持久化機制的一種或多種:扁平文件、關(guān)系數(shù)據(jù)庫、實時數(shù)據(jù)庫、持久化只需一種機制;隨著如今的系統(tǒng)變得越來越復(fù)雜,我們經(jīng)常需要關(guān)鍵質(zhì)量屬性的設(shè)計原理內(nèi)容:因軟件系統(tǒng)的不同,性能、安全性、可伸縮性、互操作性、可擴展性、可測試性、可重用性、可 維護性等質(zhì)量屬性,都可以是本系統(tǒng)的關(guān)鍵質(zhì)量屬性。本文檔的前面部分已經(jīng)涉及了關(guān)鍵質(zhì)量屬性的設(shè)計 決策,而本節(jié)更集中、更全面地描述這些架構(gòu)設(shè)計決策,并且闡述“為什么這么設(shè)計。意義:只描述架構(gòu)設(shè)計決策本身,不利于讀者理解為什么這么設(shè)計。而且,描述設(shè)計原理有利于在 整個軟件企業(yè)層面促進團隊的架構(gòu)設(shè)計能力。vPreject Name)Versio n:v1 0Software Architecture Docume ntDate: V yyyy-mm-dd vdocument ide
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 檢修部績效管理制度
- 檢驗區(qū)消毒管理制度
- 概預(yù)算科室管理制度
- 母嬰店收銀管理制度
- 氟利昂冷庫管理制度
- 水管站人員管理制度
- 江陽區(qū)橋梁管理制度
- 汽修店員工管理制度
- 汽車pdi管理制度
- 家用機器人技術(shù)及市場前景分析
- 單板硬件調(diào)試與單元測試方案報告
- DB23T 2327-2019 透水混凝土鉸接塊護坡應(yīng)用技術(shù)規(guī)范
- 以“勝任力”為導(dǎo)向的腎臟泌尿整合智慧樹知到課后章節(jié)答案2023年下上海市同濟醫(yī)院
- 動火作業(yè)許可證
- 網(wǎng)絡(luò)微短劇的內(nèi)容創(chuàng)新策略研究
- 對學(xué)生課后作業(yè)的調(diào)查報告
- 貴陽市南明區(qū)吉祥寵物醫(yī)院建設(shè)項目環(huán)評報告
- Zemax軟件設(shè)計教程PPT
- 智能制造裝備及系統(tǒng) 配套課件
- 【深信服】安全PT1-EDR認(rèn)證考試必備復(fù)習(xí)題庫(含答案)
- 血栓性血小板減少性紫癜ttp匯編課件
評論
0/150
提交評論