You are on page 1of 16

Page 1 / 16

Software Development Plan


for
VS-ECG

Version 1.00

<Doc. No. : 2021-11-02-001>


Page 2 / 16

Revision History
Date Rev. Description Prepared by Approved by

2021-11-02 1.00 Initial version of the document JL Juang

TABLE OF CONTENTS

1 Identification 5
1.1 Document overview 5
1.2 Abbreviations and Glossary 5
1.2.1 Abbreviations 5
1.2.2 Glossary 6
1.3 References 6
1.3.1 Project References 6
1.3.2 Standard and regulatory References 6
2 Software Development 8
2.1 Software development process 12
2.1.1 Overview of process phases 錯誤! 未定義書籤。
2.1.2 End of phases reviews 錯誤! 未定義書籤。
2.1.3 Deliverables 錯誤! 未定義書籤。
Page 3 / 16

2.2 Software development tools 8


2.2.1 Workstation 錯誤! 未定義書籤。
2.2.2 Requirements management and documentation 8
2.2.3 Software Design 10
2.2.4 Coding and automated tests 11
2.2.5 Configuration management 11
2.3 Software development rules and standards 11
3 Development Activities 12
3.1 Software Requirement Specifications (sub section sample) 13
3.1.1 Input data 13
3.1.2 Content 13
3.1.3 Output data 13
3.1.4 Review and acceptation criteria 錯誤! 未定義書籤。
4 Modification Procedure 錯誤! 未定義書籤。
4.1 Design Change Process 錯誤! 未定義書籤。
4.2 Planning of Design Change Meeting 錯誤! 未定義書籤。
5 Project Management and Responsibilities 7
5.1 Team – human resources 錯誤! 未定義書籤。
5.2 Documentation of Activities and responsibilities 錯誤! 未定義書籤。
6 Problems resolution 錯誤! 未定義書籤。
Page 4 / 16

(一) Identification
Document overview
The document describes a software development plan on VS-ECG project (This project). It is
consisted by the following six parts:
(1) Software development flow
(2) Software development toolkit
(3) Software requirement list
(4) Software modification flow
(5) Project management and responsibility
(6) Problem resolving flow

The purpose of this document is to plan for the coming development of the software project.
A well-defined plan can accelerate the software development speed and the increase the
reliability of the final product.

本文件將會針對本專案(VS-ECG)進行軟體開發計劃,其內容包含以下六個部分:
(1) 軟體的開發流程
(2) 軟體開發工具
(3) 軟體需求列表
(4) 軟體修改流程
(5) 專案管理及權責劃分
(6) 軟體問題解決流程定義
本文件的目的是為之後的軟體開發制定預先計劃,用以加強軟體的可靠度及提升軟體
開發效率。

一.1 Abbreviations and Glossary

一.1.1 Abbreviations
請加上文件中有使用到的縮寫
(1) GCC
(2) ECG
(3) IDE
(4) HRV
(5) DSP
(6) BLE
(7) GATT

一.1.2 Glossary
GCC : GNU 編譯器套裝(英語:GNU Compiler Collection,縮寫為 GCC),指一套程
式語言編譯器。
ECG : 心電圖(Electrocardiography、ECG 或者 EKG)是一種經體壁以時間為單位記錄
心臟的電生理活動。
IDE : 整合開發環境(Integrated Development Environment,簡稱 IDE)。
DSP : 數位訊號處理(Digital signal processing),簡稱 DSP。其目的是對真實世界的類
比訊號進行加工和處理。
Page 5 / 16

SRS : 軟體需求說明(Software requirements specification),也稱軟體需求說明書、軟


