JWorld@TW the best professional Java site in Taiwan
      註冊 | 登入 | 全文檢索 | 排行榜  

» JWorld@TW » Software Engineering  

按列印兼容模式列印這個話題 列印話題    把這個話題寄給朋友 寄給朋友    訂閱主題
reply to topicthreaded modego to previous topicgo to next topic
本主題所含的標籤
無標籤
作者 Data Oriented Analysis & Design -- feedback wanted [精華]
singlelog

換回來



發文: 416
積分: 6
於 2003-09-22 23:30 user profilesend a private message to usersend email to singlelogreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
最近因為工作上可能要辦個training,就隨手寫了一篇文章,想分享一下運用structure analysis的一些經驗。接著請我身旁的親友團看看。獲得的評價是文章太硬/太長了。 Tounge

除此之外,還沒有其他的comment。

在花時間加工,加入輕鬆的橋段,讓它變得更長之前,想先聽聽大家的看法。不知道這種東西有沒有什麼可以再加強的地方。

------------------------------------

抱歉,抱歉,剛貼上來沒多久,自己再看過一遍,也覺得枯燥乏味的快睡著了。看來,這是太久沒有好好睡覺亂寫字的後遺症,而常常被我脅迫幫忙校正的QA team,也沒有發揮作用。這是UT & Function Validation Test沒做好。

我會趕快改過遷善。不過在還沒來得及改版之前,請大家還是不吝指正啦。

良心不安中Black Eye

ch1.zip (34.78k)


singlelog edited on 2003-09-23 00:38
reply to postreply to post
我的書:專案管理Happy書!

我的網站:diggirl.net

my blog http://tinyurl.com/36gcye
作者 Re:Data Oriented Analysis & Design -- feedback wanted [Re:singlelog]
ymshin





發文: 277
積分: 4
於 2003-09-23 09:24 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
覺得好有營養! 謝謝分享. *感動中~* m(_ _)m

不覺得生硬太長耶, 不過如果排版能夠改善一點看起來比較不會吃力, 標題能夠在明確一點, 讓讀者能夠從 title 明瞭主旨是最好的了, 要是能有 anchor 放在最前面可以連到各小節就更好了. (好興奮, 像在參予 book draft review ~ ^o^)

內容我覺得比較著重在 DB 的 design, coding 部分的架構沒怎麼提, 感覺比較局部, 是依照 DB structure 決定軟體設計, 雖然 DB 真的很重要...(標題就說是資料導向之分析與設計了, 自己耍呆). 先給它存檔起來. Tongue

--
還沒看個透徹, 晚一點回鍋繼續.


reply to postreply to post
作者 Re:Data Oriented Analysis & Design -- feedback wanted [Re:singlelog]
tempo



版主

