系統開發
系統開發
大家好,又有一段時間沒見面了,我們今天來談談軟體, 請記住 這篇文章(episode)我只講一遍,阿貝看過一堆寫C程式的當Basic來寫,一些寫C++的寫的亂七八糟寫的不知所云,更何況組合語言,FORTH?!好吧,廢話太多,阿貝試著把學了將近3個月的Java拿來試驗一下,大家互相學習,下次有機會在試試大家流行的Python。
起源 - Pilot Investigation
有天小王(sales manager)跟PM小陳(product manager)說:"小陳,我的客戶希望讀取機車的電腦運作訊息,包含錯誤碼,不然每次都要拿著不方便的診斷器檢查,你們可以找到這樣的產品嗎?",這下換小陳頭大了,找不到這樣的產品。接著小陳就去找PM小李(project manager):
"嗨,小李,有沒有最簡單的方法,做出一顆接收機車電腦運作訊息的產品來?",小李: "汽車有聽過 OBD,至於機車,不知道耶?! 給我2個星期的時間試試看好嗎?"
系統需求 - Requirement
Eureka (小李用什方法找到呢?如果你是專案的負責人,你就應該知道該怎麼找),好啦,現在可以去找小陳跟小王問問,系統需求是什麼?- 跟原廠一樣檢查出問題,同時加上顯示訊息,不要只有錯誤代碼。
- 行進間也可以顯示機車運作狀態。
- 可以跟我們的產品做訊息交流(data transaction)。
- 可以更改原廠ECU資料。
- ....
系統分析就是要適可而止的阻止客戶 ‘無止境’ 的需求。
系統分析 - Analysis
首先,要抓出ECU車用電腦送出來的編碼,這個在系統需求的階段,小李已經完成了,因為 經驗 告訴小李,該朝哪些方向著手,該使用哪些工具 才能決定這個案子是否可以繼續執行下去,如果原廠是用自己獨家的通訊協定(proprietary protocol),那小李就要評估是否要繼續玩下去了。- 第一項確定是通用的規格,而yamaha的原廠膝上型檢測器只提供代碼,所以可以加上錯誤解說訊息,至於其他家檢測器的就比較人性化了。
- 第二項要求,既然第一項要求可以達到,就可以試試看第二項是否也可以處理,小李在使用yamaha原廠檢測器時就發現這個問題,不過腦袋轉一下就可以處理了。
- 第三項,當然可以,這就是下一個技術人員(韌體及軟體工程)該處理的事情
- 第四項,每個廠家可填回ECU記憶體的資料不同,每家ECU晶片也不同,可能要從長計議。
工作流程
先找需要的開發工具(軟硬體),當然是以公司現有的資源為主。小李發現,如果直接撰寫通訊程式給原廠ECU,那只能配合某一車種,某一車型,對開發人員來說,開發成本負擔加大,時間拉長。所以小李就跟小陳一起討論如何開發這套系統,設定時間3星期內完成。- 產品經理也要配合專案經理尋求解決方案。
- 中介產品採用OBD driver
- 硬體架構(小陳負責對應的產品)
- 多樣硬體接頭及韌體PCB layout
- 客戶端產品由程式設計師撰寫
- 提供PC & Android & iPhone APP (軟體分析小李負責)
- 訂定完成專案的流程GANT時間表
待續.....
留言
張貼留言