面向?qū)ο筌浖_發(fā)技術(shù)_第1頁
面向?qū)ο筌浖_發(fā)技術(shù)_第2頁
面向?qū)ο筌浖_發(fā)技術(shù)_第3頁
面向?qū)ο筌浖_發(fā)技術(shù)_第4頁
面向?qū)ο筌浖_發(fā)技術(shù)_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第第3章章 面向?qū)ο筌浖_發(fā)技術(shù)面向?qū)ο筌浖_發(fā)技術(shù) 本章簡(jiǎn)介本章介紹面向?qū)ο蟪绦蛟O(shè)計(jì)語言、軟件開發(fā)的方法與過程、面向?qū)ο蟮姆治雠c設(shè)計(jì)的軟件開發(fā)方法,面向?qū)ο蟮能浖_發(fā)方法與UML模型的關(guān)系,對(duì)UML圖在軟件開發(fā)階段所處的位置也作簡(jiǎn)要說明。 面向?qū)ο缶幊陶Z言 面向?qū)ο蟾拍畹挠蓙鞳OP的簡(jiǎn)史C+語言Java語言當(dāng)前新推出的IDE幾乎都是面向?qū)ο蟮?,例如,Oracle9i JDeveloper,C+ Builder。軟件開發(fā)的方法與過程 軟件開發(fā)的方法與過程,描述了在系統(tǒng)開發(fā)過程中各開發(fā)階段之間的順序,以及從前一階段到后一階段的過渡原則。 軟件開發(fā)的方法定義了一種設(shè)計(jì)與實(shí)現(xiàn)軟件的方法,并確定了需要

2、執(zhí)行的任務(wù)以及這些任務(wù)的輸出。 過程要定義一個(gè)在組織中開發(fā)軟件需要執(zhí)行的任務(wù)序列,這可能會(huì)包括技術(shù)性的與非技術(shù)性的內(nèi)容。 瀑布模型(Waterfall Model)。 面向?qū)ο蟮南到y(tǒng)開發(fā)模型,例如,螺線模型(Spiral Model)。 結(jié)構(gòu)性的方法定義了功能分解、建立數(shù)據(jù)流程圖以及過程圖。面向?qū)ο蠓椒▌t需要建立類與對(duì)象圖,建立類的狀態(tài)轉(zhuǎn)換圖,以及建立消息序列圖 瀑布模型 瀑布模型定義了軟件開發(fā)周期中基本的過程和步驟,并就它們的作用與順序提供了指導(dǎo)。 瀑布模型將軟件系統(tǒng)的開發(fā)分為7個(gè)階段:需求匯總、分析、結(jié)構(gòu)設(shè)計(jì)、系統(tǒng)設(shè)計(jì)、實(shí)現(xiàn)、測(cè)試、配置并操作,如圖3.1所示。 瀑布模型 螺線模型 螺線模型

3、是瀑布模型與快速原型方法的結(jié)合,因而具有兩種方法的優(yōu)點(diǎn)。 螺線模型是由分析、設(shè)計(jì)、實(shí)現(xiàn)和測(cè)試4個(gè)部分組成的迭代模型,每一個(gè)周期都是一次迭代過程。每迭代一次,系統(tǒng)就生成一個(gè)新版本,軟件開發(fā)就前進(jìn)一個(gè)層次。 螺線模型提供了大型軟件設(shè)計(jì)的宏觀過程,在早期就注意到軟件重用、軟件進(jìn)化和快速原型螺線模型 分析設(shè)計(jì)實(shí)現(xiàn)測(cè)試面向?qū)ο筌浖_發(fā)方法 面向?qū)ο筌浖_發(fā)方法就是將面向?qū)ο蠹夹g(shù)應(yīng)用于軟件開發(fā)的整個(gè)過程,包括OOA、OOD和OOP。 在分析階段要確定系統(tǒng)做什么,要對(duì)現(xiàn)實(shí)世界中的概念進(jìn)行抽象,構(gòu)造出對(duì)象和類; 在設(shè)計(jì)階段要確定系統(tǒng)如何實(shí)現(xiàn)預(yù)期目標(biāo),要把分析階段的模型進(jìn)行分解和細(xì)化,得到系統(tǒng)實(shí)施的具體方案。這

