軟件體系結構課件_第1頁
軟件體系結構課件_第2頁
軟件體系結構課件_第3頁
軟件體系結構課件_第4頁
軟件體系結構課件_第5頁
已閱讀5頁,還剩139頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

軟件體系結構清華大學出版社軟件體系結構清華大學出版社關于教材

出版社:清華大學出版社

作者:張友生關于教材

出版社:清華大學出版社課程內(nèi)容

軟件體系結構概論

軟件體系結構建模

軟件體系結構風格

軟件體系結構描述

動態(tài)軟件體系結構

Web服務體系結構

基于體系結構的軟件開發(fā)

軟件體系結構的分析與測試

軟件體系結構評估

軟件產(chǎn)品線體系結構課程內(nèi)容

軟件體系結構概論

軟件危機的表現(xiàn)

◎軟件成本日益增長◎開發(fā)進度難以控制◎軟件質(zhì)量差◎軟件維護困難第1章軟件體系結構概論1.1從軟件危機談起

軟件危機的表現(xiàn)◎軟件成本日益增長第1章軟件體系結

軟件危機的表現(xiàn)

◎軟件成本日益增長20世紀50年代,軟件成本在整個計算機系統(tǒng)成本中所占的比例為10%-20%。到20世紀60年代中期,軟件成本在計算機系統(tǒng)中所占的比例已經(jīng)增長到50%左右。而且,該數(shù)字還在不斷地遞增,下面是一組來自美國空軍計算機系統(tǒng)的數(shù)據(jù):1955年,軟件費用約占總費用的18%,1970年達到60%,1975年達到72%,1980年達到80%,1985年達到85%左右。第1章軟件體系結構概論1.1從軟件危機談起

軟件危機的表現(xiàn)◎軟件成本日益增長第1章軟件體系結

軟件危機的表現(xiàn)

◎開發(fā)進度難以控制

由于軟件是邏輯、智力產(chǎn)品,軟件的開發(fā)需建立龐大的邏輯體系,這是與其他產(chǎn)品的生產(chǎn)不一樣的。在軟件開發(fā)過程中,用戶需求變化等各種意想不到的情況層出不窮,令軟件開發(fā)過程很難保證按預定的計劃實現(xiàn),給項目計劃和論證工作帶來了很大的困難。盲目增加軟件開發(fā)人員并不能成比例地提高軟件開發(fā)能力。相反,隨著人員數(shù)量的增加,人員的組織、協(xié)調(diào)、通信、培訓和管理等方面的問題將更為嚴重。第1章軟件體系結構概論1.1從軟件危機談起

軟件危機的表現(xiàn)◎開發(fā)進度難以控制第1章軟件體系結

軟件危機的表現(xiàn)

◎軟件質(zhì)量差

軟件項目即使能按預定日期完成,結果卻不盡人意。1965年至1970年,美國范登堡基地發(fā)射火箭多次失敗,絕大部分故障是由應用程序錯誤造成的。在“軟件作坊”里,由于缺乏工程化思想的指導,程序員幾乎總是習慣性地以自己的想法去代替用戶對軟件的需求,軟件設計帶有隨意性,很多功能只是程序員的“一廂情愿”而已,這是造成軟件不能令人滿意的重要因素。第1章軟件體系結構概論1.1從軟件危機談起

軟件危機的表現(xiàn)◎軟件質(zhì)量差第1章軟件體系結構概論

軟件危機的表現(xiàn)

◎軟件維護困難由于在軟件設計和開發(fā)過程中,沒有嚴格遵循軟件開發(fā)標準,各種隨意性很大,沒有完整的真實反映系統(tǒng)狀況的記錄文檔,給軟件維護造成了巨大的困難。特別是在軟件使用過程中,原來的開發(fā)人員可能因各種原因已經(jīng)離開原來的開發(fā)組織,使得軟件幾乎不可維護。有資料表明,工業(yè)界為維護軟件支付的費用占全部硬件和軟件費用的40%-75%。第1章軟件體系結構概論1.1從軟件危機談起

軟件危機的表現(xiàn)◎軟件維護困難第1章軟件體系結構概

軟件危機的原因

◎用戶需求不明確◎缺乏正確的理論指導◎軟件規(guī)模越來越大◎軟件復雜度越來越高第1章軟件體系結構概論1.1從軟件危機談起

軟件危機的原因◎用戶需求不明確第1章軟件體系結構◎用戶需求不明確

在軟件開發(fā)完成之前,用戶不清楚軟件的具體需求;用戶對軟件需求的描述不精確,可能有遺漏、有二義性、甚至有錯誤;

在軟件開發(fā)過程中,用戶還提出修改軟件功能、界面、支撐環(huán)境等方面的要求;開發(fā)人員對用戶需求的理解與用戶本來愿望有差異。第1章軟件體系結構概論1.1從軟件危機談起

軟件危機的原因

◎用戶需求不明確第1章軟件體系結構概論1.1從軟件?!蛉狈φ_的理論指導缺乏有力的方法學和工具方面的支持。由于軟件不同于大多數(shù)其他工業(yè)產(chǎn)品,其開發(fā)過程是復雜的邏輯思維過程,其產(chǎn)品極大程度地依賴于開發(fā)人員高度的智力投入。由于過分地依靠程序設計人員在軟件開發(fā)過程中的技巧和創(chuàng)造性,加劇軟件產(chǎn)品的個性化,也是發(fā)生軟件危機的一個重要原因。第1章軟件體系結構概論1.1從軟件危機談起

軟件危機的原因

◎缺乏正確的理論指導第1章軟件體系結構概論1.1從軟◎軟件規(guī)模越來越大隨著軟件應用范圍的增廣,軟件規(guī)模愈來愈大。大型軟件項目需要組織一定的人力共同完成,而多數(shù)管理人員缺乏開發(fā)大型軟件系統(tǒng)的經(jīng)驗,而多數(shù)軟件開發(fā)人員又缺乏管理方面的經(jīng)驗。各類人員的信息交流不及時、不準確、有時還會產(chǎn)生誤解。軟件項目開發(fā)人員不能有效地、獨立自主地處理大型軟件的全部關系和各個分支,因此容易產(chǎn)生疏漏和錯誤。第1章軟件體系結構概論1.1從軟件危機談起

軟件危機的原因

◎軟件規(guī)模越來越大第1章軟件體系結構概論1.1從軟件◎軟件復雜度越來越高

軟件不僅僅是在規(guī)模上快速地發(fā)展擴大,而且其復雜性也急劇地增加。軟件產(chǎn)品的特殊性和人類智力的局限性,導致人們無力處理“復雜問題”。所謂“復雜問題”的概念是相對的,一旦人們采用先進的組織形式、開發(fā)方法和工具提高了軟件開發(fā)效率和能力,新的、更大的、更復雜的問題又擺在人們的面前。第1章軟件體系結構概論1.1從軟件危機談起

軟件危機的原因

◎軟件復雜度越來越高第1章軟件體系結構概論1.1從軟

如何克服軟件危機

人們面臨的不光是技術問題,更重要的是管理問題。管理不善必然導致失敗。要提高軟件開發(fā)效率,提高軟件產(chǎn)品質(zhì)量,必須采用工程化的開發(fā)方法與工業(yè)化的生產(chǎn)技術。在技術上,應該采用基于重用的軟件生產(chǎn)技術;在管理上,應該采用多維的工程管理模式。第1章軟件體系結構概論1.1從軟件危機談起

如何克服軟件危機人們面臨的不光是技術問題,更重

構件模型及實現(xiàn)

第1章軟件體系結構概論1.2構件與軟件重用◎構件的定義構件是指語義完整、語法正確和有可重用價值的單位軟件,是軟件重用過程中可以明確辨識的系統(tǒng);結構上,它是語義描述、通訊接口和實現(xiàn)代碼的復合體。

構件模型及實現(xiàn)第1章軟件體系結構概論1.2構件與軟

構件模型及實現(xiàn)第1章軟件體系結構概論1.2構件與軟件重用◎構件模型的三個主要流派

OMG(ObjectManagementGroup,對象管理集團)的CORBA(CommonObjectRequestBrokerArchitecture,通用對象請求代理結構)Sun的EJB(EnterpriseJavaBean)Microsoft的DCOM(DistributedComponentObjectModel,分布式構件對象模型)。

構件模型及實現(xiàn)第1章軟件體系結構概論1.2構件與軟

構件模型及實現(xiàn)

