面向?qū)ο蟮姆治龊驮O(shè)計(jì)_第1頁(yè)
面向?qū)ο蟮姆治龊驮O(shè)計(jì)_第2頁(yè)
面向?qū)ο蟮姆治龊驮O(shè)計(jì)_第3頁(yè)
面向?qū)ο蟮姆治龊驮O(shè)計(jì)_第4頁(yè)
面向?qū)ο蟮姆治龊驮O(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩33頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

面向?qū)ο蟮姆治龊驮O(shè)計(jì)第1頁(yè),課件共38頁(yè),創(chuàng)作于2023年2月前言在很多學(xué)科中,人們?cè)缇驼J(rèn)識(shí)到模式在構(gòu)造復(fù)雜系統(tǒng)時(shí)的重要性。軟件設(shè)計(jì)模式可以幫助開(kāi)發(fā)人員描述設(shè)計(jì)片斷、重要設(shè)計(jì)思想、使用其他人的專業(yè)經(jīng)驗(yàn)。模式給出了抽象的探索式過(guò)程的名稱和形式,以及面向?qū)ο蠹夹g(shù)的規(guī)則和最佳實(shí)踐。明智的工程師是不會(huì)完全從頭開(kāi)始工作的,而是查詢可以使用的模式。統(tǒng)一建模語(yǔ)言(UML)已經(jīng)成為被用戶廣泛接受的描述軟件設(shè)計(jì)藍(lán)圖的語(yǔ)言。UML是用來(lái)傳遞設(shè)計(jì)理念的可視化語(yǔ)言。本書(shū)的重點(diǎn)講述開(kāi)發(fā)者如何真正地應(yīng)用常用地UML元素而不是講述UML的特征。第2頁(yè),課件共38頁(yè),創(chuàng)作于2023年2月本章目標(biāo)目標(biāo)和范圍OOA/D的定義OOA/D的一個(gè)簡(jiǎn)單例子UML和可視化敏捷建模歷史第3頁(yè),課件共38頁(yè),創(chuàng)作于2023年2月目標(biāo)和范圍開(kāi)發(fā)OOA/D的核心技能掌握這些技能是基本要求對(duì)于創(chuàng)建:設(shè)計(jì)良好健壯性可維護(hù)的軟件使用面向?qū)ο蠹夹g(shù)和語(yǔ)言如Java第4頁(yè),課件共38頁(yè),創(chuàng)作于2023年2月目標(biāo)和范圍

“擁有一把錘子未必能成為建筑師“需要了解“對(duì)象”思想應(yīng)用統(tǒng)一建模語(yǔ)言(UML)和模式基本原理的掌握

。分配職責(zé)給對(duì)象。常用的UML表示法。常見(jiàn)的設(shè)計(jì)模式。框架設(shè)計(jì)和架構(gòu)分析第5頁(yè),課件共38頁(yè),創(chuàng)作于2023年2月目標(biāo)和范圍UMLvs.對(duì)象思想標(biāo)準(zhǔn)圖形表示法不是OOA/D也不是方法沒(méi)有面向?qū)ο笤O(shè)計(jì)UML是沒(méi)有意義的在OOA/D中應(yīng)用UML第6頁(yè),課件共38頁(yè),創(chuàng)作于2023年2月目標(biāo)和范圍OOD:原則和模式如何為對(duì)象類分配職責(zé)?對(duì)象之間應(yīng)該如何協(xié)作?什么樣的類應(yīng)該做什么樣的事情?

OO設(shè)計(jì)之象征:職責(zé)驅(qū)動(dòng)設(shè)計(jì)(responsibility-drivendesign)

模式:某些針對(duì)設(shè)計(jì)問(wèn)題的,經(jīng)過(guò)反復(fù)驗(yàn)證的解決方案可以(和已經(jīng))被表示成為最佳實(shí)踐的原則、啟示。已命名問(wèn)題—解決方案公式,這些公式是系統(tǒng)化、典范的設(shè)計(jì)原則。

第7頁(yè),課件共38頁(yè),創(chuàng)作于2023年2月目標(biāo)和范圍案例研究用例

