系統架構設計師論文分享-論ATAM的使用

我的軟考歷程

摘要

2023年2月,我司通過了研發紗線MES系統的立項,該系統為國內紗線工廠提供SAAS服務,旨在提高紗線工廠的數字化和智能化水平。我在本項目中擔任系統架構設計師,負責整個項目的架構設計工作。本文結合我在該項目中的實踐,詳細論述了ATAM(架構權衡分析方法)在本項目中的應用,ATAM分為四個階段:描述和介紹階段、調查和分析階段、測試階段、報告階段。本文詳細描述了這四個階段在本項目中的具體應用,并取得了顯著的效果。最終,2023年12月,該系統順利上線并運行至今,目前已經有879家紗線工廠接入我們的系統,各項功能和性能指標均達到客戶要求,得到了客戶工廠和公司領導的一致好評。

項目背景

隨著我國從制造業大國升級為制造業強國以及工廠數字化和智能化的持續推進,我所在的某地某科技公司基于自研的物聯網平臺相繼開發了染整一體化和織布一體化等系統,這些系統上線后,得到了工廠的追捧,也為公司帶來了豐厚的經濟回報。基于此,我司于2023年2月開始研發紗線MES系統,該系統預算730萬,建設工期10個月,涵蓋紗線工廠從清花、梳棉、并條、精梳、粗紗、細紗到絡筒的全流程工序,將為紗線工廠提供全面的生產管理解決方案以及基于數據的智能決策分析能力。該項目為物聯網層次架構,整體分為感知層、網絡層和應用層。其中網絡層為公司已有的物聯網平臺,這次重點建設內容為感知層和應用層,感知層使用Golang語言開發,作為聯網網關部署在工廠側,負責工廠數據的采集和云端指令的下發。應用層為紗線MES系統主體,采用Java語言開發,使用Spring Cloud微服務架構,數據庫使用Mysql,緩存使用Redis,前端框架使用vue.js,日志、監控和鏈路追蹤采用skywalking、prometheus、grafana和ELK,最終通過devops的方式部署在kubernetes集群中。系統上線后,將提供以下:基礎管理、數據接入、工單排產、數字孿生、工資計算、智控中心和數據分析等等功能,通過以上功能,可以全面提升紗線工廠的數字化和智能化水平,使其運營水平和生產效率得到質的提升。

論述內容

由于該項目涉及角色、單位、流程眾多,系統極為復雜,所以架構的設計就顯得非常重要,在架構設計完成后,架構設計是否合理,里面的缺陷和漏洞是否會影響后面的質量屬性,這都需要架構評估去進行驗證。我們在架構評估階段采用了ATAM(架構權衡分析方法),ATAM可以進行多個質量屬性的評估和折中,包括性能、可用性、安全性和可修改性。在具體實施過程中,ATAM分為四個步驟:描述和介紹階段、調查和分析階段、測試階段和報告階段。

一、描述和介紹階段

首先,我召集了公司的產品負責人、運維部門負責人、業務線專家以及公司內部的領導。然后,我作為該項目的系統架構設計師,為大家介紹了ATAM方法,簡單說明了ATAM的作用和效果,以及我們在該項目中使用ATAM的方法和步驟。其后,由產品負責人為大家詳細講了該項目的業務需求和市場分析,讓大家對該項目有了更深入的理解。最后,由我為大家詳細介紹了該項目采用的架構設計,整體分為三部分:邊端、物聯網平臺、云端(業務端)。邊端部署在工廠復雜的網絡環境中,需求量大,采用輕量級開發語言Golang,與物聯網平臺通過MQTT協議交互。物聯網平臺采用公司現有系統,負責協議解析和路由以及信息的上傳和下發。云端采用微服務架構模式,根據領域模型被分為多個微服務:工資域、接入域、數據分析域、基礎管理域、工單域等等,頁面采用vue.js技術,通過Nginx,對接微服務網關。在大家都對項目有了詳細的了解后,公司專家提出了一些質量屬性需求:1、頁面訪問必須在1秒內返回結果;2、工廠的數據到大屏呈現不能超過1分鐘;3、當物聯網平臺出現故障時,應該在5秒內恢復;4、系統必須保證用戶的信息安全等等將近200條質量屬性。

二、調查和分析階段

在同事們整理了將近200條系統需要滿足的質量屬性后,大家又在一起進行分析討論,把所有的質量屬性進行了分類整理,最終發現最重要的質量屬性就是安全性、性能、可用性和可修改性。其中關于安全性的有:1、系統安全認證系統要保證99.99%的可用性;2、重要的信息要采用加密措施等等。關于性能的有:1、頁面訪問必須在1秒內返回結果;2、工廠的數據到大屏呈現不能超過1分鐘等等。關于可用性的有:1、當物聯網平臺出現故障時,應該在5秒內恢復;2、當云端某微服務出現問題時,請求能負載均衡到其他服務上。關于可修改性的有:當有新數據過來時,能在10天內對系統進行改造等等。經過大家的調查和分析,把這些質量屬性整理成了效用樹,最后根據該系統的特點,對這四種質量屬性進行了評估和折中,我們系統重點要關注性能和可用性,安全性和可修改性可以放在后面加固。為了實現性能,我們采用分層處理,在數據層采用了主從分離和分庫分表,在應用服務層采用了集群模式,同時加入了緩存來提高返回數據的速度。在網絡層,我們采用了CDN和多地部署的方式,降低訪問的延遲。

