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

» JWorld@TW » Software Engineering » OOAD  

按列印兼容模式列印這個話題 列印話題    把這個話題寄給朋友 寄給朋友    訂閱主題
reply to topicthreaded modego to previous topicgo to next topic
本主題所含的標籤
無標籤
作者 請問這樣的方法算是ooad嗎?
winddknight





發文: 162
積分: 0
於 2009-04-11 16:22 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
從開始接觸程式設計的工作,參與軟體開發,在規劃系統的時候,先分析有哪些資料表,再決定資料表之間的關聯,實作系統時,採用多層式架構:表現層 -> 商業邏輯層 -> 資料層,然後以Struts2的技術實作系統,用JSP傳送資料到ACTION,再由ACTION調用資料庫物件來做處理,例如:報名活動的動作,由ACTION接到JSP的資料後,直接調用存檔的類別,將資料寫入關聯式資料庫中,完成了報名活動的動作。

我的問題是:
1.這樣的開發過程是否為物件導向式的分析、設計與實作呢?
2.這樣的開發過程產出的系統是否為物件導向式的系統?
3.如果不是的話,以物件導向式的系統分析與設計應該怎麼樣來實現呢?
4.什麼樣的系統才能稱為物件導向式的系統呢?
5.STRUTS2在多層式架構中,屬於哪個層次呢?表現層還是商業邏輯層?

另外:
a.登入與登出是否為商業邏輯?
b.購買基金的金額必須以5千為單位,這樣的資料驗證是否要寫在物件的setter裡面呢?


reply to postreply to post
作者 Re:請問這樣的方法算是ooad嗎? [Re:winddknight]
akin





發文: 24
積分: 0
於 2009-10-12 16:48 user profilesend a private message to usersend email to akinreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
看起來很明顯的 不是, 這種方式還是傳統的分析方法
傳統的方法,第一產生的就是table及關聯

而 OOA 是由use case或 story 首先產生的概念類別,才有後續的延伸


reply to postreply to post
作者 Re:請問這樣的方法算是ooad嗎? [Re:winddknight]
andyjjt





發文: 6
積分: 0
於 2009-10-12 22:35 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
物件導向分析與設計 , 可由Modeling的方法架構完成一個物件導向的系統 , 而無論是Struts 或是JSF等的Framework 是為了讓您開發出的軟體前端架構符合MVC三層切割 , 是屬於 Design Model 的實作設計 , 當然也是物件導向設計的一部份 , 甚至於後端的Framework : Hibernate , Toplink等 , 也是為了讓資料庫表格或其關連能以 物件的方式呈現 , 提供Data Model的物件導向設計 , 也是物件導向實作設計的一部份 , 對UML Modeling有興趣 , 也可參閱我的網站 : http://UMLThinking.idv.tw , 有一篇 : Modeling , how to ..提供給您參考.

Best regurds ,
Andy(OCUP Advanced)
http://UMLThinking.idv.tw


reply to postreply to post
作者 Re:請問這樣的方法算是ooad嗎? [Re:winddknight]
diymike





發文: 4
積分: 0
於 2010-02-19 00:36 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
winddknight wrote:
從開始接觸程式設計的工作,參與軟體開發,在規劃系統的時候,先分析有哪些資料表,再決定資料表之間的關聯,實作系統時,採用多層式架構:表現層 -> 商業邏輯層 -> 資料層,然後以Struts2的技術實作系統,用JSP傳送資料到ACTION,再由ACTION調用資料庫物件來做處理,例如:報名活動的動作,由ACTION接到JSP的資料後,直接調用存檔的類別,將資料寫入關聯式資料庫中,完成了報名活動的動作。

我的問題是:
1.這樣的開發過程是否為物件導向式的分析、設計與實作呢?
2.這樣的開發過程產出的系統是否為物件導向式的系統?
3.如果不是的話,以物件導向式的系統分析與設計應該怎麼樣來實現呢?
4.什麼樣的系統才能稱為物件導向式的系統呢?
5.STRUTS2在多層式架構中,屬於哪個層次呢?表現層還是商業邏輯層?

另外:
a.登入與登出是否為商業邏輯?
b.購買基金的金額必須以5千為單位,這樣的資料驗證是否要寫在物件的setter裡面呢?

我的回答:

1. 不是。這大致是傳統procedural開發方法的延續,前半段導出所謂的data model,後半段則是針對目前web 應用架構必須進行的程式實施設計。

2. 通常不是。因為頂多能產出data model,而OO系統的背後必須有object model。另外從OO原理而言,以action調用資料庫物件無法達到OO最重要的原理 Encapsulation,也就是代表處理意義的operations或methods及被其處理的data (attributes) 被包裹而構成class。(Encapsulation的重要性在於能夠達成軟體工程上追求的首要效益: 軟體change impact的降低...)

3. 以現今OOAD方法的顯學RUP為例,是以Use Case表達需求,然後針對每一UC進行Use Case Realization (UCR)設計,也就是在辨識出相關class之後,使用Sequence Diagram (或Communication Diagram)設計出class間如何互動以完成UC需求內容,並以Class Diagram表達class間的靜態關連(所有Sequence Diagram加上Class Diagram即構成所謂 object model); 然後再加上如 packaging、software layer設計、子系統設計、及data modeling (DB persistency) 設計 ... 等等,最後再加上如 Struts、Hibernate等 implementation設計。

