:::

論文進度報告(2010/6/13)

1-1 CreateAnnotationScopeCollection

距離上次進度報告大概10天的時間,現在就開始這次的進度報告。

上次將Webpage Application的網站草圖(Website Wireframe)畫完之後,陸陸續續地也把Controller做完了,詳情請看KALS Wiki的資料。在畫Controller時,其實我並沒有很仔細地去構思到底該怎麼運作。在AJAX的架構中,View所在的JavaScript同時扮演了View跟Controller的角色,伺服器端的Controller反而像是提供資料的角色而已。

原本計畫完成Controller之後,我就開始進行程式撰寫的作業。目前把ERD (關聯式資料庫的實體關聯圖)畫得差不多,還再次複習了CodeIgniter使用手冊。但基於對Controller太過潦草的不安,我決定還是插入Sequence Diagram(循序圖)的任務,打算好好地檢視資料在物件之間流動的情況。特別是以下這四種情況:

  1. 建立新增標註的過程(包含計算分數、推薦標註與提示等細節)
  2. 接受建議並修改標註位置
  3. 自動登入
  4. 手動登入

由上而下的規劃方式

1 CreateAnnotation main

由於對於Sequence Diagram的不熟悉,我花了很多時間在畫建立新增標註的過程。由於StarUML跟書上寫的功能有些許不同,書上對Sequence Diagram的介紹也不是很清楚,於是我只好自己試著建立起屬於自己的表示方式。除了將上面的這張主要流程切割成其他7個小部份,對於參數傳遞與回傳值等也稍微跟標準的劃法不太一樣。目前已經完成了建立新增標註的過程的八張圖請看KALS Wiki

經過Sequence Diagram的檢視,赫然發現標註在模糊分數計算、推薦與提示上出現了很大的問題。這讓我回頭去修改了Model的Annotation、Fuzzy跟Recommend等Class。

在之前的進度報告中,我在繪製View、網站草圖時,也常常提到回頭修改這件事情。每次回頭修改的感覺都頗令人絕望,但值得慶幸的是,我回頭只是改圖,而不是修改那數千行的程式碼。我想,這就是一種由上而下的規劃方式吧。儘管目前仍沒有實際可以把玩的程式給大家看,但這些分析與規劃的確是一步一步地讓這個系統更為穩健。


專案進度:加入Sequence Diagram

image

如上圖所示,跟上週比起來,加入了Sequence Diagram的工作,並將之規劃為9天的工作天,因此排擠到後面程式撰寫與可展示系統的查核點。很不幸的,如果專案如期進行,大概七月初才能將系統展示給大家看吧。詳細的專案進度,請到KALS Wiki下載


老實說,一直畫圖,太久沒寫程式,實在是讓我覺得有點無聊。所以這次中間有幾天都跑去修改布丁布丁吃?的版面(遮臉)。那時的自己並不會使用JavaScript的callback技巧,我還蠻驚訝的。在不知不覺時,自己的程設等級似乎又無形中上升了,而這在修改以前寫的程式中也有所映證。

除此之外,老師對我在畫UML這件事情也覺得還不錯。儘管UML分析的過程枯燥乏味又無法立竿見影,急於完成論文的學生大多時候並不會選擇採用這種方式。但對於大型系統與多人合作團隊的情境之下,UML仍是一項很有力的工具。

反正我已經多留了很多時間了,也不差讓我再多用一些時間繼續繞繞遠路,學些新的玩意兒。

我也不知道這究竟是好事還是壞事。從好的角度看來像是求知欲強烈,從壞的角度來看則是拖台錢(找理由延畢)。不管怎樣,我只知道我還挺無聊的就是XD