體需求規格說明、軟體需求規格說明書。
HRV: 心率變異分析(英語:heart rate variability,縮寫為 HRV),或稱心率變異度分
析、心率變異性,是一種量測連續心跳速率變化程度的方法。
BLE : 藍牙低功耗(Bluetooth Low Energy,或稱 Bluetooth LE、BLE,舊商標 Bluetooth
Smart[1])也稱藍牙低能耗、低功耗藍牙。
GATT: GATT(Generic Attribute Profile) 是 BLE 很基本的傳輸資料方式,透過 Service 跟
Characteristic 的概念,定義傳輸的類型跟內容。
GDB : GNU 偵錯器(英語:GNU Debugger,縮寫:GDB),是 GNU 軟體系統中的標
準偵錯器,此外 GDB 也是個具有移攜性的偵錯器。
GDBGUI : 可視覺化的 GNU 偵錯器。
MSYS2 :(Minimal SYStem 2) 是一個 MSYS 的獨立改寫版本,主要用於 shell 命令行
開發環境。同時它也是一個在 Cygwin (POSIX 兼容性層) 和 MinGW-w64
(從"MinGW-生成")基礎上產生的,追求更好的互操作性的 Windows 軟件。
Terminal: 終端是端點用户用於和主機通信的設備介面。
UART: 通用非同步收發傳輸器(Universal Asynchronous Receiver/Transmitter,通常稱
為 UART)是一種異步收發傳輸器,是電腦硬體的一部分,將數據透過串列通訊和平
行通訊間作傳輸轉換。具體實物表現為獨立的模組化晶片,或是微處理器中的內部周
邊裝置(peripheral)。

一.2 References

一.2.1 Project References

# Document Identifier Document Title


[R1] 文件 ID 加上參考文件標題 (Alley)
使用手冊
風險管理計畫
風險管理報告
設計開發程序書

一.2.2 Standard and regulatory References

# Document Identifier Document Title


1 ISO 14971 2019 Medical Devices-Application of risk management to
medical devices.
2 ISO/TR 24971 2020 Medical Devices-Guidance on the application of ISO
14971.
3 IEC 62366-1 2015- Medical Devices–Part 1: Application of usability
engineering to medical devices.
4 IEC 60601-1 Medical electrical equipment –Part 1:General requirements
Page 6 / 16

for basic safety and essential performance.


5 ANSI/AAMI/IEC 2007 (R2012)- Medical Electrical Equipment - Part 1-2:
60601-1-2 General Requirements For Basic Safety And Essential
Performance
6 IEC 60601-1-11 2010/COR 1:2011-Medical electrical equipment — Part 1-
11: General requirements for basic safety and essential
performance
7 ANSI/AAMI/IEC 2012 (R2016)-Medical Electrical Equipment - Part 2-47:
60601-2-47 Particular Requirements For The Basic Safety And
Essential Performance Of Ambulatory Electrocardiographic
Systems
8 ANSI/AAMI/ISO 2009 (R2013)-Biological Evaluation Of Medical Devices -
10993-1 Part 1:Evaluation And Testing Within A Risk Management
Process
9 IEC62304
10 FDA Guidance
Guidance for the Content of Premarket Submissions for
Software Contained in Medical Devices
增加參考的標準,可能包括 ISO14971,ISO 13485,IEC60601,IEC62304…等

(二) Project Organization


請將整個專案的人員以架構圖或是表格表示,包含部門,職位,人員姓名等

[從文件中擷取絕佳的引文或利
用此空間來強調重點,藉此吸
引讀者的注意力。若要將此文
字方塊放置在頁面的任一位置,
請進行拖曳。]
Document
management(RD, Leon) Material prepare (PM, Alley)
Page 7 / 16

(三) Software Development Environment

三.1 Software development tools


本軟體預計使用工具為:
(1) Silicon Lab Simplicity Studio : 微處理器編譯工具。
(2) GTK : 圖型介面編譯工具。
(2) Tera Term Terminal:UART 打印軟體工具。
(3) SVN :版本控管伺服器系統工具。
(4) LAP-C 邏輯分析儀工具。
(5) 訊號產生器工具。

三.1.1 Working Environment


本軟體預計的工作環境為
(1) Windows 10
(2) Mac OS (10.15+)
(3) Ubuntu Linux (20.04)

三.1.2 Requirements management and documentation


描述軟體需求管理所用到的工具(例如:Word, excel, Doors…等)

(一) 專案管理 : Mantis

項目管理平台 Mantis,也做 MantisBT,全稱 Mantis Bug Tracker。

