版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、精品文檔 Software Architecture DocumentVersion Revision HistoryDateVersionDescriptionAuthor.精品文檔目錄1.文檔簡介41.1文檔目的41.2文檔范圍41.3定義、縮寫詞和縮略語41.4參考資料42.架構(gòu)描述方式42.1架構(gòu)視圖閱讀指南42.2圖表與模型閱讀指南53.架構(gòu)設(shè)計目標(biāo)53.1關(guān)鍵功能53.2關(guān)鍵質(zhì)量屬性53.3業(yè)務(wù)需求和約束因素54.架構(gòu)設(shè)計原則64.1架構(gòu)設(shè)計原則64.2備選架構(gòu)設(shè)計方案及被否原因64.3架構(gòu)設(shè)計對后續(xù)工作的限制(詳設(shè),部署等)65.邏輯架構(gòu)視圖65.1職責(zé)劃分與職責(zé)確定75.2接口
2、設(shè)計與協(xié)作機(jī)制75.3重要設(shè)計包76.開發(fā)架構(gòu)視圖86.1Project 劃分86.2Project 186.2.1 Project 目錄結(jié)構(gòu)指導(dǎo)86.2.2 程序單元組織86.2.3 框架與應(yīng)用之間的關(guān)系(可選)86.3Project 296.4Project n97.運(yùn)行架構(gòu)視圖97.1控制流組織107.2控制流的創(chuàng)建、銷毀、通信107.3加鎖設(shè)計108.物理架構(gòu)視圖108.1物理拓?fù)?08.2軟件到硬件的映射118.3優(yōu)化部署119.數(shù)據(jù)架構(gòu)視圖12.精品文檔9.1持久化機(jī)制的選擇129.2持久化存儲方案129.3數(shù)據(jù)同步與復(fù)制策略1210.關(guān)鍵質(zhì)量屬性的設(shè)計原理13.精品文檔文檔簡介幫
3、助讀者對本文檔建立基本印象,并為閱讀后續(xù)內(nèi)容掃清障礙。1.1文檔目的文檔目的,非項(xiàng)目目的。否則造成同一項(xiàng)目多個文檔之間的內(nèi)容重復(fù),不利于文檔維護(hù)。本小節(jié)應(yīng)指明文檔針對的讀者對象,最好列出各種讀者角色,并說明每種讀者角色應(yīng)該重點(diǎn)閱讀的章節(jié)。 1.2文檔范圍文檔的 Scope ,非項(xiàng)目的 Scope 。否則造成同一項(xiàng)目多個文檔之間的內(nèi)容重復(fù),不利于文檔維護(hù)。 1.3定義、縮寫詞和縮略語集中列舉文檔中的定義、縮寫詞和縮略語。1.4參考資料本項(xiàng)目經(jīng)審核的計劃書、合同、上級批文;本項(xiàng)目的其他已發(fā)表文件;本文檔引用的文件資料,如軟件開發(fā)標(biāo)準(zhǔn)。具體而言,應(yīng)包括參考資料的題目(必須)、編號、版本號(必須)、發(fā)
4、表日期、發(fā)布方,必要時還可以說明如何使用這些資料。架構(gòu)描述方式為了讓讀者更好地理解架構(gòu)文檔,在本節(jié)應(yīng)當(dāng)說明文檔涉及的架構(gòu)視圖,并指明為了描述設(shè)計決策用到了哪些圖表和模型。2.1架構(gòu)視圖閱讀指南以多視圖的方式來組織架構(gòu)文檔是大勢所趨。推薦的是經(jīng)過優(yōu)化的 5 視圖方法,如下圖所示。 .精品文檔2.2圖表與模型閱讀指南對后續(xù)文檔內(nèi)容中所用到的建模語言(例如 UML )、表格(例如目標(biāo) - 場景 -決策表)等進(jìn)行說明。 架構(gòu)設(shè)計目標(biāo)功能、質(zhì)量、約束,一個都不能少。3.1關(guān)鍵功能對架構(gòu)設(shè)計至關(guān)重要的功能,包括如下4 類:核心功能、必做功能、高風(fēng)險功能、獨(dú)特功能。所謂獨(dú)特功能,指這個功能覆蓋了上述3 類功
5、能沒有涉及到的職責(zé)。3.2關(guān)鍵質(zhì)量屬性人之所以痛苦,很多時候是因?yàn)樽非箦e誤的東西。下圖是確定關(guān)鍵質(zhì)量的5 大原則的整體思路圖。 3.3業(yè)務(wù)需求和約束因素創(chuàng)造性地提出約束需求的4 大類型,這是一種極為實(shí)用的分類方式。特別是業(yè)務(wù)需求對架構(gòu)設(shè)計而言是一種約束的觀點(diǎn),解決了很多架構(gòu)師的現(xiàn)實(shí)困惑。下圖標(biāo)明了4 類約束在“需求層次- 需求方面矩陣”中的位置,可以幫助我們理解產(chǎn)生約束需求的根源。.精品文檔架構(gòu)設(shè)計原則投標(biāo)時經(jīng)常講“架構(gòu)設(shè)計原則”,但到了架構(gòu)文檔,這些著眼大局的考慮卻“丟了”。推薦的本文檔模板,認(rèn)為應(yīng)當(dāng)把它們“找回來”。4.1架構(gòu)設(shè)計原則著重描述重大的權(quán)衡取舍考慮。4.2備選架構(gòu)設(shè)計方案及被否
6、原因在概念架構(gòu)一級,對備選架構(gòu)設(shè)計方案進(jìn)行描述,并闡述它們未被采用的原因。這有利于團(tuán)隊了解當(dāng)前架構(gòu)設(shè)計方案的來龍去脈,提高團(tuán)隊對當(dāng)前架構(gòu)設(shè)計方案的認(rèn)可度。4.3架構(gòu)設(shè)計對后續(xù)工作的限制(詳設(shè),部署等)架構(gòu)設(shè)計不僅應(yīng)該包含“指導(dǎo)”,也應(yīng)該包含重要的“限制”。例如,一份只是說明“性能和可擴(kuò)展性都重要”的架構(gòu)文檔,實(shí)際上忽視了“可擴(kuò)展性和性能之間存在的矛盾關(guān)系”。此時,最有效的辦法就是在架構(gòu)文檔中明確說明“任何提升可擴(kuò)展性的架構(gòu)設(shè)計和詳細(xì)設(shè)計,都應(yīng)通過架構(gòu)團(tuán)隊的評審才能引入,以確保性能目標(biāo)不受重大影響”。邏輯架構(gòu)視圖關(guān)注點(diǎn):此架構(gòu)設(shè)計視圖的關(guān)注點(diǎn)是職責(zé)劃分。注意:邏輯架構(gòu)視圖無疑是最重要的,但同時也
7、應(yīng)避免“架構(gòu) = 模塊 + 接口”等以偏概全的認(rèn)識。 參考:任何復(fù)雜系統(tǒng)的架構(gòu)設(shè)計都不是一蹴而就的,所以架構(gòu)師需要理性思維過程的指導(dǎo)。針對邏輯架構(gòu)設(shè)計這個關(guān)鍵環(huán)節(jié),一線架構(gòu)師實(shí)踐指南一書給出了 2 條建議:一是“以質(zhì)疑驅(qū)動的螺旋思維”,二是相對分離地考慮“結(jié)構(gòu)方面的切分”和“行為方面的定義”。下圖.精品文檔所示即為推薦的邏輯架構(gòu)設(shè)計理性思維過程。5.1職責(zé)劃分與職責(zé)確定內(nèi)容:將系統(tǒng)切分成更小的單元,并明確這些單元的職責(zé)。具體而言,職責(zé)單元可以是層、子系統(tǒng)、模塊、關(guān)鍵類等。 意義:一句話,職責(zé)劃分不合理,功能和質(zhì)量都會受到影響。也就是說,功能需求和質(zhì)量需求無一不和職責(zé)劃分相關(guān):一方面,每個功能都
8、是由一條職責(zé)協(xié)作鏈完成的;另一方面,職責(zé)劃分方式也影響著質(zhì)量,于是需要職責(zé)模型針對特定質(zhì)量屬性要求做出相應(yīng)調(diào)整和優(yōu)化。很多人認(rèn)為架構(gòu)設(shè)計就是職責(zé)劃分的藝術(shù),雖略顯片面,但足以表明職責(zé)劃分的重要性。參考:基于對業(yè)界大量案例的研究,梳理出了“模塊劃分的3 種必用手段”,如下圖所示,更多內(nèi)容可參考一線架構(gòu)師實(shí)踐指南一書。5.2接口設(shè)計與協(xié)作機(jī)制內(nèi)容:本節(jié)描述接口的定義,以及協(xié)作的方式和規(guī)范。意義:恰恰是因?yàn)橛辛烁髂K之間“未來合作的契約”,分頭開發(fā)各模塊才有了基本保證。參考:推薦利用“包-接口”圖,來識別接口。下圖為一個“包-接口”圖的示例。參考:推薦使用序列圖,建議少用、甚至杜絕使用協(xié)作圖。下圖為
9、一個序列圖的示例。5.3重要設(shè)計包內(nèi)容:對重要子系統(tǒng)的設(shè)計進(jìn)行“灰盒”級描述。.精品文檔意義:“每個子系統(tǒng)在架構(gòu)設(shè)計中都應(yīng)保持黑盒子”的觀點(diǎn),過于理想化了。對于業(yè)務(wù)層、通用協(xié)作機(jī)制而言,經(jīng)常需要在架構(gòu)設(shè)計期間就引入“灰盒”級描述。參考:類圖和灰盒包圖,在本節(jié)中較多出現(xiàn)。下圖為一灰盒包圖示例。開發(fā)架構(gòu)視圖關(guān)注點(diǎn):此架構(gòu)設(shè)計視圖的關(guān)注點(diǎn)是程序單元組織。注意:此架構(gòu)設(shè)計視圖是必須的、不應(yīng)“剪裁”掉的。但實(shí)際情況卻是,很多架構(gòu)師不關(guān)注開發(fā)架構(gòu)視圖,導(dǎo)致很多程序開發(fā)人員抱怨“架構(gòu)師就知道高來高去,架構(gòu)對編程工作沒什么指導(dǎo)性”。 6.1Project 劃分內(nèi)容:本節(jié)說明整個系統(tǒng)將劃分成哪幾個Project
10、 來開發(fā),其中, Project 指開發(fā)環(huán)境所感知到的“工程”。 意義:基本好處是,有利于開發(fā)的組織;而對一些大型的集成系統(tǒng)而言,由于同時涉及了Web 應(yīng)用、桌面應(yīng)用、嵌入式應(yīng)用等軟件形態(tài),所以此時Project 劃分其實(shí)是不得不做的;最后,我們推薦核心代碼應(yīng)主動地切分到單獨(dú)的Project 以進(jìn)行獨(dú)立的軟件配置管理(SCM ),以降低核心代碼外泄的風(fēng)險。 參考: Project 劃分必然是屬于“架構(gòu)設(shè)計”的工作,嚴(yán)格來講僅靠“需求分析”劃分的業(yè)務(wù)域( Business Area)直接映射到 Project經(jīng)常意味著工作內(nèi)容的遺漏。其實(shí),業(yè)界不少有見地的專家已經(jīng)認(rèn)識到WBS (工作分解結(jié)構(gòu))做
11、得太早太草率危害很大,就與“Project劃分不到位”不無關(guān)系。 6.2Project 1內(nèi)容:對 Project劃分后的每個 Project 進(jìn)行目錄結(jié)構(gòu)、程序單元組織、框架與應(yīng)用關(guān)系的說明。 6.2.1Project 目錄結(jié)構(gòu)指導(dǎo)內(nèi)容:關(guān)于該 Project 一級目錄、二級目錄等基本目錄結(jié)構(gòu)的約定。意義:為團(tuán)隊并行開發(fā)提供必要基礎(chǔ),讓不同程序小組看到自己應(yīng)該負(fù)責(zé)的程序目錄。參考:不要把所有程序目錄的約定都定義得太細(xì),否則這份架構(gòu)文檔就要天天更新了。6.2.2程序單元組織內(nèi)容:源碼、程序庫、框架、目標(biāo)碼等類型程序單元之間的編譯依賴關(guān)系。意義:或許有人認(rèn)為這沒什么技術(shù)含量,但架構(gòu)設(shè)計本來就不是
12、只關(guān)心技術(shù)含量最高問題的。君不見,很多軟件工程師跳槽到新的企業(yè)之后,竟然連一個能正常編譯源碼的開發(fā)環(huán)境都建不起來其實(shí),他們“不知道Project 所依賴的 Library 有哪些”是其中重要原因這本應(yīng)在架構(gòu)文檔中給出明確描述的。6.2.3框架與應(yīng)用之間的關(guān)系(可選)內(nèi)容:框架(Framework )。 .意義:既然不適用Framework的開發(fā)越來越少了,既然程序員犯的很多錯誤都和對Framework理解不到位有關(guān),架構(gòu)師就有責(zé)任明確說明Framework和待開發(fā)系統(tǒng)之間的關(guān)系。 參考:下圖描述了JGraph 框架和待開發(fā)應(yīng)用的關(guān)系。參考:下圖描述了Struts 框架和待開發(fā)應(yīng)用的關(guān)系。6.3
13、Project 2內(nèi)容:對 Project 劃分后的每個 Project 進(jìn)行目錄結(jié)構(gòu)、程序單元組織、框架與應(yīng)用關(guān)系的說明。 6.4Project n內(nèi)容:對 Project 劃分后的每個 Project 進(jìn)行目錄結(jié)構(gòu)、程序單元組織、框架與應(yīng)用關(guān)系的說明。 運(yùn)行架構(gòu)視圖關(guān)注點(diǎn):此架構(gòu)設(shè)計視圖的關(guān)注點(diǎn)是控制流組織。注意:進(jìn)程和線程是廣為人知的控制流實(shí)現(xiàn)技術(shù),但在架構(gòu)設(shè)計思維當(dāng)中,對于系統(tǒng)軟件和嵌入式軟件極為重要的中斷服務(wù)程序也是控制流,這樣利于架構(gòu)師統(tǒng)一利用不同控制流手段設(shè)計并行和并發(fā)。 .精品文檔7.1控制流組織內(nèi)容:控制流有哪些,每條控制流各是何種形式(例如進(jìn)程、線程、中斷服務(wù)程序),哪些軟
14、件單元是控制流的起點(diǎn),整條控制流中分別調(diào)用了哪些軟件單元。意義:這是對系統(tǒng)運(yùn)行時結(jié)構(gòu)的刻畫,主要反映系統(tǒng)的動態(tài)結(jié)構(gòu)。7.2控制流的創(chuàng)建、銷毀、通信內(nèi)容:描述進(jìn)程、線程和中斷服務(wù)程序的創(chuàng)建和銷毀,以及多條控制流之間的通信關(guān)系的定義。 意義:一旦引入了多條控制流,附加工作就產(chǎn)生了此時控制流的創(chuàng)建和銷毀、以及控制流之間的通信關(guān)系往往是必須考慮的。7.3加鎖設(shè)計內(nèi)容:系統(tǒng)中有多條控制流在同時運(yùn)行的情況下,一個經(jīng)典問題是多于一條控制流可能會同時修改某些數(shù)據(jù)結(jié)構(gòu),而造成數(shù)據(jù)的不一致。為此,架構(gòu)師需要關(guān)注加鎖設(shè)計,合理引入臨界區(qū)或同步機(jī)制。 意義:加鎖設(shè)計事關(guān)系統(tǒng)的正確性。值得注意的是,忽略加鎖設(shè)計造成的問
15、題往往以“不易重現(xiàn)的 Bug ”的形式出現(xiàn),困惑的程序員會對測試人員說,“你看你報的 Bug 在我機(jī)器上根本就不存在呀”。 參考:對通用組件、通用模塊的設(shè)計而言,加鎖設(shè)計應(yīng)予以專門關(guān)注,思維要點(diǎn)是研究未來通用模塊的各種可能使用場景。 物理架構(gòu)視圖關(guān)注點(diǎn):此架構(gòu)設(shè)計視圖的關(guān)注點(diǎn)是物理節(jié)點(diǎn)( Node )分布,以及軟件到硬件的具體映射關(guān)系。 注意:物理節(jié)點(diǎn)即可以是PC 機(jī)或服務(wù)器,也可以是單片機(jī)、單板機(jī)或?qū)S脵C(jī),從而物理架構(gòu)視圖既適用于描述企業(yè)信息系統(tǒng),也適合于描述嵌入式軟件系統(tǒng)。8.1物理拓?fù)鋬?nèi)容:一為硬件選型,二為硬件之間的拓?fù)溥B接關(guān)系。意義:對于分布式系統(tǒng)的設(shè)計,此節(jié)極為重要、而且是必須的。
16、參考:下圖是某企業(yè)級系統(tǒng)的物理拓?fù)鋱D。參考:下圖是某嵌入式系統(tǒng)的物理拓?fù)鋱D。.精品文檔8.2軟件到硬件的映射內(nèi)容:明確每個物理節(jié)點(diǎn)上有哪些(一到多個)軟件的目標(biāo)單元,并說明具體的“映射方式”是安裝、是部署、還是燒寫、抑或是下載。意義:如果把此節(jié)漏了,就無法表明本文檔的主題軟件系統(tǒng)和上述硬件、硬件拓?fù)涞年P(guān)系。 參考:下圖所示為設(shè)備調(diào)試系統(tǒng)中,軟件到硬件的映射關(guān)系。8.3優(yōu)化部署內(nèi)容:為達(dá)降低成本、提高性能和可靠性等等目標(biāo),應(yīng)特別關(guān)注的部署考慮。意義:物理架構(gòu)設(shè)計的優(yōu)劣,造成的成本差異和質(zhì)量差異,可能是天壤之別。所以必須重視。 參考:下圖展示的,是 ADMEMS 方法重點(diǎn)推薦的“物理架構(gòu)設(shè)計思維要
17、點(diǎn)”,更多內(nèi)容可參考一線架構(gòu)師實(shí)踐指南一書。 .精品文檔數(shù)據(jù)架構(gòu)視圖關(guān)注點(diǎn):此架構(gòu)設(shè)計視圖的關(guān)注點(diǎn)是持久化。具體而言,場景化可以借助扁平文件、關(guān)系數(shù)據(jù)庫、實(shí)時數(shù)據(jù)庫、 Flash 等方式中的一種或多種完成。 注意:本視圖單獨(dú)歸檔時,請在此節(jié)注明其文檔名稱等信息。9.1持久化機(jī)制的選擇內(nèi)容:如下持久化機(jī)制的一種或多種:扁平文件、關(guān)系數(shù)據(jù)庫、實(shí)時數(shù)據(jù)庫、Flash 。 意義:不要假設(shè)在你的系統(tǒng)中,持久化只需一種機(jī)制;隨著如今的系統(tǒng)變得越來越復(fù)雜,我們經(jīng)常需要綜合利用不同持久化機(jī)制。9.2持久化存儲方案內(nèi)容:持久化數(shù)據(jù)的格式定義。意義:統(tǒng)一定義表、文件格式、Flash 數(shù)據(jù)結(jié)構(gòu)等內(nèi)容。 9.3數(shù)據(jù)同步與復(fù)制策略內(nèi)容:由于數(shù)據(jù)分布所引起的,包含數(shù)據(jù)分布、同步、復(fù)制等內(nèi)容的重要設(shè)計決策。意義:在數(shù)據(jù)分布的情況下,此節(jié)為必須。參考:在實(shí)際中,數(shù)據(jù)分布的策略絕大多數(shù)情況下不會超越下圖所示的6 種手段,更多內(nèi)容可參考一線架構(gòu)師實(shí)踐指南一書。.精
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版二零二五年度教育信息化設(shè)備采購合同范本4篇
- 2024送餐員電動車及裝備租賃服務(wù)合同協(xié)議3篇
- 2025版危險品運(yùn)輸駕駛員聘用及福利待遇合同3篇
- 2025版信用社貸款合同貸款合同解除及終止合同3篇
- 2025版醫(yī)療器械生產(chǎn)委托合同實(shí)施細(xì)則3篇
- 二零二五年度建筑材料供應(yīng)商質(zhì)量保證與綠色環(huán)保施工協(xié)議3篇
- 2024苗木采購合同書
- 專屬經(jīng)營委托協(xié)議樣本(2024)版B版
- 2025年度智能社區(qū)安防監(jiān)控系統(tǒng)采購與實(shí)施合同3篇
- 科技助力下的城市水系保護(hù)工程
- 2024年公需科目培訓(xùn)考試題及答案
- 2024年江蘇鑫財國有資產(chǎn)運(yùn)營有限公司招聘筆試沖刺題(帶答案解析)
- 2024年遼寧石化職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性測試題庫含答案
- 廣西桂林市2023-2024學(xué)年高二上學(xué)期期末考試物理試卷
- 財務(wù)指標(biāo)與財務(wù)管理
- 部編版二年級下冊道德與法治第三單元《綠色小衛(wèi)士》全部教案
- 【京東倉庫出庫作業(yè)優(yōu)化設(shè)計13000字(論文)】
- 保安春節(jié)安全生產(chǎn)培訓(xùn)
- 初一語文上冊基礎(chǔ)知識訓(xùn)練及答案(5篇)
- 血液透析水處理系統(tǒng)演示
- GB/T 27030-2006合格評定第三方符合性標(biāo)志的通用要求
評論
0/150
提交評論