MDA 與UML...

192
國立中山大學資訊管理學系 碩士論文 Department of Information Management National Sun Yat-sen University Master Thesis 結合 MDA UML 的車載嵌入式系統塑模方法研究 A Modeling Methodology for Automotive Embedded SystemAn MDA Approach with UML 研究生:林佳俊 Chia-Chun Lin 指導教授:吳仁和 博士 Dr. Jen-Her Wu 中華民國 101 6 June 2012

Transcript of MDA 與UML...

Page 1: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

國立中山大學資訊管理學系

碩士論文

Department of Information Management

National Sun Yat-sen University

Master Thesis

結合 MDA 與 UML 的車載嵌入式系統塑模方法研究

A Modeling Methodology for Automotive Embedded

System:An MDA Approach with UML

研究生:林佳俊

Chia-Chun Lin

指導教授:吳仁和 博士

Dr. Jen-Her Wu

中華民國 101 年 6 月

June 2012

Page 2: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

i

論文審定書論文審定書論文審定書論文審定書

Page 3: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

ii

誌謝誌謝誌謝誌謝

在公司導入 CMMI ML2/ML3 的因緣際會之下,讓我再次拿起了書本也讓我有

機會參與到“那些年我們一起在西灣的日子”學習到許多的管理知識,也認識到

許多老師與同學,獲益良多。然而再次拿起書本並想要在工作與家庭的壓力下,

完成學業,並沒有辦法全靠我一個人來達成的需要靠許多人的幫助才能完成。

在我進入學校讀書的這些年,在身邊一直以實際行動支持我、鼓勵我莫過

於我的老婆和小孩,一起陪我渡過許多難關,也同時承受無法與其它人一樣的生

活模式,也都要感謝摯愛鳳欗、裕智寶貝和玟汝寶貝。另外,想要同時兼顧家庭、

學業與工作,也需要有默默為我付出的家人,感謝依服老爸、牡丹老媽、俊德老

爸與志齊老媽的支持與幫助,讓我能無後顧之憂的學習與工作。

當年因為公司導入 CMMI,為了能讓組織流程更能達成營運目標,於是聽

取輔顧問的建議再次拿起書本進入校園充電,雖然白天要工作晚上要讀書,但每

天的收獲都讓我獲益良多並不會感覺到累。然而能有機會再次進入校園,要感謝

給我建議並推薦我的洪肇奎博士,讓我有機會可以學習與充電。

再次進入校園重新拿起書本,對於一位離開學校已經 15 年以上的社會人而

言,這是一件非常困難的事,而每堂課所要繳交的作業與考試也都稱的上是不可

能的任務,不過還好有 MIS 99 碩專的同學,運用團隊的力量分工合作、協同作

戰通過每次考驗,也感謝碩專同學的努力與支持,讓我們能順利的修足學分可以

畢業。當然,整個碩士的學習過程最重要也最困難的就是論文,更要感謝指導教

授吳仁和博士的指引、鼓勵與支持,我才能夠完成這具有深入研究成果的碩士論

文,也為自己寫下令人難以忘記的求學歷程。

佳俊

謹誌於 國立中山大學 西子灣 2012 年 仲夏

Page 4: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

iii

中文摘要中文摘要中文摘要中文摘要

車載嵌入式系統已是大量運用於汽車本體的控制,也由於系統需要滿足功

能需求、環境需求、時間需求、介面需求、與失效處理等需求,所以需要有一套

適用於車載嵌入式系統的塑模方法論。

因此本研究提出一套結合 MDA 與 UML 的車載嵌入式系統塑模方法論,並

詳細說明每個塑模階段所使用的模式圖和模式圖的塑模方法與步驟,讓系統開發

團隊可以明確的依方法與步驟實作車載嵌入式系統的塑模。方法論亦可以作為系

統開發團隊的溝通標準,在系統塑模過程中將系統模組化提升模組重用率以提升

系統開發效率。

本研究的研究方法論是依據設計科學研究方法進行,在塑模方法論的可用

性評估是以實作停車輔助控制器的需求塑模、PIM塑模與程式碼轉換,以證明此

塑模方法論的可用性。從評估的結果顯示系統開發團隊可以依據方法論的塑模方

法與步驟,表達出符合車載嵌入式系統的需求和系統分析與設計的成果,並轉換

出系統運作平台與程式碼。

關鍵字:車載嵌入式系統, 嵌入式系統, 模式驅動架構, MDA轉換, UML塑模

Page 5: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

iv

Abstract

Automotive embedded systems used much in the main body control system.

Also because the system needs to meet functional requirement, environment

requirement, timing requirement, interface requirement and Failure Mode and Effects

Analysis (FMEA) so it is necessary to have an automotive embedded systems

modeling methodology.

Therefore, this study proposes an automotive embedded systems modeling

methodology which combines MDA and UML, and detailed description of the model

diagram used by each modeling phase and the diagram modeling method and steps.

System development team can be clearly implemented in accordance with the

methods and steps for automotive embedded system modeling. The methodology also

can be used as the communication standard of the system development team. Systems

modeling during system modular can promote module reuse rate in order to enhance

the efficiency of system development.

The methodology of this study is based on design science research methods,

usability evaluation of the modeling methodology is implemented for the modeling of

demand for Parking aid control unit, the PIM modeling and code conversion. With

prove the availability of this modeling methodology. From the results of the

assessment system development team can be based on the methodology of modeling

methods and procedures to express the results in line with the needs and systems

analysis and design of automotive embedded systems and convert the system

operating platform and code.

Keywords: Automotive Embedded Systems, Embedded Systems, Model-Driven

Architecture, MDA Transformations, UML Modeling

Page 6: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

v

目 錄 論文審定書 ........................................................................................................ i

誌謝 .................................................................................................................. ii

中文摘要 ......................................................................................................... iii

Abstract ............................................................................................................ iv

第一章 緒論 ............................................................................................ 1

第一節 研究背景與動機 ................................................................... 1

第二節 研究目的與範圍 ................................................................... 3

第二章 文獻探討 ..................................................................................... 5

第一節 車載嵌入式系統 ................................................................... 5

第二節 統一塑模語言 ....................................................................... 7

一、 使用個案圖 ........................................................................ 11

二、 活動圖 ............................................................................... 12

三、 部署圖 ............................................................................... 14

四、 循序圖 ............................................................................... 15

五、 時序圖 ............................................................................... 18

六、 狀態圖 ............................................................................... 20

七、 類別圖 ............................................................................... 22

第三節 模式驅動結構開發階段 ...................................................... 23

第三章 研究方法 ................................................................................... 27

第一節 設計科學研究方法論 .......................................................... 27

第二節 研究方法與步驟 ................................................................. 28

第四章 結合 MDA 與 UML 的車載嵌入式系統塑模方法論 ..................... 33

第一節 需求塑模 ............................................................................ 36

一、 需求擷取的方法與步驟 ...................................................... 37

二、 使用個案圖塑模方法與步驟 ............................................... 39

三、 活動圖塑模方法與步驟 ...................................................... 45

四、 部署圖塑模方法與步驟 ...................................................... 48

第二節 PIM塑模 ............................................................................ 52

一、 循序圖塑模方法與步驟 ...................................................... 53

二、 時序圖塑模方法與步驟 ...................................................... 57

三、 狀態圖塑模方法與步驟 ...................................................... 60

四、 類別圖塑模方法與步驟 ...................................................... 63

第三節 程式碼轉換 ........................................................................ 69

一、 平台選定方法與步驟 .......................................................... 70

二、 Code轉換方法與步驟 ........................................................ 73

第五章 展示與評估 ............................................................................... 77

Page 7: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

vi

第一節 可用性測試案例─C 電子公司 ............................................ 77

一、 案例公司簡介 ..................................................................... 77

二、 案例系統架構與範圍 .......................................................... 78

第二節 可用性測試實作─停車輔助控制器塑模 ............................. 81

一、 需求塑模 ............................................................................ 81

二、 PIM塑模 ............................................................................ 99

三、 程式碼轉換 ...................................................................... 143

第三節 可用性測試展示─邀請 C 公司工程師參與 ....................... 168

第四節 觀察與評估 ...................................................................... 171

第六章 結論 ........................................................................................ 175

第一節 研究成果 .......................................................................... 175

第二節 研究貢獻 .......................................................................... 176

第三節 研究限制 .......................................................................... 177

第四節 未來研究方向 ................................................................... 177

參考文獻 ...................................................................................................... 179

Page 8: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

vii

圖 次

圖 2- 1 簡易型停車輔助控制器 ......................................................................... 6

圖 2- 2 活動與轉換之關係表達 ....................................................................... 12

圖 2- 3 車載嵌入式系統部署圖 ....................................................................... 14

圖 2- 4 物件與物件間互動方式表達................................................................ 17

圖 2- 5 狀態與轉換的表達 .............................................................................. 20

圖 2- 6 MDA系統開發階段 ............................................................................. 24

圖 2- 7 車載嵌入式系統 PIM轉 PSM轉 Code ............................................... 26

圖 3- 1 研究方法流程圖 ................................................................................. 28

圖 4- 1車載嵌入式系統開發階段 .................................................................... 34

圖 4- 2 結合 MDA 與 UML 的車載嵌入式系統塑模流程 .................................. 35

圖 4- 3 需求塑模階段 ..................................................................................... 36

圖 4- 4 需求擷取步驟 ..................................................................................... 37

圖 4- 5 使用個案圖塑模步驟 .......................................................................... 40

圖 4- 6 活動圖塑模步驟 ................................................................................. 46

圖 4- 7 繪製的活動圖 ..................................................................................... 48

圖 4- 8 部署圖塑模步驟 ................................................................................. 49

圖 4- 9 系統部署圖......................................................................................... 51

圖 4- 10 調整後的系統部署圖 ........................................................................ 51

圖 4- 11 PIM塑模階段 .................................................................................... 52

圖 4- 12 循序圖塑模步驟 ............................................................................... 54

圖 4- 13 時序圖塑模步驟 ............................................................................... 57

圖 4- 14 狀態圖塑模步驟 ............................................................................... 61

圖 4- 15 類別圖塑模步驟 ............................................................................... 64

圖 4- 16 程式碼轉換階段 ............................................................................... 69

Page 9: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

viii

圖 4- 17 平台選定步驟 ................................................................................... 70

圖 4- 18 使用個案的操作描述 ........................................................................ 71

圖 4- 19 使用個案的時序圖 ............................................................................ 71

圖 4- 20 Code轉換步驟 ................................................................................. 73

圖 4- 21 程式碼轉換對應方式 ........................................................................ 75

圖 5- 1 停車輔助控制器配置圖 ....................................................................... 79

圖 5- 2停車輔助控制器系統方塊圖 ................................................................ 80

圖 5- 3 停車輔助控制器系統功能圖................................................................ 82

圖 5- 4 停車輔助控制器使用個案圖................................................................ 92

圖 5- 5 系統開機與初始化活動圖 ................................................................... 93

圖 5- 6 停車輔助控制器系統部署圖................................................................ 99

圖 5- 7 系統開機與初始化循序圖 ................................................................. 102

圖 5- 8 系統開機與初始化時序圖 ................................................................. 108

圖 5- 9 系統開機與初始化狀態圖 ................................................................. 115

圖 5- 10 使用者狀態圖 ................................................................................. 115

圖 5- 11 電源偵測狀態圖 .............................................................................. 116

圖 5- 12 初始化狀態圖 ................................................................................. 116

圖 5- 13 系統開機狀態圖 ............................................................................. 117

圖 5- 14 Real Time Clock狀態圖 .................................................................. 117

圖 5- 15 資料系統狀態圖 ............................................................................. 118

圖 5- 16 系統開機與初始化類別圖 ............................................................... 120

Page 10: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

ix

表 次

表 2- 1 UML 模式圖匯整表 ............................................................................... 8

表 2- 2 使用個案圖元件符號 .......................................................................... 11

表 2- 3 活動圖元件符號 ................................................................................. 13

表 2- 4 部署圖元件符號 ................................................................................. 15

表 2- 5 循序圖元件符號 ................................................................................. 16

表 2- 6 時序圖元件符號 ................................................................................. 19

表 2- 7 狀態圖元件符號 ................................................................................. 21

表 2- 8 類別圖元件符號 ................................................................................. 23

表 4- 1 需求描述一覽表 ................................................................................. 38

表 4- 2 資料詞彙一覽表 ................................................................................. 39

表 4- 3 概念性綱目一覽表 .............................................................................. 41

表 4- 4 使用個案一覽表 ................................................................................. 41

表 4- 5 內聚力原則......................................................................................... 42

表 4- 6 使用個案描述表 ................................................................................. 44

表 4- 7 活動圖的實體、活動與轉換匯總表 ..................................................... 47

表 4- 8 系統實體、介面與連結匯整表 ............................................................ 50

表 4- 9 使用個案物件匯總表 .......................................................................... 55

表 4- 10 循序圖之訊息與操作描述 ................................................................. 56

表 4- 11 時序圖的物件、狀態與訊息匯總表 ................................................... 58

表 4- 12 互動時序描述表 ............................................................................... 60

表 4- 13 狀態圖的狀態匯總表 ........................................................................ 62

表 4- 14 使用個案類別匯總表 ........................................................................ 65

表 4- 15 類別屬性描述表 ............................................................................... 67

表 4- 16 類別操作與關係描述表 ..................................................................... 68

Page 11: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

x

表 4- 17 系統元件匯總表 ............................................................................... 72

表 4- 18 平台選用評定表 ............................................................................... 73

表 4- 19 資料型態對應表 ............................................................................... 74

表 4- 20 類別屬性轉換表 ............................................................................... 74

表 5- 1 系統時間需求 ..................................................................................... 85

表 5- 2 系統介面需求 ..................................................................................... 85

表 5- 3 系統可能失效狀況與處理方式 ............................................................ 86

表 5- 4 ECU 的需求描述一覽表 ...................................................................... 86

表 5- 5 ECU資料詞彙一覽表 .......................................................................... 87

表 5- 6 ECU概念性綱目一覽表 ...................................................................... 88

表 5- 7 ECU使用個案一覽表 .......................................................................... 89

表 5- 8 系統開機與初始化使用個案描述表 ..................................................... 90

表 5- 9 使用個案的實體、活動與轉換匯總表 ................................................. 93

表 5- 10 活動圖與使用個案描述對照.............................................................. 94

表 5- 11 精煉後的活動圖與使用個案描述對照 ............................................... 96

表 5- 12 ECU 實體、介面與連結匯整表 ......................................................... 98

表 5- 13 系統開機與初始化使用個案物件匯總表 .......................................... 100

表 5- 14 系統開機與初始化的訊息與操作描述 ............................................. 103

表 5- 15 系統開機與初始化時序圖的物件、狀態與訊息匯總表 .................... 106

表 5- 16 系統開機與初始化的時序描述 ........................................................ 109

表 5- 17 系統開機與初始化狀態圖的狀態匯總表 .......................................... 113

表 5- 18 系統開機與初始化類別匯總表 ........................................................ 119

表 5- 19 電源偵測模組類別屬性描述表 ........................................................ 121

表 5- 20 初始化類別屬性描述表 ................................................................... 121

表 5- 21 系統開機類別屬性描述表 ............................................................... 121

表 5- 22 Real Time Clock類別屬性描述表 ................................................... 121

Page 12: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

xi

表 5- 23 系統資料模組屬性描述表 ............................................................... 121

表 5- 24 電源偵測模組類別操作與關係描述表 ............................................. 122

表 5- 25 初始化模組類別操作與關係描述表 ................................................. 123

表 5- 26 系統開機模組類別操作與關係描述表 ............................................. 124

表 5- 27 Real Time Clock類別操作與關係描述表 ......................................... 128

表 5- 28 系統資料模組類別操作與關係描述表 ............................................. 129

表 5- 29 類別操作描述與循序圖對應關係 .................................................... 132

表 5- 30 類別操作描述與時序圖對應關係 .................................................... 136

表 5- 31 類別操作描述與狀態圖對應關係 .................................................... 140

表 5- 32 停車輔助控制器系統元件匯整表 .................................................... 144

表 5- 33 停車輔助控制器平台選用評定表 .................................................... 145

表 5- 34 停車輔助控制器資料型態對應表 .................................................... 146

表 5- 35 電源偵測模組類別屬性轉換表 ........................................................ 146

表 5- 36 初始化模組類別屬性轉換表............................................................ 146

表 5- 37 系統開機模組類別屬性轉換表 ........................................................ 147

表 5- 38 Real Time Clock類別屬性轉換表 ................................................... 147

表 5- 39 系統資料模組類別屬性轉換表 ........................................................ 147

表 5- 40 電源偵測模組程式碼轉換對照 ........................................................ 148

表 5- 41 初始化模組程式碼轉換對照............................................................ 151

表 5- 42 系統開機模組程式碼轉換對照 ........................................................ 154

表 5- 43 Real Time Clock 程式碼轉換對照 ................................................... 161

表 5- 44 系統資料模組程式碼轉換對照 ........................................................ 163

表 5- 45 參與測試人員 ................................................................................. 169

表 5- 46 勾選次數與平均數列表 ................................................................... 172

Page 13: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

1

第一章第一章第一章第一章 緒緒緒緒論論論論

第一節第一節第一節第一節 研究研究研究研究背景背景背景背景與動機與動機與動機與動機

汽車對現在的人來說,是一項不可或缺的交通工具,汽車提供駕駛人與乘

客安全與舒適之外還提供了便利。隨著資訊科技與半導體科技的進步,微控制器

(Micro-controller Unit, MCU)的快速發展,使微控器廣泛的運用在車體控制與

車體安全的嵌入式系統中,如:車載防盜器(Car Alarm)、停車輔助系統(Parking

Aid System, PAS)、車身控制器(Body Control Module, BCM)、電源分配器(Power

deployment Unit, PDU)與防鎖死剎車系統(Antilock Brake System, ABS)等。

由於汽車是交通工具,在汽車發動引擎行駛的過程中,汽車並無法持續穩

定的提供 12伏特(Voltage, V)電源給安裝於車體的嵌入式系統,另外汽車上的

開關在操作的過程中並無法提供穩定信號,汽車在行駛的無法限制汽車不能接近

干擾信號,因此汽車所能提供給嵌入式系統運行的環境特點如下:

1. 汽車具有不穩定的汽車電源,當汽車上的發電機運作時,汽車電

源將因發電機運作而產生變動電壓。

2. 汽車具有不穩定的機械式開關,當汽車上的機械式開關如:車門

開關、手剎車、排檔桿運作時,將因為機械彈片的彈性產生不穩

定的狀態。

3. 汽車具有無法限制的外來環境雜訊干擾,如:閃電、靜電、高於

20KHz的機械噪音,都可能導致系統產生錯誤行為。

4. 汽車在行駛時車上的嵌入系統必需即時反應,才能達到保護使用

者的要求,如:停車輔助系統需即時偵測出障礙物並警告使用者。

因此運用在車體控制與防護的嵌入式系統,除了依據特定的功能性需求來

進行開發,並須達到即時性(Real-time)與穩健性(Robustness)等非功能性需

Page 14: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

2

求,因此在進行車載嵌入式系統的軟體設計時,必須同時考慮到功能需求與非功

能需求來進行開發。

車載嵌入式系統(Automotive Embedded System)在開發時,除了系統功能

外還須考量到系統所要符合的即時性與穩健性,客戶也嚴謹的審查嵌入式系統的

開發成果,因此傳統完全依賴工程師的產品開發經驗,獨立進行車載嵌入式系統

設計的開發方式,已經無法符合客戶的需求,而且傳統使用測試為基礎的除錯技

術非常花費時間卻不能保證整個程式經過測試流程以後就一定不會出錯(高新傑

等人,2003),如此的測試方式更不能滿足客戶對車載嵌入式系統的安全性、即

時性與穩健性的要求。另一方面,系統在開發初期若無法清楚描述客戶需求,由

工程師直接進行程式設計,工程師在開發過程中無法確保設計是正確的,只能等

到系統完成後再進行測試與修正,若在此時發現程式設計錯誤,這需要花費龐大

的時間與成本才能將錯誤修正,所以從開發初期的客戶需求擷取與描述,到系統

需求分析與設計,都需要有一套可以重覆使用的步驟與方法,讓系統開發能有更

好的效率(Efficiency)。

軟體開發是一場複雜的溝通遊戲,要從「人腦」到「電腦」、從「問題」到

「答案」、從「個人」到「團隊」(鄭炳強,2007)都需要進行溝通,而畫圖就是

很好的溝通方式之一,因此使用目前被廣泛運用在系統分析與設計的統一塑模語

言(Unified Modeling Language, UML)作為系統開發的標準方法,使用 UML 的模

式圖進行需求的表達與系統的表達,讓系統開發團隊的成員,可以透過模式圖清

楚瞭系統的動態行為與靜態結構。在系統開發過程中運用物件導向的觀念,來提

升嵌入式系統的開發速度,可重複使用性及除錯能力(高新傑等人,2003)。

目前已有學者提出運用 UML 進行嵌入式系統開發的相關研究,並說明在需

求分析、系統分析、系統設計等三個階段的運用方法與步驟,並詳加說明各階段

運用 UML 模式圖的使用方法與塑模步驟、模式圖之間的關係、轉換方法。研究著

重於家電控制、手持行動裝置、電腦系統控制、與汽車輔助控制等,但在汽車輔

助控制的相關研究,著重以時序圖說明嵌入式系統的即時性,並未說明如何在需

Page 15: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

3

求分析階段即開始著重功能性、即時性、與穩健性需求,如何在系統分析與設計

階段實現上述的系統要求,這些都是在目前相關的研究中需要再加以改善的項

目,因此需要研究出一套適合運用於車載嵌入式系統的塑模方法論,提供系統開

發團隊作為溝通標準提供系統開發效率。

第二節第二節第二節第二節 研究研究研究研究目的與範圍目的與範圍目的與範圍目的與範圍

本研究的目的是建立一套以物件導向為系統分析基礎技術,再給合模式驅

動結構(Model Driven Architecture, MDA)的塑模階段與 UML 的模式圖,整合

車載嵌入式系統塑模方法論。讓系統開發團隊能依據此塑模方法論進行車載嵌

入式系統塑模與團隊的溝通標準,使團隊成員從需求分析階段就開始考量功能

性、即時性、與穩健性等需求,並以 UML 模式圖的視覺化圖形進行表達,使團

隊成員在進行系統程式開發時能完整的包含需求分析與系統分析與設計的成

果,減少需求在實現過程中可能產生的錯誤,提升系統開發效率。

依據 MDA進行系統分析與設計時,其系統開發過程包含需求塑模、平台獨

立模式(Pltform Independent Model, PIM)塑模、平台特定模式(Platform

Specification Model, PSM)塑模與自動轉程式碼等階段,但由於目前對嵌入式

軟體開發在系統需求塑模語言上的使用及自動轉換應用程式產生的方法論研究

仍然尚未成熟(劉若嬋,2010),目前並無合適的自動轉程式碼工具可以實作自

動轉程碼階段,故本研究的範圍不包含自動轉程式碼的部份,而是以人工轉換

的方式,進行程式碼轉換的活動,並詳細說明轉換方法與步驟。

目前 UML 模式圖已發展到 2.4.1 版,模式圖也從 UML 2.0的 14 種模式圖

擴充到 17 種模式圖。進行車載嵌入式系統開發時亦依據 MDA的階段,運用 UML

UML 模式圖進行塑模表達,因此故研究範圍並未包含 UML 2.4.1 版的 17 種模式

圖,而僅限於常被應用在商業系統塑模的 9 種模式圖,並詳細說明塑模的方法

與步驟。

Page 16: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

4

車載嵌入式系統的組成包括軟體與硬體,在進行系統分析與設計時必需同

時對軟體與硬體進行分析與設計,本研究的範圍著重在系統的功能性、即時性、

與穩健性等需求,並不包含硬體的需求表達及分析與設計,在軟體部分亦不包

含使用者介面設計。此外,車載嵌入式系統並未使用到資料庫系統,故本研究

的範圍未涉及資料庫的使用,亦不包含資料庫的表達與塑模方法。

Page 17: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

5

第二章第二章第二章第二章 文獻探討文獻探討文獻探討文獻探討

第一節第一節第一節第一節 車載嵌入式車載嵌入式車載嵌入式車載嵌入式系統系統系統系統

資訊科技的進步與 MCU 的發展,使嵌入式系統隨處可見,如數位相機、

影音撥放器、電視機、電冰箱、洗衣機、機車與汽車等生活用品。根據電機工

程師協會(Institution of Engineering and Technology, IET )對嵌入式系統的定

義,嵌入式系統是用於控制、監視或輔助設備,用於輔助工廠運作或交通工具

的運行。嵌入式系統通常為達成某一特定目的而設計,因此在結構與功能沒有

複雜的設計,也因微控制器的核心包含中央處理器、輸出/輸入埠、計時器、中

斷控制器、與電源管理單元等五大部份(黃文凱,2002),所以嵌入式系統主要

是以微控制器作為處理核心,再搭配週邊介面與其它裝置進行偵測、控制或與

其它嵌入式系統進行通訊。

汽車是提供一個安全與效率的交通工具(Nicolas, 2008),因此交通工具有

關駕駛者與乘客的安全以及環境污染,世界各國也開始建立與汽車相關的法令

規範,如車輛型式安全法規、汽油車污染法規與車輛能源法規。汽車製造商為

符合國家法規,開始發展汽車專用的嵌入式系統稱為車載嵌入式系統,並應用

於汽車的動力傳送系統(Power Train System)、轉向系統(Steering System)、

剎車系統(Braking Systems)的控制或行車安全輔助系統等。

車載嵌入式系統主要應用於汽車動力傳送系統、轉向系統、剎車系統、或

行車安全輔助系統的信號處理與控制,而這些系統運用感測器輸入信號建立受

控制的流程,然後運算必要的命令再輸出以控制環境(DeAntoni,2005),所以

車載嵌入式系統在和使用者互動的過程中都是透過安裝在汽車上的開關或感測

器,並不會直接接觸到使用者,所以車載嵌入式系統並不會有著像資訊系統一

樣的使用者介面(User Interface, UI),而是以簡易的燈號或是聲響來達成警告使

Page 18: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

6

用者的目的,因此車載嵌入式系統的塑模過程亦不包含使用者介面塑模。

以下將用行車安全輔助系統中的停車輔助控制器為例進行說明,如圖 2-1

所示,此控制器主要是由微控制器、電源模組、傳感器驅動模組、蜂鳴器驅動

模組、與顯示器驅動模組等模組組成。控制器的運作方式為使用者將汽車上的

排檔桿推入倒車檔後,控制器即開始從右後方與左後方的傳感器發出超音波偵

測障礙物,經由微控制器處理傳感器所回傳的障礙物信號,再驅動蜂鳴器與顯

示器發出警告音與燈號,提醒駕駛人注意障礙物避免發生踫撞,因此車載嵌入

式系統具有系統介面並不具有 UI介面。

微控制器

傳感器驅

動模組

右後方的傳感器

左後方的傳感器

蜂鳴器

顯示器

蜂鳴器驅

動模組

顯示器驅

動模組

電源模組

汽車電源

圖 2- 1 簡易型停車輔助控制器

停車輔助控制器在運作時需要即時的將偵測到的障礙物狀況,即時的輸出

警告音及燈號提醒駕駛人,而控制器在偵測障礙物時經常會受到無法控制的外

來干擾信號,此時控制器不能因此而產生錯誤的輸出而影響駕駛人的判斷,因

此車載嵌入式系統除了著重功能性之外,亦注重系統的即時性與穩健性。而上

述所謂即時性代表的意義是「即時反應」,意即系統必須具有立即反應且不能讓

出資源的特性(蔡淑茵,2010);穩健性是指系統在執行運算過程中對外部輸入

錯誤資訊的處理能力(Surhone et al.,2011)。

由於國家法規車輛安全要求逐漸增加,使得車載嵌入式系統也日趨複雜,

Page 19: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

7

也提高了掌握其發展的困難度,而產品的品質明顯取決於產品開發的品質,設

計流程是建立在成員之間強健的合作基礎之上(Nicolas, 2008)。傳統的嵌入式

系統開發方法,是運用工程師本身所具有的知識與經驗,所修改或設計而成的

新產品,而這樣的開發方式,在成員之間並沒有辦法互相溝通,亦無法跟客戶

共同審查分析與設計的成果,確保系統開發的效率。

為了克服上述的困難,我們需要一套具有視覺化、文件化與規格化的開發

方法,有明確的開發步驟與塑模方式,讓成員在開發過程可以透過圖形進行溝

通,並明確的制定出設計規格,產出規格文件後與客戶一同審查分析與設計的

成果,提升客戶的信賴程度。學者 Douglass(1999)指出,UML適用於開發即

時嵌入式系統(Real Time Embedded System),因此系統開發團隊能使用 UML

並結合 MDA 在各開發階段進行溝通,確保設計的正確並在設計過程中作為系

統驗證的依據,以確保設計能滿足功能性、即時性、與穩健性需求。

第二節第二節第二節第二節 統一塑模語言統一塑模語言統一塑模語言統一塑模語言

統一塑模語言是一種視覺化(Visualizing)、文件化(Documenting)及規格化

(Specifying)的軟體塑模語言(吳仁和,2012),由 Rational 公司整合了 Grady

Booch、Ivar Jacoboson 和 James Rumbaugh 的塑模方法,於 1997 年提交至

OMG (Object Management Group)審查,於同年 11 正式核准 UML1.1 為塑模

標準語言。UML歷經多次版本的演進與擴充,於 2011 年 8月已經公佈到 UML

2.4.1版,也大幅改善了 UML 的塑模能力。

UML從 2.2版的 14種模式圖擴充到 2.4.1版的 17種模式圖,依圖型可區

分為用來描述動態行為的行為圖(Behavior Diagram),與描述靜態結構的結構

圖(Structure Diagram)兩大類別。第一大類是行為圖,所包含的模式圖有使用

個案圖(Use Case Diagram)、活動圖(Activity Diagram)、循序圖(Sequence

Diagram)、溝通圖(Communication Diagram)、狀態圖(State Machine

Page 20: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

8

Diagram)、時序圖(TimeDiagram)與互動概觀圖(Interaction Overview Diagram)

等,第二大類是結構圖,所包含的模式圖有類別圖(Class Diagram)、物件圖

(Object Diagram)、元件圖(Component Diagram)、展現圖(Manifestation)、部

署圖(Deployment Diagram)、網路結構圖(Network Architecture Diagram) 、

複合結構圖(Composite Diagram)、套件圖(Package Diagram)、模型圖(Model

Diagram)與輪廓圖(Profile Diagram)等,其中使用個案圖、活動圖、循序圖、

溝通圖、狀態圖、物件圖、類別圖、部署圖與套件圖等 9 個模式圖常被應用於

商業系統的分析與設計,而車載嵌入式系統使用使用個案圖、活動圖、部署圖、

循序圖、時序圖、狀態圖、與類別圖等 7 個模式圖進行系統分析與設計。UML

各種模式圖的說明如表 2-1 所示:

表 2- 1 UML 模式圖匯整表

類別 名稱 內容說明

行為圖

使用個案圖

用於表達使用者需求的工具,從使用者的觀點描述系統所提

供的功能與系統內部作業的定義。從使用個案圖的外部觀

點,可描述使用個案所提供的功能;從內部觀點,可描述使

用個案的運作方式。使用個案圖的組成元件包含:行為者、

使用個案、行為者與個案間的關係、個案與個案間的關係。

活動圖

用於描述使用個案或系統更細部的操作與作業流程,亦用於

表達條件式處理、平行處理、或跨使用個案之行為。活動圖

的組成元件包含:開始活動、結束活動、一般活動、條件或

註記、活動物件、一般轉換、決策、合併、分岔、與結合。

循序圖

用於描述使用個案中,物件與物件間的互動,以發先時間為

先後順序,描述物件間所傳遞的訊息與處理程序。循序圖的

組成元件包含:生命線、訊息線、訊息與操作、控制焦點、

與框架。

Page 21: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

9

類別 名稱 內容說明

行為圖

溝通圖

用於描述使用個案中,物件與物件間的細部互動行為,強調

物件間所傳遞的訊息與處理程序。溝通圖的組成元件包含:

生命線、與訊息。

狀態圖

用於描述使用個案或物件的狀態、轉換條件、事件與動作,

並強調使用個案或物件的狀態與轉換關係。狀態圖的組成元

件包含:開始狀態、一般狀態、歷史狀態、同步組合狀態、

循序組合狀態、轉換、狀能深度、結束狀態、決策、進入點、

離開點、終止節點、與轉變。

時序圖

用於表達使用個案中物件與物件間互動的時間順序、持續時

間與傳遞的訊息。時序圖的組成元件包含:生命線、訊息、

狀態與時間軸、時間尺規、時間限制、與通用值生命線。

互動概觀圖

結合活動圖、循序圖、時序圖、與溝通圖用於表達使用各案

內物件間的整體控制流程。互動概觀圖的組成元件包含:框

架、互動、與互動使用。

結構圖

類別圖

用於表達靜態的系統內部結構,描述類別的屬性、操作、與

連結限制,並強制類別的類型(Type)與類別間的關係。類別

圖的組成元件包含:類別、類別與類別間的關係。

物件圖

用於描述系統在單一時間點靜態內部結構,描述物件的屬性

與物件之間的關係。物件圖的組成元件包含:物件與連結線。

元件圖

用於表達系統的組織架構、組成元件、配置結構、及元件與

元件間的關係。元件圖的組成元件包含:元件、介面、連結

埠與關係。

Page 22: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

10

類別 名稱 內容說明

結構圖

展現圖

用於表達產出物(Artifact)的內部結構與展現元件執行產出

物的的狀況。展現圖的組成元包含:產出物、展現(Main-

fest)、元件

部署圖

用於表達系統實體元件(軟體/硬體)的拓撲架構、組成元件、

配置結構、及元件間的介面與關係。部署圖的組成元件包

含:產出、節點、與連結。

網路結構圖 用於表達網際網路與私有網路的兩個防火牆的模糊區間連

結架構。網路結構圖的組成元件包含:裝置、通信路徑。

複合結構圖

用於描述系統元件在執行時的類別內部結構、使用方式與合

作關係。複合結構圖的組成元件包含:成員、連結器、連結

埠、合作、與角色繫結。

套件圖

用於表達系統的套件或元件的組成、結構、與相依關係。套

件圖的組成元件包含:套件、相依關係、套件匯入、與套件

合併。

模型圖 用於表達系統的邏輯的多層次抽象結構。模型圖的組成元件

包含:模型、套件、相依關係

輪廓圖

用於描述超模型(Meta-mode)的超類別(Meta-class)與擴展

機制,使 UML 可適用於不同平台或領域。輪廓圖的組成元

件包含:輪廓、超類別、輪廓與輪廓的關係。

運用 UML圖形來表達系統之動態行為與靜態結構,尤其是針對嵌入式軟

體系統之時間限制、訊號傳遞、狀態轉移特性表達,使產出能夠作為系統開發

團隊間溝通的依據(蔡淑茵,2010),達到團隊溝通的目的,也可以運用模式圖

與客戶進行需求確認(Requirement Validation),客戶可以清楚瞭解需求被實現

的過程與方法,也能瞭解系統的設計是否已經滿足所有需求與限制。

Page 23: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

11

對嵌入式系統而言以循序圖、狀態圖與時序圖表達嵌入式系統之動態行

為,在靜態結構中大多採用類別圖(蔡淑茵,2010),以下將對車載嵌入式系統

所需運用的使用個案圖、活動圖、部署圖、循序圖、時序圖、狀態圖、與類別

圖等,說明模式圖的幫助及模式圖所包含的元件與符號,依序說明如下:

一、 使用個案圖

(1) 使用個案使用個案使用個案使用個案圖的幫助圖的幫助圖的幫助圖的幫助::::

使用個案圖是從使用者觀點,描述系統所提供的功能和定義系統內部作業

程序,從外部觀點來看,可以幫助瞭解使用個案是做什麼用的,行為者與使用

個案的互動狀況,與使用個案間的關聯;從內部觀點來看,可幫助瞭解使用個

案的細部運作行為與結構。

(2) 使用個案圖所包含的元件與符號使用個案圖所包含的元件與符號使用個案圖所包含的元件與符號使用個案圖所包含的元件與符號::::

使用個案圖中的人形圖示,常用以表示行為者,而使用個案本身,則是以

橢圓形表示,行為者與使用個案間的互動是以實線表示,使用個案與使用個案

間的關係則是用帶有箭頭的實線或需線表示。

使用個案圖所包含的符號有行為者、使用個案、行為者與使用個案間之互

動、使用個案間之 Include 與 Extend 關係、使用個案間之 Generalization 關