Mantis 是一個基於 PHP 技術的輕量級的開源缺陷跟蹤系統,以 Web 操作的形式提供項


目管理及缺陷跟蹤服務。在功能上、實用性上足以滿足中小型項目的管理及跟蹤。更
重要的是其開源,不需要負擔任何費用。

Mantis 是一個缺陷跟蹤系統具有多特性包括:易於安裝,易於操作,基於 Web,支持


任何可運行 PHP 的平台(Windows,Linux,Mac,Solaris,AS400/i5 等),已經被翻譯成 68 種
語言,支持多個項目,為每一個項目設定不同的用戶訪問級別,跟蹤缺陷變更歷史,
定製我的視圖頁面,提供全文搜尋功能,內置報表生成功能(包括圖形報表),通過
Email 報告缺陷,用戶可以監視特殊的 Bug,附屬檔案可以保存在 web 伺服器上或資料
庫中(還可以備份到 FTP 伺服器上),自定義缺陷處理工作流,支持輸出格式包括
csv、MicrosoftExcel、MicrosoftWord,集成原始碼控制(SVN 與 CVS),集成 wiki 知識
Page 8 / 16

庫與聊天工具(可選/可不選),支持多種資料庫
(MySQL、MSSQL、PostgreSQL、Oracle、DB2),提供 WebService(SOAP)接口,提供
Wap 訪問。

基本特性
1、個人可定製的 Email 通知功能,每個用戶可根據自身的工作特點只訂閱相關缺陷狀
態郵件;
2、支持多項目、多語言;
3、許可權設定靈活,不同角色有不同許可權,每個項目可設為公開或私有狀態,每個
缺陷可設為公開或私有狀態,每個缺陷可以在不同項目間移動;
4、主頁可發布項目相關新聞,方便信息傳播;
5、具有方便的缺陷關聯功能,除重複缺陷外,每個缺陷都可以連結到其他相關缺陷;
6、缺陷報告可列印或輸出為 CSV 格式,1.1.7 版:支持可定製的報表輸出,可定製用
戶輸入域;
7、有各種缺陷趨勢圖和柱狀圖,為項目狀態分析提供依據,如果不能滿足要求,可以
把數據輸出到 Excel 中進一步分析;
8、流程定製方便且符合標準,滿足一般的缺陷跟蹤。

(二) 版本控管伺服器系統 : SubVersion

Subversion(SVN)是一個開放原始碼的版本控制系統,使用 SVN 能提供多人共有資料的


一致性,以及版本控管,適用於文件檔案或是程式碼檔案。

Subversion(以下簡稱 SVN)是一個版本控制系統,使用 SVN 能同時提供組織多人共有資


料的一致性,以及最新最正確的版本控管,適用於文件檔案或是程式碼檔案的管理。
由於使用上複雜度不高,只要花點時間學習,就能輕易的上手,故目前已經較為廣泛
被認同與使用。

SVN 發展至今已經有許多的圖形化軟體可以使用,更貼近一般使用者的使用習慣,舉
例說明:如 TortoiseSVN 這套軟體的新增、更新、上傳、下載等用法,都很接近一般的
檔案管理操作模式。

SVN 是一個檔案伺服器,使用上很類似 FTP 檔案傳輸軟體,一樣可以劃分不同的權限,


如單設定一人可以上傳更新與下載使用觀看,其他人只有下載,而無上傳權限;亦或是
大家都可以同時有上傳跟下載的權限,就看如何比較設定比較合用。

三.1.3 Software Design


描述進行程式設計時所用到的工具
(一 ) GNU 編譯器套裝 (GCC)
GNU 編譯器套裝(英語:GNU Compiler Collection,縮寫為 GCC),指一套程
式語言編譯器,以 GPL 及 LGPL 授權條款所發行的自由軟體,也是 GNU 計劃的關鍵部
Page 9 / 16

分,也是 GNU 工具鏈的主要組成部份之一。GCC(特別是其中的 C 語言編譯器)也常


