軟件體系結(jié)構(gòu)描述_第1頁
軟件體系結(jié)構(gòu)描述_第2頁
軟件體系結(jié)構(gòu)描述_第3頁
軟件體系結(jié)構(gòu)描述_第4頁
軟件體系結(jié)構(gòu)描述_第5頁
已閱讀5頁,還剩124頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第4章軟件體系結(jié)構(gòu)描述和設(shè)計1精選ppt本章結(jié)構(gòu)4.1軟件體系結(jié)構(gòu)描述方法4.2軟件體系結(jié)構(gòu)描述框架標準4.3體系結(jié)構(gòu)描述語言4.4典型的軟件體系結(jié)構(gòu)描述語言(C2)4.5軟件體系結(jié)構(gòu)與UML4.6可擴展標記語言4.7基于XML的軟件體系結(jié)構(gòu)描述語言4.8軟件體系結(jié)構(gòu)的設(shè)計2精選ppt3精選ppt引言當前對軟件體系結(jié)構(gòu)的描述在很大程度上還停留在非形式化的基礎(chǔ)上,依賴于軟件設(shè)計師個人的經(jīng)驗和技巧。非形式化的描述不易被開發(fā)人員理解,不利于分析和開發(fā)的進行。形式化的、規(guī)范化的體系結(jié)構(gòu)描述對于體系結(jié)構(gòu)的設(shè)計和理解都是非常重要的。由非形式化到形式化的過程。4精選ppt

描述方法的種類第四章軟件體系結(jié)構(gòu)描述4.1軟件體系結(jié)構(gòu)描述方法◎圖形表達工具◎模塊內(nèi)連接語言◎基于軟構(gòu)件的系統(tǒng)描述語言◎軟件體系結(jié)構(gòu)描述語言

5精選ppt

圖形表達工具第四章軟件體系結(jié)構(gòu)描述4.1軟件體系結(jié)構(gòu)描述方法簡潔易懂容易使用使用廣泛不規(guī)范不精確6精選ppt

模塊內(nèi)連接語言第四章軟件體系結(jié)構(gòu)描述4.1軟件體系結(jié)構(gòu)描述方法◎采用將一種或幾種傳統(tǒng)程序設(shè)計語言的模塊連接起來的模塊內(nèi)連接語言(MIL)。由于程序設(shè)計語言和模塊內(nèi)連接語言具有嚴格的語義基礎(chǔ),因此它們能支持對較大的軟件單元進行描述,諸如定義/使用和扇入/扇出等操作。例如,Ada語言采用use實現(xiàn)包的重用,Pascal語言采用過程(函數(shù))模塊的交互等?!騇IL方式對模塊化的程序設(shè)計和分段編譯等程序設(shè)計與開發(fā)技術(shù)確實發(fā)揮了很大的作用。但是由于這些語言處理和描述的軟件設(shè)計開發(fā)層次過于依賴程序設(shè)計語言,因此限制了它們處理和描述比程序設(shè)計語言元素更為抽象的高層次軟件體系結(jié)構(gòu)元素的能力。7精選ppt

基于軟構(gòu)件的系統(tǒng)描述語言第四章軟件體系結(jié)構(gòu)描述4.1軟件體系結(jié)構(gòu)描述方法◎基于軟構(gòu)件的系統(tǒng)描述語言將軟件系統(tǒng)描述成一種是由許多以特定形式相互作用的特殊軟件實體構(gòu)造組成的組織或系統(tǒng)?!蚶?,一種多變配置語言就可以用來在一個較高的抽象層次上對系統(tǒng)的體系結(jié)構(gòu)建模,Darwin最初用作設(shè)計和構(gòu)造復雜分布式系統(tǒng)的配置說明語言,因具有動態(tài)特性,也可用來描述動態(tài)體系結(jié)構(gòu)?!蜻@種表達和描述方式雖然也是較好的一種以構(gòu)件為單位的軟件系統(tǒng)描述方法,但是他們所面向和針對的系統(tǒng)元素仍然是一些層次較低的以程序設(shè)計為基礎(chǔ)的通信協(xié)作軟件實體單元,而且這些語言所描述和表達的系統(tǒng)一般而言都是面向特定應用的特殊系統(tǒng),這些特性使得基于軟構(gòu)件的系統(tǒng)描述仍然不是十分適合軟件體系結(jié)構(gòu)的描述和表達。8精選ppt

軟件體系結(jié)構(gòu)描述語言第四章軟件體系結(jié)構(gòu)描述4.1軟件體系結(jié)構(gòu)描述方法◎軟件體系結(jié)構(gòu)的第四種描述和表達方法是參照傳統(tǒng)程序設(shè)計語言的設(shè)計和開發(fā)經(jīng)驗,重新設(shè)計、開發(fā)和使用針對軟件體系結(jié)構(gòu)特點的專門的軟件體系結(jié)構(gòu)描述語言——ADL?!蛴捎贏DL是在吸收了傳統(tǒng)程序設(shè)計中的語義嚴格精確的特點基礎(chǔ)上,針對軟件體系結(jié)構(gòu)的整體性和抽象性特點,定義和確定適合于軟件體系結(jié)構(gòu)表達與描述的有關(guān)抽象元素,因此,ADL是當前軟件開發(fā)和設(shè)計方法學中一種發(fā)展很快的軟件體系結(jié)構(gòu)描述方法,目前,已經(jīng)有幾十種常見的ADL。9精選ppt

軟件體系結(jié)構(gòu)的應用現(xiàn)狀第一章軟件體系結(jié)構(gòu)概論1.4體系結(jié)構(gòu)的應用現(xiàn)狀◎軟件體系結(jié)構(gòu)描述語言

ADL(體系結(jié)構(gòu)描述語言)提供了具體的語法與刻畫體系結(jié)構(gòu)的概念框架。ADL使得系統(tǒng)開發(fā)者能夠很好地描述他們設(shè)計的體系結(jié)構(gòu),以便與他人交流,能夠用提供的工具對許多實例進行分析。對于ADL現(xiàn)在也是無統(tǒng)一認識。書上第四章有介紹。請參閱《軟件體系結(jié)構(gòu)——理論與實踐》,馮沖江賀馮靜芳編著,人民郵電出版社。第2章軟件體系結(jié)構(gòu)語言(ADL)10精選ppt

IEEEP1471第四章軟件體系結(jié)構(gòu)描述4.2軟件體系結(jié)構(gòu)描述框架標準◎IEEEP1471于2000年9月21日通過IEEE-SA標準委員會評審?!騃EEEP1471適用于軟件密集的系統(tǒng),其目標在于:便于體系結(jié)構(gòu)的表達與交流,并通過體系結(jié)構(gòu)要素及其實踐標準化,奠定質(zhì)量與成本的基礎(chǔ)?!騃EEEP1471詳細介紹了一套體系結(jié)構(gòu)描述的概念框架,并給出建立框架的思路。但如何描述以及具體的描述技術(shù)等方面缺乏更進一步的指導。

11精選ppt

Rational第四章軟件體系結(jié)構(gòu)描述4.2軟件體系結(jié)構(gòu)描述框架標準◎Rational起草了可重用的軟件資產(chǎn)規(guī)格說明,專門討論了體系結(jié)構(gòu)描述的規(guī)格說明,提出了一套易于重用的體系結(jié)構(gòu)描述規(guī)范。該建議草案已經(jīng)提交OMG。◎基于RUP(RationalUnitedProcess)、采用UML模型描述軟件的體系結(jié)構(gòu),認為體系結(jié)構(gòu)描述的關(guān)鍵是定義視點、視圖以及建模元素之間的映射關(guān)系。(4個視點、7個體系結(jié)構(gòu)視圖)

