2009年9月14日 星期一

設計產品的一些共同考量

這裡主要討論是Linux和硬體結合的一個完整資訊產品的開發諸如多媒體播放裝置、網路閘道器、監控裝置、伺服器裝置及個人通訊裝置...等等。這些資訊產品在設計時有一些共同的項目要考量的項目,我們舉個實例開始吧。

R公司是國內一家工業電腦(IPC)製造廠,它的客戶涵蓋了伺服器,網路設備,監控設備,車用多媒體及通訊設備等等。由於市場競爭激烈,該公司研發副總 Joe決定提供類似Turn key(即幫客戶做好產品雛型)的解決方案給客戶至少讓客戶有個可以快速開發及測試的環境,但是由於產品種類繁多,Joe決定進行知識管理的工作,統合各項TurnKey解決方案的共同技術模組,這個工作交給了資深工程師 Wayne進行。Wayne對過去的各個雛型和正在接觸的客戶需求做了一些整理,他規劃出了這些產品需要的共同技術區塊如下列項目:

  • 儲存方式、防盜拷機制及系統升級的規劃 
  • 使用者操作方式及介面的規劃 
  • 主要系統運作的軟體架購 
  • 其他輔助功能的規劃包含 : 開關機流程,自我診斷及錯誤回覆方式,電源管理,安全管理等 
這些規劃我們一個架構圖來展現,現在分別討論如下:

2009年9月7日 星期一

前言及編排內容



本出版品以產品規劃的角度來探討使用Linux來開發一個資訊產品所需的知識、技術及資源。讓我們舉個實例開始吧:

 S公司要開發一個類似數位相框的多媒體播放裝置,由於數位相框技術已經十分成熟,所以希望加上一些創新功能,例如一個連線播放功能可以播放遠端另一台同款式數位相框內容的功能。S公司的RD部張協理負責和行銷部一起規劃這個產品的規格,而研發部的陳經理則擔當本產品的架構師及這個產品team的leader。張協理請陳經理針對競爭者類似的規格作一些初步的規劃。陳經理接到這個工作時首先列下了一些問題

  •   要選擇什麼樣的硬體平台,CPU 速度? Ram大小 ? 儲存裝置的大小及種類 ? 哪些週邊要支援 ?
  •   使用者是如何操控這台設備?只能使用螢幕還是也可以使用遠端登入例如使用瀏覽器來操控
  •   儲存方式要如何規劃? 開機的系統、設定檔、影像資料、回復出廠系統檔案要如何安置
  •   開關機的流程要如何規劃?開機有哪些啟始流程? 關機又需要有哪些?
接下他又針對Linux列了一些相關的問題

  • 使用甚麼版本的核心?及甚麼樣的根目錄檔案系統? 由自己製作還是硬體供應商提供
  • 考慮單機下的功能時,軟體架構為何? 有哪些常駐程式(Daemon)?有哪些驅動程式(Driver) ?
  • 考慮網路相關的功能,網路服務如何提供?主從式的架構為何?
  • 單機下的常駐程式、驅動程式及網路服務的伺服程式彼此如何溝通?
  • 使用甚麼方式來做系統的自我診斷,紀錄,及回復

接下來他列了一些產品開發管理的問題

  • 雛形預計功能和時程為何?
  • 如何切割模組和分工?概略的甘特圖為何?現有人力足夠否?
  • 如何整合到公司既有的版本管理系統,程式碼文件系統,錯誤追蹤系統


本出版品就是為了探討這些相關問題的內容及細節,不同於專在探討Linux系統的使用及Linux程式開發的書籍,本出版品以產品開發生命週期中各項的需求向讀者介紹所需的知識和資源,並將分類介紹不同型式的產品。將包含三大篇:  產品設計篇、作業系統技術篇及軟體開發管理篇。個篇預計內容如下:

          產品設計篇
  •  設計產品的一些共同準則
  • 網路閘道器的設計規劃
  • 伺服器的設計規劃
  • 多媒體播放設備的設計規劃
  • 影音監控設備的設計規劃
  • 行動上網裝置的設計規劃
  • 手機及通訊裝置的設計規劃
          作業系統技術篇
  •   重要參考資料書籍導讀
  • Linux作業系統運作流程概念
  • 系統程式運作流程概念上
  • 系統程式運作流程概念下
  • 驅動程式運作流程概念上
  • 驅動程式運作流程概念下
  •  TCP/IP網路程式運作流程概念
  • 系統安全性
         軟體開發管理篇

  • 開發環境及除錯環境
  • 建構程式碼管理環境
  • 研發及專案管理
  • 測試管理維運管理