計算機軟體體系結構知識點綱要

2022-09-10 01:12:09 字數 4383 閱讀 8578

目錄1、課程安排 2

2、軟體體系結構的基礎知識 2

2.1 軟體體系結構概論 2

2.2 軟體體系的定義 2

2.3 軟體體系的建模 3

2.4 軟體體系的生命週期 3

2.5 軟體體系結構的核心元素 3

2.6 風格與模式 4

2.7經典體系結構風格: 4

3、物件導向程式設計的基礎知識 5

4、uml建模 6

4.1 用例圖 6

4.2活** 6

4.3時序圖與協作圖 7

軟體體系結構考試題型:填空,30,判斷正誤10,名詞解釋12,簡答22,建模26,請大家認真學習知識點提綱,認真備考,尤其是平時成績較低的同學,請端正態度

課程內容安排:本課程的知識安排分為三個部分,一部分是軟體體系結構的基礎知識,一部分為物件導向程式設計的基礎知識,一部分軟體體系結構建模,包括四+1模型的建模,與uml軟體建模方法相關知識。

課程考核安排:本課程的考核分為三個部分: 平時分(平時上機實驗作業、課堂作業)佔20%,上機實驗分(第18周上機實驗)佔10%, 期末考試佔70%;

1、軟體危機:軟體應用需求的發展,致使軟體複雜化,造成軟體成本、開發進度、質量、維護難以控制,總而言之,軟體開發越來越複雜困難。

危機產生的原因: 缺乏正確的軟體開發理論是根本,此外,軟體需求不明確、軟體規模與複雜度也是造成的重要原因。

2、軟體工程:克服軟體危機的辦法,以工程的方法來進行軟體生產的開發、生產與管理。核心就是標準化,實現軟體生產全流程的標準化。

3、可重用性與構件:標準化的軟體開發流程,使應對特定問題的軟體**重用成為可能,當可重用的**被抽取出來,並配以標準化的介面與應用文件,形成構件。

4、構件:語義完整、語法正確和可重用價值的單元軟體,其中最核心的是可重用性。在結構上,這是語義描述(針對構件的說明)、通訊介面(構件呼叫與裝配的介面)與實現**(軟體的功能實現)三部分組成。

5、領域:一組具有相似或相近軟體需求的應用系統的覆蓋的功能區域。具有內聚性(問題的特定性)和穩定性(特定問題在較長的問題多次出現)。

6、商業化構件的分類: 使用者介面類、資料庫類、商務應用類、工具類、網路通訊類、核心技術類。

1、軟體體系結構定義:軟體體系結構為軟體系統提供了乙個結構(構件組裝的結構)、行為(構件的功能)、屬性(構件的約束)的高階抽象,由構成系統的元素的描述、這些元素的相互作用、指導元素整合的模式以及這些模式的約束的組成。

1、建模的本質:從軟體開發不同角度看問題 、隱含在軟體工程不同階段,不同的參與人員對於工程的視角。

2、現有的模型:

● 結構模型:注重構件與連線件,試圖以結構來反映系統,哲學:結構與功能的關係

● 框架模型:注重更高層次的可重用性,對於構件則不太關注,試圖在構件及功能可替換情況下,重用框架。

● 動態模型:反映系統動態行為,對前二者靜態描述的補充。

● 過程模型:試圖反映系統構造的過程,典型的增量開發過程,也是期望能在主框架重用的情況下,開發系統。

● 功能模型:試圖按功能模組元件來描述系統,易於理解,極為常用。

3、4+1檢視模型

邏輯檢視:支援系統的功能需求,注意是支援,不是表述,即系統提供給終端使用者的服務。在邏輯檢視中,系統分解成一系列的功能抽象,這些抽象主要來自問題領域。

邏輯視**釋系統功能的實現,建模人員一般為開發人員。

開發檢視:又稱為模組檢視,主要側重於軟體模組的組織和管理,建模人員一般為專案經理。

程序檢視:側重於系統的執行特性,主要關注一些非功能性的需求,如系統的效能和可用性,建模人員一般為測試人員。

物理檢視:主要考慮如何把軟體對映到硬體上,考慮系統效能、規模、可靠性等,一般建模人員為專案部署人員。

場景:可以看作是那些重要系統活動的抽象,有機聯絡以上四個檢視,某種意義上說場景是最重要的需求抽象。一般建模人員為專案主管。

1、需求-〉建立-〉設計-〉實現,以及各階段的大致內容了解。

● 構件:具有某種功能的可重用的軟體單元

● 連線件:構件之間的互動,資料互動的中介軟體,如資料庫jdbc、odbc之類

● 配置:構件與連線件之間的拓撲邏輯與約束

● 埠:也就是構件的介面,介面可與構件相分離,形成獨立的要素

● 角色:本質為場景,構件在場景中發揮的作用

1、風格的定義:某一特定應用領域中系統組織方式的慣用模式,即定義某一領域的術語表和一組指導構件系統的規則,其中:術語表:構件的通常表述方式

2、模式:包括模組與模組組織的約束

3、體系結構重用:模組+架構:體系統結構能不能重用,或者如何重用? 由問題說了算,也就是領域,領域問題的相似性促成風格的形成

1、管道與過濾器:經典的過程程式設計視角:視程式為資料處理流程,乙個構件的輸入為上乙個構件的輸出,同時該構件的輸出又作為下乙個構件的輸入,

其典型的應用:dos 下的管道命令符。

優點:模組的高內聚、低耦合。

缺點:太理想化了,資訊世界是多樣化的,邏輯不是那麼簡單的

主要的應用場景:如,大資料量的科學計算,批任務處理,資料庫維護與倒庫方面的工作。