◎與IEEEP1471相比,該建議標準的體系結(jié)構(gòu)描述方案涉及面比較窄,所注重的層次比較低,因而更具體。由于將體系結(jié)構(gòu)的描述限于UML和RUP,具有一定的局限性,但該建議標準結(jié)合了業(yè)界已經(jīng)廣泛采用的建模語言和開發(fā)過程,因而易于推廣,可以有效實現(xiàn)在跨組織之間重用體系結(jié)構(gòu)描述結(jié)果。12精選ppt第四章軟件體系結(jié)構(gòu)描述4.3軟件體系結(jié)構(gòu)描述語言ADL是在底層語義模型的支持下,為軟件系統(tǒng)的概念體系結(jié)構(gòu)建模提供了具體語法和概念框架?;诘讓诱Z義的工具為體系結(jié)構(gòu)的表示、分析、演化、細化、設(shè)計過程等提供支持。其三個基本元素是:構(gòu)件、連接件、體系結(jié)構(gòu)配置。主要的體系結(jié)構(gòu)描述語言有Aesop、MetaH、C2、Rapide、SADL、Unicon和Wright等,盡管它們都描述軟件體系結(jié)構(gòu),卻有不同的特點。這些ADL強調(diào)了體系結(jié)構(gòu)不同的側(cè)面,對體系結(jié)構(gòu)的研究和應用起到了重要的作用,但也有負面的影響。每一種ADL都以獨立的形式存在,描述語法不同且互不兼容,同時又有許多共同的特征,這使設(shè)計人員很難選擇一種合適的ADL,若設(shè)計特定領(lǐng)域的軟件體系結(jié)構(gòu)又需要從頭開始描述。13精選ppt

軟件體系結(jié)構(gòu)的定義第一章軟件體系結(jié)構(gòu)概論1.3體系結(jié)構(gòu)的興起和發(fā)展◎MaryShaw和DavidGarlan(1993年)

軟件體系結(jié)構(gòu)是軟件設(shè)計過程中的一個層次,這一層次超越計算過程中的算法設(shè)計和數(shù)據(jù)結(jié)構(gòu)設(shè)計。體系結(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)等。軟件體系結(jié)構(gòu)={構(gòu)件,連接件,約束}14精選ppt第四章軟件體系結(jié)構(gòu)描述4.3軟件體系結(jié)構(gòu)描述語言◎構(gòu)造能力:ADL能夠使用較小的獨立體系結(jié)構(gòu)元素來建造大型軟件系統(tǒng);◎抽象能力:ADL使得軟件體系結(jié)構(gòu)中的構(gòu)件和連接件描述可以只關(guān)注它們的抽象特性,而不管其具體的實現(xiàn)細節(jié);◎重用能力:ADL使得組成軟件系統(tǒng)的構(gòu)件、連接件甚至是軟件體系結(jié)構(gòu)都成為軟件系統(tǒng)開發(fā)和設(shè)計的可重用部件;

ADL與其他語言的比較(1)典型的ADL在充分繼承和吸收傳統(tǒng)程序設(shè)計語言的精確性和嚴格性特點的同時,還應具有:構(gòu)造、抽象、重用、組合、異構(gòu)、分析和推理等各種能力和特性。15精選ppt第四章軟件體系結(jié)構(gòu)描述4.3軟件體系結(jié)構(gòu)描述語言◎組合能力:ADL使得其描述的每一系統(tǒng)元素都有其自己的局部結(jié)構(gòu),這種描述局部結(jié)構(gòu)的特點使得ADL支持軟件系統(tǒng)的動態(tài)變化組合;◎異構(gòu)能力:ADL允許多個不同的體系結(jié)構(gòu)描述關(guān)聯(lián)存在;◎分析和推理能力:ADL允許對其描述的體系結(jié)構(gòu)進行多種不同的性能和功能上的多種推理分析。

ADL與其他語言的比較(2)16精選ppt第四章軟件體系結(jié)構(gòu)描述4.3軟件體系結(jié)構(gòu)描述語言◎ADL與需求語言的區(qū)別:后者描述的是問題空間,而前者扎根于解空間?!駻DL與建模語言的區(qū)別:后者對整體行為的關(guān)注要大于對部分的關(guān)注,而ADL集中在構(gòu)件的表示上?!駻DL與傳統(tǒng)的程序設(shè)計語言的構(gòu)成元素既有許多相同和相似之處,又各自有著很大的不同。

ADL與其他語言的比較(3)17精選ppt第四章軟件體系結(jié)構(gòu)描述4.3軟件體系結(jié)構(gòu)描述語言

典型元素含義比較18精選ppt第四章軟件體系結(jié)構(gòu)描述4.3軟件體系結(jié)構(gòu)描述語言

常見的軟件體系結(jié)構(gòu)元素19精選ppt第四章軟件體系結(jié)構(gòu)描述4.3軟件體系結(jié)構(gòu)描述語言

ADL的構(gòu)成要素軟件體系結(jié)構(gòu)的基本構(gòu)成要素:構(gòu)件、連接件、體系結(jié)構(gòu)配置。1.構(gòu)件:一個計算單元或數(shù)據(jù)存儲;是計算與狀態(tài)存在的場所。構(gòu)件包含的多種屬性:接口、類型、語義、約束、演化和非功能屬性等。體系結(jié)構(gòu)的核心模型20精選ppt第四章軟件體系結(jié)構(gòu)描述4.3軟件體系結(jié)構(gòu)描述語言

ADL的構(gòu)成要素2.連接件:用來建立構(gòu)件間的交互以及支配這些交互規(guī)則的體系結(jié)構(gòu)構(gòu)造模塊。連接件可以不與實現(xiàn)系統(tǒng)中的編譯單元對應。異構(gòu)連接。連接件包含的屬性:角色。21精選ppt第四章軟件體系結(jié)構(gòu)描述4.3軟件體系結(jié)構(gòu)描述語言

ADL的構(gòu)成要素3.體系結(jié)構(gòu)配置或拓撲:描述體系結(jié)構(gòu)的構(gòu)件與連接件的連接圖。同時檢查語法、說明語義。多視圖、多場景的體系結(jié)構(gòu)說明方法。在不同層次上描述軟件系統(tǒng);異構(gòu)情況下的配置。22精選ppt第四章軟件體系結(jié)構(gòu)描述4.3軟件體系結(jié)構(gòu)描述語言

ADL的構(gòu)成要素軟件體系結(jié)構(gòu)的設(shè)計在需求分析之后,軟件設(shè)計之前。描述好體系結(jié)構(gòu),做好承上啟下的工作很重要。一方面:體系結(jié)構(gòu)描述如何向其他文檔轉(zhuǎn)移;另一方面:如何利用需求分析成果來直接生成系統(tǒng)的體系結(jié)構(gòu)說明?,F(xiàn)在的ADL大多與領(lǐng)域相關(guān)。目前還沒有通用的體系結(jié)構(gòu)描述語言。23精選ppt當前常見的一些體系結(jié)構(gòu)描述語言、方法:

ACME

WrightC2UniCon

DarwinAESOP

RapideWeaves

SADL

UMLGestaltDemeterFRControlH&MetaH24精選ppt

C2風格通過連接件綁定在一起的按照一組規(guī)則運作的并行構(gòu)件網(wǎng)絡。C2風格中的系統(tǒng)組織規(guī)則如下:◎系統(tǒng)中的構(gòu)件和連接件都有一個頂部和一個底部;◎構(gòu)件的頂部應連接到某連接件的底部,構(gòu)件的底部則應連接到某連接件的頂部,而構(gòu)件與構(gòu)件之間的直接連接是不允許的;◎一個連接件可以和任意數(shù)目的其它構(gòu)件和連接件連接;◎當兩個連接件進行直接連接時,必須由其中一個的底部到另一個的頂部。25精選ppt

C2背景知識C2是一種用于用戶界面密集的系統(tǒng)的軟件體系結(jié)構(gòu)風格。在C2風格的體系結(jié)構(gòu)中,連接件在構(gòu)件之間轉(zhuǎn)發(fā)消息,構(gòu)件負責維護狀態(tài),進行操作,通過兩個接口(頂端接口和底端接口)和其他構(gòu)件交換消息。構(gòu)件之間不能發(fā)送消息,必須通過連接件。構(gòu)件之間的通信只能通過消息傳遞來實現(xiàn),不允許使用共享內(nèi)存方式通信。26精選ppt

C2風格的中心原則C2風格的中心原則是有限可視原則,或者說是下層獨立的原則:在C2風格的體系結(jié)構(gòu)中,某一構(gòu)件只能感知層次高于自己的構(gòu)件所提供的服務,而不能感知到層次比自己更低的構(gòu)件的服務。這種單向的傳遞性,有利于系統(tǒng)的維護和擴展。27精選ppt

C2風格的通信規(guī)則C2中,所有構(gòu)件間的通信必須通過消息來實現(xiàn),這也是構(gòu)件之間的唯一通信途徑。每個構(gòu)件都有一個頂端域、一個底端域。構(gòu)件的頂端域定義了構(gòu)件可以對哪些通知做出響應,以及可以發(fā)出哪些請求;構(gòu)件的底端域定義了可以向下層發(fā)送哪些通知,以及可以響應下層的哪些請求。構(gòu)件請求通知28精選ppt