係、與 Extend 關係之使用情況說明等,詳細圖示如表 2-2 所示;

表 2- 2 使用個案圖元件符號

使用個案圖元件 符號

行為者

使用個案

Page 24: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

12

使用個案圖元件 符號

行為者與使用個案間

之互動

使用個案間之 Include

與 Extend 關係

使用個案間之

Generalization 關係

Extend 關係之使用情

況說明

Condition: {customer selected HELP}

extension point: Selection

<<extend>>

二、 活動圖

(1) 活動圖的幫助活動圖的幫助活動圖的幫助活動圖的幫助::::

活動圖用於表達行為者與使用個案的順序性或同步的操作與行為,可補足

使用個案圖所無法描述具有順序性的細部操作行為,或同步操作行為,例如條

件處理、平行處理、或跨使用個案處理之行為等。

(2) 活動圖所包含的元件與符號活動圖所包含的元件與符號活動圖所包含的元件與符號活動圖所包含的元件與符號::::

活動圖的主要是由活動與轉換所構成,兩者的連結與關係表達方式如圖二

-2 所示。活動圖中活動的部份包含開始、一般活動、結束流程、與結束活動;

轉換的部份包含一般轉換、轉換決策、轉換合併、轉換分岔、與轉換結合等,

如表二-3 所示。

活動

A

活動

B

轉換

[Guard]

圖 2- 2 活動與轉換之關係表達

Page 25: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

13

活動圖中黑色實心圓表示開始,活動本身則是以圓角四方形表示,活動與

活動間的連結以帶箭頭的實線表示,活動圖中所有與決策相關的表達方式,是

以轉換決策與轉換合併來進行表達,若需表達平行處理則是以轉換分岔與轉換

結合來進行表達。活動圖中的條件或註記(例如限制、值、決策選項、輸出與輸

入等)是用摺角四方形表示,用以表示狀態、使用者介面、資料儲存或其他物件

則是用長方形表示。

表 2- 3 活動圖元件符號

活動圖元件 符號

開始

結束活動

結束流程

一般活動

條件或註記

活動物件

一般轉換(條件)

轉換決策

Page 26: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

14

活動圖元件 符號

轉換合併

轉換分岔

轉換結合

責任區

Partition

Name

三、 部署圖

(1) 部署圖部署圖部署圖部署圖的幫助的幫助的幫助的幫助::::

部署圖用於表達系統軟硬體元件的配置與關聯,著重於系統內部與外部連

接的狀態與所使用的介面,在車載嵌入式系統中每個與系統外部連結的硬體元

件都有著相對應的軟體元件,部署圖可以表達出軟硬體元件間的實體關係,如

圖 2-3 所示。

汽車

電源

蜂鳴

電源

迴路

輸出

迴路

電源 信號

輸出

模組

電源

模組

系統

程式

車載嵌入式系統

圖 2- 3 車載嵌入式系統部署圖

Page 27: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

15

(2) 部署部署部署部署圖所包含的元件與符號圖所包含的元件與符號圖所包含的元件與符號圖所包含的元件與符號::::

部署圖的主要元件包含:產出、節點、與連結等,如表 2-4 所示,而部署

圖的連結方式如圖 2-3 所示。在圖 2-3表達車載嵌入式系統結構,此系統透過

電源迴路連結系統外部的汽車電源是屬於實體連結所以使用關聯關係進行連

結,而在系統內部電源迴路連結著電源模組,是屬於軟硬體整合則使用相依關

係進行連結。

表 2- 4 部署圖元件符號

部署圖元件 符號

產出 << artifact >>

Artifact Name

節點 << Node Name >>

連結 (相依關係)

連結 (關聯關係)

<<connection type>>

連結 (部署關係) <<deploy>>

四、 循序圖

(1) 循序圖的幫助循序圖的幫助循序圖的幫助循序圖的幫助::::

循序圖用以表達每一個使用個案中,所有物件間的互動行為與傳遞的訊

息,以發生的時間順序由上而下的方式排列,訊息由左而右的方式傳遞,可以

幫助瞭解使用者與介面互動的行為,及應用程式與核心物件互動的行為,與其

所傳遞的訊息。

Page 28: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

16

循序圖除了可以表達互動行為外,還可以使用框架來表達條件判斷、平行

處理、與迴圈等組合區段(Conbined Fragment)的邏輯。在循序圖中無法表達

與時間的關係,可運用時序圖補足;無法表達與狀態的關係,可以運用狀態機

圖來進行補充。

(2) 循序圖所包含的元件與符號循序圖所包含的元件與符號循序圖所包含的元件與符號循序圖所包含的元件與符號::::

構成循序圖的主要元件包含生命線、訊息線、訊息與操作、控制焦點、與

框架等,如表 2-5 所示。循序圖中的生命線是將參與互動的物件以矩形的方示

表示,在矩形的下方加上垂直虛線組合而成,在生命線中可以運用到的物件,

可區分為介面物件、控制物件、與實體物件。訊息線是以帶箭頭的實線或虛線

用以表達物件與物件間所傳遞的訊息,可區分為呼叫訊息與回傳訊息。訊息與

操作是指在訊息線上方標示文字,用以明確顯示物件間傳遞訊息名稱。控制焦

點是以細長的矩形用以表達物件執行特定動作的時段,也表示該物件在特定時

段獲得了控制權。框架是以長方形且在左上角搭配一個有折角的小長方形為表

達符號,用以表達循序圖中某一區段範圍內,一連串相關訊息與操作之控制流

程、輸入與輸出等,又稱為組合區段(Combined Fragment)。

表 2- 5 循序圖元件符號

循序圖元件 符號

生命線

Object: Class

訊息線

(傳遞非同步訊息)

訊息線

(傳遞同步訊息)

訊息線

(回傳)

Page 29: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

17

循序圖元件 符號

訊息與操作 顯示警告聲數()

控制焦點

框架

根據 OMG 在 2008 年 11月所公佈的 UML2.4 模式圖,共定義了十二種

框架類型多選一(Alternative)框架、自由選擇(Option)框架、迴圈(Loop)框架、

終止(Break)框架、平行(Parallel)框架、參考(Referencing)框架、緊密順序(Stict

Sequencing)框架、鬆散順序(Weak Sequencing)框架、臨界區域(Critical

Region)框架、忽略(Ignore)框架、考量(Consider)框架、主張(Assertion)框架、

與負向(Negative)框架等,以前述的第一至六種框架最為常用。

循序圖以下方帶有虛線的矩形作為生命線,表示使用個案中的物件,由左

而右排列順序為行為者、介面物件、控制物件、與實體物件;物件間互動時所

產生的控制焦點,依時間發生的順序由上而下排列;物件間所傳遞的訊息以帶

箭頭線段,並標示訊息與操作的方式來表達。循序圖的連結表達方式如圖 2-4

所示。

Object: Class A Object: Class B

顯示警告聲數()

障礙物段數()

圖 2- 4 物件與物件間互動方式表達

Page 30: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

18

五、 時序圖

(1) 時序圖的幫助時序圖的幫助時序圖的幫助時序圖的幫助::::

時間限制對於嵌入式系統來說格外重要,因此也必須在動態行為塑模時表

達(蔡淑茵,2010),而時序圖正是在動態行為塑模時用以表達物件間訊息傳遞

或事件觸發的時間關係,用以描述時序圖中物件與物件互動時,物件執行操作

的持續時,與事件觸發時的反應時間,以瞭解系統的行為與反應是否能符合即

時性(Real Time)的要求。

時序圖可以用來表達循序圖在時間上所無法表達的項目,如:操作時間、

控制焦點持續時間、與狀態轉移的時間點等。除此之外,時序圖表達系統運作

時間順序,可看出系統如何滿足車載嵌入式系統在時間上的要求,也能結合循

序圖與狀態機圖,瞭解系統內部互動行為與訊息傳遞的時間與順序,識別系統

是否可能存在不穩定的因素,提升系統的安全性。

(2) 時序圖所包含的元件與符號時序圖所包含的元件與符號時序圖所包含的元件與符號時序圖所包含的元件與符號::::

時序圖的主要構成元件包含生命線、訊息、狀態與時間軸、時間尺規、時

間限制、與通用值生命線等,如表 2-6 所示。時序圖的構成元件說明如下:

1.生命線:用來表達參與互動的物件,在生命線中表達物件的狀態與

時間;

2.訊息:用以表達事件觸發狀態改變時的資訊,在轉態點運用箭頭由

發送端指向接收端,並在箭頭上方標示出訊息的名稱。

3.狀態:用來表達物件所呈現的情況,而物件在互動的過程中存在多

種狀態,均在生命線中水平地標示相對應的狀態。

4.時間軸:運用水平折線來表達時序圖中時間的變化,每個物件都需

要有一條相對應的時間軸。

5.時間尺規:用來表達時間軸的刻度,在時序圖中由左而右繪製。

6.時間限制:用來表達物件在互動過程中處在特定狀態的持續時間,

Page 31: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

19

在時序圖中是以大括號({ })加入時間來表示。

7.通用值生命線:時序圖的另一種表達方式,用以表達物件傳遞訊息

的名稱與時間限制。

表 2- 6 時序圖元件符號

時序圖元件 符號

生命線

物件1

物件2

訊息(呼叫)

訊息

訊息(回傳)

狀態與時間軸

狀態1

狀態2

狀態3

狀態4

時間尺規 0 1 2 3 4

時間限制 {d..3*d}

通用生命值 狀態1 狀態2

Page 32: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

20

六、 狀態圖

(1) 狀態狀態狀態狀態圖的幫助圖的幫助圖的幫助圖的幫助::::

進行系統動態塑模時著重於系統行為、時序、及狀態的表達,雖然可以從

循序圖的物件互動來表達系統或物件的轉換,但與系統狀態轉換並無直接的關

係,而是靠人員對互動行為的理解所推論出的狀態,並無法直接證明循序圖與

系統狀態之間的關係。

狀態機圖用以描述系統或物件在進行互動行為時的狀態及轉換關係,系統

開發團隊可以從描述性綱目與使用個案描述,整理出系統所擁有的狀態與轉換

條件,並在進行系統動態塑模時,設計物件所擁有的狀態與轉換條件,再配合

循序圖與時序圖形成完整的系統互動行為塑模。

狀態圖在完成塑模後,可做為系統程式設計人員的設計依據,也可以幫助

系統開發團隊瞭解系統或物件所擁有的狀態與轉移條件,並用以確認系統程式

的動態行為轉換,是否符合系統規格要求。

(2) 狀態狀態狀態狀態圖所包含的元件與符號圖所包含的元件與符號圖所包含的元件與符號圖所包含的元件與符號::::

狀態圖的主要元件包含狀態與轉換,而運作方式是系統或物件從某一來源

(Source)狀態,轉換至一特定的目的(Destination)狀態,如圖 2-5 所示,左邊的

圓角長方形表達來源狀態右邊的表達目的狀態,中間的箭頭連接線表達轉換的

事件或活動。

來源狀態 目的狀態

轉換

(Event[Guard]/ Action)

圖 2- 5 狀態與轉換的表達

當系統或物件因為滿足某一特定條件或情況,持續執行某個活動或等待某

事件時,表示系統正處在某個狀態之中,因此一個系統或物件可以擁有多種狀

態,如開始狀態、一般狀態、歷史狀態、同步組合狀態、循序組合狀態、與結

束狀態等,而用以表達狀態的元件還包含狀態具深度、決策、進入點、離開點、

Page 33: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

21

終止節點、與轉換等,如表 2-7 所示。

表 2- 7 狀態圖元件符號

狀態圖元件 符號

開始狀態

一般狀態

歷史狀態 H

同步組合狀態

循序組合狀態 ‧‧‧

‧‧‧

轉換

(事件[成立條件]/動作)

狀態具深度 D E

2

3

4

結束狀態

決策

進入點

離開點

終止節點

轉變(接收訊號) Req(Id)

Page 34: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

22

狀態圖元件 符號

轉變(發送訊號) Turn On

七、 類別圖

(1) 類別圖的幫助類別圖的幫助類別圖的幫助類別圖的幫助::::

在完成系統的動態行為塑模後,即著手進行系統靜態結構塑模,在進行系

統動態塑模時就已經涉及部份的系統結構設計,如:實體類別(Entity Class)、

介面類別(Boundary Class)、控制類別(Control Class),因此需要運用類別圖來

表達系統架構。

類別圖是用以表達系統內部的靜態結構,並描述每個類別的屬性與操作,

因此可以運用類別圖檢視系統的靜態結構是否適當、完整,是否能滿足系統執

行動態行為時的需求。若有塑模過程中發現不符狀況則再進行修改,直到類別

圖、循序圖與時序圖的靜態物件都一致。

(2) 類別圖所包含的元件與符號類別圖所包含的元件與符號類別圖所包含的元件與符號類別圖所包含的元件與符號::::

靜態塑模著重在表達系統的靜態結構,所以可以運用類別圖來表達系統的

內部,類別圖的主要構成元件是類別與類別關係,如表 2-8 所列。類別圖中的

類別種類包含實體類別、介面類別與控制類別,各別說明如下:

實體類別:用以表達使用個案完成後仍需儲存在資料庫中的資料。

介面類別:用以表達系統與使用者或其它系統進行溝通的媒介。

控制類別:用以表達系統內部負責傳遞訊息、執行活動、指派或協調

其它類別的工作。

類別圖的類別關係包含:相依關係、一般化關係、關聯關係、與實現化關

係等,各別說明如下:

Page 35: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

23

相依關係: 用以表達某一類別會被另一個類別所使用,且被使用的

類別的改變可能會影響到使用它的類別。

一般化關係:用以表達父類別與子類別間的關係,所以一般化關係乃

是指類別間繼承的特性。

關聯關係:用以表達某一類別會使用到其它類別的服務,但不擁有此

服務。

實現化關係:用以表達由某一類別來實現其它類別的描述,這也表示

負責實現的類別必須依從某介面的定義才行。

表 2- 8 類別圖元件符號

類別圖元件 符號

類別

名稱

屬性

操作

相依關係

一般化關系

關聯關係

實現化關係

第三節第三節第三節第三節 模式驅動結構開發模式驅動結構開發模式驅動結構開發模式驅動結構開發階段階段階段階段

模式驅動結構(Model Driven Architecture, MDA)是由物件管理組織

(Object Management Group, OMG)所定義公佈的系統開發方法,MDA 是結構

學的框架是藉由分離的概念來改善其可攜性、互通性和重用性(Favre,2010)。

系統開發階段主要畫分為六大階段,包含需求(Requirement)、分析( Analysis)、

Page 36: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

24

設計(Design)、程式編輯(Coding)、測試(Testing)、與部署(Deployment),並要

求每個階段都要模式產出,而該模式的產出則作為下一個階段的輸入,並強調

系統分析階段與後續各階段的產出,都需要用電腦可理解的正規模式(Formal

Model)進行表達。MDA 的需求階段需產出需求塑模的成果,該階段的產出大

多為文字文件,而這些產出是進行系統分析的主要輸入資訊,在分析階段則產

出 PIM塑模成果。同樣的 PIM 是進行低階設計的主要輸入資訊,在設計階段

則產出 PSM塑模成果。PSM 是進行程式編輯的主要輸入資訊,在程式編輯階

段則產出程式模式。MDA 開發階段與產出的對應,如圖 2-6 所示:

需求階段

分析階段

程式編輯

階段

低階設計

階段

測試階段

部署階段

大部份是

文字文件

PIM

PSM

Code

Code

MDA

開發

流程

主要階段 階段產出

圖 2- 6 MDA系統開發階段

MDA 承諾能讓機器讀得懂的應用程式定義以及資料類型以可有執行、整

合、維護與測試和模擬等彈性,並防止設計決策與應用糾纏在一起,它使得應

用能獨立它的執行,讓應用可在稍後的階段與其它技術再結合(劉若嬋,2010)。

MDA系統開發階段包含三個主要模式:PIM、PSM、與 Code。PIM 模式是一

種以人類語言作為表達方式的高階塑模模式,在 PIM 模式和系統開發技術獨

立,不涉及描述系統開發與運作之平台(邱志誠,2007),是著重在描述滿足使

用者需求的系統行為與結構,並以有完整定義(Well-Defined)的語言來描述,讓

Page 37: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

25

電腦能自動解譯,以轉換至不同特定平台。PSM 模式是一種以系統開發工具的

架構,作為描述特定系統的方法,對於每個特定系統需要產出一個與其它技術

分離的 PSM,而不同 PSM 之間可以透過溝通橋樑(Communication Bridge)來

進行互動。Code 模式或簡稱為程式碼,是每一個特定系統開發最終的產出物,

也因為 PSM 的開發技術是相依於程式碼的編輯語言,所以程式碼可由 PSM轉

換而得,多個 PSM 可轉換出多種程式碼,也因為不同 PSM 需透過溝通橋樑進

行互動,所以這些程式碼也需要透過溝通橋樑來進行互動。

因此要進行車載嵌入式系統的 PIM轉 PSM轉 Code 時,電腦需自動轉換

成適用於車載嵌入式系統的軟體元件(Software Component, SWC),這些 SWC

包含應用程式(Application Program, AP)、即時環境(Real Time Enviroment,

RTE)和驅動程式(Driver)等。所以,在 PIM 與車載嵌入式系統PSM轉換和 Code

轉換上都需要有完整定義的溝通橋樑才能讓電腦轉成轉換,如圖 2-7 所示。

在劉若嬋(2010)的碩士論文中運用 MDA 的 PIM、PSM、與 Code等三個

主要階段,將嵌入式系統進行物件導向塑模的流程主要分為四個階段即 (1) 需

求塑模階段 (2) PIM塑模階段 (3) PSM塑模階段 (4) 程式產生階段,並著重

在嵌入式系統的 PIM轉 PSM 以及 PSM轉 Code階段的程式樣板上,而運用物

件導向方法論進行嵌入式系統需求塑模與 PIM塑模,請參考蔡淑茵(2010)的碩

士論文。由於本研究的目的著重在研究如何運用 MDA 與 UML 模式圖,在 MDA

各階段達成車載嵌入式系統的功能性、即時性、與穩健性需求,所以模式圖與

模式圖之間的轉換機制與階段間轉換的方法也是本研究討論的重點之一,但本

研究並不涉及 MDA各階段的轉換、PSM塑模、Code 自動轉換方法論與車載嵌入

式系統溝通橋樑定義等範圍。

Page 38: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

26

PIM

RTE SWC

PSM

RTE

Source Code

Driver SWC

PSM

Firmware

Source Code

AP SWC

PSM

AP

Source Code

Communication

bridge

Communication

bridge

Communication

bridge

Communication

bridge

Transformation :

code generation

Transformation :

code generation

Transformation :

code generation

Transformation :

PIM � APTransformation :

PIM � RTE

Transformation :

PIM � Driver

圖 2- 7 車載嵌入式系統 PIM轉 PSM轉 Code

Page 39: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

27

第三章第三章第三章第三章 研究方法研究方法研究方法研究方法

第一節第一節第一節第一節 設計科學研究方法設計科學研究方法設計科學研究方法設計科學研究方法論論論論

本研究所探討的問題是著重於車載嵌入式系統的系統分析與設計,該領域

屬於設計科學領域的範圍,因此運用設計科學研究方法論(Design Science

Research Methodology, DSRM)來執行本研究。本章節將說明 DSRM 的執行流

程與步驟,以及本研究如何運用 DSRM 作為研究法則的指導方針,執行問題定

義,與解決方案的研究,並建立可行的驗證與評估準則。

近年來已有許多學者開始提倡設計科學,並驗證設計科學的價值與有效

性,也發表許多設計科學相關的研究,說明設計科學的主要目的,是在於呈現

出設計的問題,並產出問題的解決方案。由於缺少研究的相關流程與架構,使

的成功的設計科學研究,不容易推廣與運用。

Peffers et al.(2007)提出 DSRM,主要動機是在為進行設計科學研究的

人,提供一套以表達、使用展示跟評估為動機的研究方法論,且說明它符合三

個重要目標:1) 它和先前研究文獻的結果一致;2)它提供了一個可規劃與執行

的流程模型;3)它提供了一個心智模型,用來展現與評估設計科學研究的成果。

Peffers et al.認為設計科學研究的流程應包含識別問題與動機、定義解決方案

的目標、設計與開發、展示、評估、與溝通等六大步驟。

在上述的六大步驟中的第六個步驟“溝通”,是說明在研究完成後,與相

關的專案領域人士或研究人員,說明與溝通研究成果,並討論與研究相關的重

要問題,提升設計嚴謹度、效能、實用度、與新穎度等,著重於擴展研究的成

果,所以本研究流程並未包含“溝通”的步驟。

Page 40: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

28

第二節第二節第二節第二節 研究方法研究方法研究方法研究方法與與與與步驟步驟步驟步驟

本研究之所使用之研究方法是依據設計科學研論方法論,並加以調適與整

理而成,本研究之研究方法可分為五大步驟,1)找出問題與動機、2)定義解決

方案的目標、3)設計與開發解決方案、4)展示解決方案、5)評估解決方案。本

研究應所用研究方法之研究方法流程如圖 3-1 所式,方法與步驟彙整說明如下:

找出問題與動機(Identify Problem & Motivate)

定義解決方案的目標(Define Objectives of a Solution)

設計與開發解決方案(Design & Development)

展示解決方案(Demonstration)

評估解決方案(Evaluation)

圖 3- 1 研究方法流程圖

步驟一步驟一步驟一步驟一::::找出找出找出找出問題與動機問題與動機問題與動機問題與動機

此步驟在確定所要研究的問題是否具體,並證明用以解決問題的解決方案

是有價值的。因為能明確定義問題並將其具體化,可以有效的幫助發展解決方

案,而證明解決方案的價值,可以激發研究人員持續搜尋合適的解決方案,並

幫助研究人員對目前問題的瞭解與推理。

由於車載嵌入式系統運作時的環境與家電、通訊及電腦的環境有很大的差

Page 41: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

29

異,因此著重滿足功能性、即時性、與穩健性等要求,在系統運作時的信號傳

遞、防誤處理、持續時間、回應時間、與狀態的轉換上都需特別注意。

目前已有許多使用 UML 模式圖來表達嵌入式系統的相關研究,使系統在

開發過程能過透明化,讓系統開發團隊可以使用 UML 模式圖來進行溝通,但

由於車載嵌入式系統的要求與一般嵌入式系統的要求不同,所以一般嵌入式系

統開發方式,已無法符合車載嵌入式系統的開發需求,需要研究出一套以物件

導向技術為基礎,並結合 MDA 與 UML 的系統塑模方法論,運用於車載嵌入式

系統的開發。

步驟二步驟二步驟二步驟二::::定義解決方案的目標定義解決方案的目標定義解決方案的目標定義解決方案的目標

此步驟是依據步驟一所明確定義的問題,使用相關的知識評估解決方案的

合適性,並推論出解決方案的目標。而這個目標可以是量化目標,也可以是質

化目標,在量化目標部份,就如同一個理想的解決方案會比現在的更好;在質

化目標部份,就如同一個新的產出如何協助解決方案,解決迄今尚未解決的問

題。

本研究的目標是著重於探討先前研究文獻所提出的成果,發展出一套結合

MDA 與 UML 模式圖來進行車載嵌入式系統的塑模方法,以適當的表達滿足車

載嵌入式系統的功能性、即時性、與穩健性等要求,並發展出需求塑模階段、

PIM塑模階段的 UML 模式圖塑模步驟及方法,且逐步的說明這些模式圖的目

的、用法、組成元素、塑模規則及步驟,並加以說明圖形間的關係與轉換的重

點。

本研究著重於討論系統軟體的動態行為與靜態結構塑模,並不涉及硬體結

構、電氣信號與資料庫之表達;另外,經由MDA轉換技術自動生成程式碼的

討論,亦不在本研究所探討的範圍內。本研究所提出的塑模方法,是一套適合

業界開發車載嵌入式系統的塑模語言,用於幫助開發團隊以圖形進行溝通,儘

可能在開發過程中,找出產生錯誤的因素,確保能滿足系統的功能性、即時性、

Page 42: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

30

與穩健性等要求要求,另外,也提供MDA轉換的輸入資訊,再使用 MDA轉換

技術,生成程式碼提升開發效率。

步驟三步驟三步驟三步驟三::::設計與開發解決方案設計與開發解決方案設計與開發解決方案設計與開發解決方案

此步驟是在發展與建置一個產出物,並著重在確定產出物所需的功能與結

構。在概念上,設計研究的產出物,可以是一個潛在的架構、模型、方法、實

例(Instantiation)或是具有研究貢獻的設計。

本研究探討先前研究文獻,發展出一套結合 MDA 與 UML 進行車載嵌入

式系統塑模的方法,其塑模步驟說明如下:

1.依據車載嵌入式系統的特點,找出適合用於表達需求塑模、PIM塑模

之 UML 模式圖。

2.描述需求並執行需求分析,依據分析結果進行需求塑模,包含活動圖

與使用個案圖的組成元素,及運用活動圖與使用個案圖進行的需求

塑模的步驟及方法。

3.依據需求塑模結果進行 PIM塑模,包含循序圖與時序圖的組成元素,

及運用循序圖與時序圖的系統動態行為塑模的步驟及方法。

4.依據 PIM塑模結果進行程式碼轉換,包含類別圖的組成元素,及運

用類別圖進行系統靜態結構塑模的步驟及方法。

5.詳細說明 UML 模式圖之間的關係。

在進行本研究時,需要以下資訊協助塑模方法論之形成:

1. 需求描述與需求事件條列式

2. 使用個案圖與使用個案描述

2. 活動圖

3. 部署圖

4. 循序圖

Page 43: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

31

5. 時序圖

6. 類別圖與類別操作描述

7. 程式碼

步驟四步驟四步驟四步驟四::::展示解決方案展示解決方案展示解決方案展示解決方案

此步驟是在於展示經由步驟三所產出的解決方案,運用於解決一個或是多

個實際案例,進行展示的方法可使用試驗、模擬、案例研究、證明、或者是其

它合適的活動。

1. 測試個案描述

以 C 公司的停車輔助控制器作為車載嵌入式系統的實際案例,

作為可用性測試的案例,將停車輔助控制器的客戶需求作為輸入資

料,再運用本研究的車載嵌入式系統塑模方法論,整合使用個案圖、

活動圖、部署圖、循序圖、時序圖、與類別圖,實作停車輔助控制器

塑模,並依據提出的可用性測試方法與評估準則,進行可用性測試,

以驗證方法論的有效性。

2. 可用性測試規劃

(1)規劃與事前工作

以 C 公司的停車輔助控制器作為使用 UML 開發車載嵌入式系統

方法論的實作案例,進行轉出樣板程式碼的分析與比對,規劃邀

請該公司的軟體工程師參與樣板程式的分析與比對,並詳細的對

工程師說明樣板程式碼的產出步驟及方法。

(2)招募參與者與排定工作時程

規劃參與樣板程式分析與比對的人員、時間及地點,預計邀請該

公司軟體課 6 位工程師參與測試工作,所招募的工程師均具有車

載嵌入式系統 3 年(含)以上開發經驗,預定於 101 年 6月,於 C

公司的會議室進行。

Page 44: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

32

(3)執行測試工作

依據所規劃之時程與方法進行可用性測試,並運用本研究所提出

之塑模方法論,對測試案例進行分析與說明,讓參與測試的人員

瞭解產出成果的轉換之過程、方法及步驟。

(4)結果分析與報告

請參與測試人員依據正確性評估準則提出建議,在會議中記錄所

有相關建議事項,於會議結束後,針對參與測試人員所回饋的建

議事項進行分析,並呈現測試成果與評估準則的相符程度。

步驟五步驟五步驟五步驟五::::評估解決方案評估解決方案評估解決方案評估解決方案

此步驟是在於評估由步驟二所定義的目標,與步驟四狀建置的產出物進行

展示的成果互相對照,並從實際觀察與衡量步驟三所得到的成果,是否能有助

益的協助解決問題。研究人員在執行此步驟時發展,研究結果與期望解決的問

題有所偏差時,研究人員可決定再回到步驟三,分析偏差的可能並修正產出物,

並且提供改善建議給後續的研究人員作為參考依據。

本研究將以正確性為評估準則,用來衡量本研究所提出之方法論。而在此

所指的正確性,是以本研究所提出之方法論轉換結果是否正確。本研究的正確

性評估準則如下:

1. 對於在方法論中,所用來表達的 UML 模式圖是否合適。

2. 方法論所提出的方法與步驟,是否合適。

3. 經由轉換而得的樣板程式碼是否正確與實用。

運用執行可用性測試,將案例進行測試的過程與結果記錄下來,依據正確

性之估評準則,對可用性測試的結果進行分析與評估,若發現有不正確的部份,

再回到步驟二修正解決方案的目標,或者是回到步驟三修正塑模方法論的設

計,以提升方法論的正確性。

Page 45: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

33

第四章第四章第四章第四章 結合結合結合結合 MDA 與與與與 UML 的車載嵌入式的車載嵌入式的車載嵌入式的車載嵌入式

系統系統系統系統塑模塑模塑模塑模方法論方法論方法論方法論

車載嵌入式系統是應用於汽車上的嵌入式系統,主要功用是由系統主動偵

測安裝於車身的感測器信號與開關信號,即時的輸出控制信號以控制其它車身

裝置以達到提醒使用者的目的,使用者與車載嵌入式系統不會有視覺性的使用

者介面,而是以簡易的操作介面、聲響與燈號代替。另外,由於車載嵌入式系

統是直接安裝於車身的嵌入式系統,在運行環境有著許多不確定因素,如同第

一章所說明的環境特點,因此在進行塑模時除了需要達成功能性需求外,還要

非常注重即時性與穩健性,系統才不會因為環境因素及干擾信號而經常發生錯

誤。

因此車載嵌入式系統通常運用瀑布模式(Waterfall Model)進行系統開發,

此模式強調系統開發應有完整之週期,週期中劃分成數個開發階段,必須完整

經歷週期之每一開發階段,並系統化地考量分析與設計技術、時間與資源投入

等(吳仁和,2012)。而瀑布模式最簡潔的階段劃分為分析、設計、實作等三個

階段,與車載嵌入式系統開發的所需要的功能需求、時間需求、環境需求、介

面需求、失效處理、系統需求規格、系統動態規格、系統靜態規格、系統程式

等進行整合發展成車載嵌入式系統開發階段,如圖 4-1 所示。

為降低錯誤的發生並能滿足車載嵌入式系統需求(如圖 4-1),而且在所有

設計方法論的文獻,證明 UML 是適合嵌入式系統設計(Vidal et al.,2009) 並

且 UML具有視覺化、文件化、與規格化的特點,所以選用 UML做為車載嵌入

式系統的塑模語言,並以 UML 的模式圖取代系統需求規格、系統動態規格、

與系統靜態規格等文件,運用圖形取代文字描述以提升系統開發效率。

在分析階段中所需產出的需求規格以使用個案圖、活動圖、部署圖取代;

設計階段中所需產出的系統動態規格與系統靜態規格,以循序圖、時序圖、狀

Page 46: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

34

態圖、與類別圖取代;在實施階段平台程式運用程式碼轉換進行,詳細對應狀

況如圖 4-1 所示。

分析

系統需

求規格

功能需

時間需

環境需求

介面需求

失效處

設計

系統靜

態規格

系統動

態規格

使用

個案

實施

系統程

平台選

Code

轉換

部署

車載嵌入式

系統需求

圖 4- 1車載嵌入式系統開發階段

由於本研究著重於系統軟體的分析與設計,且為了提升系統開發效率並讓

系統開發成果能夠重覆再利用,因而運用 MDA 的方法並參考劉若嬋(2010)所

發表的碩士論文「MDA轉換:嵌入式系統研究」,與車載嵌入式系統的瀑布式

開發階段進行對應,並發展成(1) 需求塑模階段 (2) PIM塑模階段 (3) 程式碼

轉換階段等三個階段,並為每個階段研究出適合運用的 UML 模式圖與塑模方

法。

依據結合 MDA 與 UML 的物件導向系統分析與設計(吳仁和,2012),需求

塑模是應用使用個案圖、活動圖等工具進行塑模活動,參考蔡淑茵(2010)所發

表的碩士論文「嵌入式系統之 PIM塑模方法論之研究」在 PIM塑模是以循序

圖、狀態圖、時序圖進行動態互動行為塑模,運用類別圖進行靜態結構塑模。

程式碼轉換則是運用 PIM塑模成果並參考自動轉換程式方法論(劉若嬋,

2010),進行程式碼轉換的活動。

本研究之方法論是以物件導向作為系統分析與設計的基礎技術,以 MDA

Page 47: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

35

作為系統開發階段並運用 UML 模式圖進行塑模。從使用者的需求為出發點,

運用 UML 模式圖將使用者需求進行具體描述,進入系統分析與設計階段,運

用 UML 模式圖將系統的動態行為與靜態結構進行具體描述,並產出具體描述

文件作為系統開發之依據,讓系統開發團隊以此作為系統開發之溝通標準提升

系統開發效率。

本研究所提出之方法論區分為需求塑模、PIM塑模、與程式碼轉換等三個

階段,其中需求塑模階段包含:需求擷取、使用個案圖、活動圖、部署圖等;

PIM塑模階段包含:循序圖、時序圖、狀態圖、類別圖等;程式碼轉換階段包

含平台選定與 Code轉換,詳細流程如圖 4-2 所示,各階段說明如下:

需求塑模階段:運用描述性綱目與資料詞彙進行需求擷取,再進行使用個

案圖塑模、活動圖塑模、與部署圖,並以活動圖為塑模主

軸進行 PIM塑模。

PIM塑模階段:以活動圖作為互動行為塑模的基礎,進行動態的循序圖、

時序圖、與狀態圖塑模,完成動態塑模後再發展靜態結構

塑模的類別圖。

程式碼轉換階段:以 PIM塑模成果為基礎選定合適的平台與發展工具,

再依據類別圖與類別描述表的內容進行 Code轉換。

程式碼轉換

Code

轉換

平台

選定

PIM塑模

類別圖

時序圖

循序圖

狀態圖

需求塑模

功能需

時間需

環境需求

介面需

失效處

活動圖

使用個

案圖

部署圖

圖 4- 2 結合 MDA 與 UML 的車載嵌入式系統塑模流程

Page 48: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

36

第一節第一節第一節第一節 需求塑模需求塑模需求塑模需求塑模

需求塑模(Requirement Modeling)是車載嵌入式系統塑模方法論的第一個

階段,以使用者的需求為出發點,從使用者的角度瞭解使用者的需求及使用者

和系統互動的狀況,再將使用者需求描述透過適當的步驟轉換後,產生出使用

個案(陳鴻明,2003)再運用 UML 模式圖將需求表達出來,且進一步的將模式圖

合理化,最後使用模式圖與使用者進行確認,並作為系統分析與設計的發展基

礎。車載嵌入式系統在進行需求塑模時,除了要滿足使用者功能需求,尚滿足

車載嵌入式系統的特性需求,如即時性與穩健性等需求,因此系統開發團隊成

員,在進行需求擷取時需詳細描述即時性需求與穩健性需求。

需求塑模階段所需執行的活動包含:需求擷取、使用個案圖、活動圖等活

動。主要由系統開發團隊運用需求擷取獲得使用者需求,加以判斷整理成描述

性綱目,再經由軟體塑模語言轉換成概念性綱目,找出行為者產出使用個案,

並針對每個使用個案進行描述,發展成使用個案圖並運用活動圖檢視使用個案

的完整性。需求塑模階段的流程,如圖 4-3 所示。

需求塑模

功能需

時間需

環境需

介面需

失效處

活動圖

使用個

案圖

部署圖

圖 4- 3 需求塑模階段

Page 49: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

37

一、 需求擷取的方法與步驟

需求擷取是系統開發團隊要執行的第一個活動,因為不明確的需求容易導

致開發團隊對系統功能的誤解,使系統開發產生失敗的高風險,所以使用者需

求在車載嵌入式系統開發過程中是最關鍵、最重要也是最容易產生錯誤的個部

份,容易因為模糊的需求或錯誤的需求描述而導致失敗。

需求擷取的執行方法主要有二個步驟,步驟一是擷取使用者需求,步驟二

是建立描述性綱目,著重於擷取與描述使用者需求,作為需求轉換的輸入資料,

找出行為者、找出使用個案、描述使用個案,完成使用個案圖並建置活動圖,

核對使用個案描述的完整性,並修正使用個案圖。其執行步驟如圖 4-4 所示:

擷取使用者需求

建立描述性綱目

圖 4- 4 需求擷取步驟

步驟步驟步驟步驟 1::::擷取擷取擷取擷取使用者使用者使用者使用者需求需求需求需求

系統開發團隊在擷取使用者需求時,可從功能需求、環境需求、時間需求、