4、樣,設(shè)計(jì)的結(jié)果很容易用面向?qū)ο蟮某绦蛟O(shè)計(jì)語言來實(shí)現(xiàn)。 面向?qū)ο蟮姆治?面向?qū)ο蟮姆治龇椒▽④浖到y(tǒng)描述成一組對(duì)象的集合,采用抽象的對(duì)象模型、記號(hào)系統(tǒng)和方法。 主要的面向?qū)ο蟮姆治龇椒ㄓ校篊oad與Yourdon的面向?qū)ο蟮姆治龇椒?、Bailin的面向?qū)ο蟮慕Y(jié)構(gòu)化分析方法和Shlaer與Mellor的面向?qū)ο蟮姆治龇椒ā?Coad與Yourdon的面向?qū)ο蠓治龇椒ǚ譃?個(gè)步驟:發(fā)現(xiàn)對(duì)象和類、標(biāo)識(shí)結(jié)構(gòu)、定義主題詞、描述屬性、描述外部服務(wù)(操作) 1發(fā)現(xiàn)對(duì)象和類 Coad與Yourdon的OOA方法中,用粗圓角的方框表示類,分為3個(gè)部分,分別放類名、屬性和操作;類的對(duì)象用細(xì)的方框來表示。在使用這種方

5、法進(jìn)行分析時(shí),不必拘泥于Coad與Yourdon的表示方法,可以采用UML中的表示方法來表示類和對(duì)象。 2標(biāo)識(shí)結(jié)構(gòu) 在Coad與Yourdon的OOA方法中,將一般 特殊結(jié)構(gòu)用半圓記號(hào)表示,一般的類在上,特殊的類在下,半圓指向一般化的類。用三角記號(hào)表示整體 部分結(jié)構(gòu),用連線連接對(duì)象,整體對(duì)象在上,部分對(duì)象在下?,F(xiàn)在,各種方法的表示都可以統(tǒng)一為UML表示法,所以在標(biāo)識(shí)結(jié)構(gòu)時(shí),也可以采用UML中的表示方法。 3定義主題詞 在現(xiàn)實(shí)的系統(tǒng)中,往往存在大量的對(duì)象和結(jié)構(gòu),因此要加上一個(gè)主題層,對(duì)問題空間進(jìn)行高度概括和總結(jié),從一個(gè)更高的角度來考查整個(gè)系統(tǒng)。定義主題時(shí),首先要找出系統(tǒng)中最主要的類,然后按問題的

6、子領(lǐng)域來對(duì)這些候選主題進(jìn)行篩選,并考慮主題間的相互依賴和交互作用,使彼此的相互影響達(dá)到最小。 4描述屬性屬性是描述類中每個(gè)對(duì)象的特征的數(shù)據(jù)。要從有關(guān)問題領(lǐng)域與系統(tǒng)責(zé)任的描述中識(shí)別屬性,并通過一般 特殊結(jié)構(gòu)中的繼承關(guān)系,將屬性放到適當(dāng)?shù)奈恢?。為每個(gè)屬性確定一個(gè)易理解的名字,加上一些描述以及對(duì)屬性說明的約束。 5. 描述外部服務(wù)一般情況下,對(duì)象包含的操作主要有:對(duì)象的創(chuàng)建與初始化、對(duì)象的連接、存取對(duì)象的屬性值、釋放對(duì)象、計(jì)算、監(jiān)督等。用適當(dāng)?shù)拿謥順?biāo)識(shí)這些操作,并加上適當(dāng)?shù)奈淖只驁D表說明。最后,將所有的OOA文檔匯集起來,包括:5層OOA模型(主題、類 對(duì)象、結(jié)構(gòu)、屬性和操作)、類 對(duì)象說明和必要

7、的輔助文檔。 面向?qū)ο蟮脑O(shè)計(jì) 面向?qū)ο蟮脑O(shè)計(jì)是把分析階段得到的需求轉(zhuǎn)變成符合成本和質(zhì)量要求的、抽象的系統(tǒng)實(shí)現(xiàn)方案的過程。從分析到設(shè)計(jì),是一個(gè)逐漸擴(kuò)充模型的過程?;蛘哒f,面向?qū)ο蟮脑O(shè)計(jì)就是用面向?qū)ο蟮挠^點(diǎn)建立求解域模型的過程。 Coad和Yourdon的OOD方法 Coad和Yourdon提出的OOD方法,由4部分組成:?jiǎn)栴}領(lǐng)域部件設(shè)計(jì)、用戶界面部件設(shè)計(jì)、任務(wù)管理部件設(shè)計(jì)和數(shù)據(jù)管理部件設(shè)計(jì)。每個(gè)部件由主題詞、對(duì)象及類、結(jié)構(gòu)、屬性和外部服務(wù)5層組成,如圖3.3所示。 設(shè)計(jì)階段的四個(gè)組成部分 Wirfs Brock的責(zé)任驅(qū)動(dòng)設(shè)計(jì) Wirfs Brock的責(zé)任驅(qū)動(dòng)設(shè)計(jì)方法,也稱為CRC方法,其核心是用