C2風格29精選ppt第四章軟件體系結(jié)構(gòu)描述4.4典型軟件體系結(jié)構(gòu)描述語言◎C2和其提供的設(shè)計環(huán)境(Argo)支持采用基于時間的風格來描述用戶界面系統(tǒng),并支持使用可替換、可重用的構(gòu)件開發(fā)GUI的體系結(jié)構(gòu)?!蛟贑2中,連接件負責構(gòu)件之間消息的傳遞,而構(gòu)件維持狀態(tài)、執(zhí)行操作并通過兩個名字分別為“top”和“bottom”的端口和其它的構(gòu)件交換信息?!蛎總€接口包含一種可發(fā)送的消息和一組可接收的消息。構(gòu)件之間的消息要么是請求其它構(gòu)件執(zhí)行某個操作的請求消息,要么是通知其他構(gòu)件自身執(zhí)行了某個操作或狀態(tài)發(fā)生改變的通知消息。

C2概述(1)30精選ppt第四章軟件體系結(jié)構(gòu)描述4.4典型軟件體系結(jié)構(gòu)描述語言◎構(gòu)件之間的消息交換不能直接進行,而只能通過連接件來完成。每個構(gòu)件接口最多只能和一個連接件相連,而連接件可以和任意數(shù)目的構(gòu)件或連接件相連?!蛘埱笙⒅荒芟蛏蠈觽魉投ㄖ⒅荒芟蛳聦觽魉汀!蛲ㄖ⒌膫鬟f只對應于構(gòu)件內(nèi)部的操作,而和接收消息的構(gòu)件的需求無關(guān)?!駽2對構(gòu)件和連接件的實現(xiàn)語言、實現(xiàn)構(gòu)件的線程控制、構(gòu)件的部署以及連接件使用的通訊協(xié)議等都不加限制。

C2概述(2)31精選ppt第四章軟件體系結(jié)構(gòu)描述4.4典型軟件體系結(jié)構(gòu)描述語言

C2對構(gòu)件接口的描述32精選ppt第四章軟件體系結(jié)構(gòu)描述4.4典型軟件體系結(jié)構(gòu)描述語言

C2對構(gòu)件的描述interface_requests::={request;}|null;

interface_notifications::={notification;}|null;

request::=message_name(request_parameters)

request_parameters::=[tocomponent_name][parameter_list]

notification::=message_name[parameter_list]component_message_interface::=top_domain_interfacebottom_domain_interface

top_domain_interface::=top_domainisoutinterface_requestsininterface_notifications

bottom_domain_interface::=bottom_domainisoutinterface_notificationsininterface_requests33精選ppt第四章軟件體系結(jié)構(gòu)描述4.4典型軟件體系結(jié)構(gòu)描述語言

會議安排系統(tǒng)的C2風格34精選ppt第四章軟件體系結(jié)構(gòu)描述4.4典型軟件體系結(jié)構(gòu)描述語言

C2對MeetgingInitiator構(gòu)件的描述(1)componentMeetingInitiatorisinterfacetop_domainisoutGetPrefSet();GetExclSet();GetEquipReqts();GetLocPrefs();RemoveExclSet();RequestWithdrawal(toAttendee);RequestWithdrawal(toImportantAttendee);AddPrefDates();MarkMtg(d:date;l:lov_type);35精選ppt第四章軟件體系結(jié)構(gòu)描述4.4典型軟件體系結(jié)構(gòu)描述語言

C2對MeetgingInitiator構(gòu)件的描述(2)inPrefSet(p:date_mg);ExclSet(e:data_mg);EquipReqts(eq:equip_type);LocPref(l:loc_type);behaviorstartupalways_generateGetPrefSet,GetExclSet,GetEquipReqts,GetLocPrefs;received_messagesPrefSetmay_generateRemoveExclSetxorRequestWithdrawalxorMarkMtg;received_messagesExclSetmay_generateAddPrefDatesxorRemoveExclSetxorRequestWithdrawalxorMarkMtg;received_messagesEquipReqtsmay_generateAddPrefDatesxorRemoveExclSetxorRequestWithdrawalxorMarkMtg;received_messagesLocPrefalways_generatenull;endMeetingInitiator;

36精選ppt第四章軟件體系結(jié)構(gòu)描述4.4典型軟件體系結(jié)構(gòu)描述語言

C2對Attendee構(gòu)件的描述(1)componentAttendeeisinterfacebottom_domainisoutPrefSet(p:date_mg);ExclSet(e:date_mg);EquipReqts(eq:equip_type);inGetPrefSet();GetExclSet();GetEquipReqts();RemoveExclSet();RequestWithdrawal();AddPrefDates();MarkMtg(d:date;l:loc_type);37精選ppt第四章軟件體系結(jié)構(gòu)描述4.4典型軟件體系結(jié)構(gòu)描述語言

C2對Attendee構(gòu)件的描述(2)behaviorreceived_messagesGetPrefSetalways_generatePrefSet;received_messagesAddPrefDatesalways_generatePrefSet;received_messagesGetExclSetalways_generateExclSet;received_messagesGetEqipReqtsalways_generateEqipReqts;received_messagesRemoveExclSetalways_generateExclSet;received_messagesReuestWithdrawalalways_generatenull;received_messagesMarkMtgalways_generatenull;endAttendee;

38精選ppt第四章軟件體系結(jié)構(gòu)描述4.4典型軟件體系結(jié)構(gòu)描述語言

C2對ImportantAttendee構(gòu)件的描述componentImportantAttendeeissubtypeAttendee(inandbeh)interfacebottom_domainisoutLocPrefs(l:loc_type);ExclSet(e:date_mg);EquipReqts(eq:equip_type);inGetLocPrefs();behaviorreceived_messagesGetLocPrefsalways_generateLocPrefs;endImportantAttendee;

39精選ppt第四章軟件體系結(jié)構(gòu)描述4.4典型軟件體系結(jié)構(gòu)描述語言

C2對體系結(jié)構(gòu)的描述architectureMeetingScheduleris

conceptual_componentsAttendee;ImportantAttendee;MeetingInitiator;connectorsconnectorMainConnismessage_filterno_filtering;connectorAttConnismessage_filterno_filtering;connectorImportantAttConnismessage_filterno_filtering;architectural_topologyconnectorAttConnconnectionstop_portsAttendee;bottom_portsMainConn;connectorImportantAttConnconnectionstop_portsImportantAttendee;bottom_portsMainConn;connectorMainConnconnectionstop_portsAttConn;ImportantAttConn;bottom_portsMeetingInitiator;endMeetingScheduler;

40精選ppt第四章軟件體系結(jié)構(gòu)描述4.4典型軟件體系結(jié)構(gòu)描述語言

C2對會議安排系統(tǒng)的描述systemMeetingScheduler_1isarchitectureMeetingSchedulerwithAttendeeinstanceAtt_1,Att_2,Att_3;ImportantAttendeeinstanceImpAtt_1,ImpAtt_2;MeetingInitiatorinstanceMtgInit_1;endMeetingScheduler_1;

41精選ppt第四章軟件體系結(jié)構(gòu)描述4.5軟件體系結(jié)構(gòu)與UML

UML簡介◎UML(UnifiedModelingLanguage)是下面這些最好的建模方法中最好部分的集成:

商務流程模型(WorkFlow)

對象建模方法

軟構(gòu)件建模思想◎UML是一種用可視化方法對軟件系統(tǒng)進行描述、實施和說明的標準語言?!蛑С钟貌煌瑢崿F(xiàn)技術(shù)進行的軟件開發(fā)全過程。42精選ppt第四章軟件體系結(jié)構(gòu)描述4.5軟件體系結(jié)構(gòu)與UML

UML簡介43精選ppt第四章軟件體系結(jié)構(gòu)描述4.5軟件體系結(jié)構(gòu)與UML

UML簡介44精選ppt第四章軟件體系結(jié)構(gòu)描述4.5軟件體系結(jié)構(gòu)與UML

UML簡介UseCaseDiagramsUseCaseDiagrams用例圖ScenarioDiagramsScenarioDiagrams協(xié)作圖StateDiagramsStateDiagrams構(gòu)件圖ComponentDiagramsComponentDiagrams部署圖StateDiagramsStateDiagrams對象圖ScenarioDiagramsScenarioDiagrams狀態(tài)圖UseCaseDiagramsUseCaseDiagrams順序圖StateDiagramsStateDiagrams類圖活動圖UML45精選ppt第四章軟件體系結(jié)構(gòu)描述4.5軟件體系結(jié)構(gòu)與UML