與介面需求等車載嵌入式系統的特點項目進行需求擷取的活動。以下將針對這

四項特點項目進行說明:

1. 功能需求:指系統提供與外界進行互動的操作,因事件產生而觸發系

統內部一系列處理程序所完成的活動,如:障礙物偵測、

障礙物警示、或故障警示等。

2. 環境需求:指系統運作時所存在的條件,如:電壓範圍、溫度範圍、

電源干擾、與靜電等環境條件。

3. 時間需求:指系統在執行動態的互動行為時所需耗費的時間,如:持

續時間、限制時間、回應時間等。

Page 50: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

38

4. 介面需求:指系統與外界進行互動的輸入與輸出介面,如:車速信號、

手剎車信號、排檔信號、傳感器信號等。

5. 失效處理:指系統接受到外界輸入的錯誤信號,可能導致系統失效或

輸出錯誤的警告,系統要避免或排除失效的產生,如:傳

感器受到其它超音波干擾、或車速信號受到雜訊干擾而輸

入錯誤信號,系統不能產生錯誤反應。

上述需求可以從客戶所提供的成品圖資料中擷取到相關資訊;介面需求可

以從成品圖中的接腳定義(Pin Define)中出找到系統與外部的互動介面;時間需

求可以在成品圖中的時序圖找到。

步驟步驟步驟步驟 2::::建立描述性綱目建立描述性綱目建立描述性綱目建立描述性綱目

系統開發團隊完成使用者需求擷取活動後,將所擷取到的功能需求、環境

需求、時間需求、介面需求、與失效處理等,轉換成使用者與系統的詳細互動

過程,須先從使用者角度思考所操作的介面與操作程序,再從系統的角度思考

系統從介面接受到信號後的行為,以自然語言的方法進行詳細的描述,再對於

每個所擷取到的需求都給予一組唯一的編號,並記錄於需求描述一覽表,如表

4-1 所示,將與系統相關的數據化資料記錄於資料詞彙一覽表中,如表 4-2 所

示。

進行車載嵌入式系統的需求描述時,除了上述的操作程序外,尚需描述環

境需求、時間需求與失效需求,如表 4-1描述性綱目欄位中的第 1項描述系統

運作的環境電壓,第 3項描述系統啟動時間與預防系統失效時的失效偵測,而

第 5項則是失效發生時的處理方式,在第 2 ~ 5項中都有描述介面需求。

表 4- 1 需求描述一覽表

需求編號 原始需求 描述性綱目

A-1-1 前方偵測系統啟動,前 1.汽車提供 9~16V 電源

Page 51: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

39

方蜂鳴器會鳴叫一聲。 2.汽車電門(IGN)開啟,手剎車放下,排檔桿在前進檔,

顯示器開關開啟。

3.ECU檢查系統 800ms,檢查 ECU 電壓是否達

9~16V,檢查傳感器是否正常,並在同時蜂鳴器與顯

示器輸出 ON 800ms 的開機音與燈號。

4.ECU檢查電壓有 9~16V,傳感器運作正常則開始偵

測障礙物。

5.ECU檢查電壓低於 9V或高於 16V則ECU停止運行

持續偵測系統電壓到恢復為止。

表 4- 2 資料詞彙一覽表

編號 名稱 型態 規則/格式/範圍/公式 範例

D-1-1 前障礙物距離 BYTE 0x00~0xFF,0x01= 1cm 0x0A=10cm

二、 使用個案圖塑模方法與步驟

運用使用個案圖進行塑模是一個反覆的步驟,從初次建立的使用個案圖,

再經由與使用者的確認,再次修正使用者需求與使用個案圖,反覆精煉使用個

案圖,達到使用者與系統開發團隊,都確認使用個案圖是正確的,才能算是得

到符合需求的使用個案圖。

系統開發團隊在發展車載嵌入式系統的使用個案圖時,建議使用車載嵌入

式系統的邏輯架構,作為內聚力原則找出使用個案,更能讓使用者與系統開發

團隊瞭解,使用者與系統互動的狀況。使用個案圖的塑模步驟包含:找出行為

者、找出使用個案、描述使用個案並找出關係、與繪製使用個案圖等四大步驟,

Page 52: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

40

如圖 4-4 所示,以下將詳細說明每個步驟的執行方法。

找出行為者

找出使用個案

描述使用個案並找

出關係

繪製使用個案圖

圖 4- 5 使用個案圖塑模步驟

步驟步驟步驟步驟 1::::找出行為者找出行為者找出行為者找出行為者

需求分析的最重要的是找出使用個案,因此要先找出行為者(Actor),而從

眾多的描述性綱目中不容易找出行為者,所以先將描述性綱目轉換為事件條列

式,轉換後的表達方式如下:

主詞 + 動詞 + 受詞

系統開發團隊在轉換描述性綱目時,可將句子中用以描述系統或外部實體

的名詞當作主詞,如:使用者、汽車、ECU、蜂鳴器或顯示器等;將句子中用

以描述系統或外部實體操作的動作當作動詞,如:接上、提供、放下、輸出、

或開啟等;將句子中用以描述操作後的輸出實體當作受詞,如:汽車電源、手

剎車、顯示器等,並將結果記錄於概念性綱目一覽表中,如表 4-3 所示。進行

車載嵌入式系統的事件條列式描述時,著重於與時間相關的表達,如輸入時間、

輸出時間、持續時間、與反應時間等。

行為者是一種角色,是環境中與系統有互動或交換訊息之任何人或物(吳

仁和,2012),事件條列式中的主詞就是與系統有互動的角色,如:使用者、

汽車、蜂鳴器、顯示器等。

Page 53: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

41

表 4- 3 概念性綱目一覽表

需求編號 描述性綱目 條列式編號 事件條列式

A-1-1-1 汽車提供 9~16V 電源 A-1-1-1-1

A-1-1-1-2

使用者+接上+汽車電源

汽車+提供+電源

步驟步驟步驟步驟 2::::找出使用個案找出使用個案找出使用個案找出使用個案

系統開發團隊完成找出行為者的步驟後,先以行為者為內聚目標將相同的

行為者的事件條列式聚集起來,再運用合適的內聚力原則,將事件條列式整理

成使用個案,並將事件條列式、內聚力原則與使用個案記錄於使用個案一覽表

中,如表 4-4 所示。

在表 4-4中的範例是以 ECU、蜂鳴器與顯示器為內聚目標,這三者在運

作上沒有順序關係但都使用了相同的資料,因此可以使用溝通內聚力聚集成使

用個案,而此使用個案是由多個事件條列式所內聚而成。

表 4- 4 使用個案一覽表

條列式編號 事件條列式 內聚力

原則

使用個案

編號

使用個案

A-2-2-3-1,A-2-2-3-2

A-2-2-3-3,A-2-2-3-4

A-2-2-3-5,A-2-2-3-6

A-2-2-3-7,A-2-2-3-8

ECU+驅動+蜂鳴器 80ms

蜂鳴器+輸出+ON 80ms

ECU+驅動+顯示器 80ms

顯示器+輸出+ON 80ms

溝通內

聚力

U1 鳴叫與顯示

系統開發團隊在整理事列條列事時,所會用到的內聚力原則包含:功能內

聚力、順序內聚力、溝通內聚力、暫時內聚力、程序內聚力、邏輯內聚力、偶

Page 54: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

42

發內聚力等,如表 4-5 所示。系統開發團隊亦可依據車載嵌入式系統的概念架

構或邏輯架構,採用合適的內聚力原則來找出使用個案。

表 4- 5 內聚力原則

名稱 內容說明

功能內聚力 將一個具有完整、獨立、無法進行整合的功能,列為一個使用

個案,這種內聚力稱為功能內聚力。

順序內聚力 將多個具有連續性且共用資料的功能,整合在一個使用個案

內,這種內聚力稱為順序內聚力。

溝通內聚力 將多個使用相同資料或輸入的功能,整合在一個使用個案內,

且這些功能又不具執行順序,這種內聚力稱為溝通內聚力。

暫時內聚力 將多個必須在同一時間內執行完成的功能,整合在一個使用個

案內,這種內聚力稱為暫時內聚力。

程序內聚力 將多個必須按照一定程序執行,但不共用資料的功能整合在一

個使用個案內,這種內聚力稱為程序內聚力

邏輯內聚力 將多個在邏輯上有互相關聯的功能,整合在一個使用個案內,

這種內聚力稱為邏輯內聚力。

偶發內聚力 將多個不具互相關聯的功能,整合在一個使用個案內,這種內

聚力稱為偶發內聚力,但在進行設計時,此種內聚力原則建議

少用。

步驟步驟步驟步驟 3::::描述使用個案描述使用個案描述使用個案描述使用個案並找出關係並找出關係並找出關係並找出關係

系統開發團隊在找出所有的使用個案後,清楚的表達使用個案的名稱、行

為者、目標、前提、關係、結束狀態、與系列事件,如表 4-6 所示。由於車載

嵌入式系統需滿足功能需求、環境需求、時間需求、介面需求、與失效處理等

需求,因此系統開發團隊在運用自然語言對使用個案進行描述時,需運用下列

方式進行使用個案描述:

事件+程序+介面+時間+狀態

此方式主要用以表達出一個使用個案會有哪些事件? 系統因事件提供什

麼樣的操作程序? 系統運用什麼介面進行互動? 系統的時間限制是多少? 系

統狀態會有什麼變化? 並將描述成果記錄於表 4-6 的系列事件欄位中。

Page 55: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

43

系統開發團隊在進行使用個案描述時,依據使用個案一覽表的事件條列式

內容,並參照事件條列式所對照的描述性綱目,再運用上述的表達方式詳細的

描述使用個案,如表 4-6 的範例內容所示。在進行使用個案描述的同時亦應思

考操作程序可能的例外狀況,如:使用者所提供的電源不在系統運作範圍內、

或是提供電源的時間不足,範例內容如表 4-6 的所示。

系統開發團隊完成使用個案描述,需開始找出使用個案與使用個案間的關

係,並區分為 Include、Extend、Generalization等三種關係,而車載嵌入式系

統的所常用的使用個案關係以 Include 與 Extend 最為常用,使用個案關係的找

出方法說明如下:

1. 某個使用個案描述著一定會使用到另一個使用個案,表示使用個案

間存在 Include 的關係,例如:系統初始化使用個案完成後會轉移

到啟動或停止系統使用個案,則表示系統初始化使用個案和啟動或

停止系統使用個案間有 Include 的關係。

2. 某個使用個案描述著,在特定情況下會用到另一個使用個案,表示

使用個案間存在 Extend 的關係,例如:系統初始化使用個案執行

時,在特定狀況下會使用到鳴叫與顯示使用個案輸出開機音與燈

號,則表示系統初始化使用個案和鳴叫與顯示使用個案間有

Extend 的關係。

3. 某個使用個案的某一部份,與另一個使用個案相同,且額外出一些

功能,表示使用個案間存在 Generalization 的關係。

系統開發團隊運用上述方法找出使用個案與使用個案間的關係,並填入表

4-7 的使用個案關係欄位中。使用個案與使用個案間有關係存在,亦表示使用

個案與使用個案間有互動行為,所以在描述個案個案時亦需描述使用個案間的

互動方式。

Page 56: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

44

表 4- 6 使用個案描述表

使用個案名稱:

行為者 使用者、汽車

目標 使系統開機讓使用者能使用系統

前提 使用者提供 9~16V 的電源

使用個案關係 檢查系統輸入狀況 (Extend)

啟動或停止系統偵測障礙物 (Include)

結束狀態 使用者完成系統開機,使系統開始運作

系列

事件

正常

程序

事件 1:使用者接上電源

操作程序:

使用者接上 9~16V 的汽車電源,由汽車經由電源模組提供

9~16V 的電源給車載嵌入式系統,系統於 300ms 後從停止狀

態轉換開始執行系統初始化。

事件 2: 系統執行初始化設定

操作程序:

1. 系統透過初始化模組執行系統資料初始化,系統於 100ms

後完成資料初始化轉換成檢查系統資訊。

2. 系統透過檢查系統輸入狀況使用個案檢查系統資訊,系統於

100ms 後完成檢查系統資訊轉換執行啟動或停止系統偵測

障礙物使用個案。

例外

狀況

1.使用者提供電源低於 9V

2.使用者提供電源高於 16V

3.使用者提供電源未持續達 300ms 以上

事件

程序 介面

時間 狀態

Page 57: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

45

步驟步驟步驟步驟 4::::繪製使用個案圖繪製使用個案圖繪製使用個案圖繪製使用個案圖

完成上述 1~4步驟後,即可開始繪製使用個案圖,運用表 2-2使用個案圖

元件符號,再依據使用個案描述與使用個案間的關係,建置使用個案圖,繪製

的步驟如下所列:

1. 繪出行為者與使用個案。

2. 以實線連結有互動關係的行為者與使用個案。

3. 確認使用個案間的關係,並運用適當的符號連結使用個案。

4. 精煉使用個案圖。

系統開發團隊在完成使用個案圖的建置活動後,運用使用個案圖與使用個

案描述與使用者確認需求,向使用者說明功能、使用者與系統的互動行為、與

操作時序,確認每項需求都有被適當的表達,以降低錯誤需求產生的機率。

三、 活動圖塑模方法與步驟

車載嵌入式系統需滿足功能需求、環境需求、時間需求、介面需求、與失

效處理等需求,所以活動圖塑模活動需要反覆的執行,系統開發團隊依據使用

個案的事件條列式與用個案描述發展活動圖,再運用活動圖檢視使用個案描述

的內容是否有遺漏,因此系統開發團隊與使用者確認需求時,除了運用使用個

案圖外,還需再配合活動圖,使用者可以更清楚的瞭解系統的運作方式,在需

求確認過程若有修正使用個案,亦需同步修正活動圖,如此反覆精煉活動圖,

使塑模成果能正確表達出使用者需求。

系統開發團隊在發展活動圖時,可從事件條列式與使用個案描述中,找出

活動與轉換,而活動通常是描述系統的操作或行為,轉換通常會是系統需進行

判別的條件,若遇判別條件是需進行平行處理,就會發生分岔而有分岔就須有

結合,所有分岔出去的平處理活動,在執行完畢後都需進行結合再進行一個或

多個離開轉換;若遇到判別條件是某些「成立條件」達成後擇一執行後續活動,

Page 58: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

46

就會有決策的轉換發生,在決策後會有數個具有互斥條件的離開轉換。活動圖

的塑模步驟包含:找出活動與轉換、繪製活動圖、精煉活動圖等三大步驟,如

圖 4-5 所示,以下將詳細說明每個步驟的執行方法。

找出活動與轉換

繪製活動圖

精煉活動圖

圖 4- 6 活動圖塑模步驟

步驟步驟步驟步驟 1::::找出活動找出活動找出活動找出活動與轉換與轉換與轉換與轉換

活動可以是一個動作處理或計算描述、一組動作程序或是可執行的一段副

程式,可以有狀態、介面、輸入與輸出或資料儲存等(吳仁和,2012),所以活

動都需要有一個執行的實體(包含系統、子系統、或使用個案等),先找出實體

就能找出執行的活動。

轉換是實體從一活動進入另一活動的成立條件、動作或控制(吳仁和,

2012),活動表達一系列的執行程序,一個活動的結束將接續著下一個活動,

而活動的結束就表示存在著轉換,若是因活動結束所產生的轉換稱為一般轉

換,若是因條件成立所產生的轉換稱為條件轉換。

系統開發團隊要從使用個案中找出活動與轉換的方法,是運用使用個案的

事件條列式的主詞+動詞+受詞表達方式找出實體,如:使用者、汽車、ECU、

蜂鳴器或顯示器等,再配合使用個案描述確認出實體所執行的活動與轉換,範

例說明如下:

1.事件條列式:使用者+接上+汽車電源

2.使用個案描述:使用者接上 9~16V 的汽車電源

Page 59: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

47

對照範例的事件條列式與使用個案描述就能發現,範例中的實體是使用

者,而使用者所執行的活動是接上 9~16V 的汽車電源,所以當使用者完成這個

活動就會直接轉換到另一個活動。將所找到的實體、活動、與轉換填入表 4-7

中。

表 4- 7 活動圖的實體、活動與轉換匯總表

使用個案 實體 活動 轉換

系統開機與初始化 使用者 接上 9~16V 電源 完成接上 9~16V 電源

汽車 提供 9~16V 電源 完成提供 9~16V 電源

步驟步驟步驟步驟 2::::繪製活動圖繪製活動圖繪製活動圖繪製活動圖

系統開發團隊進行活動圖繪製步驟時,應依據使用個案描述的事件、程

序、介面、時間、狀態等項目進行活動圖的繪製,若系統與外部實體有互動時,

需先繪製責任區再以運用元件與符號繪製活動圖。

活動圖是以實心圓表示活動圖的開始,將活動圖中所會運用到的一般活動

依執行順序排列,再使用一般轉換連結具有互相關聯的一般活動,若轉換條件

需進行判斷則要使用轉換決策符號來表示決策的結果;若轉換條件需進行平行

處理,則要使用轉換分岔符號來表示,在平行處理結束後使用轉換結合符號表

示處理完成,活動圖範例如圖 4-6 所示,在繪製活動圖過程中,需註明活動所

運用的介面、時間、狀態與條件轉換的判斷條件。

Page 60: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

48

活動

A

活動

B

活動

C

若判斷結果>=1 ,則執

行活動B;若判斷結果

<1 ,則執行活動C.

介面:汽車電源

時間:持續100ms

狀態:轉換至電壓判斷

使用者

圖 4- 7 繪製的活動圖

步驟步驟步驟步驟 3::::精煉活動圖精煉活動圖精煉活動圖精煉活動圖

精煉活動圖的工作,著重在活動與轉換之改善,在發展完成初步活動圖

後,可運用描述性綱目與使用個案描述以檢視活動圖的繪製是否正確,相對的

在精煉活動圖的過程,也可以改善描述性網目與使用個案描述,讓使用個案更

接進使用者需求。

精煉活動圖是一個反覆的工作,這個工作需要與描述性綱目及使用個案描

述互動進行,若在發展活動圖時發現異常,即需先修正描述性綱目與使用個案

描述,再修正活動圖,直到使用個案描述與活動圖的內容一致,表示精煉活動

圖的步驟完成。

四、 部署圖塑模方法與步驟

由於車載嵌入式系統需滿足功能需求、環境需求、時間需求、介面需求、

與失效處理等需求,而使用個案圖、活動圖著重於表達功能需求、時間需求、

與失效處理等,部署圖則著重於表達環境需求與介面需求著重於表達系統介面

Page 61: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

49

與系統外部實體的連結與關係。

系統開發團隊在完成使用個案圖塑模與活動圖塑模後,即開始發展部署

圖。從部署圖中可以看出系統內部使用個案與系統外部連結的狀況,並著重環

境需求、介面需求與系統邏輯架構的表達。部署圖的塑模步驟包含:規劃系統

範圍、部署與連結節點、考慮系統技術問題等三大步驟,如圖 4-8 所示,以下

將詳細說明每個步驟的執行方法。

找出實體、介面與

連結

繪製部署圖

考慮系統技術問題

圖 4- 8 部署圖塑模步驟

步驟步驟步驟步驟 1::::找出實體找出實體找出實體找出實體、、、、介面介面介面介面與連結與連結與連結與連結

為表達出車載嵌入式系統與外部實體連結狀況,需先找出與系統進行互動

的實體和系統用來跟實體進行互動的介面,再找出系統與實體間的連結關係,

運用部署圖元件進行塑模。

實體是使用個案中具有名詞特性的主詞通常用於表達存在於系統外部的

實體,所以可以從使用個案的事件條列式中找到實體,如:使用者、手剎車、

蜂鳴器、顯示器等;介面是系統用於和外部實體互動的通道,所以介面具有轉

換的特性通常包含軟體介面與硬體介面,而硬體介面可從車載嵌入式系統的介

面需求中找到,如電源迴路、輸入迴路等,因此系統開發團隊必需規劃與硬體

介面相互對應的軟體介面,如電源模組、輸入模組等;連結是系統內部軟體產

出與系統外部實體之間的關聯,也因為軟體無法與系統外部實體直接互動必需

透過介面,所以軟體產出和軟體介面間會存在著相依關係,而硬體介面與系統

Page 62: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

50

外部實體是直接連接通常使用關聯關係表達。最後將上述所找的實體、介面與

連結填入表 4-8中。

由於車載嵌入式系統的特性需經由硬體來實現系統行為,故部署圖著重於

表達系統內部與外部的邏輯架構,所以在部署圖中所提到的實體或硬體介面並

不在本研究的範圍內。

表 4- 8 系統實體、介面與連結匯整表

實體 硬體介面 介面規格 軟體介面 使用個案 連結

汽車電源 電源迴路 9~16V 電源 電源模組 - 關聯關係

手剎車開關 輸入迴路 0V/12V 電壓 輸入模組 - 關聯關係

汽車電源 電源迴路 9~16V 電源 電源模組 系統開機與初始化 相依關係

手剎車開關 輸入迴路 0V/12V 電壓 輸入模組 系統開機與初始化 相依關係

步驟步驟步驟步驟 2::::繪製繪製繪製繪製部署部署部署部署圖圖圖圖

在找到實體、介面、與連結後即開始運用部署圖的元件與符號進行部署圖

的繪製,先將表 4-8中的實體與硬體介面以節點進行表達,軟體介面與使用個

案都以帶產出進行表達,再將表 4-8中連結的關係以關聯關係或相依關係進行

表達。

將表達實體的節點部署於模式圖的最外圈,再將表達硬體介面的節點部署

於次外圈,再將表達軟體介面的產出部署於硬體介面旁邊,最後將用於表達使

用個案的產出部署於圖的中央,再依據節點與產出間的連結以關聯關係或相依

關係進行連接,完成後的部署圖如圖 4-9 所示。

Page 63: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

51

汽車

電源

蜂鳴

電源

迴路

輸出

迴路

電源 信號輸出

模組

電源

模組使用

個案

車載嵌入式系統

系統

資料

模組

圖 4- 9 系統部署圖

步驟步驟步驟步驟 3::::考慮系統技術問題考慮系統技術問題考慮系統技術問題考慮系統技術問題

由於車載嵌入式系統需滿足功能需求、環境需求、時間需求、介面需求、

與失效處理等需求,因此在車載嵌入式系統的系統架構與運用的技術亦受限於

上述需求,如系統運作環境是否需要符合車用網路(Car Area Network Bus,

CAN Bus)需求、系統診斷需求或各汽車製造廠專用的通訊協定等,因此在考慮

系統技術問題後完成調整的部署圖如圖 4-10 所示。

汽車電源

蜂鳴器

電源迴路

輸出迴路

電源 信號輸出模組

電源模組

使用

個案

車載嵌入式系統

通訊迴路

通訊模組

車用網路

信號

系統

資料

模組

圖 4- 10 調整後的系統部署圖

Page 64: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

52

第二節第二節第二節第二節 PIM塑模塑模塑模塑模

PIM塑模是車載嵌入式系統塑模方法論的第二個階段,從系統的角度進行

與平台無關的系統分析與設計,以滿足功能需求、環境需求、時間需求、介面

需求、與失效處理等需求,分析與設計系統與外部實體的互動行為,與系統內

部的互動行為、靜態結構及使用者的互動介面,運用循序圖、時序圖、與狀態

圖表達系統的動態互動行為,運用類別圖表達系統的靜態結構,再精練模式圖

讓它更能符合系統需求,最後將模式圖文件化與規格化以作為實作系統設計的

依據。PIM塑模的模式圖需滿足需求項目如下:

1. 循序圖需滿足功能需求、環境需求、介面需求與失效處理等需求。

2. 時序圖需滿足功能需求、時間需求、失效處理等需求。

3. 狀態圖與類別圖均需滿足功能需求。

PIM塑模過程並不涉及特定的系統平台描述,而 PIM塑模可區分成物件

互動行為塑模與物件結構塑模兩階段,先進行互動行為塑模再進行結構塑模,

而物件互動行為塑模主要是描述物件的動態行為,所使用的塑模工具是循序

圖、時序圖、與狀態圖。物件結構塑模主要是描述物件的靜態結構,所使用的

塑模工具是類別圖。PIM塑模階段的流程,如圖 4-11 所示。

PIM塑模

類別圖

時序圖

循序圖

狀態圖

圖 4- 11 PIM塑模階段

Page 65: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

53

一、 循序圖塑模方法與步驟

車載嵌入式系統需滿足功能需求、環境需求、時間需求、介面需求與失效

處理等需求,在進行系統互動行為分析時除了功能需求的互動行為分析外,尚

需分析環境與介面的影響所產生的失效處理,例如:系統透過輸入介面讀取外

部機械開關信號時,需分析開關所提供的信號是不穩定的,因此在進行系統互

動行為設計時對此信號需加入失效處理,以維護系統的穩健性。循序圖即用以

設計系統互動行為的塑模工具。

建置循序圖的過程是需要反覆進行設計與修正的活動,從確認物件到繪製

循序圖的過程中,都有可能需要再重新判別所確認的物件是否合適,再重新繼

續循序圖的塑模步驟。循序圖的功用著重在表達行為者與系統內部物件的互動

狀況,及系統內部物件與物件間互動的狀況,所以循序圖的物件可以從描述性

綱目與使用個案描述中找到,再依據使用個案描述與活動圖,建置物件間互動

的控制焦點與傳遞的訊息,若在活動圖中有表達判別或平行處理時,需使用框

架來表達條件的選擇或是平行處理的狀況。

循序圖中的物件包含:行為者、介面物件、控制物件、與實體物件。行為

者是表達從系統外部的互動人員或是其它系統,無法直接與系統內部的控制物

件或實體物件進行互動,因此行為者與物件及物件與物件間的溝通方式,都應

遵守下列要求:

1.行為者不能直接與控制物件或實體物件互動。

2.行為者要透過介面物件與控制物件互動。

3.介面物件要透過控制物件才能與實體物件互動。

4.實體物件不能直接與實體物件互動。

循序圖的塑模步驟包含:找出物件、互動行為與訊息、繪製循序圖、描述

操作與訊息等步驟,執行的程序如圖 4-12 所示,以下將詳細說明每個塑模步驟

的執行方法。

Page 66: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

54

找出物件、互動行

為與訊息

繪製循序圖

描述訊息與操作

圖 4- 12 循序圖塑模步驟

步驟步驟步驟步驟 1::::找出找出找出找出物件物件物件物件、、、、互動行為與訊息互動行為與訊息互動行為與訊息互動行為與訊息

循序圖是用以表達系統內外部物件互動的行為,因此發展循序圖的第一步

驟,是要先找出使用個案內的物件,並區分為行為者、介面物件、控制物件、

與實體物件。

由於車載嵌入式系統需需滿足功能需求、環境需求、介面需求與失效處理

等需求,且外部實體需透過介面與系統內部進行互動,所以系統開發團隊可以

用車載嵌入式系統的部署圖為參考依據,把部署中的節點當成物件進行塑模,

以圖 4-8 的部署圖為例,其中包含系統用以外介實體進行互動的介面,如電源

模組、輸出模組,每個軟體介面都可以當成是介面物件,而為滿足環境需求與

失效處理介面物件都需要有一個控制物件以處理這些需求。另外,為達成功能

需求需要有一個或一個以上的控制物件,用以執行控制程序以滿足功能需求,

亦需要有實體物件用於儲存系統在互動行為的所需資訊。以圖 4-9 的系統部署

圖為例,所能找出的物件如下所列:

1. 行為者:汽車電源。

2. 介面物件:電源模組、輸出模組。

3. 控制物件:使用個案。

4. 實體物件:系統資料模組。

完成找出物件後從事件條列式中的動詞找出物件的操作,從使用使案描述

Page 67: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

55

中找出相對應的操作所傳遞的訊息,並歸納成物件的屬性,再將物件、操作、

與屬性等項目填入表 4-9中。在找出物件的同時應不難發現物件與物件互動的

行為,而這樣的行為可從描述性綱目、使用個案描述或使用個案間的關係找出,

或是從事件條列式的主詞、動詞、受詞中到找互動的對象,再回溯到使用個案

描述或描述性綱目,找出物件互動的行為,與互動過程中所傳遞的訊息。

事件條列式的描述方法是主詞+動詞+受詞,主詞與受詞都具有名詞特性,

可以從中找出物件,而動詞是代表著某一種操作形式(如:傳送、接收、輸出…

等),這也會屬於物件互動的行為之一,所以不論從事件條列式、使用個案描述

或描述性綱目,均能找出物件間互動的行為,並將找出互動行為所對應的操作

填入表 4-9中。

表 4- 9 使用個案物件匯總表

使用個案名稱:系統開機與初始化

物件類型 物件 屬性 訊息與操作

介面物件 電壓偵測模組 電壓資料 偵測 9~16V 電壓

步驟步驟步驟步驟 2::::繪製循序圖繪製循序圖繪製循序圖繪製循序圖

循序圖的主要元件包含:生命線、訊息線、訊息與操作、控制焦點、與框

架。經過步驟 1 與 2 之後會找出系統內、外物件與互動行為及訊息,再繪製成

循序圖,步驟說明如下:

1.將用以表達物件的生命線,以行為者、介面物件、控制物件、與實

體物件的順序由左至右排列。

2.在生命線上標示物件間所傳遞或接收的訊息與操作。

3.在每個生命線執行動作的時段,由上而下的畫出控制焦點。

循序圖所表達的互動行為,是從系統的角度來看系統完成使用者需求的動

Page 68: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

56

態行為,若在繪製循序圖的過程中發現不完整或不一致的情況,須先找出問題

並作必要的修改,使循序圖能真正表達出符合需求的動態行為。

步驟步驟步驟步驟 3::::描述描述描述描述訊息與操作訊息與操作訊息與操作訊息與操作

繪製循序圖過程中會需要標示操作與訊息,因此對於每一個操作與訊息都

需加以詳細描述,讓系統開發團隊能清楚瞭解循序圖中每個操作的內容,並表

達出訊息的範圍與型態記錄於表 4-10中。

由於循序圖需滿足功能需求、環境需求、介面需求與失效處理,因此需要

對每個訊息與操作進行詳細的描述,而訊息的部份需描述訊息的範圍、型態、

與狀態,對於操作的部份需描述操作所提供的操作程序與失效處理,如表 4-10

中的範例,物件電源偵測模組所提供的操作是接收使用者所提供的 9~16V 電壓

訊息,並傳送出目前所偵測到的系統電壓訊息;該物件所接收到的訊息範圍是

9~16V型態是 Byte 而訊息的狀態為正常。

表 4- 10 循序圖之訊息與操作描述

使用個案名稱:系統開機與初始化

項次 物件 訊息與操作 訊息描述 操作描述

1 電源偵測模

偵測 9~16V 電源 接收:

範圍:9~16V

型態:Byte

狀態:正常

傳送:

範圍:9~16V

型態:Byte

狀態:正常

接收使用者所提供的 9~16V 電壓

後傳送目前所偵測到的系統電壓,

若偵測到的電壓在範圍內則將訊息

狀態設為正常,若偵測到的電壓不

在範圍內則將訊息狀態設為異常,

若是尚在偵測中則設定為處理中。

Page 69: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

57

二、 時序圖塑模方法與步驟

車載嵌入式系統所需滿足的功能需求、環境需求、時間需求、介面需求與

失效處理都需要在時序圖上表達出來,也由於車載嵌入式系統是用於車身信號

控制,所以輸入信號的時間與輸出信號的時間也都用時序圖進行表達,以圖 2-1

的系統為例,當簡易的停車輔助控制器偵測到障礙物後,到系統從蜂鳴器與顯

示器輸出警告音與燈號,就是運用時序圖表達蜂鳴器的鳴叫週期與次數,與顯

示器的閃爍週期與次數。

所以時序圖可以用以表達系統在互動行為上的時序與時間限制,也能從時

序圖瞭解系統的運作是否正確,因此時序圖在車載嵌入式系統中是一項不可或

缺的塑模工具。

時序圖以時間軸作為表達系統互行為的基礎刻度,從連續的時序運作可以

清楚的瞭解物件互動的時間狀況,每個物件的互動時間與持續時間是否合適,

若在繪製過程發現物件互動的時間序列不合理,則應先找出問題再做必要的修

正。時序圖完成後,可以做為程式設計人員的設計依據,亦可做為系統測試人

員確認系統運作是否符合要求的參考依據。

時序圖的塑模步驟包含:找出物件、狀態與訊息、製定時間尺規繪製時序

圖、描述互動時序等步驟,執行的程序如圖 4-13 所示,以下將詳細說明每個塑

模步驟的執行方法。

找出物件、狀態與

訊息

描述互動時序

制定時間尺規繪製

時序圖

圖 4- 13 時序圖塑模步驟

Page 70: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

58

步驟步驟步驟步驟 1::::找出物件找出物件找出物件找出物件、、、、狀態狀態狀態狀態與訊息與訊息與訊息與訊息

由於時序圖主要是用以補足循序圖在時間上無法表達的缺點,所以時序圖

的物件可以使用循序圖的物件,再找出物件中所包含的狀態與訊息,若循序圖

中的物件無法運用在時序圖中,可能要先找出問題原因修正後再繼續進行下一

步的塑模步驟。

運用循序圖塑模步驟 1 的方法與表 4-9 的內容找出行為者、介面物件、控

制物件、實體物件後,再依據表 4-10循序之訊息與操作描述,判斷出物件可能

存在的狀態,並填入表 4-11中。如表 4-11中的範例,表中的物件欄位內容是

運用循序圖內的物件如表 4-10,訊息與操作欄位的內容也是運用循序圖內的訊

息與操作如表 4-10,而狀態欄位的內容是依據循序圖的操作描述所匯整而成。

表 4- 11 時序圖的物件、狀態與訊息匯總表

使用個案名稱:系統開機與初始化

項次 物件 訊息與操作 狀態

1 電源偵測模組 偵測 9~16V 電源 物件狀態:偵測電壓中/偵測電壓完成

訊息狀態:正常/異常/處理中

步驟步驟步驟步驟 2::::制定時間尺規制定時間尺規制定時間尺規制定時間尺規繪製時序圖繪製時序圖繪製時序圖繪製時序圖

在完成找出物件、狀態與訊息後即開始依據系統的時間需求,找出系統執

行活動的最小時間單位如秒(s)、毫秒(ms)、微秒(us),並制定成時間尺規再繼

續繪製時序圖的步驟。由於時序圖與循序圖使用相同的物件與操作,故在繪製

時序圖時亦須遵守循序圖的繪圖要求,如下所列:

1.行為者不能直接與控制物件或實體物件互動。

2.行為者要透過介面物件與控制物件互動。

3.介面物件要透過控制物件才能與實體物件互動。

4.實體物件不能直接與實體物件互動。

Page 71: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

59

時序圖的主要元件包含:生命線、訊息、狀態、時間軸、時間尺規、時間

限制、與通用值生命線。繪製時序圖的步驟說明如下:

1.選擇繪製時序圖的時間尺規。

2.將用以表達物件的生命線,以行為者、介面物件、控制物件、與實

體物件的順序由上而下排列。

3.在生命線內標示物件的狀態、時間軸與時間限制。

4.在生命線的狀態轉換點標示訊息。

以時間順序的方式來表達的系統互動行為與時間限制,可以從系統的運作

的方式來看系統完成使用者需求的動態行為,若在繪製時序圖的過程中發現問

題,必須先找出問題並作必要的修改,使時序圖更能表達出符合實際系統運作

的動態行為。

步驟步驟步驟步驟 3::::描述互動時序描述互動時序描述互動時序描述互動時序

由於時序圖需滿足功能需求、時間需求、與失效處理等需求,所以在完成

時序圖繪製後隨即開始描述互動時序並填入表 4-12中,系統開發團隊可以從描

述的過程,確認所繪製的時序圖是否滿足上述要求,亦能瞭解防止系統失效的

處理方式。

時序圖的著重於時間先後順序與時間限制的表達,因此在繪製時序圖之前

應先瞭解物件的互動行為與時間先後順序關係,並使用下列方式進行時序描述:

主詞+行為+物件狀態+時間+訊息狀態

在表 4-12 的時間軸填入開始時間與結束時間,在物件欄填入物件名稱,

在時序描述欄中以上述方式描述時序的操作內容與時間限制。如表 4-12 的範

例,使用者在 0ms 時接上 9~16V 的汽車電源,同時由電壓偵測模組接收到

9~16V 的電壓,該模組在 1 ~ 20 的期間進行電壓偵測並改變物件狀態為偵測電

壓中,在 20ms 的時間一到即將設定電壓的訊息狀態,並將訊息傳送出且同時

Page 72: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

60

改變物件狀態為完成電壓偵測,而失效處理則是說明說物件對於可能造成系統

失效的處理方式。

表 4- 12 互動時序描述表

使用個案名稱:系統開機與初始化

