系統開發 IV

Draftdown Export

系統開發 part IV

程式寫作

寫軟體程式,經常夾雜著個人的情緒,跟講話一樣。今天高興,程式寫的特別快,寫的天馬行空,寫的不知所云,因為等著下班趕快跟親愛的去約會。今天如果不高興,寫的程式就會變得思慮不周詳,這裡錯那裡錯,怪東怪西。

我們沒辦法控制程式人員的心情,只能期待他們每天都很穩定的工作,然後 趕快把進度趕完 。

How? 阿貝講到勞資雙方的心聲了嗎?

系統分析,軟體工程,的確還是有它的重要性,如果照前幾章的作法,至少可以減少錯誤率的發生,各部門把程式結合起來的問題也就減低很多。


阿貝碰過很多講了一口好技術的人,滿嘴的專有名詞,我只能望嘴興嘆,還是老老實實的做我的苦工吧,就如同第一章節所講的,我們肖年仔被老闆問了一堆 Agile, Scrum, , ,回來問阿貝,我只能雙手一攤,我不會。系統分析,軟體工程是很重要,GANTT & PERT 也很方便,但是試問真有公司每次都照表抄課嗎?上 ISO 9000 的每一家,執行作業程序都一樣嗎?所以我的建議是 系統分析多學習,多加揣摩,不要太拘泥在哪一個系統工程上。


我們開始來做一個範例,其實是阿貝早就寫好的程式。我們就假定是某一個程式設計人員PC寫的。

範例是在 command 底下寫好所有的需求,PC寫的程式,目的是要給其他的程式 ( 不在 command 裡面 ),傳回 obd 的指令,至於要不要執行 obd 指令,那就是 MiTronics 該做的事情,而 obd 底下,也同樣先寫好該執行什麼指令,要不要被執行,也是 MiTronics 的事情。 啊,看不懂? 阿貝畫給你看。

關聯圖

OK, 稍微解釋一下下,我們現在看到的是 6 個模組 ( package ) 外加一個 resource property,主控模組是 MiTronics,由它來掌控所有的介面,由線路 1 .. 6 可以得到我們想要的答案,也就是說假定程式人員PC 撰寫 command 模組,那他就不要理會其他的模組,安安心心的寫他的那一部分,當主控端 MiTronics 跟他要資料時,他就負責回傳資料就可以了。

那問題來了,他怎知道要哪些資料?哪種規格?這個就是 properties 的設定。在 properties 這些檔案裡面,大家討論好 資料規格 就可以了,有需要就到裡面去拿。

例如有一個檔案叫 obd.properties,裡面有

obdReset=ATZ

Mitronics 下達指令,請 command 傳給我 odbReset 的 code ,然後 command 就回傳 ATZ,接著 Mitronics 在下達 Obd 去執行 ATZ,然後 Obd 就回傳結果給 Mitronics,主控端再來決定送出資料到 GUI 或是 Output。

好啦,我知道你有兩個問題 (至少),

  1. 為什麼 Mitronics 不直接下 ATZ 就好? 回答你,請看 系統開發 II 簡單化 Simplicity 。
  2. 為什麼 Obd 不直接被 command 呼叫就好了? 可以,軟體系統工程跟企業結構很類似,看你要扁平化架構還是金字塔架構,隨你高興。阿貝知道越大的系統,形成金字塔結構的機率越高,相對之下,付出的成本越重。 debug 的時間越長。如果架構如上圖,當 command 有問題時,只要在這個模組裡面 debug 所有的程式就可以,這樣抓出問題來更快。 分類法則 Methodology 。

過兩天就分享程式出來,不要急。還是那句話,前面系統沒做好,後面程式就會亂寫一通,最後交差了事,萬一你老闆是箇中高手,你就會被 K 的滿頭包。

待續....

留言

這個網誌中的熱門文章

機車頭燈自動開關裝置

CRV 變速箱油-煞車油-濾芯-中型保養(二)

迅光化油器調整