極為清晰的資料處理流程

資料處理時序是簡單,不需要考慮過多的彼此依賴、併發性。

管道與過濾器介面可以標準化

2、資料抽象與物件導向:另一種經典的程式設計視角: 物件導向,資料抽象:資料與其操作方法封裝在一起。這種風格的構件就是:物件

優點 :高內聚、低耦合:資料與其操作在一起,對現實世界的更真實建模

缺點 :各人觀點不一,事實上物件導向的程式設計風格是不完全排除面向過程的,通常為兩者的結合

3、基於事件的隱式呼叫:構件彼此獨立,訊息與事件:訊息引發事件,事件引發註冊的模組,模組執行功能。

如:windows的程式設計基本模式、windows核心的基本模式、黑客與鉤子的實現方式。

優點:擴充套件性很強,軟體重用性也很強。

缺點 : 同一訊息處理的次序不太好確定,模組之間的依賴關係難以體現出來,系統對於全域性邏輯的控制性不強

4、分層系統:系統的架構風格:視資訊世界為抽象程度不同的層次組成。

優點:系統結構清晰,擴充套件性強,功能模組可重用程度高。

缺點:客觀世界的複雜性很難通過統一的分層結構來予以實現。

1、物件導向技術的基本觀點:

● 客觀世界由獨立的物件組成,任何客觀實體都是物件,複雜物件可以由簡單物件組成。

● 客觀世界中具有相同特性與行為動作的物件可以抽象成類,如學生類,具有到某個學生,如張三,則為學生類的某個名為張三的特定物件。因此,類是抽象,是同類物件的模板,物件是類的具體特例。

● 類可以派生出子類,子類除了繼承父類的全部特性外還可以有自己的特性。

● 物件之間的聯絡通過訊息傳遞來維繫。

2、類與物件:客觀世界裡的任何實體都可以被抽象為問題空間中的類。客觀世界實際存在的都是物件,而不是類。

類是問題域或實現域中某些概念的乙個抽象。類是乙個封裝資料屬性和操作行為的模板,而物件是其實體。

3、類的繼承:繼承是指子類可以自動擁有父類的全部屬性與操作的機制。父類(超類)、子類(派生類)。繼承性又分為單重繼承和多重繼承兩類。

4、多型:是指同乙個訊息為不同的物件接收時,可以有不同的解釋,可產生不同的動作或執行結果。

5、多型性的實現方式:

通過介面實現多型性:乙個介面的指定動作由不同類來實現,而這些類的物件既可以看成其所屬的類,且從介面的角度來看又可以看成它實現的介面類;

通過繼承實現多型性:乙個子類的物件,既可以看成本身類,又可以看成其父類;

通過抽象類實現的多型性: 實現某個抽象類行為的類,其物件既可以看成抽象類的物件,又可以看成其本身類的物件。

1、用例圖包括的內容:用例(user case);參與者(actor);依賴、泛化以及關聯關係(用例之間的關係)

2、參與者:系統外部的實體,事物或人,也就是使用系統,觸發系統活動的人。

3、系統邊界:劃分參與者與系統的界線,參與者不屬於系統。

4、建模者應提出的問題:誰或什麼使用系統?它們各自扮演什麼角色?誰安裝、啟動、關閉、維護系統;誰從系統獲得資訊?誰提供資訊給系統?有什麼事發生在固定事件中?

5、用例:系統在參與者請求或觸發的時候完成某個事件,使用橢圓形表示,用例的名字可以寫在其下或其中。

6、用例與參與者的關係:誰來做?參與者,做什麼?用例

7、用例之間的關係:

泛化關係:用例與用例、參與者與參與者之間具有的繼承關係

包含關係:用例表示的是做一件事,而具體的事可能會分成多個步驟,每個步驟又是乙個子事件;包含關係指不同的用例可能會包含同乙個步驟形成的用例,那麼把同一步驟抽出來作為子用例可以被這些用例包含

擴充套件關係:把新的行為插入到已有用例中的方法。用於某個事件中可能會有一些不同的行為,擴充套件關係為該事件代表的用例新增行為時提供擴充套件點

1、活**:是一種用於描述系統行為的模型檢視,它可用來描述過程(業務過程、工作流、事件流等)中的活動及其遷移。簡單地講,活**是「oo流程圖」。

2、活**的主要應用:描述用例的行為、理解工作流程、描述複雜過程的演算法。

計算機軟體知識

計算機基礎知識 認識電腦 計算機基礎知識 電腦是怎麼工作的 計算機基礎知識 鍵盤與指法 cpu如何工作?把cpu比喻成電腦的 大腦 一點都不為過,它不但要負責接收外界輸入的資訊資料,而且還要負責處理這些資料,然後將處理過的結果傳送到正確的裝置上。幾乎所有大大小小的工作,都需要由cpu來下達命令,傳達...

計算機體系結構

平行計算 之我見指導老師 陳麗萍 學院 資訊科學與工程學院 班級 計科0908班 姓名 原海南 學號 0909083125 完成日期 2012年5月21日 目錄1.平行計算簡介 1.1什麼是平行計算 1.2為什麼需要平行計算 1.3平行計算的歷史 1.4平行計算的現狀 2.平行計算與網際網路 2.1...

軟體設計與體系結構知識點

1.軟體設計的特徵 1 軟體設計的開端是出現某些新的問題需要軟體來解決,這些需要促使設計工作的開始,並成為整個設計工作最初的基礎 2 軟體設計的結果是給出乙個方案,它能夠用來實現所需的 可以解決問題的軟體,方案的描述可能是文字 圖表,甚至數學符號 公式等組成的文件或模型 3 軟體設計包含一系列的轉換...