用例圖用于顯示若干角色以及這些角色與系統(tǒng)提供的用例之間的連接關(guān)系。用例是系統(tǒng)提供的功能的描述。46精選ppt第四章軟件體系結(jié)構(gòu)描述4.5軟件體系結(jié)構(gòu)與UML

類圖表示系統(tǒng)中的類和類與類之間的關(guān)系,它是對系統(tǒng)靜態(tài)結(jié)構(gòu)的描述。47精選ppt第四章軟件體系結(jié)構(gòu)描述4.5軟件體系結(jié)構(gòu)與UML

順序圖用來反映若干個對象之間的動態(tài)協(xié)作關(guān)系,也就是隨著時間的推移,對象之間是如何交互的

48精選ppt第四章軟件體系結(jié)構(gòu)描述4.5軟件體系結(jié)構(gòu)與UML

協(xié)作圖描述對象間的協(xié)作關(guān)系,協(xié)作圖跟順序圖相似,顯示對象間的動態(tài)合作關(guān)系。如果強調(diào)時間和順序,則使用順序圖;如果強調(diào)上下級關(guān)系,則選擇協(xié)作圖。這兩種圖合稱為交互圖。

49精選ppt第四章軟件體系結(jié)構(gòu)描述4.5軟件體系結(jié)構(gòu)與UML

狀態(tài)圖描述類的對象所有可能的狀態(tài)以及事件發(fā)生時狀態(tài)的轉(zhuǎn)移條件。通常,狀態(tài)圖是對類圖的補充50精選ppt第四章軟件體系結(jié)構(gòu)描述4.5軟件體系結(jié)構(gòu)與UML

活動圖描述滿足用例要求所要進行的活動以及活動間的約束關(guān)系,有利于識別并行活動51精選ppt第四章軟件體系結(jié)構(gòu)描述4.5軟件體系結(jié)構(gòu)與UML

構(gòu)件圖描述代碼構(gòu)件的物理結(jié)構(gòu)及各構(gòu)件之間的依賴關(guān)系52精選ppt第四章軟件體系結(jié)構(gòu)描述4.5軟件體系結(jié)構(gòu)與UML

部署圖部署圖定義系統(tǒng)中軟硬件的物理體系結(jié)構(gòu)

53精選ppt第四章軟件體系結(jié)構(gòu)描述4.5軟件體系結(jié)構(gòu)與UML

直接使用UML建模UML的四層元模型體系結(jié)構(gòu)。元-元模型層定義了元模型層的規(guī)格說明語言;

元模型層為給定的建模語言定義規(guī)格說明;模型層用來定義特定軟件系統(tǒng)的模型;用戶對象用來構(gòu)建給定模型的特定實例。54精選ppt第四章軟件體系結(jié)構(gòu)描述4.5軟件體系結(jié)構(gòu)與UML

直接使用UML建?!蛘Z義約束由對象約束語言O(shè)CL表示,OCL基于一階謂詞邏輯,每一個OCL表達式都處于一些UML模型元素的背景下(由“self”引用),可使用該元素的屬性和關(guān)系作為其項(term),同時OCL定義了在集合(sets)、袋(bags)等上的公共操作集和遍歷建模元素間關(guān)系的構(gòu)造,因此,其它建模元素的屬性也可以作為它的項。55精選ppt第四章軟件體系結(jié)構(gòu)描述4.5軟件體系結(jié)構(gòu)與UML

直接使用UML建模◎UML中的通用表示(1)字符串:表示有關(guān)模型的信息;(2)名字:表示模型元素;(3)標號:不同于編程語言中的標號,是用于表示或說明圖形符號的字符串;(4)特殊字符串:表示某一模型元素的特性;(5)類型表達式:聲明屬性、變量及參數(shù),含義同編程語言中的類型表達式;(6)實體類型:它是UML的擴充機制,運用實體類型可定義新類型的模型元素;(7)語義部分是對UML的準確表示,由三部分組成。56精選ppt第四章軟件體系結(jié)構(gòu)描述4.5軟件體系結(jié)構(gòu)與UML

直接使用UML建?!騏ML語義部分

通用元素:主要描述UML中各元素的語義。通用元素是UML中的基本構(gòu)造單位,包括模型元素和視圖元素,模型元素用來構(gòu)造系統(tǒng),視圖元素用來構(gòu)成系統(tǒng)的表示成分;

通用機制:主要描述使UML保持簡單和概念上一致的機制的語義。包括定制、標記值、注記、約束、依賴關(guān)系、類型-實例、類型-類的對應關(guān)系等機制;

通用類型:主要描述UML中各種類型的語義。這些類型包括布爾類型、表達式類型、列表類型、多重性類型、名字類型、坐標類型、字符串類型、時間類型、用戶自定義類型等。三部分不是相互獨立的,而是相互交叉重疊、緊密相連,共同構(gòu)成了UML的完整語義。57精選ppt第四章軟件體系結(jié)構(gòu)描述4.5軟件體系結(jié)構(gòu)與UML

直接使用UML建模◎會議安排系統(tǒng)的類圖58精選ppt第四章軟件體系結(jié)構(gòu)描述4.5軟件體系結(jié)構(gòu)與UML

直接使用UML建?!驎h安排系統(tǒng)類接口

59精選ppt第四章軟件體系結(jié)構(gòu)描述4.5軟件體系結(jié)構(gòu)與UML

直接使用UML建?!駽2連接件模型60精選ppt第四章軟件體系結(jié)構(gòu)描述4.5軟件體系結(jié)構(gòu)與UML

直接使用UML建?!蚣毣念悎D61精選ppt第四章軟件體系結(jié)構(gòu)描述4.5軟件體系結(jié)構(gòu)與UML

直接使用UML建?!驎h安排系統(tǒng)的協(xié)作圖62精選ppt第四章軟件體系結(jié)構(gòu)描述4.5軟件體系結(jié)構(gòu)與UML

使用UML擴展機制自學63精選ppt第四章軟件體系結(jié)構(gòu)描述4.6可擴展標記語言

XML語言簡介XML(extensiblemarkuplanguage)可擴展標記語言XML結(jié)合了SGML和HTML的優(yōu)點并消除了其缺點。XML是用來描述數(shù)據(jù)的;用戶可以創(chuàng)建自己需要的標記,當需要時,告訴瀏覽器如何顯示這些標記就可以了。另外,XML標記描述的是文檔的結(jié)構(gòu)和意義,不描述頁面元素的格式化。文檔本身只說明文檔包括什么標記,而不是說明文檔看起來是什么樣的。64精選ppt第四章軟件體系結(jié)構(gòu)描述4.6可擴展標記語言

XML相關(guān)技術(shù)簡介XML主要是一種數(shù)據(jù)描述方法。XML相關(guān)的技術(shù)有很多,但主要有三個:Schema、XSL和XLL?!駾TD與Schema◎CSS和XSL◎Xpath,Xpointer與Xlink◎XML名字空間◎XML查詢語句◎資源描述框架◎DOM、SAX和XML解析器65精選ppt第四章軟件體系結(jié)構(gòu)描述4.8軟件體系結(jié)構(gòu)的設(shè)計

概述當前,對軟件體系結(jié)構(gòu)設(shè)計的共識之一是,體系結(jié)構(gòu)設(shè)計應當支持對軟件系統(tǒng)質(zhì)量的需求(非功能特性的需求)。這是因為,軟件體系結(jié)構(gòu)包括了早期的設(shè)計決定,體現(xiàn)了系統(tǒng)的全局結(jié)構(gòu),對于整個系統(tǒng)的質(zhì)量有著決定性的影響。為了確保各種質(zhì)量因素,大家都認為正確地對體系結(jié)構(gòu)設(shè)計進行抽象很有必要。但是,正如軟件體系結(jié)構(gòu)的其他概念和方法一樣,對于體系結(jié)構(gòu)設(shè)計人們也沒有形成統(tǒng)一的認識。66精選ppt第四章軟件體系結(jié)構(gòu)描述4.8軟件體系結(jié)構(gòu)的設(shè)計

體系結(jié)構(gòu)設(shè)計的原則◎抽象◎分而治之◎封裝和信息隱蔽◎模塊化◎高內(nèi)聚和低耦合◎關(guān)注點分離◎策略和實現(xiàn)的分離◎接口和實現(xiàn)的分離基本原則:67精選ppt第四章軟件體系結(jié)構(gòu)描述4.8軟件體系結(jié)構(gòu)的設(shè)計