物件 時序描述 時間軸

使用者 正常時序:

使用者接上 9~16V 電壓

失效處理:無

0 ~ 1

電壓偵測

模組

正常時序:

電壓偵測模組接收到使用者所提供的 9~16V 電壓後,

物件狀態由偵測電壓完成轉換為偵測電壓中並持續偵

測電壓 20ms,完成後,若偵測到的電壓在範圍內則將

訊息狀態設為正常,若偵測到的電壓不在範圍內則將訊

息狀態設為異常,若是尚在偵測中則設定為處理中,設

定完成後則傳送目前所偵測到的系統電壓並將物件狀

態設定為完成電壓偵測。

失效處理:

固定以 20ms 的時間偵測電壓,以避免因電壓變動而導

致互動產生異常。

1 ~ 20

三、 狀態圖塑模方法與步驟

狀態是物件在其系統執行互動行為中,在某一時間點滿足特定條件或情

況,而持續執行某活動或等待某事件。轉換是觸發物件從來源狀態進入到另一

個目的狀態的事件、成立條件、或動作。

Page 73: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

61

車載嵌入式系統需滿足功能需求、環境需求、時間需求、介面需求與失效

處理等需求,從系統需求塑模的活動圖可以瞭解系統會有許多的判斷決策與轉

換,而且每個活動結束都需要進行轉換,因此有適當的輸入訊息系統就可以做

出適當的轉換,但若出現例外狀況的輸入訊息時系統應要執行失效處理,以避

免系統發生不正確的狀態轉換而導致系統錯誤。

狀態圖的塑模步驟包含:找出物件的狀態與轉換、繪製狀態圖、精煉狀態

圖等步驟,執行的程序如圖 4-14 所示,以下將詳細說明每個塑模步驟的執行方

法。

找出物件的狀態與

轉換

繪製狀態圖

精煉狀態圖

圖 4- 14 狀態圖塑模步驟

步驟步驟步驟步驟 1::::找出找出找出找出物件的物件的物件的物件的狀態與轉換狀態與轉換狀態與轉換狀態與轉換

狀態與轉換是構成狀態圖的基本要素,在進行使用個案描述、與循序圖及

時序圖的塑模過程,可以找出系統內所存在的物件,再依據物件的描述找出物

件在某一時間的狀態與轉換等,如:可能發生的事件、可能成立的條件、執行

特定動作或動作完成後的情況等。

狀態圖是以用以表達物件互動時的狀態與轉移,而物件在執行特定的操作

時就是存在於特定的狀態,因此狀態可以將表 4-11 的訊息與操作欄位內容當作

狀態,當物件完成這個操作時表示會有轉移產生,所以將所找到的狀態與轉移

填入表 4-13中,如表 4-13 的內容是依據表 4-11 的範例內容,將偵測電壓模組

的訊息“偵測 9~16V 電源”當成狀態填入表 4-13中,再依據表 4-11 的狀態指

標研判出“完成偵測電源”這個轉換,並填入表 4-13中。

Page 74: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

62

若狀態圖所需表達的狀態是屬於使用個案間的狀態與轉移,可以運用超狀

態進行表達,系統開發團隊依據上述方法找出一個使用個案中的所有狀態後,

再重覆運用相同的方法找出所有使用個案內的狀態與轉換。

表 4- 13 狀態圖的狀態匯總表

使用個案名稱:系統開機與初始化

項次 物件 狀態 轉換

1 電壓偵測模組 偵測 9~16V 電源 完成偵測電源

2 電壓偵測模組 傳送系統電壓 完成傳送電壓

步驟步驟步驟步驟 2::::繪製狀態圖繪製狀態圖繪製狀態圖繪製狀態圖

完成找出物件的狀態與轉換的步驟後,運用狀態機圖元件將物件狀態以開

始狀態、一般狀態、歷史狀態、同步組合狀態、循序組合狀態、與結束狀態等

元件來表達。

在繪製狀態圖時依據循序圖的物件互動順序,依據訊息與操作的發生順序

表達出所對應的狀態,再依據狀態與狀態間的轉換關係,運用轉換元件連結狀

態並表達出狀態與狀態間的關係,以完成繪製初步的狀態圖的活動。若某一狀

態需表達自身轉換時,其轉換元件的箭頭由該狀態伸出後,繞一圓弧後再指回

該物件,並在圓弧上表達轉換的事件/條作或動作。

狀態圖可表達出車載嵌入式系統在接收不穩定的環境干擾訊號,是否可能

在系統內部產生錯誤狀態,以表 4-13 為例當電壓偵測模組完成偵測電源後,應

轉換到傳送系統電壓,若有轉換到其它狀態,則表示系統會產生錯誤而影響了

系統的穩健性,為避免錯誤發生,在完成初步的狀態圖後需再進行精煉狀態圖

的步驟。

Page 75: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

63

步驟步驟步驟步驟 3::::精煉狀態圖精煉狀態圖精煉狀態圖精煉狀態圖

精煉狀態圖是一個改善狀態圖的步驟,系統開發團隊在完成初步的狀態圖

繪製完成後,即可開始進行狀態圖的狀態與轉換之改良,可避免系統的錯誤狀

態或是將狀態整合成超狀態或細分出子狀態。

系統開發團隊可以運用活動圖的活動與轉移來進行精煉狀態圖的步驟,因

為當系統在執行活動圖中的活動時系統會處在特定的狀態,因此狀態圖的狀態

亦需能與活動圖的活動互相對應,如此可以再次確認車載嵌入式系統的分析與

設計是否否合需求,亦可以避免錯誤的狀態產生。

四、 類別圖塑模方法與步驟

由於車載嵌入式系統必需滿足功能需求、環境需求、時間需求、介面需求

與失效處理等需求,因此車載嵌入式系統的靜態結構必需能支援系統動態行為

滿足上述需求。

為建構能滿足執行動態行為需求的系統靜態結構,必須先找出物件並整理

出類別與參數(屬性、操作、與關係),為了使系統能符合運行動態行為的要求,

須要從循序圖、時序圖、狀態圖等互動行為塑模中找出相關的物件再整理成類

別再繪製成類別圖。

類別圖的塑模步驟包含:找出類別、屬性、操作與關係、繪製類別圖、描

述類別等步驟,執行的程序如圖 4-15 所示,以下將詳細說明每個塑模步驟的執

行方法。

Page 76: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

64

找出類別、操作、

屬性與關係

繪製類別圖

描述類別

圖 4- 15 類別圖塑模步驟

步驟步驟步驟步驟 1::::找出類別找出類別找出類別找出類別、、、、操作操作操作操作、、、、屬性屬性屬性屬性與關係與關係與關係與關係

建構類別圖的第一個步驟是要找出類別、類別的屬性與操作、及類別間的

關係。類別是描述物件的結構,定義組成物件的屬性與欄位,物件是類別的執

行個體(吳仁和,2012),要找出類別前要先找出物件,再將所找到的物件規格

化成類別。

系統開發團隊在進行循序圖塑模時即依據車載嵌入式系統的邏輯架構找

出物件,經過循序圖、時序圖與狀態圖等互動行為塑模步驟,表示在上述過程

中所找出的物件是可以滿足車載嵌入式系統需求,為所找到的物件定義屬性與

欄位以規格化成類別。

系統開發團隊在繪製類別圖前需先找出類別、找出類別的屬性與操作、找

出類別間的關係,執行方法說明如下:

1.確認類別:將在循序圖、時序圖、與狀態圖的塑模過程中,所找出

的實體物件、介面物件、與控制物件轉換成類別圖中的

實體類別、介面類別、與控制類別,如:蜂鳴器驅動模

組是屬於介面物件,就直接將蜂鳴器驅動模組轉換成介

面類別。

Page 77: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

65

2.確認操作:類別的操作是用以描述類別所要執行的動作,如訊息處

理、訊息傳遞、邏輯運算等,在表 4-10循序圖之訊息

與操作描述中,偵測 9~16V 電壓就是電壓偵測模組所提

供的操作之一。

3.確認屬性:類別的屬性是物件在執行某一操作時的所會用到的特定

單元(Specific Unit),且在任一時間點上只有一個值。如

表 4-10循序圖之訊息與操作描述中訊息描述的內容就

是類別的屬性。

4.確認關係:類別間的關係是指類別與類別間的連結,在靜態結構塑

模中類別間具有相依關係、一般化關係、關聯關係與實

現化關係等四種。從表 4-10循序圖之訊息與操作描述

的操作描述內容,若電壓偵測模組有用到其它類別則表

示電壓偵測模組與其它類別有相依關係;若所描述的內

容是與某個類別有特定性質則表示電壓偵測模組與其

它類別有一般化關係;若所描述的內容是會使用到某一

類別的服務,但未擁有此服務或訊息則表示電壓偵測模

組與其它類別有關聯關係。

在完成上述的步驟後,分別確認後的類別、類別的操作及屬性、與類別間

的關係填至表 4-14 的相對應欄位中。

表 4- 14 使用個案類別匯總表

使用個案名稱:系統開機與初始化

項次 類別 屬性 型態 操作 類別的關係

1 電源偵測模組 電壓值 Byte 偵測 9~16V 電源 相依關係

2 初始化模組 初始化狀態 Byte 傳送初始化完成 相依關係

Page 78: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

66

步驟步驟步驟步驟 2::::繪製類別圖繪製類別圖繪製類別圖繪製類別圖

類別圖的繪製可區分為二部份進行,第一是先繪製單一使用個案的類別

圖,完成所有使用個案的類別圖繪製後,第二是匯整所有使用個案的類別圖,

整理成總類別圖。

繪製總類別圖時須依據使用個案圖與類別匯總表,將所有類別先依據系統

動態行為的發生順序由上而下配置,再填入每個類別所擁有的屬性與操作,在

繪製過程中發現同一個操作或屬性分散在不同的類別時,應分析發生原因再修

改類別、屬性與操作。

完成所有類別的屬性與操作的填寫後,再依據使用個案圖與類別匯總表中

類別的關係,運用運用相對應的類別圖元件連結所有的類別,若兩類別有關聯

關係且其基數為多對多,則在該關係上可能會有屬性,則此種關係運用關聯關

係進行表達。

在完成初步的總類別圖繪製後,應運用類別正規化(Class Normalization)

的方法再次檢視總類別圖中所有類別的結構是否良好,且類別的操作、屬性是

否正確,類別與類別間的關係是否適當,若有問題則應分析原因並進行必要的

改善,讓類別圖能正確的表達出系統的靜態結構。

步驟步驟步驟步驟 3::::描述類別描述類別描述類別描述類別

完成繪製類別圖步驟隨即始開進行描述類別的活動,並使用自然語言與程

式語言來描述類別所要完成的行為,再詳細描述類別的操作、屬性、與類別間

的關係,並為每一個類別完成一份類別描述表,作為系統程式設計人員進行類

別與樣板程式碼轉換的依據。

描述類別有兩個步驟,第一是描述類別的屬性、第二是描述類別的操作與

關係,執行方法說明如下:

1.描述類別的屬性:

Page 79: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

67

依據類別匯總表將同一類別的屬性匯整到表 4-15 的屬性欄位,再

循序圖的操作描述與時序圖的時序描述,定義該項屬性的型別、長

度、與初始值並填入表 4-15 的相對應欄位中,並在類別屬性描述

的用途說明欄位說明該屬性的用途或功能。若該屬性與時間相關需

在用途說明欄中表達時間的基準單位,如毫秒(ms)或微秒(us)。

表 4- 15 類別屬性描述表

項次 類別 屬性 型態 長度 初始值 用途說明

1 電源偵測模組 電壓值 Byte 1 0 用於暫存偵測到的電壓值

2.描述類別的操作與關係:

進行類別描述著重在將類別規格化與文件化,需詳細描述類別的限

制、屬性、關係、操作、與操作描述,並填入表 4-16中。在進行

操作描述時應以自然語言和程式語言方式描述類別的行為邏輯,執

行方法說明如下:

●類別名稱:用以表達該類別的名稱。

●類別的限制:用以表達類別要完成動態行為時的必要條件,如

系統時基(Time Base)、狀態或條件等。

●屬性描述:用以表達類別的屬性與類別屬性描述表相同,如表

4-15 的內容。

●類別的關係:用以表達該類別與其它類別間的關係,如表 4-14

使用個案類別匯總表中類別的關係。

●類別的操作:用以表達類別所提供的操作,如表 4-14使用個

案類別匯總表中的操作。

●類別的操作描述:進行操作描述時,應使用自然語言與程式語

Page 80: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

68

言(If…else)進行描述,先依據表 4-10循序

圖之訊息與操作轉換成類別的操作描述,在

描述過程中需整合與時序相關的互動時序

描述表(表 4-12)和狀態相關的狀態匯總表

(表 4-13),進行類別的操作描述。

表 4- 16 類別操作與關係描述表

類別名稱:電源偵測模組

類別的限制 1. 輸入訊息長度為 1 個 Byte

2. 輸入值的範圍為 0~255

屬性描述 如表 4-15 的內容

類別的關係 相依關係:初始化模組

類別的操作 偵測 9~16V 電源

類別的操作

描述

電壓值,電壓值的狀態,模組的狀態 PowerDectionModule (void)

{ Byte temp ;

temp = 0;

設定模組的狀態為運作中;

temp = 汽車電壓信號;

if 汽車電壓信號 < 255

{ 設定電壓值的狀態為正常; }

else { 設定電壓值的狀態為異常; }

電壓值 = temp;

設定模組的狀態為閒置中;

}

Page 81: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

69

第三節第三節第三節第三節 程式碼轉換程式碼轉換程式碼轉換程式碼轉換

由於車載嵌入式系統需滿足功能需求、環境需求、時間需求、介面需求與

失效處理等需求,在系統開發過程需儘可能的減少溝通落差,才能確保程式碼

是符合上述需求。程式碼轉換是將 PIM塑模完成的成果,轉換成與系統平台相

依的程式碼,以降低系統程式設計人員依據 PIM塑模成果設計程式時的錯誤、

與系統開發團隊的溝通落差,減少程式碼開發過程中可能產生的人為疏失。

此章節將著重說明如何運用部署圖、循序圖、時序圖、狀態圖、與類別圖

等模式圖的塑模成果來進行車載式嵌入式系統的程式碼轉換,並說明轉換方法

與步驟,使轉換後的程式碼更能與 PIM塑模成果相符,亦能依據模式圖來對程

式碼進行驗證活動,確認程式設計的正確性。

程式碼轉換階段的活動包含:平台選定與 Code轉換。首先由系統開發圖

隊依據部署圖與 PIM塑模成果,選定符合執行系統動態需求的系統平台,再依

據類別圖、類別性描述、與類別描述為核心,先進行資料(Data)轉換(如:資料

型態的對應與類別的轉換等),再進行程式碼的轉換,完成上述活動後依據使用

個案描述與類別描述精煉程式碼,使程式碼所展現出的動態行為,更能符合使

用者的需求。程式碼轉換階段的流程,如圖 4-16 所示。

程式碼轉換

Code

轉換

平台

選定

圖 4- 16 程式碼轉換階段

Page 82: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

70

一、 平台選定方法與步驟

從需求塑模到 PIM塑模的過程,就已在分析與設計系統的動態行為與靜

態結構並規格化,因此平台選定的方法是從需求塑模與 PIM塑模的成果,找出

與系統平台需求的相關資訊,再找出用以運行的系統元件,以選定出一個適合

運行系統動態行為的系統平台。

平台選定步驟包含:找出系統效能需求、找出系統元件、決定系統平台等

步驟,如所示圖 4-17,以下將詳細說明每個步驟的執行方法。

找出系統效能需求

找出系統元件

決定系統平台

圖 4- 17 平台選定步驟

步驟步驟步驟步驟 1::::找出系統找出系統找出系統找出系統效能效能效能效能需求需求需求需求

由於車載嵌入式系統著重於信號處理與控制,因此非常注重系統內部運行

時序與外部輸出時序的要求,以滿足系統在執行動態互動行為的時序要求。因

此系統平台的程式碼處理速度必須能滿足時序圖上所有時間的要求,才能滿足

系統整體的運行效能。

找出系統效能需求可以從使用個案描述中,找出和時間相關的操作描述與

時序圖中找出每個物件的執行週期,如圖 4-18 與圖 4-19 所示。在圖 4-18 的

使用個案操作描述中需滿足的最小執行時間是 75ms,從圖 4-19中的時序圖中

需滿足的最小執行時間是 100us,因此在考量上述的系統運行需求與系統建置

成本,決定出可以符合系統效能需求的系統平台處理速度,以滿足系統的運作

效能。

Page 83: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

71

與時間相

關的描述

圖 4- 18 使用個案的操作描述

每個物件的

執行時間

圖 4- 19 使用個案的時序圖

步驟步驟步驟步驟 2::::找出系統元件找出系統元件找出系統元件找出系統元件

元件(Component)是系統的實體模組,提供系統內部元件與介面用以實現

系統功能、與使用者或其它系統的互動行為。車載嵌入式系統的元件會因為所

選用的微控制器不同的有所差異,通用性(Generic)元件包含隨機存取記憶體

(Random Access Memory, RAM)、唯讀記憶體(Read Only Memory, ROM)、

計時器(Timer)、輸出埠(Output Port)、輸入埠(Input Port)、類比與數位轉換埠

(Analog-to-Digital Converter, ADC) 非同步串列傳輸訊埠 Universal Asynch-

ronous Receiver/Transmitter, UART)、與車用網路通訊埠等。

系統元件是屬於系統的靜態結構,進行 PIM靜態結構塑模時所產出的類

別圖亦是用以表達系統的靜態結構,因此可以從類別圖的實體類別與介面類別

Page 84: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

72

與部署圖中找出相對應的系統元件並填入表 4-17 中,並以表 4-17 的電源偵測

模組為例,由於電源模組需要偵測汽車的 9~16V 電源是屬於類比信號,因此所

需要的系統元件是 ADC,為減少類比與數位轉換時的失真度(Distorton)所以元

件需使用高解析度與快速轉換的規格,在完成系統元件匯總表後可從系統元件

轉換出系統平台所需要的埠數。

表 4- 17 系統元件匯總表

項次 類別 系統元件 元件規格

1 電源偵測模組 ADC 1. 數位解析度 10 bits

2. 類別與數位轉換時間 10us

步驟步驟步驟步驟 3::::決定系統平台決定系統平台決定系統平台決定系統平台

由步驟 1 可以決定出系統平台的運行速度,由步驟 2 可以決定出系統平台

運行時所需要的埠數,再依據類別圖的類別描述決定系統平台所需要的 ROM

與 RAM 的容量,並將上述資訊填入表 4-18 的系統需求欄位。

車載嵌入式系統是以微控制器作為系統平台的運作核心,因此系統平台的

選定要素會著重考量微控制器的處理速度、ROM 和 RAM 的容量、輸出入埠的

數量、通訊埠、與微控制器的架構,如:精簡指令集(Reduced Instruction Set

Computer, RISC)或複雜指令集(Complex Instruction Set Computer, CISC)等。

車載嵌入式系統常用的系統平台如:德州儀器(Texas Instruments, TI)、飛

思卡爾(Freescale)、恩智浦(NXP)、英飛凌(Infineon)、與 Microchip等。系統

開發團隊需先評估多個系統平台的規格,並填入表 4-18 的系統平台欄位,再選

用與系統需求最接近的系統平台,進行 Code轉換。

Page 85: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

73

表 4- 18 平台選用評定表

系統需求

系統平台

運行速度 ROM RAM 埠數 成本 選定結果

20MHz 1.5K Bytes 64Bytes 18 NT 25

PIC16F72 20MHz 2K Bytes 128Bytes 22 NT 30 V

MC9S08AC16 40MHz 16K Bytes 1K Bytes 38 NT 70 X

二、 Code轉換方法與步驟

Code轉換是一個實現系統程式碼的過程,從需求塑模與 PIM塑模的成果

轉換成 Code,並載入至系統平台運行程式碼,實現使用者與系統的動態互動

行為,並運用需求塑模與 PIM塑模成果確認系統運作的正確性。

Code轉換的第一步是先進行屬性資料轉換,將 PIM塑模中每個物件或類

別所用到的資料與訊息格式,轉換成車載嵌入式系統所專屬的屬性資料格式,

再依據使用個案描述表、循序圖、時序圖、狀態圖、與類別圖進行程式碼轉換,

完成初版的程式碼後再對程式碼進行精煉與改善,與使程式碼更能符合效能需

求。

Code轉換步驟包含:資料轉換、程式碼轉換、精煉程式碼等步驟,如所

示圖 4-20,以下將詳細說明轉換步驟與執行方法。

屬性資料轉換

程式碼轉換

精煉程式碼

圖 4- 20 Code轉換步驟

Page 86: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

74

步驟步驟步驟步驟 1::::屬性屬性屬性屬性資料資料資料資料轉換轉換轉換轉換

Code基本組成元件包含暫存於RAM的屬性資料與永久儲存於ROM的程

式碼,由於需求塑模與 PIM塑模的成果都與平台無關,因此從 PIM塑模到程

式碼實現必須經過屬性資料的轉換與程式碼的轉換,而屬性資料轉換著重於資

料型態的對應與資料格式的轉換。

在完成選定系統平台,即著手進行資料型態與資料格式的轉換,將系統平

台的資料型態逐項列出再逐項的填入相對應的類別屬性的資料型態,如表 4-19

所示。

依據類別描述表與資料型態對應表,將類別描述中的每一項屬性都轉換到

相對應的系統平台上,並為每個類別發展一份類別屬性轉換表,如表 4-20 所

示。以表 4-20 的電源偵測模組為例,該模組的屬性轉換到系統平台的型態都為

Byte,長度都為 1。

表 4- 19 資料型態對應表

類別屬性的資料型態 系統平台資料型態

Boolean Bit

Byte Byte

Double Word

Integer Integer

String String

表 4- 20 類別屬性轉換表

類別名稱:電源偵測模組 系統平台模組:CHK_System_Voltage

類別屬性 系統平台屬性資料

名稱 型態 長度 名稱 型態 長度

1 電壓值 Byte 1 System_Voltage Byte 1

Page 87: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

75

步驟步驟步驟步驟 2::::程式碼轉換程式碼轉換程式碼轉換程式碼轉換

程式碼轉換是 Code 轉換的核心步驟也是一項反覆的步驟,系統程式設計

人員需求從類別描述轉換成程式碼,並檢視程式碼的正確性若發現錯誤應即時

修正,使程式碼所產生的動態行為能符合要求。

程式碼轉換的方法是以類別描述中的操作描述來進行程式碼的轉換,程式

碼的執行順序要與循序圖中的互動順序相符,與時間相關的輸入輸出時序要與

時序圖相符,與狀態轉換相關的判別條件要與狀態圖相符。程式碼轉換與類別

操作描述、循序圖、時序圖、與狀態圖的轉換對應如圖 4-21所示。

程式碼轉換過程式一定要運用循序圖、時序圖、與狀態圖來檢視程式碼轉

換的正確性,無法單從類別操作描述中直接轉換出程式碼,容易讓轉換完成的

程式碼與 PIM塑模成果產生錯差或錯誤。

類別操作描述

轉換成程式碼

ON/OFF

時間與

時序圖

相同

執行順序與循

序圖相同

狀態轉換與狀

態圖相同

圖 4- 21 程式碼轉換對應方式

步驟步驟步驟步驟 3::::精精精精煉煉煉煉程式碼程式碼程式碼程式碼

完成程式碼轉換的步驟並不表示車載嵌入式系統的程式碼已經完成,由於

車載嵌入式系統需滿足功能需求、環境需求、時間需求、介面需求、與失效處

理等需求,所以需要繼續精煉程式碼以符合找出程式碼中可能存在的失效因素

與不符系統需求的程式碼。

Page 88: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

76

精煉程式碼的方式可以從改善程式碼的效能與失效模式進行,分析程式碼

找出過多的遞回呼叫(Recursive Call)或過長的演算法(Algorithm),進行適當

的調整或分段執行以提升程式碼的執行效能與系統的即時性。考量程式碼中可

能產生的失效因素如:錯誤的型別、資料溢位、不當的中斷(Interrupt)等,並

儘可能的防範或避免失效的產生,以確保系統的即時性和穩健性。

精煉程式碼是個反覆的步驟,在精煉的過程中若發現問題,應先分析問題

發生現象與原因,再進行必要的改善活動,使程式碼更能符合使用者需求與系

統需求。

Page 89: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

77

第五章第五章第五章第五章 展示展示展示展示與評估與評估與評估與評估

本章主要以實際的車載嵌入式系統開發案例進行可用性測證,以驗證方法

論的正確性與完整性。

以下將以 C 公司所負責開發的停車輔助控制器為實際案例,依據「結合

MDA 與 UML 的車載式嵌入系統塑模方法」所規劃的塑模階段,逐步執行需求

塑模、PIM塑模、程式碼轉換,在執行過程中觀察方法論的應用狀況。

系統開發完成後邀請 C 公司的程式設計人員,參與方法論的討論並提出建

議,於會議結束後依據執行成果與建議評估方法論的可用性與符合程度。

第一節第一節第一節第一節 可用性測試案例可用性測試案例可用性測試案例可用性測試案例────C電子電子電子電子公司公司公司公司

一、 案例公司簡介

C 電子公司成立於 1982 年,至 2011 年員工人數有 352 人年營業額約 6

億新台幣,主要的產品項目包含:車用停車輔助控制器、車用防盜裝置、車用

影像系統與車載相關電子週邊產品。主要的服務項目包含:汽機車電子零配件

的技術研究、開發、生產製造、品質管控、售後保固與服務等。主要客戶包含:

國內汽車製造廠國瑞、本田、福特、裕隆日產、納智傑(LUXGEN)、中華、三

陽汽車與三葉機車等。其中 C 電子公司的車用停車輔助控制器,廣受國內汽車

製造廠採用。

隨著資訊科技的進步車用電子系統的應用也日漸增加,因此 C 電子公司持

續提升產品品質與產品研發技術,先後取國際品質認與國內外多項技術專利,

更為提升軟體品質於 2010 年通過 CMMI ML3 的認證。在產品研發技術部份,

除了即有的射頻(Radio Frequence, RF)通訊技術、障礙物偵測技術外更積極的

引進環車影像系統、自動停車輔助系統、與免鑰匙啟動系統的車載系統應用技

術,希望透過嚴謹的品質系統與產品技術的整合,期望能提供給客戶優質的產

Page 90: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

78

品與服務。

C 電子公司為達成上述的目標,積極的進行產品開發方法的改善與車載嵌

入式系統模組的建立,但目前 C 電子公司尚未有一套運用系統分析與設計方

法,並具有視覺化與規格化的產品開發方法,做為系統開發團隊的系統開發標

準與溝通標準。故本研究所發展出來的「結合 MDA 與 UML 的車載式嵌入系統

塑模方法」,符合 C 電子公司的需求可作為系統開發團隊的開發與溝通標準,

減少在產品開發過程中可能產生的錯誤,提高對客戶的產品品質與服務品質。

由於 C 電子公司所負責開發的停車輔助控制器是一個應用於車載系統的

控制器,是由微控制器作為運算處理核心再搭配簡單的週邊迴路組合而成,符

合車載嵌入式系統的定義。因此以下將用 C 電子公司實際負責開發的停車輔助

控制器,運用結合 MDA 與 UML 的車載式嵌入系統塑模方法進行產品開發,依

據方法論實作需求塑模、PIM塑模、與程式碼轉換,並於完成後評估方法論的

可用性。由於本研究的範圍並未涉及程式碼自動轉換的方法,故可用性評估的

範圍亦未將其包含在內。

二、 案例系統架構與範圍

停車輔助控制器的基礎功能是運用超音波障礙物偵測技術,用以輔助駕駛

人在駕駛汽車低速前進或倒車停車的活動時,運用安裝在車輛前方與後方的超

音波傳感器偵測障礙物,經過微控制器的運算處理後微控制器發出警示信息,

透過蜂鳴器的警示聲響與顯示器的警示燈號提醒駕駛人在車輛前方或後方有障

礙物,以避免汽車本體碰撞到障礙物。停車輔勵控制器於汽車本體的裝配位置

如圖 5-1 所示。

Page 91: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

79

傳感器控制器蜂鳴器手剎車排檔

顯示器

圖 5- 1 停車輔助控制器配置圖

停車輔助控制器提供給汽車駕駛人在行駛汽車時的障礙物警示以防車體

碰撞,其系統主要架構包含外部模組與內部模組,在外部模組的部份包含傳感

器、蜂鳴器、與顯示器等;在內部模組部份包含電源模組、傳感器驅動模組、

微控制器、輸入模組、蜂鳴器驅動模組、與顯示器驅動模組等,而系統方塊的

連結方式如圖 5-2 所示,各系統方塊說明如下:

1.傳感器:用以發送超音波信號偵測障礙物,並將接收到的超音波信

號進行濾波及放大後,再傳送至傳感器驅動模組。

2.蜂鳴器:用以發出警告音,警示駕駛人障礙物和汽車之間的距離與

系統狀態。

3.顯示器:用以發出警告燈,警示駕駛人障礙物和汽車之間的距離與

系統狀態。

4.電源模組:用以轉換汽車電壓,並提供系統充足的運作電壓及電流。

5.傳感器驅動模組:將微控制器所發送的信號傳送至傳感器,並將從

傳感器接收到的信號加以放大與整形後,再傳送

至微控制器。

6.微控制器:儲存與執行程式軟體,並展現出停車輔助控制器的動態

互動行為。

Page 92: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

80

7.輸入模組:接收來自汽車所提供的信號並轉換成微控制器可以接收

的信號位準。

8.蜂鳴器驅動模組:將微控制器所發送的警告聲響進行電壓轉換後傳

送至蜂鳴器。

9.顯示器驅動模組:將微控制器所發送的警告燈號進行電壓轉換後傳

送至顯示器。

微控制器

傳感器驅

動模組

右後方的傳感器

左後方的傳感器

右中後方傳感器

左中後方傳感器

右前方的傳感器

左前方的傳感器

蜂鳴器

顯示器

蜂鳴器驅

動模組

顯示器驅

動模組

輸入模組

電源模組

檔位信號

車速信號

汽車電源

手剎車信

圖 5- 2停車輔助控制器系統方塊圖

完整的停車輔助控制器的開發需包含軟體與硬體的共同開發,由於本研究

著重在於需求塑模、PIM塑模與程式碼轉換,完成開發後的程式碼將儲存於微

控制器中運行,因此本研究所包含的系統範圍是圖 5-2中以虛線長方形所表示

的微控制器,且並未涉及和系統相關的硬體設計與所有由汽車所提供的信號等。

Page 93: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

81

第二節第二節第二節第二節 可用性測試實作可用性測試實作可用性測試實作可用性測試實作────停車輔助控制器塑模停車輔助控制器塑模停車輔助控制器塑模停車輔助控制器塑模

停車輔助控制器是 C 電子公司為國內某日本品牌的汽車製造廠所開發的

車載嵌入式系統產品,該汽車廠期望停車輔助控制器提供下列的功能:

1.當駕駛人發動汽車時,同時啟動停車輔助控制器,並自動執行系統檢

測,若檢測結果為正常時則發出警示提醒駕駛者,若安裝於車身上的

傳感器異常時,亦發出警示提醒駕駛者。

2.當駕駛人以低速向前行駛時,安裝在汽車前方的傳感器若偵測到障礙物

時,則發出警示提醒駕駛人。

3.當駕駛人進行倒車時,安裝在汽車後方的傳感器若偵測到障礙物,則發

出警示提醒駕駛人。

4.駕駛者熄火後,則同時停車輔助控制器,且駕駛人以手動方式啟動或關

閉停車輔助控制器。

以下將依照「結合 MDA 與 UML 的車載式嵌入系統塑模方法」進行停車

輔助控制器的開發,並說明每個階段的產出,在以下實作過程中停車輔助控制

器將簡稱為 ECU (Electronic Control Unit, ECU)。

一、 需求塑模

需求塑模是由系統開發團隊以使用者的需求為作為產品開發的出發點,從

使用者的角度瞭解使用者和系統互動的狀況,再運用模式圖將需求表達出來,

與使用者確認需求。需求塑模階段所需執行的活動包含:需求擷取、使用個案

圖、活動圖等。

系統開發團隊在進行 ECU 的需求塑模時應著重於使用者本身的功能需求

和使用者與控制器之間的互動行為,以及控制器所需達成的安全、即時性和穩

健性等需求,並運用描述性綱目進行描述。

Page 94: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

82

(1)實作需求擷取實作需求擷取實作需求擷取實作需求擷取

步驟步驟步驟步驟 1::::擷取使用者需求擷取使用者需求擷取使用者需求擷取使用者需求

從使用者所提供與停車輔助控制器功能相關的承認圖中,整理出與 ECU

相關的功能需求、時序需求、與介面需求,如圖 5-3 所示。此 ECU限制使用

於操作電壓在 9~16伏特的車載系統中,且傳感器使用 100KHz超音波,在使

用系統的環境不能存在相同頻率的超音波信號。

功能需求 時間需求 界面需求

環境需求

圖 5- 3 停車輔助控制器系統功能圖

(一一一一)功能需求功能需求功能需求功能需求::::

從停車輔助控制器系統功能圖所擷取到使用者對 ECU功能需求,包含正

常操作模式與異常操作模式,如下所列:

A)正常操作模式:

A-1)前方偵測系統功能:

當 a.電門開啟;b. 放下手剎車 c.排檔在前進檔;d.顯示器開

關開啟成立時:

A-1-1.前方偵測系統啟動,前方蜂鳴器會鳴叫一聲。

Page 95: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

83

A-1-2.若前方偵測系統偵測到障礙物在 40~60cm,蜂鳴器要

慢鳴。

A-1-3.若前方偵測系統偵測到障礙物在 30~40cm,蜂鳴器要

快鳴。

A-1-4.若前方偵測系統偵測到障礙物在 10~30cm,蜂鳴器要

直鳴。

A-1-5.若電門關閉、手剎車拉起、排檔不在前進檔、或顯示器

開關關閉則停止前方偵測系統功能。

A-2)後方偵測系統功能:

當 a.電門開啟;b.排檔在倒車檔;c.顯示器開關開啟成立時

A-2-1.後方偵測系統啟動,後方蜂鳴器會鳴叫一聲。

A-2-2.若後方偵測系統偵測到障礙物在 60~100cm,蜂鳴器要

慢鳴。

A-2-3.若後方偵測系統偵測到障礙物在 40~60cm,蜂鳴器要

快鳴。

A-2-4.若後方偵測系統偵測到障礙物在 10~40cm,蜂鳴器要

直鳴。

A-2-5.若電門關閉、排檔不在倒車檔、或顯示器開關關閉則停

止後方偵測系統功能。

B)異常操作模式:

異常狀態:傳感器有損壞,傳感器接線錯誤或斷線。

B-1)前方偵測系統功能:

當啟動前方偵測系統:

B-1-1.若一個傳感器有異常狀態,前蜂鳴器要鳴叫二聲。

B-1-2.若二個傳感器有異常狀態,前蜂鳴器要鳴叫三聲。

B-1-3.若三個或以上傳感器有異常狀態,前蜂鳴器要鳴叫四

Page 96: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

84

聲。

B-2)後方偵測系統功能:

當啟動後方偵測系統:

B-2-1.若一個傳感器有異常狀態,後蜂鳴器要鳴叫二聲。

B-2-2.若二個傳感器有異常狀態,後蜂鳴器要鳴叫三聲。

B-2-3.若三個或以上傳感器有異常狀態,後蜂鳴器要鳴叫四

聲。

(二二二二)環境環境環境環境需求需求需求需求

從停車輔助控制器系統功能圖所擷取出系統運作時的環境需求,包含:運

作電壓、標準電壓、運作電流、待機電流、運作溫度、與儲存溫度,如下所列:

運作電壓:DC 9~16V

標準電壓:DC 12V

運作電流:200mA (最大)

待機電流:0mA

運作溫度:-30℃~80℃

儲存溫度:-40℃~85℃

超音波頻率:100KHz ± 10K

行車速度限制: 10Km 以下

(三三三三)時時時時間間間間需求需求需求需求

從停車輔助控制器系統功能圖所擷取出使用者在系統時序上的要求如表

5-1 所示,在瞭解時序需求的同時,除了系統的 ON/OFF 時間週期外,還需要

注意時間的正負誤差,因為這將會影響到系統效能。ECU 在時序需求上的計算

單位為亳秒(Millisecond, ms)。

Page 97: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

85

表 5- 1 系統時間需求

名稱 ON 的時間 OFF 的時間 說明

蜂鳴器慢鳴 80ms±8ms 220ms±22ms 偵測到障礙物在第三區段

蜂鳴器快鳴 80ms±8ms 80ms±8ms 偵測到障礙物在第二區段