第1章軟件體系結構概論1.2構件與軟件重用◎青鳥構件模型

構件模型及實現(xiàn)第1章軟件體系結構概論1.2構件與軟

構件獲取第1章軟件體系結構概論1.2構件與軟件重用從現(xiàn)有構件中獲得符合要求的構件,直接使用或作適應性修改,得到可重用的構件;通過遺留工程,將具有潛在重用價值的構件提取出來,得到可重用的構件;從市場上購買現(xiàn)成的商業(yè)構件,即COTS(CommercialOff-The-Shell)構件;開發(fā)新的符合要求的構件。

構件獲取第1章軟件體系結構概論1.2構件與軟件重用

構件管理

第1章軟件體系結構概論1.2構件與軟件重用◎構件描述◎構件分類與組織◎人員及權限管理

構件管理第1章軟件體系結構概論1.2構件與軟件重用

構件管理

第1章軟件體系結構概論1.2構件與軟件重用◎構件描述構件模型是對構件本質(zhì)的抽象描述,主要是為構件的制作與構件的重用提供依據(jù);從管理角度出發(fā),也需要對構件進行描述,例如:實現(xiàn)方式、實現(xiàn)體、注釋、生產(chǎn)者、生產(chǎn)日期、大小、價格、版本和關聯(lián)構件等信息,它們與構件模型共同組成了對構件的完整描述。

構件管理第1章軟件體系結構概論1.2構件與軟件重用

構件管理

第1章軟件體系結構概論1.2構件與軟件重用◎構件分類與組織

關鍵字分類法

刻面分類法

超文本組織方法

構件管理第1章軟件體系結構概論1.2構件與軟件重用

構件管理

第1章軟件體系結構概論1.2構件與軟件重用◎關鍵字分類法

構件管理第1章軟件體系結構概論1.2構件與軟件重用

構件管理

第1章軟件體系結構概論1.2構件與軟件重用◎刻面分類法

使用環(huán)境

應用領域

功能

層次

表示方法

構件管理第1章軟件體系結構概論1.2構件與軟件重用

構件管理

第1章軟件體系結構概論1.2構件與軟件重用◎超文本組織法

構件管理第1章軟件體系結構概論1.2構件與軟件重用

構件管理第1章軟件體系結構概論1.2構件與軟件重用◎人員及權限管理一般來講,構件庫系統(tǒng)可包括五類用戶,即注冊用戶、公共用戶、構件提交者、一般系統(tǒng)管理員和超級系統(tǒng)管理員。

構件管理第1章軟件體系結構概論1.2構件與軟件重用

構件重用

第1章軟件體系結構概論1.2構件與軟件重用◎檢索與提取構件◎理解與評價構件◎修改構件◎構件組裝

構件重用第1章軟件體系結構概論1.2構件與軟件重用

構件重用

第1章軟件體系結構概論1.2構件與軟件重用◎檢索與提取構件

基于關鍵字的檢索

刻面檢索法

超文本檢索法

其他檢索方法

構件重用第1章軟件體系結構概論1.2構件與軟件重用

構件重用

第1章軟件體系結構概論1.2構件與軟件重用◎理解與評價構件

構件的功能與行為

相關的領域知識

可適應性約束條件與例外情形

可以預見的修改部分及修改方法

構件重用第1章軟件體系結構概論1.2構件與軟件重用

構件重用

第1章軟件體系結構概論1.2構件與軟件重用◎修改構件理想的情形是對庫中的構件不作修改而直接用于新的軟件項目。但是,在大多數(shù)情況下,必須對構件進行或多或少的修改,以適應新的需求。為了減少構件修改的工作量,要求開發(fā)人員盡量使構件的功能、行為和接口設計更為抽象化、通用化和參數(shù)化。

構件重用第1章軟件體系結構概論1.2構件與軟件重用

構件重用

第1章軟件體系結構概論1.2構件與軟件重用◎構件組裝

基于功能的組裝技術

基于數(shù)據(jù)的組裝技術

面向對象的組裝技術

構件重用第1章軟件體系結構概論1.2構件與軟件重用

構件重用

第1章軟件體系結構概論1.2構件與軟件重用◎構件組裝

基于功能的組裝技術

基于功能的組裝技術采用子程序調(diào)用和參數(shù)傳遞的方式將構件組裝起來。它要求庫中的構件以子程序/過程/函數(shù)的形式出現(xiàn),并且接口說明必須清晰。當使用這種組裝技術進行軟件開發(fā)時,開發(fā)人員首先應對目標軟件系統(tǒng)進行功能分解,將系統(tǒng)分解為強內(nèi)聚、松耦合的功能模塊。然后根據(jù)各模塊的功能需求提取構件,對它進行適應性修改后再掛接在上述功能分解框架中。

構件重用第1章軟件體系結構概論1.2構件與軟件重用

構件重用第1章軟件體系結構概論1.2構件與軟件重用◎構件組裝

基于數(shù)據(jù)的組裝技術

首先根據(jù)當前軟件問題的核心數(shù)據(jù)結構設計出一個框架,然后根據(jù)框架中各結點的需求提取構件并進行適應性修改,再將構件逐個分配至框架中的適當位置。此后,構件的組裝方式仍然是傳統(tǒng)的子程序調(diào)用與參數(shù)傳遞。這種組裝技術也要求庫中構件以子程序形式出現(xiàn),但它所依賴的軟件設計方法不再是功能分解,而是面向數(shù)據(jù)的設計方法,例如Jackson系統(tǒng)開發(fā)方法。

構件重用第1章軟件體系結構概論1.2構件與軟件重用

構件重用

第1章軟件體系結構概論1.2構件與軟件重用◎構件組裝

面向對象的組裝技術·構造法在子類中引進基類的對象作為子類的成員變量,然后在子類中通過成員變量重用基類的屬性和方法?!ぷ宇惙▽⑿伦宇愔苯诱f明為庫中基類的子類,通過繼承和修改基類的屬性與行為完成新子類的定義。

構件重用第1章軟件體系結構概論1.2構件與軟件重用

軟件重用實例

第1章軟件體系結構概論1.2構件與軟件重用自學

軟件重用實例第1章軟件體系結構概論1.2構件與軟件

背景資料

第1章軟件體系結構概論1.3體系結構的興起和發(fā)展◎隨著軟件系統(tǒng)規(guī)模越來越大、越來越復雜,整個系統(tǒng)的結構和規(guī)格說明顯得越來越重要。

◎對于大規(guī)模的復雜軟件系統(tǒng)來說,對總體的系統(tǒng)結構設計和規(guī)格說明比起對計算的算法和數(shù)據(jù)結構的選擇已經(jīng)變得明顯重要得多?!驅浖w系結構的系統(tǒng)、深入的研究將會成為提高軟件生產(chǎn)率和解決軟件維護問題的新的最有希望的途徑。

背景資料第1章軟件體系結構概論1.3體系結構的興起

背景資料

第1章軟件體系結構概論1.3體系結構的興起和發(fā)展◎事實上,軟件總是有體系結構的,不存在沒有體系結構的軟件?!蜍浖w系結構雖脫胎于軟件工程,但其形成同時借鑒了計算機體系結構和網(wǎng)絡體系結構中很多寶貴的思想和方法,最近幾年軟件體系結構研究已完全獨立于軟件工程的研究,成為計算機科學的一個最新的研究方向和獨立學科分支。

背景資料第1章軟件體系結構概論1.3體系結構的興起

軟件體系結構的定義

第1章軟件體系結構概論1.3體系結構的興起和發(fā)展◎DewaynePerry和A1exanderWo1f軟件體系結構是具有一定形式的結構化元素,即構件的集合,包括處理構件、數(shù)據(jù)構件和連接構件。

處理構件負責對數(shù)據(jù)進行加工,數(shù)據(jù)構件是被加工的信息,連接構件把體系結構的不同部分組合連接起來。

這一定義注重區(qū)分處理構件、數(shù)據(jù)構件和連接構件,這一方法在其他的定義和方法中基本上得到保持。

軟件體系結構的定義第1章軟件體系結構概論1.3體系第1章軟件體系結構概論1.3體系結構的興起和發(fā)展◎MaryShaw和DavidGarlan

