體系結(jié)構(gòu)第1章認識體系結(jié)構(gòu)PPT課件_第1頁
體系結(jié)構(gòu)第1章認識體系結(jié)構(gòu)PPT課件_第2頁
體系結(jié)構(gòu)第1章認識體系結(jié)構(gòu)PPT課件_第3頁
體系結(jié)構(gòu)第1章認識體系結(jié)構(gòu)PPT課件_第4頁
體系結(jié)構(gòu)第1章認識體系結(jié)構(gòu)PPT課件_第5頁
已閱讀5頁,還剩36頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、1軟件體系結(jié)構(gòu)軟件體系結(jié)構(gòu)software architecture 2陳長清陳長清博士,副教授博士,副教授電子郵件電子郵件: ccqcl ccqcl華中科技大學軟件學院華中科技大學軟件學院3前言體系結(jié)構(gòu)簡稱架構(gòu)或構(gòu)架。 構(gòu):本義架木造屋,引申為構(gòu)造 構(gòu)架:建筑的結(jié)構(gòu) 結(jié):用繩、線、皮條等綰成的疙瘩;關(guān)鍵點;被聯(lián)結(jié)狀態(tài) 結(jié)構(gòu):組成整體的各部分的搭配和安排對住房的功能需求:能夠居住。 對住房的質(zhì)量需求: 安全性:能避免地震、臺風、暴雨等各種自然災害。 居住者在建筑內(nèi)的健康性,舒適性。 美觀性:有親和感,社會文化的體現(xiàn)。不同住房具有相同的功能,但其架構(gòu)不同,所滿足的居住質(zhì)量也不相同。4人類最早的居

2、住方式:巢居和穴居 炎熱或高海拔地區(qū)的穴居方式,可獲得相對穩(wěn)定的室內(nèi)熱環(huán)境,頂部的天窗既可采光又可排煙。5愛斯基摩雪屋的外觀和室內(nèi)布置用干雪沏成,厚度500的墻體可以提供較好的保溫性能。當室外平均溫度30時可維持室內(nèi)溫度5以上。6大陸氣候的中國民居土窯洞借助土壤大熱慣性,達到冬暖夏涼的目的。7 利用太陽高度角的特點,僅在北方出現(xiàn)。 四合院建筑冬季有效地利用了太陽能采暖和抵御北風侵襲,屋頂設(shè)計避免了夏季室內(nèi)過熱。中國四合院:座北朝南的典范8濕熱地區(qū)的中國民居云南干闌竹樓:防雨,防濕和防熱。9地球環(huán)境還可持續(xù)發(fā)展嗎?空調(diào)的普及使人們不再關(guān)心建筑的冷暖,但高能耗又使環(huán)境受到影響。10為什么研究軟件架

3、構(gòu)? 思想有多遠,我們就能走多遠 高度決定思路,思路決定出路 系統(tǒng)的建立是為了滿足組織的需求(包括功能和質(zhì)量),質(zhì)量需求決定了系統(tǒng)必須達到的特征, 包括性能, 可靠性, 互操作性以及生命周期等。隨著軟件系統(tǒng)的日益復雜,涉眾對軟件的要求已不局限于功能上的滿足,而是更加注重質(zhì)量。 很少有人注意到組織(開發(fā)組織、客戶等)在系統(tǒng)設(shè)計和系統(tǒng)成敗上扮演的角色。 系統(tǒng)的質(zhì)量特征受到軟件架構(gòu)的限制,或者說構(gòu)架設(shè)計的選擇受到要達到的質(zhì)量特征的影響。 本課程的目的:對軟件架構(gòu)的產(chǎn)生、演化做通俗介紹,減少對架構(gòu)認識的神秘感,對軟件架構(gòu)設(shè)計提供實用的指導。11閱讀指南第1部分: 軟件構(gòu)架的基礎(chǔ)第2部分: 構(gòu)架的創(chuàng)建第

4、3部分: 構(gòu)架的分析與評審案例分析的組織 案例的簡要說明 功能需求和質(zhì)量屬性 構(gòu)架解決方案 總結(jié)12第1部分軟件架構(gòu)基礎(chǔ)13 1.1 軟件架構(gòu)的概念 1.2 軟件架構(gòu)的多個結(jié)構(gòu) 1.3 軟件架構(gòu)的產(chǎn)生 1.4 軟件的架構(gòu)不是靜止的 1.5 軟件架構(gòu)的重要性 1.6 小結(jié) 1.7 討論第 1 章 認識軟件架構(gòu)141.1 軟件架構(gòu)的概念控制處理(cp)特征損失模型回聲模型噪音模型你從這個圖中可以知道什么?15軟件架構(gòu)在一定的設(shè)計原則基礎(chǔ)上,從不同角度對組成系統(tǒng)的各部分進行搭配和安排,形成系統(tǒng)的多個結(jié)構(gòu)而組成架構(gòu),它包括該系統(tǒng)的各個組件、組件的外部可見屬性及相互關(guān)系。外部可見屬性指其它組件可對該組件

5、所做的假設(shè),如該組件提供的服務(wù)、具備的性能特征、錯誤處理、共享資源的使用。為什么設(shè)計原則是架構(gòu)的一部分? 做事先做人 很多人不懂或不遵守走路的規(guī)則,結(jié)果丟掉性命 很多人不遵守開車的規(guī)則,結(jié)果造成嚴重交通事故 同樣,不遵循架構(gòu)設(shè)計的原則,架構(gòu)也容易失敗。1.1.1 軟件架構(gòu)的定義16架構(gòu)定義可以從下面六個方面來理解:架構(gòu)應(yīng)建立在一定的設(shè)計原則之上,否則很容易失敗。系統(tǒng)可能由多個結(jié)構(gòu)組成,其中任何一個結(jié)構(gòu)都不能與構(gòu)架等同。每個軟件系統(tǒng)都有自己的架構(gòu)。軟件架構(gòu)決定了各個組件。只要某個組件的行為可以從其它組件的角度觀察到或區(qū)別開,這樣的行為就是軟件架構(gòu)的內(nèi)容。軟件架構(gòu)是抽象的,它不考慮實現(xiàn)、算法和數(shù)據(jù)

6、表示的細節(jié),而集中研究“黑盒”組件的行為和交互,是設(shè)計第一步。171.1.2 其它觀點觀點1 軟件架構(gòu)是高層次的設(shè)計觀點2 軟件架構(gòu)是軟件系統(tǒng)的總體結(jié)構(gòu)觀點3 ieee的定義:軟件架構(gòu)是一個程序或系統(tǒng)的組件結(jié)構(gòu)、組件之間的相互聯(lián)系及支配組件設(shè)計和進化的指導原則觀點4 perry和wo1f提出:軟件架構(gòu)是具有一定形式的結(jié)構(gòu)化元素,包括處理元素、數(shù)據(jù)元素和連接元素。處理元素負責對數(shù)據(jù)進行加工,數(shù)據(jù)元素是被加工的信息,連接元素把架構(gòu)的不同部分組合連接起來。18觀點5 mary shaw和david garlan認為軟件體系結(jié)構(gòu)是軟件設(shè)計過程中的一個層次,這一層次超越計算過程中的算法設(shè)計和數(shù)據(jù)結(jié)構(gòu)設(shè)計

7、。體系結(jié)構(gòu)問題包括總體組織和全局控制、通訊協(xié)議、同步、數(shù)據(jù)存取,給設(shè)計元素分配特定功能,設(shè)計元素的組織,規(guī)模和性能,在各設(shè)計方案間進行選擇等。軟件體系結(jié)構(gòu)處理算法與數(shù)據(jù)結(jié)構(gòu)之上關(guān)于整體系統(tǒng)結(jié)構(gòu)設(shè)計和描述方面的一些問題,如全局組織和全局控制結(jié)構(gòu)、關(guān)于通訊、同步與數(shù)據(jù)存取的協(xié)議,設(shè)計構(gòu)件功能定義,物理分布與合成,設(shè)計方案的選擇、評估與實現(xiàn)等。 觀點6 kruchten指出,軟件體系結(jié)構(gòu)有四個角度,它們從不同方面對系統(tǒng)進行描述:概念角度描述系統(tǒng)的主要構(gòu)件及它們之間的關(guān)系;模塊角度包含功能分解與層次結(jié)構(gòu);運行角度描述了一個系統(tǒng)的動態(tài)結(jié)構(gòu);代碼角度描述了各種代碼和庫函數(shù)在開發(fā)環(huán)境中的組織。 19這些角度