8、類所承擔(dān)的責(zé)任來描述系統(tǒng)。這種方法采用責(zé)任把封裝的概念帶到分析與設(shè)計(jì)的活動(dòng)中去,通過客戶 服務(wù)器模型來改進(jìn)封裝性。 可以采用CRC卡來記錄初始的設(shè)計(jì)。每個(gè)類寫在一張卡上,類的名字在頂部,責(zé)任寫在左邊,完成責(zé)任時(shí)需要為其提供服務(wù)的合作者的類名寫在責(zé)任的右邊,如圖3.4所示。 CRC卡 Booch的OOD 其方法主要包括以下步驟:(1)標(biāo)識(shí)類與對(duì)象。(2)標(biāo)識(shí)類與對(duì)象的語義。(3)標(biāo)識(shí)類與對(duì)象之間的關(guān)系。(4)實(shí)現(xiàn)類與對(duì)象。 對(duì)象模型化技術(shù) OMT以面向?qū)ο笏枷霝榛A(chǔ),通過構(gòu)造一組相關(guān)的模型來確定系統(tǒng)的需求、有關(guān)的設(shè)計(jì)和實(shí)現(xiàn)原則,再將問題領(lǐng)域的分析模型變換成實(shí)現(xiàn)領(lǐng)域的計(jì)算機(jī)模型。 在OMT方法中,

9、主要用到3種面向?qū)ο筌浖P停簩?duì)象模型、動(dòng)態(tài)模型和功能模型對(duì)象模型化技術(shù)對(duì)象模型主要描述系統(tǒng)中對(duì)象的靜態(tài)結(jié)構(gòu),表示系統(tǒng)中的對(duì)象、類及之間的靜態(tài)聯(lián)系,包括分析對(duì)象模型和設(shè)計(jì)對(duì)象模型。分析對(duì)象模型描述了問題領(lǐng)域中的類、類的屬性、操作以及類之間的繼承、聚集和關(guān)聯(lián)關(guān)系。設(shè)計(jì)對(duì)象模型描述了實(shí)現(xiàn)領(lǐng)域中的類、類的屬性、方法和類之間的繼承、聚集和依賴等關(guān)系。 對(duì)象模型化技術(shù)在UML中,將各種方法使用的符號(hào)進(jìn)行了統(tǒng)一,因此現(xiàn)在可以使用UML表示法來描述對(duì)象模型。 動(dòng)態(tài)模型描述了系統(tǒng)中的動(dòng)態(tài)行為,即與時(shí)間有關(guān)的方面以及操作發(fā)生的順序。動(dòng)態(tài)模型用狀態(tài)轉(zhuǎn)換圖表示,每個(gè)狀態(tài)轉(zhuǎn)換圖描述了系統(tǒng)中對(duì)一個(gè)類的對(duì)象允許的事件和狀

10、態(tài)序列。圖中的事件對(duì)應(yīng)于對(duì)象模型中的操作,而動(dòng)作則對(duì)應(yīng)于功能模型中的功能。 對(duì)象模型化技術(shù)功能模型用數(shù)據(jù)流圖來表示,描述了系統(tǒng)中與值轉(zhuǎn)換有關(guān)的情況,包括函數(shù)、映射、約束和功能性依賴。動(dòng)態(tài)模型和功能模型都是對(duì)象模型的補(bǔ)充。 OMT設(shè)計(jì)方法包括分析、系統(tǒng)設(shè)計(jì)和對(duì)象設(shè)計(jì)3個(gè)步驟。 對(duì)象模型化技術(shù)分析階段要對(duì)描述系統(tǒng)需求的問題陳述進(jìn)行處理,產(chǎn)生一個(gè)形式化的模型,描述系統(tǒng)中的對(duì)象、對(duì)象之間的關(guān)系、動(dòng)態(tài)的控制流和數(shù)據(jù)的函數(shù)性轉(zhuǎn)換。系統(tǒng)設(shè)計(jì)階段決定系統(tǒng)的整體結(jié)構(gòu),以對(duì)象模型為依據(jù),將系統(tǒng)劃分成子系統(tǒng),并實(shí)現(xiàn)并發(fā)在對(duì)象設(shè)計(jì)階段,要設(shè)計(jì)系統(tǒng)中主要函數(shù)的實(shí)現(xiàn)算法,對(duì)分析模型進(jìn)行求精和優(yōu)化,產(chǎn)生一個(gè)實(shí)用的設(shè)計(jì)方案。

