天天看點

[開發筆記usbTOcan]需求擷取與系統需求分析

簡介

一直一以來都是站在實作某個子產品功能的角度去做軟體開發,沒有嘗試過站在系統的層面去做開發。最近正好不忙,覺得是時候以系統工程師的視角,去開發一個完整的系統。接下來的幾篇文章,我會記錄一個USB轉CAN總線系統(簡稱CAN盒子)的開發過程。

這個過程偏向于軟體層面,從需求分析,系統架構設計,軟體架構設計,到軟體單元的實作。整個開發過程不完全遵循"V-Cycle“的開發流程,但會盡可能的靠近。

SYS.1 | 需求擷取

需求擷取過程的目的是在産品和/或服務的整個生命周期中收集、處理和跟蹤演進的利益相關者(stakeholder)需要和需求,進而建立需求基線,作為建構所需工作産品的基礎。

市面上CAN盒子很多,以其中一個CAN盒子參數,作為客戶需求進行開發

  • USB連接配接的擴充卡(全速模式,與USB 1.1,USB 2.0和USB 3.0相容)
  • 高速CAN連接配接(ISO 11898-2)
  • 比特率從5 kbit / s到1 Mbit / s
  • 時間戳分辨率小于50微秒
  • 符合CAN規範2.0A(11位ID)和2.0B(29位ID)
  • 通過USB供電
  • 提供PC端的驅動程式和API
  • 可以通過D-SUB,9針總線連接配接

1 未連接配接   2 CAN-L   3 地線   4 未連接配接   5 未連接配接

6 地線   7 CAN-H   8 未連接配接   9 未連接配接

為了便于後面需求管理和需求追溯,使用Enterprise Architect管理需求

SYS.2 |  系統需求分析

系統需求分析過程的目的是将已确定的利益相關者(stakeholder)需求轉換為一組系統需求,以指導系統的設計。

系統需求分析需要做以下事情:

  • 指定系統需求。使用利益相關者需求和對利益相關者需求的更改來識别系統所需的功能和功能。在系統需求中指定功能和非功能的系統需求。
  • 組織系統需求。在系統需求描述中組織系統需求,比如
  • 對項目相關叢集進行分組
  • 按照項目的邏輯順序排序
  • 根據項目的相關标準進行分類
  • 根據利益相關者的需求劃分優先級
  • 分析系統需求。分析特定的系統需求,包括它們之間的互相依賴性,以確定正确性、技術可行性和可驗證性,并支援風險識别。分析對成本、進度和技術的影響。
  • 制定驗證标準。為每個系統需求制定驗證标準,為需求的驗證提供定性和定量的措施。
  • 建立雙向可追溯性。在利益相關者需求和系統需求之間建立雙向的可追溯性。

在Enterprise Architect中加入系統需求,并把系統需求跟客戶需求一一對應上

建立追溯矩陣

 -----------------------------------------------------------------------------------END

[參考資料]

  • https://www.kuglermaag.com/fileadmin/05_CONTENT_PDF/2-10_automotive-spice_version_3_pocketguide.pdf