需求分析敏捷方法到UP

使用著名的統(tǒng)一過(guò)程的敏捷(輕量的、靈活的)方法作為迭代開(kāi)發(fā)過(guò)程。

第8頁(yè),課件共38頁(yè),創(chuàng)作于2023年2月面向?qū)ο蠓治龊驮O(shè)計(jì)分析強(qiáng)調(diào)的是對(duì)問(wèn)題和需求的調(diào)查研究,而不是解決方案設(shè)計(jì)強(qiáng)調(diào)的是滿足需求的概念上的解決方案(在軟件方面和硬件方面)第9頁(yè),課件共38頁(yè),創(chuàng)作于2023年2月面向?qū)ο蠓治龊驮O(shè)計(jì)面向?qū)ο蠓治鰪?qiáng)調(diào)的是在問(wèn)題領(lǐng)域內(nèi)發(fā)現(xiàn)和描述對(duì)象(或概念)例如,在航班信息系統(tǒng)里包含飛機(jī)、航班、飛行員等概念面向?qū)ο笤O(shè)計(jì)強(qiáng)調(diào)的是定義軟件對(duì)象以及它們?nèi)绾螀f(xié)作以實(shí)現(xiàn)需求。例如,在航班信息系統(tǒng)里軟件對(duì)象Plane可以有tailNumber屬性和getFightHistory方法。第10頁(yè),課件共38頁(yè),創(chuàng)作于2023年2月面向?qū)ο蠓治龊驮O(shè)計(jì)PlanetailNumberpublicclassPlane{privateStringtailNumber;publicListgetFlightHistory(){...}}領(lǐng)域概念領(lǐng)域概念的可視化-在面向?qū)ο缶幊陶Z(yǔ)言中的表示第11頁(yè),課件共38頁(yè),創(chuàng)作于2023年2月UML根據(jù)OMG規(guī)格說(shuō)明統(tǒng)一建模語(yǔ)言(UML)是描述、構(gòu)造和文檔化系統(tǒng)制品的可視化語(yǔ)言。

第12頁(yè),課件共38頁(yè),創(chuàng)作于2023年2月UML應(yīng)用UML的方式:

UML作為草圖非正式的、不完整的圖,借助可視化語(yǔ)言的功能,用于探討問(wèn)題或解決方案空間的復(fù)雜部分。

UML作為藍(lán)圖相對(duì)詳細(xì)的設(shè)計(jì)圖,用于:1)逆向工程,即以UML圖的方式對(duì)現(xiàn)有代碼進(jìn)行可視化,使其易于理解。2)代碼生成(前向工程)。

UML作為編程語(yǔ)言用UML完成軟件系統(tǒng)可執(zhí)行規(guī)格說(shuō)明。第13頁(yè),課件共38頁(yè),創(chuàng)作于2023年2月UML應(yīng)用UML的三種透視圖

概念透視圖用圖來(lái)描述現(xiàn)實(shí)世界或關(guān)注領(lǐng)域中的事物規(guī)格說(shuō)明(軟件)透視圖用圖來(lái)描述軟件的抽象物或具有規(guī)格說(shuō)明和接口的構(gòu)件,但是并不約定特定實(shí)現(xiàn)