被認為是跨平台編譯器的事實標準。1985 年由理察·馬修·斯托曼開始發展,現在由自
由軟體基金會負責維護工作。
原名為 GNU C 語言編譯器(GNU C Compiler),因為它原本只能處理 C 語言。GCC
在釋出後很快地得到擴展,變得可處理 C++。之後也變得可處理
Fortran、Pascal、Objective-C、Java、Ada,Go 與其他語言。許多作業系統,包括許多
類 Unix 系統,如 Linux 及 BSD 家族都採用 GCC 作為標準編譯器。

(二) GTK
GTK(原名 GTK+)最初是 GIMP 的專用開發庫(GIMP Toolkit),後來發展為
Unix-like 系統下開發圖形介面的應用程式的主流開發工具之一。GTK 是自由軟體,並
且是 GNU 計劃的一部分。自 2019 年 2 月 6 日,GTK+改名為 GTK。[2]
GTK 使用 C 語言開發,但是其設計者使用物件導向技術。也提供了 C++
(gtkmm)、Perl、Ruby、Java 和 Python(PyGTK)繫結,其他的繫結有
Ada、D、Haskell、PHP 和所有的.NET 程式語言。
與其他很多部件工具箱不同,GTK 並不基於 Xt。這一決策優劣互見:優點是 GTK 可
以應用於其他系統,其靈活性也很強;缺點就是它無法利用以傳統方法為 X11 客製化
的 X 資源資料庫。GTK 最早應用於 X Window System,如今已移植至其他平台,諸如
Microsoft Windows、DirectFB,以及 Mac OS X 平台上的 Quartz.

(三) Glade
Glade 為 GTK+ 圖形用戶界面產生器 和 Microsoft Windows 平台的 Visual Tools
類似。利用視覺化的介面,自動幫你產生相關的使用者介面設定。可加速使用者介面
設計。
Glade 同使支搜多種語言如 C++、Ada95、Python、Perl 等的 GTK+ 介面,如果
搭配其它工具,也可以自動產生 C++, Ada95, Python and Perl 的程式碼。

(四) VS Code
Visual Studio Code(簡稱 VS Code)是一款由微軟開發且跨平台的免費原始碼編輯器。
該軟體支援語法突顯、代碼自動補全(又稱 IntelliSense)、代碼重構、檢視定義功能,
並且內建了命令列工具和 Git 版本控制系統[7]。使用者可以更改主題和鍵盤捷徑實現
個性化設定,也可以通過內建的擴充程式商店安裝擴充以拓展軟體功能。VS Code 使
用 Monaco Editor 作為其底層的程式碼編輯器。
Page 10 / 16

三.1.4 Coding and automated tests


(1) Coding 皆使用C語言的程式,使用 GCC 編譯器來確認所有的程式語法與框架皆為正確
無誤。
(2) 使用 UART 輸出打印資訊確認程式流程無誤。
(3) 邏輯分析儀工具來確認通訊資料的正確性,
(4) 訊號產生器輸入並檢查輸出訊號資料是否ㄧ致來確認正確性。

三.1.5 Configuration management


描述建構式管理所用到的工具

(一) gdb- 解釋
(二) gdbgui- 解釋

(三) MSYS2- 解釋
(四) terminal- 解釋

三.2 Software development rules and standards


描述軟體發展所使用到的標準及規則,例如 UML model, coding rules…等

本軟體會會採用以下的通訊標準
(1) GATT
GATT 為 BLE 基本的傳輸資料方式,透過 Service 跟 Characteristic 的概念,定義傳
輸的類型跟內容。

(2) Serial port


Page 11 / 16

序列埠(Serial port),也稱序列埠或序列埠,序列通信埠,COM 埠,簡稱串口。


主要用於序列式逐位資料傳輸。常見的有一般電腦應用的 RS-232(使用 25 針或 9
針連接器)和工業電腦應用的半雙工 RS-485 與全雙工 RS-422。

本軟體採用智感雲端 C/ C++語言 Coding standard

(四) Development Activities

四.1 Software development process


V Model 重畫

根據前面軟體生命週期模型定義出在軟體發展程序中的活動
請描述軟體生命週期模型,裡面可能包含哪些活動或是步驟 : (可參考標準 IEC 62304)

• 軟體需求規格 Software requirement specification,