4. 參照2.項回答,或以現今web應用架構而言,在action class 後必須要有由前述 object model 構成的商業邏輯層,而不是由action直接調用資料庫物件,才是一個物件導向系統。

5. 表現層->web層->商業邏輯層...,Struts屬於 web層。

a. 是,因為通常登入登出是UC需求....

b. 應在表現層處理掉。


reply to postreply to post
作者 Re:請問這樣的方法算是ooad嗎? [Re:akin]
winddknight





發文: 162
積分: 0
於 2010-04-19 13:48 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
嗯,感謝 ~ 因為一堆人在說某系統是物件導向系統,某系統用的是OOAD之類的,很困擾,因為很難知道是真的還是假的,不知道大概的標準在哪

reply to postreply to post
作者 Re:請問這樣的方法算是ooad嗎? [Re:andyjjt]
winddknight





發文: 162
積分: 0
於 2010-04-19 13:49 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
andyjjt wrote:
物件導向分析與設計 , 可由Modeling的方法架構完成一個物件導向的系統 , 而無論是Struts 或是JSF等的Framework 是為了讓您開發出的軟體前端架構符合MVC三層切割 , 是屬於 Design Model 的實作設計 , 當然也是物件導向設計的一部份 , 甚至於後端的Framework : Hibernate , Toplink等 , 也是為了讓資料庫表格或其關連能以 物件的方式呈現 , 提供Data Model的物件導向設計 , 也是物件導向實作設計的一部份 , 對UML Modeling有興趣 , 也可參閱我的網站 : http://UMLThinking.idv.tw , 有一篇 : Modeling , how to ..提供給您參考.

Best regurds ,
Andy(OCUP Advanced)
http://UMLThinking.idv.tw


嗯,感謝 ~
大大的網站看起來不錯呢 ~


reply to postreply to post
作者 Re:請問這樣的方法算是ooad嗎? [Re:diymike]
winddknight





發文: 162
積分: 0
於 2010-04-19 13:57 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
diymike wrote:
我的回答:

1. 不是。這大致是傳統procedural開發方法的延續,前半段導出所謂的data model,後半段則是針對目前web 應用架構必須進行的程式實施設計。

2. 通常不是。因為頂多能產出data model,而OO系統的背後必須有object model。另外從OO原理而言,以action調用資料庫物件無法達到OO最重要的原理 Encapsulation,也就是代表處理意義的operations或methods及被其處理的data (attributes) 被包裹而構成class。(Encapsulation的重要性在於能夠達成軟體工程上追求的首要效益: 軟體change impact的降低...)

3. 以現今OOAD方法的顯學RUP為例,是以Use Case表達需求,然後針對每一UC進行Use Case Realization (UCR)設計,也就是在辨識出相關class之後,使用Sequence Diagram (或Communication Diagram)設計出class間如何互動以完成UC需求內容,並以Class Diagram表達class間的靜態關連(所有Sequence Diagram加上Class Diagram即構成所謂 object model); 然後再加上如 packaging、software layer設計、子系統設計、及data modeling (DB persistency) 設計 ... 等等,最後再加上如 Struts、Hibernate等 implementation設計。

4. 參照2.項回答,或以現今web應用架構而言,在action class 後必須要有由前述 object model 構成的商業邏輯層,而不是由action直接調用資料庫物件,才是一個物件導向系統。

5. 表現層->web層->商業邏輯層...,Struts屬於 web層。

a. 是,因為通常登入登出是UC需求....

b. 應在表現層處理掉。


4.現在接觸的分析,大多由資料表開始,讓我認為,ERD 幾乎等於 Class Diagram,再來就是把BI寫在Manager或是Service中,再抽一個DAO出來,這樣子的寫法是否也算是OOAD呢?

5. 表現層 跟 web 層是由表現層細分出來的嗎?表現層是指jsp呈現,而web層是指servlet嗎?


reply to postreply to post
作者 Re:請問這樣的方法算是ooad嗎? [Re:winddknight]
worookie

Small Ship

版主

發文: 2092
積分: 21
於 2010-04-19 14:12 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
winddknight wrote:
4.現在接觸的分析,大多由資料表開始,讓我認為,ERD 幾乎等於 Class Diagram

ERD 和 Class Diagram 所差的地方幾乎就是 OO 的 inheritance.


reply to postreply to post
作者 Re:請問這樣的方法算是ooad嗎? [Re:worookie]
starlin





發文: 14
積分: 0
於 2011-06-12 17:44 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
The Object-Oriented Technique:

1) Use Class Diagram instead of ER Diagram, i.e. Thinking in Objects

2) Programming to Objects with PIE (Polymorphism, Inheritance and Encapsulation) ability

3) Use JPA and/or Hibernate for Persistence

4) Let Business Entities collaborate to envolve Business Methods on them


reply to postreply to post
» JWorld@TW »  Software Engineering » OOAD

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