大類:可修改性、可用性、效能、安全性、可測試性、易用性
可修改性策略: 一、
區域性化修改 1、
高內聚、低耦合 2、
為變更預留介面(針對介面程式設計) 3、
通過方法和函式(傳入引數) 4、
限制修改範圍
二、 防止連鎖反應 1、
資訊隱藏:將變更隔離在乙個模組內,防止變更擴散到其他模組 2、
維持現有介面:新增介面、新增介面卡 3、
限制通訊路徑:減少資料產生
/使用導致連鎖反應得依賴。 4、
仲裁者:類似門面模式
三、 推遲邦定時間 1、
執行時註冊:如發布
/訂閱註冊,但要管理註冊的額外開銷 2、
配置檔案:啟動時設定引數 3、
多型:允許方法呼叫後期邦定 4、
元件更換:載入時間邦定
可用性策略: 一、
錯誤檢測 1、
命令/相應
2、心跳 3、
異常 二、
錯誤恢復 1、
表決 2、主動冗餘 3、
被動冗餘 4、
備件 5、shadow操作
6、狀態再同步 7、
檢查點/回滾
三、錯誤預防 1、
從服務中刪除:重啟
2、事務
3、程序監視器
效能策略 一、
資源需求 1、
提高計算效率 2、
減少計算開銷 3、
減少管理事件率 4、
減少控制取樣率 5、
限制執行時間 6、
限制佇列大小
二、 資源管理 1、
引入併發 2、
維持資料或計算的多個副本 3、
增加可用資源
三、 資源仲裁 1、
先進先出 2、
固定優先順序排程 3、
動態優先順序排程 4、
靜態排程
安全策略 一、
抵抗攻擊 1、
對使用者身份驗證 2、
對使用者進行授權 3、
維護資料機密性 4、
維護資料完整性(雜湊校驗) 5、
限制資訊暴露 6、
限制訪問(網路)
二、 檢測攻擊 三、
從攻擊中恢復
可測試性策略 一、
輸入、輸出 1、
記錄/回放
2、將介面和實現分離 3、
特化訪問路徑/介面
二、 內部監視 1、
內建監視器
易用性策略 一、
執行時戰術(不理解) 二、
設計時戰術(不理解)
非功能屬性
根據iso25010和ieee.29119 4附錄a中的描述,非功能屬性測試也稱質量屬性測試,包括以下14點 功能測試和過程測試在功能屬性中進行 可達性 可指軟體從設計到實現,能使殘障人士,老年人,非本土人群等不同人群獲得同等資訊和服務。可恢復性 指軟體在發生故障時是否可以將測試項從備份恢復到其故障...
軟體體系結構的非功能屬性
摘抄自 pattern oriented software architecture volume 1 a system of patterns wiley出版社出版 略有改動 程式,像人一樣,會變老。我們不能夠阻止老化,但我們可以弄清楚引起老化的原因,採取措施來限制它的影響,暫時性地修復由老化引起...
軟體設計 質量屬性 非功能性需求
當你在收集需求的時候 人們會很樂意給你乙個願望清單,寫滿了他們想要軟體系統所完成的事,也有完善的方法以使用者故事 用例 傳統的需求規格書 驗收標準等形式來捕捉這些功能需求 但是那些討厭的非功能性需求呢?非功能性需求通常被看做是能力,主要跟服務質量有關,也就是乙個軟體的質量屬性,下面大致介紹下 常見的...