發文: 645
積分: 7
於 2003-09-23 09:45 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
還沒研讀不過給個小小的建議..
加個大綱跟 hyperlink 吧~~ (像這樣 http://jakarta.apache.org/tapestry/doc/Tutorial/Tutorial.html )
長文章這樣比較方便看..Wink


browser edited on 2003-09-23 11:32
reply to postreply to post
作者 Re:Data Oriented Analysis & Design -- feedback wanted [Re:tempo]
singlelog

換回來



發文: 416
積分: 6
於 2003-09-23 11:24 user profilesend a private message to usersend email to singlelogreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
tempo wrote:
還沒研讀不過給個小小的建議..
加個大綱跟 hyperlink 吧~~ ( 像這樣 http://jakarta.apache.org/tapestry/doc/Tutorial/Tutorial.html )
長文章這樣比較方便看..Wink

真是沒想到這一點。因為本來打算在java週報上publish的,也就是說會以txt format為主的說。


browser edited on 2003-09-23 11:32
reply to postreply to post
我的書:專案管理Happy書!

我的網站:diggirl.net

my blog http://tinyurl.com/36gcye
作者 Re:Data Oriented Analysis & Design -- feedback wanted [Re:singlelog]
singlelog

換回來



發文: 416
積分: 6
於 2003-09-26 02:10 user profilesend a private message to usersend email to singlelogreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
小改版,不過還沒力氣去加link跟大綱,有點懷疑自己有沒有力氣去做這種事情。Tounge

還是沒收到關於內容的feedback也。傷腦筋,跟以往不太一樣,丟給同事看,也沒回應...還在煩惱公司的training投影片要怎麼做...看來我還是比較適合搞笑。

不知不覺,又是個粉晚的夜晚了。

ch1.zip (38.09k)


reply to postreply to post
我的書:專案管理Happy書!

我的網站:diggirl.net

my blog http://tinyurl.com/36gcye
作者 Re:Data Oriented Analysis & Design -- feedback wanted [Re:singlelog]
ming215





發文: 143
積分: 2
於 2003-10-14 11:38 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
singlelog wrote:
小改版,不過還沒力氣去加link跟大綱,有點懷疑自己有沒有力氣去做這種事情。Tounge

還是沒收到關於內容的feedback也。傷腦筋,跟以往不太一樣,丟給同事看,也沒回應...還在煩惱公司的training投影片要怎麼做...看來我還是比較適合搞笑。

不知不覺,又是個粉晚的夜晚了。

有錯字啦~~

十二月中旬產生第二年的quota,並且要在明天的1月下旬

明年..你打成明天了.. 差一郭字..時間差粉遠勒..

普遍大多是到小學生程度吧......大專時期..太嚴謹的table架構了..
會寫死一票coding 人員..且測試會更麻煩..整個 db server 的loading 都要考量
偶們只有一個牽涉到線上扣款的機制才有做到架複雜..甚至連 序號都要加密.控管..所有序號不能跳號(跳號表示有被人家更動過..整個系統會完全不讓使用者進入)
有權限控管..就表示要有 login 機制.. login 可無限次..還是3次就 fail ...一樣要跟user confirm..看系統的 security 是否粉 care....
審核的話呢..甚至還有 2 次簽核..一層層往上簽..各層簽核的權限不同

but..開到 table schema 時, 已經是在 sd 階段了吧..
sa 的階段..你只有提到需求confirm..但要如何confirm..又是一回事了..

你是否要先從 sa 開始呢?...期初..其實會建議先畫 建議系統流程圖
(正常素有 現行&建議...而且從現行-實體 => 現行-邏輯 => 建議-邏輯 =>建議-實體...順序不大記得..@@.. 看功力..有人要一步步來才導得到最後面..也有人可以直接畫最後一個)
將各部門的功能及流程畫出及說明, 一方面讓 user confirm..
一方面讓 user 知道你真的了解..也讓後續參與的人能清楚知道這系統在幹嘛..
並且各部門的功能及關聯性都可以從圖上看的出來..連帶影響到 dfd..dd..
做了一堆的文件..覺的真的重要的..只有 系統流程 & table schema..還有就素
關聯圖了..(程式.table 對應)

另外..有些 db 的 transation log..可以考慮用 db 本身的 trigger 去做..而不要用程式寫......粉累.....用人工企做 rollback...
通常還會考慮到..若寫檔寫到一半..例如 master 寫完..detail 寫一半..log也寫一半..或還沒寫到..結果系統突然當掉..斷線..整個 data 的 rollback..若素靠人工寫..會寫到屬..

還有就素在年度結轉時..轉歷史檔..若轉了歷史檔後..還要再做更動?
(超例外狀況啦..但真的有發生過..= =")
一更動後..更慘..年度結轉要重做....歷史資料重轉...
有些若素會計帳..每年度科目還長的不一樣..
呃...扯遠了..好累...Sad

先醬子好囉~~


reply to postreply to post
作者 Re:Data Oriented Analysis & Design -- feedback wanted [Re:ming215]
singlelog

換回來



發文: 416
積分: 6
於 2003-10-14 12:03 user profilesend a private message to usersend email to singlelogreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
ming215 wrote:
有錯字啦~~

十二月中旬產生第二年的quota,並且要在明天的1月下旬

明年..你打成明天了.. 差一郭字..時間差粉遠勒..

好感動。居然有人幫忙找錯字。Thumbs up
ming215 wrote:
普遍大多是到小學生程度吧......大專時期..太嚴謹的table架構了..
會寫死一票coding 人員..且測試會更麻煩..整個 db server 的loading 都要考量

Sure,這是選擇的問題。不過要先知道有這個option可以選。
不過我最近做的系統如果原先有這樣規劃,現在很多bug就會比較好找出問題來了。

ming215 wrote:
偶們只有一個牽涉到線上扣款的機制才有做到架複雜..甚至連 序號都要加密.控管..所有序號不能跳號(跳號表示有被人家更動過..整個系統會完全不讓使用者進入)
有權限控管..就表示要有 login 機制.. login 可無限次..還是3次就 fail ...一樣要跟user confirm..看系統的 security 是否粉 care....
審核的話呢..甚至還有 2 次簽核..一層層往上簽..各層簽核的權限不同

but..開到 table schema 時, 已經是在 sd 階段了吧..
sa 的階段..你只有提到需求confirm..但要如何confirm..又是一回事了..

你是否要先從 sa 開始呢?...期初..其實會建議先畫 建議系統流程圖
(正常素有 現行&建議...而且從現行-實體 => 現行-邏輯 => 建議-邏輯 =>建議-實體...順序不大記得..@@.. 看功力..有人要一步步來才導得到最後面..也有人可以直接畫最後一個)
將各部門的功能及流程畫出及說明, 一方面讓 user confirm..
一方面讓 user 知道你真的了解..也讓後續參與的人能清楚知道這系統在幹嘛..
並且各部門的功能及關聯性都可以從圖上看的出來..連帶影響到 dfd..dd..
做了一堆的文件..覺的真的重要的..只有 系統流程 & table schema..還有就素
關聯圖了..(程式.table 對應)

要做到大學程度的東西,大多數的user是沒概念的。所以需求訪談不一定可以找出這些東西。

Analysis的關鍵是what。想要找出user真正要什麼。所以通常不管how,反正列需求,等到design時再解決。可是有些他們不是很明確的需求,(例如all transactions need to be tracable and reversable.),這會建構在how上面。所以有些東西還是要先知道有這樣的問題,以及有這種設計的方式可能可以解決。談requirement才會比較好談。

有些系統面的東西,可以不要讓domain的user知道。例如有歷史檔的存在這種事情。Smile解釋為什麼會需要這個的時間,可能會很長。
ming215 wrote:
另外..有些 db 的 transation log..可以考慮用 db 本身的 trigger 去做..而不要用程式寫......粉累.....用人工企做 rollback...

你跟我算同國的。我不用trigger就是用stored procedure Smile。不過在java world裡面,大家比較喜歡object啦。

ming215 wrote:
通常還會考慮到..若寫檔寫到一半..例如 master 寫完..detail 寫一半..log也寫一半..或還沒寫到..結果系統突然當掉..斷線..整個 data 的 rollback..若素靠人工寫..會寫到屬..

通常在結算前會先把data先check過一次。

如果做的不嚴謹,就粉難check了說。

ming215 wrote:
還有就素在年度結轉時..轉歷史檔..若轉了歷史檔後..還要再做更動?
(超例外狀況啦..但真的有發生過..= =")
一更動後..更慘..年度結轉要重做....歷史資料重轉...
有些若素會計帳..每年度科目還長的不一樣..
呃...扯遠了..好累...Sad

嘿嘿,設計的嚴謹,就是為了要讓你可以取消月結重算,這種事情只要遇上一次就會讓你哭出來了。對於每種變化都可以定義逆運算,因為你把運算過程都記錄下來了,所以遇到這種要死人的狀況,才可以輕輕鬆鬆地解掉。沒記下來的話,要倒回來,就粉累了。Smile

ps.你遇到的慘事,大概做SA時,是不會有這種requirement跑出來的。最少我們家的SA去做OOA,都把這歸咎在user沒有提出這樣的requirement。所以我覺得這篇文章算是在做sa/sd時的一些tips。

已經要走了,昨天還在幫人想辦法修batch job程式寫錯時,弄錯的資料。有粉多都要一筆一筆人工去對啊。也才幾百筆,user就要砍人了。最慘的是,還不是下SQL就搞定了,要請人寫程式去改db裡面的blob所存放的xml。CryCry

xml,我恨你!


singlelog edited on 2003-10-14 12:08
reply to postreply to post
我的書:專案管理Happy書!

我的網站:diggirl.net

my blog http://tinyurl.com/36gcye
作者 Re:Data Oriented Analysis & Design -- feedback wanted [Re:singlelog]
ming215





發文: 143
積分: 2
於 2003-10-14 12:39 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
singlelog wrote:
好感動。居然有人幫忙找錯字。Thumbs up


不小心瞄過企..就瞄到了..迷有特別企找啦..Big Smile

singlelog wrote:
Sure,這是選擇的問題。不過要先知道有這個option可以選。
不過我最近做的系統如果原先有這樣規劃,現在很多bug就會比較好找出問題來了。

要做到大學程度的東西,大多數的user是沒概念的。所以需求訪談不一定可以找出這些東西。

Analysis的關鍵是what。想要找出user真正要什麼。所以通常不管how,反正列需求,等到design時再解決。可是有些他們不是很明確的需求,(例如all transactions need to be tracable and reversable.),這會建構在how上面。所以有些東西還是要先知道有這樣的問題,以及有這種設計的方式可能可以解決。談requirement才會比較好談。

有些系統面的東西,可以不要讓domain的user知道。例如有歷史檔的存在這種事情。Smile解釋為什麼會需要這個的時間,可能會很長。


有時會覺得..sa..pm..好像素在做良心事業...反正 user 不知..表面上看得到就好...程式就亂七八糟不管...Dead 程式寫好寫壞..各憑良心....

singlelog wrote:
你跟我算同國的。我不用trigger就是用stored procedure Smile。不過在java world裡面,大家比較喜歡object啦。


最早偶也素都用程式寫(因為沒工具..那時db沒架好用)...後來有強大滴db後..會覺得粉呆..幹嘛自己寫..又難控制..又容易錯.速度又慢..交給server端處理..快又有效率...尤其素統計檔..明細 3-4層..各層往上加總..更別提做修改.刪除(作廢-從master刪..明細全砍)..

singlelog wrote:
通常在結算前會先把data先check過一次。

如果做的不嚴謹,就粉難check了說。


用 object 的方式..就可能造成 data 多出來..但 user 看不到的情況
如 master不見了..detail 還存在..
這時去做結轉..就要看寫法了..是 master .detail 分開做..還是 join 後一起做
結果會不一樣..

singlelog wrote:
嘿嘿,設計的嚴謹,就是為了要讓你可以取消月結重算,這種事情只要遇上一次就會讓你哭出來了。對於每種變化都可以定義逆運算,因為你把運算過程都記錄下來了,所以遇到這種要死人的狀況,才可以輕輕鬆鬆地解掉。沒記下來的話,要倒回來,就粉累了。Smile

ps.你遇到的慘事,大概做SA時,是不會有這種requirement跑出來的。最少我們家的SA去做OOA,都把這歸咎在user沒有提出這樣的requirement。所以我覺得這篇文章算是在做sa/sd時的一些tips。

已經要走了,昨天還在幫人想辦法修batch job程式寫錯時,弄錯的資料。有粉多都要一筆一筆人工去對啊。也才幾百筆,user就要砍人了。最慘的是,還不是下SQL就搞定了,要請人寫程式去改db裡面的blob所存放的xml。CryCry

xml,我恨你!


節哀順變..Cool...這算小意思了..之前偶們素有工程師..把人家滴 db 幹掉..
素整個 db 哦..鼻素單一table....Black Eye


reply to postreply to post
作者 Re:Data Oriented Analysis & Design -- feedback wanted [Re:ming215]
singlelog

換回來



發文: 416
積分: 6
於 2003-10-14 13:04 user profilesend a private message to usersend email to singlelogreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
ming215 wrote:
有時會覺得..sa..pm..好像素在做良心事業...反正 user 不知..表面上看得到就好...程式就亂七八糟不管...Dead 程式寫好寫壞..各憑良心....

程式寫的不好,早晚會被發現。Smile

ming215 wrote:
最早偶也素都用程式寫(因為沒工具..那時db沒架好用)...後來有強大滴db後..會覺得粉呆..幹嘛自己寫..又難控制..又容易錯.速度又慢..交給server端處理..快又有效率...尤其素統計檔..明細 3-4層..各層往上加總..更別提做修改.刪除(作廢-從master刪..明細全砍)..

I can't agree more.所以我們已經退流行了?

ming215 wrote:
用 object 的方式..就可能造成 data 多出來..但 user 看不到的情況
如 master不見了..detail 還存在..

設了constraint就不會,不過你會有一堆java exception & error。

ming215 wrote:
這時去做結轉..就要看寫法了..是 master .detail 分開做..還是 join 後一起做
結果會不一樣..

我會偷偷做檢查,把不合理的資料幹掉。(這個比較狠),還是搬到另外一個table裡面放。(以免還要救回來。)

ming215 wrote:
節哀順變..Cool...這算小意思了..之前偶們素有工程師..把人家滴 db 幹掉..
素整個 db 哦..鼻素單一table....Black Eye

啊,後來勒?我對於聽慘案最有興趣了。

我們客戶超怕我們做這種事情的,所以給我們的權限超少的。常常連CREATE TABLE都沒有。Sad


reply to postreply to post
我的書:專案管理Happy書!

我的網站:diggirl.net

my blog http://tinyurl.com/36gcye
作者 Re:Data Oriented Analysis & Design -- feedback wanted [Re:singlelog]
ming215





發文: 143
積分: 2
於 2003-10-14 14:18 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
singlelog wrote:
程式寫的不好,早晚會被發現。Smile


發現時..通常會想..靠..什麼爛程式..哇來重寫好了..
然後寫到一半...嗯...這個.那個.還有XXX 都要考慮..然後還有 其他的程式
(通常一個系統..基本值素200支程式..)
想到就頭昏..算了....先放著好了...再說再研究..

singlelog wrote:
I can't agree more.所以我們已經退流行了?


嘿呀...老骨董....Cry
singlelog wrote:
設了constraint就不會,不過你會有一堆java exception & error。

口素 constraint 有 constraint 的問題..不夠彈性..常常會寫入失敗...
然後user 也不管你素因為 null 還素因為對不到data..寫入失敗..
通通就素 "有error" "打半天都沒有寫進企" "程式有問題".....

所以不喜歡用..........Smile

singlelog wrote:
我會偷偷做檢查,把不合理的資料幹掉。(這個比較狠),還是搬到另外一個table裡面放。(以免還要救回來。)


跟偶一樣...Wink

singlelog wrote:
啊,後來勒?我對於聽慘案最有興趣了。

我們客戶超怕我們做這種事情的,所以給我們的權限超少的。常常連CREATE TABLE都沒有。Sad

厚..偶棉客戶對偶們都粉放心勒..(其實素因為他們素 USER SITE..都不懂..鼻要懷疑..甚至素資訊室也一樣.. )
甚至連整台主機偶們都口以拿來玩...

慘案發生過 2 次..不同人幹滴..不同 USER SITE..
一個..幸好有備份..超大盤磁帶....再把它倒回企..
一個..好像用人工補 KEY 吧...Black Eye


reply to postreply to post
作者 Re:Data Oriented Analysis & Design -- feedback wanted [Re:ming215]
singlelog

換回來



發文: 416
積分: 6
於 2003-10-14 15:27 user profilesend a private message to usersend email to singlelogreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
ming215 wrote:
發現時..通常會想..靠..什麼爛程式..哇來重寫好了..
然後寫到一半...嗯...這個.那個.還有XXX 都要考慮..然後還有 其他的程式
(通常一個系統..基本值素200支程式..)
想到就頭昏..算了....先放著好了...再說再研究..

你們是爛程式還會動,我們家的常常run到一半timeout,或是根本就跑錯...過不了關啦。
ming215 wrote:
口素 constraint 有 constraint 的問題..不夠彈性..常常會寫入失敗...
然後user 也不管你素因為 null 還素因為對不到data..寫入失敗..
通通就素 "有error" "打半天都沒有寫進企" "程式有問題".....

所以不喜歡用..........Smile

我不是特別喜歡,可是我家的小朋友都會覺得這樣比較嚴謹說。
ming215 wrote:
厚..偶棉客戶對偶們都粉放心勒..(其實素因為他們素 USER SITE..都不懂..鼻要懷疑..甚至素資訊室也一樣.. )

我們的客戶公司裡面的policy都超多的。沒什麼機會可以這樣子玩。到後來我們反到都在裝死。
這是production的資料,我們沒有權限,怎麼可以亂改呢?接著就把工作交到user site的it部門身上。有時候他們出槌時,還可以責備他們,誰叫你們在開發時欺負我們?
ming215 wrote:
甚至連整台主機偶們都口以拿來玩...

慘案發生過 2 次..不同人幹滴..不同 USER SITE..
一個..幸好有備份..超大盤磁帶....再把它倒回企..
一個..好像用人工補 KEY 吧...Black Eye

上次把某個script叫user家的admin去run,中間有一段,是要從db裡面做出修data的資料。
像是select 'update tablea set columna =' || columna + columnb ||' where keya = '|| keya from tablea where...;
admin應該要把產生的結果spool out 出來,另外在command line重run一次。結果他忘了。然後資料就被砍掉了。
他下班以後才被人發現這種慘事,有一堆人加班想辦法從backup磁帶另外把資料倒到測試環境,重新弄一次。聽說那天搞到半夜十二點。第二天是禮拜六還有人去加班一整天修資料。Smile


reply to postreply to post
我的書:專案管理Happy書!

我的網站:diggirl.net

my blog http://tinyurl.com/36gcye
» JWorld@TW »  Software Engineering

reply to topicthreaded modego to previous topicgo to next topic
  已讀文章
  新的文章
  被刪除的文章
Jump to the top of page

JWorld@TW 本站商標資訊

Powered by Powerful JuteForum® Version Jute 1.5.8