軟件設(shè)計(jì)與標(biāo)準(zhǔn)體系結(jié)構(gòu)_第1頁(yè)
軟件設(shè)計(jì)與標(biāo)準(zhǔn)體系結(jié)構(gòu)_第2頁(yè)
軟件設(shè)計(jì)與標(biāo)準(zhǔn)體系結(jié)構(gòu)_第3頁(yè)
軟件設(shè)計(jì)與標(biāo)準(zhǔn)體系結(jié)構(gòu)_第4頁(yè)
軟件設(shè)計(jì)與標(biāo)準(zhǔn)體系結(jié)構(gòu)_第5頁(yè)
已閱讀5頁(yè),還剩1頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)指是數(shù)據(jù)之間相互關(guān)系,即數(shù)據(jù)組織形式。數(shù)據(jù)結(jié)構(gòu)是計(jì)算機(jī)存放、組織數(shù)據(jù)方法。數(shù)據(jù)結(jié)構(gòu)是指相互之間存在一種或多個(gè)特定關(guān)系數(shù)據(jù)元素集合。通常情況下,精心選擇數(shù)據(jù)結(jié)構(gòu)能夠帶來(lái)更高運(yùn)行或存放效率。數(shù)據(jù)結(jié)構(gòu)往往同高效檢索算法和索引技術(shù)相關(guān)。我們把數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)、數(shù)據(jù)庫(kù)設(shè)計(jì)、甚至數(shù)據(jù)文件設(shè)計(jì)等統(tǒng)一稱(chēng)為數(shù)據(jù)模型設(shè)計(jì)。在數(shù)據(jù)模型設(shè)計(jì)中有一個(gè)關(guān)鍵概念:持久數(shù)據(jù)操作,它包含寫(xiě)入、查詢(xún)、更新和刪除四類(lèi)基礎(chǔ)操作和由它們復(fù)合而成業(yè)務(wù)數(shù)據(jù)操作。在很多軟件系統(tǒng)中,數(shù)據(jù)是其關(guān)鍵,所以,對(duì)數(shù)據(jù)元素格式、結(jié)構(gòu)、訪存、表示等機(jī)制進(jìn)行良好建模和優(yōu)化,是提升軟件設(shè)計(jì)質(zhì)量和系統(tǒng)性能基礎(chǔ),對(duì)軟件系統(tǒng)應(yīng)用含相關(guān)鍵意義。面向組件設(shè)計(jì)面向組件思想是在軟件規(guī)模擴(kuò)大,復(fù)雜度上升背景下,以面向?qū)ο鬄榛A(chǔ)而提出一個(gè)軟件設(shè)計(jì)思想。能夠把它了解為一個(gè)更粗粒度面向?qū)ο?,其粒度通常大于?duì)象,但具體要到什么程度,又能夠依據(jù)實(shí)際情況來(lái)決定。這種思想以組件為基礎(chǔ),強(qiáng)調(diào)“服務(wù)”概念。在面向組件開(kāi)發(fā)中,應(yīng)用程序是由一系列能夠相互交互二進(jìn)制模塊組合而成。一個(gè)具體二進(jìn)制組件可能并不能完成什么工作。有些組件是為了提供部分常規(guī)服務(wù)而編寫(xiě),比如通信封裝或文件訪問(wèn)組件。也有部分是為了一些特定應(yīng)用而專(zhuān)門(mén)開(kāi)發(fā)。一個(gè)應(yīng)用程序設(shè)計(jì)者能夠經(jīng)過(guò)把這些不一樣組件提供功效粘合在一起來(lái)實(shí)現(xiàn)她們需要商業(yè)邏輯。很多面向組件技術(shù)——比如:COM、J2EE、CORBA和.NET全部為二進(jìn)制組件提供了無(wú)縫鏈接機(jī)制。而唯一不一樣就是你需要在組件通信上花費(fèi)力氣。通常多用于對(duì)dll,lib處理上。簡(jiǎn)單說(shuō),就是QQ、迅雷和IE捆綁起來(lái)就叫面向組件。面向組件含有以下特點(diǎn):低耦合性,高重用性,高互操作性,進(jìn)程透明性,語(yǔ)言和開(kāi)發(fā)環(huán)境獨(dú)立性軟件體系結(jié)構(gòu)風(fēng)格軟件體系結(jié)構(gòu)風(fēng)格是軟件設(shè)計(jì)人員在長(zhǎng)久軟件設(shè)計(jì)過(guò)程中總結(jié)出來(lái)部分規(guī)律性東西,經(jīng)過(guò)提煉總結(jié)而成。軟件體系結(jié)構(gòu)風(fēng)格是軟件體系結(jié)構(gòu)設(shè)計(jì)上模式,所以能夠看作是一個(gè)廣義軟件設(shè)計(jì)模式,但通常不認(rèn)為是俠義軟件設(shè)計(jì)模式。定義:在構(gòu)件和連接子層次描述可反復(fù)使用軟件設(shè)計(jì)問(wèn)題處理方案。管道/過(guò)濾器風(fēng)格:一個(gè)顯著特征是:系統(tǒng)中構(gòu)件之間經(jīng)過(guò)數(shù)據(jù)流松散耦合。也就是說(shuō),構(gòu)件之間依靠?jī)H僅是數(shù)據(jù)流,而不是通常接口函數(shù)調(diào)用火消息傳輸。編譯器采取也是管道/過(guò)濾器風(fēng)格層次風(fēng)格:這種設(shè)計(jì)風(fēng)格便于將復(fù)雜系統(tǒng)進(jìn)行分解;同時(shí)也便于構(gòu)件替換:只要保持接口一致,就能夠?qū)⒛骋粚榆浖鎿Q,而不會(huì)影響到系統(tǒng)其它部分。層次風(fēng)格優(yōu)點(diǎn)是結(jié)構(gòu)清楚、可替換性好、便于控制復(fù)雜性;但也有缺點(diǎn),如效率低。用戶(hù)/服務(wù)器風(fēng)格:從向外提供服務(wù)構(gòu)件出發(fā),沿著連接關(guān)系遞次搜索各構(gòu)件和連接子,假如形成拓?fù)浣Y(jié)構(gòu)是一棵倒置樹(shù),那么這個(gè)系統(tǒng)體系結(jié)構(gòu)就是用戶(hù)/服務(wù)器風(fēng)格,這種風(fēng)格使得服務(wù)功效實(shí)現(xiàn)很集中,便于系統(tǒng)實(shí)現(xiàn),所以得到廣泛使用。軟件開(kāi)發(fā)過(guò)程模型軟件生存周期包含了軟件從概念形成到最終退伍全部活動(dòng),而對(duì)于一個(gè)含有軟件項(xiàng)目,開(kāi)發(fā)人員愈加關(guān)注是開(kāi)發(fā)過(guò)程中包含活動(dòng)和其具體安排。軟件開(kāi)發(fā)是一個(gè)復(fù)雜過(guò)程,尤其是在多數(shù)項(xiàng)目開(kāi)發(fā)中,不能一次就全部、正確地生成需求規(guī)格說(shuō)明,所以軟件開(kāi)發(fā)各個(gè)階段之間關(guān)系極少是嚴(yán)格線性次序,相反應(yīng)該是帶有反饋迭代過(guò)程。這種對(duì)軟件開(kāi)發(fā)中對(duì)所含活動(dòng)安排方法,能夠用軟件開(kāi)發(fā)過(guò)程模型表示。它給出了軟件開(kāi)發(fā)中各個(gè)活動(dòng)之間關(guān)系,它是軟件開(kāi)發(fā)過(guò)程概括,是軟件工程關(guān)鍵內(nèi)容。它能為軟件工程管理提供里程碑和進(jìn)度表,為軟件開(kāi)發(fā)過(guò)程提供標(biāo)準(zhǔn)和方法。經(jīng)典軟件開(kāi)發(fā)模型大致可分為三種類(lèi)型:第一個(gè)是以軟件需求完全確定為前提瀑布模型;第二種是在軟件開(kāi)發(fā)初始階段只能提供基礎(chǔ)需求時(shí)采取漸進(jìn)式開(kāi)發(fā)模型,如原型模型、螺旋模型等;第三種是以形式化開(kāi)發(fā)方法為基礎(chǔ)變換模型。軟件體系結(jié)構(gòu)和算法結(jié)構(gòu)區(qū)分和聯(lián)絡(luò)軟件體系結(jié)構(gòu)是軟件系統(tǒng)結(jié)構(gòu),包含軟件元素、軟件元素外部可見(jiàn)屬性和這些軟件元素之間關(guān)系。軟件體系結(jié)構(gòu)是軟件系統(tǒng)基礎(chǔ)組織,包含構(gòu)件、構(gòu)件之間、構(gòu)件和環(huán)境之間關(guān)系,和相關(guān)設(shè)計(jì)和演化標(biāo)準(zhǔn)。軟件體系結(jié)構(gòu)風(fēng)格(style)描述某一特定領(lǐng)域中系統(tǒng)組織方法常見(jiàn)模式,反應(yīng)了領(lǐng)域中眾多系統(tǒng)所共有結(jié)構(gòu)和語(yǔ)義特征。算法結(jié)構(gòu)三種結(jié)構(gòu)次序結(jié)構(gòu):按從上到下次序進(jìn)行。選擇結(jié)構(gòu):先依據(jù)條件作出判定,再?zèng)Q定實(shí)施哪一個(gè)操作,必需包含判定框。循環(huán)結(jié)構(gòu):從某處開(kāi)始,根據(jù)一定條件,反復(fù)實(shí)施某一處理步驟,有兩類(lèi):直到和當(dāng)型循環(huán)結(jié)構(gòu)。軟件開(kāi)發(fā)過(guò)程模型和軟件文檔模型區(qū)分和聯(lián)絡(luò)軟件生命周期包含了軟件從概念形成到最終退伍全部活動(dòng),而對(duì)于一個(gè)具體軟件項(xiàng)目,開(kāi)發(fā)人員愈加關(guān)注是開(kāi)發(fā)過(guò)程中包含活動(dòng)和其具體安排。軟件開(kāi)發(fā)過(guò)程模型給出了軟件開(kāi)發(fā)中各個(gè)活動(dòng)之間關(guān)系,它是軟件開(kāi)發(fā)過(guò)程概括,是軟件工程關(guān)鍵內(nèi)容。能為軟件工程管理提供里程碑和進(jìn)度表,為軟件開(kāi)發(fā)過(guò)程提供標(biāo)準(zhǔn)和方法軟件開(kāi)發(fā)過(guò)程模型關(guān)鍵有:

瀑布模型(V模型、噴泉模型)、螺旋模型、原型模型(鋸齒模型、快速原型)、構(gòu)件組裝模型(增量模型)、統(tǒng)一軟件過(guò)程RUP模型軟件體系結(jié)構(gòu)風(fēng)格和設(shè)計(jì)模式區(qū)分和聯(lián)絡(luò)軟件體系結(jié)構(gòu)風(fēng)格是軟件設(shè)計(jì)人員在長(zhǎng)久軟件設(shè)計(jì)過(guò)程中總結(jié)出來(lái)部分規(guī)律性東西,經(jīng)過(guò)提煉總結(jié)而成。軟件體系結(jié)構(gòu)風(fēng)格是軟件體系結(jié)構(gòu)設(shè)計(jì)上模式,所以能夠看作是一個(gè)廣義軟件設(shè)計(jì)模式,但通常不認(rèn)為是俠義軟件設(shè)計(jì)模式。關(guān)鍵區(qū)分在于:軟件體系結(jié)構(gòu)風(fēng)格描述系統(tǒng)整體結(jié)構(gòu)框架上特點(diǎn),粒度更大;而軟件設(shè)計(jì)模式則愈加面向具體問(wèn)題,指出是一個(gè)在更小粒度上設(shè)計(jì)特點(diǎn)。軟件設(shè)計(jì)模式和軟件體系結(jié)構(gòu)風(fēng)格全部是可反復(fù)使用軟件設(shè)計(jì)問(wèn)題處理方案,只不過(guò)前者描述是類(lèi)和對(duì)象層次問(wèn)題、粒度大小,以后者描述是構(gòu)件和連接子層次問(wèn)題、粒度更大。設(shè)計(jì)模式是對(duì)通用設(shè)計(jì)問(wèn)題反復(fù)處理方案。

