傳統軟體設計多採用程序導向的概念進行設計,而近年來物件導向概 念陸續取代程序導向的設計概念,進而成為最熱門的程式設計概念。但物 件導向設計概念至 1980 年末期仍缺乏適合的建模語言,以致使程式設計 人員在建構物件導向模組時,無法有效地進行溝通。
然而統一建模語言的出現,整合物件導向的建模語言。因此在系統發 展的生命週期中,提供一種有效率的建模溝通方法。透過運用統一建模語 言,將能有效地提升資訊系統的開發速度。並可幫助資訊工程師在多變的 營造產業環境下,快速地瞭解系統開發理念,並可正確地維護、擴充與改
善系統功能,以保持程式執行的正確性,進而提昇資訊系統在營造產業的 使用價值。
一. 物件導向分析與設計
營造業雖稱為火車頭工業,但資訊技術的推動卻較其他產業來的緩 慢。近年來國內、外學者不斷致力於提升營造產業資訊技術,但實際應用 的現況卻無法有效提升營建競爭力。Asim 等[21]指出在營建專案工程中,
經常在簽訂合約後發生變更合約(change order)。而系統的開發經常是依據 使用者的需求所建置,使用者需求不斷的改變將導致系統在執行時,將變 的較為不穩定。這也導致擔任系統維護的工程師可能要面對在新系統開發 後,必須要有隨時修改系統執行內容與執行流程的認知,否則各類系統將 無法有效地協助營造工程師順利的執行專案。因此如何在開發新的資訊系 統後,保持系統和資料的適用與正確性,將是投身於營造產業的資訊人員 所必需面對的問題。
系統發展的生命週期包括系統需求分析、系統規劃與設計、程式編 碼、測試、整合及維護階段。正如同營建工程生命週期一般,前、後階段 可 謂 環 環 相 扣 。 而 傳 統 的 系 統 發 展 模 式 包 括 了 瀑 布 模 式 (Waterfall Model)、快速雛型模式(Rapid Prototype Model)、螺旋模式(Spatial Model),
此三種模式是較為快速且常用於系統設計流程中。
傳統的程式開發模式如同程序化一般,主要的設計精神 code acting on data。這種思考方式有助於電腦提升程式的運算速度,但對一般未經訓 練的使用者卻如同有一道使用隔閡存在。另外,這種設計思考方式在遇到 部份程式需要重新修改時,將難以評估所需修改的範圍,甚至整個系統需
要重新改寫。
物件導向(Object-Oriented,簡稱為 OO)是現今較為熱門的系統發展模 式。在物件導向的設計概念中,主要採取 data controlling access to code。
這種設計概念的優點,主要改善傳統設計模式流程間具有環環相扣的缺 陷,也增進了系統的彈性(Flexible)、維護(Maintainable)與再利用(Reusable) 性(Asim 等[21])。
然而在物件導向發展語言尚未統一時,至少有不低於五十種的建模語 言在 1970 年中期至 1980 年末期被提出,這些方法運用不同的流程進行物 件導向分析與設計。這些建模語言包括 Shlaer and Mellor 提出的物件導向 分 析 法 (Object-oriented System Analysis) 、 Peter 與 Edward 提 出 的 OOA/OOD 方法等。
二. 統一塑模語言
在 1995 年時期,物件導向技術有三種主流的分析與設計方法,包括 Booch 提出的物件導向 Booch 方法、Rumbaugh 提出的物件導向建模技術 (Object-Oriented Modeling Technique,簡稱為 OMT)方法與 Ivar 所提出的 物件導向軟體工程(Object-Oriented Software Engineering,簡稱為 OOSE) 方法。
統一塑模語言(Unified Modeling Language,簡稱為 UML)最早起源於 Booch 與 James 於 1995 年 10 月提供 OOPSLA 的統一方法(Unified Method),當初最早的版本為 UML0.8。隨後 Rational 公司將統一方法加入 Ivar 的 OOSE 方法,並正式改名為統一塑模語言。而統一塑模語言因為下
列原因,逐漸地推廣成物件導向的標準塑模工具。(OMG[22])
經過 Booch、James 和 Ivar 三人的努力,統一塑模語言於 1996 年六 月及十月發表了 UML 0.9 和 0.91 的版本。統一塑模語言即以這三位物件 導向技術專家所發展的建模語言為基礎,並且汲取其他物件導向方法的優 點修改完成的。
統一塑模語言於 1997 年也被國際物件管理組織(Object Management Group,簡稱為 OMG)所採用,正式被接納為物件導向之標準塑模語言。
由於統一塑模語言在學術界與工業界越來越受到重視,自 1998 年起,國 際物件管理組織每年即召開ㄧ次統一塑模語言會議。統一塑模語言的版本 也從過去的 0.9 版,於 2005 年七月更新至 2.0 版。
統一塑模語言的發展不僅替物件導向技術帶來革命性的改變,另替系 統開發的生命週期帶來革命性的突破。主要原因為統一塑模語言不再依賴 特定的軟體開發程式,也就是與開發程序相互獨立。因此可依據程式的需 要,分別由不同的程式設計師進行設計。
使用統一的分析與設計語言將可大幅提升在設計、修改與維護時的效 率,故迅速地在學術與工業界拓展開來,下列各點敘述統一塑模語言所具 備的特色(OMG [22]):
1. 提供視覺化(Visualization)的表達方式,使得使用者可以更容易地發展 和溝通具有意義的模組。
2. 以彈性(Extensibility)和專門(Specialization)的工具,供使用者發展程式 的概念。
3. 獨立於個別程式設計語言及發展流程,提升編寫程式與維護效率。
4. 提供概念明確的建模語言,有助於物件導向的發展。
5. 適合於發展高階的概念,可應用於學術研究、理論架構、系統模式和 元件分析。
塑造複雜的系統模型需要花費許多心力,若欲使用單一圖形來清楚地 描述現實系統的狀況,相信是不能符合實際狀況。因此,統一塑模語言透 過五大觀點配合各類圖形,藉以區分系統在各種角度中,所需專注的各類 問題上,以清楚地描述系統的完整影像。UML 的五種觀點概述如下(OMG [23]):
1. 使用案例觀點(Use-case view):此觀點主要描述系統主要功能,以及各 種功能與參與者(Actor)的關係。
2. 設計觀點(Design view):此觀點說明系統要如何將問題領域描述與呈 現,以及如何建構軟體以解決這些問題。
3. 實作觀點(Implementation view):此觀點說明了程式碼結構與實際執行 成果,亦可作為描述程式碼模組、展示其結構與其依賴關係。
4. 程序觀點(Process view):此觀點表示程序執行效率,在觀點內包括執 行規模、處理能力與最低標準的時間效率,也可能包括高階系統中複 雜的運算。
5. 部署觀點(Deployment):該觀點展示系統實體的佈置,包括電腦和裝置 (稱為節點),還有節點間彼此如何相互連接,或是些程式及物件需要在
哪一台電腦上執行等。
另外統一塑模語言在物件導向開發的過程中,提供了十三種圖形來協 助開發設計人員使用 。依據各種圖形用途的不同,又可分為結構圖 (Structure Diagrams) 、 行 為 圖 (Behavior Diagrams) 與 互 動 圖 (Interaction Diagrams)。各種圖形功能概述,如下列所述(OMG [23]):
1. 類別圖(Class Diagram):主要由類別與類別之間的關係所組成,從系統 的靜態觀點出發,呈現系統功能需求所組成的類別與類別屬性,並透 過類別操作來描述類別所具有的各種行為。
2. 元件圖(Component Diagram):說明系統設計過程中各類別的配置情 形,以及敘述軟體元件之間的組織架構和相依關係。
3. 合成結構圖(Composite Structure Diagram):為統一塑模語言 2.0 新增的 圖形。其目的為在複雜的系統中,呈現系統內各元件如何互相結合,
以實現複雜的模式(Pattern)。
4. 部署圖(Deployment Diagram):說明系統中各個處理器、元件的配置情 況,並且敘述之間的關連性。
5. 包裹圖(Package Diagram):為一種特殊的類別圖,說明類別和介面如何 被聚集在一起。
6. 物件圖(Object Diagram):物件為類別的實例,可更詳盡地描繪出系統 狀況,並且表達出物件之間的關連性。
7. 活動圖(Active Diagram):可描繪出系統各功能內,所具有的動作、動
線與其產生之結果,用以捕捉系統詳細流程。
8. 溝通圖(Communication Diagram):目的為說明特定元素及元素之間如 何傳遞訊息。
9. 互動圖(Interaction Overview Diagram):說明某活動中牽涉到的元素有 哪些,是活動圖的簡化版本。
10. 循序圖(Sequence Diagram):可藉由循序圖的時間關係,表現出在各功 能操作時,物件或類別之間彼此執行與傳遞訊息的順序。
11. 狀態圖(State Diagram):可用於表達各物件在其生命週期中,各式各 樣的狀態變化。
12. 時序圖(Timing Diagram):用於強調訊息傳遞之間詳細時序。
13. 使用個案例圖(Use Case Diagram):透過使用者觀點與其需求,建構系 統概觀,以描繪出使用者、功能與功能之間的關係。
本研究目的為開發網路整合管理系統之雛形架構,旨在探討系統架構 的可行性與合理性,故未利用各種圖形詳加以描述本系統架構。本研究中 將採用使用個案圖、類別圖、活動圖、循序圖等圖形,以描述系統結構、
行為與互動關係,藉以供後續研究參考及發展使用。
2.6 網頁應用程式技術之介紹