三、測試階段

當采用ATAM進行了調查和分析后,我們對各種質量屬性進行了折中和評估,大家開動腦筋,進行頭腦風暴,對各種場景進行模擬和想象,大家充分交流,各抒已見,對架構的優缺點進行點評,在點評過程,由我對大家的意見進行記錄,然后進行架構分析,提起架構的優點和缺點以及要改造的點,最終經過調整,該架構設計已經滿足了現階段的要求。

四、報告階段

在經過前三個階段之后,我們產生了一系統的文檔,包括架構規格說明書和測試架構需求的質量屬性說明書,以及質量效用樹,需求說明書,一種場景等等。這些文檔都非常重要,并且由我為大家做了此次架構評估的報告,最后把整理過的報告上交給公司領導。
經過架構評估后,我們的項目在架構上滿足了各種非業務需求,在系統上線后,很好地支撐起了業務的執行,滿足了各種性能指標。

總結

通過采用ATAM的方式,我們有效地提升了系統的性能和數據容量,為大量工廠的接入提供了條件。最終在2023年12月,該項目正式投產并對外提供服務,至今穩定運行,各項功能和性能指標均遠遠超過了客戶的預期,得到了客戶工廠和公司領導的一致贊揚。雖然項目取得了成功,但是也遇到過一些問題,在項目初期,由于產品經理對紗線業務的不熟悉,導致很多功能的調整和返工,這打擊了開發人員的士氣,基于此,我提出兩個解決方式:1、派產品進入工廠一線,與工人交流,熟悉操作流程,徹底摸清紗線業務,保證需求質量;2、開發人員也要學習紗線業務,遇到問題反饋給產品,同時在做設計時,采用靈活的設計模式,為需求的變動留下可操作的空間。我們通過這兩個方法解決了這個問題,保證了項目的進展。通過這次實踐,我不僅學習到了ATAM的相關技術,也鍛煉了自己的架構和管理能力,我意識到只有不斷地學習和實踐才能讓知識融匯于自己的技術體系之中,才能在未來的工作中游刃有余、勇擔大任,為祖國的信息化建設貢獻自己的力量。

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

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

相關文章

vue-28(服務器端渲染(SSR)簡介及其優勢)

服務器端渲染(SSR)簡介及其優勢 服務器端渲染(SSR)是現代網絡應用的關鍵技術,特別是使用 Vue.js 等框架構建的應用。它通過在服務器上渲染初始應用狀態來彌補傳統單頁應用(SPA)的局限性&#x…

工業電子 | 什么是SerDes,為何工業和汽車應用需要它?

重點內容速覽: 1. 什么是SerDes? 2. ADI:私有協議的GMSL將向公有協議轉變 3. TI:工業和汽車有兩套SerDes解決方案 4. Microchip:推出通用協議SerDes芯片 5. 羅姆:主要針對汽車領域 6. 國產SerDes芯…

大事件項目記錄4-用戶接口開發-更新用戶基本信息

4)更新用戶基本信息。 UserController.java: UserMapper.java: Update("update user set nickname #{nickname},email #{email},update_time #{updateTime} where id #{id}")void update(User user); UserServiceInterface…

Transformer結構--輸入編碼(BPE,PE)

在Transformer結構中,輸入編碼是模型處理文本數據的關鍵步驟,其中**BPE(Byte Pair Encoding,字節對編碼)和PE(Positional Encoding,位置編碼)**是兩種重要的編碼方式,它們…

Confluence-測試用例設計指導方法

測試經驗知識庫 典型的測試場景驗證點各個項目有價值的經驗和測試點 測試經驗知識庫 - 草稿測試用例執行量化指導建議 何時需要進行全量測試和如何定義和執行測試用例量的一些建議和標準 端對端(E2E)測試用例設計指導方案 在測試行業中,端到端…

淺析JVM

一、JVM運行流程 如圖: JVM由四個部分構成: 1.類加載器 加載類文件到內存2.運行時數據區 寫的程序需要加載到這里才能運行3.執行引擎 負責解釋命令,提交操作系統執行4.本地接口 融合不同編程語言為java所用,如Java程序驅動打印…

多個 Job 并發運行時共享配置文件導致上下文污染,固化 Jenkins Job 上下文

基于 context.py 固化 Jenkins Job 上下文的完整方案,適用于你當前的工作流(Python Jenkins Pipeline),解決: 多個 Job 并發運行時共享配置文件導致上下文污染;讀取環境變量或 JSON 文件時被其他 Job 修改…

