posts - 1,  comments - 25,  trackbacks - 0
          OOA與OOD的區別
          上討論了OOA階段和OOD階段所應完成的主要工作,由于這兩個階段的劃分沒有公認
          的標準,有些工作是在OOA階段完成還是在OOD階段完成還存在著爭議。有人認為OOA和
          OOD可以交叉進行;有人認為OOD是對OOA結果的改進和細化,所以只提OOA;有人則更
          強調OOD。盡管OOA和OOD存在著某些交叉和聯系,但它們之間仍有許多差別,如:
          1)OOA將現實世界中的實體抽象為問題對象,并構造問題域中的系統需求模型;OOD將
          問題對象轉化為解域中的類并在解域中構造出問題的解。
          2)OOA側重于用戶需求的分析和對問題域的理解,分析人員關心的是系統結構及對象間
          的關系;OOD則側重于系統的實現,設計人員關心的是對象的行為及其實現。
          3)OOA標識了一組對象,并通過其相互作用來刻劃系統,該階段的工作與程序設計語言
          無關;OOD定義了一組類,并設計出系統的實現藍圖,概要設計與程序設計語言無關,但詳細
          設計則與之有比較密切的聯系。(
          4)OOA識別的對象是對客觀世界實體的抽象,標識對象的準則是:該對象的引入是否有助于對問題域的理解;OOD中構造類的準則是:該類的構造是否可行,是否有效地實現了抽象
          數據類型,是否有助于系統的實現和提高軟件質量。(
          5)兩個階段都沒有提及系統對象,但原因不同。在OOA階段,分析與實現無關,分析所涉
          及的范圍與解域無關,系統對象自然不用考慮。OOD建立的對象模型本身就是要設計的軟件
          系統,對系統對象的考慮是隱含的。
          6)組裝結構和分類結構在兩個階段所起的作用不同。在OOA階段,它們的引入主要是為
          了理解問題;而在OOD階段,它們的引入則主要是針對軟件的構造和實現。分類結構通過繼
          承機制來實現,因而代碼得到了有效地復用;組裝結構則將一些類組合在一起構成較大的軟件
          構件。
          7)OOA并沒有考慮對象的產生問題,當其對應的實體在現實世界中出現時,它也就在問
          題域中產生了。OOA也不考慮對象屬性的取值和服務算法的實現。而在OOD階段這些問題
          都必須詳細考慮。
          8)OOD涉及到重載問題;而OOA沒有考慮,因為考慮過多的實現細節對理解問題和分
          析用戶需求沒有多大幫助。
          posted on 2009-03-31 15:37 Daniel 閱讀(331) 評論(1)  編輯  收藏 所屬分類: CoreJava

          FeedBack:
          # re: Difference between OOA and OOD
          2009-04-22 16:45 | hansen
          大家一起灌水了!  回復  更多評論
            
          <2025年8月>
          272829303112
          3456789
          10111213141516
          17181920212223
          24252627282930
          31123456

          常用鏈接

          留言簿(3)

          隨筆檔案

          文章分類

          文章檔案

          相冊

          搜索

          •  

          最新評論

          主站蜘蛛池模板: 宜兰市| 桑植县| 客服| 施秉县| 富阳市| 安阳市| 南和县| 随州市| 正镶白旗| 璧山县| 绥芬河市| 蓝田县| 兴安县| 卫辉市| 峨眉山市| 天峻县| 南通市| 永定县| 新乡县| 修水县| 淳安县| 清苑县| 扎囊县| 横山县| 邵阳县| 扎赉特旗| 平陆县| 顺平县| 三河市| 和平县| 中方县| 萝北县| 西畴县| 遂溪县| 酉阳| 高要市| 凤庆县| 清水河县| 滨州市| 峨眉山市| 民和|