體系結(jié)構(gòu)設(shè)計的原則抽象是人們用來處理復雜性問題的基本原理之一。抽象有幾種形式,如數(shù)據(jù)抽象、對象抽象、實體抽象、行為抽象、過程抽象、虛擬機抽象等。數(shù)據(jù)、實體的抽象使得軟件操作的對象和參數(shù)是針對邏輯結(jié)構(gòu),而非存儲結(jié)構(gòu)的。行為、過程的抽象使得操作的指派是依據(jù)標識而非地址,由此產(chǎn)生了操作的接口和動態(tài)約束描述。在處理系統(tǒng)復雜性方面,抽象起到了重要作用。減少部件耦合、接口與實現(xiàn)的分離等,都得益于抽象。1.抽象68精選ppt第四章軟件體系結(jié)構(gòu)描述4.8軟件體系結(jié)構(gòu)的設(shè)計

體系結(jié)構(gòu)設(shè)計的原則抽象的一個重要特性就是可替換性。對象的抽象把具有相同基類的導出類看作是同類,加上過程抽象帶來的在過程名稱下的“偷梁換柱”,因此實現(xiàn)了動態(tài)約束,使面向抽象問題而不是實際結(jié)構(gòu)的抽象程序設(shè)計得以實現(xiàn)。大量的結(jié)構(gòu)模式和應用問題都是基于這個思想而得到實現(xiàn)的。1.抽象69精選ppt第四章軟件體系結(jié)構(gòu)描述4.8軟件體系結(jié)構(gòu)的設(shè)計

體系結(jié)構(gòu)設(shè)計的原則這條原理是眾所周知的,它來自古時的政治,也來自諸如歸并分類的組合算法。在軟件體系結(jié)構(gòu)中該原理得到大量應用。例如,自上而下設(shè)計將一個任務或部件分成可以獨立設(shè)計的更小的部分。該原理經(jīng)常被用來作為實現(xiàn)注意點分離的方法。2.分而治之70精選ppt第四章軟件體系結(jié)構(gòu)描述4.8軟件體系結(jié)構(gòu)的設(shè)計

體系結(jié)構(gòu)設(shè)計的原則封裝是將構(gòu)成抽象的屬性和行為結(jié)合在一起,并區(qū)分不同抽象的方法。封裝為不同抽象之間提供了明確的界限。封裝有利于非功能特性實現(xiàn),例如可變性和可重用性。封裝包括內(nèi)部構(gòu)成和操作服務兩個方面。例如,通過對象、模塊設(shè)計和訪問接口設(shè)計分別提供了這兩種封裝。3.封裝和信息隱蔽71精選ppt第四章軟件體系結(jié)構(gòu)描述4.8軟件體系結(jié)構(gòu)的設(shè)計

體系結(jié)構(gòu)設(shè)計的原則信息隱蔽是軟件工程的最基本和最重要的原理之一。信息隱蔽對用戶隱藏了部件的實現(xiàn)細節(jié),用來更好地處理系統(tǒng)的復雜性和減少各部件之間的耦合。為了更好地應用,用戶不需要知道的細節(jié)都應該由部件隱藏起來。封裝原理經(jīng)常被用來作為實現(xiàn)信息隱藏的方法。信息隱藏也可以通過接口與實現(xiàn)的分離的原理來實現(xiàn)。3.封裝和信息隱蔽72精選ppt第四章軟件體系結(jié)構(gòu)描述4.8軟件體系結(jié)構(gòu)的設(shè)計

體系結(jié)構(gòu)設(shè)計的原則然而,部件應該隱藏什么取決于具體的應用。在一個應用中客戶不需要知道的方面或許在另外一個應用中就需要看到。例如,在一個應用中為了提高運行性能,可能需要對某一部件的內(nèi)部數(shù)據(jù)結(jié)構(gòu)進行直接訪問;而在另外一個應用中,可能因為對其性能已經(jīng)滿意了,就不需要對其數(shù)據(jù)的直接訪問了。3.封裝和信息隱蔽73精選ppt第四章軟件體系結(jié)構(gòu)描述4.8軟件體系結(jié)構(gòu)的設(shè)計

體系結(jié)構(gòu)設(shè)計的原則模塊化主要關(guān)心的是如何將一個軟件系統(tǒng)分解成子系統(tǒng)和部件,其主要任務就是決定怎樣將構(gòu)成應用的邏輯結(jié)構(gòu)物理地分割成代碼實體。模塊化的主要做法,就是在一個系統(tǒng)內(nèi)引入具有良好定義的分界,依此來處理系統(tǒng)的復雜性。模塊的作用是為了一個應用的功能和責任的物理容器。模塊化與封裝原理的聯(lián)系非常密切。4.模塊化74精選ppt第四章軟件體系結(jié)構(gòu)描述4.8軟件體系結(jié)構(gòu)的設(shè)計

體系結(jié)構(gòu)設(shè)計的原則由此帶來了復雜系統(tǒng)資源管理、維護和應用的邏輯和條理性,增加了應用設(shè)計的靈活性。另外它對于系統(tǒng)的運行設(shè)計和管理調(diào)度也提供了方便,例如,對于動態(tài)鏈接庫的選擇應用、程序運行體的覆蓋和交換都是十分有益的。4.模塊化75精選ppt第四章軟件體系結(jié)構(gòu)描述4.8軟件體系結(jié)構(gòu)的設(shè)計

體系結(jié)構(gòu)設(shè)計的原則耦合和內(nèi)聚最初是作為結(jié)構(gòu)化設(shè)計方法的部分原理而提出的。耦合強調(diào)模塊之間的特征,而內(nèi)聚強調(diào)模塊內(nèi)部的特性。耦合是用來衡量一個模塊同另一個模塊的聯(lián)系的緊密程度的。緊密的耦合就會使系統(tǒng)變得復雜,因為如果一個模塊和另外的模塊有很密切的關(guān)聯(lián)的話,這個模塊就很難理解、調(diào)試、維護。通過弱耦合部件的設(shè)計可以降低系統(tǒng)的復雜性。5.高內(nèi)聚和低耦合76精選ppt第四章軟件體系結(jié)構(gòu)描述4.8軟件體系結(jié)構(gòu)的設(shè)計

體系結(jié)構(gòu)設(shè)計的原則內(nèi)聚用來衡量單一模塊內(nèi)功能和元素間聯(lián)系性的程度。內(nèi)聚有幾種形式。最期望獲得的是功能內(nèi)聚,它說明一個模塊或是部件內(nèi)的所有元素都協(xié)同來提供具有良好邊界的行為。最差的形式是偶然內(nèi)聚,這種形式將毫無聯(lián)系的抽象放置在同一模塊之中。其他形式的內(nèi)聚還有:邏輯內(nèi)聚、時間內(nèi)聚、過程內(nèi)聚、通信內(nèi)聚、順序內(nèi)聚和不規(guī)則內(nèi)聚。5.高內(nèi)聚和低耦合77精選ppt第四章軟件體系結(jié)構(gòu)描述4.8軟件體系結(jié)構(gòu)的設(shè)計

體系結(jié)構(gòu)設(shè)計的原則不同和無關(guān)聯(lián)的責任應該在軟件系統(tǒng)中分離開來,讓它們出現(xiàn)在不同的部件中。相互協(xié)作完成某一個特定任務的部件應該和在其他任務中執(zhí)行計算的部分分離開來。如果一個部件在不同的環(huán)境下扮演著不同的角色,在部件中這些角色應該獨立且相互分離。6.關(guān)注點分離78精選ppt第四章軟件體系結(jié)構(gòu)描述4.8軟件體系結(jié)構(gòu)的設(shè)計

體系結(jié)構(gòu)設(shè)計的原則例如,在多層體系結(jié)構(gòu)的組件設(shè)計中,在多種應用場景中擔任不同角色的同一個組件,需要和可以使用不同的接口定義。這樣,對某一角色開放的只是與角色相關(guān)的信息和服務,避免了過多暴露所造成對應用設(shè)計的負擔和混亂,又保證了組件運行的可靠和安全。6.關(guān)注點分離79精選ppt第四章軟件體系結(jié)構(gòu)描述4.8軟件體系結(jié)構(gòu)的設(shè)計