實(shí)現(xiàn)(軟件)透視圖用圖來(lái)描述特定技術(shù)中的軟件實(shí)現(xiàn)(例如:Java)第14頁(yè),課件共38頁(yè),創(chuàng)作于2023年2月OOA/D的歷史1960s到1970s-OO編程語(yǔ)言(例如Simula和Smalltalk)開(kāi)始嶄露頭角AlanKay–Smalltalk,“面向?qū)ο缶幊獭?,個(gè)人計(jì)算“1982年OOD形成-GradyBooch(也是UML創(chuàng)立者之一),完成第一篇論文“Object-OrientedDesign”;IvarJacobson(UML創(chuàng)立者之一)1988Object-OrientedSoftwareConstruction–MellorandSchlaer;“Object-OrientedAnalysis”1991–RumbaughOMT方法1994–UML=Booch+OMT(+Rationallater)三劍客=Booch+Rumbaugh+Jacobson1997–UML1.0;OMG(對(duì)象管理組織)第15頁(yè),課件共38頁(yè),創(chuàng)作于2023年2月資料MartinFowler–UMLDistilledRumbaugh–TheUnifiedModelingLanguageReferenceManual第16頁(yè),課件共38頁(yè),創(chuàng)作于2023年2月第2章迭代、進(jìn)化和敏捷暨南大學(xué)計(jì)算機(jī)系黃戰(zhàn)第17頁(yè),課件共38頁(yè),創(chuàng)作于2023年2月本章目標(biāo)動(dòng)機(jī) 迭代過(guò)程敏捷過(guò)程統(tǒng)一過(guò)程第18頁(yè),課件共38頁(yè),創(chuàng)作于2023年2月動(dòng)機(jī):迭代和進(jìn)化式瀑布生命周期在編程之前就預(yù)先完成需求和設(shè)計(jì)步驟軟件項(xiàng)目的高失效率迭代和進(jìn)化式開(kāi)發(fā)及早地引入編程和測(cè)試,并重復(fù)這一循環(huán)會(huì)在還沒(méi)有詳細(xì)定義所有需求的情況下假設(shè)開(kāi)發(fā)開(kāi)始使用反饋來(lái)明確和改進(jìn)演化中的規(guī)格說(shuō)明依賴于短時(shí)快速的開(kāi)發(fā)步驟、反饋和改寫(xiě)來(lái)不斷明確需求和設(shè)計(jì)軟件項(xiàng)目的較高成功率第19頁(yè),課件共38頁(yè),創(chuàng)作于2023年2月動(dòng)機(jī):統(tǒng)一過(guò)程(UP)軟件開(kāi)發(fā)過(guò)程描述了構(gòu)造、部署以及維護(hù)軟件的方式統(tǒng)一過(guò)程已經(jīng)成為一種流行的構(gòu)造面向?qū)ο笙到y(tǒng)的迭代軟件開(kāi)發(fā)過(guò)程

UP實(shí)踐提供了如何實(shí)施OOA/D的示范例子

UP具有靈活性,可以應(yīng)用于輕量級(jí)和敏捷方法,這些方法包括其他敏捷方法(諸如XP或Scrum)的實(shí)現(xiàn)Rational統(tǒng)一過(guò)程對(duì)統(tǒng)一過(guò)程的詳細(xì)精化,并且已經(jīng)被廣泛采納

