2015年9月10日 星期四

軟體工程書摘與心得 Part 2:物件導向軟體工程之另類思考

延續上篇,當我們有完整的需求分析後,接下來就是要實作程式碼。這部分我跳過很多,直接把我認為重要的拿出來。當類別圖畫好後,接下來就是要畫出序列圖(Sequence Diagram),之後對使用者案例進行健全性分析,最後連接上對於該程式的領域模型,之後軟體內類別和類別的關係大抵上就確定了。

物件導向的另類思考流程圖
至於什麼是序列圖?就是在一個動作中,列出參與該動作的物件,隨著動作進行時,找出物件和物件之間的交互子動作,直接看例子:

Sequence_diagram_for_handling_a_browser_request_using_the_Model_View_Controller_MVC_pattern

上圖中顯示要「處理來自瀏覽器的請求」時,所需要做的動作和參與的對象,隨著動作開始進行,首先Browser會發出HTTP GET Request()給Tomcat,之後就持續做一連串的動作,直到整個流程被完成。序列圖的好處是(1)知道參與者有哪些,(2)子動作其實會對應到所實作的函數,能很直覺地反映出程式該怎麼寫。

另外還有一個是健全性分析(Robust Analysis),他是把「分析的模型轉換成設計的模型」。依據使用案例模型,輸入使用案例、使用案例的情況(Scenarios)、使用案例對應的活動圖(Activity Digram),以及領域模型,輸出成以UML表示的合作圖(Collaboration Diagram)來記載,裏頭會有3種主要的設計成員:
  1. 邊界物件(Boundary Objects):用來描述系統與角色之間的互動
  2. 實體物件(Entity Objects):用來描述系統中經常存在的資訊(Persistent Information)
  3. 控制物件(Control Objects):用來描述對於其他物件的控制、安排,或是協調
使用健全性分析是幫助釐清目前定義的類別是否足夠、角色定義是否明確,可能在進行健全性分析的過程中會發現更多的物件或是新的屬性類別,然後用來重新繪製序列圖,所以序列圖的建立不是一次就完成的,是需要經過多次迭代的。

我覺得最厲害的還是序列圖,他可以直接讓我知道怎麼寫程式,同時又能了解物件的互動,真的很值得學習。

下一篇要介紹當軟體完成時怎麼做系統組態的管理與維護,如何讓軟體能適時地反映使用者的成長


沒有留言:

張貼留言