體系結(jié)構(gòu)設(shè)計的原則軟件系統(tǒng)的部件應該實現(xiàn)策略或處理問題,但不能同時處理兩者。策略部件負責處理上下文相關(guān)的決策、信息的語義和解釋的知識、把不相交計算組合形成結(jié)果、對參數(shù)值進行選擇等問題。實現(xiàn)部件負責全面規(guī)范算法的執(zhí)行,執(zhí)行中不需要對上下文相關(guān)信息進行決策。上下文和解釋是部件外部施加的,它通常由傳給部件的參數(shù)提供。7.策略和實現(xiàn)的分離80精選ppt第四章軟件體系結(jié)構(gòu)描述4.8軟件體系結(jié)構(gòu)的設(shè)計

體系結(jié)構(gòu)設(shè)計的原則由于獨立于特定的上下文環(huán)境,純實現(xiàn)部件更容易重用和維護,而策略部件通常是與特定應用相關(guān)的,需要隨著應用的變化而變化。如果不能將一個軟件體系結(jié)構(gòu)分解成策略和實現(xiàn)的不同部件,至少應該在一個部件內(nèi)將策略和實現(xiàn)的功能加以分離。7.策略和實現(xiàn)的分離81精選ppt第四章軟件體系結(jié)構(gòu)描述4.8軟件體系結(jié)構(gòu)的設(shè)計

體系結(jié)構(gòu)設(shè)計的原則任何一個部件都應該包含兩個部分,接口和實現(xiàn)。接口部分定義了部件所提供的功能,并規(guī)范了功能的使用方法。該接口對部件的客戶是可訪問的。該類型的輸出接口是由函數(shù)原型構(gòu)成的。實現(xiàn)部分包括了實現(xiàn)部件所提供功能的實際代碼。實現(xiàn)部分還可以包含只服務于部件內(nèi)部操作的另外的函數(shù)和數(shù)據(jù)結(jié)構(gòu)。實現(xiàn)部分對部件客戶來說是不可用的。8.接口和實現(xiàn)的分離82精選ppt第四章軟件體系結(jié)構(gòu)描述4.8軟件體系結(jié)構(gòu)的設(shè)計

體系結(jié)構(gòu)設(shè)計的原則該原理的主要目的是防止部件的客戶接觸到實現(xiàn)的細節(jié),而只為客戶提供部件的接口規(guī)范和使用方法。另外,該原理還允許獨立于其他部件的應用而實現(xiàn)一個部件的功能。就像封裝一樣,接口和實現(xiàn)的分離也是一種用來獲得信息隱藏的技術(shù)。該原理強調(diào)“一個客戶只應該知道它需要知道的東西”。接口和實現(xiàn)的分離也支持可變性。如果部件的接口和實現(xiàn)分離,那么它就更容易在系統(tǒng)中進行改變。這種分離避免了客戶直接受到部件變化的影響。該原理使部件行為和表示的改變特別容易,尤其是那些不影響接口的改變,例如對運行性能的提高。8.接口和實現(xiàn)的分離83精選ppt第四章軟件體系結(jié)構(gòu)描述4.8軟件體系結(jié)構(gòu)的設(shè)計

體系結(jié)構(gòu)設(shè)計方法的元模型元模型是對各種體系結(jié)構(gòu)設(shè)計模型的抽象。元模型中有三處用到了領(lǐng)域知識的概念。要區(qū)分幾種特殊化的“領(lǐng)域”概念:問題領(lǐng)域知識、商業(yè)領(lǐng)域知識、解決方案領(lǐng)域知識、通用知識,等等。84精選ppt第四章軟件體系結(jié)構(gòu)描述4.8軟件體系結(jié)構(gòu)的設(shè)計

體系結(jié)構(gòu)設(shè)計方法的元模型商業(yè)領(lǐng)域知識是指商業(yè)過程觀點下的與問題有關(guān)的知識。包括商業(yè)過程方面的知識、用戶調(diào)查、市場分析報告等。解決方案領(lǐng)域知識是指提供領(lǐng)域概念的知識。這些領(lǐng)域概念用于解決問題,并獨立于特定需求。解決方案領(lǐng)域知識還包括如何從這一解決方案領(lǐng)域生產(chǎn)軟件系統(tǒng)。通用知識是指軟件工程師的一般背景和經(jīng)驗。系統(tǒng)/產(chǎn)品知識是指關(guān)于一個系統(tǒng)、一個系統(tǒng)族或一個產(chǎn)品的知識。問題領(lǐng)域知識是指客戶觀點下的與問題有關(guān)的知識。包括需求規(guī)格說明文檔、與客戶面談、客戶發(fā)布的原型等。85精選ppt第四章軟件體系結(jié)構(gòu)描述4.8軟件體系結(jié)構(gòu)的設(shè)計

體系結(jié)構(gòu)設(shè)計方法的元模型第一階段:捕捉需求??蛻簦罕硎灸切╆P(guān)心軟件體系結(jié)構(gòu)設(shè)計的系統(tǒng)相關(guān)人員。包括:客戶、最終用戶、系統(tǒng)開發(fā)人員、系統(tǒng)維護人員、銷售人員等。領(lǐng)域知識:表示在解決某一問題中所應用的知識的范圍。需求規(guī)格說明:表示規(guī)格說明,描述了所要開發(fā)的體系結(jié)構(gòu)系統(tǒng)的需求。86精選ppt第四章軟件體系結(jié)構(gòu)描述4.8軟件體系結(jié)構(gòu)的設(shè)計

體系結(jié)構(gòu)設(shè)計方法的元模型第二階段:提取解決方案的結(jié)構(gòu)。需求規(guī)格說明、領(lǐng)域知識。工件:表示某一方法的工件描述。這是指諸如工件類、工件操作、工件屬性等。一般,每種工件都有一套與之相關(guān)的試探法,用來標識相關(guān)的工件實例。解決方案抽象:定義了體系結(jié)構(gòu)中(子)結(jié)構(gòu)的概念表示。87精選ppt第四章軟件體系結(jié)構(gòu)描述4.8軟件體系結(jié)構(gòu)的設(shè)計

體系結(jié)構(gòu)設(shè)計方法的元模型第三階段:體系結(jié)構(gòu)規(guī)格說明。解決方案抽象、領(lǐng)域知識。體系結(jié)構(gòu)描述:定義了軟件體系結(jié)構(gòu)的規(guī)格說明。88精選ppt第四章軟件體系結(jié)構(gòu)描述4.8軟件體系結(jié)構(gòu)的設(shè)計

體系結(jié)構(gòu)設(shè)計方法的分析為了獲取對體系結(jié)構(gòu)設(shè)計的抽象,人們已經(jīng)提出了許多方法。我們把這些體系結(jié)構(gòu)設(shè)計方法分類為:工件驅(qū)動(artifact-driven)的方法;用例驅(qū)動(use-case-driven)的方法;模式驅(qū)動(pattern-driven)的方法;域驅(qū)動(domain-driven)的方法。89精選ppt第四章軟件體系結(jié)構(gòu)描述4.8軟件體系結(jié)構(gòu)的設(shè)計

工件驅(qū)動(artifact-driven)的方法工件驅(qū)動的體系結(jié)構(gòu)設(shè)計方法的概念模型特點:從方法的工件描述中提取體系結(jié)構(gòu)描述。90精選ppt第四章軟件體系結(jié)構(gòu)描述4.8軟件體系結(jié)構(gòu)的設(shè)計

工件驅(qū)動(artifact-driven)的方法工件驅(qū)動的體系結(jié)構(gòu)設(shè)計方法的例子包括廣為流行的面向?qū)ο蠓治龊驮O(shè)計方法OMT和OAD。91精選ppt第四章軟件體系結(jié)構(gòu)描述4.8軟件體系結(jié)構(gòu)的設(shè)計

工件驅(qū)動(artifact-driven)的方法缺點:(1)文本形式的系統(tǒng)需求不夠清楚、精確、完整。以它作為導出體系結(jié)構(gòu)抽象的來源作用不夠。(2)子系統(tǒng)的語義過于簡單,難以作為體系結(jié)構(gòu)構(gòu)件。(3)對子系統(tǒng)的組合支持不足。92精選ppt第四章軟件體系結(jié)構(gòu)描述4.8軟件體系結(jié)構(gòu)的設(shè)計

用例驅(qū)動(use-case-driven)的方法用例驅(qū)動的體系結(jié)構(gòu)設(shè)計方法主要從用例導出體系結(jié)構(gòu)抽象。目的:作為系統(tǒng)預期功能及其環(huán)境的模型,并在客戶和開發(fā)者之間起到合約的作用。93精選ppt第四章軟件體系結(jié)構(gòu)描述4.8軟件體系結(jié)構(gòu)的設(shè)計

