2009-07-02

SCEA

SCEA第二階段---我的步驟
上回提到了文件中應該要包含Assumption、Design Decision、Diagram等要素讓它更具可讀性,這回我要講講設計的主軸應該要如何開始撰寫。
試題中提到了第二階段必須交附的四大項目:
1. Class Diagram --> 1張
2. Sequence Diagram --> 每個Use Case 1張
3. Component Diagram --> 1張
4. 輔助說明文件(需要包含Assumption和Design Decision)
由於我個人畫圖及寫文件的技巧不佳,因此花了些功夫才做出來,以下分享我的產出步驟:
1. 惡補GoF Design Pattern及J2EE Core Design Pattern,不是叫你照抄,但了解別人怎麼做,自己也才能做的更好,不是嗎!(如果你已經很熟就跳過吧)。
2. 決定整體架構的大方向,例如前端介面使用Web MVC,商業邏輯放在SLSB,Persistence使用EJB配合…
3. 惡補UML圖的繪製規格,練習使用UML Case Tool (如果你已經很熟就跳過吧)。
4. 把需求從頭到尾看過至少二次以上,將有疑問的地方寫成Assumption。
5. 從Domain Model長出Class Diagram,並寫下各個在設計類別時所牽涉到的Design Decision,注意符合需求是第一原則。
6. 決定各層有那些元件,一樣寫下Design Decision,注意要和其它圖保持設計的一致性。
7. 根據元件畫出各Use Case 的Sequence Diagram,此時你會再發現一些需要Assumption的地方,或設計不合理的地方,寫下來,並且回頭修正設計。
8. 畫出Component Diagram,寫下Design Decision,注意要和其它圖保持設計的一致性。
9. 寫說明文件,記得此文件要包含之前所整理的Assumption、Design Decision和各個UML圖,如果有不容易了解的地方,盡量用圖形輔助。
10. Review再Review,切記符合需求及一致性(不要有自相茅盾的地方)。
11. 送件。
張貼者:我是一隻Coding Monkey 位於 下午 9:56 2 意見
標籤: Java Architect
2007年1月28日 星期日
SCEA第二階段---如何開始

還記得拿到第二階段的考題後,便迫不及待的把他印出來,並且很認真的畫線、註解。
然後很快的看完了一遍,當時覺得應該不難,但反覆看過幾次後,卻還是不知如何開始…
在考SCEA之前,我也負責過幾個J2EE的案子,在客戶面前也都能自傲的吹噓我們的OOAD技術,UML的各種圖也都畫了出來,在"結案"前也準時的交付,但仔細想想…那些文件的用途是什麼?
老實說,是為了結案。
如果客戶需要顧用一位新員工來維護該系統,新員工能在沒有我出面說明的情形下,只憑文件就了解系統嗎? 系統中的各項設計訣擇,是在什麼情形下產生的?
一個個問題在我回想中一一浮現…是的,我的確沒有認真想過,以致只能看著試題發呆…
當你拿到一份需求時,首先要做的是徹底了解,接著思考可行的架構,一個好的架構必然是符合需求且具全面性考量的,以下我要來介紹一些名詞,都是在設計時必須好好思考的名詞:

1. Assumption:
我在SI公司待了很久,就是那種專門接案件開發的單位,東奔西跑下來,看過的需求還真不少,使用者提出需求一定有他的想法需要你幫他滿足,但可惜的是他們永遠說不清楚,他們需要一位有經驗的IT從業人員來導引出真正清楚可行的需求。
不論是那裡來的需求書,看完後必然有一堆問號(如果你有認真看的話),把這些問號都寫下來,去找實際的使用者,一一問清楚,然後做成正式的會議記錄,要求大家簽名同意,並更新文件,這個階段的每個遺漏,都是你這開發者將來會吃悶虧的地方。
SCEA第二部份的考題也是一份需求書,同樣的也是不清不楚,但這次沒有使用者可以幫你犛清所有問號,但沒關係,想像你自己是使用者,自問自答,把答案寫下來成為一條一條的Assumption。

2. Design Decision:
去年12月,我帶著身懷六甲的老婆出遊,行程是這樣設計的:
第一天:
08:00 出發,從茹冬交流道上北二高,往南至南投草屯接新中橫,目的地是合歡山
12:00 清境附近找一間不錯的民宿用餐
14:00 合歡山莊 Check in
15:00 武嶺賞雲海
16:00 合歡主峰登山步道
17:30 合歡主峰頂看日落


行程的設計訣擇:
1. 08:00出發-->因為當天是非假日,所以預期不會塞車,這時間出發到清境剛好約午餐時間。
2. 從茹冬交流道上北二高,往南至南投草屯-->因為從新竹經北二高到南投路徑短,車流速度快。
3. 12:00 清境附近找一間不錯的民宿用餐-->清境附近的用餐選擇很多,不致於找不到餐館,所以決定到時再找。
4. 從新中橫上山會先經過合歡主峰、武嶺再到合歡山莊,但我們決定先到合歡山莊Check in再回頭觀光 --> 因為合歡主峰日落景致很美,為了配合黃昏的時間,所以決定先Check in再繞回頭路。