8、形成了一個“4+1”的視角模型。“4+1”模型從5個不同的視角包括邏輯視角、過程視角、物理視角、開發(fā)視角和場景視角來描述軟件體系結(jié)構(gòu)。每一個視角只關(guān)心系統(tǒng)的一個側(cè)面,5個視角結(jié)合在一起才能夠反映系統(tǒng)的軟件體系結(jié)構(gòu)的全部內(nèi)容?!?+1”模型如圖所示:20觀點7 hayes roth則認為軟件架構(gòu)是一個抽象的系統(tǒng)規(guī)范,主要包括用其行為來描述的功能構(gòu)件和構(gòu)件之間的相互連接、接口和關(guān)系 。 觀點8 barry boehm提出,軟件架構(gòu)包括系統(tǒng)構(gòu)件,互聯(lián)及約束的集合;系統(tǒng)需求說明的集合;一個基本原理用以說明這一構(gòu)件,互聯(lián)和約束能夠滿足系統(tǒng)需求。觀點9 軟件架構(gòu)為軟件系統(tǒng)提供了一個結(jié)構(gòu)、行為和屬性的高級抽

9、象,由構(gòu)成系統(tǒng)的元素的描述、這些元素的相互作用、指導元素集成的模式以及這些模式的約束組成。軟件架構(gòu)不僅指定了系統(tǒng)的組織結(jié)構(gòu)和拓撲結(jié)構(gòu),并且顯示了系統(tǒng)需求和構(gòu)成系統(tǒng)的元素之間的對應(yīng)關(guān)系,提供了一些設(shè)計決策的基本原理。211.2 軟件架構(gòu)的多個結(jié)構(gòu)靜態(tài)的角度:模塊結(jié)構(gòu)體現(xiàn)了任務(wù)的劃分,每個模塊有其接口描述、代碼和測試計劃等,各模塊通過父子關(guān)系聯(lián)系起來,在開發(fā)和維護階段用于分配任務(wù)和資源。概念(或邏輯)結(jié)構(gòu)系統(tǒng)功能需求的抽象,功能圖。類結(jié)構(gòu)對象之間的繼承或?qū)嵗P(guān)系。動態(tài)的角度:進程結(jié)構(gòu)運行系統(tǒng)的動態(tài)特征,包括進程間的同步關(guān)系、缺少不能運行、存在不能運行、先后等關(guān)系,與模塊結(jié)構(gòu)、概念結(jié)構(gòu)成垂直正交關(guān)系

10、。1. 數(shù)據(jù)流模塊之間可能發(fā)送數(shù)據(jù)的關(guān)系,最適合用于系統(tǒng)需求的追蹤22控制流程序、模塊或系統(tǒng)狀態(tài)之間的“之后激活”的關(guān)系,適合于對系統(tǒng)功能行為和時序關(guān)系的驗證。使用結(jié)構(gòu)描述過程或模塊之間的聯(lián)系,這種聯(lián)系是“假設(shè)正確存在”的關(guān)系,用于設(shè)計可輕松擴展的系統(tǒng)。 如果過程a的運行必須以過程b的正確運行為前提,則說過程a使用過程b。8. 調(diào)用結(jié)構(gòu)-(子)過程之間調(diào)用和被調(diào)用的關(guān)系,可用來跟 蹤系統(tǒng)的執(zhí)行過程。層次結(jié)構(gòu)是一種特殊的使用結(jié)構(gòu),層就是相關(guān)功能的一致集合,在嚴格的分層結(jié)構(gòu)中,第n層僅能使用第n-1層提供的服務(wù)。部署的角度:物理結(jié)構(gòu)軟件與硬件之間的映射關(guān)系,在分布式或并行系統(tǒng)中有重要意義。23各種

