日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[软件工程] 面向对象方法学引论

發(fā)布時間:2023/12/10 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [软件工程] 面向对象方法学引论 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

面向?qū)ο蠓椒▽W引論

  • 面向?qū)ο蠓椒▽W引論
    • 9.1 面向?qū)ο蠓椒ǜ攀?/li>
      • 9.1.1 什么是面向?qū)ο蟮拈_發(fā)方法
      • 9.1.2 面向?qū)ο箝_發(fā)方法的組成
        • OOSD由三部分組成
        • 1、OOA法
          • 對象模型(信息模型)
          • 狀態(tài)模型(動態(tài)模型)
        • 2、OOD 法
        • 3、OOP 法
    • 9.2 面向?qū)ο蟮母拍?/li>
      • 9.2.1 對象
      • 9.2.2 其它概念
        • 1、 類(Class)
        • 2、 繼承 (Inheritance)
        • 3、消息(Message)
        • 4. 多態(tài)性和動態(tài)綁定
        • 5、方法(method)
    • 9.3 面向?qū)ο蠼?/li>
    • 9.4 對象模型
    • 9.5 動態(tài)模型
    • 9.6 功能模型
    • 9.7 3種模型之間的關(guān)系

面向?qū)ο蠓椒▽W引論

面向?qū)ο蟮乃枷胱畛醭霈F(xiàn)于挪威斯陸大學和挪威計算機中心共同研制的Simula 67 語言中,其后,隨著位于美國加利福尼亞的Xerox(施樂) 研究中心推出的Smalltalk–76 和80 語言,面向?qū)ο蟮牡某绦蛟O(shè)計技術(shù)迅猛的發(fā)展。
  到了20世紀90年代,面向?qū)ο蠓椒▽W已經(jīng)成為人們在開發(fā)軟件是首選的成熟的范型,成為當前最好的軟件開發(fā)技術(shù)。
  傳統(tǒng)的軟件工程方法是面向過程的,將數(shù)據(jù)和處理過程分離,求解過程是先對應用領(lǐng)域(問題空間)進行分析,建立起問題空間的邏輯模型,再通過一系列復雜的轉(zhuǎn)換和算法,構(gòu)造計算機系統(tǒng),獲得解空間。
  由于問題空間與解空間的模型、描述方式的不同,存在著復雜的轉(zhuǎn)換過程,需求變化就更難適應。傳統(tǒng)的軟件工程方法難于支持軟件復用。

9.1 面向?qū)ο蠓椒ǜ攀?/h2>

9.1.1 什么是面向?qū)ο蟮拈_發(fā)方法

OOSD(Object-Oriented Software Development)法是一種把面向?qū)ο蟮乃枷霊糜谲浖_發(fā)過程,指導開發(fā)活動的系統(tǒng)方法。
  面向?qū)ο蟮姆椒ㄊ且环N運用對象、類、繼承、封裝、聚合、消息傳送、多態(tài)性等概念來構(gòu)造系統(tǒng)的軟件開發(fā)方法。
什么是面向?qū)ο?br />   根據(jù)Coad和Yourdon的定義,按照以下4個概念設(shè)計和實現(xiàn)的系統(tǒng),稱為是面向?qū)ο蟮摹?
面向?qū)ο?#xff1a; 對象 (object)
      類 (classification)
      繼承(inheritance)
      通信 (communication with messages)
  面向?qū)ο蠹夹g(shù)的特點
   1、對軟件開發(fā)過程所有階段進行綜合考慮。
   2、軟件生存期各階段所使用的方法、技術(shù)具有高度的連續(xù)性,用符合人類認識世界的思維方式來分析、解決問題。
   3、將OOA、OOD、OOP有機地集成在一起。 
     OOA(Object-Oriented Analysis)面向?qū)ο蠓治?br />      OOD( Object-Oriented Design )面向?qū)ο笤O(shè)計
     OOP( Object-Oriented Program )面向?qū)ο蟮某绦蛟O(shè)計

9.1.2 面向?qū)ο箝_發(fā)方法的組成

OOSD由三部分組成

OOSD由三部分組成:
  OOA(Object-Oriented Analysis)面向?qū)ο蟮姆治?br />     強調(diào)的是對一個系統(tǒng)中的對象特征和行為的定義。建立系統(tǒng)的三類(對象、狀態(tài)、處理)模型。

OOD(Object-Oriented Design)面向?qū)ο蟮脑O(shè)計
    與OOA密切配合順序?qū)崿F(xiàn)對現(xiàn)實世界的進一步建模。