• 軟體架構設計和細部設計 Software architectural and detailed design,
• 軟體程式撰寫 Software coding,
• 軟體單元測試 Software unit testing,
• 軟體整合測試 Software integration testing,
• 軟體系統測試 Software system testing,
• 其他 other…
Page 12 / 16

四.2 Software Requirement Specifications (sub section sample)


V Model 每項解釋

根據前面所寫的軟體生命週期每項 Phase 中的活動進行描述

四.2.1 Input data (Leon)


60601-2-47, AHA ECG DATA, MIT BIH DATA
列出輸入的資料文件,例如臨床資料,風險分析,設計歷史…等

四.2.2 Content (Leon)


Software requirements Specification
產品規格書軟體相關部分
請描述在這個 Phase 主要的目的,例如在這個 SRS Phase 可能會有:
• 定義出當軟體在執行時的功能需求,特性,物理特性,環境因素…等
• 定義出安全需求,例如開發及維護的方法
• 使用者文件
• 定義最終用戶

四.2.3 Output data


參考 V model report
列出產生的文件資料,例如 SRS…等

四.2.4 Verification method and document


軟體測試方式, DATA BASE, 符合 2-47 要求
產出的文件使用何種方法來進行驗證,有沒有產出任何驗證報告?

四.3 Software architectural and detailed design (sub section sample)

四.3.1 Input data


根據產品規格書, 根據設計開發流程
列出輸入的資料文件

四.3.2 Content
心電訊號儲存分析統計
請描述在這個 Phase 主要的目的

四.3.3 Output data


VS-ECG software
列出產生的文件資料
Page 13 / 16

四.3.4 Verification method and document


驗證測試報告, 報告名稱+流水號(產出文件編號)
產出的文件使用何種方法來進行驗證,有沒有產出任何驗證報告?

四.4 Software coding (sub section sample)

四.4.1 Input data


C 語言
列出輸入的資料文件

四.4.2 Content
GCC
請描述在這個 Phase 主要的目的

四.4.3 Output data


執行檔
列出產生的文件資料

四.4.4 Verification method and document


會產出測試報告
產出的文件使用何種方法來進行驗證,有沒有產出任何驗證報告?

四.5 Software unit testing (sub section sample)

四.5.1 Input data


功能單元輸入. ECG 分析, HRV 分析 LIST
列出輸入的資料文件

四.5.2 Content
請描述在這個 Phase 主要的目的

四.5.3 Output data


列出產生的文件資料

四.5.4 Verification method and document


產出的文件使用何種方法來進行驗證,有沒有產出任何驗證報告?

四.6 Software integration testing (sub section sample)

四.6.1 Input data

列出輸入的資料文件
Page 14 / 16

四.6.2 Content
請描述在這個 Phase 主要的目的

四.6.3 Output data


列出產生的文件資料

四.6.4 Verification method and document


產出的文件使用何種方法來進行驗證,有沒有產出任何驗證報告?

四.7 Software system testing (sub section sample) (Leon)

四.7.1 Input data


軟體完整測試
列出輸入的資料文件

四.7.2 Content
請描述在這個 Phase 主要的目的

四.7.3 Output data


列出產生的文件資料

四.7.4 Verification method and document


產出的文件使用何種方法來進行驗證,有沒有產出任何驗證報告?
Page 15 / 16

(五) Responsibilities

五.1 Activities and responsibilities


WHO
請描述每項 Phase 如何去做驗證的動作以及驗證人員為何?

Responsibility Verification
Activity Document name Approval Comment
Service/Department Report
WHO 編號/文件名稱 編號/文件名稱

五.2 Planning Relevant Documents


計畫相關文件, 風險管理….
No. Document name Purpose Contents
為甚麼參考他
Page 16 / 16

(六) Problems resolution


BUG 怎麼修, 設計開發管制程序書, 方塊圖
軟體疑難排解程序是一個為分析和解決問題(包括不合格品)的程序,不論他們的屬
性或來源,包括在開發、維護或其它程式執行過程中所發現的問題。

可以 reference 到 Change Management 與 Risk Management….等

You might also like