版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
什么是什么是構(gòu)2第20方系統(tǒng)中某一系統(tǒng)中某一定型化的、可配置的和可替換的部件,該部件封裝了實(shí)一個(gè)構(gòu)件就是程序的一個(gè)功能要素,程序有處理邏輯及實(shí)現(xiàn)處理3第20方管理上:將大的任務(wù)分割成小的子任務(wù),并行開發(fā)提高效率維護(hù)上:通過系統(tǒng)間解耦,使得一部分發(fā)生變化不會(huì)波及到其他方面理解上:將復(fù)雜問題分解成小問題,每個(gè)構(gòu)件關(guān)注一個(gè)問題,降低開發(fā)難度。設(shè)計(jì)的目標(biāo)就是根據(jù)設(shè)計(jì)原則和設(shè)計(jì)模式將職責(zé)分配給恰當(dāng)?shù)念惞芾砩希簩⒋蟮娜蝿?wù)分割成小的子任務(wù),并行開發(fā)提高效率維護(hù)上:通過系統(tǒng)間解耦,使得一部分發(fā)生變化不會(huì)波及到其他方面理解上:將復(fù)雜問題分解成小問題,每個(gè)構(gòu)件關(guān)注一個(gè)問題,降低開發(fā)難度。設(shè)計(jì)的目標(biāo)就是根據(jù)設(shè)計(jì)原則和設(shè)計(jì)模式將職責(zé)分配給恰當(dāng)?shù)念?第1方design傳統(tǒng)構(gòu)elaboratedout:design傳統(tǒng)構(gòu)elaboratedout:pagein:color=1,2,3,in:pageSize=A,B,C,out:sides,color,pageSize,pageCost)accessCostsDB(jobSize,color,pageSize,BPC,SF)computePageCost(5第20方numberPages*numberDolookupbasepagecost(BPC)-->accessCostsDB(JS,color);lookupsizefactor(SF)--accessCostDB(JS,color,size)jobcomplexityfactor(JCF)=1+[(sides-1)*sideCost+SF]pagecost=BPC*analysiscPrintJo面向?qū)ο髽?gòu)numberOfPagesnumberOfSidespaperTypemagnificatproductionFeatdesigncomcomputeJobCost(passJobtoPrinter(computePrintanalysiscPrintJo面向?qū)ο髽?gòu)numberOfPagesnumberOfSidespaperTypemagnificatproductionFeatdesigncomcomputeJobCost(passJobtoPrinter(computePrintinitiateelaborateddesign6第10方 PrintpaperTypepaperWeightpaperSizepaperColorproductionFeaturcollationOptbindingOptprioritcomputeProdCost()buildWorkOrder()checkPriority()相當(dāng)于相當(dāng)于詳細(xì)設(shè)計(jì)(即設(shè)計(jì)對象內(nèi)部的具體實(shí)現(xiàn)在系統(tǒng)所需的應(yīng)用對象與可復(fù)用的商業(yè)構(gòu)件之間建立關(guān)聯(lián)給出每個(gè)子系統(tǒng)/7第1方OOP/設(shè)計(jì)模式OOP/設(shè)計(jì)模式8第1方enterpasswordanduservalidateattributesaccessPaperDB(weightvalidpasswords/invalidpasswords/baseCostselectmajorpromptforreentpaperCostenterpasswordanduservalidateattributesaccessPaperDB(weightvalidpasswords/invalidpasswords/baseCostselectmajorpromptforreentpaperCostperPagemayalsoselectinputtriesremselectsize=nopaperCostperPageti分配給類paperCostperPage*1.size=paperCostperPage=paperCostperPage*1.4selectaspecificcamerselectspecificcamera-thumbnailssize=paperCostperPage=paperCostperPage*1.6selectcameracoloriscustpaperCostperPage=paperCostperPage*1.14viewcamerainlabelledcolorispromptforanotherviewret(paperCostperPageseeanothercamer9第1方OOD——分析順序OOD——分析順序第1方OODesign—設(shè)計(jì)順序OODesign—設(shè)計(jì)順序第1方第1第1方為每個(gè)實(shí)體為每個(gè)實(shí)體建立一張表為每個(gè)表確定主鍵(primarykey)、外鍵(foreignkey);增加外部碼表示一對多(1:n)關(guān)檢查數(shù)據(jù)字?jǐn)?shù)據(jù)庫安全第1方什么是構(gòu)構(gòu)件設(shè)計(jì)什么是構(gòu)構(gòu)件設(shè)計(jì)原––內(nèi)聚性與耦合構(gòu)件設(shè)計(jì)原構(gòu)件設(shè)計(jì)步設(shè)計(jì)規(guī)格說第20方構(gòu)件的專構(gòu)件的專誠第20方高高低第1方(1)構(gòu)件中各個(gè)部分都是為完成(1)構(gòu)件中各個(gè)部分都是為完成一項(xiàng)單一的功能而–––例如“集中精力做一件第20方(2)第1方(2)第1方(3)第10(3)第10方(4)第1(4)第1方(5)一個(gè)模塊中同時(shí)含有幾個(gè)操作,這些操作之間既無順序關(guān)系,也無數(shù)據(jù)共享關(guān)系;它們的執(zhí)行與否由外面?zhèn)鬟M(jìn)來的控制標(biāo)志所決之所以稱之為過程內(nèi)聚,是因?yàn)檫@些操作僅僅是因?yàn)榭刂屏?,或者說在同一過程內(nèi)的原因才聯(lián)系到一起的,它們都被包括在一個(gè)很大的或者e語句中,彼此之間并沒有任何其它邏輯上的聯(lián)系。(5)一個(gè)模塊中同時(shí)含有幾個(gè)操作,這些操作之間既無順序關(guān)系,也無數(shù)據(jù)共享關(guān)系;它們的執(zhí)行與否由外面?zhèn)鬟M(jìn)來的控制標(biāo)志所決之所以稱之為過程內(nèi)聚,是因?yàn)檫@些操作僅僅是因?yàn)榭刂屏?,或者說在同一過程內(nèi)的原因才聯(lián)系到一起的,它們都被包括在一個(gè)很大的或者e語句中,彼此之間并沒有任何其它邏輯上的聯(lián)系。第1方DGBEACF(6)模塊的各個(gè)成分必須在同一時(shí)間段執(zhí)行,但各個(gè)成分之間無必然的聯(lián)系(6)模塊的各個(gè)成分必須在同一時(shí)間段執(zhí)行,但各個(gè)成分之間無必然的聯(lián)系第20方(7)通常用于庫函數(shù)管理,將多個(gè)相互無關(guān)但比較功能類似的模塊放置在同一個(gè)模塊內(nèi)。(7)通常用于庫函數(shù)管理,將多個(gè)相互無關(guān)但比較功能類似的模塊放置在同一個(gè)模塊內(nèi)。第20方數(shù)功能功能功能分層內(nèi)高層訪問低層的服功能內(nèi)完備的、相關(guān)的功BC順數(shù)功能功能功能分層內(nèi)高層訪問低層的服功能內(nèi)完備的、相關(guān)的功BC順序內(nèi)按功能的順序相類似的功按時(shí)間相盡量采用前三種內(nèi)0方功能功能功能功能功能時(shí)間時(shí)間時(shí)間功能功能功能A功能功能功能功能A-部分功能B-部分功能C-部分傳統(tǒng)觀面?zhèn)鹘y(tǒng)觀面向?qū)ο笥^第1方第1第1方第第1方弱耦中耦強(qiáng)耦第20方(1)第10(1)第10方Lee,Lee,Kum,+call+call(2)l第10(2)l第10方Lee,+Operation2(e,f,g,+callOperation1(a,b,c,+callOperation2(e,f,g,Lee,+Operation1(a,b,c,(3)當(dāng)類B被聲明為類A類B作為類A定義的一部分,類B的修改影響到類第(3)當(dāng)類B被聲明為類A類B作為類A定義的一部分,類B的修改影響到類第1方AB+save(B(4)類型使用耦當(dāng)構(gòu)件使用了在構(gòu)件中定義的一個(gè)數(shù)據(jù)類型時(shí)會(huì)發(fā)生此種耦合(4)類型使用耦當(dāng)構(gòu)件使用了在構(gòu)件中定義的一個(gè)數(shù)據(jù)類型時(shí)會(huì)發(fā)生此種耦合第20方AB控制耦合(過程內(nèi)聚當(dāng)操作調(diào)用操作,并向控制耦合(過程內(nèi)聚當(dāng)操作調(diào)用操作,并向傳遞了一個(gè)控制標(biāo)記時(shí),就會(huì)發(fā)生此種耦合??刂茦?biāo)記會(huì)指引B第20方(6)外部耦當(dāng)一個(gè)構(gòu)件和基礎(chǔ)設(shè)施構(gòu)件(如操作系統(tǒng)功能,數(shù)據(jù)庫功能、網(wǎng)絡(luò)通信功能等)進(jìn)行通信和協(xié)作時(shí)會(huì)發(fā)生此種耦合ALMBCDE(6)外部耦當(dāng)一個(gè)構(gòu)件和基礎(chǔ)設(shè)施構(gòu)件(如操作系統(tǒng)功能,數(shù)據(jù)庫功能、網(wǎng)絡(luò)通信功能等)進(jìn)行通信和協(xié)作時(shí)會(huì)發(fā)生此種耦合ALMBCDEFNOP第20方(7)共用耦若一組模塊都訪問同一個(gè)公共數(shù)據(jù)環(huán)境,則它們之間的耦合就稱為公共耦合。公共的數(shù)據(jù)環(huán)境可以是全局變量、共享的通信區(qū)、內(nèi)存的公共覆蓋區(qū)等。緊密的公共(7)共用耦若一組模塊都訪問同一個(gè)公共數(shù)據(jù)環(huán)境,則它們之間的耦合就稱為公共耦合。公共的數(shù)據(jù)環(huán)境可以是全局變量、共享的通信區(qū)、內(nèi)存的公共覆蓋區(qū)等。緊密的公共耦松散的公共耦第20方(8)內(nèi)容耦一個(gè)類暗中修改(8)內(nèi)容耦一個(gè)類暗中修改另一個(gè)類的內(nèi)部數(shù)據(jù)內(nèi)容耦合違反了“信息隱藏”的原則第4A耦合是影響軟件復(fù)雜程度和設(shè)計(jì)質(zhì)量的重要因素,應(yīng)建立模塊間耦合度盡可能松散的系統(tǒng);降低模塊間–––耦合是影響軟件復(fù)雜程度和設(shè)計(jì)質(zhì)量的重要因素,應(yīng)建立模塊間耦合度盡可能松散的系統(tǒng);降低模塊間––––––第20方什么是構(gòu)構(gòu)件設(shè)計(jì)什么是構(gòu)構(gòu)件設(shè)計(jì)原––內(nèi)聚性與耦合構(gòu)件設(shè)計(jì)原構(gòu)件設(shè)計(jì)步設(shè)計(jì)規(guī)格說第20方1.(SingleResponsibility第10方1.(SingleResponsibility第10方2.開閉原則(TheOpen-Close對于擴(kuò)展是開放的:適應(yīng)需求的變化對于更改是封閉的:不影響已2.開閉原則(TheOpen-Close對于擴(kuò)展是開放的:適應(yīng)需求的變化對于更改是封閉的:不影響已有的程關(guān)鍵是抽第10方3.Liskov替換原(LiskovSubstitution遵循LSP第13.Liskov替換原(LiskovSubstitution遵循LSP第10方4.(DependencyInversion第10方4.(DependencyInversion第10方5.(InterfaceSegregation5.(InterfaceSegregation多個(gè)用戶專用接口比一個(gè)通用接第1方PrincipleREP)共同封裝原則PrincipleREP)共同封裝原則共同復(fù)用原則(CommonReuse–第20方設(shè)計(jì)建設(shè)計(jì)建第20方步驟1:標(biāo)識(shí)所有步驟1:標(biāo)識(shí)所有與概念類相對應(yīng)的設(shè)計(jì)類步驟2:確定所有與基礎(chǔ)設(shè)施域相對應(yīng)的步驟3:細(xì)化所有不能作為復(fù)用構(gòu)件的設(shè)––––步驟3a:在類或構(gòu)件的協(xié)作時(shí)說明消息步驟3b:為每一個(gè)構(gòu)件確定適當(dāng)?shù)慕硬襟E4:說明持久數(shù)據(jù)源(數(shù)據(jù)庫和文件)并確定管理數(shù)據(jù)源所需要的類步驟6:細(xì)化部署圖以提供額外的實(shí)現(xiàn)細(xì)節(jié)步驟7:考慮每一個(gè)構(gòu)件級(jí)設(shè)計(jì)表示,并且時(shí)刻考慮其他選第20方分析設(shè)計(jì)多對多映第10方分析設(shè)計(jì)多對多映第10方如果一個(gè)“分析類”比較簡單,代表著單一的邏輯抽象,那么可以將其一對一的映射為“設(shè)計(jì)類”;–通常,主動(dòng)參與者對應(yīng)的邊界類、控制類和一般的實(shí)體類都可以直接映射成如果“分析類”的職責(zé)比較復(fù)雜,很難由單個(gè)“設(shè)計(jì)類”承擔(dān),則應(yīng)該將其如果一個(gè)“分析類”比較簡單,代表著單一的邏輯抽象,那么可以將其一對一的映射為“設(shè)計(jì)類”;–通常,主動(dòng)參與者對應(yīng)的邊界類、控制類和一般的實(shí)體類都可以直接映射成如果“分析類”的職責(zé)比較復(fù)雜,很難由單個(gè)“設(shè)計(jì)類”承擔(dān),則應(yīng)該將其分解為多個(gè)“設(shè)計(jì)類”,并映射成“包”或“子系統(tǒng)”;將設(shè)計(jì)類分配到相應(yīng)的“包”或“子系統(tǒng)”當(dāng)中–第20方―設(shè)計(jì)―設(shè)計(jì)―設(shè)計(jì)類―設(shè)計(jì)類―設(shè)計(jì)類―設(shè)計(jì)第1方步驟1:標(biāo)識(shí)所有步驟1:標(biāo)識(shí)所有與問題類相對應(yīng)的設(shè)計(jì)類步驟2:確定所有與基礎(chǔ)設(shè)施域相對應(yīng)的步驟3:細(xì)化所有不能作為復(fù)用構(gòu)件的設(shè)––––步驟3a:在類或構(gòu)件的協(xié)作時(shí)說明消息步驟3b:為每一個(gè)構(gòu)件確定適當(dāng)?shù)慕硬襟E4:說明持久數(shù)據(jù)源(數(shù)據(jù)庫和文件)并確定管理數(shù)據(jù)源所需要的類步驟6:細(xì)化部署圖以提供額外的實(shí)現(xiàn)細(xì)節(jié)步驟7:考慮每一個(gè)構(gòu)件級(jí)設(shè)計(jì)表示,并且時(shí)刻考慮其他選第20方GUI(圖形用戶接口)與硬件通信構(gòu)件(網(wǎng)絡(luò)、讀寫設(shè)備等GUI(圖形用戶接口)與硬件通信構(gòu)件(網(wǎng)絡(luò)、讀寫設(shè)備等第1方步驟1:標(biāo)識(shí)所有步驟1:標(biāo)識(shí)所有與問題類相對應(yīng)的設(shè)計(jì)類步驟2:確定所有與基礎(chǔ)設(shè)施域相對應(yīng)的步驟3:細(xì)化所有不能作為復(fù)用構(gòu)件的設(shè)––––步驟3a:為每一個(gè)構(gòu)件確定適當(dāng)?shù)慕硬襟E3b:細(xì)化屬性并且定義相應(yīng)的數(shù)據(jù)類型和步驟4:說明持久數(shù)據(jù)源(數(shù)據(jù)庫和文件)并確定管理數(shù)據(jù)源所需要的類步驟6:細(xì)化部署圖以提供額外的實(shí)現(xiàn)細(xì)節(jié)步驟7:考慮每一個(gè)構(gòu)件級(jí)設(shè)計(jì)表示,并且時(shí)刻考慮其他選第20方––––––細(xì)化操細(xì)化關(guān)聯(lián)關(guān)細(xì)化泛第1方簡單構(gòu)件的方第簡單構(gòu)件的方第1方細(xì)化–具體說明屬性的名稱、類型細(xì)化–具體說明屬性的名稱、類型、缺省值、可見visibilityattributeName:Type=Private:‘-’–––屬性––––類所代表的現(xiàn)實(shí)實(shí)體的基本信描述狀態(tài)的信描述該類與其他類之間關(guān)聯(lián)的派生屬性(derivedattribute):該類屬性的值需要通過計(jì)算其他屬性的值才能得到?/numStudents:第1方屬性命名命名符合規(guī)范(名詞組合,首字母小寫屬性命名命名符合規(guī)范(名詞組合,首字母小寫盡可能將所有屬性的可見性設(shè)置為僅通過set僅通過get第20方3.找出滿足基本邏輯要求的操作:針對不同的t哪些操作;補(bǔ)充必3.找出滿足基本邏輯要求的操作:針對不同的t哪些操作;補(bǔ)充必要的輔助操–––––––驗(yàn)證兩個(gè)實(shí)例是否等同——復(fù)制對象實(shí)例——細(xì)化操作時(shí),要充分考慮類的“屬性”與“狀態(tài)”是否被充分利用起來:–對屬性進(jìn)行–第1方應(yīng)該遵從程序設(shè)計(jì)語言的命名規(guī)則(動(dòng)詞+應(yīng)該遵從程序設(shè)計(jì)語言的命名規(guī)則(動(dòng)詞+名詞,首字母小寫–將各個(gè)操作中公共部分提取出來,形成獨(dú)立的新操作第20方操作visibilityopName(param:操作visibilityopName(param:type=default,…):一個(gè)例子:–<<class>>new(SetsetCourseID(courseID:String)setStartTime(startTime:Time)setEndTime(endTime:Time)setDays(days:Enum)addProfessor(theProfessor:Professor)removeProfessor(theProfessor:Professor)offeringStillOpen():BooleangetNumberOfStudents():int第10方––一個(gè)例子:BorrowerInfo–<<class>>一個(gè)例子:BorrowerInfo–<<class>>+new(+setName(+setAddress(+addLoan(+removeLoan(+isAllowed():––第20方new(new(numStudents:=0;addProfessor(theProfessor:ProfessorifofferingStatus={offeringStatus:=assigned;}elseerrorState(removeProfessor(theProfessor:ifofferingStatus={offeringStatus:=unassigned;courseInstructor:=NULL;}elseerrorState(closeOffering(switch(offeringStatus{caseunassigned:cancelOffering();if(numStudentsminStudentscancelOffering(default:errorState();}第20方“繼承”關(guān)系很清在對象設(shè)計(jì)階段,需要進(jìn)一步確定詳細(xì)的關(guān)聯(lián)關(guān)系、依賴關(guān)系和聚合關(guān)系等。不同對象之間的可“繼承”關(guān)系很清在對象設(shè)計(jì)階段,需要進(jìn)一步確定詳細(xì)的關(guān)聯(lián)關(guān)系、依賴關(guān)系和聚合關(guān)系等。不同對象之間的可能連接:四種情況––––全局域第20Field第Field第20方根據(jù)“多重性”進(jìn)行設(shè)計(jì)(multiplicity-情況1:Multiplicity=1或Multiplicity=–根據(jù)“多重性”進(jìn)行設(shè)計(jì)(multiplicity-情況1:Multiplicity=1或Multiplicity=––??Department類中有一個(gè)屬性Manager類中有一個(gè)屬性–?只在關(guān)聯(lián)關(guān)系發(fā)出的類中增加關(guān)聯(lián)屬性1第1方根據(jù)“多重性”進(jìn)行設(shè)計(jì)情況2:Multiplicity>–根據(jù)“多重性”進(jìn)行設(shè)計(jì)情況2:Multiplicity>–將1:n轉(zhuǎn)化為若干個(gè)1:1–第2方情況:有些情況下,關(guān)聯(lián)關(guān)系本身也可能具有屬性,可以使用“關(guān)聯(lián)類”將這種關(guān)系建模。舉例:選情況:有些情況下,關(guān)聯(lián)關(guān)系本身也可能具有屬性,可以使用“關(guān)聯(lián)類”將這種關(guān)系建模。舉例:選課表Schedule與開設(shè)課程Design第1方1*1*第20方供應(yīng)1*1*第20方供應(yīng)**交買1*1*1111第10方供應(yīng)**交1*1*1111第10方供應(yīng)**交買步驟1:標(biāo)識(shí)所有步驟1:標(biāo)識(shí)所有與問題類相對應(yīng)的設(shè)計(jì)類步驟2:確定所有與基礎(chǔ)設(shè)施域相對應(yīng)的步驟3:細(xì)化所有不能作為復(fù)用構(gòu)件的設(shè)––––步驟3a:在類或構(gòu)件的協(xié)作時(shí)說明消息步驟3b:為每一個(gè)構(gòu)件確定適當(dāng)?shù)慕硬襟E4:說明持久數(shù)據(jù)源(數(shù)據(jù)庫和文件)并確定管理數(shù)據(jù)源所需要的類步驟6:細(xì)化部署圖以提供額外的實(shí)現(xiàn)細(xì)節(jié)步驟7:考慮每一個(gè)構(gòu)件級(jí)設(shè)計(jì)表示,并且時(shí)刻考慮其他選第20方1對象”只是存儲(chǔ)在內(nèi)存當(dāng)中,而某些對象則需要永久性的存儲(chǔ)起來;——持久性數(shù)據(jù)(persistent1對象”只是存儲(chǔ)在內(nèi)存當(dāng)中,而某些對象則需要永久性的存儲(chǔ)起來;——持久性數(shù)據(jù)(persistent關(guān)系數(shù)據(jù)庫:數(shù)據(jù)是以表的形式存儲(chǔ)在預(yù)先定義好的成為的類型面向?qū)ο髷?shù)據(jù)庫:存儲(chǔ)策略的選擇:第20方何時(shí)選擇文何時(shí)何時(shí)選擇文何時(shí)選擇數(shù)何時(shí)選擇關(guān)系數(shù)據(jù)––第1方如果使用關(guān)系數(shù)據(jù)庫,那么需要一個(gè)子系統(tǒng)來完成應(yīng)用系統(tǒng)中的對象和數(shù)據(jù)庫中數(shù)據(jù)的映射與轉(zhuǎn)換。第1如果使用關(guān)系數(shù)據(jù)庫,那么需要一個(gè)子系統(tǒng)來完成應(yīng)用系統(tǒng)中的對象和數(shù)據(jù)庫中數(shù)據(jù)的映射與轉(zhuǎn)換。第1方2OO核心問題:對那些需要永久性存儲(chǔ)的數(shù)據(jù),如何將類圖映射為數(shù)據(jù)庫模型。本質(zhì)2OO核心問題:對那些需要永久性存儲(chǔ)的數(shù)據(jù),如何將類圖映射為數(shù)據(jù)庫模型。本質(zhì):把每一個(gè)類、類之間的關(guān)系分別映射到一張表或多張表;UMLclassdiagram→RationalDataBase兩個(gè)方面將類(class)映射到表將關(guān)聯(lián)關(guān)系(association)映射到表第1方最簡單的映射策略——“一類一表”:表中的字段對應(yīng)于最簡單的映射策略——“一類一表”:表中的字段對應(yīng)于類的屬性,第20方Attribute不管是1:1、1:還是n的關(guān)聯(lián)關(guān)系,均可以采用以下途徑映射為關(guān)系數(shù)據(jù)表:–第不管是1:1、1:還是n的關(guān)聯(lián)關(guān)系,均可以采用以下途徑映射為關(guān)系數(shù)據(jù)表:–第20方Class Class將關(guān)聯(lián)映射到關(guān)系數(shù)據(jù)庫(1:1和m:n的關(guān)聯(lián)關(guān)系Implementing1toForeignkeycanbeoneitherImplementing第1將關(guān)聯(lián)映射到關(guān)系數(shù)據(jù)庫(1:1和m:n的關(guān)聯(lián)關(guān)系Implementing1toForeignkeycanbeoneitherImplementing第1方Class ClassA-B-Class Class將關(guān)聯(lián)映射到關(guān)系數(shù)據(jù)庫(1:n的關(guān)聯(lián)關(guān)系Implementing第20方A-B-Class將關(guān)聯(lián)映射到關(guān)系數(shù)據(jù)庫(1:n的關(guān)聯(lián)關(guān)系Implementing第20方A-B-Class ClassB-A-Class Class第10方Class Class第10方Class ClassClassA-B-Link-Person_Table第10方1Works-forPersonnameJobAttributeJobtitleAttributePerson_Table第10方1Works-forPersonnameJobAttributeJobtitleAttributeAttributeJobyAttributeAttribute實(shí)現(xiàn)方法:類似于1:n––“整體”“部分”第20實(shí)現(xiàn)方法:類似于1:n––“整體”“部分”第20方A-B-xy::::ClassA-XY:::Class為以下類圖設(shè)計(jì)關(guān)系數(shù)據(jù)11第2為以下類圖設(shè)計(jì)關(guān)系數(shù)據(jù)11第2方策略1:分別建立父類和子類的三張數(shù)據(jù)表Requiresajointo策略1:分別建立父類和子類的三張數(shù)據(jù)表Requiresajointogetthe策略:將子類的屬性上移到父類所對應(yīng)的數(shù)據(jù)表中,該表包括父類的屬性、各子類的全部屬性;策略3:將父類的屬性下移到各個(gè)子類所對應(yīng)的數(shù)據(jù)表中第1方SubSub???第10???第10方Example:第Example:第1方對象關(guān)系映射(ObjectRelationalMapping,對象關(guān)系映射(ObjectRelationalMapping,目前流行的ORM––––ApacheOJBJPA(JavaPersistence…第1方步驟1:標(biāo)識(shí)所有步驟1:標(biāo)識(shí)所有與問題類相對應(yīng)的設(shè)計(jì)類步驟2:確定所有與基礎(chǔ)設(shè)施域相對應(yīng)的步驟3:細(xì)化所有不能作為復(fù)用構(gòu)件的設(shè)––––步驟3a:在類或構(gòu)件的協(xié)作時(shí)說明消息步驟3b:為每一個(gè)構(gòu)件確定適當(dāng)?shù)慕硬襟E4:說明持久數(shù)據(jù)源(數(shù)據(jù)庫和文件)并確定管理數(shù)據(jù)源所需要的類步驟6:細(xì)化部署圖以提供額外的實(shí)現(xiàn)細(xì)節(jié)步驟7:考慮每一個(gè)構(gòu)件級(jí)設(shè)計(jì)表示,并且時(shí)刻考慮其他選第20方算法設(shè)計(jì)(程序算法設(shè)計(jì)(程序流程圖第1方步驟1:標(biāo)識(shí)所有步驟1:標(biāo)識(shí)所有與問題類相對應(yīng)的設(shè)計(jì)類步驟2:確定所有與基礎(chǔ)設(shè)施域相對應(yīng)的步驟3:細(xì)化所有不能作為復(fù)用構(gòu)件的設(shè)––––步驟3a:在類或構(gòu)件的協(xié)作時(shí)說明消息步驟3b:為每一個(gè)構(gòu)件確定適當(dāng)?shù)慕硬襟E4:說明持久數(shù)據(jù)源(數(shù)據(jù)庫和文件)并確定管理數(shù)據(jù)源所需要的類步驟6:細(xì)化部署圖以提供額外的實(shí)現(xiàn)細(xì)節(jié)步驟7:考慮每一個(gè)構(gòu)件級(jí)設(shè)計(jì)表示,并且時(shí)刻考慮其他選第20方1為系統(tǒng)選擇硬件配1為系統(tǒng)選擇硬件配置和運(yùn)將類、包、子系統(tǒng)分配到各個(gè)硬件節(jié)點(diǎn)上。系統(tǒng)通常使用分布式的多臺(tái)硬件設(shè)備,通過UML的部署(deploymentdiagram)––第20方 第20方部署圖(deployment–節(jié)點(diǎn)的命名:client、Application部署圖(deployment–節(jié)點(diǎn)的命名:client、ApplicationServer、DatabaseServer、Mainframe等––部署圖在兩個(gè)層面––High-level:描述系統(tǒng)中各硬件之間的物理通訊第20方High-levelDeploymentHigh-levelDeploymentLow-levelDeploymentLow-levelDeployment第1方繪制部署圖(deployment確定“節(jié)點(diǎn)–繪制部署圖(deployment確定“節(jié)點(diǎn)–––對節(jié)點(diǎn)加上必要的“構(gòu)造型使用UML確定“連接繪制配置圖(deployment第1方Low-DiagramApplication設(shè)計(jì)類(design子系統(tǒng)構(gòu)件<<web第20方Low-DiagramApplication設(shè)計(jì)類(design子系統(tǒng)構(gòu)件<<web第20方步驟1:標(biāo)識(shí)所有步驟1:標(biāo)識(shí)所有與問題類相對應(yīng)的設(shè)計(jì)類步驟2:確定所有與基礎(chǔ)設(shè)施域相對應(yīng)的步驟3:細(xì)化所有不能作為復(fù)用構(gòu)件的設(shè)––––步驟3a:在類或構(gòu)件的協(xié)作時(shí)說明消息步驟3b:為每一個(gè)構(gòu)件確定適當(dāng)?shù)慕硬襟E4:說明持久數(shù)據(jù)源(數(shù)據(jù)庫和文件)并確定管理數(shù)據(jù)源所需要的類步驟6:細(xì)化部署圖以提供額外的實(shí)現(xiàn)細(xì)節(jié)步驟7:考慮每一個(gè)構(gòu)件級(jí)設(shè)計(jì)表示,并且時(shí)刻考慮其他選第20方迭代的設(shè)計(jì)過迭代的設(shè)計(jì)過考慮設(shè)計(jì)原應(yīng)用設(shè)計(jì)模第1方檢查“正確–––––檢查“正確–––––檢查“一致–––第20方檢查“完整–––檢查“完整––––檢查“可行–––第20方設(shè)計(jì)建設(shè)計(jì)建第20方設(shè)計(jì)規(guī)格說明書(Software設(shè)計(jì)規(guī)格說明書(SoftwareDesignDescription,––第1方SDDSDD需求分析的產(chǎn)出詳細(xì)設(shè)第20方SDD設(shè)計(jì)元素(Design–SDD設(shè)計(jì)元素(Design–––第10方設(shè)計(jì)元素(design設(shè)計(jì)元素是軟件設(shè)計(jì)過程中被識(shí)別
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 企業(yè)制度匯編匯編【職員管理篇】
- 2025電子元器件購銷合同
- 企業(yè)制度收錄合集【職工管理篇】
- 2024年聲學(xué)海流計(jì)項(xiàng)目規(guī)劃申請報(bào)告
- 2025汽車過戶合同簡單版
- 2024年數(shù)控精密電火花成形機(jī)床項(xiàng)目申請報(bào)告模范
- 創(chuàng)新客戶服務(wù)模式的探索與實(shí)踐
- 2025超市員工勞動(dòng)合同范本標(biāo)準(zhǔn)
- 2025屆高考語文一輪復(fù)習(xí)第一部分語言文字運(yùn)用專題七圖文轉(zhuǎn)換第一講框架流程圖類轉(zhuǎn)換練習(xí)含解析
- 滅火器系統(tǒng)施工方案及技術(shù)措施
- 《綜合實(shí)踐一-用多媒體介紹湖北名人課件》小學(xué)信息技術(shù)華中科大課標(biāo)版五年級(jí)下冊課件2919
- 《養(yǎng)成良好的行為習(xí)慣》主題班會(huì)課件
- 焊接設(shè)備的新技術(shù)革新與應(yīng)用規(guī)范
- 公民科學(xué)素質(zhì)調(diào)查問卷
- 土壤采樣方案
- 110kV升壓站構(gòu)支架組立施工方案
- 何以中國:公元前的中原圖景
- 【中藥貯藏與養(yǎng)護(hù)問題及解決對策4000字(論文)】
- 自然環(huán)境對聚落的影響
- 2023-2024學(xué)年天津市部分地區(qū)六年級(jí)數(shù)學(xué)第一學(xué)期期末綜合測試試題含答案
- 河南省洛陽市偃師區(qū)2023-2024學(xué)年四年級(jí)數(shù)學(xué)第一學(xué)期期末經(jīng)典模擬試題含答案
評論
0/150
提交評論