OOP (Object-Oriented Program)面向?qū)ο蟮某绦蛟O(shè)計
    是面向?qū)ο蟮募夹g(shù)中發(fā)展最快的,使用面向?qū)ο蟮某绦蛟O(shè)計語言,進行編碼。

1、OOA法

就是要解決“做什么”的問題。OOA 法的基本任務就是要建立三種模型:

對象模型(信息模型)

定義構(gòu)成系統(tǒng)的類和對象,它們的屬性與操作。

狀態(tài)模型(動態(tài)模型)

描述任何時刻對象的聯(lián)系及其聯(lián)系的改變,即時序。常用狀態(tài)圖, 事件追蹤圖描述。
   功能模型(函數(shù)模型)
    描述系統(tǒng)內(nèi)部數(shù)據(jù)的傳送處理。
   顯然,在三大模型中,最重要的是對象模型。

2、OOD 法

在需求分析的基礎(chǔ)上,進一步解決“如何作”的問題,OOD 法也分為概要設(shè)計和詳細設(shè)計。
  概要設(shè)計:細化對象行為,添加新對象,認定類,組類庫,確定外部接口及主要數(shù)據(jù)結(jié)構(gòu)
  詳細設(shè)計:加細對象描述

3、OOP 法

使用面向?qū)ο蟮某绦蛟O(shè)計語言,如C++進行程序設(shè)計。
  Coad和Yourdon給出一個面向?qū)ο蟮亩x:
  面向?qū)ο?#61;對象+類+繼承+消息
  如果一個軟件系統(tǒng)是按照這樣四個概念設(shè)計和實現(xiàn)的,則可以認為這個軟件系統(tǒng)是面向?qū)ο蟮摹?/p>

9.2 面向?qū)ο蟮母拍?/h2>

理解面向?qū)ο蟮幕靖拍顚τ趯W習和掌握面向?qū)ο蟮拈_發(fā)方法是十分重要的。

9.2.1 對象

對象(Object)是客觀事物或概念的抽象表述,即對客觀存在的事物的描述統(tǒng)稱為對象,對象可以是事、物、或抽象概念 ,是將一組數(shù)據(jù)和使用該數(shù)據(jù)的一組基本操作或過程封裝在一起的實體。
   對象都存在一定的狀態(tài)(state),內(nèi)部標識(identity),可以給對象定義一組運算(operation),對象通過其運算所展示的特定行為稱為對象行為(behavior),對象本身的性質(zhì)稱為屬性(attribute),對象將它自身的屬性及運算“包裝起來”,稱為“封裝”(encapsulation).
   對象的最基本的特征是封裝性和繼承性。

9.2.2 其它概念

1、 類(Class)

類又稱對象類(Object Class),是一組具有相同屬性和相同操作的對象的集合。在一個類中,每個對象都是類的實例(instance) ,它們都可以使用類中提供的函數(shù)。
  類具有屬性,用數(shù)據(jù)結(jié)構(gòu)來描述類的屬性,類具有操作,它是對象的行為的抽象,操作實現(xiàn)的過程稱為方法(method) ,方法有方法名,方法體和參數(shù)。
  由于對象是類的實例,在進行分析和設(shè)計時,通常把注意力集中在類上,而不是具體的對象上。

2、 繼承 (Inheritance)

繼承是使用現(xiàn)存的定義作為基礎(chǔ),建立新定義的技術(shù)。是父類和子類之間共享數(shù)據(jù)結(jié)構(gòu)和方法的機制,這是類之間的一種關(guān)系。在定義和實現(xiàn)一個類的時候,可以在一個已經(jīng)存在的類的基礎(chǔ)上來進行,把這個已經(jīng)存在的類所定義的內(nèi)容做為自己的內(nèi)容,并加入若干新內(nèi)容。
繼承性分類:
  單重繼承:一個子類只有一個父類。即子類只繼承一個父類 的數(shù)據(jù)結(jié)構(gòu)和方法。
  多重繼承:一個子類可有多個父類。繼承多個父類的數(shù)據(jù)結(jié) 構(gòu)和方法。

3、消息(Message)

消息就是向?qū)ο蟀l(fā)出的服務請求(互相聯(lián)系、協(xié)同工作等)。對象之間的聯(lián)系可表示為對象間的消息傳遞,即對象間的通訊機制。
  一個消息應該包含以下信息:消息名、接收消息對象的標識、服務標識 、消息和方法、輸入信息、回答信息。
  在對象的操作中當一個消息發(fā)送給某個對象時,消息包含接收對象去執(zhí)行某種操作的消息。
