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

2022-05-23 07:51:02 字數 3118 閱讀 7010

1.軟體設計的特徵

(1)軟體設計的開端是出現某些新的問題需要軟體來解決,這些需要促使設計工作的開始,並成為整個設計工作最初的基礎

(2)軟體設計的結果是給出乙個方案,它能夠用來實現所需的、可以解決問題的軟體,方案的描述可能是文字、圖表,甚至數學符號、公式等組成的文件或模型

(3)軟體設計包含一系列的轉換過程,即把一種描述或模型轉換為另一種描述或模型,轉換後的形態可能更加具體,或更接近於實現

(4)產生新的想法或思路對軟體設計非常重要,因為設計也是乙個創造性的過程,不同的問題或需求總會存在各自的特點,即使同樣的問題在不同時期和環境下也會存在區別,因此設計不會是一成不變的

(5)軟體設計的過程是不斷解決問題和實施決策的過程,因為整個設計是解決乙個大的問題,在設計過程中將會分解成眾多小問題,涉及真需要一次解決這些小的問題,並在出現多種方案或策略時進行決策,選擇其中最合適的

(6)軟體設計也是乙個滿足各種約束的過程,因為軟體可能在效能、執行環境、開發時間、成本、人員技術水平等各個方面存在約束,設計必須在滿足這些約束的情況下給出最佳的設計方案

(7)大多數的軟體實際是乙個不斷演化的過程,因為需求在一開始很可能是不完整或不精確的,在設計過程中還會不斷發生變化並逐步穩定下來,因此設計需要根據需求的變化而不斷演化。

2.軟體設計的要素

(1)目標描述(2)設計約束(3)產品描述(4)設計原理(5)開發規劃(6)使用描述

3.軟體設計體系的定義

(1)軟體設計體系結構是軟體系統的結構,包含軟體元素、軟體元素外部可見的屬性以及這些軟體元素之間的關係

(2)軟體體系結構是軟體系統的基本組織,包含構建、構件之間、構件與環境之間的關係,以及相關的設計與演化原則

4.軟體設計的主要活動

(1)軟體設計計畫(2)體系結構設計(3)介面設計(4)模組/子系統設計(5)過程/演算法設計(6)資料模型設計

5.體系結構「4+1」多檢視建模

(1)邏輯檢視:該檢視關注功能需求,即系統應該為終端使用者提供什麼服務,它與應用領域精密相關

(2)程序檢視:該檢視捕獲設計中關於併發和同步的內容,重視一些非功能需求,例如效能、可擴充套件性等,定義了執行實體和它們的屬性。

(3)開發檢視:該試圖主要描述軟體在開發環境中的靜態結構,開發人員和專案經理對比都會感興趣。

(4)物理檢視:該檢視描述軟體到硬體的對映關係,反映了軟體的分布特徵。

(5)場景:可以使用一組重要場景也就是用例的例項,把上述四種檢視緊密的聯絡起來

6.什麼是軟體產品線方法

軟體產品線是軟體復用發展的乙個更高階段,它並不僅僅侷限於以前人們在軟體復用中考慮的對函式、模組、類、體系結構甚至子系統的重用。

軟體產品線指一組具有公共的、可管理特徵(系統需求)的軟體系統,這些系統滿足特定的市場需求或者任務領域需求,並且按照預定義的方式基於公共的核心資產集合開發得到。

軟體產品線主要由兩部分組成:核心資產庫和產品集合

產品線方法的基本活動包括核心資產開發、產品開發和管理。

7.可信軟體

可行軟體是指軟體系統的執行行為極其結果總是符合人們的預期,且在受到干擾(包括操作錯誤、環境影響、外部攻擊等)時仍能提供連續服務

本質屬性:(1)可靠性(2)安全性(3)正確性(4)實時性(5)可維護性(6)可生存性

用例圖參與者:顧客(存款取款查詢轉賬),操作管理員(開機關機),銀行伺服器(存款取款查詢轉賬),讀卡器(存款取款查詢轉賬),存款器(存款),取款器(取款),印表機(存款取款查詢轉賬)

互動:存款,取款,轉賬,查詢餘額,開機,關機

atm細化

