軟件設(shè)計(jì)與體系結(jié)構(gòu)_第1頁(yè)
軟件設(shè)計(jì)與體系結(jié)構(gòu)_第2頁(yè)
軟件設(shè)計(jì)與體系結(jié)構(gòu)_第3頁(yè)
軟件設(shè)計(jì)與體系結(jié)構(gòu)_第4頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡(jiǎn)介

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

瀑布模型〔V模型、噴泉模型〕、螺旋模型、原型模型〔鋸齒模型、快速原型〕、構(gòu)件組裝模型〔增量模型〕、統(tǒng)一軟件過程RUP模型軟件體系構(gòu)造風(fēng)格與設(shè)計(jì)模式區(qū)別與聯(lián)系軟件體系構(gòu)造風(fēng)格是軟件設(shè)計(jì)人員在長(zhǎng)期的軟件設(shè)計(jì)過程中總結(jié)出來的一些規(guī)律性的東西,經(jīng)過提煉總結(jié)而成。軟件體系構(gòu)造風(fēng)格是軟件體系構(gòu)造設(shè)計(jì)上的模式,因此可以看作是一種廣義的軟件設(shè)計(jì)模式,但一般不認(rèn)為是俠義的軟件設(shè)計(jì)模式。主要區(qū)別在于:軟件體系構(gòu)造風(fēng)格描述系統(tǒng)整體構(gòu)造框架上的特點(diǎn),粒度更大;而軟件設(shè)計(jì)模式那么更加面向具體問題,指出的是一個(gè)在更小的粒度上的設(shè)計(jì)特點(diǎn)。軟件設(shè)計(jì)模式和軟件體系構(gòu)造風(fēng)格都是可重復(fù)使用的軟件設(shè)計(jì)問題解決方案,只不過前者描述的是類和對(duì)象層次的問題、粒度大小,而后者描述的是構(gòu)件和連接子層次的問題、粒度更大。設(shè)計(jì)模式是對(duì)通用設(shè)計(jì)問題的重復(fù)解決方案。

軟件體系構(gòu)造風(fēng)格是描述某一特定應(yīng)用領(lǐng)域中系統(tǒng)組織方式的慣用模式。

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

模式比框架更加抽象

框架是模式的特例化

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

利用了模式的框架比沒有利用模式的框架更容易理解、更能被設(shè)計(jì)與實(shí)現(xiàn)重用

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

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

設(shè)計(jì)模式與風(fēng)格兩者為近義詞,通常情況下可以互相通用

風(fēng)格主要是指大的,宏觀的設(shè)計(jì)。模式既可宏觀,又可微觀。抽象的概念抽象是從眾多的事物中抽取出共同的、本質(zhì)性的特征,而舍棄其非本質(zhì)的特征。要抽象,就必須進(jìn)展比擬,沒有比擬就無法找到共同的局部。

共同特征是指那些能把一類事物與他類事物區(qū)分開來的特征,這些具有區(qū)分作用的特征又稱本質(zhì)特征。因此抽取事物的共同特征就是抽取事物的本質(zhì)特征,舍棄不同特征。所以抽象的過程也是一個(gè)裁剪的過程,不同的、非本質(zhì)性的特征全部裁剪掉了。

所謂的共同特征,是相對(duì)的,是指從某一個(gè)刻面看是共同的。所以在抽象時(shí),同與不同,決定于從什么角度上來抽象。抽象的角度取決于分析問題的目的。軟件工程過程中的每一步部可以看作是對(duì)軟件解決方法的抽象層次的一次細(xì)化。在進(jìn)展軟件設(shè)計(jì)時(shí),抽象與逐步求精、模塊化密切相關(guān),幫助我們定義軟件構(gòu)造中模塊的實(shí)體,由抽象到具體地分析和構(gòu)造出軟件的層次構(gòu)造,提高軟件的可理解性“抽象〞是一個(gè)心理學(xué)概念,它要求人們將注意力集中在某一層次上考慮問題,而忽略那些低層次的細(xì)節(jié)。“逐步求精〞可視為一種早期的自頂向下設(shè)計(jì)謀略,其主要思想是,針對(duì)某個(gè)功能的宏觀描述用逐步求精的方法不斷地分解,逐步確立過程細(xì)節(jié),直至該功能用程序語(yǔ)言描述的算法實(shí)現(xiàn)為止。在軟件設(shè)計(jì)過程中,抽象與逐步求精是一般都是結(jié)合起來進(jìn)展應(yīng)用。列舉抽象實(shí)例假設(shè)我們開發(fā)一個(gè)系統(tǒng)時(shí)需要對(duì)員工進(jìn)展建模,員工包含3個(gè)屬性:XX、工號(hào)以及工資。經(jīng)理也是員工,除了含有員工的屬性外,另外還有一個(gè)員工的屬性。請(qǐng)使用繼承的思想設(shè)計(jì)出員工類和經(jīng)理類。要求類中提供必要的方法進(jìn)展屬性訪問。員工類:nameidpay經(jīng)理類:繼承了員工,并有自己特有的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)用父類的構(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(St

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(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)論