05什么是構(gòu)架過程雳锋?

26

什么叫架構(gòu)夸浅?

Fore metaphors for architecture

Architecture as blueprint. / Architecture asliterature. / Architecture as language. / Architecture as decision.

架構(gòu)的前喻——架構(gòu)作為藍(lán)圖冤荆。/? 架構(gòu)作為文獻(xiàn)。/ 架構(gòu)作為語言歇终。/ 架構(gòu)作為決定社证。

軟件架構(gòu),以前沒有統(tǒng)一的定義评凝,不同的人從不同的角度定義了這個(gè)概念追葡。那當(dāng)然是哪些人的定義比較全面客觀有影響力,我們就用哪個(gè)人的定義了奕短。

架構(gòu)找到了四種比喻宜肉,現(xiàn)在看起來還不太準(zhǔn)確,后續(xù)會修正的篡诽。架構(gòu)崖飘,它是需求和設(shè)計(jì)之間的一座橋梁橋榴捡,它連接了我們的需求與設(shè)計(jì)杈女,從而架構(gòu)本身也成為了一門學(xué)科。軟件架構(gòu)學(xué)科無疑是公認(rèn)的學(xué)科吊圾,架構(gòu)就位于這個(gè)抽象的中心點(diǎn)达椰。

架構(gòu)要通過抽象人們的關(guān)注點(diǎn),從而針對這些關(guān)注點(diǎn)進(jìn)行分割项乒,來簡化軟件開發(fā)的復(fù)雜性啰劲,這是我們的一個(gè)中心思想。

27

視圖在某種意義上是等價(jià)的檀何,但是透視圖蝇裤,更多的是橫切的,最典型的例子频鉴,就是安全鎖栓辜,這個(gè)是軟件和硬件細(xì)節(jié)配合起來,才能實(shí)現(xiàn)一個(gè)安全垛孔。

這些都是需要藕甩,功能性,內(nèi)部結(jié)構(gòu)與硬件結(jié)構(gòu)是配合在一起工作的周荐,我們的對應(yīng)點(diǎn)是涉眾狭莱,然后僵娃,從涉眾自己的視角(perspectives),看到的問題的不同方面腋妙。

就正如那個(gè)大象的故事默怨,我們需要把他們不同的視角都融合在一起,那個(gè)大象的圖像辉阶,經(jīng)過一個(gè)組裝先壕,形成一個(gè)完美而真實(shí)的架構(gòu),這就是整個(gè)軟件構(gòu)架的過程谆甜,從而獲得了一個(gè)架構(gòu)設(shè)計(jì)的成果垃僚。

軟件架構(gòu)的目的,就是滿足需求的情況下规辱,一定要滿足系統(tǒng)的質(zhì)量谆棺,并將過程和結(jié)果記錄下來。

軟件工程罕袋,最終做出來的是一個(gè)具體的東西改淑,它一定是有些質(zhì)量指標(biāo)的。而架構(gòu)是在這個(gè)系統(tǒng)里面的浴讯,體現(xiàn)出那些質(zhì)量指標(biāo)朵夏,從而達(dá)到我們的目的和手段有機(jī)地統(tǒng)一在一起,我們的目的當(dāng)然是要滿足用戶需求了榆纽。

軟件最終是一堆具體的軟件質(zhì)量屬性仰猖,通過一定的手段和方法,去實(shí)現(xiàn)與滿足不同的涉眾的需要奈籽。


28

因此饥侵,Role of Software Architecture/軟件架構(gòu)的作用是,A crucial bridge between requirements and design.

它是需求與設(shè)計(jì)之間的重要橋梁衣屏。因此躏升,軟件架構(gòu)的本質(zhì)動機(jī)就是:

The software architecture discipline is centered on theidea of reducing complexity through abstraction and separation of concerns.

軟件體系結(jié)構(gòu)學(xué)科的核心是通過抽象和關(guān)注的分離來降低復(fù)雜性的思想。它為了解決在系統(tǒng)高層交互上的麻煩狼忱,處理關(guān)于設(shè)計(jì)和實(shí)施的決策膨疏,改善涉眾之間的交流,以及增強(qiáng)架構(gòu)的復(fù)用钻弄。

Software architecture is really the amalgamation of the multiple perspectives a system always embodies.

軟件架構(gòu)實(shí)際上是一個(gè)系統(tǒng)始終體現(xiàn)的多重視角的融合佃却。

