本書前幾章主要介紹了傳統軟件工程方法,包括
結構化分析(需求)
結構化設計(建模)
結構化實現(編碼、測試)
傳統軟件工程方法首先正確、完整地理解系統需求,然后將系統功能進行分解成一個個模塊,最后編碼實現,因此,傳統方法是面向過程的設計方法,以算法為核心,把數據和處理過程作為相互獨立的部分,數據代表問題域中的實體,而程序代碼則用于處理這些數據。
面向對象方法學
6.1.1
而接下來介紹的面向對象的程序設計方法模仿人類習慣的解題方法,用對象分解取代功能分解,也就是把程序分解成一系列對象,每個對象都既有自己的數據(描述該對象所代表的實體的屬性),又有處理這些數據的函數(通常稱為服務或方法,他們實現該對象應有的行為)。不同對象之間通過發送消息向對方提出服務要求,接收消息的對象主動完成指定功能,提供所要求的服務。程序中所有對象分工合作,共同完成整個程序功能。
6.1.2 設計類等級
類是由一組具有相同數據和方法的對象抽象出來的。例如不同圓心和半徑的一組圓,它們具有相同屬性(圓心和半徑),因此可以抽象出circle這個類。
子類繼承父類中定義的所有東西(屬性和服務),并加進該子類特有的新內容。
6.1.3 定義屬性和服務
①定義屬性:確定每個屬性(數據類型、數據結構、訪問權限)
②定義服務:設計完成每項服務功能算法。設計算法的方法參見傳統方法中的結構化設計
6.2.1 面向對象方法4要點
①用對象分解取代傳統功能分解
②把所有對象都劃分成對象類,每個對象類都定義一組數據和方法
③子類、父類組成一個層次結構的系統(繼承性),低層特性屏蔽高層同名特性
④對象間僅能通過傳遞消息互相通信(封裝性)
面向對象=對象+類+繼承+通信
6.2.2面向對象軟件過程
①陳述對程序的需求
②用面向對象的方法分析需求,確定問題域中對象,并劃分成類
③設計出適當的類等級以及每個類的屬性和服務
④用面向對象編程語言寫出該程序
那么如何用面向對象方法分析需求、定義類、定義類屬性、定義類操作呢?這里就涉及到面向對象的建模方法。包括
①對象建模(核心!):描述系統數據結構。定義類,類的屬性、類的操作
②動態建模:描述系統控制結構。規定對象模型中的對象的合法變化序列(明確規定什么時候做)
③功能建模:指明系統該干什么
最近居然花癡上了陳偉霆(? ???ω??? ?)
不過他真的好帥啊~洗洗睡下花癡一下?˙3˙?(??? ? ???)?˙3˙?