用例驅(qū)動(use-case-driven)的方法一個用例,是指系統(tǒng)進行的一個活動序列,它為參與者提供一些結(jié)果值。參與者通過用例使用系統(tǒng)。參與者和用例共同構(gòu)成了用例模型。94精選ppt第四章軟件體系結(jié)構(gòu)描述4.8軟件體系結(jié)構(gòu)的設(shè)計

用例驅(qū)動(use-case-driven)的方法統(tǒng)一過程使用的是一種用例驅(qū)動的體系結(jié)構(gòu)設(shè)計方法。它由核心工作流組成。核心工作流定義了過程的靜態(tài)內(nèi)容,用活動、工人和工件描述了過程。隨時間變化的過程的組織被定義為階段。統(tǒng)一過程由6個核心工作流組成:商業(yè)模型、需求、分析、設(shè)計、實現(xiàn)和測試。這些核心工作流的結(jié)果分別是下列模型:商業(yè)和領(lǐng)域模型、用例模型、分析模型、設(shè)計模型、實現(xiàn)模型和測試模型。95精選ppt第四章軟件體系結(jié)構(gòu)描述4.8軟件體系結(jié)構(gòu)的設(shè)計

用例驅(qū)動(use-case-driven)的方法在需求工作流中,以用例的形式捕捉客戶的需求,構(gòu)成用例模型。這一過程在上圖中被定義為“1:描述”。用例模型和非形式化的需求規(guī)格說明共同構(gòu)成了系統(tǒng)的需求規(guī)格說明。用例模型的開發(fā)得到了“非形式化的規(guī)格說明”,“領(lǐng)域模型”,“商業(yè)模型”等概念的支持,在設(shè)置系統(tǒng)上下文時這些概念是必需的。如前所述,“非形式化的規(guī)格說明”表示文本形式的需求規(guī)格說明。“商業(yè)模型”描述一個組織的商業(yè)過程?!邦I(lǐng)域模型”描述領(lǐng)域上下文中最重要的類。96精選ppt第四章軟件體系結(jié)構(gòu)描述4.8軟件體系結(jié)構(gòu)的設(shè)計

用例驅(qū)動(use-case-driven)的方法從用例模型中可以選擇出對于體系結(jié)構(gòu)有重要意義的用例,并創(chuàng)建“用例實現(xiàn)”,如上圖中“2:實現(xiàn)”所述。用例實現(xiàn)決定了任務在系統(tǒng)內(nèi)部是怎樣進行的。用例實現(xiàn)受到相關(guān)工件的知識和通用知識的支持。這在圖中被表示為分別從“工件”和“通用知識”引出的指向“2:實現(xiàn)”的箭頭線。這一功能的輸出是“分析和設(shè)計模型”概念,它表示在用例實現(xiàn)之后標識出的工件。97精選ppt第四章軟件體系結(jié)構(gòu)描述4.8軟件體系結(jié)構(gòu)的設(shè)計

用例驅(qū)動(use-case-driven)的方法然后,分析和設(shè)計模型被分組為包,這在圖中表示為“3:分組”。圖中的“4:組合”代表定義這些包之間的接口,其結(jié)果是“體系結(jié)構(gòu)描述”的概念?!?:分組”和“4:組合”這兩個功能都受到“通用知識”概念的支持。98精選ppt第四章軟件體系結(jié)構(gòu)描述4.8軟件體系結(jié)構(gòu)的設(shè)計缺點:(1)難以適度把握領(lǐng)域模型和商業(yè)模型的細節(jié)。(2)對于如何選擇與體系結(jié)構(gòu)相關(guān)的用例沒有提供系統(tǒng)的支持。(3)用例沒有為體系結(jié)構(gòu)抽象提供堅實的基礎(chǔ)。(4)包的語義過于簡單,難以作為體系結(jié)構(gòu)構(gòu)件。

用例驅(qū)動(use-case-driven)的方法99精選ppt第四章軟件體系結(jié)構(gòu)描述4.8軟件體系結(jié)構(gòu)的設(shè)計缺點:(1)難以適度把握領(lǐng)域模型和商業(yè)模型的細節(jié)。該方法在定義用例模型之前進行商業(yè)模型和領(lǐng)域模型的定義。這就帶來了如何適度把握這些模型的細節(jié)的問題。在了解用例之前,很難回答這一問題,因為用例實際上定義了所要開發(fā)的是什么。

用例驅(qū)動(use-case-driven)的方法100精選ppt第四章軟件體系結(jié)構(gòu)描述4.8軟件體系結(jié)構(gòu)的設(shè)計缺點:(2)對于如何選擇與體系結(jié)構(gòu)相關(guān)的用例沒有提供系統(tǒng)的支持。為了進行體系結(jié)構(gòu)描述,需要選擇與體系結(jié)構(gòu)相關(guān)的用例。但在確定哪些用例是“體系結(jié)構(gòu)相關(guān)”時,缺乏客觀標準,僅憑一些啟發(fā)式規(guī)則和軟件工程師的評估。

用例驅(qū)動(use-case-driven)的方法101精選ppt第四章軟件體系結(jié)構(gòu)描述4.8軟件體系結(jié)構(gòu)的設(shè)計缺點:(3)用例沒有為體系結(jié)構(gòu)抽象提供堅實的基礎(chǔ)。在選擇出與體系結(jié)構(gòu)相關(guān)的用例之后,對它們進行實現(xiàn)。這意味著分析和設(shè)計類是從用例中確定的。用例實現(xiàn)受到工件的啟發(fā)式規(guī)則的支持,還受到軟件工程師的通用知識的支持。工件是從文本形式的需求中得出的,這類似于工件驅(qū)動的方法。盡管用例對于理解和表示用戶需求是實用的,但它并不能為導出體系結(jié)構(gòu)設(shè)計抽象提供堅實的基礎(chǔ)。用例主要關(guān)注的是系統(tǒng)的問題域和外部行為。在用例實現(xiàn)中,解決方案領(lǐng)域和內(nèi)部系統(tǒng)中的透明或隱藏抽象將難以標識。因此,即使確定了所有的相關(guān)用例,從用例模型確定體系結(jié)構(gòu)抽象仍將是較為困難的。

用例驅(qū)動(use-case-driven)的方法102精選ppt第四章軟件體系結(jié)構(gòu)描述4.8軟件體系結(jié)構(gòu)的設(shè)計缺點:(4)包的語義過于簡單,難以作為體系結(jié)構(gòu)構(gòu)件。該方法中,分析和設(shè)計模型被分組為包。包,類似于工件驅(qū)動的方法中的子系統(tǒng),主要也是分組機制,因此其語義也很簡單。而且,在把分析和設(shè)計類分組成包、以及把包組合為最終的體系結(jié)構(gòu)等方面,該方法提供的支持也很有限,主要依靠軟件工程師的通用知識。這也可能帶來錯誤定義的體系結(jié)構(gòu)邊界及其交互。

用例驅(qū)動(use-case-driven)的方法103精選ppt第四章軟件體系結(jié)構(gòu)描述4.8軟件體系結(jié)構(gòu)的設(shè)計

模式驅(qū)動(pattern-driven)的方法體系結(jié)構(gòu)模式關(guān)心的是體系結(jié)構(gòu)級別的元素及其交互。體系結(jié)構(gòu)設(shè)計模式本身不是軟件體系結(jié)構(gòu),而是體系結(jié)構(gòu)層次的一種抽象表示。104精選ppt第四章軟件體系結(jié)構(gòu)描述4.8軟件體系結(jié)構(gòu)的設(shè)計

模式驅(qū)動(pattern-driven)的方法軟件工業(yè)界已經(jīng)廣泛接受了軟件設(shè)計模式的概念。軟件設(shè)計模式的目的在于編制一套可重用的基本原則,用于開發(fā)高質(zhì)量的軟件系統(tǒng)。軟件設(shè)計模式常常用在設(shè)計階段。也有研究者在軟件開發(fā)過程中的體系結(jié)構(gòu)分析階段應用設(shè)計模式。體系結(jié)構(gòu)模式類似于設(shè)計模式,實際上它就是體系結(jié)構(gòu)風格的另一種名稱。105精選ppt第四章軟件體系結(jié)構(gòu)描述4.8軟件體系結(jié)構(gòu)的設(shè)計

