基于架構的軟件開發方法

基于架構的軟件開發方法

基于架構的軟件開發方法是由架構驅動的,即指由構成體系結構的商業、質量和功能需求的組合驅動的。使用ABSD 方法,設計活動可以從項目總體功能框架明確就開始,這意味著需求抽取和分析還沒有完成(甚至遠遠沒有完成),就開始了軟件設計。設計活動的開始并不意味著需求抽取和分析活動就可以終止,而是應該與設計活動并行。特別是在不可能預先決定所有需求時(例如,產品線系統或長期運行的系統),快速開始設計是至關重要的。
在這里插入圖片描述
基于架構的軟件開發過程

基于架構的軟件開發方法的三個基礎

ABSD 方法有3 個基礎。第1個基礎是功能的分解。在功能分解中,ABSD 方法使用已有的基于模塊的內聚和耦合技術。第 2個基礎是通過選擇體系結構風格來實現質量和商業需求,第3個基礎是軟件模板的使用,軟件模板利用了一些軟件系統的結構。
ABSD 方法是遞歸的,且迭代的每一個步驟都是清晰定義的。因此,不管設計是否完成,體系結構總是清晰的,這有助于降低體系結構設計的隨意性。

功能分解

基于架構的軟件開發方法(ABSD)的第一個基礎是功能的分解,ABSD方法使用已有的基于模塊的內聚和耦合技術 。在功能分解中,ABSD方法將復雜系統簡化為更小、更易于管理和可理解的部分。功能分解使設計、分析和實現復雜系統變得容易。

選擇體系結構風格

基于架構的軟件開發方法(ABSD)在選擇架構風格時,應該考慮商業、質量和功能需求的組合。ABSD方法強調由商業、質量和功能需求的組合驅動軟件架構設計。ABSD是一個自頂向下,遞歸細化的軟件開發方法,它以軟件系統功能的分解為基礎,通過選擇架構風格實現質量和商業需求 。

在候選的分布式架構中,低級別的事件驅動或微服務架構與大多數架構特性相匹配。在這兩者中,微服務更好地支持不同的操作架構特性,純粹的事件驅動架構通常不會因為這些操作架構特性而獲得優勢。

選擇架構模版

在ABSD方法中,軟件模板是一個重要的概念。軟件模板利用了一些軟件系統的結構,但是它們并不是一個完整的解決方案。相反,它們提供了一些可重用的元素,這些元素可以在多個項目中使用。在使用軟件模板時,應該根據項目的需求進行適當的修改和擴展。

基于架構的軟件開發方法的六個步驟

架構需求

重點是標識構件的三步
在這里插入圖片描述

架構設計

將需求階段的標識構件映射為構件進行分析
在這里插入圖片描述

架構文檔化

架構文檔化主要產生2種文檔,架構規格說明書,測設架構需求的質量設計說明書,文檔至關重要,關系到開發的成敗。

架構評審

由外部人員 (獨立于開發組織之外的人,如用戶代表和領域專家等)參加的復審,復審架構是否滿足需求,質量問題,構件劃分合理性等。若復審不過,則返回架構設計階段進行重新設計、文檔化,再復審。

架構實現

用實體來顯示出架構。實現構件,構件組裝成系統
在這里插入圖片描述

架構演化

對架構進行改變,按需求增刪構件,使架構可復
在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/37978.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/37978.shtml
英文地址,請注明出處:http://en.pswp.cn/news/37978.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

純C#使用Visionpro工具2 操作斑點工具

結果圖 通過斑點工具中非圓性找取圓特征 代碼 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.For…

ApacheCon - 云原生大數據上的 Apache 項目實踐

Apache 軟件基金會的官方全球系列大會 CommunityOverCode Asia(原 ApacheCon Asia)首次中國線下峰會將于 2023 年 8 月 18-20 日在北京麗亭華苑酒店舉辦,大會含 17 個論壇方向、上百個前沿議題。 字節跳動云原生計算團隊在此次 CommunityOve…

OpenSSL 遠程升級到 3.2.1

OpenSSL 遠程升級到 3.2.1 文章目錄 OpenSSL 遠程升級到 3.2.1背景升級 OpenSSL1. 查看 OpenSSL版本2. 下載最新穩定版本 OpenSSL3. 解壓縮,安裝4. 配置 背景 最近的護網行動,被查出來了好幾個關于OpenSSH的漏洞。需要升級OpenSSH,升級OpenS…

冠達管理:價格破發是什么意思啊?

價格破發是股票商場中一個比較常見的術語,也是常常讓出資者感到困惑的現象之一。價格破發是指新股發行后,由于各種原因,股票價格低于發行價的現象。那么,價格破發的原因是什么呢?價格破發與出資者有哪些聯系呢&#xf…

C和指針(一)

C和指針(一) 預處理指令main 函數常量及變量整型字面值指針:基本聲明:隱式聲明:常量: 預處理指令 預處理器用庫函數頭文件的內容替換掉相對應的#include指令語句。 使用stdio.h頭文件可以使我們訪問標準I/…