軟件體系結構是軟件設計過程中的一個層次,這一層次超越計算過程中的算法設計和數(shù)據(jù)結構設計。體系結構問題包括總體組織和全局控制、通訊協(xié)議、同步、數(shù)據(jù)存取,給設計元素分配特定功能,設計元素的組織,規(guī)模和性能,在各設計方案間進行選擇等。軟件體系結構處理算法與數(shù)據(jù)結構之上關于整體系統(tǒng)結構設計和描述方面的一些問題,如全局組織和全局控制結構、關于通訊、同步與數(shù)據(jù)存取的協(xié)議,設計構件功能定義,物理分布與合成,設計方案的選擇、評估與實現(xiàn)等。

軟件體系結構的定義

第1章軟件體系結構概論1.3體系結構的興起和發(fā)展◎M第1章軟件體系結構概論1.3體系結構的興起和發(fā)展◎Kruchten軟件體系結構有四個角度,它們從不同方面對系統(tǒng)進行描述:概念角度描述系統(tǒng)的主要構件及它們之間的關系;模塊角度包含功能分解與層次結構;運行角度描述了一個系統(tǒng)的動態(tài)結構;代碼角度描述了各種代碼和庫函數(shù)在開發(fā)環(huán)境中的組織。

軟件體系結構的定義

第1章軟件體系結構概論1.3體系結構的興起和發(fā)展◎K第1章軟件體系結構概論1.3體系結構的興起和發(fā)展◎HayesRoth軟件體系結構是一個抽象的系統(tǒng)規(guī)范,主要包括用其行為來描述的功能構件和構件之間的相互連接、接口和關系。

軟件體系結構的定義

第1章軟件體系結構概論1.3體系結構的興起和發(fā)展◎H第1章軟件體系結構概論1.3體系結構的興起和發(fā)展◎DavidGarlan和DewnePerry軟件體系結構是一個程序/系統(tǒng)各構件的結構、它們之間的相互關系以及進行設計的原則和隨時間演化的指導方針。

軟件體系結構的定義

第1章軟件體系結構概論1.3體系結構的興起和發(fā)展◎D第1章軟件體系結構概論1.3體系結構的興起和發(fā)展◎BarryBoehm軟件體系結構包括一個軟件和系統(tǒng)構件,互聯(lián)及約束的集合;一個系統(tǒng)需求說明的集合;一個基本原理用以說明這一構件,互聯(lián)和約束能夠滿足系統(tǒng)需求。

軟件體系結構的定義

第1章軟件體系結構概論1.3體系結構的興起和發(fā)展◎B第1章軟件體系結構概論1.3體系結構的興起和發(fā)展◎Bass,Ctements和Kazman

軟件體系結構包括一個或一組軟件構件、軟件構件的外部的可見特性及其相互關系。其中,“軟件外部的可見特性”是指軟件構件提供的服務、性能、特性、錯誤處理、共享資源使用等。

軟件體系結構的定義

第1章軟件體系結構概論1.3體系結構的興起和發(fā)展◎B第1章軟件體系結構概論1.3體系結構的興起和發(fā)展◎我們的定義軟件體系結構為軟件系統(tǒng)提供了一個結構、行為和屬性的高級抽象,由構成系統(tǒng)的元素的描述、這些元素的相互作用、指導元素集成的模式以及這些模式的約束組成。軟件體系結構不僅指定了系統(tǒng)的組織結構和拓撲結構,并且顯示了系統(tǒng)需求和構成系統(tǒng)的元素之間的對應關系,提供了一些設計決策的基本原理。

軟件體系結構的定義

第1章軟件體系結構概論1.3體系結構的興起和發(fā)展◎我

軟件體系結構的意義

第1章軟件體系結構概論1.3體系結構的興起和發(fā)展◎體系結構是風險承擔者進行交流的手段軟件體系結構代表了系統(tǒng)的公共的高層次的抽象。這樣,系統(tǒng)的大部分有關人員(即使不是全部)能把它作為建立一個互相理解的基礎,形成統(tǒng)一認識,互相交流。體系結構提供了一種共同語言來表達各種關注和協(xié)商,進而對大型復雜系統(tǒng)能進行理智的管理。這對項目最終的質(zhì)量和使用有極大的影響。

軟件體系結構的意義第1章軟件體系結構概論1.3體系第1章軟件體系結構概論1.3體系結構的興起和發(fā)展◎體系結構是早期設計決策的體現(xiàn)(1)軟件體系結構明確了對系統(tǒng)實現(xiàn)的約束條件(2)軟件體系結構決定了開發(fā)和維護組織的組織結構(3)軟件體系結構制約著系統(tǒng)的質(zhì)量屬性(4)通過研究軟件體系結構可能預測軟件的質(zhì)量(5)軟件體系結構使推理和控制更改更簡單(6)軟件體系結構有助于循序漸進的原型設計(7)軟件體系結構可以作為培訓的基礎

軟件體系結構的意義

第1章軟件體系結構概論1.3體系結構的興起和發(fā)展◎體第1章軟件體系結構概論1.3體系結構的興起和發(fā)展◎軟件體系結構是可傳遞和可重用的模型軟件體系結構級的重用意味著體系結構的決策能在具有相似需求的多個系統(tǒng)中發(fā)生影響,這比代碼級的重用要有更大的好處。

軟件體系結構的意義

第1章軟件體系結構概論1.3體系結構的興起和發(fā)展◎軟

軟件體系結構的發(fā)展史

第1章軟件體系結構概論1.3體系結構的興起和發(fā)展“無體系結構”設計階段萌芽階段以匯編語言進行小規(guī)模應用程序開發(fā)為特征以描述系統(tǒng)的高層抽象結構為中心,不關心具體的建模細節(jié),劃分了體系結構模型與傳統(tǒng)軟件結構的界限,該階段以Kruchten提出的“4+1”模型為標志出現(xiàn)了從不同側面描述系統(tǒng)的結構模型,以UML為典型代表。出現(xiàn)了程序結構設計主題,以控制流圖和數(shù)據(jù)流圖構成軟件結構為特征高級階段初期階段

軟件體系結構的發(fā)展史第1章軟件體系結構概論1.3第1章軟件體系結構概論1.3體系結構的興起和發(fā)展Perry和Wolf認為未來的年代是研究軟件體系結構的時代

軟件體系結構的發(fā)展史

第1章軟件體系結構概論1.3體系結構的興起和發(fā)展Per

軟件體系結構的應用現(xiàn)狀

第1章軟件體系結構概論1.4體系結構的應用現(xiàn)狀◎軟件體系結構描述語言◎體系結構描述構造與表示◎體系結構分析、設計與驗證◎體系結構發(fā)現(xiàn)、演化與重用◎基于體系結構的軟件開發(fā)方法◎特定領域的體系結構框架◎軟件體系結構支持工具◎軟件產(chǎn)品線體系結構◎建立評價軟件體系結構的方法

軟件體系結構的應用現(xiàn)狀第1章軟件體系結構概論1.4第1章軟件體系結構概論1.4體系結構的應用現(xiàn)狀◎軟件體系結構描述語言ADL提供了具體的語法與刻畫體系結構的概念框架。ADL使得系統(tǒng)開發(fā)者能夠很好地描述他們設計的體系結構,以便與他人交流,能夠用提供的工具對許多實例進行分析。

軟件體系結構的應用現(xiàn)狀

第1章軟件體系結構概論1.4體系結構的應用現(xiàn)狀◎軟件第1章軟件體系結構概論1.4體系結構的應用現(xiàn)狀◎體系結構描述構造與表示(1)

按照一定的描述方法,用體系結構描述語言對體系結構進行說明的結果則稱為體系結構的表示,而將描述體系結構的過程稱為體系結構構造

軟件體系結構的應用現(xiàn)狀

第1章軟件體系結構概論1.4體系結構的應用現(xiàn)狀◎體系第1章軟件體系結構概論1.4體系結構的應用現(xiàn)狀◎體系結構描述構造與表示(2)(1)Kruchten提出的“4+1”模型。(2)Booch從UML的角度給出了一種由設計視圖、過程視圖、實現(xiàn)視圖和部署視圖,再加上一個用例視圖構成的體系結構描述模型。(3)IEEE于1995年成立了體系結構工作組,起草了體系結構描述框架標準IEEEP1471。(4)Rational從資產(chǎn)重用的角度提出了體系結構描述的規(guī)格說明框架。

軟件體系結構的應用現(xiàn)狀

