試描述利用物件導向方法進行系統開發之優點及限制?
壹、前言
物件導向技術(Object-Oriented Technique) 是繼結構化技術之後,系統開發上另一新的典範(Paradigm) 。物件導向之觀念起源於模擬語言,以物件(Object)模式來描述真實系統,並將資料抽象化(Data Abstraction)、封裝(Encapsulation)、繼承(Inheritance)、同名異式(Polymorphism)的觀念融入於物件系統開發中;軟體業界希望像硬體開發時,有積體電路(IC) 可以直接使用,所以有做出軟體IC的構想。因為,如此可以促進軟體業界的分工,降低系統開發的複雜度和困難度。物件導向技術可以達到這個目標。然而,傳統的結構化技術不能。
貳、物件導向的說明及優點
一種全然不同的資訊系統觀點,將資訊系統視為彼此互動之物件集合,這些物件會一起作用以完成任務物件:電腦系統中能對訊息做出回應的物品;概念上,這種方法並沒有處理程序或程式,也沒有資料實體與檔案,它只有物件。OO 語言: Java, C++, C#.NET, VB.NET
物件導向的優點如下:
(一)更接近人類思維方式;(二)程式的重複使用;(三)程式易維護;(四)程式易擴展等。物件導向的系統開發是一個反覆的過程,包括需求分析、分析、設計、實施與測試等階段,但分析與設計之工作其實很難分得清楚,因此建議將之合併成分析與設計,如下圖所示。
參、物件導向的應用觀念
物件導向應用一些重要的觀念包括物件、類別、封裝、繼承與同名異式等,使物件導向系統有別於結構化之系統。由於物件導向技術之引進,使軟體之開發與維護更有效率,亦提升了程式的再用性與可維護性。
物件導向之系統開發過程是一種反覆的程序,主要包括需求分析、系統分析與設計、測試與維護等階段。
需求分析主要以使用個案圖作為表達工具,而系統分析與設計主要以類別圖、物件圖、循序圖、、狀態圖、合作圖、元件圖與佈署圖表達。然後,物件間的聯繫是鬆散的,靠著訊息傳遞互通有無,彼此合作。所以,物件可接收訊息也可發送訊息。外界之物件使用某一物件時,僅需知道該物件提供何種方法,而不需知道其內部之資料或行為是如何表達或執行。僅透過訊息傳遞要求該物件提供服務,而無法逕自改變該物件之資料內容。因此,使用物件導向的方法來進行系統開發,讓吾人的使用系統更加有效率,並可重複使用,以及對於程式使用的方法更新,亦更能快速進行。
肆、當前系統開發的趨勢
比較適應性的觀點:
(一)統一流程 (Unified Process):
物件導向的開發方法論,由 IBM 的 Rational Software 公司所提供 Booch, Rumbaugh, Jacobson;統一塑模語言(Unified Modeling Language; UML)的主要作用是建立模型;UML,可以與任何的 OO 開發方法論一起使用UP 定義了四個生命週期的階段初始、詳述、建構、轉換。
(二)極致軟體製程 ( Extreme Programming):
輕量級的系統開發方法論,讓流程保持簡單與效率藉由非正式的使用者故事,說明需要從系統獲得的支援,及必要的系統功能要求使用者描述接受度測試,展示需要完成的結果,需要不斷地測試,持續的整合,以及加重使用者的參與,並由小型團隊完成程式設計。
(三)敏捷塑模 (Agile Modeling):
1、混合(一)與(二) (Scott Ambler):
使用的模型比 (二)多、 使用的文件比(一)少。
2、互動與漸進式塑模:
(1)套用正確的模型;(2)平行建立多個模型;(3)在模型中加入微幅的變化。
3、團隊合作:
爭取積極的利害關係人加入鼓勵共同擁有與其他人員一起建立,並公開展示模型。
4、Scrum:
滿足高度適應性專案的需求,盡可能快速地回應目前的情境,而Scrum本意是英式橄欖球賽,兩者的速度都很快、都需要彼此適應、也都需要自我組織,團隊需要持續掌握專案的狀況,在過程中重視個人的價值。
伍、物件導向的系統開發
(一)Grady Booch於1986年率先發表物件導向的系統開發方法,以開啟物件導向在軟體工程(Software Engineering)上應用的新頁。接著,又有許多物件導向系統分析與設計方法論陸續的被發表,使物件導向的觀念在軟體工程上的應用更臻完整,其中較著名的如:Rambaugh, James 的物件塑模技術(Object Modeling Technique, OMT)、Jacobson, Ivar 的物件導向軟體工程(Object-Oriented Software Engineering, OOSE)。
(二)近來,三人的研究成果整合為統一塑模語言(Unified Modeling Language, UML):一種物件導向塑模工具。
陸、其限制之所在
(一)物件設定的範圍限制:
有時某些屬性可以被設定,但是有範圍的限制,,像影片的透明度應該是在0到100之間。當程式設計師傳了一個範圍不對的參數進去時,有時會造成程式無法順利執行,有時得不到預期的效果,也沒有錯誤訊息可以參考。
(二)物件導向語言的門檻高。
(三)物件導向分析難度高,導入期長。
(四)物件導向分析與設計的時間較長。
提到物件導向的缺點並非自我毀滅其存在的價值,物件導向正是為了解決問題而產生的技術,乃因以往分析技術並不會真正的將每一項任務詳細的分解精練,故物件導向之分析設計會花費比較多的時間,但這也究極解決了所有的問題,完整的分析任務與設計系統,並可以不斷的擴充與維護,比起以往的設計技術,物件導向才是企業永續的永恆之道。
參考網址:
1、http://faculty.stut.edu.tw/~pwchen/sa&d/oo-tech.ppt
2、http://www.ncut.edu.tw/cycc/docs/20050406_UML.pdf
3、張裕益,“UML理論與實作---個案研討與經驗分享”,博碩文化股份有限公司,2002。