11、 設(shè)計(jì)模式 設(shè)計(jì)模式通常包括模式的描述、UML圖,模式要解決的問題范圍、范例代碼、其他競(jìng)爭(zhēng)的設(shè)計(jì)模式選擇、這些選擇中的有關(guān)協(xié)定等。設(shè)計(jì)模式正在成為通用的解決方案,因?yàn)樗苋菀讘?yīng)用于特殊的軟件開發(fā)項(xiàng)目之中 UML模型和視圖 UML(Unified Modeling Language,統(tǒng)一建模語言)是一種用于建立商業(yè)模型及軟件系統(tǒng)模型的標(biāo)準(zhǔn)語言和圖形符號(hào),它能以圖表方式對(duì)軟件系統(tǒng)進(jìn)行可視化描述,是“軟件分析與設(shè)計(jì)中的標(biāo)準(zhǔn)語言”。 UML定義了一種抽象的用來描述軟件系統(tǒng)結(jié)構(gòu)和行為的語言,還定義了一種標(biāo)準(zhǔn)的用來建立模型元素視圖的圖形符號(hào)。一般地,可以將UML標(biāo)準(zhǔn)圖分為結(jié)構(gòu)圖和行為圖。 1UML結(jié)構(gòu)圖

12、(1)類圖(Class Diagrams) 描述系統(tǒng)中一組類和接口間的靜態(tài)關(guān)系,這些關(guān)系既包括類之間的繼承關(guān)系,也包括類之間的關(guān)聯(lián)關(guān)系。(2)對(duì)象圖(Object Diagrams) 提供在指定時(shí)刻位于類實(shí)例間的關(guān)系的快照視圖。在以一種靜態(tài)的方法保存并說明系統(tǒng)內(nèi)復(fù)雜的動(dòng)態(tài)時(shí),對(duì)象圖會(huì)很有用。 (3)組件圖(Compenent Diagrams) 描述系統(tǒng)的靜態(tài)實(shí)現(xiàn)視圖,顯示了一組組件和它們之間的關(guān)系。組件代表的是模型中邏輯抽象的物理實(shí)現(xiàn),例如,類和它們的交互。(4)部署圖(Deployment Diagrams) 描述在一個(gè)系統(tǒng)結(jié)構(gòu)視圖中物理節(jié)點(diǎn)的鏈接,節(jié)點(diǎn)是為執(zhí)行一個(gè)或多個(gè)組件提供物理操作環(huán)

13、境的計(jì)算資源。 2UML行為圖 (1)用例圖(Use Case Diagrams) 通過描述一組用例與其執(zhí)行者之間的關(guān)系,為系統(tǒng)、子系統(tǒng)或類的行為建立模型。(2)活動(dòng)圖(Activity Diagrams) 顯示了一個(gè)系統(tǒng)的活動(dòng)流,包括從活動(dòng)到活動(dòng)的連續(xù)流,以及執(zhí)行這些活動(dòng)或由這些活動(dòng)產(chǎn)生的對(duì)象。 (3)狀態(tài)圖(Statechart Diagrams) 描述一系列對(duì)象的內(nèi)部狀態(tài)以及狀態(tài)的變化和轉(zhuǎn)移,常用于給對(duì)象的事件順序行為建模。(4)順序圖(Sequence Diagrams) 通過強(qiáng)調(diào)消息的時(shí)間順序,描述對(duì)象間的相互關(guān)系。這些對(duì)象是類的典型實(shí)例,且可以描述其他的分類者,例如,執(zhí)行者、組件或節(jié)點(diǎn)。(5)協(xié)作圖(Collaboration Diagrams

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論