蜂鳴器直鳴 ∞ 0 偵測到障礙物在第一區段

蜂鳴器鳴叫一聲 800ms±80ms ∞ 系統開機音

蜂鳴器鳴叫二聲 200ms±20ms 200ms±20ms 一個傳感器故障

蜂鳴器鳴叫三聲 200ms±20ms 200ms±20ms 二個傳感器故障

蜂鳴器鳴叫四聲 200ms±20ms 200ms±20ms 三個(含)以上傳感器故障

(四四四四)介介介介面面面面需求需求需求需求

從停車輔助控制器系統功能圖所擷取出使用者對系統介面的要求如表 5-2

所示。系統透過介面與使用者進行互動,在介面需求中所列出的介面可轉換為

介面物件與介面類別。

表 5- 2 系統介面需求

介面編號 介面代號 介面名稱 介面類別

1 IGN 電門開關 輸入

2 FL_SENSOR 前左傳感器 輸入/輸出

3 FR_SENSOR 前右傳感器 輸入/輸出

4 RML_SENSOR 後中左傳感器 輸入/輸出

5 RMR_SENSOR 後中右傳感器 輸入/輸出

6 RL_SENSOR 後左傳感器 輸入/輸出

7 RR_SENSOR 後右傳感器 輸入/輸出

8 BZ 蜂鳴器 輸出

9 INDICTOR SW 顯示器開關 輸入

Page 98: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

86

10 BACK LIGHT SIGNAL 剎車燈信號 輸入

11 RL LED 顯示器 輸出

12 POWER LED 電源燈指示燈 輸出

(五五五五)失效處理失效處理失效處理失效處理需求需求需求需求

從停車輔助控制器系統功能圖所擷取出系統運作時,可能發生的失效狀況

與失效處理方式,如表 5-3 所列:

表 5- 3 系統可能失效狀況與處理方式

項次 系統運行需求 可能失效狀況 失效處理方式

1 運作電壓 9~16V 電壓超過 16.1V 系統暫停運行

2 運作電壓 9~16V 電壓低於 8.9V 系統暫停運行

3 超音波頻率 100KHz 超音波信號受到干擾 系統暫停運行

4 汽車車速 10Km 車速信號受到干擾 關閉警示聲音及燈號輸出

5 顯示器開關 開關信號發生彈跳 擷取穩定的開關信號

6 電門開關 開關信號發生彈跳 擷取穩定的開關信號

步驟步驟步驟步驟 2::::建立描述性綱目建立描述性綱目建立描述性綱目建立描述性綱目

完成擷取使用者需求後,為每一項功能需求建立唯一編號與描述性綱目,

詳細描述 ECU 與使用者的互動情況,並整合時序需求的內容以數據描述 ECU

的輸出時序,並記錄於需求描述一覽表中,如表 5-4 所示。

表 5- 4 ECU 的需求描述一覽表

需求編號 原始需求 描述性綱目

A-1-1 前方偵測系統啟動,前方蜂鳴器

會鳴叫一聲。

1.汽車提供 9~16V 電源

2.汽車電門(IGN)開啟,手剎車放下,排檔桿在前進

檔,顯示器開關開啟。

Page 99: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

87

3.ECU檢查系統輸入狀態 50ms 與 ECU 電壓是否

達 9~16V 50ms。

4.ECU檢查電壓有 9~16V,蜂鳴器與顯示器輸出

ON 800ms 的開機音與燈號。

5.ECU檢查電壓低於 9V或高於 16V則 ECU停止

運行持續偵測系統電壓到恢復為止。

從需求描述一覽表中的描述性綱目,整理出與系統運作相關資料詞彙加以

定義與描述,並記錄於資料詞彙一覽中,如表 5-5 所示。

這些與系統運作相關的資料詞彙包含:ECU 電壓、障礙物距離、障礙物

區段、蜂鳴器 ON/OFF 的時間、顯示器 ON/OFF 的時間、傳感器異常的數量、

與車速等。

表 5- 5 ECU資料詞彙一覽表

編號 名稱 型態 規則/格式/範圍/公式 範例

D-1-1 前障礙物距離 BYTE 0x00~0xFF,0x01= 1cm 0x0A=10cm

D-1-2 前障礙物區段 BYTE 0x00~0x0F,0x01=第一段 0x03=第三段

D-1-3 前蜂鳴器 ON BYTE 0x00~0xFF,0x01= 5ms 0x0A=50ms

D-1-4 前蜂鳴器 OFF BYTE 0x00~0xFF,0x01= 5ms 0x0A=50ms

D-1-5 前顯示器 ON BYTE 0x00~0xFF,0x01= 5ms 0x0A=50ms

D-1-6 前顯示器 OFF BYTE 0x00~0xFF,0x01= 5ms 0x0A=50ms

(2)實作使用個案圖實作使用個案圖實作使用個案圖實作使用個案圖

步驟步驟步驟步驟 1::::找出行為者找出行為者找出行為者找出行為者

為了要能明確的找出行為者,需先將描述性綱目轉換成概念性綱目,並以

事件條列式的主詞+動詞+受詞的方式來表達需求,表 5-6 就是將 ECU描述性

Page 100: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

88

綱目轉換成事件條列式的成果。

表 5- 6 ECU概念性綱目一覽表

需求編號 描述性綱目 條列式編號 事件條列式

A-1-1-1 汽車提供 9~16V 電源 A-1-1-1-1

A-1-1-1-2

使用者+接上+汽車電源

汽車+提供+ 9~16V 電源

A-1-1-2 汽車電門(IGN)開啟,手剎車放下、

排檔桿在前進檔,顯示器開關開

啟。

A-1-1-2-1

A-1-1-2-2

A-1-1-2-3

A-1-1-2-4

使用者+開啟+電門

使用者+放下+手剎車

使用者+排檔+前進檔

使用者+開啟+顯示器開關

A-1-1-3 ECU檢查系統輸入狀態 50ms 與

ECU 電壓是否達 9~16V 50ms

A-1-1-3-1

A-1-1-3-2

ECU+檢查+系統輸入 50ms

ECU+檢查+電壓 50ms

A-1-1-4 ECU檢查電壓有 9~16V,蜂鳴器與

顯示器輸出ON 800ms的開機音與

燈號

A-1-1-4-1

A-1-1-4-2

A-1-1-4-3

ECU+判斷+電壓正常

ECU+輸出+前蜂鳴器 800ms

ECU+輸出+前顯示 800ms

依據方法論中行為者的定義,從表 5-6中所找到的行為者包含:使用者、

汽車、ECU、傳感器、蜂鳴器、與顯示器等。

步驟步驟步驟步驟 2::::找出使用個案找出使用個案找出使用個案找出使用個案

找出使用個案的方法是將 ECU概念性綱目一覽表中的事件條列式,依據

功能內聚力、順序內聚力、溝通內聚力、暫時內聚力、程序內聚力、邏輯內聚

力、偶發內聚力等原則,將事件條列式聚集成使用個案。

停車輔助控制器的使用個案可參考圖 5-2 的系統方塊,再依據內聚力原則

進行聚集成使用個案,實作成果如表 5-7 所示。

Page 101: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

89

表 5- 7 ECU使用個案一覽表

條列式編號 事件條列式 內聚力

原則

使用個案

編號

使用個案

A-1-1-1-1,A-1-1-1-2

A-1-1-3-1,A-1-1-3-2

A-1-1-4-1,A-1-1-4-2

A-1-1-4-3

使用者+接上+汽車電源

汽車+提供+電源

ECU+檢查+系統輸入 50ms

ECU+檢查+電壓 50ms

ECU+輸出+蜂鳴器 800ms

ECU+輸出+顯示器 800ms

程序內

聚力

U1 系統開機與初始化

經由運用內聚力原則,依據表 5-7 的事件條列式內聚而成的使用個案如下

所列:

1. U1系統開機與初始化

2. U2檢查系統輸入狀況

3. U3啟動或停止系統偵測障礙物

4. U4偵測障礙物

5. U5鳴叫與顯示

6. U6診斷系統狀況

步驟步驟步驟步驟 3::::描述使用描述使用描述使用描述使用個案個案個案個案並找出關係並找出關係並找出關係並找出關係

運用內聚力原則在步驟 2找出所有的使用個案,此步驟是要針對每一個使

用個案進行詳細的描述,依據表 5-7 ECU使用個案一覽表與表 5-6 ECU概念

性綱目一覽表的內容,詳細的描述每一個使用個案的名稱、行為者、目標、前

提、關係、結束狀態、與系列事件等項目。

描述停車輔助控制器的使用個案時,在系列事件中的正常程序應將系統的

時序需求表達在描述表中,以作為轉換成時序圖的重要依據。經詳細描述後的

使用個案如表 5-8 所示。

Page 102: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

90

表 5- 8 系統開機與初始化使用個案描述表

使用個案名稱:系統開機與初始化

行為者 使用者、汽車、ECU

目標 使系統開機讓使用者能使用系統

前提 使用者提供 9~16V 的電源

使用個案關係 檢查系統輸入狀況 (Extend)

鳴叫與顯示(Extend)

啟動或停止系統偵測障礙物 (Include)

結束狀態 使用者完成系統開機,使系統開始運作

系列

事件

正常

程序

事件 1:使用者接上電源

操作程序:

使用者接上 9~16V 的汽車電源,由汽車經由電源模組提供

9~16V 的電源,ECU 於 300ms 後從停止狀態轉換開始執行系

統初始化。

事件 2:ECU執行初始化設定

操作程序:

ECU透過初始化模組執行系統資料初始化,ECU 於 100ms 後

完成初始化設定轉換成執行開機檢查

事件 3:ECU執行開機檢查

操作程序:

1. ECU透過 U2檢查系統輸入狀況使用個案檢查車身各開關

輸入狀況,ECU 於 50ms 完成輸入檢查,並儲存各開關狀

態。

Page 103: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

91

2. ECU透過電源模組檢查汽車電壓,ECU 於 50ms 完成電壓

檢查,若電壓是 9~16V則設定為系統電壓正常,若電壓小

於 9V或大於 16V則設定系統電壓異常

事件 4:ECU輸出開機警示

操作程序:

ECU透過 U5鳴叫與顯示使用個案輸出開機警示音與燈號,

ECU 於 800ms 後完成輸出開機警示轉換啟動或停止系統偵測

障礙物使用個案。

例外

狀況

1.使用者提供電源低於 9V

2.使用者提供電源高於 16V

3.使用者提供電源未持續達 300ms 以上

步驟步驟步驟步驟 4::::繪製使用個案圖繪製使用個案圖繪製使用個案圖繪製使用個案圖

完成對每個使用個案的描述,運用使用個案圖的元件與符號進行使用個案

圖的繪製活動。首先將每個使用個案以橢圓形的符號表達並填入使用個案名

稱,再 U1、U2、U3、U4、U5 的使用個案附近放置相對應的行為者,並連接

行為者與使用個案,再依據使用個案描述表中的使用個案關係,使用 Include

與 Extend 的符號連結使用個案,完成後的使用個案圖如圖 5-4 所示。

Page 104: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

92

uc 使使使使使使使使使使使使使使使使使使使使

系系系系系系系系系系系系系系系系系系系系系系系系系系系系系系系系U1

檢檢檢檢檢檢檢檢系系系系系系系系檢檢檢檢檢檢檢檢檢檢檢檢檢檢檢檢U2

啟啟啟啟啟啟啟啟啟啟啟啟啟啟啟啟啟啟啟啟系系系系系系系系啟啟啟啟啟啟啟啟啟啟啟啟啟啟啟啟啟啟啟啟U3啟啟啟啟啟啟啟啟啟啟啟啟啟啟啟啟啟啟啟啟U4

鳴鳴鳴鳴鳴鳴鳴鳴系系系系鳴鳴鳴鳴鳴鳴鳴鳴U5

診診診診診診診診系系系系系系系系檢檢檢檢檢檢檢檢U6

使使使使使使使使使使使使

前前前前前前前前鳴鳴鳴鳴前前前前 後後後後前前前前鳴鳴鳴鳴前前前前

前前前前鳴鳴鳴鳴鳴鳴鳴鳴前前前前

後後後後鳴鳴鳴鳴鳴鳴鳴鳴前前前前

前前前前前前前前前前前前前前前前

後後後後前前前前前前前前前前前前

ECU

«extend»

«extend»

«Include»

«extend»

«extend»

«extend»

«extend»

圖 5- 4 停車輔助控制器使用個案圖

(3)實作活動圖實作活動圖實作活動圖實作活動圖

步驟步驟步驟步驟 1::::找出活動找出活動找出活動找出活動與轉換與轉換與轉換與轉換

在實作使用個案圖中找出系統開機與初始化使用個案,從每個使用個案描

述、描述性綱目、與概念性綱目找出實體、活動與轉換。

實體是使用個案中的主詞或名詞,活動是使用個案中實體的操作描述,從

系統開機與初始化使用個案的概念性綱目中的事件條列式如表 5-6,找出實體

與活動填入表 5-3中。

轉換是實體完成一個活動進入另一個活動,或是當某個條件成立時,實體

會進入另一個活動,從表 5-9 的活動欄中找出相對應的轉換,如表 5-9中使用

者接上 9~16V 電源,當使用者完成這個活動時會進入另一個活動,故使用者完

成接上 9~16V 電源,即為轉換。

Page 105: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

93

表 5- 9 使用個案的實體、活動與轉換匯總表

使用個案 實體 活動 轉換

系統開機與初始

使用者 使用者接上 9~16V 電源 使用者完成接上 9~16V 電源

汽車 汽車提供 9~16V 電源 汽車完成提供 9~16V 電源

ECU 1.ECU執行系統初始化

2.ECU檢查系統輸入

3.ECU檢查電壓

4.ECU輸出開機音與燈號

1.ECU初始化設定完成

2.ECU檢查系統輸入完成

3.ECU檢查電壓完成

4.ECU檢查傳感器完成

步驟步驟步驟步驟 2::::繪製活動圖繪製活動圖繪製活動圖繪製活動圖

每個活動圖都是以黑色實心圓的符號表達一個活動的開始,以圓角的長方

形表達所需執行的活動,以黑色帶箭頭的實線表達活動的轉換,以菱形表達轉

換決策或轉換合併。依據上述方法完成的系統開機與初始化使用個案活動圖,

如圖 5-5 所示,而活動圖與使用個案的對照關係如表 5-10 所示。

act 系系系系系系系系系系系系系系系系系系系系系系系系系系系系系系系系

ECU汽汽汽汽汽汽汽汽使使使使使使使使使使使使

接接接接接接接接接接接接接接接接 提提提提提提提提接接接接接接接接 系系系系系系系系系系系系系系系系系系系系

檢檢檢檢檢檢檢檢系系系系系系系系檢檢檢檢檢檢檢檢

檢檢檢檢輸輸輸輸系系系系系系系系輸輸輸輸輸輸輸輸輸輸輸輸輸輸輸輸

開開

結結

檢檢檢檢檢檢檢檢接接接接檢檢檢檢

圖 5- 5 系統開機與初始化活動圖

Page 106: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

94

表 5- 10 活動圖與使用個案描述對照

使用個案名稱:系統開機與初始 活動圖

行為者 使用者、汽車、ECU

act 系系系系系系系系系系系系系系系系系系系系系系系系系系系系系系系系

ECU汽汽汽汽汽汽汽汽使使使使使使使使使使使使

接接接接接接接接接接接接接接接接 提提提提提提提提接接接接接接接接 系系系系系系系系系系系系系系系系系系系系

檢檢檢檢檢檢檢檢系系系系系系系系檢檢檢檢檢檢檢檢

檢檢檢檢輸輸輸輸系系系系系系系系輸輸輸輸輸輸輸輸輸輸輸輸輸輸輸輸

開開

結結

檢檢檢檢檢檢檢檢接接接接檢檢檢檢

目標 使系統開機讓使用者能使用系統

前提 使用者提供 9~16V 的電源

使用個

案關係 檢查系統輸入狀況 (Extend)

鳴叫與顯示(Extend)

啟動或停止系統偵測障礙物 (Include)

結束狀

態 使用者完成系統開機,使系統開始運作

事件 1:使用者接上電源

操作程序:

使用者接上 9~16V 的汽車電源,由汽車經

由電源模組提供 9~16V 的電源,ECU 於

300ms後從停止狀態轉換開始執行系統初

始化。

事件 2:ECU執行初始化設定

操作程序:

ECU透過初始化模組執行系統資料初始

化,ECU 於 100ms 後完成初始化設定轉

換成執行開機檢查

事件 3:ECU執行開機檢查

操作程序:

1. ECU透過 U2檢查系統輸入狀況使用

個案檢查車身各開關輸入狀況,ECU

於 50ms 完成輸入檢查,並儲存各開關

狀態。

Page 107: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

95

2. ECU透過電源模組檢查汽車電壓,

ECU 於 50ms 完成電壓檢查,若電壓

是 9~16V則設定為系統電壓正常,若

電壓小於 9V或大於 16V則設定系統電

壓異常

事件 4:ECU輸出開機警示

操作程序:

ECU透過 U5鳴叫與顯示使用個案輸出開

機警示音與燈號,ECU 於 800ms 後完成

輸出開機警示轉換啟動或停止系統偵測障

礙物使用個案。

act 系系系系系系系系系系系系系系系系系系系系系系系系系系系系系系系系

ECU汽汽汽汽汽汽汽汽使使使使使使使使使使使使

接接接接接接接接接接接接接接接接 提提提提提提提提接接接接接接接接 系系系系系系系系系系系系系系系系系系系系

檢檢檢檢檢檢檢檢系系系系系系系系檢檢檢檢檢檢檢檢

檢檢檢檢輸輸輸輸系系系系系系系系輸輸輸輸輸輸輸輸輸輸輸輸輸輸輸輸

開開

結結

檢檢檢檢檢檢檢檢接接接接檢檢檢檢

步驟步驟步驟步驟 3::::精煉活動圖精煉活動圖精煉活動圖精煉活動圖

依據步驟 3 的方法完成初步活動圖的繪製後,再運用精煉活動圖的步驟,

改善活動圖中的活動與轉換,讓活動圖更能表達出使用者的需求。執行精煉活

動圖時,可以將剛完成的初步活動圖與使用個案描述進行相互比對。

從表5-11的對照中可以將使用個案描述中事件2的第二步操作程序,ECU

在檢查完汽車電壓後隨即判斷電壓是正常或是異常,因此可將初步活動圖中的

檢查電壓活動精煉成檢查電壓、設定電壓為正常、與設定電壓為異常等三個活

動,完成精煉後的活動圖與使用個案的對照關係如表 5-11 所示。

Page 108: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

96

表 5- 11 精煉後的活動圖與使用個案描述對照

使用個案名稱:系統開機與初始 活動圖

行為者 使用者、汽車、ECU

act 系系系系系系系系系系系系系系系系系系系系系系系系系系系系系系系系

ECU汽汽汽汽汽汽汽汽使使使使使使使使使使使使

接接接接接接接接接接接接接接接接 提提提提提提提提接接接接接接接接 系系系系系系系系系系系系系系系系系系系系

檢檢檢檢檢檢檢檢系系系系系系系系檢檢檢檢檢檢檢檢

檢檢檢檢輸輸輸輸系系系系系系系系輸輸輸輸輸輸輸輸輸輸輸輸輸輸輸輸

開開

結結

檢檢檢檢檢檢檢檢接接接接檢檢檢檢

判判判判判判

設設設設設設設設接接接接檢檢檢檢設設設設設設設設設設設設 設設設設設設設設接接接接檢檢檢檢設設設設設設設設設設設設

目標 使系統開機讓使用者能使用系統

前提 使用者提供 9~16V 的電源

使用個

案關係 檢查系統輸入狀況 (Extend)

鳴叫與顯示(Extend)

啟動或停止系統偵測障礙物 (Include)

結束狀

態 使用者完成系統開機,使系統開始運作

事件 1:使用者接上電源

操作程序:

使用者接上 9~16V 的汽車電源,由汽車經

由電源模組提供 9~16V 的電源,ECU 於

300ms 後從停止狀態轉換開始執行系統

初始化。

事件 2:ECU執行初始化設定

操作程序:

ECU透過初始化模組執行系統資料初始

化,ECU 於 100ms 後完成初始化設定轉

換成執行開機檢查

事件 3:ECU執行開機檢查

操作程序:

1. ECU透過 U2檢查系統輸入狀況使用

個案檢查車身各開關輸入狀況,ECU

於 50ms 完成輸入檢查,並儲存各開關

狀態。

Page 109: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

97

2. ECU透過電源模組檢查汽車電壓,

ECU 於 50ms 完成電壓檢查,若電壓

是 9~16V則設定為系統電壓正常,若

電壓小於9V或大於16V則設定系統電

壓異常

事件 4:ECU輸出開機警示

操作程序:

ECU透過 U5鳴叫與顯示使用個案輸出開

機警示音與燈號,ECU 於 800ms 後完成

輸出開機警示轉換啟動或停止系統偵測障

礙物使用個案。

act 系系系系系系系系系系系系系系系系系系系系系系系系系系系系系系系系

ECU汽汽汽汽汽汽汽汽使使使使使使使使使使使使

接接接接接接接接接接接接接接接接 提提提提提提提提接接接接接接接接 系系系系系系系系系系系系系系系系系系系系

檢檢檢檢檢檢檢檢系系系系系系系系檢檢檢檢檢檢檢檢

檢檢檢檢輸輸輸輸系系系系系系系系輸輸輸輸輸輸輸輸輸輸輸輸輸輸輸輸

開開

結結

檢檢檢檢檢檢檢檢接接接接檢檢檢檢

判判判判判判

設設設設設設設設接接接接檢檢檢檢設設設設設設設設設設設設 設設設設設設設設接接接接檢檢檢檢設設設設設設設設設設設設

(4)實作實作實作實作部署部署部署部署圖圖圖圖

步驟步驟步驟步驟 1::::找出找出找出找出實體實體實體實體、、、、介面介面介面介面與與與與連結連結連結連結

從表 5-6中的事件條列式與車載嵌入式系統的介面需求整理出實體包含:

汽車、傳感器、蜂鳴器、顯示器等。由於汽車提供電源、手剎車、車速、與排

檔等信號,所以在 ECU 上需要有相對應的硬體電路,因此發展成電源電路與

輸入電路等硬體介面,且需有相對應的軟體介面電壓偵測模組與輸入偵測模組。

傳感器是用於偵測障礙物的實體所以在 ECU 上需要有傳感器驅動電路做

為硬體介面,並需要有傳感器驅動模組做為軟體介面;蜂鳴器與顯示器是用於

警示使用者的實體所以在 ECU 上亦需要有蜂鳴器驅動電路與顯示器驅動電路

做為硬體介面,並需要有蜂鳴器驅動模組與顯示器驅動模組做為軟體介面。

完成找出實體與介面後依據其連結狀況找出連結關係,若屬於硬體與硬體

的連結就用關聯關係表達,若屬於硬體與軟體或軟體與軟體的連結都運用相依

關係進行表達。完成找出實體、介面與連結的成果如表 5-12 所示。

Page 110: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

98

表 5- 12 ECU 實體、介面與連結匯整表

實體 硬體介面 介面規格 軟體介面 使用個案 連結

汽車 電源電路 9~16V 電源 電壓偵測模組 - 關聯關係

汽車 輸入電路 0V/12V 電壓 輸入偵測模組 - 關聯關係

傳感器 傳感器驅動電路 0V/12V 電壓 傳感器驅動模組 - 關聯關係

顯示器 顯示器驅動電路 0V/12V 電壓 顯示器驅動模組 - 關聯關係

蜂鳴器 蜂鳴器驅動電路 0V/12V 電壓 蜂鳴器驅動模組 - 關聯關係

汽車 電源電路 9~16V 電源 電壓偵測模組 1.系統開機與初始化

2.檢查系統輸入狀況

相依關係

汽車 輸入電路 0V/12V 電壓 輸入偵測模組 檢查系統輸入狀況 相依關係

傳感器 傳感器驅動電路 0V/12V 電壓 傳感器驅動模組 偵測障礙物 相依關係

顯示器 顯示器驅動電路 0V/12V 電壓 顯示器驅動模組 鳴叫與顯示 相依關係

蜂鳴器 蜂鳴器驅動電路 0V/12V 電壓 蜂鳴器驅動模組 鳴叫與顯示 相依關係

步驟步驟步驟步驟 2::::繪製部署圖繪製部署圖繪製部署圖繪製部署圖

將表 5-12內的實體與介面依據塑模方法論說明進行部署,先以立體四方

形做為 ECU 的實體,再將屬於系統外部的實體如:汽車、傳感器、顯示器、

與蜂鳴器等以立體四方形為符號部署於 ECU四週,並將每個實體所對應到的

硬體介面如:電源電路、輸入電路、傳感器驅動電路、顯示驅動電路部署至與

實體相對應的位置,如:蜂鳴器對應到蜂鳴器驅動電路、顯示器對應到顯示器

驅動電路。

完成實體與硬體介面的部署後在硬體介面部署對應的軟體介面,如:蜂鳴

器驅動電路對應到蜂鳴器驅動模組、顯示器驅動電路對應到顯示器驅動模組。

完成硬體介面與軟體介面的對應後,依據表 5-12中所表達的關係,將使用個

案、軟體介面、硬體介面、與實體進行連結,完成後的部署圖如圖 5-6 所示。

Page 111: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

99

deployment 停停停停停停停停停停停停停停停停停停停停停停停停停停停停

«device»停停停停停停停停停停停停停停停停停停停停停停停停停停停停

系系系系系系系系

檢檢系系檢檢檢檢

啟啟啟啟啟系系啟啟啟啟

啟啟啟啟偵顯顯系顯顯

診診系系檢檢

電電啟啟電電

傳傳傳傳啟電電

檢檢啟啟電電

蜂顯傳電電

顯顯傳電電

汽汽汽汽停停停停汽汽汽汽停停停停

傳傳傳傳傳傳傳傳停停停停顯顯顯顯顯顯顯顯停停停停

蜂蜂蜂蜂蜂蜂蜂蜂停停停停

電電電電電電電電電電電電電電電電

傳傳傳傳傳傳傳傳停停停停傳傳傳傳傳傳傳傳電電電電電電電電

輸輸輸輸輸輸輸輸電電電電電電電電

蜂蜂蜂蜂蜂蜂蜂蜂停停停停傳傳傳傳傳傳傳傳電電電電電電電電

顯顯顯顯顯顯顯顯停停停停傳傳傳傳傳傳傳傳電電電電電電電電

0V/12V

0V/12V

9V~16V

0V/12V

0V/12V

圖 5- 6 停車輔助控制器系統部署圖

步驟步驟步驟步驟 3::::考慮系統技術問題考慮系統技術問題考慮系統技術問題考慮系統技術問題

進行需求塑模的過程中,從 ECU 的功能需求、環境需求、時間需求、介

面需求與失效處理等需求,並未說明系統需要符合特定需求,如:車用網路、

行車診斷等需求,故沒有需要使用特定系統技術的問題。

二、 PIM 塑模

ECU 為滿足功能需求、環境需求、時間需求、介面需求與失效處理等需

求在完成需求塑模,運用系統動態行為與靜態結構進行 PIM塑模活動,進行系

統動態塑模著重於運用循序圖、時序圖、與狀態圖,表達使用者與系統的互動

行為,與系統內部物件與物件的互動行為及時序;進行系統靜態結構塑模著重

於運用類別圖,表達支援系統運行的邏輯結構。

使用個案

Page 112: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

100

(1)實作循序圖實作循序圖實作循序圖實作循序圖

步驟步驟步驟步驟 1::::找出物件找出物件找出物件找出物件、、、、互動行為與訊息互動行為與訊息互動行為與訊息互動行為與訊息

在需求塑模階段找出了系統開機與初始化、檢查系統輸入狀況、啟動或停

止系統偵測障礙物、偵測障礙物、鳴叫與顯示、與診斷系統狀況等六個使用個

案,並完成每一個使用個案的描述。因此可以運用使用個案的描述性綱目、概

念性綱目、使用個案描述與部署圖,找出使用個案中的物件。

在循序圖中的物件包含行為者、介面物件、控制物件、與實體物件。從系

統開機與初始化使用個案中找出的物件包含:使用者、電壓偵測模組、初始化

模組、系統開機模組、Real Time Clock、與系統資料模組等,詳細內容如表

5-13 所示。

表 5- 13 系統開機與初始化使用個案物件匯總表

使用個案名稱:系統開機與初始化

物件類型 物件 屬性 訊息與操作

行為者 使用者 無 接上 9~16V 電源

介面物件 電壓偵測模組 電壓資料 傳送 9~16V 電壓

控制物件 初始化模組 初始化資料 傳送初始化完成

控制物件 系統開機模組 開機警示資料 1.傳送計數時間

2.傳送開機警示 800ms

3.傳送開機完成

控制物件 Real Time Clock 計時資料 1.傳送檢查輸入狀況

2.傳送鳴叫與顯示

實體物件 系統資料模組 電壓狀況

開關狀況

1.儲存電壓資料

2.儲存開關資料

3.儲存初始化完成

Page 113: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

101

4.儲存開機完成

步驟步驟步驟步驟 2::::繪製循序圖繪製循序圖繪製循序圖繪製循序圖

從每個使用個案中找出行為者、介面物件、控制物件、與實體物件後,運

用循序圖的元件及符號,為每個使用個案繪製循序圖。

循序圖的上方是放置物件,由左而右依據行為者、介面物件、控制物件、

實體物件的順序擺放,依據物件與物件間的互動行為連結其生命線,再將物件

匯總表內的訊息與操作,填入物件互動所傳遞的訊息上。

繪製循序圖時需要表達迴圈時則要運用迴圈(loop)框架符號,若要表達條

件選擇時則要運用多選一(alt)框架符號,若要表達平行處理時則要運用平行(par)

框架符號。依據步驟完成系統開機與初始化的循序圖如圖 5-7 所示:

Page 114: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

102

sd 系系系系系系系系系系系系系系系系系系系系系系系系系系系系系系系系

使使使

系系系系系系系系系系系系初初初初初初初初 系系系系系系系系系系系系系系系系初初初初初初初初 Real Time Clock 系系系系系系系系系系系系系系系系電電電電電電電電電電電電電電電電初初初初初初初初

鳴鳴鳴鳴鳴 啟啟啟啟啟啟啟啟

測測測測

檢檢啟啟檢檢檢檢

系系系系系系系系系系系系系系系系系系系系系系系系loop

接接 電電9~16V ()

傳傳 電電9~16V ()

傳傳傳傳傳傳傳()

儲儲傳傳傳傳傳()

傳傳傳傳傳傳()

檢檢檢檢檢檢檢檢()

判判電電檢檢()

儲儲檢檢儲儲()

儲儲電電儲儲()

傳傳傳傳傳鳴800ms()

傳傳檢檢檢檢檢檢()

傳傳鳴鳴鳴鳴鳴()

傳傳檢檢800ms()

儲儲傳傳傳傳()

傳傳傳傳傳傳()

圖 5- 7 系統開機與初始化循序圖

步驟步驟步驟步驟 3::::描述訊息描述訊息描述訊息描述訊息與操作與操作與操作與操作

依據表 5-13 的訊息與操作和循序圖,對每個物件所提供的訊息與操作進

行詳細的描述,先描述訊息的範圍、型態、與狀態,再描述操作的內容與訊息

狀態的定義,而系統開機與初始化使用個案循序圖的訊息與操作描述,如表

5-14 所示。

Page 115: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

103

表 5- 14 系統開機與初始化的訊息與操作描述

使用個案名稱:系統開機與初始化

項次 物件 訊息與操作 訊息描述 操作描述

1 使用者 接上 9~16V 電源 範圍:9~16

型態:Byte

狀態:正常

接上系統運作所需要的 9~16V 電

源,若使用者接上的電源在範圍內

則將訊息狀態設為正常,若使用者

接上的電源不在範圍內則將訊息狀

態設為異常,若是尚在執行中則設

定為處理中。

2 電源偵測模組 傳送 9~16V 電壓 範圍:9~16

型態:Byte

狀態:正常

傳送目前所偵測到的系統電壓,若

系統電壓訊息在範圍內則將訊息狀

態設為正常,若系統電壓訊息不在

範圍內則將訊息狀態設為異常,若

是尚在執行中則設定為處理中。

3 初始化模組 傳送初始化完成 範圍:0或 1

型態:Byte

狀態:正常

傳送系統已完成初始化設定,若初

始化訊息在範圍內則將訊息狀態設

為正常,若初始化訊息不在範圍內

則將訊息狀態設為異常,若是尚在

執行中則設定為處理中。

4 系統開機模組 傳送計數時間 範圍:255

型態:Byte

狀態:正常

傳送計數系統時間,若計數時間訊

息在範圍內則將訊息狀態設為正

常,若計數時間訊息不在範圍內則

將訊息狀態設為異常,若是尚在執

行中則設定為處理中。

5 系統開機模組 傳送開機警示 範圍:0或 1 傳送系統輸出開機警示音及燈號,

Page 116: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

104

800ms 型態:Byte

狀態:正常

0表示停止警示,1表示開始警示。

若開機警示訊息在範圍內則將訊息

狀態設為正常,若初始化訊息不在

範圍內則將訊息狀態設為異常,若

是尚在執行中則設定為處理中。

6 系統開機模組 傳送開機完成 範圍:0或 1

型態:Byte

狀態:正常

傳送系統已經完成開機,0表示未

完成,1表示已完成。若開機完成

訊息在範圍內則將訊息狀態設為正

常,若初始化訊息不在範圍內則將

訊息狀態設為異常,若是尚在執行

中則設定為處理中。

7 Real Time

Clock

傳送檢查輸入狀

範圍:0或 1

型態:Byte

狀態:正常

傳送檢查系統埠的輸入狀況,0表

示停止檢查,1表示開始檢查。若

檢查輸入狀況訊息在範圍內則將訊

息狀態設為正常,若初始化訊息不

在範圍內則將訊息狀態設為異常,

若是尚在執行中則設定為處理中。

8 Real Time

Clock

傳送鳴叫與顯示 範圍:0或 1

型態:Byte

狀態:正常

傳送從蜂鳴器與顯示器輸出警示音

與燈號,0表示停止輸出,1表示

開始輸出。若鳴叫與顯示訊息在範

圍內則將訊息狀態設為正常,若初

始化訊息不在範圍內則將訊息狀態

設為異常,若是尚在執行中則設定

為處理中。

9 系統資料模組 儲存電壓資料 範圍:9~16 儲存所偵測到的系統電壓,若電壓

Page 117: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

105

型態:Byte

狀態:正常

資料訊息在範圍內則將訊息狀態設

為正常,若初始化訊息不在範圍內

則將訊息狀態設為異常,若是尚在

執行中則設定為處理中。

10 系統資料模組 儲存開關資料 範圍:16

型態:Byte

狀態:正常

儲存所檢查到的輸入開關狀況,若

開關資料訊息在範圍內則將訊息狀

態設為正常,若初始化訊息不在範

圍內則將訊息狀態設為異常,若是

尚在執行中則設定為處理中。

11 系統資料模組 儲存初始化完成 範圍:0或 1

型態:Byte

狀態:正常

儲存系統已經完成初始化設定,0

表示未完成,1表示已完成。若初

始化完成訊息在範圍內則將訊息狀

態設為正常,若初始化訊息不在範

圍內則將訊息狀態設為異常,若是

尚在執行中則設定為處理中。

12 系統資料模組 儲存開機完成 範圍:0或 1

型態:Byte

狀態:正常

儲存系統已經完成開機,0表示未

完成,1表示已完成。若開機完成

訊息在範圍內則將訊息狀態設為正

常,若初始化訊息不在範圍內則將

訊息狀態設為異常,若是尚在執行

中則設定為處理中。

(2)實作時序圖實作時序圖實作時序圖實作時序圖

步驟步驟步驟步驟 1::::找出物件找出物件找出物件找出物件、、、、狀態與訊息狀態與訊息狀態與訊息狀態與訊息

時序圖中所需要的物件需要與循序圖中所用到的物件相同,因此從表 5-12

Page 118: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

106

物件欄位內的所有物件和訊息與操作欄位內的所有訊息,複製到表 5-15 的物件

欄位和訊息與操作欄位中,而要物件的狀態需要從循序圖的操作描述匯整而成。

表 5- 15 系統開機與初始化時序圖的物件、狀態與訊息匯總表

使用個案名稱:系統開機與初始化

項次 物件 訊息與操作 狀態

1 使用者 接上 9~16V 電源 物件狀態:未接電源/接上電源

訊息狀態:正常/異常/處理中

2 電源偵測模組 傳送 9~16V 電壓 物件狀態:0V/9V/16V

訊息狀態:正常/異常/處理中