11、結(jié)構(gòu)間的相互關(guān)系各個結(jié)構(gòu)都是從不同角度考察系統(tǒng),但它們并不完全獨立,它們之間的聯(lián)系是多對多的。每個項目在開發(fā)時一般是注重一個結(jié)構(gòu),按照這一主要結(jié)構(gòu)來考慮和運用其它結(jié)構(gòu)。經(jīng)驗表明,系統(tǒng)規(guī)模越大,這些結(jié)構(gòu)之間的差異越明顯。使用結(jié)構(gòu)與調(diào)用結(jié)構(gòu)的區(qū)別:1. a使用b的結(jié)果,但a不調(diào)用b;a調(diào)用b,但a不使用b的結(jié)果,例如顯示網(wǎng)頁的各個部分。24調(diào)用結(jié)構(gòu)的例子暫時不能提供的服務(wù)是“我的閱讀”功能,但這不影響其它顯示。使用結(jié)構(gòu)的例子 2007年1月28日晚,在寧波務(wù)工的湖南人唐風軍在鄞州古林鎮(zhèn)一個銀行atm機轉(zhuǎn)賬時,機器出現(xiàn)故障,唐風軍瘋狂轉(zhuǎn)賬225萬,后伙同其弟唐風光,跑了10多家銀行,取走58萬元現(xiàn)金

12、。 2526設(shè)計僅是系統(tǒng)功能需求分析的產(chǎn)物?功能需求設(shè)計系統(tǒng)開發(fā)?否也!2009年1月3號廣州火車站16萬張票同時出閘致系統(tǒng)癱瘓。 911中是世界貿(mào)易大廈的倒塌。2007年1月18日,招商證券的客戶發(fā)現(xiàn),在公司進行網(wǎng)絡(luò)交易時,公司網(wǎng)站竟然無法登陸。一部分客戶轉(zhuǎn)向電話服務(wù)尋求幫助,卻發(fā)現(xiàn)電話線路出現(xiàn)同樣的阻塞。行情轉(zhuǎn)瞬即逝。擁堵是由于交易量激增,原有系統(tǒng)容量不足引起的 。奧運門票銷售系統(tǒng)的失敗1.3 軟件架構(gòu)的產(chǎn)生?271.3.1 架構(gòu)受系統(tǒng)風險承擔者的影響風險承擔者對構(gòu)建軟件系統(tǒng)感興趣的人或組織,包括合同中的客戶、系統(tǒng)最終用戶、開發(fā)人員、開發(fā)組織、系統(tǒng)維護人員等,他們所關(guān)注的問題各不相同,但都

13、要求系統(tǒng)在他們所關(guān)注的方面提供保證或優(yōu)化。事物有主要矛盾和次要矛盾之分。開發(fā)系統(tǒng)時,首先要確定其軟件構(gòu)架。借助于構(gòu)架,設(shè)計師可以分析眾多風險承擔者所提出的各種要求的優(yōu)先級,并將這些要求轉(zhuǎn)化為系統(tǒng)的各個特性,再針對它們在系統(tǒng)結(jié)構(gòu)上做折衷,從而得到和諧的架構(gòu)。 28 開發(fā)組織所關(guān)心的問題不同于客戶,它對軟件構(gòu)架的影響分為3類: 直接影響 如希望向產(chǎn)品線發(fā)展 長遠影響 如行業(yè)布局 組織結(jié)構(gòu)的影響 如軟件外包 開發(fā)團隊的經(jīng)驗對設(shè)計師的影響291.3.2 架構(gòu)受設(shè)計師的素質(zhì)和經(jīng)驗的影響 1 熟悉.net的設(shè)計師在設(shè)計時會考慮.net的框架和技術(shù)。 2 熟悉j2ee的設(shè)計師在設(shè)計時會考慮j2ee的框架和技

14、術(shù)。 3 設(shè)計師具有數(shù)據(jù)庫方向的背景,系統(tǒng)會被認為是數(shù)據(jù)庫的應(yīng)用。 4 設(shè)計師具有網(wǎng)絡(luò)安全的背景,系統(tǒng)的安全會被放在很突出的位置。301.3.3 構(gòu)架受技術(shù)環(huán)境的影響 現(xiàn)在b/s樣式很流行,設(shè)計師在設(shè)計時往往首先考慮系統(tǒng)能否在互聯(lián)網(wǎng)環(huán)境下運行。311.3.4 設(shè)計師的溝通能力設(shè)計師的溝通能力從下面三點體現(xiàn):1 多看別人的長處,這樣才能屈身理解涉眾要求。 案例1:一位項目經(jīng)理的成長過程 第一年,我是一個新手,我的年終總結(jié)是我從周圍同事學到許多東西; 第二年,公司經(jīng)營遇到困難,我的年終總結(jié)是我明年會做得更好; 第三年,我的年終總結(jié)是我和同事合作愉快,他們有很多優(yōu)點值得我去學習。 春節(jié)剛過,我就被提