那,軟件架構(gòu)的目的是什么呢斧蜕?

the purpose of the software architecture is to ensure that the system meets thegoals of the stakeholders with respect to various software qualities such asmaintainability, scalability, testability, etc.

軟件架構(gòu)的目的是確保系統(tǒng)能夠滿足利益干系人(涉眾)對各種軟件質(zhì)量的目標(biāo)双霍,如可維護(hù)性、可伸縮性、可測試等洒闸。

架構(gòu)師染坯,他要為這個(gè)應(yīng)用軟件確定一個(gè)參考架構(gòu),他一定要追尋一種開發(fā)方法丘逸,然后能有一個(gè)參考模型单鹿,再然后記錄下他的一些關(guān)鍵性的架構(gòu)。參考模型深纲,是對這個(gè)應(yīng)用程序連在一起的仲锄。也就是說,不同的衣服湃鹊,或者不同的風(fēng)格儒喊,你的參考模型是不一樣的。

29

不同的參考模型币呵,就構(gòu)成了不同的模式怀愧。架構(gòu)模式又分成了三類。架構(gòu)風(fēng)格余赢,是一種架構(gòu)模式芯义,風(fēng)格是模式的一種,但模式不一定是風(fēng)格妻柒,所以風(fēng)格的力度會更大一些扛拨。

我們的核心概念是應(yīng)用框架,因?yàn)槲覀兪窃诳蚣芩季S的指導(dǎo)下進(jìn)行工作的举塔,應(yīng)用框架但不是一個(gè)參考模型绑警,應(yīng)用框架里面有架構(gòu)的基本,最終的架構(gòu)是在模型之后啤贩。首先要確定的是風(fēng)格待秃,然后是架構(gòu)的機(jī)制拜秧,當(dāng)一個(gè)系統(tǒng)做完了隨著需求的變化而改變痹屹,首先改變的就是一種架構(gòu)的風(fēng)格,架構(gòu)的風(fēng)格會有很多枉氮,不同的風(fēng)格組合在一起志衍,就形成一個(gè)異構(gòu)的風(fēng)格。

比如聊替,每個(gè)企業(yè)都會去解決一個(gè)社會問題楼肪,那它都有一個(gè)架構(gòu),而架構(gòu)首先體現(xiàn)了它的價(jià)值惹悄。企業(yè)會根據(jù)具體的業(yè)務(wù)形式春叫,在一個(gè)行業(yè)里面解決問題的時(shí)候,還形成了一套自己的固定的風(fēng)格。如果暂殖,他們的風(fēng)格是一樣的价匠,那就形成了依賴性,比如電子商務(wù)這類企業(yè)呛每,電子商務(wù)構(gòu)成的一類系統(tǒng)踩窖,形成了這樣的風(fēng)格,于是晨横,所有的使用電子商務(wù)應(yīng)用系統(tǒng)洋腮,他們都有基本一致的架構(gòu)風(fēng)格,比如選了一些固定的BS(瀏覽器服務(wù)器)結(jié)構(gòu)的架構(gòu)風(fēng)格手形。

選擇了這樣的架構(gòu)啥供,就構(gòu)成了這個(gè)行業(yè)的軟件系統(tǒng),于是就體現(xiàn)出了廣義的模式库糠,這是我們整個(gè)的思路了滤灯。就是一個(gè)怎么樣的風(fēng)格,使得它可以能滿足各種需求曼玩,通過架構(gòu)使得我們能夠從需求到設(shè)計(jì)上的來解決問題鳞骤。

首先要理解的,就是架構(gòu)處于的上下文環(huán)境黍判。

比如豫尽,我們學(xué)習(xí)行業(yè)軟件,然后說一定的風(fēng)格是什么顷帖,風(fēng)格是經(jīng)驗(yàn)的一個(gè)總結(jié)美旧,因?yàn)轱L(fēng)格是某些系統(tǒng)共有的。形成了一個(gè)架構(gòu)的風(fēng)格贬墩,一個(gè)架構(gòu)的模式榴嗅。那,經(jīng)驗(yàn)從哪里來陶舞,經(jīng)驗(yàn)其實(shí)就是一種體驗(yàn)嗽测,是從實(shí)踐中來的。