3 初始化模組 傳送初始化完成

物件狀態:閒置/初始化中/初始化完成

訊息狀態:正常/異常/處理中

4 系統開機模組 傳送計數時間 物件狀態:閒置/開機中/開機完成

訊息狀態:正常/異常/處理中

5 系統開機模組 傳送開機警示 800ms 物件狀態:閒置/開機中/開機完成

訊息狀態:正常/異常/處理中

6 系統開機模組 傳送開機完成 物件狀態:閒置/開機中/開機完成

訊息狀態:正常/異常/處理中

7 Real Time Clock 傳送檢查輸入狀況 物件狀態:閒置/計時中/檢查中

訊息狀態:正常/異常/處理中

8 Real Time Clock 傳送鳴叫與顯示 物件狀態:閒置/計時中/檢查中

訊息狀態:正常/異常/處理中

9 系統資料模組 儲存電壓資料 物件狀態:閒置/儲存中

訊息狀態:正常/異常/處理中

10 系統資料模組 儲存開關資料 物件狀態:閒置/儲存中

訊息狀態:正常/異常/處理中

Page 119: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

107

11 系統資料模組 儲存初始化完成 物件狀態:閒置/儲存中

訊息狀態:正常/異常/處理中

12 系統資料模組 儲存開機完成 物件狀態:閒置/儲存中

訊息狀態:正常/異常/處理中

步驟步驟步驟步驟 2::::制定時間尺規繪製時序圖制定時間尺規繪製時序圖制定時間尺規繪製時序圖制定時間尺規繪製時序圖

繪製時序圖所會使用到的元件包含:生命線、訊息、狀態、時間軸、時間

尺規、時間限制,依據時序圖的繪圖步驟繪製時序圖,順序如下:

1.設定時間尺規為亳秒(ms)。

2.將使用者、電源偵測模組、初始化模組、系統開機模組、Real Time

Clock、系統資料模組、鳴叫與顯示使用個案、檢查系統輸入狀況

使用個案等,使用生命線以行為者、介面物件、控制物件、與實體

物件的順序由上而下排列。

3.在生命線的左邊標示出物件的狀態,由左而右繪製出時間軸,並標

示出時間限制。

4.在時間軸的狀態轉換點標示出物件的訊息與操作。

繪製完成的時序圖如圖 5-8 所示。在時序圖中物件與物件間的互動與循序

圖的互動方式相同,時序圖著重表達物件在互動過程中在時間上的要求,如圖

5-8 的初始化模組在執行操作時,必需在 300ms內完成系統初始化,並將狀態

改變為初始化完成。

完成初步時序圖的繪製需再次與循序圖進行核對與確認,使時序圖能完整

表達出 ECU 的內部運作時序。由於使用者需求的開機警示音與燈號輸出為

800ms,因此 ECU 的時序圖就必需滿足此功能性需求,在步驟 3 可對互動時

序進行描述。

Page 120: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

108

sd 系系系系系系系系系系系系系系系系系系系系系系系系系系系系系系系系

使使 使使使使 使使使使 使使 未未未未未未未未未未未未未未未未

未未未未接接接接未未未未未未未未

系系 系系系系 系系系系 系系系系 系系

儲儲儲儲儲儲儲儲儲儲儲儲

閒閒閒閒閒閒閒閒

{50ms} {50ms}{50ms} {50ms}

系系 系系系系 系系系系 系系系系 系系系系 系系系系 系系 系系系系系系系系開開開開開開開開

系系系系系系系系開開開開開開開開儲儲儲儲

判判判判判判判判儲儲儲儲

系系系系系系系系儲儲儲儲

閒閒閒閒閒閒閒閒

{800ms}

電電 電電電電 電電電電 電電電電 電電系系 系系系系 系系

16V

9V

0V

初初 初初初初 初初初初 初初系系 系系系系 系系 系系系系系系系系系系系系開開開開開開開開

系系系系系系系系系系系系儲儲儲儲

閒閒閒閒閒閒閒閒

{300ms}

Re

al

Tim

e C

loc

k

檢檢檢檢檢檢檢檢儲儲儲儲

計計計計計計計計儲儲儲儲

閒閒閒閒閒閒閒閒

{150ms} {50ms} {150ms} {50ms} {150ms} {50ms} {150ms} {50ms}

鳴鳴 鳴鳴鳴鳴 鳴鳴鳴鳴 鳴鳴鳴鳴 鳴鳴鳴鳴 鳴鳴

輸輸輸輸輸輸輸輸儲儲儲儲

閒閒閒閒閒閒閒閒

{50ms} {50ms} {50ms} {50ms}

檢檢 檢檢檢檢 檢檢系系 系系系系 系系檢檢 檢檢檢檢 檢檢檢檢 檢檢檢檢 檢檢

檢檢檢檢檢檢檢檢儲儲儲儲

閒閒閒閒閒閒閒閒

{50ms} {50ms} {50ms} {50ms} {50ms}

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 4950

使使 使使使使 使使使使 使使 未未未未未未未未未未未未未未未未

未未未未接接接接未未未未未未未未

系系 系系系系 系系系系 系系系系 系系

儲儲儲儲儲儲儲儲儲儲儲儲

閒閒閒閒閒閒閒閒

{50ms} {50ms}{50ms} {50ms}

系系 系系系系 系系系系 系系系系 系系系系 系系系系 系系 系系系系系系系系開開開開開開開開

系系系系系系系系開開開開開開開開儲儲儲儲

判判判判判判判判儲儲儲儲

系系系系系系系系儲儲儲儲

閒閒閒閒閒閒閒閒

{800ms}

電電 電電電電 電電電電 電電電電 電電系系 系系系系 系系

16V

9V

0V

初初 初初初初 初初初初 初初系系 系系系系 系系 系系系系系系系系系系系系開開開開開開開開

系系系系系系系系系系系系儲儲儲儲

閒閒閒閒閒閒閒閒

{300ms}

Re

al

Tim

e C

loc

k

檢檢檢檢檢檢檢檢儲儲儲儲

計計計計計計計計儲儲儲儲

閒閒閒閒閒閒閒閒

{150ms} {50ms} {150ms} {50ms} {150ms} {50ms} {150ms} {50ms}

鳴鳴 鳴鳴鳴鳴 鳴鳴鳴鳴 鳴鳴鳴鳴 鳴鳴鳴鳴 鳴鳴

輸輸輸輸輸輸輸輸儲儲儲儲

閒閒閒閒閒閒閒閒

{50ms} {50ms} {50ms} {50ms}

檢檢 檢檢檢檢 檢檢系系 系系系系 系系檢檢 檢檢檢檢 檢檢檢檢 檢檢檢檢 檢檢

檢檢檢檢檢檢檢檢儲儲儲儲

閒閒閒閒閒閒閒閒

{50ms} {50ms} {50ms} {50ms} {50ms}

儲儲儲儲儲儲()

傳傳 儲儲9~16V ()

傳傳傳傳傳傳傳傳() 傳傳傳傳傳傳傳傳 ()

儲儲儲儲儲儲()

傳傳傳傳傳儲儲 ()

儲儲傳傳傳儲儲 ()

接接 儲電9~16V

儲儲儲儲儲儲()

傳傳傳傳傳傳傳 ()

傳傳傳傳傳傳傳傳 ()

傳傳傳傳傳傳傳 ()

傳傳傳傳傳傳傳傳 ()

傳傳傳傳傳傳傳()

傳傳儲儲傳傳800ms()

傳傳傳傳傳傳傳 ()

傳傳傳傳傳傳傳傳 ()

傳傳傳傳傳傳 ()

圖 5- 8 系統開機與初始化時序圖

步驟步驟步驟步驟 3::::描述互動時序描述互動時序描述互動時序描述互動時序

從時序圖中可看出系統內部的互動時序,所以在此步驟用以描述物件與物

件互動的時序內容,並說明時間限制的目的。

在步驟 2 所完成的時序圖需針對使用者、電源偵測模組、初始化模組、系

統開機模組、Real Time Clock、系統資料模組、鳴叫與顯示使用個案、與檢查

系統輸入狀況使用個案進行互動時序的描述。

依據方法論中所提供的描述方法:主詞+行為+物件狀態+時間+訊息狀態

Page 121: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

109

語法進行互動時序的描述,主詞以物件名稱表達;行為以物件所提供的訊息與

操作表達;物件狀態以表 5-15狀態欄內的物件狀態表達;時間以圖 5-8 的時間

軸上的限制時間表達;訊息狀態以表 5-15狀態欄內的訊息狀態表達。完成的互

動時序描述如表 5-16 所示。

表 5- 16 系統開機與初始化的時序描述

使用個案名稱:系統開機與初始化

項次 物件 時序描述 時間軸

1 使用者 正常時序:

使用者提供 9~16V 電源給電源偵測模組,使用者

狀態從未接上電源到接上電源,使用者在 50ms

以內完成接上電源,若使用者所接上的電源電壓

在範圍內則將訊息狀態設為正常,若接上的電源

電壓不在範圍內則將訊息狀態設為異常,若是尚

在接上中則設定為處理中。

失效處理:無

0 ~ 1

2 電源偵測模組 正常時序:

電壓偵測模組接收到使用者所提供的 9~16V 電

壓後,電源偵測模組狀態由 0V轉換為 9V 並持續

偵測電壓 50ms,完成後傳送 9~16V 電壓訊息至

初始化模組。若偵測到的電壓在範圍內則將訊息

狀態設為正常,若偵測到的電壓不在範圍內則將

訊息狀態設為異常,若是尚在偵測中則設定為處

理中。

失效處理:

1 ~ 2

Page 122: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

110

使用 50ms 的時間偵測電壓,以避免因電壓變動

而導致互動產生異常。

3 初始化模組 正常時序:

1. 初始化模組接收到電源偵測模組的 9~16V 電

壓後,初始化模組狀態由閒置轉換為初始化中

並執行初始化 300ms。

2. 完成後狀態由初始化中轉換為初始化完成並

傳送初始化完成訊息至系統開機模組。若初始

化完成則將訊息狀態設為正常,若初始化失敗

則將訊息狀態設為異常,若是尚在初始化則設

定為處理中。

失效處理:無

2~3

3~6

4 系統開機模組 正常時序:

1. 系統開機模組接收到初始化模組的完成初始

化後,系統開機模組狀態由閒置轉換為開機中

並傳送儲存初始化完成訊息至系統資料模組

等待 50ms。

2. 完成後傳送計數時間至Real Time Clock開始

計時等待 2000ms 後傳送儲存開關資料至系

統資料模組等待 100ms 後傳送儲存電壓資料

至系統資料模組等待 50ms系統開機模組狀

態轉換為開機警示中。

3. 系統開機模組完成儲存電壓資料後傳送開機

警示 800ms至 Real Time Clock 並等待

6~7

7~18

18~46

Page 123: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

111

800ms 時間,完成後系統開機模組狀態轉換

為開機中。

4. 系統開機模組完成開機警示後傳送儲存開機

完成至系統資料模組等待 50ms 後物件狀態

由開機中轉換為開機完成。

失效處理:

傳送訊息後等待 50ms 的時間,以防資料料儲存

錯誤

46~48

5 Real Time Clock 正常時序:

1. Real Time Clock 在接收到系統開機模組所傳

送的計數時間後物件狀態由閒置轉換為計時

中,並送出傳送檢查輸入狀況

2. Real Time Clock 在接收到系統開機模組所傳

送的開機警示 800ms 後物件狀態由計時中轉

換為檢查中,並傳送檢查輸入狀況訊息至檢查

系統輸入狀況使用個案等待 50ms 後,再傳送

傳送鳴叫與顯示訊息至鳴叫與顯示使用個案

等待 50ms,在 150ms 後物件狀態由檢查中

轉換為計時中。

3. Real Time Clock 在 50ms 後物件狀態由計時

中轉換為檢查中。

4. Real Time Clock 在傳送檢查輸入狀況訊息至

檢查系統輸入狀況使用個案等待 50ms 後,再

傳送傳送鳴叫與顯示訊息至鳴叫與顯示使用

9~10

19~23

23~26

26~30

Page 124: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

112

個案等待 50ms,在 150ms 後物件狀態由檢

查中轉換為計時中。

5. Real Time Clock 在 50ms 後物件狀態由計時

中轉換為檢查中。

6. Real Time Clock 在傳送檢查輸入狀況訊息至

檢查系統輸入狀況使用個案等待 50ms 後,再

傳送傳送鳴叫與顯示訊息至鳴叫與顯示使用

個案等待 50ms,在 150ms 後物件狀態由檢

查中轉換為計時中。

7. Real Time Clock 在 50ms 後物件狀態由計時

中轉換為檢查中。

8. Real Time Clock 在傳送檢查輸入狀況訊息至

檢查系統輸入狀況使用個案等待 50ms 後,再

傳送傳送鳴叫與顯示訊息至鳴叫與顯示使用

個案等待 50ms,在 150ms 後物件狀態由檢

查中轉換為計時中。

9. Real Time Clock 在 50ms 後物件狀態由計時

中轉換為檢查中。

失效處理:

30~33

33~37

37~40

40~44

45~46

6 系統資料模組 正常時序:

系統資料模組在接收到系統開機模組所傳送的儲

存初始化完成後物件狀態由閒置轉為儲存中,並

於 50ms內完成資料儲存。

系統資料模組在接收到系統開機模組所傳送的儲

8~9

15~16

Page 125: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

113

存開關資料後物件狀態由閒置轉為儲存中,並於

50ms內完成資料儲存。

系統資料模組在接收到系統開機模組所傳送的儲

存電壓資料後物件狀態由閒置轉為儲存中,並於

50ms內完成資料儲存。

系統資料模組在接收到系統開機模組所傳送的儲

存開機完成後物件狀態由閒置轉為儲存中,並於

50ms內完成資料儲存。

失效處理:

接收到訊息後 50ms內完成資料的儲存

17~18

47~48

(3)實作狀態圖實作狀態圖實作狀態圖實作狀態圖

步驟步驟步驟步驟 1::::找出物件的狀態與轉換找出物件的狀態與轉換找出物件的狀態與轉換找出物件的狀態與轉換

狀態圖中的物件狀態可以先從循序圖中找出物件如表 5-13,再從時序圖中

找出狀態如表 5-15,再匯整到表 5-17 的狀態匯整表中,找出物件狀態後再填

入每個狀態的轉換,而狀態的轉換可能是完成動作後的狀態或是成立的條件,

因此完成的狀態匯整表如表 5-17 所示。

表 5- 17 系統開機與初始化狀態圖的狀態匯總表

使用個案名稱:系統開機與初始化

項次 物件 狀態 轉換

1 使用者 未接上電源 開始接上電源

2 使用者 接上電源 完成接上電源

3 電源偵測模組 16V 偵測到 16V

4 電源偵測模組 9V 偵測到 9V

5 電源偵測模組 0V 偵測到 0V

Page 126: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

114

6 初始化模組 初始化完成 完成初始化

7 初始化模組 初始化中 初始化結束

8 初始化模組 閒置 開始初始化

9 系統開機模組 開機完成 完成開機

10 系統開機模組 開機警示中 完成開機警示

11 系統開機模組 開機中 結束開機

12 系統開機模組 閒置 開始開機

13 Real Time Clock 檢查中 完成檢查

14 Real Time Clock 計時中 完成計時

15 Real Time Clock 閒置 開始計時

16 系統資料模組 儲存中 完成資料儲存

17 系統資料模組 閒置 儲存資料

步驟步驟步驟步驟 2::::繪製狀態圖繪製狀態圖繪製狀態圖繪製狀態圖

在繪製狀態圖時先狀主要狀態如使用者、電源偵測、初始化、系統開機、

Real Time Clock、與系統資料模組由上而下排列,依據循序圖、時序圖內的物

件互動順序先繪製出整個使用個案的狀態圖如圖 5-9,

完成主要狀態的狀態圖後再針對每個主要狀態繪製細部的狀態圖,如圖

5-10使用者狀態圖、圖 5-11 電源偵測狀態圖、圖 5-12初始化狀態圖、圖 5-13

系統開機狀態圖、圖 5-14 Real Time Clock狀態圖、圖 5-15系統資料模組狀

態圖等。

Page 127: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

115

stm 系系系系系系系系系系系系系系系系系系系系系系系系系系系系系系系系

開開

使使使使使使使使使使使使

電電電電電電電電電電電電電電電電

系系系系系系系系系系系系系系系系 Real Time Clock

資資資資資資資資系系系系系系系系

鳴鳴鳴鳴鳴鳴鳴鳴系系系系鳴鳴鳴鳴鳴鳴鳴鳴

檢檢檢檢檢檢檢檢系系系系系系系系檢檢檢檢檢檢檢檢

結結

系系系系使使使使系系系系

完完完完完完

完完開完

9V

初開初完完

儲儲儲儲

完完儲儲

計計計

檢檢檢檢檢檢完完檢檢檢檢檢檢

鳴鳴鳴鳴鳴 完完鳴鳴鳴鳴鳴

完完計計

開完開鳴

圖 5- 9 系統開機與初始化狀態圖

stm 使使使使使使使使使使使使

接接接接接接接接接接接接接接接接

未未未未接接接接接接接接接接接接

進進進

離離離離離離離離離

完完完完離離

離開完完離離

圖 5- 10 使用者狀態圖

Page 128: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

116

stm 電電電電電電電電電電電電電電電電

進進進

離離離離離離

判判判判

0V 16V9V

偵偵偵 判判16V 偵偵偵 判判0V

偵偵偵 判判9V

完完完完判完

圖 5- 11 電源偵測狀態圖

stm 初初初初初初初初初初初初

進進進

閒閒閒閒閒閒閒閒

初初初初初初初初初初初初初初初初

完完完完完完完完初初初初初初初初初初初初

離離離離離離離離離

初初初初初

完完初初初

離初初初初

或9V 16V

圖 5- 12 初始化狀態圖

Page 129: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

117

stm 系系系系系系系系系系系系系系系系

進進進

閒閒閒閒閒閒閒閒

系系系系系系系系開開開開系系系系系系系系開開開開開開開開開開開開

系系系系系系系系開開開開開開開開

離離離離離離離離離離離離離離離

完完離完

完完離完完完

離開離完完完

結結離完

離開離完

完完完開完

圖 5- 13 系統開機狀態圖

stm Real Time Clock

進進進1

進進進2

閒閒閒閒閒閒閒閒

計計計計計計計計計計計計 檢檢檢檢檢檢檢檢計計計計

離離離離離離離

完完完完

離離開開 完完完完

完完檢進檢檢

離開完完

離離開

圖 5- 14 Real Time Clock狀態圖

Page 130: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

118

stm 資資資資資資資資資資資資資資資資

進進進

閒閒閒閒閒閒閒閒

儲儲儲儲儲儲儲儲儲儲儲儲

離離離離離離離

完完完完完完

完完完完

圖 5- 15 資料系統狀態圖

步驟步驟步驟步驟 3::::精煉狀態圖精煉狀態圖精煉狀態圖精煉狀態圖

精煉狀態圖是用於改善狀態圖的步驟,系統開發團隊在完成初步的狀態圖

繪製完成後,即可開始進行狀態圖的狀態與轉換之改良,以避免系統產生錯誤

的狀態。

精煉系統開機與初始化狀態圖時,可運用時序圖與活動圖來確認物件在進

行互動行為的過程所存在的狀態與轉換來精煉狀態圖。由於系統開機與初始化

狀態圖在繪製的過程中已與時序圖、循序圖、與活動圖互相核對物件的互動行

為、狀態、與轉換,故無需再次精煉系統開機與初始化狀態圖。

(4)實作類別圖實作類別圖實作類別圖實作類別圖

步驟步驟步驟步驟 1::::找出類別找出類別找出類別找出類別、、、、操作操作操作操作、、、、屬性屬性屬性屬性與關係與關係與關係與關係

經過循序圖、時序圖、狀態圖的塑模步驟,已經從系統互動行為中找出許

多物件,因此接上來就需要將找到的物件規格化,所以要將找到物件轉換成類

Page 131: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

119

別。從表 5-13中所找出的物件包含:電源偵測模組、初始化模組、系統開機模

組、Real Time Clock、與系統資料模組等物件,因此可直接將上述物件轉換成

類別,再詳細描述其操作、屬性、與關係。

在找到類別後可從表 5-13 與表 5-14中找出類別所對應的操作、屬性、與

屬性資料的型態,再依據塑模方法論所提供的方法確認類別與類別間的關係,

並將上述的內容記錄於表 5-18中。

表 5- 18 系統開機與初始化類別匯總表

使用個案名稱:系統開機與初始化

項次 類別 屬性 型態 操作 類別的關係

1 電源偵測模組 電壓值 Byte 偵測 9~16V 電源 相依關係

2 初始化模組 初始化狀態 Byte 傳送初始化完成 相依關係

3 系統開機模組 時間週期 Byte 傳送計數時間 相依關係

4 系統開機模組 開機警示資料 Byte 傳送開機警示 800ms 相依關係

5 系統開機模組 開機狀態 Byte 傳送開機完成 相依關係

6 Real Time Clock 計時資料 Byte 傳送檢查輸入狀況 相依關係

7 Real Time Clock 鳴叫與顯示類型 Byte 傳送鳴叫與顯示 相依關係

8 系統資料模組 電壓狀況 Byte 儲存電壓資料 相依關係

9 系統資料模組 開關狀況 Byte 儲存開關資料 相依關係

10 系統資料模組 系統初始狀態 Byte 儲存初始化完成 相依關係

11 系統資料模組 系統開機狀態 Byte 儲存開機完成 相依關係

步驟步驟步驟步驟 2::::繪製類別圖繪製類別圖繪製類別圖繪製類別圖

繪製類別圖所需使用到的元件包含:類別與關係,先將表 5-18中的類別

由上而下、由左而右的順序排列,再填入每個類別所具有的操作與屬性,依據

表 5-18類別的關係欄位中的關係連結類別,完成後的類別圖如圖 5-16 所示。

Page 132: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

120

class 系系系系系系系系系系系系系系系系系系系系系系系系系系系系系系系系

電電電電電電電電電電電電電電電電電電電電電電電電

- 電電電: byte

+ 傳傳 電電9~16V () : void

系系系系系系系系系系系系電電電電電電電電

- 初初初初初: byte

+ 傳傳初初初傳傳() : void

系系系系系系系系系系系系系系系系電電電電電電電電

- 時時時時: byte- 開開初初: byte- 開開開開開開: word

+ 傳傳傳傳時時() : void+ 傳傳開開傳傳() : void+ 傳傳開開開開800ms() : void

Real Time Clock

- 傳時開開: byte- 鳴鳴鳴鳴開鳴鳴: byte

+ 傳傳鳴鳴鳴鳴開() : void+ 傳傳傳傳傳傳初傳() : void

系系系系系系系系系系系系系系系系電電電電電電電電

- 系系初初初初: byte- 系系開開初初: byte- 開開初傳: byte- 電電初傳: byte

+ 儲儲初初初傳傳() : void+ 儲儲開開傳傳() : void+ 儲儲開開開開() : void+ 儲儲電電開開() : void

圖 5- 16 系統開機與初始化類別圖

步驟步驟步驟步驟 3::::描述類別描述類別描述類別描述類別

完成類別圖的繪製後即需對類別進行描述,先描述類別屬性與屬性的型

態、長度、初始值與屬性的用途說,再使用自然語言或程式語言詳細描述類別

的操作以減少進行程式碼轉換所產生的錯誤。

以下將依據方法論對電源偵測模組、初始化模組、系統開機模組、Real

Time Clock、系統資料模組等類別進行屬性描述與操作描述。完成的類別屬性

描述如表 5-19、表 5-20、表 5-21、表 5-22、表 5-23;完成的類別操作與關係

描述如表 5-24、表 5-25、表 5-26、表 5-27、表 5-28 所示。

Page 133: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

121

表 5- 19 電源偵測模組類別屬性描述表

項次 類別 屬性 型態 長度 初始值 用途說明

1 電源偵測模組 電壓值 Byte 1 0 記錄偵測到的系統電壓

表 5- 20 初始化類別屬性描述表

項次 類別 屬性 型態 長度 初始值 用途說明

1 初始化模組 初始化狀態 Byte 1 0 記錄初始化的執行狀態

表 5- 21 系統開機類別屬性描述表

項次 類別 屬性 型態 長度 初始值 用途說明

1 系統開機模組 時間週期 Byte 1 0 記錄系統時間的計時週期

2 系統開機模組 開機警示資料 Byte 1 0 記錄開機警示的週期與時間

3 系統開機模組 開機狀態 Byte 1 0 記錄系統開機的執行狀態

表 5- 22 Real Time Clock類別屬性描述表

項次 類別 屬性 型態 長度 初始值 用途說明

1 Real Time

Clock

計時資料 Byte 1 0 記錄系統時間的計時資料

2 Real Time

Clock

鳴叫與顯示類型 Byte 1 0 記錄系統輸出警示音與燈號

的類型

表 5- 23 系統資料模組屬性描述表

項次 類別 屬性 型態 長度 初始值 用途說明

1 系統資料模組 電壓狀況 Byte 1 0 儲存系統的電壓狀況

2 系統資料模組 開關狀況 Byte 1 0 儲存系統的開關輸入狀況

Page 134: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

122

3 系統資料模組 系統初始狀態 Byte 1 0 儲存系統執行初始化的狀態

4 系統資料模組 系統開機狀態 Byte 1 0 儲存系統執行開機的狀態

表 5- 24 電源偵測模組類別操作與關係描述表

類別名稱:電源偵測模組

類別的限制 1. 輸入訊息長度為 1 個 Byte

2. 輸入值的範圍為 0~255

屬性描述 如表 5-22 的內容

類別的關係 相依關係:初始化模組

類別的操作 傳送 9~16V 電源

類別的操作

描述

定義 public byte 電壓值;

定義 public byte 訊息的狀態;

定義 public byte 模組的狀態;

void 電源偵測模組 (void)

{ Byte temp ;

temp = 0;

等待 50ms;

temp = 汽車電壓信號;

if 0 < temp < 16

{ 設定電壓值的狀態為正常 }

else { 設定電壓值的狀態為異常 }

電壓值 = temp;

if temp = 0 ~ 8

{ 設定模組的狀態為 0V }

Page 135: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

123

if temp = 9 ~ 12

{ 設定模組的狀態為 9V }

if temp = 12 ~ 16

{ 設定模組的狀態為 16V }

}

表 5- 25 初始化模組類別操作與關係描述表

類別名稱:初始化模組

類別的限制 1. 輸入訊息長度為 1 個 Byte

2. 輸入值的範圍為 0~255

屬性描述 如表 5-23 的內容

類別的關係 相依關係:系統開機模組

類別的操作 傳送初始化完成

類別的操作

描述

定義 public byte 初始化狀態;

定義 public byte 訊息的狀態;

定義 public byte 模組的狀態;

Void初始化模組 (void)

{ Byte temp ;

temp = 0;

設定模組的狀態為初始化中;

設定系統時鐘;

設定輸入輸出介面;

設定系統特定資源;

等待 300ms;

Page 136: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

124

清除記憶體;

if 記憶體設定 == 設定值;

{ 設定訊息狀態為正常 }

else { 設定訊息狀態為異常 }

設定模組的狀態為完成初始化;

}

表 5- 26 系統開機模組類別操作與關係描述表

類別名稱:系統開機模組

類別的限制 1. 輸入訊息長度為 1 個 Byte

2. 輸入值的範圍為 0~255

屬性描述 如表 5-24 的內容

類別的關係 相依關係:Real Time Clock、系統資料模組

類別的操作 傳送計數時間

傳送開機警示 800ms

傳送開機完成

類別的操作

描述

定義 public byte 時間週期;

定義 public byte 系統資料;

定義 public byte 開機警示資料;

定義 pulbic byte 操作的類型;

定義 public byte 訊息的狀態;

定義 public byte 模組的狀態;

Void系統開機模組 (void)

{ Byte temp, i ;

Page 137: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

125

temp = 0;

設定模組狀態為開機中;

if 操作類型 == 儲存初始化完成

{

temp = 初始化完成;

系統資料 = temp;

系統資料模組();

等待 50ms;

if 系統資料 == 設定值

{ 設定訊息狀態為正常 }

else { 設定訊息狀態為異常 }

}

if 操作類型 == 傳送計數時間

{

temp = 5ms; //系統計數週期

時間週期 = temp;

Real Time Clock();

等待 50ms;

if 系統時間週期 == 設定值

{ 設定訊息狀態為正常 }

else { 設定訊息狀態為異常 }

}

if 操作類型 ==儲存開關資料

Page 138: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

126

{

temp = 開關資料

系統資料 = temp;

系統資料模組();

等待 50ms;

if 系統資料 == 設定值

{ 設定訊息狀態為正常 }

else { 設定訊息狀態為異常 }

}

if 操作類型 ==儲存電壓資料

{

temp = 電壓資料

系統資料 = temp;

系統資料模組();

等待 50ms;

if 系統資料 == 設定值

{ 設定訊息狀態為正常 }

else { 設定訊息狀態為異常 }

}

if 操作類型 == 傳送開機警示 800ms;

{

設定模組狀態為開機警示中;

temp = 開始開機警示;

Page 139: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

127

開機警示資料 = temp;

For (i=0 ; i<=4; i++ )//跑迴圈 4 次

{

Real Time Clock();

等待 200ms;

}

if 開機警示資料== 設定值

{ 設定訊息狀態為正常 }

else { 設定訊息狀態為異常 }

}

設定模組狀態為開機完成;

if 操作類型 == 儲存開機完成

{

temp = 開機完成;

系統資料 = temp;

系統資料模組();

等待 50ms;

if 系統資料 == 設定值

{ 設定訊息狀態為正常 }

else { 設定訊息狀態為異常 }

}

}

Page 140: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

128

表 5- 27 Real Time Clock類別操作與關係描述表

類別名稱:Real Time Clock

類別的限制 1. 輸入訊息長度為 1 個 Byte

2. 輸入值的範圍為 0~255

屬性描述 如表 5-25 的內容

類別的關係 相依關係:系統開機模組

類別的操作 傳送檢查輸入狀況

傳送鳴叫與顯示

類別的操作

描述

定義 public byte 計時資料;

定義 public byte 鳴叫與顯示類型;

定義 public byte 操作的類型;

定義 public byte 訊息的狀態;

定義 public byte 模組的狀態;

void Real Time Clock (void)

{ Byte temp ;

temp = 0;

if 操作類型 == 開始計時;

{設定模組狀態為計時中;

檢查系統計時器;

系統時間 = 計時資料;

}

if 操作類型 == 檢查輸入狀況;

{ 設定模組狀態為檢查中;

Page 141: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

129

檢查系統輸入狀況();

等待 50ms;

Temp = 系統輸入狀況;

設定模組狀態為計時中;

}

if 操作類型 == 鳴叫與顯示;

{ temp = 鳴叫與顯示的類型;

設定模組狀態為檢查中;

鳴叫與顯示();

等待 50ms;

temp = 鳴叫與顯示的類型;

設定模組狀態為計時中;

}

}

表 5- 28 系統資料模組類別操作與關係描述表

類別名稱:系統資料模組

類別的限制 1. 輸入訊息長度為 1 個 Byte

2. 輸入值的範圍為 0~255

屬性描述 如表 5-26 的內容

類別的關係 相依關係:系統開機模組

類別的操作 儲存電壓資料

儲存開關資料

儲存初始化完成

Page 142: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

130

儲存開機完成

類別的操作

描述

定義 public byte 電壓資料;

定義 public byte 開關資料;

定義 public byte 初始化資料;

定義 public byte 開機資料;

定義 public byte 系統電壓資料;

定義 public byte 系統開關資料;

定義 public byte 系統初始化資料;

定義 public byte 系統開機資料;

定義 public byte 操作的類型

定義 public byte 訊息的狀態;

定義 public byte 模組的狀態;

void 系統資料模組 (void)

{ Byte temp ;

temp = 0;

if 操作類型 == 儲存電壓資料;

{ 設定模組狀態為儲存中;

temp = 電壓資料;

系統電壓資料 = temp;

等待 50ms;

if 系統電壓資料 == 電壓資料

{ 設定訊息狀態為正常 }

else { 設定訊息狀態為異常 }

設定模組狀態為閒置;

Page 143: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

131

}

if 操作類型 == 儲存開關資料;

{ 設定模組狀態為儲存中;

temp = 開關資料;

系統開關資料 = temp;

等待 50ms;

if 系統開關資料 == 開關資料

{ 設定訊息狀態為正常 }

else { 設定訊息狀態為異常 }

設定模組狀態為閒置;

}

if 操作類型 == 儲存初始化完成;

{ 設定模組狀態為儲存中;

temp = 初始化狀態;

系統初始化資料 = temp;

等待 50ms;

if 系統初始化資料 == 初始化狀態

{ 設定訊息狀態為正常 }

else { 設定訊息狀態為異常 }

設定模組狀態為閒置;

}

if 操作類型 == 儲存開機完成;

Page 144: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

132

{ 設定模組狀態為儲存中;

temp = 開機狀態;

系統開機資料 = temp;

等待 50ms;

if 系統開機資料 == 開機狀態

{ 設定訊息狀態為正常 }

else { 設定訊息狀態為異常 }

設定模組狀態為閒置;

}

}

系統開發團隊在進行類別操作描述時,需以循序圖所表達的訊息與操作當

成描述類別操作時的主要依據,如圖 5-29 所示是系統開機類別的操作描述參照

循序圖進行描述的方法。在進行類別操作描述時在同一個時間點上亦需參照時

序圖上的時間限制與狀態圖的狀態轉換,並在描述內容確實描述出時間限制與

類別狀態和訊息狀態。進行描述時參照時序圖的方法如圖 5-30 所示,參照狀態

圖的方法如圖 5-31 所示。

表 5- 29 類別操作描述與循序圖對應關係

類別名稱:系統開機模組 循序圖

類別的限制 1. 輸入訊息長度為 1 個 Byte

2. 輸入值的範圍為 0~255

屬性描述 如表 5-24 的內容

類別的關係 相依關係:Real Time Clock、系統資料

模組

類別的操作 儲存初始化完成

傳送計數時間

Page 145: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

133

儲存開關資料

儲存電壓資料

傳送開機警示 800ms

傳送開機完成

sd 系系系系 系系系系 系系系系 系系系系 系系系系 系系系系系系系系 系系系系

使使使系系系系系系系系 系系系系 初初初初 初初初初 系系系系系系系系 系系系系 系系系系 初初初初 初初初初 Real Time Clock 系系系系 系系系系 系系系系 系系系系電電電電 電電電電 電電電電 電電電電初初初初 初初初初

鳴鳴鳴鳴鳴 啟啟啟啟啟啟啟啟

測測測測

檢檢啟啟檢檢檢檢

系系系系 系系系系系系系系 系系系系 系系系系 系系系系loop

接接 電電9~16V ()

傳傳 電電9~16V ()

傳傳傳傳傳傳傳()

儲儲傳傳傳傳傳()

傳傳傳傳傳傳()

傳傳檢檢檢檢檢檢()

儲儲儲儲儲儲()

儲儲電電儲儲()

傳傳儲傳傳鳴800ms()

傳傳檢檢檢檢檢檢()

傳傳鳴鳴鳴鳴鳴()

儲儲儲傳傳傳()

傳傳儲傳傳傳()

類別的操作

描述 定義 public byte 時間週期;

定義 public byte 系統資料;

定義 public byte 開機警示資料;

定義 pulbic byte 操作的類型;

定義 public byte 訊息的狀態;

定義 public byte 模組的狀態;

Void系統開機模組 (void)