15、拔為項目經(jīng)理。 設(shè)計師必須明白對業(yè)務(wù)需求的理解程度往往不如涉眾。322 姿態(tài)放低一點 案例2:逗狗師的故事 富人喜歡養(yǎng)很名貴的狗,但狗往往不聽主人的話,只好請逗狗師幫忙訓練狗并參加比賽。逗狗師可以讓一條陌生的狗在幾分鐘內(nèi)聽他的話,詢問原因,乃逗狗師看狗的眼光會讓狗覺得他比它低點。 我們都喜歡平易近人的領(lǐng)導,愿意和他們溝通。 有些領(lǐng)導擔心姿態(tài)放低了,別人不把他當領(lǐng)導,其實這樣的人是很少的。就像逗狗師一樣,姿態(tài)雖然低點,但最終的結(jié)果是狗聽他的話。333 設(shè)計師還要會講故事 設(shè)計結(jié)果往往是抽象的,因此設(shè)計師要給客戶講故事,把抽象的設(shè)計變成一個個故事(場景)。給領(lǐng)導講、給用戶講、給開發(fā)團隊講,給所有的

16、利益相關(guān)者講。故事講好了,所有利益相關(guān)者都聽懂了,聽了都興奮,利益相關(guān)者的需求就更容易表達、理解和驗證。這個設(shè)計師就是成功的設(shè)計師,他所設(shè)計的軟件就容易取得成功。 設(shè)計師講故事當然不是脫離實際的胡編亂造,其本真有四個基礎(chǔ):意義、產(chǎn)品功能、產(chǎn)品質(zhì)量和技術(shù)。 設(shè)計師要能用一般生活常識,把抽象的設(shè)計講解透徹。不從概念出發(fā),不從已只的模式出發(fā),不從自身經(jīng)驗出發(fā),不閉目塞聽,不自說自話,而應(yīng)講究以心比心,換位思考,敢于直面令人不快的真實,以此捕獲利益相關(guān)者的心。在講故事的互動過程中,發(fā)現(xiàn)利益相關(guān)者的真實需求。34 企業(yè)家作為企業(yè)的設(shè)計者早就發(fā)現(xiàn)了這一方法。 任正非至今依然活躍在客戶一線,他把華為塑造成運

17、營商整體解決方案的提供商,在使所有運營商無風險賺錢的同時,自己也成為運營商不可或缺的一個有機部分。當年,任正飛憑華為創(chuàng)新體系的故事,一舉從銀行拿到最便宜的資金。 馬云打著讓天底下生意更好做的旗幟,把阿里巴巴的意義滲透到每一個角落。當年,馬云憑借一個設(shè)想,會面15分鐘,就從孫正義那里募得2000萬美元。 史玉柱則醒悟說一切高規(guī)格的應(yīng)酬都是浪費時間,故而在公司上市后依然一天干十小時客服,把求索客戶心智當成頭等大事。 我們現(xiàn)在談?wù)搒oa,研究soa,其實就是ibm給我們講了一個故事。 ibm提出隨需而變,也是向用戶講了一個故事。35需求(質(zhì)量屬性)設(shè)計師(小組)構(gòu)架構(gòu)架系統(tǒng)客戶和最終用戶開發(fā)組織技術(shù)環(huán)境設(shè)計師的經(jīng)驗、溝通能力架構(gòu)所受的影響36需求(質(zhì)量屬性)設(shè)計師(小組)構(gòu)架構(gòu)架系統(tǒng)客戶和最終用戶開發(fā)組織技術(shù)環(huán)境設(shè)計師的經(jīng)驗1.4 軟件的架構(gòu)不是靜止的37軟件在開發(fā)過程中或交付使用后,都可能會發(fā)生修改,這些修改往往涉及到架構(gòu)的變更。因此軟件版本的演進也是軟件架構(gòu)的演進。 軟件架構(gòu)影響設(shè)計師的經(jīng)驗。軟件架構(gòu)影響開發(fā)組織的內(nèi)部結(jié)構(gòu)和經(jīng)營目標。軟件架構(gòu)可能會影響客戶對下個系統(tǒng)的需求有些系統(tǒng)甚至會影響并實際改變軟件工程的發(fā)展,以及開發(fā)人員學習和實踐的技術(shù)環(huán)境,如互聯(lián)網(wǎng)、嵌入式、手機等

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論