企業直播MR虛擬直播(MR混合現實直播技術)視頻介紹

到底什么是企業直播MR虛擬直播(MR混合現實直播技術)? 企業直播MR虛擬直播新玩法(MR混合現實直播技術) 我的文章推薦: [視頻圖文] 線上研討會是什么,企業對內對外培訓可以用線上研討會嗎&#x…

24屆近5年南京工業大學自動化考研院校分析

今天給大家帶來的是南京工業大學控制考研分析 滿滿干貨~還不快快點贊收藏 一、南京工業大學 學校簡介 南京工業大學(Nanjing Tech University),簡稱“南工”,位于江蘇省南京市,由國家國防科技工業局、住…

2023年之我拿起“java“

持續更新中………… 文章目錄 javajava基礎 了解 j a v a 的語法,從 H e l l o W o r l d 開始 \color{red}{了解java的語法,從HelloWorld開始} 了解java的語法,從HelloWorld開始 j a v a 語言的注釋 \color{red}{java語言的注釋} java語言的…

Vue3.2+TS的defineExpose的應用

defineExpose通俗來講,其實就是講子組件的方法或者數據,暴露給父組件進行使用,這樣對組件的封裝使用,有很大的幫助,那么defineExpose應該如何使用,下面我來用一些實際的代碼,帶大家快速學會defi…

VSCode 報錯 grep: /proc/version: 權限不夠

部分用戶在Linux上運行VSCode提示grep: /proc/version: 權限不夠 grep: /proc/version: 權限不夠 You are trying to start Visual Studio Code as a super user which isn’t recommended. If this was intended, please add the argument --no-sandbox and specify an alter…

GPT帶我學-設計模式-命令模式

1 你知道設計模式的命令模式嗎 是的,我知道設計模式中的命令模式。命令模式是一種行為型設計模式,它將請求封裝成一個對象,從而允許使用不同的請求、隊列或日志來參數化其他對象。命令模式還支持撤銷操作,并且可以提供事務的實現…

探討uniapp的網絡通信問題

uni-app 中有很多原生的 API,其中我們經常會用到的肯定有:uni.request(OBJECT) method 有效值 注意:method有效值必須大寫,每個平臺支持的method有效值不同,詳細見下表。 success 返回參數說明 data 數據說明 最終…

氣液固三相線識別—Langmuir部分復現

關注 M r . m a t e r i a l , \color{Violet} \rm Mr.material\ , Mr.material

c#和pdf.js實現分片預覽pdf

源碼如下&#xff1a; /// <summary>/// 文件處理/// </summary>[RoutePrefix("api/fs")]public class FileStoreController : ApiController{/// <summary>/// 文件預覽/// </summary>/// <param name"filepath">文件路徑…

【數據結構OJ題】移除鏈表元素

原題鏈接&#xff1a;https://leetcode.cn/problems/remove-linked-list-elements/description/ 1. 題目描述 2. 思路分析 我們可以定義一個結構體指針變量cur&#xff0c;讓cur一開始指向頭結點&#xff0c;同時定義一個結構體指針prev&#xff0c;令prev初始化為空指針NULL…

基于長短期神經網絡LSTM的碳排量預測,基于LSTM的碳排放量預測

目錄 背影 摘要 LSTM的基本定義 LSTM實現的步驟 基于長短期神經網絡LSTM的碳排放量預測 完整代碼: 基于長短期神經網絡LSTM的碳排放量預測,基于LSTM的碳排放量預測資源-CSDN文庫 https://download.csdn.net/download/abc991835105/88184632 效果圖 結果分析 展望 參考論文 背…

DIP:《Deep Image Prior》經典文獻閱讀總結與實現

文章目錄 Deep Image Prior1. 方法原理1.1 研究動機1.2 方法 2. 實驗驗證2.1 去噪2.2 超分辨率2.3 圖像修復2.4 消融實驗 3. 總結 Deep Image Prior 1. 方法原理 1.1 研究動機 動機 深度神經網絡在圖像復原和生成領域有非常好的表現一般歸功于神經網絡學習到了圖像的先驗信息…

Python解決-力扣002-兩數相加

兩數相加&#xff1a;鏈表表示的逆序整數求和 在這篇技術博客中&#xff0c;我們將討論一個力扣&#xff08;LeetCode&#xff09;上的編程題目&#xff1a;兩數相加。這個問題要求我們處理兩個非空鏈表&#xff0c;它們表示兩個非負整數。每個鏈表中的數字都是逆序存儲的&…

Redis——String類型詳解

概述 Redis中的字符串直接按照二進制的數據存儲&#xff0c;不會有任何的編碼轉換&#xff0c;因此存放什么樣&#xff0c;取出來的時候就什么樣。而MySQL默認的字符集是拉丁文&#xff0c;如果插入中文就會失敗 Redis中的字符串類型不僅可以存放文本數據&#xff0c;還可以存…