ASPICE 關鍵觀念3: 元件、組件、單元、項目
ASPICE 標準解讀: 附錄
目錄: Automotive SPICE(ASPICE)標準解讀 / 附錄: 關鍵觀念ASPICE關鍵觀念1:插件的概念
ASPICE關鍵觀念2:V-model
ASPICE關鍵觀念3:元件、組件、單元、項目
ASPICE關鍵觀念4:追溯性及一致性
ASPICE關鍵觀念5:同意、總結與溝通
ASPICE關鍵觀念6:評估、驗證標準和確保合規
ASPICE關鍵觀念7:策略與計畫的關係
前言
在系統工程流程(SYS.3)與軟體工程流程(SWE.2及SWE.3)中,都有提到架構設計觀念。其中,常出現的名詞包含:元件(Element)、組件(Components)、單元(Unit)、項目(Item)。本篇內容將針對標準定義與筆者定義名詞進行差異說明。
標準定義與名詞說明
下圖為ASPICE 3.1標準附錄D.3中所提到的元件、組件、軟體單元及項目之間的關係圖。在整個系統工程及軟體工程中,所用到的詞彙將會與這邊定義的內容一致。
元件、組件、單元間的關係
標準原文
An architecture consists of architectural “elements” that can be further decomposed into more fine-grained architectural sub-”elements” across appropriate hierarchical levels. The software “components” are the lowest-level “elements” of the software architecture for which finally the detailed design is defined. A software “component” consists of one or more software “units”.
一份架構由元件(Element)
所組成,並可以在適當的層次結構上將更進一步拆解成更小的 子元件(sub-element)
。軟體組件(Component)
是軟體架構最低層級的元件,一個軟體組件(Component)
包含一個或多個軟體單元(Unit)
。細部架構設計,即是以軟體組件(Component)
為基礎,描繪與定義所包含的軟體單元(Unit)
。
寫在標準內的元件(Element)
、子元件(sub-element)
、組件(Component)
和單元(Unit)
,在實務上較難以被操作。因此,筆者定義了一套層級結構,用以說明並解釋架構設計的拆解過程。其中拆解的過程,共分成兩種情境,一者是系統工程的SYS.3 系統架構設計;二者是軟體工程的SWE.2軟體架構設計及SWE.3軟體細部設計與單元開發。
SYS.3 系統架構設計
下圖,筆者將說明在系統架構設計的拆解過程,於標準的定義與筆者定義的差異。如圖所示,在SYS.3系統架構設計時,一個系統的架構設計可以分成情境A、情境B,共兩種:
情境A:
標準的說法:一份架構由元件所組成;一份系統架構,可以拆解成數個元件(Element),其中元件可以是軟體(SW)、硬體(HW)或機構(ME)。筆者的定義:一份系統架構,可以拆解成數個系統元件(System Elements),其中系統元件可以是軟體(SW)、硬體(HW)或機構(ME)。
情境B:
標準的說法:一份系統架構,可以拆解成數個元件(Element),元件又可以拆解成數個子元件(sub-element),而子元件可以是軟體(SW)、硬體(HW)或機構(ME)。筆者的定義:一份系統架構,可以拆解成數個子系統(Sub-System),其中子系統又可以拆解成數個系統元件(System Elements),其中系統元件可以是軟體(SW)、硬體(HW)或機構(ME)。
SWE.2軟體架構設計及SWE.3軟體細部設計與單元開發
下圖,筆者將說明在軟體工程中的軟體架構設計(SWE.2)及軟體細部設計與單元開發(SWE.3)的拆解過程,於標準的定義與筆者定義的差異。
如圖所示,在SWE.2及SWE.3架構設計時,軟體架構的拆解於標準定義說明如下:
一份架構由元件(Element)所組成,並可以在適當的層次結構上將更進一步拆解成更小的子元件(sub-element);於軟體架構中,組件(Component)是軟體架構最低層級的元件,一個軟體組件(Component) 包含一個或多個軟體單元(Unit);細部架構設計,即是以軟體組件(Component)為基礎,描繪與定義所包含的軟體單元(Unit)。根據上述的定義,可以理解成:
在SWE.2架構設計時,將軟體拆成數個Element,Element再拆分成數個sub-element,sub-element則再拆分成最低層級的Component。
在SWE.3細部設計時,將以Component為基礎,定義及描繪所包含的Unit。特別說明:
sub-element這一層可有可無。
軟體架構的拆解於筆者定義說明如下:
如果根據標準的定義,在實務上將很難以溝通與描述;因此筆者根據實務的做法,將軟體拆成多個Layer,一個Layer內涵蓋多個Component,一個Component內又包含了數個Module;SWE.2基本上拆解到Module為止。在SWE.3細部設計時,則以Module為基礎,定義及描繪所包含的Unit。特別說明:
Layer這一層可有可無,如果所開發的架構並不大,建議忽略Layer這一層。
元件與項目的關係
標準原文
“Items” on the right side of the V-model correspond to “elements” on the left side (e.g. a software “item” can be an object file, a library or an executable). This can be a 1:1 or m:n relationship, e.g. an “item” may represent more than one architectural “element”.
V模型(V-model)右側的項目(Item)
對應於左側的元件(Element)
(例如: 軟體項目
可以是目的碼(Object file)、 程式庫(library)或執行檔(executable)。
項目(Item)
與元件(Element)
的關係可以是一對一關係(1:1)或多對多關係(m:n)關係(例如: 一個項目(Item)
可以代表一個以上的元件(Element)
)
感謝閱讀本文章!
如果你對文章內容有任何問題,請隨時與我聯絡。
if you found any question in the article, please feel free to contact me.
mailto: linchewing@gmail.com