第1章軟件體系結構概論1.4體系結構的應用現(xiàn)狀◎體系第1章軟件體系結構概論1.4體系結構的應用現(xiàn)狀◎體系結構分析、設計與驗證(1)體系結構分析的內(nèi)容可分為結構分析、功能分析和非功能分析。非功能分析:定量分析方法、推斷分析方法。Kazman等人提出了一種非功能分析的體系結構分析方法SAAM,并運用場景技術,提出了基于場景的體系結構分析方法,而Barbacci等人提出了多質(zhì)量屬性情況下的體系結構質(zhì)量模型、分析與權衡方法ATAM。

軟件體系結構的應用現(xiàn)狀

第1章軟件體系結構概論1.4體系結構的應用現(xiàn)狀◎體系第1章軟件體系結構概論1.4體系結構的應用現(xiàn)狀◎體系結構分析、設計與驗證(2)生成一個滿足軟件需求的體系結構的過程即為體系結構設計。體系結構設計過程的本質(zhì)在于:將系統(tǒng)分解成相應的組成成分(如構件、連接件),并將這些成分重新組裝成一個系統(tǒng)。

軟件體系結構的應用現(xiàn)狀

第1章軟件體系結構概論1.4體系結構的應用現(xiàn)狀◎體系第1章軟件體系結構概論1.4體系結構的應用現(xiàn)狀◎體系結構分析、設計與驗證(3)體系結構設計有兩大類方法:過程驅動方法和問題列表驅動方法?;谶^程驅動的體系結構設計方法適用范圍廣,易于裁減,具備動態(tài)特點,通用性與實踐性強。問題列表驅動法的基本思想是枚舉設計空間,并考慮設計維的相關性,以此來選擇體系結構的風格。該方法適用于特定領域,是靜態(tài)的,并可以實現(xiàn)量化體系結構設計空間。

軟件體系結構的應用現(xiàn)狀

第1章軟件體系結構概論1.4體系結構的應用現(xiàn)狀◎體系第1章軟件體系結構概論1.4體系結構的應用現(xiàn)狀◎體系結構分析、設計與驗證(4)體系結構設計研究的重點內(nèi)容之一就是體系結構風格或模式,體系結構模式在本質(zhì)上反映了一些特定的元素、按照特定的方式組成一個特定的結構,該結構應有利于上下文環(huán)境下的特定問題的解決。

軟件體系結構的應用現(xiàn)狀

第1章軟件體系結構概論1.4體系結構的應用現(xiàn)狀◎體系第1章軟件體系結構概論1.4體系結構的應用現(xiàn)狀◎體系結構分析、設計與驗證(5)體系結構模式分為兩個大類:固定術語和參考模型。已知的固定術語類的體系結構模型包括管道過濾器、客戶/服務器、面向對象、黑板、分層、對等模式、狀態(tài)轉換、一些派生的固定術語類的體系結構模式,包括GenVoca,C2和REST等;而參考模型則相對較多,常常與特定領域相關。

軟件體系結構的應用現(xiàn)狀

第1章軟件體系結構概論1.4體系結構的應用現(xiàn)狀◎體系第1章軟件體系結構概論1.4體系結構的應用現(xiàn)狀◎體系結構分析、設計與驗證(6)

體系結構測試著重于仿真系統(tǒng)模型,解決體系結構層的主要問題。由于測試的抽象層次不同,體系結構測試策略可以分為單元/子系統(tǒng)/集成/驗收測試等階段的測試策略。在體系結構集成測試階段,Debra等人提出了一組針對體系結構的測試覆蓋標準,PaolaInveradi提出了一種基于CHAM的體系結構語義驗證技術。

軟件體系結構的應用現(xiàn)狀

第1章軟件體系結構概論1.4體系結構的應用現(xiàn)狀◎體系第1章軟件體系結構概論1.4體系結構的應用現(xiàn)狀◎體系結構發(fā)現(xiàn)、演化與重用(1)體系結構發(fā)現(xiàn)解決如何從已經(jīng)存在的系統(tǒng)中提取軟件的體系結構,屬于逆向工程范疇。Waters等人提出了一種迭代式體系結構發(fā)現(xiàn)過程,即由不同的人員對系統(tǒng)進行描述,然后對這些描述進行分類并融合,發(fā)現(xiàn)并解除沖突,將體系結構新屬性加入到已有的體系結構模型中,并重復該過程直至體系結構描述充分。

軟件體系結構的應用現(xiàn)狀

第1章軟件體系結構概論1.4體系結構的應用現(xiàn)狀◎體系第1章軟件體系結構概論1.4體系結構的應用現(xiàn)狀◎體系結構發(fā)現(xiàn)、演化與重用(2)

由于系統(tǒng)需求、技術、環(huán)境、分布等因素的變化而最終導致軟件體系結構的變動,稱之為軟件體系結構演化。軟件系統(tǒng)在運行時刻的體系結構變化稱為體系結構的動態(tài)性,而將體系結構的靜態(tài)修改稱為體系結構擴展。體系結構擴展與體系結構動態(tài)性都是體系結構適應性和演化性的研究范疇。

軟件體系結構的應用現(xiàn)狀

第1章軟件體系結構概論1.4體系結構的應用現(xiàn)狀◎體系第1章軟件體系結構概論1.4體系結構的應用現(xiàn)狀◎體系結構發(fā)現(xiàn)、演化與重用(3)

體系結構重用屬于設計重用,比代碼重用更抽象。由于軟件體系結構是系統(tǒng)的高層抽象,反映了系統(tǒng)的主要組成元素及其交互關系,因而較算法更穩(wěn)定,更適合于重用。體系結構模式就是體系結構重用研究的一個成果,而體系結構參考模型則是特定域軟件體系結構的重用的成熟的象征。

軟件體系結構的應用現(xiàn)狀

第1章軟件體系結構概論1.4體系結構的應用現(xiàn)狀◎體系第1章軟件體系結構概論1.4體系結構的應用現(xiàn)狀◎基于體系結構的軟件開發(fā)方法(1)

在引入了體系結構的軟件開發(fā)之后,應用系統(tǒng)的構造過程變?yōu)椤皢栴}定義—>軟件需求—>軟件體系結構—>軟件設計—>軟件實現(xiàn)”,可以認為軟件體系結構架起了軟件需求與軟件設計之間的一座橋梁。

軟件體系結構的應用現(xiàn)狀

第1章軟件體系結構概論1.4體系結構的應用現(xiàn)狀◎基于第1章軟件體系結構概論1.4體系結構的應用現(xiàn)狀◎基于體系結構的軟件開發(fā)方法(2)軟件開發(fā)模型是跨越整個軟件生存周期的系統(tǒng)開發(fā)、運行、維護所實施的全部工作和任務的結構框架,給出了軟件開發(fā)活動各階段之間的關系。目前,常見的軟件開發(fā)模型大致可分為三種類型:(1)以軟件需求完全確定為前提的瀑布模型。(2)在軟件開發(fā)初始階段只能提供基本需求時采用的漸進式開發(fā)模型,如螺旋模型等。(3)以形式化開發(fā)方法為基礎的變換模型。

軟件體系結構的應用現(xiàn)狀

第1章軟件體系結構概論1.4體系結構的應用現(xiàn)狀◎基于第1章軟件體系結構概論1.4體系結構的應用現(xiàn)狀◎基于體系結構的軟件開發(fā)方法(3)所有開發(fā)方法都是要解決需求與實現(xiàn)之間的差距。但是,這三種類型的軟件開發(fā)模型都存在這樣或那樣的缺陷,不能很好地支持基于軟件體系結構的開發(fā)過程。在基于構件和基于體系結構的軟件開發(fā)逐漸成為主流情況下,已經(jīng)出現(xiàn)了基于構件的軟件工程。但是,對體系結構的描述、表示、設計和分析以及驗證等內(nèi)容的研究還相對不足,隨著需求復雜化及其演化,切實可行的體系結構設計規(guī)則與方法將更為重要。

軟件體系結構的應用現(xiàn)狀

第1章軟件體系結構概論1.4體系結構的應用現(xiàn)狀◎基于第1章軟件體系結構概論1.4體系結構的應用現(xiàn)狀◎特定領域的體系結構框架

特定領域的體系結構是將體系結構理論應用到具體領域的過程,常見的DSSA有:CASE體系結構、CAD軟件的參考模型、信息系統(tǒng)的參考體系結構、網(wǎng)絡體系結構DSSA、機場信息系統(tǒng)的體系結構和信息處理DSSA等。國內(nèi)學者提出的DSSA有:北京郵電大學周瑩新博士提出的電信軟件的體系結構,北京航空航天大學金茂忠教授等人提出的測試環(huán)境的體系結構等。

