理解了類和對象的概念之后,我們開始進行類的設計,那么,應該怎么在現實世界當中發現類呢?例如有這樣的背景:開發學生選課系統,要求能夠單獨對學生信息、課程信息進行維護,還要求能夠維護某學生選擇某些課程。根據以上的描述,我們可以看到上面的描述中有很多名詞,例如:學生、課程等。從這些名詞當中就可以發現類,例如:學生類、課程類。所有的學生都有學號、姓名、性別、出生日期等屬性,所有的課程都有課程編號、課程名字等屬性。
如果我們發現了類,并且發現了類中的屬性和方法,那么應該以什么形式展現出來呢,在團隊協作開發中應該如何讓其他項目組成員知曉你的設計呢,恐怕這個時候就需要使用UML了。Unified Modeling Language (UML)又稱統一建模語言或標準建模語言,是始于1997年一個OMG標準,它是一個支持模型化和軟件系統開發的圖形化語言,為軟件開發的所有階段提供模型化和可視化支持,包括由需求分析到規格,到構造和配置。 面向對象的分析與設計(OOA&D,OOAD)方法的發展在80年代末至90年代中出現了一個高潮,UML是這個高潮的產物。它不僅統一了Booch、Rumbaugh和Jacobson的表示方法,而且對其作了進一步的發展,并最終統一為大眾所接受的標準建模語言。UML規范用來描述建模的概念有:類、對象、關聯、職責、行為、接口、用例、包、順序、協作,以及狀態。
其實軟件開發和現實生活當中的建造大樓是一樣的,在建造大樓之前需要進行前期的設計,這個時候就需要建筑工程師畫圖紙,圖紙上畫的都是一些符合某些標準的符號,負責建筑的人員一定是能夠看懂這些標準符號的。而UML就是在軟件開發方面的一種圖標式語言,程序員在進行系統設計的時候,需要畫出UML建模圖,程序員根據UML建模圖進行開發。
那么能夠實現UML圖的工具有哪些呢?例如:IBM Rational Rose、PowerDesigner、StarUML、MS Visio等,我們接下來使用Rational Rose工具畫一個類出來。請看下圖:
圖8-2:學生類的設計
通過以上類圖,我們可以看到一個學生有學號、姓名、年齡、性別屬性,并且有一個考試的方法。其中學號采用整數型,姓名采用字符串類型,年齡采用整數型,性別采用布爾型,考試返回值類型設計為浮點型double。
請大家注意,該小節內容屬于了解內容,目前還不需要掌握怎么畫這些圖,只要知道從名詞中發現類,系統開發初期需要進行類的設計,而設計的時候就需要使用UML進行建模,了解幾個常見的建模工具就行了。