我並不想寫一篇遊記,但思考一下行程與其設計訣擇之間的關係,其實是很有趣的。
如果只有行程表,而十年後的我看到這行程表時,能夠了解行程為何要這樣安排嗎?
如果只有行程表,而十年後的我想再安排一次合歡山之旅時,這行程有用嗎?(也許到時的交通環境和景點設施都已改變)
生活中的許多事物都存在著「Design<-->Design Decision」之間的關係,例如大樓的設計圖、食譜、引擎……數不盡。
軟體設計也一樣,好的設計文件,應該要將「重要的」「Design Decision」,以簡單明暸的方式寫下來,這會使你的文件更具可讀性及參考價值。

3. Good Diagram:
簡單的文字搭配良好的圖解,可以讓你的文件可讀性事半功倍,這裡的Diagram並不限定要符合UML規格,只要是可以幫助說明的,都可以放在文件中,記住一點:沒有人員輔助說明就看不懂的文件,不能叫好。
張貼者:我是一隻Coding Monkey 位於 下午 11:19 0 意見
標籤: Java Architect
2007年1月11日 星期四
SCEA Part 2考試心得(二)
在完成SCEA第二階段的報名手續後, 你會收到考試中心通知,要求受試者至Sun CertManager下載考題,網址如下:
https://www.certmanager.net/sun_assignment/
你必須使用在Prometric報考第一階段時的考試ID (Candidate ID)做為帳號登入,然後下載作業題目(Assignment)
開啟後原則上每個人的題目都一樣,是一個航空系統專案,內容方面,礙於保密協定的關系,我就不透露了,但其實在網路上應該很容易可以找到這份題目。
第二階段的作業要求你產出一份文件,內容包含Class Diagram, Component Diagram, Sequence Diagram for each Use Case,以及對系統的說明和假設。
這些文件都必須使用英文撰寫成網頁格式,並在最後打包成一個.jar上傳回Sun CertManager。
在你上傳之後,便可以至Prometric報名第三階段的考試,考試類型是四題問答題,問的就是你系統的設計方式,及為什麼要這樣設計,目的是確認作業真的是你本人寫的。
完成第三階段後,在家等待四到六週,你會收到一封EMail通知你的考試成績。如果大於70分,那恭喜你過關了,如果小於70分,那你還有一次機會補考310-300R,修改好你的作業後再度上傳。
補考時唯一可以參考的資訊是考試成績,Sun不會把為什麼不及格的原因告訴你,你只會得到一份成績單,裡頭寫著Class Diagram的分數、Component Diagram的分數、Sequence Diagram的分數。
根據這些分數,你可以補強作業中失分較多的地方,重新寫完後再上傳到Sun CertManager。
補考的流程我沒有實際體驗過,不過根據我在Java Ranch看來的資料,如果補考後還是失敗的話,必須再回到第一階段重新考起。
在此提供大家一個網站:http://www.javaranch.com
該網站有一個SCEA考試版,提供很多SCEA考試方面的相關討論,幾乎是所有準備報考SCEA同好的必到之處。
張貼者:我是一隻Coding Monkey 位於 上午 12:14 0 意見
標籤: Java Architect
2006年12月28日 星期四
SCEA Part 2考試心得(一)

SCEA -- Sun Certified Enterprise Architect
是昇陽電腦在Java領域最高階的考試,分成三階段。就在上個月,我終於把第二、三階段考完了。

前天(1/9),我收到了一封來自Prometric的信,我通過了。
在此和所有有興趣報考的同好們分享我的考試心得:
第一階段是310-051,和一般Java的認證考試沒什麼兩樣,就是一堆選擇題,出題方向就是EJB、Design Pattern…還有一些企業系統的架構概念,雖然題目很雜,但是上網找找考古題用力K個幾天應該都能過關。
第二階段就是今天我要介紹的部份了,考試編號是310-300A,也是整個SCEA考試中最煩人的地方。
在你通過第一階段後,可以再向昇陽繳錢登記,然後便可以下載第二階段的考題,原則上所有人的題目都一樣,就是機票訂購系統。(以後會不會改我可不保證喔!)
下載考題後,打開來,你會發現那只是一份寫的"非常不完整"的需求規格書,你的任務是使用UML,根據規格設計出一套系統,但不用實做,只需要文件就好了。
我相信第二階段對於在OOAD已經很熟練的架構師而言是很簡單的,但可惜我好像不夠資格說簡單,有幾大瓶頸是我必須克服的:
1. 對J2EE系統的架構不夠了解
2. 對Design Pattern (GoF和Core pattern)不夠熟練
3. 對UML不熟 (用看的很簡單,但要從自己手中畫出來,一開始真的有點累)
4. 以往都是先實作再說,文件後補,應付了事,但現在卻必須扎扎實實的寫一份讓人能清楚了解的"英文"文件。
認證只是一紙文憑,但準備的過程的確讓我在軟體工程方面增長不少,所以如果你和我一樣不是大內高手,但對J2EE的OO設計議題有興趣,建議你也可以報考SCEA,應該有不少收獲。
(如果你已經是高手高高手…那,SCEA就真的是一張紙而已,就看你想不想花時間金錢來拿囉!)


隨身的 Windows Live Messenger 和 Hotmail,不限時地掌握資訊盡在指間— Windows Live for Mobile

0 留言: