|
國外知名的網站CodeProject(http://www.codeproject.com)曾經做過問卷,統計對於程式開發者而言,什麼是最有價值,可以幫助程式開發者完成交付的工作的關鍵技術,可以選擇的項目包括程式語言,網頁設計,XML與相關技術,資料庫程式設計,系統與網路管理以及系統架構設計等等,統計的結果如下表所示:
|
|
選項 |
票數 |
百分比 |
|
|
Programming (C++, C#, Java etc) |
1166 |
81.37 |
|
|
XML and related technologies |
391 |
27.29 |
|
|
System / Network Administration |
224 |
15.63 |
|
|
Database Programming and Admin |
583 |
40.68 |
|
|
System Design and Architecture |
620 |
43.27 |
|
|
Graphic Design / Web Design / HTML |
230 |
16.05 |
|
|
Negotiation |
183 |
12.77 |
|
|
Management / People Skills |
410 |
28.61 |
|
|
Business Management / Resource Planning |
147 |
10.26 |
|
|
Back stabbing / ladder climbing |
110 |
7.68 |
|
|
XBox and beer drinking |
202 |
14.1 |
|
|
Responses |
1433 |
|
|
資料來源:Code Project, Oct 2003的問卷 |
|
[說明]上述的統計資料為複選,所以最後加起來的數字超過100%。
|
|
從上表可以得知,程式開發者認為最有價值的技術的前三名分別是第一名的C++、C#、和Java等程式設計技術,第二名是系統架構設計,第三名則是資料庫程式設計與管理。以上的統計結果和台灣目前的資訊產業的技術需求頗為接近,C++、C#、和Java等程式開發技術還是需求最高而且熱門的技術,表示實作能力仍然是程式開發者需要的最基本的本職學能。系統架構分析設計與實作也是得到程式開發者高度注意的技術,表示一個程式開發者不但需要會寫程式,最好也具備系統架構分析設計與實作的能力。至於資料庫應用程式設計技術則是長久以來就是程式開發者迫切需要的技術。
為什麼軟體系統的架構分析設計與實作這麼受到重視的原因是學習如何寫程式像是在練武功,而很會寫程式的人好比武功高強的高人,學習如何分析和設計系統可比在研習兵法,學習的是萬人敵的功夫,這就是系統架構分析設計與實作受到程式開發者矚目的主要原因。
資策會數位教育研究所台北中心針對系統架構分析設計與實作技術高度需求的現象特別開設[物件導向分析設計與實作]課程,帶領大家從搜集資訊與需求分析開始,利用Microsoft
Visio或Borland Together.NET繪出系統的UML模型,再使用Visual
Studio.NET開發設計一套小型的線上搶標系統,並利用NUnit和NUnitAsp單元測試工具對做好的程式單元進行測試,如果測試無誤再部署到用戶端給客戶使用,達到理論與實務兼具的效果,而不會僅止於紙上練兵而已。
[物件導向分析設計與實作]課程的內容分成七章,第一章:認識MSF
– Microsoft Solution
Framework將會為大家介紹軟體開發的流程中會遇到的問題,包括軟體開發階段的控制,以及軟體開發團隊的建立。第二章:搜集與分析資訊會介紹需求分析以及搜集資訊的做法。第三章:使用UML,會使用Borland公司出品的Together.NET繪製系統的UML
Diagram。從第四章:案例設計開始會使用Microsoft User Interface
Process模型實作網站操作介面,使用一些已經設計好而且成熟的模型開發應用程式可以提高生產力,而且品質也會比較穩定,所以可以大幅減輕程式開發者和公司的負擔。第五章:實作與套用設計模型會討論如何設計應用程式的資料存取層,或是使用Microsoft
Data Access Block提供的功能製作應用程式的資料存取層,享受使用模型開發應用程式的樂趣,除此之外,第5章也會介紹Refactoring技術,以及Code
Smell的概念,這些都是現代化的系統分析設計才導入的方法。第六章:測試與NUnit將會介紹如何使用NUnit執行單元測試,如何使用NUnitAsp測試ASP.NET網頁,如何使用Application
Center Test執行壓力測試,以及如何使用CLR Profiler量測應用程式的效能。最後的第七章:部署與Microsoft
Updater Application Block,將會為我們製作好的應用程式製作安裝程式,並介紹No-Touch
Deployment部署應用程式的做法,最後再使用Microsoft Updater Application
Block實作可以自動更新的應用程式。整個課程範例的系統架構如下圖所示: |
|

圖中的ASP.NET網頁、Model、Data Access
Layer分別在第四章和第五章完成開發,在第六章完成測試,最後於第七章執行部署。
|
|
學習系統架構設計好比蓋房子,我們要先畫好建築藍圖,然後才可以進行蓋房子的動作。跳過架構設計的動作直接寫程式就像沒有畫建築藍圖就開始蓋房子,雖然房子還是有可能可以蓋好,但是極可能是疊床架屋,問題一堆,地震來臨時能不能撐住不倒塌還是個問題,這就是系統架構設計極欲解決的軟體開發亂象。
熟習如何使用物件導向技術以及工具對企業或客戶的需求進行需求分析設計,並進而開發出符合企業或客戶需求,而且容易擴充和維護的系統,可以讓您在精通各家門派的內外功夫之後又可以精通兵法,搖身變成指揮部隊的將軍,而不僅是一名身經百戰的士兵而已。
針對上述幾種軟體開發關鍵技術,資策會都有開設相關的教育訓練課程:
系統架構分析, 設計, 與實作的教育訓練課程可以參考:
http://www.iiiedu.org.tw/taipei/aspro/class.asp?qcno=OOVB&qvendor=99
C++、C#、Java程式開發技術相關的教育訓練課程可以參考:
http://www.iiiedu.org.tw/taipei/aspro/class.asp?qcno=OOIT&qvendor=99
http://www.iiiedu.org.tw/taipei/aspro/class.asp?qcno=OOJB&qvendor=99
http://www.iiiedu.org.tw/taipei/aspro/class.asp?qcno=VSVC&qvendor=99
http://www.iiiedu.org.tw/taipei/aspro/class.asp?qcno=SDCS&qvendor=99
資料庫應用程式設計相關的教育訓練課程可以參考:
http://www.iiiedu.org.tw/taipei/aspro/class.asp?qcno=DBVB&qvendor=99 |