致Web開發技術人員 - UML的使用與好處

Avatar of 王冠信.
Avatar of 王冠信.

致Web開發技術人員 - UML的使用與好處

Software Developer ■ Interested in Web Development, Software Design and Information Technology
Hsinchu, Hsinchu City, Taiwan

習得前端的相關知識之後,通常會轉往後端nodejs做一個全端的應用。原因在於語言上都是使用Javascript,基本上沒有語言與語法上的門檻。但在此時會遇到兩個問題:程式專案管理以及系統設計的問題。程式專案管理涉及單資料夾儲存架構(monorepo),而此篇探討的是系統設計與分析的議題。

這是一個全端建立的普通的電商系統(Udemy課程)。採用技術:

  • 前端:Angular 13
  • 後端:Java Spring Boot
  • 資料庫:MySQL Workbench
  • 版本管理:Github

由於後端語言採用Java,物件導向的語言。因此,拿來做系統分析是再好不過的一個例子。

由於前端Angular框架有很明確的規範,個人認為除非在多處元件共用Interface或是內部服務時,才需要特地分析、建構前端共用的程式。電商的商業邏輯相對簡單,因此本篇探討後端與資料庫而言,系統架構分析的重要性與益處。

使用任何關聯式資料庫(relational database),與其對接的軟體的錯誤不容易發現,尤其資料庫有上百個表格時,程式碼的維護會越顯困難。本專案只有六個表格,相當簡單。

先註明表格關係,待之後分析程式碼時對照。

  • 一個 customer 可以有 多個 orders (邏輯正確)
  • 一個 orders 可以有 多個 order_item (邏輯正確)
  • 一個 address 可以有 多個 orders (邏輯正確)
  • 一個 product 可以有 多個 order_item (邏輯錯誤,應為1對1關係)
  • 一個 product_category 可以有多個 product (邏輯正確)

下圖是後端的UML分析,紅線部分是經過資料庫與實作比對之後,關係遺漏或是不一致。在系統規模越大時,除錯會日益困難,僅六個表格就有一定的複雜程度。

 

在程式追蹤時,其實很難發現系統的設計或實作缺失,這也是UML的系統分析圖展現出效益的時機,簡而言之,UML有以下幾項優點:

1. UML可與領域專用物件圖相互轉換,例如金融商業上使用的零用金、損益表、資產負債表等。因此易於與非技術人員進行系統開發的溝統及相關知識的視覺化。

2. 與技術人員在協作上,可依此作為共識;在程式碼的審查與開發上,能據此安排任務的優先順序。同時,面對不斷變更的需求,能於製圖後實作。後續若有大型系統開發,更能展現使用UML做系統分析的好處。

3. 與業主而言,使用UML更能在敏捷開發的步調中,適應快速更改的功能與實作。

此專案試圖說明在開發的過程中,使用UML分析對於程式的開發與維護有一定的重要性。
Avatar of the user.
Please login to comment.

Published: Aug 28th 2022
37
7
0

Tools

github
GitHub
git
Git
mysql
MySQL
spring_boot
Spring Boot
typescript
TypeScript
javascript
JavaScript
java
Java
angular
Angular

UML 系統分析

Share