軟件體系結(jié)構(gòu)風(fēng)格是描述某一特定應(yīng)用領(lǐng)域中系統(tǒng)組織方法常見(jiàn)模式。

軟件框架是整個(gè)或部分系統(tǒng)可重用設(shè)計(jì)

模式比框架愈加抽象

框架是模式特例化

設(shè)計(jì)模式被實(shí)現(xiàn)成為框架后,能夠極大減輕從設(shè)計(jì)到實(shí)現(xiàn)鴻溝

利用了模式框架比沒(méi)有利用模式框架更輕易了解、更能被設(shè)計(jì)和實(shí)現(xiàn)重用

通常成熟框架包含了多個(gè)設(shè)計(jì)模式

一個(gè)框架不僅能夠具體實(shí)現(xiàn)一個(gè)模式,還能夠具體實(shí)現(xiàn)多個(gè)模式

設(shè)計(jì)模式和風(fēng)格二者為近義詞,通常情況下能夠相互通用

風(fēng)格關(guān)鍵是指大,宏觀設(shè)計(jì)。模式既可宏觀,又可微觀。抽象概念抽象是從眾多事物中抽取出共同、本質(zhì)性特征,而舍棄其非本質(zhì)特征。要抽象,就必需進(jìn)行比較,沒(méi)有比較就無(wú)法找到共同部分。