軟件體系結構的應用現(xiàn)狀

第1章軟件體系結構概論1.4體系結構的應用現(xiàn)狀◎特定第1章軟件體系結構概論1.4體系結構的應用現(xiàn)狀◎軟件體系結構支持工具

幾乎每種體系結構都有相應的支持工具,如Unicon,Aesop等體系結構支持環(huán)境,C2的支持環(huán)境ArchStudio,支持主動連接件的Tracer工具等。支持體系結構分析的工具,如支持靜態(tài)分析的工具、支持類型檢查的工具、支持體系結構層次依賴分析的工具、支持體系結構動態(tài)特性仿真工具、體系結構性能仿真工具等。

軟件體系結構的應用現(xiàn)狀

第1章軟件體系結構概論1.4體系結構的應用現(xiàn)狀◎軟件第1章軟件體系結構概論1.4體系結構的應用現(xiàn)狀◎軟件產(chǎn)品線體系結構(1)產(chǎn)品線代表著一組具有公共的系統(tǒng)需求集的軟件系統(tǒng),它們都是根據(jù)基本的用戶需求對標準的產(chǎn)品線構架進行定制,將可重用構件與系統(tǒng)獨有的部分集成而得到的。軟件產(chǎn)品線是一個十分適合專業(yè)的軟件開發(fā)組織的軟件開發(fā)方法,能有效地提高軟件生產(chǎn)率和質(zhì)量、縮短開發(fā)時間、降低總開發(fā)成本。

軟件體系結構的應用現(xiàn)狀

第1章軟件體系結構概論1.4體系結構的應用現(xiàn)狀◎軟件第1章軟件體系結構概論1.4體系結構的應用現(xiàn)狀◎軟件產(chǎn)品線體系結構(2)

軟件體系結構有利于形成完整的軟件產(chǎn)品線。

體系結構在軟件產(chǎn)品線的開發(fā)中具有至關重要的作用,在這種開發(fā)生產(chǎn)中,基于同一個軟件體系結構,可以創(chuàng)建具有不同功能的多個系統(tǒng)。

軟件體系結構的應用現(xiàn)狀

第1章軟件體系結構概論1.4體系結構的應用現(xiàn)狀◎軟件第1章軟件體系結構概論1.4體系結構的應用現(xiàn)狀◎建立評價軟件體系結構的方法目前,常用的三個軟件體系結構評估方法是:(1)體系結構權衡分析方法(ATAM方法)(2)軟件體系結構分析方法(SAAM方法)(3)中間設計的積極評審(ARID方法)

軟件體系結構的應用現(xiàn)狀

第1章軟件體系結構概論1.4體系結構的應用現(xiàn)狀◎建立第1章軟件體系結構概論1.4體系結構的應用現(xiàn)狀目前,軟件體系結構尚處在迅速發(fā)展之中,越來越多的研究人員正在把注意力投向軟件體系結構的研究。關于軟件體系結構的研究工作主要在國外展開的,國內(nèi)到目前為止對于軟件體系結構的研究尚處在起步階段。軟件體系結構在國內(nèi)未引起人們廣泛注意的原因主要有兩點:(1)軟件體系結構從表面上看起來是一個老話題,似乎沒有新東西。(2)與國外相比,國內(nèi)對大型和超大型復雜軟件系統(tǒng)開發(fā)的經(jīng)歷相對較少,對軟件危機的災難性體會沒有國外深刻,因而對軟件體系結構研究的重要性和必要性的認識還不很充分。

軟件體系結構的應用現(xiàn)狀

第1章軟件體系結構概論1.4體系結構的應用現(xiàn)狀目前第1章軟件體系結構概論本章作業(yè)與思考題1、根據(jù)自己的經(jīng)驗,談談對軟件危機的看法。2、就項目管理方面而言,軟件重用項目與非重用項目有哪些不同之處。3、實際參與/組織一個軟件重用項目的開發(fā),然后總結你是如何組織該項目的開發(fā)的。4、為什么要研究軟件體系結構?5、根據(jù)軟件體系結構的定義,你認為軟件體系結構的模型應該由哪些部分組成?6、在軟件體系結構的研究和應用中,你認為還有哪些不足之處?第1章軟件體系結構概論本章作業(yè)與思考題1、根據(jù)自己的經(jīng)驗軟件體系結構清華大學出版社軟件體系結構清華大學出版社關于教材

出版社:清華大學出版社

作者:張友生關于教材

出版社:清華大學出版社課程內(nèi)容

軟件體系結構概論

軟件體系結構建模

軟件體系結構風格

軟件體系結構描述

動態(tài)軟件體系結構

Web服務體系結構

基于體系結構的軟件開發(fā)

軟件體系結構的分析與測試

軟件體系結構評估

軟件產(chǎn)品線體系結構課程內(nèi)容

軟件體系結構概論

軟件危機的表現(xiàn)

◎軟件成本日益增長◎開發(fā)進度難以控制◎軟件質(zhì)量差◎軟件維護困難第1章軟件體系結構概論1.1從軟件危機談起

軟件危機的表現(xiàn)◎軟件成本日益增長第1章軟件體系結

軟件危機的表現(xiàn)

◎軟件成本日益增長20世紀50年代,軟件成本在整個計算機系統(tǒng)成本中所占的比例為10%-20%。到20世紀60年代中期,軟件成本在計算機系統(tǒng)中所占的比例已經(jīng)增長到50%左右。而且,該數(shù)字還在不斷地遞增,下面是一組來自美國空軍計算機系統(tǒng)的數(shù)據(jù):1955年,軟件費用約占總費用的18%,1970年達到60%,1975年達到72%,1980年達到80%,1985年達到85%左右。第1章軟件體系結構概論1.1從軟件危機談起

軟件危機的表現(xiàn)◎軟件成本日益增長第1章軟件體系結

軟件危機的表現(xiàn)

◎開發(fā)進度難以控制

由于軟件是邏輯、智力產(chǎn)品,軟件的開發(fā)需建立龐大的邏輯體系,這是與其他產(chǎn)品的生產(chǎn)不一樣的。在軟件開發(fā)過程中,用戶需求變化等各種意想不到的情況層出不窮,令軟件開發(fā)過程很難保證按預定的計劃實現(xiàn),給項目計劃和論證工作帶來了很大的困難。盲目增加軟件開發(fā)人員并不能成比例地提高軟件開發(fā)能力。相反,隨著人員數(shù)量的增加,人員的組織、協(xié)調(diào)、通信、培訓和管理等方面的問題將更為嚴重。第1章軟件體系結構概論1.1從軟件危機談起

軟件危機的表現(xiàn)◎開發(fā)進度難以控制第1章軟件體系結

軟件危機的表現(xiàn)

◎軟件質(zhì)量差

軟件項目即使能按預定日期完成,結果卻不盡人意。1965年至1970年,美國范登堡基地發(fā)射火箭多次失敗,絕大部分故障是由應用程序錯誤造成的。在“軟件作坊”里,由于缺乏工程化思想的指導,程序員幾乎總是習慣性地以自己的想法去代替用戶對軟件的需求,軟件設計帶有隨意性,很多功能只是程序員的“一廂情愿”而已,這是造成軟件不能令人滿意的重要因素。第1章軟件體系結構概論1.1從軟件危機談起

軟件危機的表現(xiàn)◎軟件質(zhì)量差第1章軟件體系結構概論

軟件危機的表現(xiàn)

◎軟件維護困難由于在軟件設計和開發(fā)過程中,沒有嚴格遵循軟件開發(fā)標準,各種隨意性很大,沒有完整的真實反映系統(tǒng)狀況的記錄文檔,給軟件維護造成了巨大的困難。特別是在軟件使用過程中,原來的開發(fā)人員可能因各種原因已經(jīng)離開原來的開發(fā)組織,使得軟件幾乎不可維護。有資料表明,工業(yè)界為維護軟件支付的費用占全部硬件和軟件費用的40%-75%。第1章軟件體系結構概論1.1從軟件危機談起

軟件危機的表現(xiàn)◎軟件維護困難第1章軟件體系結構概

軟件危機的原因

◎用戶需求不明確◎缺乏正確的理論指導◎軟件規(guī)模越來越大◎軟件復雜度越來越高第1章軟件體系結構概論1.1從軟件危機談起

軟件危機的原因◎用戶需求不明確第1章軟件體系結構◎用戶需求不明確

