從無到有開發一套系統看起來看似簡單,但是一套系統要有計劃的開發,系統架構要方便於未來的維護與擴充,是系統開發人員最大的痛,本文簡單的說明一套軟體系統在開發之初或是在維護的時候要注意的幾個重要的課題,可以讓您更了解您的系統出了什麼問題?
一、資料儲存的型態、儲存的位置、使用方式
二、通訊協定架構與資料量、傳輸媒介
三、用戶端的操作介面與資料列印問題
四、配合用戶端必須有哪些伺服器
五、安全性問題,認證、加密......
首先,有很多人認為開發工具(如VC++,BCB,VB,Delphi...等)是開發一套系統要優先考慮的事情,我認為開發工具是團隊中重要的溝通工具,但是並非一整套系統的重要考量,因為寫程式碼、修改程式並非就是開發系統的全部。
資料型態,首先就一個系統的資料來講的話,大家想到的就是用資料庫來管理,但是如果您的資料是非常簡單的型態,或者是資料量並不是非常大,有時候用檔案的型態,倒是非常好的維護方式,程式撰寫容易,效率也比資料庫好,如果您的系統資料不會擴充的話,建議以文字資料檔案的方式來儲存,如果您認為您的系統前景看好,可管理的資料非常的多樣化,這時候選擇的資料庫系統也要十分謹慎,而資料儲存的位置是伺服器端或是客戶端,客戶端如何存取資料或是資料的加值計算統計是在哪一端,都要事先規劃。
通訊協定,大家第一個想到的就是TCP/IP,並非所有的網路傳遞都靠TCP/IP,網路理論中的七層架構中,我們要先了解一套系統的網路組成是如何的,當然利用比較公開或比較常用的通訊協定,可能未來的擴充性較高,但是必須先考慮資料傳遞的特性,例如大家常用的FTP傳檔的通訊服務,起始並不是很適合用TCP/IP,當您發現您傳一個大檔案的時候會愈傳愈慢,這就是TCP/IP的缺點,後來開發出來的續傳伺服器與續傳的用戶端軟體(GetRight),就是要彌補這項的缺點,早期也有TFTP利用UDP/IP來傳遞資料,其實是不錯的解決方案,而通訊協定的確定包含一項重要的考量,就是資料傳遞的方式。對於近年來伺服器代理程式或者是路由器的轉傳遞資料,必須也要事先考慮到的。
用戶介面,這個關係到您的產品系統對於用戶的感受,也要視情況選擇開發的方法,如果用戶只有3-4個人,可能不需要太炫麗的外觀,只要針對使用者常用到的功能效率提昇並且考慮使用者操作的方便性就好了,至於您的系統如果是免費下載的Shareware,就要考慮到使用者必須如何學習你的程式與使用者使用操作的動機了,現在的系統很多應用到瀏覽器的介面,不失為一個良好的方式,但是如果考慮的前面所提到的資料量,用IE或Netscape經常在資料的傳遞上的效果不好,操作的便利性也不是很好,常常需要一問一答的方式,增加了使用的時間。這一方面雖然微軟也一直在推廣Windows視覺式的操作介面,但是滑鼠並非能解決所有的問題,我們必須同時考量到鍵盤快速的操作便利性。
伺服器端,我們經常接觸到的Mail Server, Web Server, FTP Server是標準的伺服器系統,但是這些伺服器資料的傳遞方式是否符合我們的需求,是否要另行開發是我們必須先考量的地方,現在有很多的系統都用HTML 當介面,然後對於WEB Server做操作,這一種方式的開發目前來看雖然非常的快速,但是客戶量的多寡,還有操作事項的複雜度,都是必須考量的,如果需要的話,必須是要開發一些中介自動化的伺服器程式來對使用這的操作在排程,否則在網路的傳遞(頻寬),或是伺服器的負荷都是很大的負擔。
安全性,以前的封閉系統開發可能不會在資料儲存傳遞的過程中加密,但是隨著網路時代的公開化,現在我們有標準的加密通訊方式(SSL...),也有標準的認證伺服器,而安全性包括使用者的基本資料與歷來的交易資料,也包含了使用這一整套系統的權限,這個在系統開發之初就一定要考量的問題。
網路時代的軟體系統開發雖然也趨向標準化了,但是,一個系統的開發必須更謹慎的評估,才不會失去他的擴充性。