1. 程式人生 > >軟體設計 OOA和OOD的作用及說明

軟體設計 OOA和OOD的作用及說明

Object Oriented Analyzing 面向物件分析  Object Oriented Design 面向物件設計  Object Oriented Programming 面向物件程式設計(或者有的就叫面向物件程式設計,我理解為編碼實現)” 這裡只講了OOA和OOD,OOP的東西稍後再找。 1.OOA OOA的主要工作是軟體的需求,對要解決的問題進行分析,同時建立一些物件的模型,涉及到 ①物件屬性; ②物件和類的靜態結構; ③物件和類動態結構(如狀態圖); 比如一個記事本程式,需要做的事情是能建立、編輯、儲存、開啟。然後我們簡單得分析出需要一個“記事薄”這種物件,它有一些介面如獲取內容、放入內容、修改內容、刪除內容。然後這些內容可以認為是“記事本資料”物件,包含的就是實際資料。
OOA需要儘可能分析出需求、所需要完成的問題,至於問題的解,就在於OOD階段。 2.OOD OOD的主要工作是使用OOA的結果,將OOA得出的問題,給予設計方案解決。 這一階段需要做的是對軟體系統的設計和規劃,包含的工作為: ①問題域部分的設計; 對OOA的物件和類的模型進行細緻修改,詳細考量類的屬性、刪除不必要的類、抽象需要的繼承層次、組織物件的包含結構、物件間訊息的傳遞方式和整體訊息順序安排;
②人機互動與應用控制部分的設計; 互動介面子系統的設計:與介面有關的類及類間結構的設計,以及有關演算法的設計; 互動介面子系統和應用之間介面的設計; 應用控制部分的設計:這部分物件主要完成應用的驅動工作。這部分物件不同於從現實世界中抽象出來的物件,在現實世界和問題域中沒有原型,它們同介面子系統中的物件及問題物件發生作用,控制系統的執行。
OOD階段就需要細緻到軟體的具體實現了,比如我們的記事本有多少種、展現記事本內容的介面有多少種,是否使用繼承方式實現不同的記事本內容的型別。然後是人機互動方面,如何使UI合理的提供互動,是否便於後續的功能擴充套件等。 3.OOA和OOD的區別 我目前的理解是,OOA重點在於業務需求的分析,而OOD需在前述的問題基礎上設計軟體結構