土木工程師構造了很多種模型。通常這些模型能幫助人們可視化并說明系統的各部分以及這些部分之間的相互關系。根據業務或工程中所著重關心的內容(例如為了幫助研究地震時的結構行為)工程師也可以建立動態模型。各種模型的組織是不同的,各有自己的側重點。對于軟件,有幾種建模的方法。最普通的兩種方法是從算法的角度建模和從面向對象的角度建模。
傳統的軟件開發是從算法的角度進行建模。按照這種方法,所有的軟件都用過程或函數作為其主要構造塊。這種觀點導致開發人員把精力集中于控制流程和對大的算法進行分解。這種觀點除了傾向于產生脆弱的系統之外沒有其他本質上的害處。當需求發生變化(總會變化的)以及系統增長(總會增長的)時,用這種方法建造的系統就會變得很難維護。
現代的軟件開發采用面向對象的觀點進行建模。按照這種方法,所有軟件系統都用對象或類作為其主要構造塊。簡單地講,對象通常是從問題空間或解空間的詞匯中抽取出來的東西;類是對具有共同性質的一組對象(從建模者的視角)的描述。每一個對象都有標識(能夠對它命名,以區別于其他對象)、狀態(通常有一些數據與它相聯系)和行為(能對該對象做某些事,它也能為其他對象做某些事)。
例如,可考慮把一個簡單的計賬系統的體系結構分成3層:用戶界面層、業務服務層和數據庫層。在用戶界面層,將找出一些具體的對象,如按鈕、菜單和對話框。在數據庫層,將找出一些具體的對象,例如描述來自問題域實體的表,包括顧客、產品和訂單等。在中間層,將找出諸如交易、業務規則等對象,以及顧客、產品和訂單等問題實體的高層視圖。
可以肯定地說,面向對象方法是軟件開發方法的主流部分,其原因很簡單,因為事實已經證明,它適合于在各種問題域中建造各種規模和復雜度的系統。此外,當前的大多數程序語言、操作系統和工具在一定的方式上都是面向對象的,并給出更多按對象來觀察世界的理由。面向對象的開發為使用構件技術(如J2EE或.NET)裝配系統提供了概念基礎。
選擇以面向對象的方式觀察世界,會產生一系列的問題:什么是好的面向對象的體系結構?項目會創造出什么樣的制品?誰創造它們?怎樣度量它們?
對面向對象系統進行可視化、詳述、構造和文檔化正是統一建模語言(UML)的目的。
新聞熱點
疑難解答