在軟件開發(fā)完成之前,用戶不清楚軟件的具體需求;用戶對軟件需求的描述不精確,可能有遺漏、有二義性、甚至有錯誤;

在軟件開發(fā)過程中,用戶還提出修改軟件功能、界面、支撐環(huán)境等方面的要求;開發(fā)人員對用戶需求的理解與用戶本來愿望有差異。第1章軟件體系結構概論1.1從軟件危機談起

軟件危機的原因

◎用戶需求不明確第1章軟件體系結構概論1.1從軟件危◎缺乏正確的理論指導缺乏有力的方法學和工具方面的支持。由于軟件不同于大多數(shù)其他工業(yè)產(chǎn)品,其開發(fā)過程是復雜的邏輯思維過程,其產(chǎn)品極大程度地依賴于開發(fā)人員高度的智力投入。由于過分地依靠程序設計人員在軟件開發(fā)過程中的技巧和創(chuàng)造性,加劇軟件產(chǎn)品的個性化,也是發(fā)生軟件危機的一個重要原因。第1章軟件體系結構概論1.1從軟件危機談起

軟件危機的原因

◎缺乏正確的理論指導第1章軟件體系結構概論1.1從軟◎軟件規(guī)模越來越大隨著軟件應用范圍的增廣,軟件規(guī)模愈來愈大。大型軟件項目需要組織一定的人力共同完成,而多數(shù)管理人員缺乏開發(fā)大型軟件系統(tǒng)的經(jīng)驗,而多數(shù)軟件開發(fā)人員又缺乏管理方面的經(jīng)驗。各類人員的信息交流不及時、不準確、有時還會產(chǎn)生誤解。軟件項目開發(fā)人員不能有效地、獨立自主地處理大型軟件的全部關系和各個分支,因此容易產(chǎn)生疏漏和錯誤。第1章軟件體系結構概論1.1從軟件危機談起

軟件危機的原因

◎軟件規(guī)模越來越大第1章軟件體系結構概論1.1從軟件◎軟件復雜度越來越高

軟件不僅僅是在規(guī)模上快速地發(fā)展擴大,而且其復雜性也急劇地增加。軟件產(chǎn)品的特殊性和人類智力的局限性,導致人們無力處理“復雜問題”。所謂“復雜問題”的概念是相對的,一旦人們采用先進的組織形式、開發(fā)方法和工具提高了軟件開發(fā)效率和能力,新的、更大的、更復雜的問題又擺在人們的面前。第1章軟件體系結構概論1.1從軟件危機談起

軟件危機的原因

◎軟件復雜度越來越高第1章軟件體系結構概論1.1從軟

如何克服軟件危機

人們面臨的不光是技術問題,更重要的是管理問題。管理不善必然導致失敗。要提高軟件開發(fā)效率,提高軟件產(chǎn)品質(zhì)量,必須采用工程化的開發(fā)方法與工業(yè)化的生產(chǎn)技術。在技術上,應該采用基于重用的軟件生產(chǎn)技術;在管理上,應該采用多維的工程管理模式。第1章軟件體系結構概論1.1從軟件危機談起

如何克服軟件危機人們面臨的不光是技術問題,更重

構件模型及實現(xiàn)

第1章軟件體系結構概論1.2構件與軟件重用◎構件的定義構件是指語義完整、語法正確和有可重用價值的單位軟件,是軟件重用過程中可以明確辨識的系統(tǒng);結構上,它是語義描述、通訊接口和實現(xiàn)代碼的復合體。

構件模型及實現(xiàn)第1章軟件體系結構概論1.2構件與軟

構件模型及實現(xiàn)第1章軟件體系結構概論1.2構件與軟件重用◎構件模型的三個主要流派

OMG(ObjectManagementGroup,對象管理集團)的CORBA(CommonObjectRequestBrokerArchitecture,通用對象請求代理結構)Sun的EJB(EnterpriseJavaBean)Microsoft的DCOM(DistributedComponentObjectModel,分布式構件對象模型)。

構件模型及實現(xiàn)第1章軟件體系結構概論1.2構件與軟

構件模型及實現(xiàn)

第1章軟件體系結構概論1.2構件與軟件重用◎青鳥構件模型

構件模型及實現(xiàn)第1章軟件體系結構概論1.2構件與軟

構件獲取第1章軟件體系結構概論1.2構件與軟件重用從現(xiàn)有構件中獲得符合要求的構件,直接使用或作適應性修改,得到可重用的構件;通過遺留工程,將具有潛在重用價值的構件提取出來,得到可重用的構件;從市場上購買現(xiàn)成的商業(yè)構件,即COTS(CommercialOff-The-Shell)構件;開發(fā)新的符合要求的構件。

構件獲取第1章軟件體系結構概論1.2構件與軟件重用

構件管理

第1章軟件體系結構概論1.2構件與軟件重用◎構件描述◎構件分類與組織◎人員及權限管理

構件管理第1章軟件體系結構概論1.2構件與軟件重用

構件管理

第1章軟件體系結構概論1.2構件與軟件重用◎構件描述構件模型是對構件本質(zhì)的抽象描述,主要是為構件的制作與構件的重用提供依據(jù);從管理角度出發(fā),也需要對構件進行描述,例如:實現(xiàn)方式、實現(xiàn)體、注釋、生產(chǎn)者、生產(chǎn)日期、大小、價格、版本和關聯(lián)構件等信息,它們與構件模型共同組成了對構件的完整描述。

構件管理第1章軟件體系結構概論1.2構件與軟件重用

構件管理

第1章軟件體系結構概論1.2構件與軟件重用◎構件分類與組織

關鍵字分類法

刻面分類法

超文本組織方法

構件管理第1章軟件體系結構概論1.2構件與軟件重用

構件管理

第1章軟件體系結構概論1.2構件與軟件重用◎關鍵字分類法

構件管理第1章軟件體系結構概論1.2構件與軟件重用

構件管理

第1章軟件體系結構概論1.2構件與軟件重用◎刻面分類法

使用環(huán)境

應用領域

功能

層次

表示方法

構件管理第1章軟件體系結構概論1.2構件與軟件重用

構件管理

第1章軟件體系結構概論1.2構件與軟件重用◎超文本組織法

構件管理第1章軟件體系結構概論1.2構件與軟件重用

構件管理第1章軟件體系結構概論1.2構件與軟件重用◎人員及權限管理一般來講,構件庫系統(tǒng)可包括五類用戶,即注冊用戶、公共用戶、構件提交者、一般系統(tǒng)管理員和超級系統(tǒng)管理員。

構件管理第1章軟件體系結構概論1.2構件與軟件重用

構件重用

第1章軟件體系結構概論1.2構件與軟件重用◎檢索與提取構件◎理解與評價構件◎修改構件◎構件組裝

構件重用第1章軟件體系結構概論1.2構件與軟件重用

構件重用

第1章軟件體系結構概論1.2構件與軟件重用◎檢索與提取構件

基于關鍵字的檢索

刻面檢索法

超文本檢索法

其他檢索方法

構件重用第1章軟件體系結構概論1.2構件與軟件重用

構件重用

第1章軟件體系結構概論1.2構件與軟件重用◎理解與評價構件

構件的功能與行為

相關的領域知識

可適應性約束條件與例外情形

可以預見的修改部分及修改方法

構件重用第1章軟件體系結構概論1.2構件與軟件重用

構件重用

第1章軟件體系結構概論1.2構件與軟件重用◎修改構件理想的情形是對庫中的構件不作修改而直接用于新的軟件項目。但是,在大多數(shù)情況下,必須對構件進行或多或少的修改,以適應新的需求。為了減少構件修改的工作量,要求開發(fā)人員盡量使構件的功能、行為和接口設計更為抽象化、通用化和參數(shù)化。

構件重用第1章軟件體系結構概論1.2構件與軟件重用

構件重用

第1章軟件體系結構概論1.2構件與軟件重用◎構件組裝

基于功能的組裝技術

基于數(shù)據(jù)的組裝技術

面向對象的組裝技術

構件重用第1章軟件體系結構概論1.2構件與軟件重用

構件重用

第1章軟件體系結構概論1.2構件與軟件重用◎構件組裝

基于功能的組裝技術

基于功能的組裝技術采用子程序調(diào)用和參數(shù)傳遞的方式將構件組裝起來。它要求庫中的構件以子程序/過程/函數(shù)的形式出現(xiàn),并且接口說明必須清晰。當使用這種組裝技術進行軟件開發(fā)時,開發(fā)人員首先應對目標軟件系統(tǒng)進行功能分解,將系統(tǒng)分解為強內(nèi)聚、松耦合的功能模塊。然后根據(jù)各模塊的功能需求提取構件,對它進行適應性修改后再掛接在上述功能分解框架中。

