2010年2月6日

物件導向技術的系統分析與設計

物件導向技術(Object-Oriented Technique)是繼結構化技術之後,系統開發上另一受到高度重視的新思維,已經成為軟體工程領域的熱門議題。物件導向的基本概念包括物件、類別、封裝、繼承、同名異式與超荷等,其中的物件、類別、繼承已經在之前的PHP程式設計概念中提到,本篇將針對封裝、同名異式與超荷做簡單的說明。另外,系統開發的相關工作,統一塑模語言,包括使用個案圖、類別圖、循序圖等九種。

封裝(Encapsulation)
物件導向技術將資料及操作此資料的方法包裝成一個物件,稱之為「封裝」。封裝所形成的物件,其結構可分為兩部分:一是定義物件外觀行為的介面(Interface)部份;另一則是存放抽象化的結果及如何達成外觀行為的實作(Implementation)部份。封裝將物件的實作細節隱藏,使其與外界環境隔離,而只允許該物件所包含之操作修改其資訊,稱為資訊隱藏(Information Hiding)。封裝使物件更具獨立性,如果物件內部的資料結構有變動時,只要其外部的操作介面沒有修改,使用這些物件的應用程式就可以不必修改,這樣的特性使得物件導向的系統較容易維護。

同名異式(Polymorphism)
Polymorphism意指「多種型式」,簡稱「多型」,即在不同的物件(或類別)中,利用相同名稱的操作,以不同的方式處理資料,傳送訊息的物件不需要知道接受訊息所屬的類別,接受訊息的物件可以屬於任一類別。例如:某公司計算員工薪水,員工可分為正式員工及臨時員工,而臨時員工又可分為按件計酬與按時計酬,這三種員工都有薪資計算,但是薪資計算的操作又有不同計算方式。

超荷(Overload)
超荷就是在同一個類別中,使用相同名稱的操作,然而每個操作的參數個數、參數資料類型不可完全相同。當使用到此操作時,可以參數個數及參數資料型態的不同來判斷要使用哪一個操作。超荷有時又稱靜態多型。

統一塑模語言(Unified Modeling Language, UML)
統一塑模語言是Rational公司整合Booch、Rumbaugh與Jacobson三種方法而提出的物件導向塑模工具,是一種視覺化(Visualizing)、文件化(Documenting)及規格化(Specifying)的軟體塑模語言,經過不斷地演變與擴充,於2003年6月正式通過UML 2.0標準。在UML 2.0中規範了十三種模式圖,而其中使用個案圖、類別圖、物件圖、循序圖、合作圖、狀態圖、活動圖、元件圖、部署圖等九種較常用於商用資訊系統之分析與設計上。

使用個案圖(Use Case Diagram)
UML的使用個案圖是引用Jacobson方法中的使用個案模式,從使用者的觀點描述系統的行為者與系統間的互動行為與關係。從內部觀點來看,使用個案可描述系統做什麼(What)。從外部觀點來看,它可描述行為者與系統如何互動(How)。

類別圖(Class Diagram)
UML之類別圖是引用Booch與Rumbaugh方法中的類別圖,主要用以表示系統存在之物件型態(類別)及各物件型態間的靜態資料結構與邏輯關係,也表達類別之屬性、操作與類別間連結之限制等。

物件圖(Object Diagram)
UML的物件圖是用來描述一系統於某一時間的靜態資料結構,該圖由一群相關的物件及其連結所組成。物件圖是系統在某個時間點的一個例子,而非系統的定義,可用來表達一個系統複雜的資料結構,或藉由時間序列的系統影像(Snapshots)來表達系統的行為。

循序圖(Sequence Diagram)
UML的循序圖是結合Booch的互動圖與Rumbaugh的訊息追蹤圖而成,主要用以描述系統運作時物件間的互動行為,著重以時間的先後順序為主軸,以表達物件間的訊息傳遞與處理程序。一個循序圖會有一個與之對應的合作圖,但表達的重點與方式不同。

合作圖(Collaboration Diagram)
UML的合作圖是從Booch的物件互動圖與Rumbaugh的物件導向資料流程圖改進而成,主要用以描述系統運作時物件間的互動行為,該圖著重表達相關物件間的連結結構,並能同時展現物件間的訊息傳遞活動。

狀態圖(State Diagram)
UML的狀態圖是結合Booch的狀態轉移圖與Rumbaugh的動態模式而成,用以表示物件在其生命週期中的狀態變化。狀態圖是以微觀物件為主,細分物件所發生的各項事件,並表達物件生命週期之狀態轉變及活動結果。

活動圖(Activity Diagram)
UML的活動圖可用於表達執行某一作業行為中的活動、轉換與條件等。一個活動圖描述一群循序與同步的活動,一個活動可表示一個工作流程步驟或一個運算的執行動作。

元件圖(Component Diagram)
UML的元件圖起源於Booch的模組圖,用以說明系統設計過程各類別與物件的配置,以及敘述軟體元件間的組織架構和關係。元件是開發和執行過程中實際物件的類別,將可分解的實際基本單位模組化,這些基本單位包括模組(Module),並擁有特性和明確定義的介面。

部署圖(Deployment Diagram)
UML的部署圖起源於Booch的處理圖,用來說明系統各軟、硬體元件的配置、關聯,以及同一處理器內執行處理的時程安排等。

物件導向系統開發過程是一種反覆的程序,主要包括需求分析、系統分析與設計、細部設計、程式編寫、測試與部署等階段。物件導向塑模提供了使用個案觀點、設計觀點、流程觀點、實施觀點與部署觀點等,可供不同參與者,在不同時間,從不同的角度來看系統。由於物件導向技術的引進,提升了程式的重用性與可維護性,使軟體的開發與維護更有效率。

沒有留言:

張貼留言