行業(yè)里應(yīng)用的這些規(guī)則肿孵,這叫工程唠粥,engineering,但是我們在這個(gè)基礎(chǔ)上停做,又要有一些創(chuàng)造性晤愧,creative,那就是藝術(shù)蛉腌。任何行業(yè)里面的應(yīng)用軟件系統(tǒng)官份,都是在一定的約束規(guī)則下只厘,再去發(fā)揮你有限的創(chuàng)新性,這需要找到一個(gè)平衡舅巷,這就是架構(gòu)的風(fēng)格懈凹。

30

核心圖,實(shí)際上就演繹了這個(gè)approach悄谐。當(dāng)我們講架構(gòu)的介评,我們用的是UML,這是我們的架構(gòu)描述語言爬舰,最核心的就是要識別涉眾们陆,找到每個(gè)涉眾的關(guān)注點(diǎn),然后管理分割這些關(guān)注點(diǎn)情屹,形成一個(gè)具體的架構(gòu)的模型坪仇。

別忘了,本書的目的是什么垃你?

高度決定視野椅文。

角度改變觀念。

尺度把握人生惜颇。

因此皆刺,《框架思維》,通過一個(gè)完全真實(shí)的案例凌摄,使用模型驅(qū)動開發(fā)(MDD)的軟件工程過程的方法羡蛾,有效運(yùn)用由用例捕獲的系統(tǒng)需求(用例模型),去驅(qū)動一個(gè)強(qiáng)壯的模型驅(qū)動的架構(gòu)(MDA)的開發(fā)必須的理念和技巧锨亏。

在本書中痴怨,讀者將在框架思維的指導(dǎo)下,學(xué)會如何進(jìn)行架構(gòu)的構(gòu)思器予、定義浪藻、描述、記錄乾翔、分析爱葵、設(shè)計(jì)、實(shí)施和評估等關(guān)鍵活動末融,通過在整個(gè)軟件項(xiàng)目生命周期中钧惧,運(yùn)用UML去捕獲和交流軟件架構(gòu)決策暇韧。

我們在一個(gè)用例驅(qū)動的勾习、以架構(gòu)為中心的、迭代和增量的軟件工程過程中懈玻,學(xué)會如何架構(gòu)符合軟件架構(gòu)目標(biāo)和系統(tǒng)質(zhì)量特性的軟件架構(gòu)巧婶。

31

達(dá)到目標(biāo)時(shí)乾颁,一個(gè)讀者將具備以下能力:

熟練掌握框架思維這一普遍性科學(xué)性的方法論,熟練掌握軟件架構(gòu)的定義艺栈、范圍英岭、目標(biāo)、風(fēng)格湿右、框架诅妹、描述,驗(yàn)證和評估等毅人。

熟練掌握軟件架構(gòu)師的定義吭狡、定位、職責(zé)丈莺、評估划煮、培養(yǎng)以及與系統(tǒng)分析師、軟件設(shè)計(jì)師和項(xiàng)目管理等角色的重要區(qū)別和內(nèi)在聯(lián)系等缔俄。熟練掌握軟件構(gòu)架的過程弛秋。通過呈現(xiàn)一組架構(gòu)視點(diǎn)和架構(gòu)透視圖,為軟件架構(gòu)師改善個(gè)人和組織的軟件系統(tǒng)架構(gòu)的途徑提供具體的方向俐载。

掌握設(shè)計(jì)反映和平衡不同的涉眾需要的架構(gòu)的方法蟹略。掌握和涉眾一起交流架構(gòu)并且論證架構(gòu)滿足他們的需求的方法。聚集架構(gòu)設(shè)計(jì)的重要方面遏佣,包括常被忽略的諸如性能科乎、彈性和位置等架構(gòu)重要的方面。

以及贼急,使用場景和模式去驅(qū)動架構(gòu)的創(chuàng)建和驗(yàn)證茅茂。使用一組相關(guān)的視圖文檔化架構(gòu)。使用透視圖確保滿足系統(tǒng)的性能太抓、伸縮性和安全等重要質(zhì)量屬性空闲。熟練掌握不同層級的架構(gòu)機(jī)制,例如:分析機(jī)制走敌、設(shè)計(jì)機(jī)制和實(shí)施機(jī)制碴倾。熟練掌握分析模型、設(shè)計(jì)模型掉丽、實(shí)施模型跌榔、部署模型的開發(fā)。

因此捶障,內(nèi)容包括并不限于:

01框架思維與軟件架構(gòu)導(dǎo)論

02 UML用例分析與機(jī)制

03案例與軟件開發(fā)方法論

04思維模式與需求分析

05架構(gòu)風(fēng)格模式

06可重用的架構(gòu)資產(chǎn)

07架構(gòu)分析設(shè)計(jì)與架構(gòu)實(shí)施

08 MVC架構(gòu)風(fēng)格與RSA工具的使用

09關(guān)鍵需求決定架構(gòu)

10文檔化架構(gòu)與架構(gòu)評價(jià)依據(jù)

11面向?qū)ο蟮募軜?gòu)設(shè)計(jì)原理

32

此系列適合于已經(jīng)積累了面向?qū)ο蟮能浖到y(tǒng)開發(fā)經(jīng)驗(yàn)的項(xiàng)目經(jīng)理僧须、架構(gòu)師和設(shè)計(jì)師。以及其它想了解此類內(nèi)容的人士项炼。讀者需要了解担平,軟件工程過程和軟件項(xiàng)目的生命周期示绊,UML和建模工具,軟件開發(fā)過程暂论,軟件需求工程面褐,面向?qū)ο蟮脑O(shè)計(jì)模式。架構(gòu)集成開發(fā)環(huán)境(IDE)取胎,使用Rational Software Architect(RSA)展哭。

圖012 軟件工程過程和軟件項(xiàng)目生命周期

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市闻蛀,隨后出現(xiàn)的幾起案子摄杂,更是在濱河造成了極大的恐慌,老刑警劉巖循榆,帶你破解...
    沈念sama閱讀 211,194評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件析恢,死亡現(xiàn)場離奇詭異,居然都是意外死亡秧饮,警方通過查閱死者的電腦和手機(jī)映挂,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評論 2 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來盗尸,“玉大人柑船,你說我怎么就攤上這事∑酶鳎” “怎么了鞍时?”我有些...
    開封第一講書人閱讀 156,780評論 0 346
  • 文/不壞的土叔 我叫張陵,是天一觀的道長扣蜻。 經(jīng)常有香客問我逆巍,道長,這世上最難降的妖魔是什么莽使? 我笑而不...
    開封第一講書人閱讀 56,388評論 1 283
  • 正文 為了忘掉前任锐极,我火速辦了婚禮,結(jié)果婚禮上芳肌,老公的妹妹穿的比我還像新娘灵再。我一直安慰自己,他們只是感情好亿笤,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,430評論 5 384
  • 文/花漫 我一把揭開白布翎迁。 她就那樣靜靜地躺著,像睡著了一般净薛。 火紅的嫁衣襯著肌膚如雪汪榔。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,764評論 1 290
  • 那天罕拂,我揣著相機(jī)與錄音揍异,去河邊找鬼全陨。 笑死爆班,一個(gè)胖子當(dāng)著我的面吹牛衷掷,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播柿菩,決...
    沈念sama閱讀 38,907評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼戚嗅,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了枢舶?” 一聲冷哼從身側(cè)響起懦胞,我...
    開封第一講書人閱讀 37,679評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎凉泄,沒想到半個(gè)月后躏尉,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,122評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡后众,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,459評論 2 325
  • 正文 我和宋清朗相戀三年胀糜,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蒂誉。...
    茶點(diǎn)故事閱讀 38,605評論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡教藻,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出右锨,到底是詐尸還是另有隱情括堤,我是刑警寧澤,帶...
    沈念sama閱讀 34,270評論 4 329
  • 正文 年R本政府宣布绍移,位于F島的核電站悄窃,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏蹂窖。R本人自食惡果不足惜广匙,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,867評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望恼策。 院中可真熱鬧鸦致,春花似錦、人聲如沸涣楷。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,734評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽狮斗。三九已至绽乔,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間碳褒,已是汗流浹背折砸。 一陣腳步聲響...
    開封第一講書人閱讀 31,961評論 1 265
  • 我被黑心中介騙來泰國打工看疗, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人睦授。 一個(gè)月前我還...
    沈念sama閱讀 46,297評論 2 360
  • 正文 我出身青樓两芳,卻偏偏與公主長得像,于是被迫代替她去往敵國和親去枷。 傳聞我的和親對象是個(gè)殘疾皇子怖辆,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,472評論 2 348

推薦閱讀更多精彩內(nèi)容