共同特征是指那些能把一類(lèi)事物和她類(lèi)事物區(qū)分開(kāi)來(lái)特征,這些含有區(qū)分作用特征又稱(chēng)本質(zhì)特征。所以抽取事物共同特征就是抽取事物本質(zhì)特征,舍棄不一樣特征。所以抽象過(guò)程也是一個(gè)裁剪過(guò)程,不一樣、非本質(zhì)性特征全部裁剪掉了。

所謂共同特征,是相正確,是指從某一個(gè)刻面看是共同。所以在抽象時(shí),同和不一樣,決定于從什么角度上來(lái)抽象。抽象角度取決于分析問(wèn)題目標(biāo)。軟件工程過(guò)程中每一步部能夠看作是對(duì)軟件處理方法抽象層次一次細(xì)化。在進(jìn)行軟件設(shè)計(jì)時(shí),抽象和逐步求精、模塊化親密相關(guān),幫助我們定義軟件結(jié)構(gòu)中模塊實(shí)體,由抽象到具體地分析和結(jié)構(gòu)出軟件層次結(jié)構(gòu),提升軟件可了解性“抽象”是一個(gè)心理學(xué)概念,它要求大家將注意力集中在某一層次上考慮問(wèn)題,而忽略那些低層次細(xì)節(jié)。“逐步求精”可視為一個(gè)早期自頂向下設(shè)計(jì)策略,其關(guān)鍵思想是,針對(duì)某個(gè)功效宏觀描述用逐步求精方法不停地分解,逐步確立過(guò)程細(xì)節(jié),直至該功效用程序語(yǔ)言描述算法實(shí)現(xiàn)為止。在軟件設(shè)計(jì)過(guò)程中,抽象和逐步求精是通常全部是結(jié)合起來(lái)進(jìn)行應(yīng)用。列舉抽象實(shí)例假如我們開(kāi)發(fā)一個(gè)系統(tǒng)時(shí)需要對(duì)職員進(jìn)行建模,職員包含3個(gè)屬性:姓名、工號(hào)和工資。經(jīng)理也是職員,除了含有職員屬性外,另外還有一個(gè)職員屬性。請(qǐng)使用繼承思想設(shè)計(jì)出職員類(lèi)和經(jīng)理類(lèi)。要求類(lèi)中提供必需方法進(jìn)行屬性訪問(wèn)。職員類(lèi):nameidpay經(jīng)理類(lèi):繼承了職員,并有自己特有bonus.abstractclassEmployee{privateStringname;privateStringid;privatedoublepay;Employee(Stringname,Stringid,doublepay){=name;this.id=id;this.pay=pay;}publicabstractvoidwork();}classManagerextendsEmployee{privatedoublebonus;Manager(Stringname,Stringid,doublepay,doublebonus){super(name,id,pay);//注意這里調(diào)用父類(lèi)結(jié)構(gòu)函數(shù);this.bonus=bonus;}publicvoidwork(){System.out.println("managerwork");}}classemploextendsEmployee{emplo(Stringname,Stringid,doublepay){super(name,id,pay);}publicvoidwork(){System.out.println("employwork");}}classAbDemo{publicstaticvoidmain(String[

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論