構件重用第1章軟件體系結構概論1.2構件與軟件重用

構件重用第1章軟件體系結構概論1.2構件與軟件重用◎構件組裝

基于數(shù)據(jù)的組裝技術

首先根據(jù)當前軟件問題的核心數(shù)據(jù)結構設計出一個框架,然后根據(jù)框架中各結點的需求提取構件并進行適應性修改,再將構件逐個分配至框架中的適當位置。此后,構件的組裝方式仍然是傳統(tǒng)的子程序調(diào)用與參數(shù)傳遞。這種組裝技術也要求庫中構件以子程序形式出現(xiàn),但它所依賴的軟件設計方法不再是功能分解,而是面向數(shù)據(jù)的設計方法,例如Jackson系統(tǒng)開發(fā)方法。

構件重用第1章軟件體系結構概論1.2構件與軟件重用

構件重用

第1章軟件體系結構概論1.2構件與軟件重用◎構件組裝

面向對象的組裝技術·構造法在子類中引進基類的對象作為子類的成員變量,然后在子類中通過成員變量重用基類的屬性和方法?!ぷ宇惙▽⑿伦宇愔苯诱f明為庫中基類的子類,通過繼承和修改基類的屬性與行為完成新子類的定義。

構件重用第1章軟件體系結構概論1.2構件與軟件重用

軟件重用實例

第1章軟件體系結構概論1.2構件與軟件重用自學

軟件重用實例第1章軟件體系結構概論1.2構件與軟件

背景資料

第1章軟件體系結構概論1.3體系結構的興起和發(fā)展◎隨著軟件系統(tǒng)規(guī)模越來越大、越來越復雜,整個系統(tǒng)的結構和規(guī)格說明顯得越來越重要。

◎對于大規(guī)模的復雜軟件系統(tǒng)來說,對總體的系統(tǒng)結構設計和規(guī)格說明比起對計算的算法和數(shù)據(jù)結構的選擇已經(jīng)變得明顯重要得多?!驅浖w系結構的系統(tǒng)、深入的研究將會成為提高軟件生產(chǎn)率和解決軟件維護問題的新的最有希望的途徑。

背景資料第1章軟件體系結構概論1.3體系結構的興起

背景資料

第1章軟件體系結構概論1.3體系結構的興起和發(fā)展◎事實上,軟件總是有體系結構的,不存在沒有體系結構的軟件?!蜍浖w系結構雖脫胎于軟件工程,但其形成同時借鑒了計算機體系結構和網(wǎng)絡體系結構中很多寶貴的思想和方法,最近幾年軟件體系結構研究已完全獨立于軟件工程的研究,成為計算機科學的一個最新的研究方向和獨立學科分支。

背景資料第1章軟件體系結構概論1.3體系結構的興起

軟件體系結構的定義

第1章軟件體系結構概論1.3體系結構的興起和發(fā)展◎DewaynePerry和A1exanderWo1f軟件體系結構是具有一定形式的結構化元素,即構件的集合,包括處理構件、數(shù)據(jù)構件和連接構件。

處理構件負責對數(shù)據(jù)進行加工,數(shù)據(jù)構件是被加工的信息,連接構件把體系結構的不同部分組合連接起來。

這一定義注重區(qū)分處理構件、數(shù)據(jù)構件和連接構件,這一方法在其他的定義和方法中基本上得到保持。

軟件體系結構的定義第1章軟件體系結構概論1.3體系第1章軟件體系結構概論1.3體系結構的興起和發(fā)展◎MaryShaw和DavidGarlan

軟件體系結構是軟件設計過程中的一個層次,這一層次超越計算過程中的算法設計和數(shù)據(jù)結構設計。體系結構問題包括總體組織和全局控制、通訊協(xié)議、同步、數(shù)據(jù)存取,給設計元素分配特定功能,設計元素的組織,規(guī)模和性能,在各設計方案間進行選擇等。軟件體系結構處理算法與數(shù)據(jù)結構之上關于整體系統(tǒng)結構設計和描述方面的一些問題,如全局組織和全局控制結構、關于通訊、同步與數(shù)據(jù)存取的協(xié)議,設計構件功能定義,物理分布與合成,設計方案的選擇、評估與實現(xiàn)等。

軟件體系結構的定義

第1章軟件體系結構概論1.3體系結構的興起和發(fā)展◎M第1章軟件體系結構概論1.3體系結構的興起和發(fā)展◎Kruchten軟件體系結構有四個角度,它們從不同方面對系統(tǒng)進行描述:概念角度描述系統(tǒng)的主要構件及它們之間的關系;模塊角度包含功能分解與層次結構;運行角度描述了一個系統(tǒng)的動態(tài)結構;代碼角度描述了各種代碼和庫函數(shù)在開發(fā)環(huán)境中的組織。

軟件體系結構的定義

第1章軟件體系結構概論1.3體系結構的興起和發(fā)展◎K第1章軟件體系結構概論1.3體系結構的興起和發(fā)展◎HayesRoth軟件體系結構是一個抽象的系統(tǒng)規(guī)范,主要包括用其行為來描述的功能構件和構件之間的相互連接、接口和關系。

軟件體系結構的定義

第1章軟件體系結構概論1.3體系結構的興起和發(fā)展◎H第1章軟件體系結構概論1.3體系結構的興起和發(fā)展◎DavidGarlan和DewnePerry軟件體系結構是一個程序/系統(tǒng)各構件的結構、它們之間的相互關系以及進行設計的原則和隨時間演化的指導方針。

軟件體系結構的定義

第1章軟件體系結構概論1.3體系結構的興起和發(fā)展◎D第1章軟件體系結構概論1.3體系結構的興起和發(fā)展◎BarryBoehm軟件體系結構包括一個軟件和系統(tǒng)構件,互聯(lián)及約束的集合;一個系統(tǒng)需求說明的集合;一個基本原理用以說明這一構件,互聯(lián)和約束能夠滿足系統(tǒng)需求。

軟件體系結構的定義

第1章軟件體系結構概論1.3體系結構的興起和發(fā)展◎B第1章軟件體系結構概論1.3體系結構的興起和發(fā)展◎Bass,Ctements和Kazman

軟件體系結構包括一個或一組軟件構件、軟件構件的外部的可見特性及其相互關系。其中,“軟件外部的可見特性”是指軟件構件提供的服務、性能、特性、錯誤處理、共享資源使用等。

軟件體系結構的定義

第1章軟件體系結構概論1.3體系結構的興起和發(fā)展◎B第1章軟件體系結構概論1.3體系結構的興起和發(fā)展◎我們的定義軟件體系結構為軟件系統(tǒng)提供了一個結構、行為和屬性的高級抽象,由構成系統(tǒng)的元素的描述、這些元素的相互作用、指導元素集成的模式以及這些模式的約束組成。軟件體系結構不僅指定了系統(tǒng)的組織結構和拓撲結構,并且顯示了系統(tǒng)需求和構成系統(tǒng)的元素之間的對應關系,提供了一些設計決策的基本原理。

軟件體系結構的定義

第1章軟件體系結構概論1.3體系結構的興起和發(fā)展◎我

軟件體系結構的意義

第1章軟件體系結構概論1.3體系結構的興起和發(fā)展◎體系結構是風險承擔者進行交流的手段軟件體系結構代表了系統(tǒng)的公共的高層次的抽象。這樣,系統(tǒng)的大部分有關人員(即使不是全部)能把它作為建立一個互相理解的基礎,形成統(tǒng)一認識,互相交流。體系結構提供了一種共同語言來表達各種關注和協(xié)商,進而對大型復雜系統(tǒng)能進行理智的管理。這對項目最終的質(zhì)量和使用有極大的影響。

軟件體系結構的意義第1章軟件體系結構概論1.3體系第1章軟件體系結構概論1.3體系結構的興起和發(fā)展◎體系結構是早期設計決策的體現(xiàn)(1)軟件體系結構明確了對系統(tǒng)實現(xiàn)的約束條件(2)軟件體系結構決定了開發(fā)和維護組織的組織結構(3)軟件體系結構制約著系統(tǒng)的質(zhì)量屬性(4)通過研究軟件體系結構可能預測軟件的質(zhì)量(5)軟件體系結構使推理和控制更改更簡單(6)軟件體系結構有助于循序漸進的原型設計(7)軟件體系結構可以作為培訓的基礎