{ Byte temp, i ;

temp = 0;

設定模組狀態為開機中;

if 操作類型 == 儲存初始化完成

{

temp = 初始化完成;

系統資料 = temp;

系統資料模組();

等待 50ms;

if 系統資料 == 設定值

{ 設定訊息狀態為正常 }

else { 設定訊息狀態為異常 }

}

Page 146: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

134

if 操作類型 == 傳送計數時間

{

temp = 5ms; //系統計數週期

時間週期 = temp;

Real Time Clock();

等待 50ms;

if 系統時間週期 == 設定值

{ 設定訊息狀態為正常 }

else { 設定訊息狀態為異常 }

}

if 操作類型 ==儲存開關資料

{

temp = 開關資料

系統資料 = temp;

系統資料模組();

等待 50ms;

if 系統資料 == 設定值

{ 設定訊息狀態為正常 }

else { 設定訊息狀態為異常 }

}

if 操作類型 ==儲存電壓資料

{

temp = 電壓資料

系統資料 = temp;

sd 系系系系 系系系系 系系系系 系系系系系系系系 系系系系 系系系系 系系系系

使使使系系系系系系系系 系系系系 初初初初 初初初初 系系系系 系系系系 系系系系 系系系系初初初初 初初初初 Real Time Clock 系系系系 系系系系 系系系系系系系系電電電電 電電電電 電電電電 電電電電 初初初初初初初初

鳴鳴鳴鳴鳴 啟啟啟啟啟啟啟啟

測測測測

檢檢啟啟檢檢檢檢

系系系系 系系系系 系系系系 系系系系 系系系系系系系系loop

接接 電電9~16V ()

傳傳 電電9~16V ()

傳傳傳傳傳傳傳()

儲儲傳傳傳傳傳()

傳傳傳傳傳傳()

傳傳檢檢檢檢檢檢()

儲儲儲儲儲儲()

儲儲電電儲儲()

傳傳儲傳傳鳴800ms()

傳傳檢檢檢檢檢檢()

傳傳鳴鳴鳴鳴鳴()

儲儲儲傳傳傳()

傳傳儲傳傳傳()

Page 147: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

135

系統資料模組();

等待 50ms;

if 系統資料 == 設定值

{ 設定訊息狀態為正常 }

else { 設定訊息狀態為異常 }

}

if 操作類型 == 傳送開機警示

800ms;

{

設定模組狀態為開機警示中;

temp = 開始開機警示;

開機警示資料 = temp;

For (i=0 ; i<=4; i++ )//跑迴圈 4 次

{

Real Time Clock();

等待 200ms;

}

if 開機警示資料== 設定值

{ 設定訊息狀態為正常 }

else { 設定訊息狀態為異常 }

}

設定模組狀態為開機完成;

if 操作類型 == 儲存開機完成

{

sd 系系系系 系系系系 系系系系 系系系系系系系系 系系系系 系系系系 系系系系

使使使系系系系系系系系 系系系系 初初初初 初初初初 系系系系 系系系系 系系系系 系系系系初初初初 初初初初 Real Time Clock 系系系系 系系系系 系系系系系系系系電電電電 電電電電 電電電電 電電電電 初初初初初初初初

鳴鳴鳴鳴鳴 啟啟啟啟啟啟啟啟

測測測測

檢檢啟啟檢檢檢檢

系系系系 系系系系 系系系系 系系系系 系系系系系系系系loop

接接 電電9~16V ()

傳傳 電電9~16V ()

傳傳傳傳傳傳傳()

儲儲傳傳傳傳傳()

傳傳傳傳傳傳()

傳傳檢檢檢檢檢檢()

儲儲儲儲儲儲()

儲儲電電儲儲()

傳傳儲傳傳鳴800ms()

傳傳檢檢檢檢檢檢()

傳傳鳴鳴鳴鳴鳴()

儲儲儲傳傳傳()

傳傳儲傳傳傳()

Page 148: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

136

temp = 開機完成;

系統資料 = temp;

系統資料模組();

等待 50ms;

if 系統資料 == 設定值

{ 設定訊息狀態為正常 }

else { 設定訊息狀態為異常 }

}

}

表 5- 30 類別操作描述與時序圖對應關係

類別名稱:系統開機模組 時序圖

類別的限制 3. 輸入訊息長度為 1 個 Byte

4. 輸入值的範圍為 0~255

屬性描述 如表 5-24 的內容

類別的關係 相依關係:Real Time Clock、系統資料

模組

類別的操作 儲存初始化完成

傳送計數時間

儲存開關資料

儲存電壓資料

傳送開機警示 800ms

傳送開機完成

類別的操作

描述 定義 public byte 時間週期;

定義 public byte 系統資料;

定義 public byte 開機警示資料;

Page 149: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

137

定義 pulbic byte 操作的類型;

定義 public byte 訊息的狀態;

定義 public byte 模組的狀態;

Void系統開機模組 (void)

{ Byte temp, i ;

temp = 0;

設定模組狀態為開機中;

if 操作類型 == 儲存初始化完成

{

temp = 初始化完成;

系統資料 = temp;

系統資料模組();

等待 50ms;

if 系統資料 == 設定值

{ 設定訊息狀態為正常 }

else { 設定訊息狀態為異常 }

}

if 操作類型 == 傳送計數時間

{

temp = 5ms; //系統計數週期

時間週期 = temp;

Real Time Clock();

等待 50ms;

if 系統時間週期 == 設定值

sd 系系系系系系系系系系系系系系系系系系系系系系系系系系系系系系系系

使使 使使使使 使使使使 使使 未未未未未未未未未未未未未未未未

未未未未接接接接未未未未未未未未

檢檢 檢檢檢檢 檢檢檢檢 檢檢檢檢 檢檢檢檢 檢檢檢檢 檢檢檢檢 檢檢檢檢 檢檢

檢檢檢檢檢檢檢檢檢檢檢檢

閒閒閒閒閒閒閒閒

{50ms} {50ms} {50ms} {50ms} {50ms}

鳴鳴 鳴鳴鳴鳴 鳴鳴鳴鳴 鳴鳴鳴鳴 鳴鳴鳴鳴 鳴鳴

輸輸輸輸輸輸輸輸檢檢檢檢

閒閒閒閒閒閒閒閒

{50ms} {50ms} {50ms} {50ms}

Re

al

Tim

e C

loc

k

檢檢檢檢檢檢檢檢檢檢檢檢

計計計計計計計計檢檢檢檢

閒閒閒閒閒閒閒閒

{150ms} {50ms} {150ms} {50ms} {150ms} {50ms} {150ms} {50ms}

初初 初初初初 初初初初 初初初初 初初初初 初初 系系系系系系系系系系系系初初初初初初初初

系系系系系系系系系系系系檢檢檢檢

閒閒閒閒閒閒閒閒

{300ms}

電電 電電電電 電電電電 電電電電 電電初初 初初初初 初初

16V

9V

0V

檢檢 檢檢檢檢 檢檢系系 系系系系 系系初初 初初初初 初初 系系系系系系系系初初初初初初初初

系系系系系系系系開開開開開開開開檢檢檢檢

系系系系系系系系檢檢檢檢

閒閒閒閒閒閒閒閒

{800ms}

檢檢 檢檢檢檢 檢檢系系 系系系系 系系初初 初初初初 初初

儲儲儲儲儲儲儲儲檢檢檢檢

閒閒閒閒閒閒閒閒

{50ms} {50ms}{50ms} {50ms}

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 4950

使使 使使使使 使使使使 使使 未未未未未未未未未未未未未未未未

未未未未接接接接未未未未未未未未

檢檢 檢檢檢檢 檢檢檢檢 檢檢檢檢 檢檢檢檢 檢檢檢檢 檢檢檢檢 檢檢檢檢 檢檢

檢檢檢檢檢檢檢檢檢檢檢檢

閒閒閒閒閒閒閒閒

{50ms} {50ms} {50ms} {50ms} {50ms}

鳴鳴 鳴鳴鳴鳴 鳴鳴鳴鳴 鳴鳴鳴鳴 鳴鳴鳴鳴 鳴鳴

輸輸輸輸輸輸輸輸檢檢檢檢

閒閒閒閒閒閒閒閒

{50ms} {50ms} {50ms} {50ms}

Re

al

Tim

e C

loc

k

檢檢檢檢檢檢檢檢檢檢檢檢

計計計計計計計計檢檢檢檢

閒閒閒閒閒閒閒閒

{150ms} {50ms} {150ms} {50ms} {150ms} {50ms} {150ms} {50ms}

初初 初初初初 初初初初 初初初初 初初初初 初初 系系系系系系系系系系系系初初初初初初初初

系系系系系系系系系系系系檢檢檢檢

閒閒閒閒閒閒閒閒

{300ms}

電電 電電電電 電電電電 電電電電 電電初初 初初初初 初初

16V

9V

0V

檢檢 檢檢檢檢 檢檢系系 系系系系 系系初初 初初初初 初初 系系系系系系系系初初初初初初初初

系系系系系系系系開開開開開開開開檢檢檢檢

系系系系系系系系檢檢檢檢

閒閒閒閒閒閒閒閒

{800ms}

檢檢 檢檢檢檢 檢檢系系 系系系系 系系初初 初初初初 初初

儲儲儲儲儲儲儲儲檢檢檢檢

閒閒閒閒閒閒閒閒

{50ms} {50ms}{50ms} {50ms} 儲儲儲儲儲儲()

傳傳 儲儲9~16V ()

傳傳傳傳傳傳傳傳() 傳傳傳傳傳傳傳傳()

儲儲儲儲儲儲()

傳傳傳傳傳儲儲()

儲儲傳傳傳儲儲()

接接 儲電9~16V

儲儲儲儲儲儲()

傳傳傳傳傳傳傳()

傳傳傳傳傳傳傳傳()

傳傳傳傳傳傳傳()

傳傳傳傳傳傳傳傳()

傳傳傳傳傳傳傳()

傳傳儲儲傳傳800ms()

傳傳傳傳傳傳傳()

傳傳傳傳傳傳傳傳()

傳傳傳傳傳傳()

Page 150: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

138

{ 設定訊息狀態為正常 }

else { 設定訊息狀態為異常 }

}

if 操作類型 ==儲存開關資料

{

temp = 開關資料

系統資料 = temp;

系統資料模組();

等待 50ms;

if 系統資料 == 設定值

{ 設定訊息狀態為正常 }

else { 設定訊息狀態為異常 }

}

if 操作類型 ==儲存電壓資料

{

temp = 電壓資料

系統資料 = temp;

系統資料模組();

等待 50ms;

if 系統資料 == 設定值

{ 設定訊息狀態為正常 }

else { 設定訊息狀態為異常 }

}

sd 系系系系系系系系系系系系系系系系系系系系系系系系系系系系系系系系

使使 使使使使 使使使使 使使 未未未未未未未未未未未未未未未未

未未未未接接接接未未未未未未未未

檢檢 檢檢檢檢 檢檢檢檢 檢檢檢檢 檢檢檢檢 檢檢檢檢 檢檢檢檢 檢檢檢檢 檢檢

檢檢檢檢檢檢檢檢檢檢檢檢

閒閒閒閒閒閒閒閒

{50ms} {50ms} {50ms} {50ms} {50ms}

鳴鳴 鳴鳴鳴鳴 鳴鳴鳴鳴 鳴鳴鳴鳴 鳴鳴鳴鳴 鳴鳴

輸輸輸輸輸輸輸輸檢檢檢檢

閒閒閒閒閒閒閒閒

{50ms} {50ms} {50ms} {50ms}

Re

al

Tim

e C

loc

k

檢檢檢檢檢檢檢檢檢檢檢檢

計計計計計計計計檢檢檢檢

閒閒閒閒閒閒閒閒

{150ms} {50ms} {150ms} {50ms} {150ms} {50ms} {150ms} {50ms}

初初 初初初初 初初初初 初初初初 初初初初 初初 系系系系系系系系系系系系初初初初初初初初

系系系系系系系系系系系系檢檢檢檢

閒閒閒閒閒閒閒閒

{300ms}

電電 電電電電 電電電電 電電電電 電電初初 初初初初 初初

16V

9V

0V

檢檢 檢檢檢檢 檢檢系系 系系系系 系系初初 初初初初 初初 系系系系系系系系初初初初初初初初

系系系系系系系系開開開開開開開開檢檢檢檢

系系系系系系系系檢檢檢檢

閒閒閒閒閒閒閒閒

{800ms}

檢檢 檢檢檢檢 檢檢系系 系系系系 系系初初 初初初初 初初

儲儲儲儲儲儲儲儲檢檢檢檢

閒閒閒閒閒閒閒閒

{50ms} {50ms}{50ms} {50ms}

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 4950

使使 使使使使 使使使使 使使 未未未未未未未未未未未未未未未未

未未未未接接接接未未未未未未未未

檢檢 檢檢檢檢 檢檢檢檢 檢檢檢檢 檢檢檢檢 檢檢檢檢 檢檢檢檢 檢檢檢檢 檢檢

檢檢檢檢檢檢檢檢檢檢檢檢

閒閒閒閒閒閒閒閒

{50ms} {50ms} {50ms} {50ms} {50ms}

鳴鳴 鳴鳴鳴鳴 鳴鳴鳴鳴 鳴鳴鳴鳴 鳴鳴鳴鳴 鳴鳴

輸輸輸輸輸輸輸輸檢檢檢檢

閒閒閒閒閒閒閒閒

{50ms} {50ms} {50ms} {50ms}

Re

al

Tim

e C

loc

k

檢檢檢檢檢檢檢檢檢檢檢檢

計計計計計計計計檢檢檢檢

閒閒閒閒閒閒閒閒

{150ms} {50ms} {150ms} {50ms} {150ms} {50ms} {150ms} {50ms}

初初 初初初初 初初初初 初初初初 初初初初 初初 系系系系系系系系系系系系初初初初初初初初

系系系系系系系系系系系系檢檢檢檢

閒閒閒閒閒閒閒閒

{300ms}

電電 電電電電 電電電電 電電電電 電電初初 初初初初 初初

16V

9V

0V

檢檢 檢檢檢檢 檢檢系系 系系系系 系系初初 初初初初 初初 系系系系系系系系初初初初初初初初

系系系系系系系系開開開開開開開開檢檢檢檢

系系系系系系系系檢檢檢檢

閒閒閒閒閒閒閒閒

{800ms}

檢檢 檢檢檢檢 檢檢系系 系系系系 系系初初 初初初初 初初

儲儲儲儲儲儲儲儲檢檢檢檢

閒閒閒閒閒閒閒閒

{50ms} {50ms}{50ms} {50ms} 儲儲儲儲儲儲()

傳傳 儲儲9~16V ()

傳傳傳傳傳傳傳傳() 傳傳傳傳傳傳傳傳()

儲儲儲儲儲儲()

傳傳傳傳傳儲儲()

儲儲傳傳傳儲儲()

接接 儲電9~16V

儲儲儲儲儲儲()

傳傳傳傳傳傳傳()

傳傳傳傳傳傳傳傳()

傳傳傳傳傳傳傳()

傳傳傳傳傳傳傳傳()

傳傳傳傳傳傳傳()

傳傳儲儲傳傳800ms()

傳傳傳傳傳傳傳()

傳傳傳傳傳傳傳傳()

傳傳傳傳傳傳()

Page 151: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

139

if 操作類型 == 傳送開機警示

800ms;

{

設定模組狀態為開機警示中;

temp = 開始開機警示;

開機警示資料 = temp;

For (i=0 ; i<=4; i++ )//跑迴圈 4 次

{

Real Time Clock();

等待 200ms;

}

if 開機警示資料== 設定值

{ 設定訊息狀態為正常 }

else { 設定訊息狀態為異常 }

}

設定模組狀態為開機完成;

if 操作類型 == 儲存開機完成

{

temp = 開機完成;

系統資料 = temp;

系統資料模組();

等待 50ms;

if 系統資料 == 設定值

{ 設定訊息狀態為正常 }

else { 設定訊息狀態為異常 }

sd 系系系系系系系系系系系系系系系系系系系系系系系系系系系系系系系系

使使 使使使使 使使使使 使使 未未未未未未未未未未未未未未未未

未未未未接接接接未未未未未未未未

檢檢 檢檢檢檢 檢檢檢檢 檢檢檢檢 檢檢檢檢 檢檢檢檢 檢檢檢檢 檢檢檢檢 檢檢

檢檢檢檢檢檢檢檢檢檢檢檢

閒閒閒閒閒閒閒閒

{50ms} {50ms} {50ms} {50ms} {50ms}

鳴鳴 鳴鳴鳴鳴 鳴鳴鳴鳴 鳴鳴鳴鳴 鳴鳴鳴鳴 鳴鳴

輸輸輸輸輸輸輸輸檢檢檢檢

閒閒閒閒閒閒閒閒

{50ms} {50ms} {50ms} {50ms}

Re

al

Tim

e C

loc

k

檢檢檢檢檢檢檢檢檢檢檢檢

計計計計計計計計檢檢檢檢

閒閒閒閒閒閒閒閒

{150ms} {50ms} {150ms} {50ms} {150ms} {50ms} {150ms} {50ms}

初初 初初初初 初初初初 初初初初 初初初初 初初 系系系系系系系系系系系系初初初初初初初初

系系系系系系系系系系系系檢檢檢檢

閒閒閒閒閒閒閒閒

{300ms}

電電 電電電電 電電電電 電電電電 電電初初 初初初初 初初

16V

9V

0V

檢檢 檢檢檢檢 檢檢系系 系系系系 系系初初 初初初初 初初 系系系系系系系系初初初初初初初初

系系系系系系系系開開開開開開開開檢檢檢檢

系系系系系系系系檢檢檢檢

閒閒閒閒閒閒閒閒

{800ms}

檢檢 檢檢檢檢 檢檢系系 系系系系 系系初初 初初初初 初初

儲儲儲儲儲儲儲儲檢檢檢檢

閒閒閒閒閒閒閒閒

{50ms} {50ms}{50ms} {50ms}

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 4950

使使 使使使使 使使使使 使使 未未未未未未未未未未未未未未未未

未未未未接接接接未未未未未未未未

檢檢 檢檢檢檢 檢檢檢檢 檢檢檢檢 檢檢檢檢 檢檢檢檢 檢檢檢檢 檢檢檢檢 檢檢

檢檢檢檢檢檢檢檢檢檢檢檢

閒閒閒閒閒閒閒閒

{50ms} {50ms} {50ms} {50ms} {50ms}

鳴鳴 鳴鳴鳴鳴 鳴鳴鳴鳴 鳴鳴鳴鳴 鳴鳴鳴鳴 鳴鳴

輸輸輸輸輸輸輸輸檢檢檢檢

閒閒閒閒閒閒閒閒

{50ms} {50ms} {50ms} {50ms}

Re

al

Tim

e C

loc

k

檢檢檢檢檢檢檢檢檢檢檢檢

計計計計計計計計檢檢檢檢

閒閒閒閒閒閒閒閒

{150ms} {50ms} {150ms} {50ms} {150ms} {50ms} {150ms} {50ms}

初初 初初初初 初初初初 初初初初 初初初初 初初 系系系系系系系系系系系系初初初初初初初初

系系系系系系系系系系系系檢檢檢檢

閒閒閒閒閒閒閒閒

{300ms}

電電 電電電電 電電電電 電電電電 電電初初 初初初初 初初

16V

9V

0V

檢檢 檢檢檢檢 檢檢系系 系系系系 系系初初 初初初初 初初 系系系系系系系系初初初初初初初初

系系系系系系系系開開開開開開開開檢檢檢檢

系系系系系系系系檢檢檢檢

閒閒閒閒閒閒閒閒

{800ms}

檢檢 檢檢檢檢 檢檢系系 系系系系 系系初初 初初初初 初初

儲儲儲儲儲儲儲儲檢檢檢檢

閒閒閒閒閒閒閒閒

{50ms} {50ms}{50ms} {50ms} 儲儲儲儲儲儲()

傳傳 儲儲9~16V ()

傳傳傳傳傳傳傳傳() 傳傳傳傳傳傳傳傳()

儲儲儲儲儲儲()

傳傳傳傳傳儲儲()

儲儲傳傳傳儲儲()

接接 儲電9~16V

儲儲儲儲儲儲()

傳傳傳傳傳傳傳()

傳傳傳傳傳傳傳傳()

傳傳傳傳傳傳傳()

傳傳傳傳傳傳傳傳()

傳傳傳傳傳傳傳()

傳傳儲儲傳傳800ms()

傳傳傳傳傳傳傳()

傳傳傳傳傳傳傳傳()

傳傳傳傳傳傳()

Page 152: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

140

}

}

表 5- 31 類別操作描述與狀態圖對應關係

類別名稱:系統開機模組 狀態圖

類別的限制 5. 輸入訊息長度為 1 個 Byte

6. 輸入值的範圍為 0~255

stm 系系系系系系系系系系系系系系系系

進進進

閒閒閒閒閒閒閒閒

系系系系系系系系開開開開系系系系系系系系開開開開開開開開開開開開

系系系系系系系系開開開開開開開開

離離離離離離離離離離離離離離離

完完離完

完完離完完完

離開離完完完

結結離完

離開離完

完完完開完

屬性描述 如表 5-24 的內容

類別的關係 相依關係:Real Time Clock、系統資料

模組

類別的操作 儲存初始化完成

傳送計數時間

儲存開關資料

儲存電壓資料

傳送開機警示 800ms

傳送開機完成

類別的操作

描述 定義 public byte 時間週期;

定義 public byte 系統資料;

定義 public byte 開機警示資料;

定義 pulbic byte 操作的類型;

定義 public byte 訊息的狀態;

定義 public byte 模組的狀態;

Void系統開機模組 (void)

{ Byte temp, i ;

temp = 0;

Page 153: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

141

設定模組狀態為開機中;

if 操作類型 == 儲存初始化完成

{

temp = 初始化完成;

系統資料 = temp;

系統資料模組();

等待 50ms;

if 系統資料 == 設定值

{ 設定訊息狀態為正常 }

else { 設定訊息狀態為異常 }

}

if 操作類型 == 傳送計數時間

{

temp = 5ms; //系統計數週期

時間週期 = temp;

Real Time Clock();

等待 50ms;

if 系統時間週期 == 設定值

{ 設定訊息狀態為正常 }

else { 設定訊息狀態為異常 }

}

if 操作類型 ==儲存開關資料

{

temp = 開關資料

stm 系系系系系系系系系系系系系系系系

進進進

閒閒閒閒閒閒閒閒

系系系系系系系系開開開開系系系系系系系系開開開開開開開開開開開開

系系系系系系系系開開開開開開開開

離離離離離離離離離離離離離離離

完完離完

完完離完完完

離開離完完完

結結離完

離開離完

完完完開完

Page 154: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

142

系統資料 = temp;

系統資料模組();

等待 50ms;

if 系統資料 == 設定值

{ 設定訊息狀態為正常 }

else { 設定訊息狀態為異常 }

}

if 操作類型 ==儲存電壓資料

{

temp = 電壓資料

系統資料 = temp;

系統資料模組();

等待 50ms;

if 系統資料 == 設定值

{ 設定訊息狀態為正常 }

else { 設定訊息狀態為異常 }

}

if 操作類型 == 傳送開機警示

800ms;

{

設定模組狀態為開機警示中;

temp = 開始開機警示;

開機警示資料 = temp;

For (i=0 ; i<=4; i++ )//跑迴圈 4 次

Page 155: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

143

{

Real Time Clock();

等待 200ms;

}

if 開機警示資料== 設定值

{ 設定訊息狀態為正常 }

else { 設定訊息狀態為異常 }

}

設定模組狀態為開機完成;

if 操作類型 == 儲存開機完成

{

temp = 開機完成;

系統資料 = temp;

系統資料模組();

等待 50ms;

if 系統資料 == 設定值

{ 設定訊息狀態為正常 }

else { 設定訊息狀態為異常 }

}

}

stm 系系系系系系系系系系系系系系系系

進進進

閒閒閒閒閒閒閒閒

系系系系系系系系開開開開系系系系系系系系開開開開開開開開開開開開

系系系系系系系系開開開開開開開開

離離離離離離離離離離離離離離離

完完離完

完完離完完完

離開離完完完

結結離完

離開離完

完完完開完

三、 程式碼轉換

(1)實作平台選定實作平台選定實作平台選定實作平台選定

步驟步驟步驟步驟 1::::找出系統效能需求找出系統效能需求找出系統效能需求找出系統效能需求

依據方法論從時間需求、使用個案描述表與時序圖中找到,系統在執行蜂

Page 156: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

144

鳴器快鳴的時間需求是 80ms±8ms,所以最小需要滿足的時間需求是 8ms,因

此系統的計時誤差需小於 8ms 才能狀時序誤差控制在 8ms 以內,所以可將系

統的基礎時間設定為 5ms 以符合時間需求。

由於系統的運行環境是使用 40KHz 的超音波,所以發出超音波的最小週

期為 25us 而半週期為 12.5us,所以系統需要解析的最小時間需求是 0.5us,

因此系統最小的運行需求為 0.5us。

步驟步驟步驟步驟 2::::找出系統元件找出系統元件找出系統元件找出系統元件

停車輔助控制器的系統元件,要從部署圖的實體、介面與連結匯整表、類

別圖的類別屬性描述表與類別操作描述表的內容來找。從類別屬性描述表可以

找出每個類別所需要用到的屬性並直接轉換成所需要的記憶體,再從部署圖與

類別的操作描述中可以找出類別執行操作時所需要用到的輸入輸出埠、計時

器、ADC,並將找到的系統元件填入匯整表中,完成的匯整表如表 5-32 所示。

表 5- 32 停車輔助控制器系統元件匯整表

項次 類別 系統元件 元件規格

1 電源偵測模組 ADC 1. 數位解析度 10 bits

2. 類別與數位轉換時間 10us

2 初始化模組 輸入埠 1. 數位邏輯閘

2. 可規劃成輸入埠

3 初始化模組 輸出埠 1. 數位邏輯閘

2. 可規劃成輸出埠

4 初始化模組 記憶體 64 bytes

5 系統開機模組 記憶體 5 bytes

6 Real Time Clock 計時器 8 bits 的 Real Timer

7 Real Time Clock 輸入埠 1. 數位邏輯閘

2. 可規劃成輸入埠

Page 157: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

145

8 Real Time Clock 輸出埠 1. 數位邏輯閘

2. 可規劃成輸出埠

9 系統資料模組 記憶體 8 bytes

步驟步驟步驟步驟 3::::決定系統平台決定系統平台決定系統平台決定系統平台

依據系統效能需求與系統元件,所找出符合需求的系統平台有 Microchip

的 PIC16F74 與 Freescale 的 MC9S08AC16,如表 5-33 所示。由於此系統客

戶要求要低成本,所以在決定平台時將以成為最後的考量,而經過評估後所決

定選用的平台為 PIC16F74,如表 5-33 的選定結果所示。

表 5- 33 停車輔助控制器平台選用評定表

系統需求

系統平台

運行速度 ROM RAM 埠數 成本 選定結果

20MHz 2K Bytes 128Bytes 30 NT 25

PIC16F74 20MHz 4K Bytes 192Bytes 33 NT 40 V

MC9S08AC16 40MHz 16K Bytes 1K Bytes 38 NT 70 X

Microchip PIC16F74系統平台發展環境如下所列:

1. 系統平台語言:組合語言

2. 系統平台發展工具:Microchip MPLAB IDE v8.63、Assembler

v3.90、Complier v9.80

3. 系統平台除錯工具:Microchip MPLAB IDE v8.63、MPLAB SIM

4. 系統平台燒錄工具:MPLAB ICD 2

(2)實作實作實作實作 Code轉換轉換轉換轉換

步驟步驟步驟步驟 1::::屬性資料轉換屬性資料轉換屬性資料轉換屬性資料轉換

屬性資料轉換需將每個類別的屬性依據所選定的平台進行轉換,因此需要

先瞭解平台的資料型態,並將類別屬性的資料型態與平台的資料型態先進行對

Page 158: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

146

應,如表 5-34 所示。

完成平台的資料型態的對應後再依據對應表進行屬性資料的轉換,可從每

個類別的類別屬性描述表進行屬性資料轉換,每一個類別屬性可轉換成一個平

台屬性資料,如表 5-35、表 5-36、表 5-37、表 5-38、表 5-39 所示。

表 5- 34 停車輔助控制器資料型態對應表

類別屬性的資料型態 PIC16F72資料型態

Boolean Bit

Byte Byte

Double -

Integer Byte

String Byte

表 5- 35 電源偵測模組類別屬性轉換表

類別名稱:電源偵測模組 系統平台模組:CHK_SYS_VOLTAGE

類別屬性 系統平台屬性資料

名稱 型態 長度 名稱 型態 長度

1 電壓值 Byte 1 SYS_VOLTAGE Byte 1

表 5- 36 初始化模組類別屬性轉換表

類別名稱:初始化模組 系統平台模組:CHK_SYS_INITIAL

類別屬性 系統平台屬性資料

名稱 型態 長度 名稱 型態 長度

1 初始化狀態 Byte 1 SYS_INIT_STATUS Byte 1

Page 159: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

147

表 5- 37 系統開機模組類別屬性轉換表

類別名稱:系統開機模組 系統平台模組:CHK_SYS_BOOT

類別屬性 系統平台屬性資料

名稱 型態 長度 名稱 型態 長度

1 時間週期 Byte 1 SYS_TIME_CYCLE Byte 1

2 開機警示資料 Byte 1 SYS_BOOT_REMIND Byte 1

3 開機狀態 Byte 1 SYS_BOOT_STATUS Byte 1

表 5- 38 Real Time Clock類別屬性轉換表

類別名稱:Real Time Clock 模組 系統平台模組:CHK_RTCC

類別屬性 系統平台屬性資料

名稱 型態 長度 名稱 型態 長度

1 計時資料 Byte 1 REAL_TIME_COUNTER Byte 1

2 鳴叫與顯示類型 Byte 1 SYS_REMIND_TYPE Byte 1

表 5- 39 系統資料模組類別屬性轉換表

類別名稱:系統資料模組 系統平台模組:CHK_DATA_RECODER

類別屬性 系統平台屬性資料

名稱 型態 長度 名稱 型態 長度

1 電壓狀況 Byte 1 VOLTAGE_DATA Byte 1

2 開關狀況 Byte 1 SWITCH_DATA Byte 1

3 系統初始狀態 Byte 1 SYS_INIT_DATA Byte 1

4 系統開機狀態 Byte 1 SYS_BOOT_DATA Byte 1

Page 160: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

148

步驟步驟步驟步驟 2::::程式碼轉換程式碼轉換程式碼轉換程式碼轉換

完成系統平台選定、屬性資料轉換後即要進行程式碼轉換步驟,將 PIM塑

模成果轉換成與平台相依的程式碼,再經由系統平台的程式開發工具,將程式

碼燒錄至MCU 的 ROM中,將停車輔助控制器接上 9~16V 電源後,實現系統

互動行為。

程式碼的轉換是由類別操作與關係描述表進行轉換,將描述表中的定義與

程式語言描述轉換成系統平台的程式碼,可將程式碼轉換成 C Code、C++、

Java、與組合語言等。停車輔助系統所選用的 PIC16F74 需要使用組合語言為

程式編輯語言,故以下將把電源偵測模組、系統初始化模組、系統開機模組、

Real Time Clock、和系統資料模組的類別操作描述轉換成組合語言程式碼,如

表 5-40、表 5-41、表 5-42、表 5-43、表 5-44 所示。

表 5- 40 電源偵測模組程式碼轉換對照

類別名稱:電源偵測模組

類別的操作描述 程式碼

定義 public byte 電壓值;

定義 public byte 訊息的狀態;

定義 public byte 模組的狀態;

void電源偵測模組 (void)

{ Byte temp ;

temp = 0;

等待 50ms;

SYS_VOLTAGE EQU 30H

SYS_MESSAGE_STATUS EQU 31H

SYS_MODULE_STATUS EQU 32H

CHK_SYS_VOLTAGE

CLRWDT

CLRF TEMP ; TEMP=0

CALL WAIT_50MS

MOVLW 10000000B

Page 161: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

149

temp = 汽車電壓信號;

if 0 < temp < 16

{ 設定電壓值的狀態為正常 }

XORWF FLAG1,F

BTFSC AD_CHENNAL_SELECT

GOTO EXIT_SYS_VOLTAGE

CHK_SYS_VOLTAGE_10

INCF AD_CNT

BSF ADCON0,ADGO

CHK_SYS_ADC1

BTFSC ADCON0,ADGO

GOTO CHK_SYS_ADC1

MOVFW ADRES

MOVWF AD_TMP

MOVWF TEMP ;汽車電壓

MOVLW 01011001B

MOVWF ADCON0

MOVLW 16

SUBWF TEMP,W

BTFSS STATUS,C

GOTO CHK_MESSAGE_ERROR

CHK_MESSAGE_OK ;設定訊息狀態為正常

BCF STATUS,RP0

MOVLW 01

MOVWF SYS_MESSAGE_STATUS

Page 162: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

150

else { 設定電壓值的狀態為異常 }

電壓值 = temp;

if temp = 0 ~ 8

{ 設定模組的狀態為 0V }

if temp = 9 ~ 12

{ 設定模組的狀態為 9V }

GOTO EXIT_SYS_VOLTAGE

CHK_MESSAGE_ERROR ;設定訊息狀態為異常

BCF STATUS,RP0

MOVLW 02

MOVWF SYS_MESSAGE_STATUS

EXIT_SYS_VOLTAGE

MOVFW TEMP

MOVWF SYS_VOLTAGE

CHK_VOLTAGE_0V

MOVLW 8

SUBWF SYS_VOLTAGE,W

BTFSC STATUS,C

GOTO CHK_VOLTAGE_9V

MOVFW 0

MOVWF SYS_MODULE_STATUS ;設定狀態為 0V

CHK_VOLTAGE_9V

MOVLW 9

SUBWF SYS_VOLTAGE,W

BTFSS STATUS,C

GOTO CHK_VOLTAGE_16V

MOVFW 9

MOVWF SYS_MODULE_STATUS ;設定狀態為 9V

Page 163: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

151

if temp = 12 ~ 16

{ 設定模組的狀態為 16V }

}

CHK_VOLTAGE_16V

MOVLW 16

SUBWF SYS_VOLTAGE,W

BTFSC STATUS,C

GOTO EXIT_SYS_VOLTAGE_10

MOVFW 16

MOVWF SYS_MODULE_STATUS ;設定狀態為 16V

EXIT_SYS_VOLTAGE_10

表 5- 41 初始化模組程式碼轉換對照

類別名稱:初始化模組

類別的操作描述 程式碼

定義 public byte 初始化狀態;

定義 public byte 訊息的狀態;

定義 public byte 模組的狀態;

Void 初始化模組 (void)

{ Byte temp ;

temp = 0;

設定模組的狀態為初始化中;

SYS_INIT_STATUS EQU 30H

SYS_MESSAGE_STATUS EQU 31H

SYS_MODULE_STATUS EQU 32H

CHK_SYS_INITIAL

CLRF TEMP

CLRF STATUS

MOVLW 01H

MOFWF SYS_MODULE_STATUS; 設為初始化中

Page 164: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

152

設定系統時鐘;

設定輸入輸出介面;

BSF STATUS,RP0

MOVLW 11000000B ;設定系統時鐘

MOVWF RTCC ;

SET_SYS_PORT ;設定輸入輸出介面

BSF STATUS,RP0

MOVLW TRISA_IO

MOVWF TRISA

MOVLW TRISB_IO

MOVWF TRISB

MOVLW TRISC_IO

MOVWF TRISC

MOVLW TRISD_IO

MOVWF TRISD

MOVLW TRISE_IO

MOVWF TRISE

BCF STATUS,RP0

CLRF PORTA

CLRF PORTB

CLRF PORTC

CLRF PORTD

CLRF PORTE

CHK_SYS_FSR ;設定系統特定資源

BCF STATUS,RP0

MOVLW 01010000B

MOVWF INTCON

Page 165: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

153

設定系統特定資源;

等待 300ms;

清除記憶體;

if 記憶體設定 == 設定值;

{ 設定訊息狀態為正常 }

MOVLW 00010101B

MOVWF T1CON

MOVLW 00000101B

MOVWF T2CON

MOVLW 01000001B

MOVWF ADCON0

BSF STATUS,RP0

MOVLW 00000000B

MOVWF PIE1

MOVLW 00000100B

MOVWF ADCON1

MOVLW 108

MOVWF PR2

BCF STATUS,RP0

BCF INTCON,GIE

CALL WAIT_300MS

CALL CLR_MEMORY ;;清除記憶體

MOVFW TEMP

BTFSS STATUS,Z

GOTO CHK_MESSAGE_ERROR

CHK_MESSAGE_OK

BCF STATUS,RP0

MOVLW 01 ;設定訊息狀態為正常

Page 166: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

154

else { 設定訊息狀態為異常 }

設定模組的狀態為完成初始化;

}

MOVWF SYS_MESSAGE_STATUS

GOTO CHK_SYS_FSR

CHK_MESSAGE_ERROR

BCF STATUS,RP0

MOVLW 02 ;設定訊息狀態為異常

MOVWF SYS_MESSAGE_STATUS

MOVLW 02

MOFWF SYS_MODULE_STATUS; 設為完成初始化

EXIT_SYSTEM_INITIALIZATION

表 5- 42 系統開機模組程式碼轉換對照

類別名稱:系統開機模組

類別的操作描述 程式碼

定義 public byte 時間週期;

定義 public byte 系統資料;

定義 public byte 開機警示資料;

定義 pulbic byte 操作的類型;

SYS_TIME_CYCLE EQU 30H

SYS_SAVE_DATA EQU 31H

SYS_BOOT_REMIND EQU 32H

SYS_OPERATION_TYPE EQU 33H

#DEFINE F_SAVE_INIT SYS_OPERATION_TYPE,0