注意:在并發(fā)系統(tǒng)中,多個控制線程(Thread of Control)并發(fā)執(zhí)行,情況就復雜得多,消息可以是發(fā)出服務請求、提交數(shù)據(jù)、發(fā)布事件信息、或是傳遞同步控制信息。

4. 多態(tài)性和動態(tài)綁定

多態(tài)性(Polymorphism)是指相同的操作或函數(shù),過程作用于不同的對象上并獲得不同的結(jié)果。
即相同的操作的消息發(fā)送給不同的對象時,每個對象將根據(jù)自己所屬類中所定義的操作去執(zhí)行,故產(chǎn)生不同的結(jié)果。
例如: “繪圖”操作,作用在“橢圓” 和“矩形” 上,畫出不同的圖形。
動態(tài)綁定(dynamic binding)是在運行時根據(jù)對象接收的消息動態(tài)地確定要連接的服務代碼。

5、方法(method)

類中操作的實現(xiàn)過程稱為方法。
   一個方法包括方法名、參數(shù)及方法體。
  方法描述了類與對象的行為,每一個對象都封裝了數(shù)據(jù)和算法兩個方面,數(shù)據(jù)由一組屬性表示,而算法即是當一個對象接收到一條消息后,它所包含的方法決定對象如何動作。通常是在某種編程語言(如Java、C++)下實施的運算。

9.3 面向?qū)ο蠼?/h2>
  • 用面向?qū)ο蠓椒ǔ晒Φ亻_發(fā)軟件的關(guān)鍵,同樣是對問題域的理解。面向?qū)ο蠓椒ㄗ罨镜脑瓌t,是按照人們習慣的思維方式,用面向?qū)ο笥^點建立問題域的模型,開發(fā)出盡可能自然地表現(xiàn)求解方法的軟件。
  • 用面向?qū)ο蠓椒ㄩ_發(fā)軟件,通常需要建立3種形式的模型,它們分別是描述系統(tǒng)數(shù)據(jù)結(jié)構(gòu)的對象模型,描述系統(tǒng)控制結(jié)構(gòu)的動態(tài)模型和描述系統(tǒng)功能的功能模型。

9.4 對象模型