軟件體系結構的意義

第1章軟件體系結構概論1.3體系結構的興起和發(fā)展◎體第1章軟件體系結構概論1.3體系結構的興起和發(fā)展◎軟件體系結構是可傳遞和可重用的模型軟件體系結構級的重用意味著體系結構的決策能在具有相似需求的多個系統(tǒng)中發(fā)生影響,這比代碼級的重用要有更大的好處。

軟件體系結構的意義

第1章軟件體系結構概論1.3體系結構的興起和發(fā)展◎軟

軟件體系結構的發(fā)展史

第1章軟件體系結構概論1.3體系結構的興起和發(fā)展“無體系結構”設計階段萌芽階段以匯編語言進行小規(guī)模應用程序開發(fā)為特征以描述系統(tǒng)的高層抽象結構為中心,不關心具體的建模細節(jié),劃分了體系結構模型與傳統(tǒng)軟件結構的界限,該階段以Kruchten提出的“4+1”模型為標志出現(xiàn)了從不同側面描述系統(tǒng)的結構模型,以UML為典型代表。出現(xiàn)了程序結構設計主題,以控制流圖和數(shù)據(jù)流圖構成軟件結構為特征高級階段初期階段

軟件體系結構的發(fā)展史第1章軟件體系結構概論1.3第1章軟件體系結構概論1.3體系結構的興起和發(fā)展Perry和Wolf認為未來的年代是研究軟件體系結構的時代

軟件體系結構的發(fā)展史

第1章軟件體系結構概論1.3體系結構的興起和發(fā)展Per

軟件體系結構的應用現(xiàn)狀

第1章軟件體系結構概論1.4體系結構的應用現(xiàn)狀◎軟件體系結構描述語言◎體系結構描述構造與表示◎體系結構分析、設計與驗證◎體系結構發(fā)現(xiàn)、演化與重用◎基于體系結構的軟件開發(fā)方法◎特定領域的體系結構框架◎軟件體系結構支持工具◎軟件產(chǎn)品線體系結構◎建立評價軟件體系結構的方法

軟件體系結構的應用現(xiàn)狀第1章軟件體系結構概論1.4第1章軟件體系結構概論1.4體系結構的應用現(xiàn)狀◎軟件體系結構描述語言ADL提供了具體的語法與刻畫體系結構的概念框架。ADL使得系統(tǒng)開發(fā)者能夠很好地描述他們設計的體系結構,以便與他人交流,能夠用提供的工具對許多實例進行分析。

軟件體系結構的應用現(xiàn)狀

第1章軟件體系結構概論1.4體系結構的應用現(xiàn)狀◎軟件第1章軟件體系結構概論1.4體系結構的應用現(xiàn)狀◎體系結構描述構造與表示(1)

按照一定的描述方法,用體系結構描述語言對體系結構進行說明的結果則稱為體系結構的表示,而將描述體系結構的過程稱為體系結構構造

軟件體系結構的應用現(xiàn)狀

第1章軟件體系結構概論1.4體系結構的應用現(xiàn)狀◎體系第1章軟件體系結構概論1.4體系結構的應用現(xiàn)狀◎體系結構描述構造與表示(2)(1)Kruchten提出的“4+1”模型。(2)Booch從UML的角度給出了一種由設計視圖、過程視圖、實現(xiàn)視圖和部署視圖,再加上一個用例視圖構成的體系結構描述模型。(3)IEEE于1995年成立了體系結構工作組,起草了體系結構描述框架標準IEEEP1471。(4)Rational從資產(chǎn)重用的角度提出了體系結構描述的規(guī)格說明框架。

軟件體系結構的應用現(xiàn)狀

第1章軟件體系結構概論1.4體系結構的應用現(xiàn)狀◎體系第1章軟件體系結構概論1.4體系結構的應用現(xiàn)狀◎體系結構分析、設計與驗證(1)體系結構分析的內(nèi)容可分為結構分析、功能分析和非功能分析。非功能分析:定量分析方法、推斷分析方法。Kazman等人提出了一種非功能分析的體系結構分析方法SAAM,并運用場景技術,提出了基于場景的體系結構分析方法,而Barbacci等人提出了多質(zhì)量屬性情況下的體系結構質(zhì)量模型、分析與權衡方法ATAM。

軟件體系結構的應用現(xiàn)狀

第1章軟件體系結構概論1.4體系結構的應用現(xiàn)狀◎體系第1章軟件體系結構概論1.4體系結構的應用現(xiàn)狀◎體系結構分析、設計與驗證(2)生成一個滿足軟件需求的體系結構的過程即為體系結構設計。體系結構設計過程的本質(zhì)在于:將系統(tǒng)分解成相應的組成成分(如構件、連接件),并將這些成分重新組裝成一個系統(tǒng)。

軟件體系結構的應用現(xiàn)狀

第1章軟件體系結構概論1.4體系結構的應用現(xiàn)狀◎體系第1章軟件體系結構概論1.4體系結構的應用現(xiàn)狀◎體系結構分析、設計與驗證(3)體系結構設計有兩大類方法:過程驅動方法和問題列表驅動方法?;谶^程驅動的體系結構設計方法適用范圍廣,易于裁減,具備動態(tài)特點,通用性與實踐性強。問題列表驅動法的基本思想是枚舉設計空間,并考慮設計維的相關性,以此來選擇體系結構的風格。該方法適用于特定領域,是靜態(tài)的,并可以實現(xiàn)量化體系結構設計空間。

軟件體系結構的應用現(xiàn)狀

第1章軟件體系結構概論1.4體系結構的應用現(xiàn)狀◎體系第1章軟件體系結構概論1.4體系結構的應用現(xiàn)狀◎體系結構分析、設計與驗證(4)體系結構設計研究的重點內(nèi)容之一就是體系結構風格或模式,體系結構模式在本質(zhì)上反映了一些特定的元素、按照特定的方式組成一個特定的結構,該結構應有利于上下文環(huán)境下的特定問題的解決。

軟件體系結構的應用現(xiàn)狀

第1章軟件體系結構概論1.4體系結構的應用現(xiàn)狀◎體系第1章軟件體系結構概論1.4體系結構的應用現(xiàn)狀◎體系結構分析、設計與驗證(5)體系結構模式分為兩個大類:固定術語和參考模型。已知的固定術語類的體系結構模型包括管道過濾器、客戶/服務器、面向對象、黑板、分層、對等模式、狀態(tài)轉換、一些派生的固定術語類的體系結構模式,包括GenVoca,C2和REST等;而參考模型則相對較多,常常與特定領域相關。

軟件體系結構的應用現(xiàn)狀

第1章軟件體系結構概論1.4體系結構的應用現(xiàn)狀◎體系第1章軟件體系結構概論1.4體系結構的應用現(xiàn)狀◎體系結構分析、設計與驗證(6)

體系結構測試著重于仿真系統(tǒng)模型,解決體系結構層的主要問題。由于測試的抽象層次不同,體系結構測試策略可以分為單元/子系統(tǒng)/集成/驗收測試等階段的測試策略。在體系結構集成測試階段,Debra等人提出了一組針對體系結構的測試覆蓋標準,PaolaInveradi提出了一種基于CHAM的體系結構語義驗證技術。

軟件體系結構的應用現(xiàn)狀

第1章軟件體系結構概論1.4體系結構的應用現(xiàn)狀◎體系第1章軟件體系結構概論1.4體系結構的應用現(xiàn)狀◎體系結構發(fā)現(xiàn)、演化與重用(1)體系結構發(fā)現(xiàn)解決如何從已經(jīng)存在的系統(tǒng)中提取軟件的體系結構,屬于逆向工程范疇。Waters等人提出了一種迭代式體系結構發(fā)現(xiàn)過程,即由不同的人員對系統(tǒng)進行描述,然后對這些描述進行分類并融合,發(fā)現(xiàn)并解除沖突,將體系結構新屬性加入到已有的體系結構模型中,并重復該過程直至體系結構描述充分。

軟件體系結構的應用現(xiàn)狀

第1章軟件體系結構概論1.4體系結構的應用現(xiàn)狀◎體系第1章軟件體系結構概論1.4體系結構的應用現(xiàn)狀◎體系結構發(fā)現(xiàn)、演化與重用(2)

溫馨提示

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

評論

0/150

提交評論