簡木易支付系統 功能齊全,對接接口超多

簡木易支付系統,作為一款引領行業潮流的卓越支付解決方案,依托先進的 PHP MySQL 技術架構精心打造。在開發過程中,它巧妙運用了功能強大的 ThinkPHP8 框架,完美融合前端主流技術 Vue、Element 以及 Layuiadmin,共同鑄…

【軟考高項論文】信息系統項目的人力資源管理

摘要 本文圍繞信息系統項目的人力資源管理展開論述。以我在2024年參與的為大型國有企業構建供應鏈管理系統項目為例,闡述了項目人力資源管理的主要流程,包括規劃、組建、建設和管理團隊四個過程,以及所運用的工具和理論。同時,分…

【EI會議征稿】東北大學主辦第三屆機器視覺、圖像處理與影像技術國際會議(MVIPIT 2025)

一、會議信息 大會官網:www.mvipit.org 官方郵箱:mvipit163.com 會議地點:遼寧沈陽 主辦單位:東北大學 會議時間:2025 年 9 月 27 日-9 月 29 日 二、征稿主題 集中但不限于“機器視覺、圖像處理與影像技術”等其…

從零開始的云計算生活——第二十三天,稍作休息,Tomcat

目錄 一.故事背景 二.Tomcat概述 1、Tomcat介紹 2、Tomcat歷史 二、Tomcat原理分析 1、Http工作原理 2、Tomcat整體架構 3、Coyote連接器架構 4、Catalina容器架構 5、Jasper處理流程 6、JSP編譯過程 7、Tomcat啟動流程 8、Tomcat請求處理流程 三、Tomcat安裝與配…

幾種基于Doherty結構的GAN氮化鎵功放設計方法介紹

功率放大器是現代無線通信系統中最重要的組件之一。理想情況下,它們能夠以高線性度和高效率提供高輸出功率。但通常在這三個關鍵的功率放大器性能參數之間需要進行權衡取舍,而且具有最高輸出功率和線性度的放大器往往會犧牲效率。 在支持寬帶寬和高數據…

前端打印計算單位 cm、mm、px

A4 縱向 寬:21cm,210mm,793.698px 高:29.7cm,297mm,1122.520px A4 橫向 寬:29.7cm,297mm,1122.520px 高:21cm,210mm,793.698px …

c# sugersql 獲取子表數據排序

在C#中使用Sugar ORM(一個流行的.NET ORM框架)獲取子表數據并進行排序,可以通過以下幾種方式實現: 1. 使用HasMany或HasOne配置 首先,確保你在配置實體時已經正確設置了HasMany或HasOne關系。例如,假設你…

【nRF52832】【環境搭建 3】【如何新建一個純單片機開發的工程】

1. 前言 笨叔,又要開始扯淡了!!! 不感興趣的同學,可以跳過了!!! 笨叔之前在大學里面, 剛接觸單片機時。就被 windows 平臺 例如 keill 5 、IAR 等一堆開會環境差點勸退。 當時也是堅持咬牙一點點摸索過來的。剛摸索明白,覺得單片…

Spring-loC與DI

目錄 1 loC控制反轉思想 2 DI依賴注入 3 loC詳解 3.1 存儲Bean (1)Controller (2)Service (3)Repository (4)Component (5)Configuration &#xf…

職業本科單片機與嵌入式技術實訓室建設設想

一、引言 在當今數字化與智能化飛速發展的時代,單片機與嵌入式技術作為信息技術領域的關鍵支撐,廣泛應用于工業控制、智能家居、物聯網、汽車電子等眾多行業,成為推動產業升級和創新發展的核心驅動力。職業本科教育旨在培養適應生產、建設、…

傳統消防演練與 VR 消防演練的區別有哪些

演練形式:傳統消防演練往往依托真實的場地,像空曠的廣場、廢棄的建筑物或是專門的消防訓練基地等。參與者能觸摸并使用實實在在的消防設備,例如干粉滅火器、二氧化碳滅火器、消防水帶等。在演練時,會通過點燃模擬火源、釋放煙霧等…

【零基礎學AI】 第6講:數據可視化基礎

本節課你將學到 理解數據可視化在AI中的重要作用 掌握Matplotlib的基本架構和核心概念 學會創建各種類型的圖表(線圖、柱狀圖、散點圖、餅圖等) 掌握圖表美化和自定義技巧 完成銷售趨勢圖表制作實戰項目 開始之前 什么是數據可視化? 數據可…

基于SSM+JSP 的旅游管理系統

【旅游景點管理系統】【送文檔】|SSM | JSP 【運行開發環境】 jdk1.8 idea mysql maven tomcat 【技術棧】 Spring SpringMVC mybatis JSP 【項目功能】 兩個角色;管理員功能有游客管理、輪播圖管理、景點管理、景點類型管理;普…