我在 "OCUP UML初級認證攻略" 書上看到作者的一段話 ,
她提到要考UML認證的理由六:
"理由六: 資料的程式設計師 , 女性程式設計詩 , 或者是打算邁入軟體業的女性新鮮人 , 要趕快往UML轉型或投入 , 否則年紀越來越大 , 不僅敵不過年輕小伙子的熬夜拼命 , 女性朋友還會因為熬夜而青春難保"
看到這段話 , 我是深深的不以為然 , 因為這段話中 , 提到要往UML轉型的理由極度的牽強 , 且不合理 ,
我特別認為這段話會誤導很多人 , 這也就是為什麼 , UML 在台灣會呈現兩個極端 ,
(a)會用UML收集需求 , 進行分析設計 , 進而根據UML規劃去開發系統 的人 , 會認為UML是好東西
(b)不會用UML的人 , 只會認為這個對於他的軟體開發一點幫助都沒有 , 只是為了應付業主的要求為了文件而文件 , 只會讓自己開發系統的速度變得更慢 , 甚至乾脆就是等軟體開發完 , 再用反向工程去把程式碼轉為 UML 圖形....
我一直強調一點 , 完全沒有OOAD程式開發經驗的人 , 沒有資格去當SA , SD ...
因為軟體開發中 , 上游的產出是下游的輸入 ,
上游如果完全不了解下游的作業 , 或是下游的需要 , 那麼規格一定是亂開....
EX1:
我曾經碰到過廠商針對我們的需求 , 開出了這麼一個系統規格要求:
"系統需要把目前的報表紀錄匯出成為 EXCEL檔(.xls / or .csv ) , 要能使用 EXCEL 開啟"
實際上廠商也寫出來了 , 但是這樣的一個系統規格要求是由問題的 ,
因為他們發現EXCEL打不開檔案 , 為什麼 ,
因為 EXCEL的一個工作表的列數限制是 1~65536 列 ,
而要匯出的報表紀錄筆數超過了 65536 列 ,....
當然如果你匯出的是 .csv 檔 , 你可以用 記事本 notepad 開啟 , 但是你用 Excel 應該是打不開....
同理如果你是用 POI 匯出 .xls , 應該也是會有問題 , 因為 一個工作表的列數上限就是 65536 列
這個限制很簡單也很單純 , 但是打敗一堆人 , 一堆人在哪裡猛查程式哪裡有問題 , 查了很久沒有查出來...
(這樣的規格 , 到現在 , 你去看網路上 , 仍然有不少人在開這樣的系統規格 , 而且完全沒有理會到未來可能會有甚麼問題發生) ,
這樣的系統規格需求不能說它不對 , 而是它有限制 , 如果你知道你的系統匯出筆數永遠小於 65536 筆 , 一定沒有問題....
(這也是我對某些人員很感冒的一點 , 他們都很會說話 , 讓老闆認為他們做的很好 , 但是常常喇賽的時候 , ...就要我去幫忙查問題 , 看原因 , 最後還要把賽幫他們擦乾淨(特別是那些莫名其妙的SA))
這也就是為什麼我一直認為沒有軟體開發經驗的人去作SA會有很多問題發生 ,...
但是偏偏還是有一堆人以為只要考過 UML 就可以去作 SA , SD , 等到他們開始去開規格時 , 完全不理會系統是屬於 Client / Server , 或是 Rich Client / Thin Client 或者是 Internet / Intranet 等等需求 ,
反正就是亂畫一通 , 以為自己畫了圖 , 系統就會自己長出來 , 但是當下游的 Programmer 來問的時候 , 自己又完全講不來要如何把圖形轉換為程式碼 ,...
就這樣子 , 就會發生 , 新鮮人 雖然採用了 UML 進行系統開發 , 但是完全上下游無法串連 , 結果導致系統開發失敗 , 最後就會發生像是 "UML 對系統開發一點幫助都沒有 , 還不如直接寫程式的看法..."
又或者完全沒有寫過 Web App的人 , 只會AS400 , 然後又要去開出 Web App的系統需求跟規格 , 完全不了解 Java / .NET 架構的人在開規格,...連Web程式的限制是甚麼都搞不清楚 , 常常就會開出莫名其妙的規格...
(發現說著說著又離題了之二 )