教學教材


Teaching Material
3、物件導向系統開發技術-問題




3、物件導向系統開發技術-答案


A3-1.何謂物件導向(Object-Oriented)系統分析與設計?
有別於傳統的程序性與結構分析設計技術,物件導向的思維是一種更符合人性化的開發方法,無論是系統分析或系統設計都採用物件導向技術,稱為物件導向分析(Object Oriented Analysis, OOA)與物件導向設計(Object Oriented Design,OOD),將資料與程序合併處理,並將之封裝成物件,以提高軟體的重用性、靈活性和擴充功能性。



A3-2.何謂統一塑模語言(Unified Modeling Language, UML)?
統一塑模語言(Unified Modeling Language, UML)是一種視覺化(Visualizing)、文件化(Documenting)及規格化(Specifing)的軟體塑模語言,但是內容是表式法即模型中所會用到之符號及規則,用途在於塑模(Modeling),也就是繪製系統藍圖,而非程式語言或標示語言,是與程序無關的(Process Independent)。UML以物件模式來描述真實系統,並將資料抽象化(Data Abstraction)、封裝(Encapsulation)、繼承(Inheritance)的觀念融入於系統開發中,塑模(Modeling)方式包含使用個案圖、類別圖、物件圖、循序圖、合作圖、狀態圖、活動圖、元件圖、部署圖、套件圖、複合結構圖、時序圖與互動概觀圖等十三種模式圖。
UML 塑模工具非常多,其中ArgoUML是一個用 Java 寫的開放原碼 UML 塑模工具,可以至 http://argouml.tigris.org下載。



A3-3.何謂使用案例圖(Use Case Diagram)?
系統開始進行塑模時,從使用者觀點描述需求、使用者和主要元件之間的關聯性,確定該系統的設計範圍以及使用者會使用到的功能,包含系統做什麼(What)以及使用者與系統如何互動(How)。使用案例圖由非工程角度出發,只專注描述參與者(actor)與系統的互動關係。使用案例圖包含三個重要部分:
(1)參與者(Actor):

參與者是與系統互動的人、其他系統或者服務,通常在圖中以一個棒狀人形表示使用案例圖的一個參與者。
(2)使用案例(Use Case)

一個使用案例可用來說明系統所提供的一項功能,使用案例圖主要的目的在幫助開發團隊設想系統功能的需求,使用案例圖不會詳細需求描述,這些可以在個別的使用案例說明文件中描述。通常以一個橢圓形代表一個案例,並在橢圓的中間或是下面填入這個使用案例的名稱,名稱以動詞加上名詞為宜。
(3)關聯(Association)

利用簡單的線條來描述參與者和使用案例之間的關係。
以下是一個學生資訊系統與網路購物系統的範例:

(圖) 學生資訊系統之使用案例圖範例

(圖) 網路購物系統之使用案例圖範例



A3-4.何謂類別圖(Class Diagram)?
類別圖是物件導向式的,是一種靜態結構圖,屬於「後端分析」,描述系統的不同的類別(人、事物和資料)集合、類別的屬性和類別之間的關係,是一般程式設計師所要處理的物件,與資料庫系統規劃時使用之E-R Model (Entity - Relationship)圖相似,亦即資料表的分析。類別圖中以方塊圖表類別,分成三個水平區域的長方形,其中最上面寫類別名稱,中間部分註明類別的屬性,底部部分包含類別的方法。類別間的連線會依照不同的關係使用不同的線條表示,例如互相可以聯繫則使用實線,如果只有一方可以聯繫另一方類別,則使用有開放箭頭的實線。

(圖) 類別圖範例



A3-5.何謂循序圖(Sequence Diagram)?
循序圖用來表達系統內部物件之間的互動行為,以時間順序為垂直主軸,水平方向描述物件實體之間的訊息遞,垂直方向則表達物件間呼叫處理程序的時間順序。循序圖中左上方的類別實體是引發這一連串事件的驅動者(driver),接著順著連線往下追蹤每一個訊息。下圖是顧客註冊與登入的循序圖。

(圖) 顧客註冊與登入的循序圖