互動:操作管理員(開機關機),顧客、銀行伺服器,、讀卡器、印表機(會話),取款器(取款),存款器(存款),會話擴充套件非法密碼,會話包涵傳輸業務,傳輸業務繼承存款取款查詢轉賬。

系統頂級資料流

銀行atm系統(使用者口令)使用者控制面板

銀行atm系統(管理員口令)管理員控制開關

銀行atm系統(銀行資訊)讀卡器

銀行atm系統(存入款項資訊)存款器

銀行atm系統(帳戶資訊)銀行系統

銀行atm系統(顯示資訊)顯示器

銀行atm系統(帳戶變更資訊)銀行系統

銀行atm系統(列印資訊)印表機

銀行atm系統(取出款項資訊)取款器

10.介面設計的基本原則

(1)使用者熟悉程度:介面應該採用經常使用系統的使用者所熟悉的術語和概念

(2)一致性:介面必須一致,在任何可能的情況下,相同的操作應該以同樣的方式被啟用

(3)使驚訝最小化:盡量避免使使用者對系統的行為感到驚訝

(4)可恢復性:介面應該為使用者提供錯誤恢復機制

(5)使用者幫助:介面應該在錯誤發生時提供有意義的反饋,並且提供上下文敏感的使用者幫助系統

(6)使用者多樣性:介面應該為不同型別的使用者提供恰當的互動方式

11.軟體體系結構風格和設計模式

軟體體系結構風格:在構件和連線子的層次描述的可重複使用的軟體設計問題解決方案

軟體體系結構設計模式:在類和物件的層次描述的可重複使用的軟體設計問題解決方案

12.軟體評估的目的

軟體評估的目的就是為了在開發過程的早期,通過分析系統的質量需求是否在軟體體系結構中得到體現,來識別軟體體系結構設計中的潛在風險,**系統質量屬性,並輔助軟體體系結構決策的制定。

12.常用的三個軟體體系結構評估方法

(1)atam方法:能夠反映乙個軟體體系結構滿足某些特定質量目標的程度,同時還能給出這些質量目標相互之間的互動方式,即它們之間的折中方案。

步驟為:介紹,調查和分析,除錯,報告

步驟1:介紹atam方法;步驟2:商業動機的介紹;步驟3:軟體體系機構介紹

步驟4:確定軟體體系結構方案;步驟5:產生質量屬性效果樹;

步驟6:分析軟體體系結構方案;步驟7:集體討論並確定場景的優先順序;

步驟8:進一步分析軟體體系結構方案;步驟9:展示結果。

(2)saam方法

步驟1:場景的形成;步驟2:描述軟體體系結構;步驟3:場景分類和優先順序劃分;

步驟4:間接場景的單獨評估;步驟5:評估場景互動;步驟6:形成總體評估

(3)arid方法

在排練階段

步驟1:確定評審人;步驟2:準備設計情況介紹;

步驟3:準備種子場景;步驟4:準備材料

在評審階段

步驟1:介紹arid方法;步驟2:介紹設計;步驟3:場景的集體討論和優先順序劃分

步驟4:應用場景;步驟5:總結。

軟體設計與體系結構

延安大學計算機學院實驗報告專用紙 姓名實驗室 軟體實驗室機號 實驗日期 年月日 班級軟體15課程名稱軟體設計與結構任課教師指導教師 實驗專案名稱軟體體系結構風格之kwic關鍵詞索引系統 實驗組別第組 學號教師評語及成績 實驗成績 教師簽字 一 實驗目的和要求 鞏固和加強 軟體體系結構 課程中關於軟體...

軟體設計與體系結構實驗教學大綱

課程編號 zh36167 課程名稱 軟體設計與體系結構實驗 英文名稱 experiments in software design and architecture 學分 學時 0.5 17課程性質 必修 適用專業 軟體工程 先修課程 軟體工程 uml基礎 軟體需求及設計 程式設計 c c 或j a...

軟體設計師備考筆記之組成原理與體系結構

cpu組成 運算器 控制器。cpu功能 程式控制,操作控制,時間控制,資料處理。運算器功能 對資料進行加工處理的部件,它主要完成算術運算和邏輯運算,完成對資料的加工與處理。運算器組成 算術 邏輯單元 alu 累加器 acc 暫存器組,多路轉換器和資料匯流排等邏輯部件組成。控制器功能 步驟 從記憶體中...