第20頁(yè),課件共38頁(yè),創(chuàng)作于2023年2月迭代過(guò)程迭代開(kāi)發(fā)UP和大多數(shù)其他現(xiàn)代方法中的關(guān)鍵實(shí)踐在這種的生命周期方法中,開(kāi)發(fā)被組織成一系列固定的短期小項(xiàng)目,稱為迭代每次迭代都產(chǎn)生經(jīng)過(guò)測(cè)試、集成并可執(zhí)行的局部系統(tǒng)每次迭代都具有各自的需求分析、設(shè)計(jì)、實(shí)現(xiàn)和測(cè)試活動(dòng)第21頁(yè),課件共38頁(yè),創(chuàng)作于2023年2月迭代過(guò)程迭代和進(jìn)化式(增量式)開(kāi)發(fā)迭代生命周期基于對(duì)經(jīng)過(guò)多次迭代的系統(tǒng)進(jìn)行持續(xù)擴(kuò)展和精化早期迭代過(guò)程的思想是螺旋式開(kāi)發(fā)和進(jìn)化式開(kāi)發(fā)每次迭代都產(chǎn)生可執(zhí)行的但不完整的系統(tǒng),它不是已經(jīng)準(zhǔn)備好可以交付的產(chǎn)品直到多次迭代(如10次或15次迭代)之后,系統(tǒng)才可能合格地用于產(chǎn)品部署迭代的輸出不是實(shí)驗(yàn)性的或?qū)G棄的原型,迭代開(kāi)發(fā)也不是構(gòu)造原型.與之相反,其輸出是最終系統(tǒng)的產(chǎn)品子集第22頁(yè),課件共38頁(yè),創(chuàng)作于2023年2月迭代項(xiàng)目中的變更迭代開(kāi)發(fā)抱以接受變更和改寫(xiě)的態(tài)度,并以此為真正本質(zhì)的驅(qū)動(dòng)力—而不是企圖全面和正確地規(guī)格化、凍結(jié)需求集(瀑布模型)UP-平衡需求和穩(wěn)定性(VS反應(yīng)式的特性蔓延)第23頁(yè),課件共38頁(yè),創(chuàng)作于2023年2月迭代開(kāi)發(fā)的優(yōu)點(diǎn)減少項(xiàng)目失敗可能性,提高生產(chǎn)率、降低缺陷率在早期緩解高風(fēng)險(xiǎn)早期可見(jiàn)的進(jìn)展早期反饋、用戶參與和調(diào)整,會(huì)產(chǎn)生更接近涉眾真實(shí)需求的精華系統(tǒng)可控復(fù)雜性一次迭代中的經(jīng)驗(yàn)可以被系統(tǒng)地用于改進(jìn)開(kāi)發(fā)過(guò)程本身第24頁(yè),課件共38頁(yè),創(chuàng)作于2023年2月一次迭代的時(shí)間定量時(shí)間定量時(shí)長(zhǎng)固定推延時(shí)間則違約從本次迭代中除去一些任務(wù)或需求,并將其分配在將來(lái)的迭代中第25頁(yè),課件共38頁(yè),創(chuàng)作于2023年2月瀑布生命周期瀑布順序生命周期試圖在編程之前詳細(xì)定義所有或大部分需求研究表明,在20世紀(jì)60年代到70年代,瀑布方法對(duì)于大多數(shù)軟件項(xiàng)目是拙劣的實(shí)踐它與高失敗率、低生產(chǎn)率和高缺陷率具有極大關(guān)系瀑布方法需求中45%的特性從未被使用,其早期時(shí)間表和估計(jì)與最終實(shí)際情況可相差400%第26頁(yè),課件共38頁(yè),創(chuàng)作于2023年2月為什么瀑布模型具有錯(cuò)誤傾向假設(shè)規(guī)格說(shuō)明是可預(yù)知的和穩(wěn)定的,并且能夠在項(xiàng)目開(kāi)始時(shí)就正確定義典型的軟件項(xiàng)目在需求上會(huì)經(jīng)歷25%的變更“新產(chǎn)品開(kāi)發(fā)”領(lǐng)域-軟件開(kāi)發(fā)是(平均而言)變更極大且不穩(wěn)定的領(lǐng)域第27頁(yè),課件共38頁(yè),創(chuàng)作于2023年2月反饋和改寫(xiě)的必要性在復(fù)雜、變更系統(tǒng)中,反饋和調(diào)整是成功的關(guān)鍵要素早期開(kāi)發(fā)中的反饋來(lái)自測(cè)試中的反饋,有助于開(kāi)發(fā)者精化設(shè)計(jì)或模型來(lái)自團(tuán)隊(duì)處理早期特性過(guò)程的中反饋,有助于精化時(shí)間表和估計(jì)來(lái)自客戶和市場(chǎng)的反饋,有助于重新定義下一次迭代實(shí)現(xiàn)特性的優(yōu)先級(jí)第28頁(yè),課件共38頁(yè),創(chuàng)作于2023年2月如何進(jìn)行迭代和進(jìn)化式分析和設(shè)計(jì)看第18-20頁(yè)的例子一般錯(cuò)誤認(rèn)為偏激的認(rèn)為“完整”的編程前分析和設(shè)計(jì)是十分有價(jià)值的第29頁(yè),課件共38頁(yè),創(chuàng)作于2023年2月風(fēng)險(xiǎn)驅(qū)動(dòng)和客戶驅(qū)動(dòng)的迭代計(jì)劃UP提倡風(fēng)險(xiǎn)驅(qū)動(dòng)和客戶驅(qū)動(dòng)相結(jié)合的迭代計(jì)劃早期的迭代目標(biāo)識(shí)別和降低最高風(fēng)險(xiǎn)構(gòu)造客戶最關(guān)心的可視化特性風(fēng)險(xiǎn)驅(qū)動(dòng)迭代開(kāi)發(fā)更明確地包含了以構(gòu)架為中心迭代開(kāi)發(fā)的實(shí)踐早期迭代致力于核心架構(gòu)的構(gòu)造、測(cè)試和穩(wěn)定沒(méi)有穩(wěn)定的架構(gòu)就會(huì)帶來(lái)高風(fēng)險(xiǎn)