#DEFINE F_SEND_RTCC SYS_OPERATION_TYPE,1

#DEFINE F_SAVE_SW SYS_OPERATION_TYPE,2

#DEFINE F_SAVE_VOLT SYS_OPERATION_TYPE,3

#DEFINE F_SEND_REMIND SYS_OPERATION_TYPE,4

Page 167: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

155

定義 public byte 訊息的狀態;

定義 public byte 模組的狀態;

Void 系統開機模組 (void)

{ Byte temp, i ;

temp = 0;

設定模組狀態為開機中;

if 操作類型 == 儲存初始化完成

{

temp = 初始化完成;

系統資料 = temp;

系統資料模組();

等待 50ms;

if 系統資料 == 設定值

{ 設定訊息狀態為正常 }

#DEFINE F_BOOT_FINISH SYS_OPERATION_TYPE,5

SYS_MESSAGE_STATUS EQU 34H

SYS_MODULE_STATUS EQU 35H

CHK_SYS_BOOT

CLRF TEMP ; TEMP=0

MOVLW 01H

MOFWF SYS_MODULE_STATUS; 設為開機中

;;===================================

BTFSS F_SAVE_INIT ; 儲存初始化完成

GOTO EXIT_SAVE_INIT_FINISH

CHK_SAVE_INIT_FINISH

MOVFW SYS_INIT_FINISH

MOVWF TEMP

MOVFW TEMP

MOVWF SYS_SAVE_DATA

CALL CHK_DATA_RECODER ;系統資料模組

CALL WAIT_50MS

MOVFW SYS_SAVE_DATA

MOVWF TEMP

BTFSS STATUS,Z

GOTO CHK_MESSAGE_ERROR

CHK_MESSAGE_OK ;設定訊息狀態為正常

MOVLW 01

Page 168: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

156

else { 設定訊息狀態為異常 }

}

if 操作類型 == 傳送計數時間

{

temp = 5ms; //系統計數週期

時間週期 = temp;

Real Time Clock();

等待 50ms;

if 系統時間週期 == 設定值

{ 設定訊息狀態為正常 }

MOVWF SYS_MESSAGE_STATUS

GOTO EXIT_REALT_TIME_CLOCK

CHK_MESSAGE_ERROR ;設定訊息狀態為異常

MOVLW 02

MOVWF SYS_MESSAGE_STATUS

EXIT_SAVE_INIT_FINISH

;;===================================

BTFSS F_SEND_RTCC ; 傳送計數時間

GOTO EXIT_REALT_TIME_CLOCK

CHK_REALT_TIME_CLOCK

MOVLW 05H

MOVWF TEMP

MOVFW TEMP

MOVWF SYS_TIME_CYCLE

CALL CHK_RTCC ;Real Time Clock

CALL WAIT_50MS

MOVFW RTCC

MOVWF TEMP

BTFSS STATUS,Z

GOTO CHK_MESSAGE_ERROR_10

CHK_MESSAGE_OK_10

MOVLW 01 ;設定訊息狀態為正常

MOVWF SYS_MESSAGE_STATUS

GOTO EXIT_REALT_TIME_CLOCK

Page 169: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

157

else { 設定訊息狀態為異常 }

}

if 操作類型 ==儲存開關資料

{

temp = 開關資料

系統資料 = temp;

系統資料模組();

等待 50ms;

if 系統資料 == 設定值

{ 設定訊息狀態為正常 }

CHK_MESSAGE_ERROR_10

MOVLW 02 ;設定訊息狀態為異常

MOVWF SYS_MESSAGE_STATUS

EXIT_REALT_TIME_CLOCK

;;===================================

BTFSS F_SAVE_SW ; 儲存開關資料

GOTO EXIT_SAVE_SWITCH

CHK_SAVE_SWITCH

MOVFW SYS_SW_STATUS

MOVWF TEMP

MOVFW TEMP

MOVWF SYS_SAVE_DATA

CALL CHK_DATA_RECODER ;系統資料模組

CALL WAIT_50MS

MOVFW SYS_SAVE_DATA

MOVWF TEMP

BTFSS STATUS,Z

GOTO CHK_MESSAGE_ERROR_20

CHK_MESSAGE_OK_20

MOVLW 01 ;設定訊息狀態為正常

MOVWF SYS_MESSAGE_STATUS

GOTO EXIT_REALT_TIME_CLOCK

Page 170: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

158

else { 設定訊息狀態為異常 }

}

if 操作類型 ==儲存電壓資料

{

temp = 電壓資料

系統資料 = temp;

系統資料模組();

等待 50ms;

if 系統資料 == 設定值

{ 設定訊息狀態為正常 }

else { 設定訊息狀態為異常 }

}

CHK_MESSAGE_ERROR_20

MOVLW 02 ;設定訊息狀態為異常

MOVWF SYS_MESSAGE_STATUS

EXIT_SYS_SAVE_SWITCH

;;===================================

BTFSS F_SAVE_VOLT ; 儲存電壓資料

GOTO EXIT_SAVE_VOLTAGE

CHK_SAVE_VOLTAGE

MOVLW SYS_VOLTAGE

MOVWF TEMP

MOVFW TEMP

MOVWF SYS_SAVE_DATA

CALL CHK_DATA_RECODER ;系統資料模組

CALL WAIT_50MS

MOVFW SYS_SAVE_DATA

MOVWF TEMP

BTFSS STATUS,Z

GOTO CHK_MESSAGE_ERROR_30

CHK_MESSAGE_OK_30

MOVLW 01 ;設定訊息狀態為正常

MOVWF SYS_MESSAGE_STATUS

GOTO EXIT_REALT_TIME_CLOCK

CHK_MESSAGE_ERROR_30

MOVLW 02 ;設定訊息狀態為異常

MOVWF SYS_MESSAGE_STATUS

Page 171: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

159

if 操作類型 == 傳送開機警示

800ms;

{

設定模組狀態為開機警示中;

temp = 開始開機警示;

開機警示資料 = temp;

For (i=0 ; i<=4; i++ )//跑迴圈

4次

{

Real Time Clock();

等待 200ms;

}

if 開機警示資料== 設定值

EXIT_SAVE_VOLTAGE

;;===================================

BTFSS F_SEND_REMIND ; 傳送開機警示 800ms

GOTO EXIT_SEND_BOOT_REMIND

CHK_SEND_BOOT_REMIND

MOVLW 02

MOFWF SYS_MODULE_STATUS; 設為開機警示中

MOVLW 05

MOVWF TEMP

MOVFW TEMP

MOVWF SYS_BOOT_REMIND ;開機警示資料

MOVLW 4

MOVWF TEMP

CHK_BOOT_REMIND

CALL CHK_RTCC ;Real Time Clock

CALL WAIT_200MS

DECFSZ TEMP,CHK_BOOT_REMIND

MOVFW SYS_BOOT_REMIND

MOVWF TEMP

BTFSS STATUS,Z

GOTO CHK_MESSAGE_ERROR_40

Page 172: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

160

{ 設定訊息狀態為正常 }

else { 設定訊息狀態為異常 }

}

設定模組狀態為開機完成;

if 操作類型 == 儲存開機完成

{

temp = 開機完成;

系統資料 = temp;

系統資料模組();

等待 50ms;

if 系統資料 == 設定值

CHK_MESSAGE_OK_40

MOVLW 01 ;設定訊息狀態為正常

MOVWF SYS_MESSAGE_STATUS

GOTO EXIT_SEND_BOOT_REMIND

CHK_MESSAGE_ERROR_40

MOVLW 02 ;設定訊息狀態為異常

MOVWF SYS_MESSAGE_STATUS

EXIT_SEND_BOOT_REMIND

MOVLW 03

MOFWF SYS_MODULE_STATUS; 設為開機完成

;;===================================

BTFSS F_BOOT_FINISH ; 儲存開機完成

GOTO EXIT_SAVE_BOOT_FINISH

CHK_SAVE_BOOT_FINISH

MOVFW SYS_BOOT_FINISH

MOVWF TEMP

MOVFW TEMP

MOVWF SYS_SAVE_DATA

CALL CHK_DATA_RECODER ;系統資料模組

CALL WAIT_50MS

MOVFW SYS_SAVE_DATA

MOVWF TEMP

BTFSS STATUS,Z

GOTO CHK_MESSAGE_ERROR_50

Page 173: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

161

{ 設定訊息狀態為正常 }

else { 設定訊息狀態為異常 }

}

}

CHK_MESSAGE_OK_50

MOVLW 01 ;設定訊息狀態為正常

MOVWF SYS_MESSAGE_STATUS

GOTO EXIT_REALT_TIME_CLOCK

CHK_MESSAGE_ERROR_50

MOVLW 02 ;設定訊息狀態為異常

MOVWF SYS_MESSAGE_STATUS

EXIT_SYS_SAVE_BOOT_FINISH

表 5- 43 Real Time Clock 程式碼轉換對照

類別名稱:Real Time Clock

類別的操作描述 程式碼

定義 public byte 計時資料;

定義 public byte 鳴叫與顯示類型;

定義 public byte 操作的類型;

定義 public byte 訊息的狀態;

定義 public byte 模組的狀態;

void Real Time Clock (void)

{ Byte temp ;

temp = 0;

REAL_TIME_COUNTER EQU 30H

SYS_REMIND_TYPE EQU 31H

SYS_OPERATION_TYPE EQU 32H

#DEFINE F_START_RTCC SYS_OPERATION_TYPE,0

#DEFINE F_CHECK_INPUT SYS_OPERATION_YTPE,1

#DEFINE F_BUZ_DISP SYS_OPERATION_TYPE,2

SYS_MESSAGE_STATUS EQU 33H

SYS_MODULE_STATUS EQU 34H

CHK_RTCC

CLRF TEMP ; TEMP=0

Page 174: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

162

if 操作類型 == 開始計時;

{

設定模組狀態為計時中;

檢查系統計時器;

系統時間 = 計時資料;

}

if 操作類型 == 檢查輸入狀況;

{

設定模組狀態為檢查中;

檢查系統輸入狀況();

等待 50ms;

Temp = 系統輸入狀況;

設定模組狀態為計時中;

}

BTFSS F_START_RTCC ; 開始計時

GOTO EXIT_START_RTCC

CHK_START_RTCC

MOVLW 01H ;模組狀態為計時中

MOFWF SYS_MODULE_STATUS

BTFSS RTCC,7

GOTO EXIT_START_RTCC

MOVFW SYS_TIME_CYCLE

MOVWF RTCC

EXIT_CHK_START_RTCC

;;===================================

BTFSS F_CHECK_INPUT ; 檢查輸入狀況

GOTO EXIT_CHK_INPUT_STATUS

CHK_INPUT_STATUS

MOVLW 03 ;模組狀態為檢查中

MOVWF SYS_MODULE_STATUS

CALL CHK_SYS_INPUT ;檢查系統輸入狀況

CALL WAIT_50MS

MOVFW SYS_INPUT_STATUS

MOVWF TEMP

MOVLW 01 ;模組狀態為計時中

MOVWF SYS_MODULE_STATUS

EXIT_CHK_INPUT_STATUS

Page 175: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

163

if 操作類型 == 鳴叫與顯示;

{

temp = 鳴叫與顯示的類型;

設定模組狀態為檢查中;

鳴叫與顯示();

等待 50ms;

temp = 鳴叫與顯示的類型;

設定模組狀態為計時中;

}

}

;;===================================

BTFSS F_BUZ_DISP ; 鳴叫與顯示

GOTO EXIT_CHK_BUZZER_AND_DISPLAY

CHK_BUZZER_AND_DISPLAY

MOVFW SYS_REMIND_TYPE

MOVWF TEMP

MOVLW 03 ;模組狀態為檢查中

MOVWF SYS_MODULE_STATUS

CALL CHK_BUZZER_DISPLAY ;鳴叫與顯示

CALL WAIT_50MS

MOVFW SYS_REMIND_TYPE

MOVWF TEMP

MOVLW 01 ;模組狀態為計時中

MOVWF SYS_MODULE_STATUS

EXIT_CHK_BUZZER_AND_DISPLAY

表 5- 44 系統資料模組程式碼轉換對照

類別名稱:系統資料模組

類別的操作描述 程式碼

定義 public byte 電壓資料;

定義 public byte 開關資料;

定義 public byte 初始化資料;

定義 public byte 開機資料;

定義 public byte 系統電壓資料;

SYS_VOLTAGE EQU 30H

SYS_SW_STATUS EQU 31H

SYS_INIT_FINISH EQU 32H

SYS_BOOT_FINISH EQU 33H

SYS_VOLTAGE_DATA EQU 34H

Page 176: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

164

定義 public byte 系統開關資料;

定義 public byte 系統初始化資料;

定義 public byte 系統開機資料;

定義 public byte 操作的類型

定義 public byte 訊息的狀態;

定義 public byte 模組的狀態;

void 系統資料模組 (void)

{ Byte temp ;

temp = 0;

if 操作類型 == 儲存電壓資料;

{

設定模組狀態為儲存中;

temp = 電壓資料;

系統電壓資料 = temp;

等待 50ms;

if 系統電壓資料 == 電壓資料

SYS_SW_STATUS_DATA EQU 35H

SYS_INITIAL_DATA EQU 36H

SYS_BOOT_DATA EQU 37H

SYS_OPERATION_TYPE EQU 38H

#DEFINE F_SAVE_VOLTAGE SYS_OPERATION_TYPE,0

#DEFINE F_SAVE_SWITCH SYS_OPERATION_TYPE,1

#DEFINE F_SAVE_INIT_STATUS SYS_OPERATION_TYPE,2

#DEFINE F_SAVE_BOOT_STATUS SYS_OPERATION_TYPE,3

SYS_MESSAGE_STATUS EQU 39H

SYS_MODULE_STATUS EQU 3AH

CHK_DATA_RECODER

CLRF TEMP ; TEMP=0

BTFSS F_SAVE_VOLTAGE ; 儲存電壓資料

GOTO EXIT_CHK_SAVE_VOLTAGE

CHK_SAVE_VOLTAGE

MOVLW 01 ;模組狀態為儲存中

MOVWF SYS_MODULE_STATUS

MOVFW SYS_SAVE_DATA

MOVWF TEMP

MOVFW TEMP

MOVWF SYS_VOLTAGE

CALL WAIT_50MS

MOVFW SYS_SAVE_DATA

SUBWF SYS_VOLTAGE,W

Page 177: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

165

{ 設定訊息狀態為正常 }

else { 設定訊息狀態為異常 }

設定模組狀態為閒置;

}

if 操作類型 == 儲存開關資料;

{

設定模組狀態為儲存中;

temp = 開關資料;

系統開關資料 = temp;

等待 50ms;

if 系統開關資料 == 開關資料

BTFSS STATUS,Z

GOTO CHK_MESSAGE_ERROR

CHK_MESSAGE_OK

MOVLW 01 ;設定訊息狀態為正常

MOVWF SYS_MESSAGE_STATUS

GOTO EXIT_CHK_SAVE_VOLTAGE

CHK_MESSAGE_ERROR

MOVLW 02 ;設定訊息狀態為異常

MOVWF SYS_MESSAGE_STATUS

EXIT_CHK_SAVE_VOLTAGE

MOVLW 00 ;模組狀態為閒置

MOVWF SYS_MODULE_STATUS

;;===================================

BTFSS F_SAVE_SWITCH ; 儲存開關資料

GOTO EXIT_CHK_SAVE_SWITCH

CHK_SAVE_SWITCH

MOVLW 01 ;模組狀態為儲存中

MOVWF SYS_MODULE_STATUS

MOVFW SYS_SAVE_DATA

MOVWF TEMP

MOVFW TEMP

MOVWF SYS_SW_STATUS_DATA

CALL WAIT_50MS

MOVFW SYS_SAVE_DATA

SUBFW SYS_SW_STATUS_DATA,W

Page 178: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

166

{ 設定訊息狀態為正常 }

else { 設定訊息狀態為異常 }

設定模組狀態為閒置;

}

if 操作類型 == 儲存初始化完成;

{

設定模組狀態為儲存中;

temp = 初始化狀態;

系統初始化資料 = temp;

等待 50ms;

if 系統初始化資料 == 初始化

狀態

BTFSS STATUS,Z

GOTO CHK_MESSAGE_ERROR_10

CHK_MESSAGE_OK_10

MOVLW 01 ;設定訊息狀態為正常

MOVWF SYS_MESSAGE_STATUS

GOTO EXIT_CHK_SAVE_VOLTAGE

CHK_MESSAGE_ERROR_10

MOVLW 02 ;設定訊息狀態為異常

MOVWF SYS_MESSAGE_STATUS

EXIT_CHK_SAVE_SWITCH

MOVLW 00 ;模組狀態為閒置

MOVWF SYS_MODULE_STATUS

;;===================================

BTFSS F_SAVE_INIT_STATUS ; 儲存初始化完成

GOTO EXIT_CHK_SAVE_INIT_STATUS

CHK_SAVE_INIT_STATUS

MOVLW 01 ;模組狀態為儲存中

MOVWF SYS_MODULE_STATUS

MOVFW SYS_SAVE_DATA

MOVWF TEMP

MOVFW TEMP

MOVWF SYS_INITIAL_DATA

CALL WAIT_50MS

MOVFW SYS_SAVE_DATA

SUBFW SYS_INITIAL_DATA,W

Page 179: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

167

{ 設定訊息狀態為正常 }

else { 設定訊息狀態為異常 }

設定模組狀態為閒置;

}

if 操作類型 == 儲存開機完成;

{

設定模組狀態為儲存中;

temp = 開機狀態;

系統開機資料 = temp;

等待 50ms;

if 系統開機資料 == 開機狀態

BTFSS STATUS,Z

GOTO CHK_MESSAGE_ERROR_20

CHK_MESSAGE_OK_20

MOVLW 01 ;設定訊息狀態為正常

MOVWF SYS_MESSAGE_STATUS

GOTO EXIT_CHK_SAVE_VOLTAGE

CHK_MESSAGE_ERROR_20

MOVLW 02 ;設定訊息狀態為異常

MOVWF SYS_MESSAGE_STATUS

EXIT_CHK_SAVE_INIT_STATUS

MOVLW 00 ;模組狀態為閒置

MOVWF SYS_MODULE_STATUS

;;===================================

BTFSS F_SAVE_BOOT_STATUS ; 儲存開機完成

GOTO EXIT_CHK_SAVE_BOOT_STATUS

CHK_SAVE_BOOT_STATUS

MOVLW 01 ;模組狀態為儲存中

MOVWF SYS_MODULE_STATUS

MOVFW SYS_SAVE_DATA

MOVWF TEMP

MOVFW TEMP

MOVWF SYS_BOOT_DATA

CALL WAIT_50MS

MOVFW SYS_SAVE_DATA

SUBFW SYS_BOOT_DATA,W

Page 180: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

168

{ 設定訊息狀態為正常 }

else { 設定訊息狀態為異常 }

設定模組狀態為閒置;

}

}

BTFSS STATUS,Z

GOTO CHK_MESSAGE_ERROR_30

CHK_MESSAGE_OK_30

MOVLW 01 ;設定訊息狀態為正常

MOVWF SYS_MESSAGE_STATUS

GOTO EXIT_CHK_SAVE_VOLTAGE

CHK_MESSAGE_ERROR_30

MOVLW 02 ;設定訊息狀態為異常

MOVWF SYS_MESSAGE_STATUS

EXIT_CHK_SAVE_BOOT_STATUS

MOVLW 00 ;模組狀態為閒置

MOVWF SYS_MODULE_STATUS

步驟步驟步驟步驟 3::::精練程式碼精練程式碼精練程式碼精練程式碼

完成程式碼轉換產出初版程式碼後,再次確認程式碼中是否具有無效變

數、定義或錯誤的資料型態,精煉程式碼提升系統的穩健性,依據系統對效能

的要求分析程式碼是否具有過多的迴圈或過長的演算法,重新設計演算法以提

升程式碼的效能與系統的即時性。

由於系統開機與初始化的程式碼在轉換的過程已同時針對資料型態的定

義、與程式碼的效能進行確認,故無需再次精煉系統開機與初始化的程式碼。

第三節第三節第三節第三節 可用性測試展示可用性測試展示可用性測試展示可用性測試展示────邀請邀請邀請邀請 C公司公司公司公司工程師參與工程師參與工程師參與工程師參與

依據系統塑模方法論完成實作停車輔助控制器,運用靜態與動態展示表現

出實作系統塑模方法論的成果,邀請 C 電子公司的具有 3 年以上程式開發經驗

Page 181: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

169

的軟體工程師,參與成果展示並向詳細的向工程師說明系統塑模方法論的方

法、步驟與成果,並詢問測試人員方法論中所表達的方法是否具有正確性、有

用性、及是否能提升系統開發效率,再請參與測試的人員針對方法論提供改善

建議,而成果展示方式與內容如下:

(1)參與者與成果展示資訊參與者與成果展示資訊參與者與成果展示資訊參與者與成果展示資訊

參與測試人員:如表 5-45

測試案例:系統開機與初始化

測試時間:2012/06/11 PM05:30

測試地點:會議 A室

測試物品:車載嵌入式系統塑模方法論

測試方法:同仁審查 (Peer Review)

表 5- 45 參與測試人員

參與人員 所屬部門 職稱 主要專長 年資

A 研發一部 課長 程式設計與除錯 10

B 研發一部 一級工程師 程式設計與除錯 4

C 研發一部 一級工程師 程式設計與除錯 4

D 研發一部 工程師 程式設計與除錯 3

E 研發一部 工程師 程式設計與除錯 3

F 研發二部 經理 系統分析設計與除錯 15

G 研發二部 副理 系統分析設計與除錯 10

H 研發二部 副理 系統分析設計與除錯 4

I 研發二部 一級工程師 程式設計與除錯 3

J 研發二部 工程師 程式設計與除錯 3

Page 182: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

170

(2)評估準則評估準則評估準則評估準則

1. 正確性(Correnectness):評估運用方法論所產出的模式圖,是否能表

達出符合客戶的需求。

2. 有用性(Usefulness):評估運用方法論所產出的模式圖,是否能夠表

達車載嵌入式系統之特性與功能。

3. 效率(Efficiency):評估此方法論是否能幫助縮短各項時程。

(3)測試步驟測試步驟測試步驟測試步驟

1. 說明結合 MDA 與 UML 的車載嵌入式系統塑模方法論

2. 說明需求塑模之方法與步驟

2-1. 說明車載嵌入式系統特點、需求擷取方法與實際案例

2-2. 說明使用個案圖之塑模重點與「停車輔助控制器」的使用個案圖

2-3. 說明活動圖之塑模重點和「系統開機與初始化」的活動圖

2-4. 說明部署圖之塑模重點與「停車輔助控制器」的部署圖

3. 說明 PIM塑模之方法與步驟

3-1. 說明循序圖之塑模重點和「系統開機與初始化」的循序圖

3-2. 說明時序圖之塑模重點和「系統開機與初始化」的時序圖

3-3. 說明狀態圖之塑模重點和「系統開機與初始化」的狀態圖

3-4. 說明類別圖之塑模重點和「系統開機與初始化」的類別圖

4. 說明程式碼轉換之方法與步驟

4-4. 說明平台選定重點和「停車輔助控制器」所選用的平台

4-4. 說明 Code轉換重點和「系統開機與初始化」的程式碼

5. 填寫問卷

Page 183: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

171

第四節第四節第四節第四節 觀察與評估觀察與評估觀察與評估觀察與評估

此階段的評估方法由參與測試人員填寫問卷,如:表 5-46 所示,再找出

問卷中的眾數與平均數進行分析與評估,而眾數是指多數人所選擇的選項;平

均數是將勾選次數欄位中的非常不同意、不同意、普通、同意、非常同意等欄

位內的給分,進行加總後再除以填寫問卷的人數,所計算出的數據。

依據問卷的眾數顯示:

1. 在正確性的構面:大多數參與測試的人員,同意使用個案圖、活動圖、

部署圖所呈現的資訊與客戶需求是相同的,且循序

圖、時序圖、狀態圖、類別圖所呈現的資訊與系需

求是相同的。

2. 在有用性的構面:大多數參與測試的人員,同意塑模方法論所提供的

圖形在系統功能、系統介面、系統運作、訊息傳遞

描述、狀態轉換描述、時間需求描述、環境描述是

足夠的,而對於失效處理描述則是介於普通與同意

之間。此外,大多數人員同意圖形對於瞭解車載嵌

入式系統是有幫助的,也同意圖形可以用於發展車

載嵌入式系統的設計,並有助於系統開發團隊成員

的溝通與系統模組化。

3. 在效率的構面:參與測試的人員,對於使用此塑模方法論可縮短車載

嵌入式系統分析時間,是介於普通與同意之間,且在

使用此塑模方法論,可縮短車載嵌入式系統的系統設

計時間,亦是介於普通與同意之間。

依據問卷的平均數顯示:

1. 在正確性的構面:從問卷中統計的總平均數為(4.1+4.2+4.2+4.4+4.2+

Page 184: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

172

4.4+4.3) /7=4.25,大於中間數 3。

2. 在有用性的構面:從問卷中統計的總平均數為(4+4.1+4.2+3.8+4.6+

4.2+3.9+3.6+4+4.1+3.9+4.2)/12=4.05,大於中間數

3。

3. 在效率構面:從問卷中統計的總平均數為(3.5+3.7)/2=3.6,大於中間

數 3。

從以上的數據分析結果可以得知,此塑模方法論在需求方面可以正確的表

達出客戶所要的需求,在系統方面可以依據系統特性正確的表達出系統行為與

結構,亦可幫助系統開發團隊進行溝通與模組化,對於縮短從需求到系統實現

過程中的各項時程的幫助較為普通。

且參與測試人員參與可用性測試後回饋,認為車載嵌入式塑模方法論的塑

模方法、步驟與圖形確實可以實現使用者需求與系統需求並轉換成程式碼,唯

有認為方法論中所需要填的表格有點多,對於提升系統開發效率的幫助上較為

薄弱。

表 5- 46 勾選次數與平均數列表

構面 問項

勾選次數

平均

非常

不同

不同

普通

同意

非常

同意

正確性

(Correctness)

「使用個案圖」所呈現的資訊與客戶

需求是相符的

1 7 2 4.1

「活動圖」所呈現的資訊與客戶需求

是相符的

1 6 3 4.2

「部署圖」所呈現的資訊與客戶需求

是相符的

1 6 3 4.2

Page 185: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

173

「循序圖」所呈現的資訊與系統需求

是相符的

6 4 4.4

「時序圖」所呈現的資訊與系統需求

是相符的

1 6 3 4.2

「狀態圖」所呈現的資訊與系統需求

是相符的

6 4 4.4

「類別圖」所呈現的資訊與系統需求

是相符的

1 5 4 4.3

有用性

(Usefulness)

綜合上述圖形與表格,對於車載嵌入

式系統的系統功能系統功能系統功能系統功能描述是足夠的

2 6 2 4

綜合上述圖形與表格,對於車載嵌入

式系統的系統介面系統介面系統介面系統介面描述是足夠的

9 1 4.1

綜合上述圖形與表格,對於車載嵌入

式系統的系統運作系統運作系統運作系統運作描述是足夠的

8 2 4.2

綜合上述圖形與表格,對於車載嵌入

式系統的訊息傳遞訊息傳遞訊息傳遞訊息傳遞描述是足夠的

2 8 3.8

綜合上述圖形與表格,對於在車載嵌

入式系統的狀態轉換狀態轉換狀態轉換狀態轉換描述是足夠的

1 7 3 4.6

綜合上述圖形與表格,對於車載嵌入

式系統的時間需求時間需求時間需求時間需求描述是足夠的

1 6 3 4.2

綜合上述圖形與表格,對於車載嵌入

式系統與環境環境環境環境描述是足夠的

1 9 3.9

綜合上述圖形與表格,對於車載嵌入

式系統的失效處理失效處理失效處理失效處理描述是足夠的

1 4 3 2 3.6

綜合上述圖形與表格,對於我瞭解車 1 8 1 4

Page 186: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

174

載嵌入式系統的系統分析系統分析系統分析系統分析結果是有

幫助的

我可以運用上述各圖形所表達的資

訊,發展車載嵌入式系統的系統設計系統設計系統設計系統設計

2 5 3 4.1

上述各圖形所表達的資訊,對車載嵌

入式系統開發團隊成員間的溝通成員間的溝通成員間的溝通成員間的溝通是

有幫助的

1 9 3.9

使用此塑模方法論有助於車載嵌入

式系統模組化模組化模組化模組化

8 2 4.2

效率

(Efficiency)

使用此塑模方法論,可縮短車載嵌入

式系統的系統分析時程系統分析時程系統分析時程系統分析時程

6 3 1 3.5

使用此塑模方法論,可縮短車載嵌入

式系統的系統設計系統設計系統設計系統設計時程時程時程時程

5 3 2 3.7

Page 187: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

175

第六章第六章第六章第六章 結論結論結論結論

由於車載嵌入式系統需滿足功能需求、環境需求、時間需求、介面需求、

與失效處理等需求,本研究依據此特點提出一套適用於車載嵌入式系統的塑模

方法論,其中包含清楚可循的塑模方法與步驟,讓系統開發團隊能依據方法論

進行系統需求擷取與需求塑模,再依據本方法論在 PIM階段進行系統分析與設

計,並在各階段產出相對應的模式圖。

而各階段的圖可以完整的表達出系統的動態行為與靜態結構,也可作為系

統開發團隊間的溝通標準,亦能使系統軟體在 PIM階段即可確保其正確性與需

求的符合程度,而且在各階段所產出的模式圖也可以作為 MDA轉換技術,由

系統自動產生程式碼的參照依據。

第一節第一節第一節第一節 研究成果研究成果研究成果研究成果

本研究提出一套結合 MDA 與 UML 的車載嵌入式系統塑模方法論,其主

要的研究成果整理如下所列:

1. 依據車載嵌入式系統的特點與需要,整理出一套結合 MDA 與 UML 的

塑模流程與階段,並為各階段找出適合的模式圖用以完整的表達車載

嵌入式系統在功能需求、環境需求、時間需求、介面需求、與失效處

理等方面的要求。

2. 詳細說明各階段模式圖的塑模方法與步驟,並運用實際案例實作方法

論,使塑模方法論容易學習與應用。

3. 提出車載嵌入式系統的塑模流程為需求擷取、使用個案圖、活動圖、

部署圖,再以活動圖為核心發展循序圖、時序圖、與狀態圖、類別圖,

最後由系統需求與部署圖找出平台再將類別圖轉換成程式碼。每個模

式圖皆與前一階段的產出之圖形有共通之處,也可以補充單一模式圖

Page 188: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

176

所不能表達之處,使各階段所產出的模式圖具有互補性與一致性。

第二節第二節第二節第二節 研究貢獻研究貢獻研究貢獻研究貢獻

本研究的貢獻可區分為對學術界的貢獻與實務界的貢獻等兩方面的來進

行討論

對學術界的貢獻:

過去的 PIM塑模方法論與 MDA 的狀態圖轉程式碼僅針對嵌入式系統

的相關研究,並未針對車載嵌入式系統所需符合的需求進行深入探

討,所以本研究以上述的方法論為基礎並深入瞭解車載嵌入式系統的

特點,發展出一套結合 MDA 與 UML 的車載嵌入式系統塑模方法論,

擴展過去方法論的實際應用範圍。

對實務界的貢獻

1. 本研究依據實務界對開發車載嵌入式系統的需要,整合 MDA 與

UML發展出一套方法論,幫助進行車載嵌入式系統的軟體系統分

析與設計。

2. 本研究所提出的塑模方法與步驟清楚可循,讓系統開發團隊可依據

塑模方法與步驟一步一步的發展車載嵌入式系統,並經由可用性測

試的實際案例實作來驗證方法論的正確性,也可作為實務界運用本

塑模方法論進行車載嵌入式系統分析與設計時的參考範本。

3. 提供一套從分析到實作的塑模流程,可作為實務界進行車載嵌入式

系統塑模時的標準語言,幫助系統開發團隊間的溝通並有助於車載

嵌入式系統的模組化以提高其重用性。

4. 在各階段所產出的文件與模式圖,可幫助發展車載嵌入式系統的規

格。

Page 189: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

177

第三節第三節第三節第三節 研究限制研究限制研究限制研究限制

本研究所探討的車載嵌入式系統是需要軟體與硬體同時進行開發,由本研

究的目的是著重於軟體系統的需求與塑模並不涉及硬體部份和資料庫部份,並

以 UML 2.4 的模式圖表達軟體系統行為與結構。而各種 UML 模式圖各有其表

達的重點與互補性,除了本研究所運用到的 7種必要的模式圖外,其他模式圖

是可擴充表達其它資訊但非必要圖形,因此不加以探討。

在 MDA轉換部份,由於目前並未有適合車載嵌入式系統 PSM轉換與

Code轉換的完整定義,因此本研究亦不加以討論。在效率的評估上本研究採

用填寫問卷的方式進行測試,所以測試結果會較為主觀,並沒有客觀的數據可

以佐證。

第四節第四節第四節第四節 未來研究方向未來研究方向未來研究方向未來研究方向

本研究所提出的塑模方法論主要著重在車載嵌入式系統的軟體系統塑模

方法與步驟,在需求塑模階段已對系統概觀進行塑模,在系統分析與設計的 PIM

塑模階段本研究並未對系統的硬體需求與環境需求深入研究,且發展出可用的

塑模方法與步驟,因此建議未來的研究方向可以朝下列幾個方向進行:

1. 研究與發展出硬體結構的塑模方法與步驟,更能符合車載嵌入式系統

的需求,讓塑模成果更能接近實務界的系統開發狀況。

2. 研究運用需求塑模成果與 PIM塑模成果,分別發展成系統驗收時的測

試案例和系統層級的測試案例,以驗證系統的分析與設計是否符合塑

模成果,在系統驗收時確認系統是否完整符合當初的需求。

3. 運用本方法論所產出的塑模成果,可以做為利用 MDA轉換技術的參考

依據,發展出自動化程式碼轉換工具,以節省系統開發時程並提升品

質與正確性。

Page 190: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

178

4. 研究運用設計樣式(Design Pattern)進行 PIM塑模,提升系統模組化程

度增加系統重用率,以節省系統開發時程並提升品質與正確性。

Page 191: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

179

參考文獻參考文獻參考文獻參考文獻

中文部份

• 吳仁和,「物件導向系統分析與設計-結合 MDA 與 UML」,智勝文化事業有

限公司,2010 年三版

• 邱志誠,「PIM塑模方法論之研究」,中山大學資訊管理學系研究所碩士論文,

2007 年

• 高新傑,「一個以 UML 為輸入的即時嵌入式軟體之合成與驗證框架」,國立

中正大學資訊工程學系,第十四屆物件導向技術及應用研討會,2003

• 陳鴻明,「元件塑模方法論:一個植基於 UML 的方法」,中山大學資訊管理

學系研究所碩士論文,2003 年

• 黃文凱,「適用於低成本嵌入式應用之多媒體微控制器」,中山大學資訊工程

學系研究所碩士論文,2002 年

• 鄭炳強,「軟體工程從實務出發」,智勝文化事業有限公司,2007 年初版

• 劉若嬋,「MDA轉換:嵌入式系統研究」,中山大學資訊管理學系研究所碩士

論文,2010 年

• 蔡淑茵,「嵌入式系統之 PIM塑模方法論之研究」,中山大學資訊管理學系研

究所碩士論文,2010 年

英文部份

• DeAntoni Julien, Babau Jean-Philippe, A MDA-based approach for real time

embedded systems simulation, IEEE, October 2005

• Favre Liliana, Model Driven Architecture for Reverse Engineering Tech- nologies:

Strategic Directions and System Evolution, IGI Global, January 2010,

P15~30

Page 192: MDA 與UML 的車載嵌入式系統塑模方法研究etd.lib.nsysu.edu.tw/ETD-db/ETD-search-c/getfile?URN=etd-0711112... · iii 中文摘要 車載嵌 入式 系統 已是 大 量運用於

180

• Nicolas Navet and Francoise Simonot-Lion, Automotive Embedded Systems

Handbook, CRC Press, December 20, 2008, P1-1~3-21, P7-1~P10-46

• Peffers, K., Tuunanen, T., Rothenberger, M. A., & Chatterjee, S.,“A design science

research methodology for information systems research,” Journal of

Management Information Systems, Vol. 24, No. 3, 2007

• Surhone Lambert M., Tennoe Mariam T. and Henssonow Susan F., Robustness

(Computer Science), Betascript Publishing, May 20, 2011

• Vidal Jorgiano, Lamotte Florent de, Gogniat Guy, Soulard Philippe, Diguet

Jean-Philippe , A co-design approach for embedded system modeling and

code generation with UML and MARTE, IEEE, April 2009