面向?qū)ο蠓椒◤娬{(diào)圍繞對象而不是圍繞功能來構(gòu)造系統(tǒng)。對象模型為建立動態(tài)模型和功能模型,提供了實質(zhì)性的框架。
  統(tǒng)一建模語言UML;

  • 定義類(屬性、服務)、類的圖形符號;
  • 類與類之間的關(guān)聯(lián)、泛化(繼承)、依賴和細化等關(guān)系及其表示等等。

9.5 動態(tài)模型

動態(tài)模型表示瞬時的、行為化的系統(tǒng)的“控制”性質(zhì),它規(guī)定了對象模型中的對象的合法變化序列。

  • 對一個對象來說,生命周期由許多階段組成,在每個特定階段中,都有適合該對象的一組運行規(guī)律和行為規(guī)則,用以規(guī)范該對象的行為。生命周期中的階段也就是對象的狀態(tài)。
  • 各對象之間相互觸發(fā)就形成了一系列的狀態(tài)變化。我們把一個觸發(fā)行為稱作一個事件。
  • 狀態(tài)與事件密不可分,一個事件分開兩個狀態(tài),一個狀態(tài)隔開兩個事件。事件表示時刻,狀態(tài)代表時間間隔。

9.6 功能模型

功能模型表示變化的系統(tǒng)的“功能”性質(zhì),它指明了系統(tǒng)應該“做什么”,因此更直接地反映了用戶對目標系統(tǒng)的需求。

  • 功能模型由一組數(shù)據(jù)流圖組成。在面向?qū)ο蠓椒▽W中,數(shù)據(jù)流圖遠不如在結(jié)構(gòu)分析、設(shè)計方法中那樣重要。
  • 同對象模型和動態(tài)模型比較,數(shù)據(jù)流圖并沒有增加新的信息,但是,建立功能模型有助于軟件開發(fā)人員更深入地理解問題域,改進和完善自己的設(shè)計。
  • 因此,不能完全忽視功能模型的作用。
  • 9.7 3種模型之間的關(guān)系

    對象模型、動態(tài)模型、功能模型分別從3個不同側(cè)面描述了所要開發(fā)的系統(tǒng)。
      這3種模型相互補充、相互配合,使得我們對系統(tǒng)的認識更加全面:
      功能模型指明了系統(tǒng)應該“做什么”;
      動態(tài)模型明確規(guī)定了什么時候(即在何種狀態(tài)下接受了什么事件的觸發(fā))做;
      對象模型則定義了做事情的實體。
    其中,對象模型是最基本最重要的,它為其他兩種模型奠定了基礎(chǔ),我們依靠對象模型完成3種模型的集成。
     (1)針對每個類建立的動態(tài)模型,描述了類實例的生命周期或運行周期。
     (2)狀態(tài)轉(zhuǎn)換驅(qū)使行為發(fā)生,這些行為在數(shù)據(jù)流圖中被映射成處理,在用例圖中被映射成用例,它們同時與類圖中的服務相對應。
     (3)功能模型中的處理(或用例)對應于對象模型中的類所提供的服務。
     (4)數(shù)據(jù)流圖中的數(shù)據(jù)存儲,以及數(shù)據(jù)的源點/終點,通常是對象模型中的對象。
     (5)數(shù)據(jù)流圖中的數(shù)據(jù)流,往往是對象模型中對象的屬性值,也可能是整個對象。
     (6)用例圖中的行為者,可能是對象模型中的對象。
     (7)功能模型中的處理(或用例)可能產(chǎn)生動態(tài)模型中的事件。
     (8)對象模型描述了數(shù)據(jù)流圖中的數(shù)據(jù)流、數(shù)據(jù)存儲以及數(shù)據(jù)源點/終點的結(jié)構(gòu)。

    總結(jié)

    以上是生活随笔為你收集整理的[软件工程] 面向对象方法学引论的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 91亚洲精品国偷拍自产在线观看 | 成人黄色在线免费观看 | www.av天天| 日本亲与子乱人妻hd | 少妇一级免费 | 日韩电影中文字幕 | 后进极品美女白嫩翘臀 | 亚洲xx在线| 国产精品一区二区久久毛片 | 日本少妇bbwbbw精品 | 日日做夜夜爽毛片麻豆 | 又粗又大又硬毛片免费看 | a免费观看| 国产老妇伦国产熟女老妇视频 | 日韩精品久久一区二区 | 漂亮人妻被黑人久久精品 | 福利在线网站 | 国产xxxx在线观看 | 久久久新| 中文字幕在线观看视频www | 8x国产一区二区三区精品推荐 | 国产综合视频一区 | 第色| 四虎一国产精品一区二区影院 | 成人在线视频观看 | 91麻豆精品一二三区在线 | 国产高清免费视频 | 国产内射合集颜射 | 黄色小说在线观看视频 | 韩国中文字幕hd久久精品 | 美女扒开粉嫩尿口 | 五级 黄 色 片 | 国产在线拍揄自揄拍无码视频 | 日韩草逼 | 欧美色图五月天 | 亚洲综合免费观看高清完整版在线 | 国产高清在线视频 | 日本护士取精xxxxxhd | 亚洲永久网站 | 美女被出白浆 | 伊人久久大 | 亚洲女人天堂成人av在线 | 精品中文字幕在线播放 | 91国偷自产一区二区三区老熟女 | 色94色欧美sute亚洲线路二 | 漂亮人妻洗澡被公强 日日躁 | 婷婷影音| 亚洲欧美中文日韩在线v日本 | 成人www视频| 国产精品欧美亚洲 | 香蕉视频一区二区三区 | 欧美三区四区 | 天天操妹子 | 国产黄色三级网站 | 国产草草影院ccyycom | 99r在线视频 | av老司机在线播放 | 骚虎视频最新网址 | 丁香色综合 | 狠色综合 | 在线免费观看中文字幕 | 天天看黄色片 | 干操网 | 国产91黄色 | 中文在线视频 | 澳门免费av | 久久久久国产视频 | 日韩免费av | 中文字幕免费高清在线观看 | 韩国一区二区在线观看 | 91av欧美| 四虎影像| 在线观看中文字幕一区二区 | 少妇视频一区二区三区 | 天天碰天天碰 | 国产精品久久久久久在线观看 | 午夜爽爽爽视频 | 久久国产精品久久 | 久久高清无码电影 | 久久小草 | 极品少妇av | 欧美激情一级精品国产 | 国产日韩一区二区在线观看 | 国产97在线观看 | 2020国产精品视频 | 91在线观看视频 | 欧洲三级视频 | 6080午夜伦理 | 西方裸体在线观看 | 久久国产一区二区 | 精品一二三四区 | 国产成人精品av | 亚洲午夜影视 | 国产一区二区三区影视 | 亚洲暴爽| 亚洲系列| 一本大道东京热无码 | 天天射网站 | 色播在线播放 |