模式驅(qū)動(pattern-driven)的方法體系結(jié)構(gòu)模式描述的概念指的是對體系結(jié)構(gòu)模式的描述。主要由4個概念組成:●意圖:表示使用模式的基本原則;●上下文:表示問題的產(chǎn)生環(huán)境;●問題:表示上下文環(huán)境中經(jīng)常出現(xiàn)的問題;●解決方案:是以元素及其關(guān)系的抽象描述的形式來表示對問題的解決方案。為了確認模式,就要對各個可用模式的意圖進行掃描。如果發(fā)現(xiàn)一個模式的意圖和給出的問題相關(guān),那么就分析它的上下文描述。如果上下文描述仍然能夠和給出的問題相匹配,則處理過程進入“應用”階段。進而用“解決方案”這一子概念來提供所給出問題的解決方案。106精選ppt第四章軟件體系結(jié)構(gòu)描述4.8軟件體系結(jié)構(gòu)的設(shè)計缺點:(1)在處理范圍廣泛的體系結(jié)構(gòu)問題時,模式庫可能不夠充分。(2)對模式的選擇僅依靠通用知識和軟件工程師的經(jīng)驗。(3)模式的應用并不是一個簡單直接的過程,它需要對問題進行全面的分析。(4)對于模式的組合沒有提供很好的支持。

模式驅(qū)動(pattern-driven)的方法107精選ppt第四章軟件體系結(jié)構(gòu)描述4.8軟件體系結(jié)構(gòu)的設(shè)計缺點:(1)在處理范圍廣泛的體系結(jié)構(gòu)問題時,模式庫可能不夠充分。對于模式驅(qū)動的體系結(jié)構(gòu)設(shè)計方法而言,必要的條件之一是有充足的模式庫可用。當前已經(jīng)存在眾多的體系結(jié)構(gòu)模式(風格)分類。盡管這些分類為軟件體系結(jié)構(gòu)設(shè)計提供了使用的工具,但是它們沒有也無法覆蓋所有范圍內(nèi)的體系結(jié)構(gòu)開發(fā)問題。這一問題的原因在于,體系結(jié)構(gòu)由表示對特定領(lǐng)域的抽象的概念和定義這些概念的組成方式及其相互聯(lián)系的模式組成。由于應用領(lǐng)域中的軟件系統(tǒng)千變?nèi)f化,所以,也就有無數(shù)的體系結(jié)構(gòu)抽象和體系結(jié)構(gòu)模式。

模式驅(qū)動(pattern-driven)的方法108精選ppt第四章軟件體系結(jié)構(gòu)描述4.8軟件體系結(jié)構(gòu)的設(shè)計缺點:(2)對模式的選擇僅依靠通用知識和軟件工程師的經(jīng)驗。為了簡化對模式的選擇和管理,改進對模式的理解,人們通常把具有共同特點的模式分類到相同的組中。不同的體系結(jié)構(gòu)設(shè)計方法可能有不同的分類原則。這樣,對于同一問題,可能有多種體系結(jié)構(gòu)模式可供選擇。但是,在如何確定優(yōu)先次序、如何在不同模式間進行取舍和平衡等問題上,當前的體系結(jié)構(gòu)設(shè)計方法并沒有提供明確的支持。這妨礙了查找模式的過程,也進而妨礙了體系結(jié)構(gòu)的確定。

模式驅(qū)動(pattern-driven)的方法109精選ppt第四章軟件體系結(jié)構(gòu)描述4.8軟件體系結(jié)構(gòu)的設(shè)計缺點:(3)模式的應用并不是一個簡單直接的過程,它需要對問題進行全面的分析。在選擇了模式之后,模式的應用也并不是一個簡單直接的過程??梢园涯J娇闯墒且环N模板,它由構(gòu)件及其相互關(guān)系組成,在使用時,必須與問題領(lǐng)域的概念和概念之間的關(guān)系相匹配。

模式驅(qū)動(pattern-driven)的方法110精選ppt第四章軟件體系結(jié)構(gòu)描述4.8軟件體系結(jié)構(gòu)的設(shè)計例如,對于一個給定的問題,選擇使用管道-過濾器模式。在這種模式中,過濾器作為構(gòu)件,管道作為連接件。過濾器接收輸入數(shù)據(jù),進行處理,提供輸出數(shù)據(jù);管道在一個過濾器的輸出和另一個過濾器的輸入之間發(fā)送數(shù)據(jù)。在應用這種模式時,存在的問題有:應當把哪些領(lǐng)域概念表示成管道,把哪些領(lǐng)域概念表示成過濾器?它們的結(jié)構(gòu)是怎樣的?等等。當前,對于這一匹配過程并沒有嚴格的方法可循,模式的應用仍然基于軟件工程師的經(jīng)驗和通用知識。

模式驅(qū)動(pattern-driven)的方法111精選ppt第四章軟件體系結(jié)構(gòu)描述4.8軟件體系結(jié)構(gòu)的設(shè)計缺點:(4)對于模式的組合沒有提供很好的支持。在開發(fā)軟件體系結(jié)構(gòu)時,常常要組合使用多種模式。這些模式通常并不是相互獨立的,而是存在著相互聯(lián)系。分別對這些模式進行定義并不能表示出模式之間的相關(guān)性。但是,當前并沒有系統(tǒng)的方法或明確的原則說明應當如何組合模式。假設(shè)在某問題中,經(jīng)過問題分析階段之后,我們認為要組合使用分層模式、管道-過濾器模式和倉庫模式。我們應當怎樣組織這3種模式?哪種模式是基本的?它們之間有著怎樣的依賴關(guān)系?當前的模式驅(qū)動的體系結(jié)構(gòu)設(shè)計方法并不能為這些問題提供滿意的答案。

模式驅(qū)動(pattern-driven)的方法112精選ppt第四章軟件體系結(jié)構(gòu)描述4.8軟件體系結(jié)構(gòu)的設(shè)計

域驅(qū)動(domain-driven)的方法113精選ppt第四章軟件體系結(jié)構(gòu)描述4.8軟件體系結(jié)構(gòu)的設(shè)計

域驅(qū)動(domain-driven)的方法主要用于產(chǎn)品線體系結(jié)構(gòu)設(shè)計和特定領(lǐng)域的軟件體系結(jié)構(gòu)設(shè)計。缺點:(1)問題領(lǐng)域分析在導出體系結(jié)構(gòu)抽象方面效果較差。(2)解決方案領(lǐng)域分析不夠充分。114精選ppt第四章軟件體系結(jié)構(gòu)描述4.8軟件體系結(jié)構(gòu)的設(shè)計

域驅(qū)動(domain-driven)的方法缺點:(1)問題領(lǐng)域分析在導出體系結(jié)構(gòu)抽象方面效果較差。一些領(lǐng)域驅(qū)動的體系結(jié)構(gòu)設(shè)計方法把領(lǐng)域解釋成問題領(lǐng)域。例如,DSSA方法從非形式化的問題聲明開始,并從基于場景的領(lǐng)域模型導出體系結(jié)構(gòu)抽象。類似于用例那樣,場景關(guān)注的也是問題領(lǐng)域和系統(tǒng)的外部行為。因此,可以看出,這些從問題領(lǐng)域?qū)С鲶w系結(jié)構(gòu)抽象的方法,如DSSA方法,在導出正確的體系結(jié)構(gòu)抽象的問題上,效果更差。115精選ppt第四章軟件體系結(jié)構(gòu)描述4.8軟件體系結(jié)構(gòu)的設(shè)計

域驅(qū)動(domain-driven)的方法缺點:(2)解決方案領(lǐng)域分析不夠充分。有些解決方案領(lǐng)域分析方法是獨立于軟件體系結(jié)構(gòu)設(shè)計的,它們?yōu)榇_認潛在的可重用資源提供了系統(tǒng)的過程。正如前面描述的,在系統(tǒng)重用研究領(lǐng)域中,這一活動被稱作領(lǐng)域工程。和系統(tǒng)工程、問題領(lǐng)域工程不同,解決方案領(lǐng)域分析所關(guān)心的內(nèi)容超出單個系統(tǒng)的范圍,它關(guān)心的是一個系統(tǒng)族或問題領(lǐng)域,以確認該解決方案領(lǐng)域的可重用資源。盡管解決方案領(lǐng)域分析提供了對整個領(lǐng)域建模的潛力,而且這種潛力對于導出領(lǐng)域體系結(jié)構(gòu)是必需的,但是,這并不足以驅(qū)動體系結(jié)構(gòu)設(shè)計過程。116精選ppt第四章軟件體系結(jié)構(gòu)描述4.8

溫馨提示

  • 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

提交評論