第30頁(yè),課件共38頁(yè),創(chuàng)作于2023年2月敏捷開(kāi)發(fā)敏捷開(kāi)發(fā)方法通常應(yīng)用時(shí)間定量的迭代和進(jìn)化式開(kāi)發(fā)使用自適應(yīng)計(jì)劃提倡增量交付并包含其他提倡(快速和靈活的響應(yīng)變更)的價(jià)值和實(shí)踐敏捷方法具備進(jìn)化式精化的計(jì)劃、需求和設(shè)計(jì)的短時(shí)間定量迭代是這些方法所共有的基本實(shí)踐.除此之外,它們還倡導(dǎo)反映簡(jiǎn)易、輕量、溝通、自組織團(tuán)隊(duì)等更多敏捷的實(shí)踐和原則第31頁(yè),課件共38頁(yè),創(chuàng)作于2023年2月敏捷方法實(shí)踐范例(Scrum)

公共項(xiàng)目工作室自組織團(tuán)隊(duì)XP:結(jié)隊(duì)編程和測(cè)試驅(qū)動(dòng)開(kāi)發(fā)UP:“不管黑貓還是白貓,抓到耗子就是好貓”的態(tài)度第32頁(yè),課件共38頁(yè),創(chuàng)作于2023年2月敏捷建模建模的目的主要是為理解,而非文檔敏捷建模采用敏捷方法并不意味著不進(jìn)行任何建模建模和模型的目的主要用于理解和溝通不要對(duì)所有或大多數(shù)軟件設(shè)計(jì)建模或應(yīng)用UML盡可能使用最簡(jiǎn)單的工具不要單獨(dú)建模,而是結(jié)隊(duì)(或三個(gè)人)在白板上建模并行地創(chuàng)建建?!白銐蚝谩钡暮?jiǎn)單表示法知道所有模型都可能不準(zhǔn)確的開(kāi)發(fā)者應(yīng)該進(jìn)行OO設(shè)計(jì)建模第33頁(yè),課件共38頁(yè),創(chuàng)作于2023年2月敏捷UP可以采納和應(yīng)用可適應(yīng)性和輕量級(jí)的精神推薦使用UP活動(dòng)和制品的簡(jiǎn)集實(shí)現(xiàn)前的需求和設(shè)計(jì)是不完整的以敏捷建模實(shí)踐應(yīng)用UML對(duì)于整個(gè)項(xiàng)目不應(yīng)有詳細(xì)的計(jì)劃階段計(jì)劃-評(píng)估項(xiàng)目結(jié)束日期和主要里程碑迭代計(jì)劃-詳細(xì)計(jì)劃是由一次次迭代的調(diào)整而完成的第34頁(yè),課件共38頁(yè),創(chuàng)作于2023年2月UP的階段四個(gè)主要階段初始大體上的構(gòu)想、業(yè)務(wù)案例、范圍和模糊評(píng)估細(xì)化已精化的構(gòu)想、核心架構(gòu)的迭代實(shí)現(xiàn)、高風(fēng)險(xiǎn)的解決、確定大多數(shù)需求和范圍以及進(jìn)行更為實(shí)際的評(píng)估構(gòu)造對(duì)遺留下來(lái)的風(fēng)險(xiǎn)較低和比較簡(jiǎn)單的元素進(jìn)行迭代實(shí)現(xiàn),準(zhǔn)備部署移交

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論