版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
面向?qū)ο蟮姆治龊驮O(shè)計第1頁,課件共38頁,創(chuàng)作于2023年2月前言在很多學科中,人們早就認識到模式在構(gòu)造復雜系統(tǒng)時的重要性。軟件設(shè)計模式可以幫助開發(fā)人員描述設(shè)計片斷、重要設(shè)計思想、使用其他人的專業(yè)經(jīng)驗。模式給出了抽象的探索式過程的名稱和形式,以及面向?qū)ο蠹夹g(shù)的規(guī)則和最佳實踐。明智的工程師是不會完全從頭開始工作的,而是查詢可以使用的模式。統(tǒng)一建模語言(UML)已經(jīng)成為被用戶廣泛接受的描述軟件設(shè)計藍圖的語言。UML是用來傳遞設(shè)計理念的可視化語言。本書的重點講述開發(fā)者如何真正地應(yīng)用常用地UML元素而不是講述UML的特征。第2頁,課件共38頁,創(chuàng)作于2023年2月本章目標目標和范圍OOA/D的定義OOA/D的一個簡單例子UML和可視化敏捷建模歷史第3頁,課件共38頁,創(chuàng)作于2023年2月目標和范圍開發(fā)OOA/D的核心技能掌握這些技能是基本要求對于創(chuàng)建:設(shè)計良好健壯性可維護的軟件使用面向?qū)ο蠹夹g(shù)和語言如Java第4頁,課件共38頁,創(chuàng)作于2023年2月目標和范圍
“擁有一把錘子未必能成為建筑師“需要了解“對象”思想應(yīng)用統(tǒng)一建模語言(UML)和模式基本原理的掌握
。分配職責給對象。常用的UML表示法。常見的設(shè)計模式??蚣茉O(shè)計和架構(gòu)分析第5頁,課件共38頁,創(chuàng)作于2023年2月目標和范圍UMLvs.對象思想標準圖形表示法不是OOA/D也不是方法沒有面向?qū)ο笤O(shè)計UML是沒有意義的在OOA/D中應(yīng)用UML第6頁,課件共38頁,創(chuàng)作于2023年2月目標和范圍OOD:原則和模式如何為對象類分配職責?對象之間應(yīng)該如何協(xié)作?什么樣的類應(yīng)該做什么樣的事情?
OO設(shè)計之象征:職責驅(qū)動設(shè)計(responsibility-drivendesign)
模式:某些針對設(shè)計問題的,經(jīng)過反復驗證的解決方案可以(和已經(jīng))被表示成為最佳實踐的原則、啟示。已命名問題—解決方案公式,這些公式是系統(tǒng)化、典范的設(shè)計原則。
第7頁,課件共38頁,創(chuàng)作于2023年2月目標和范圍案例研究用例
需求分析敏捷方法到UP
使用著名的統(tǒng)一過程的敏捷(輕量的、靈活的)方法作為迭代開發(fā)過程。
第8頁,課件共38頁,創(chuàng)作于2023年2月面向?qū)ο蠓治龊驮O(shè)計分析強調(diào)的是對問題和需求的調(diào)查研究,而不是解決方案設(shè)計強調(diào)的是滿足需求的概念上的解決方案(在軟件方面和硬件方面)第9頁,課件共38頁,創(chuàng)作于2023年2月面向?qū)ο蠓治龊驮O(shè)計面向?qū)ο蠓治鰪娬{(diào)的是在問題領(lǐng)域內(nèi)發(fā)現(xiàn)和描述對象(或概念)例如,在航班信息系統(tǒng)里包含飛機、航班、飛行員等概念面向?qū)ο笤O(shè)計強調(diào)的是定義軟件對象以及它們?nèi)绾螀f(xié)作以實現(xiàn)需求。例如,在航班信息系統(tǒng)里軟件對象Plane可以有tailNumber屬性和getFightHistory方法。第10頁,課件共38頁,創(chuàng)作于2023年2月面向?qū)ο蠓治龊驮O(shè)計PlanetailNumberpublicclassPlane{privateStringtailNumber;publicListgetFlightHistory(){...}}領(lǐng)域概念領(lǐng)域概念的可視化-在面向?qū)ο缶幊陶Z言中的表示第11頁,課件共38頁,創(chuàng)作于2023年2月UML根據(jù)OMG規(guī)格說明統(tǒng)一建模語言(UML)是描述、構(gòu)造和文檔化系統(tǒng)制品的可視化語言。
第12頁,課件共38頁,創(chuàng)作于2023年2月UML應(yīng)用UML的方式:
UML作為草圖非正式的、不完整的圖,借助可視化語言的功能,用于探討問題或解決方案空間的復雜部分。
UML作為藍圖相對詳細的設(shè)計圖,用于:1)逆向工程,即以UML圖的方式對現(xiàn)有代碼進行可視化,使其易于理解。2)代碼生成(前向工程)。
UML作為編程語言用UML完成軟件系統(tǒng)可執(zhí)行規(guī)格說明。第13頁,課件共38頁,創(chuàng)作于2023年2月UML應(yīng)用UML的三種透視圖
概念透視圖用圖來描述現(xiàn)實世界或關(guān)注領(lǐng)域中的事物規(guī)格說明(軟件)透視圖用圖來描述軟件的抽象物或具有規(guī)格說明和接口的構(gòu)件,但是并不約定特定實現(xiàn)
實現(xiàn)(軟件)透視圖用圖來描述特定技術(shù)中的軟件實現(xiàn)(例如:Java)第14頁,課件共38頁,創(chuàng)作于2023年2月OOA/D的歷史1960s到1970s-OO編程語言(例如Simula和Smalltalk)開始嶄露頭角AlanKay–Smalltalk,“面向?qū)ο缶幊獭?,個人計算“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(對象管理組織)第15頁,課件共38頁,創(chuàng)作于2023年2月資料MartinFowler–UMLDistilledRumbaugh–TheUnifiedModelingLanguageReferenceManual第16頁,課件共38頁,創(chuàng)作于2023年2月第2章迭代、進化和敏捷暨南大學計算機系黃戰(zhàn)第17頁,課件共38頁,創(chuàng)作于2023年2月本章目標動機 迭代過程敏捷過程統(tǒng)一過程第18頁,課件共38頁,創(chuàng)作于2023年2月動機:迭代和進化式瀑布生命周期在編程之前就預先完成需求和設(shè)計步驟軟件項目的高失效率迭代和進化式開發(fā)及早地引入編程和測試,并重復這一循環(huán)會在還沒有詳細定義所有需求的情況下假設(shè)開發(fā)開始使用反饋來明確和改進演化中的規(guī)格說明依賴于短時快速的開發(fā)步驟、反饋和改寫來不斷明確需求和設(shè)計軟件項目的較高成功率第19頁,課件共38頁,創(chuàng)作于2023年2月動機:統(tǒng)一過程(UP)軟件開發(fā)過程描述了構(gòu)造、部署以及維護軟件的方式統(tǒng)一過程已經(jīng)成為一種流行的構(gòu)造面向?qū)ο笙到y(tǒng)的迭代軟件開發(fā)過程
UP實踐提供了如何實施OOA/D的示范例子
UP具有靈活性,可以應(yīng)用于輕量級和敏捷方法,這些方法包括其他敏捷方法(諸如XP或Scrum)的實現(xiàn)Rational統(tǒng)一過程對統(tǒng)一過程的詳細精化,并且已經(jīng)被廣泛采納
第20頁,課件共38頁,創(chuàng)作于2023年2月迭代過程迭代開發(fā)UP和大多數(shù)其他現(xiàn)代方法中的關(guān)鍵實踐在這種的生命周期方法中,開發(fā)被組織成一系列固定的短期小項目,稱為迭代每次迭代都產(chǎn)生經(jīng)過測試、集成并可執(zhí)行的局部系統(tǒng)每次迭代都具有各自的需求分析、設(shè)計、實現(xiàn)和測試活動第21頁,課件共38頁,創(chuàng)作于2023年2月迭代過程迭代和進化式(增量式)開發(fā)迭代生命周期基于對經(jīng)過多次迭代的系統(tǒng)進行持續(xù)擴展和精化早期迭代過程的思想是螺旋式開發(fā)和進化式開發(fā)每次迭代都產(chǎn)生可執(zhí)行的但不完整的系統(tǒng),它不是已經(jīng)準備好可以交付的產(chǎn)品直到多次迭代(如10次或15次迭代)之后,系統(tǒng)才可能合格地用于產(chǎn)品部署迭代的輸出不是實驗性的或?qū)G棄的原型,迭代開發(fā)也不是構(gòu)造原型.與之相反,其輸出是最終系統(tǒng)的產(chǎn)品子集第22頁,課件共38頁,創(chuàng)作于2023年2月迭代項目中的變更迭代開發(fā)抱以接受變更和改寫的態(tài)度,并以此為真正本質(zhì)的驅(qū)動力—而不是企圖全面和正確地規(guī)格化、凍結(jié)需求集(瀑布模型)UP-平衡需求和穩(wěn)定性(VS反應(yīng)式的特性蔓延)第23頁,課件共38頁,創(chuàng)作于2023年2月迭代開發(fā)的優(yōu)點減少項目失敗可能性,提高生產(chǎn)率、降低缺陷率在早期緩解高風險早期可見的進展早期反饋、用戶參與和調(diào)整,會產(chǎn)生更接近涉眾真實需求的精華系統(tǒng)可控復雜性一次迭代中的經(jīng)驗可以被系統(tǒng)地用于改進開發(fā)過程本身第24頁,課件共38頁,創(chuàng)作于2023年2月一次迭代的時間定量時間定量時長固定推延時間則違約從本次迭代中除去一些任務(wù)或需求,并將其分配在將來的迭代中第25頁,課件共38頁,創(chuàng)作于2023年2月瀑布生命周期瀑布順序生命周期試圖在編程之前詳細定義所有或大部分需求研究表明,在20世紀60年代到70年代,瀑布方法對于大多數(shù)軟件項目是拙劣的實踐它與高失敗率、低生產(chǎn)率和高缺陷率具有極大關(guān)系瀑布方法需求中45%的特性從未被使用,其早期時間表和估計與最終實際情況可相差400%第26頁,課件共38頁,創(chuàng)作于2023年2月為什么瀑布模型具有錯誤傾向假設(shè)規(guī)格說明是可預知的和穩(wěn)定的,并且能夠在項目開始時就正確定義典型的軟件項目在需求上會經(jīng)歷25%的變更“新產(chǎn)品開發(fā)”領(lǐng)域-軟件開發(fā)是(平均而言)變更極大且不穩(wěn)定的領(lǐng)域第27頁,課件共38頁,創(chuàng)作于2023年2月反饋和改寫的必要性在復雜、變更系統(tǒng)中,反饋和調(diào)整是成功的關(guān)鍵要素早期開發(fā)中的反饋來自測試中的反饋,有助于開發(fā)者精化設(shè)計或模型來自團隊處理早期特性過程的中反饋,有助于精化時間表和估計來自客戶和市場的反饋,有助于重新定義下一次迭代實現(xiàn)特性的優(yōu)先級第28頁,課件共38頁,創(chuàng)作于2023年2月如何進行迭代和進化式分析和設(shè)計看第18-20頁的例子一般錯誤認為偏激的認為“完整”的編程前分析和設(shè)計是十分有價值的第29頁,課件共38頁,創(chuàng)作于2023年2月風險驅(qū)動和客戶驅(qū)動的迭代計劃UP提倡風險驅(qū)動和客戶驅(qū)動相結(jié)合的迭代計劃早期的迭代目標識別和降低最高風險構(gòu)造客戶最關(guān)心的可視化特性風險驅(qū)動迭代開發(fā)更明確地包含了以構(gòu)架為中心迭代開發(fā)的實踐早期迭代致力于核心架構(gòu)的構(gòu)造、測試和穩(wěn)定沒有穩(wěn)定的架構(gòu)就會帶來高風險
第30頁,課件共38頁,創(chuàng)作于2023年2月敏捷開發(fā)敏捷開發(fā)方法通常應(yīng)用時間定量的迭代和進化式開發(fā)使用自適應(yīng)計劃提倡增量交付并包含其他提倡(快速和靈活的響應(yīng)變更)的價值和實踐敏捷方法具備進化式精化的計劃、需求和設(shè)計的短時間定量迭代是這些方法所共有的基本實踐.除此之外,它們還倡導反映簡易、輕量、溝通、自組織團隊等更多敏捷的實踐和原則第31頁,課件共38頁,創(chuàng)作于2023年2月敏捷方法實踐范例(Scrum)
公共項目工作室自組織團隊XP:結(jié)隊編程和測試驅(qū)動開發(fā)UP:“不管黑貓還是白貓,抓到耗子就是好貓”的態(tài)度第32頁,課件共38頁,創(chuàng)作于2023年2月敏捷建模建模的目的主要是為理解,而非文檔敏捷建模采用敏捷方法并不意味著不進行任何建模建模和模型的目的主要用于理解和溝通不要對所有或大多數(shù)軟件設(shè)計建?;驊?yīng)用UML盡可能使用最簡單的工具不要單獨建模,而是結(jié)隊(或三個人)在白板上建模并行地創(chuàng)建建?!白銐蚝谩钡暮唵伪硎痉ㄖ浪心P投伎赡懿粶蚀_的開發(fā)者應(yīng)該進行OO設(shè)計建模第33頁,課件共38頁,創(chuàng)作于2023年2月敏捷UP可以采納和應(yīng)用可適應(yīng)性和輕量級的精神推薦使用UP活動和制品的簡集實現(xiàn)前的需求和設(shè)計是不完整的以敏捷建模實踐應(yīng)用UML對于整個項目不應(yīng)有詳細的計劃階段計劃-評估項目結(jié)束日期和主要里程碑迭代計劃-詳細計劃是由一次次迭代的調(diào)整而完成的第34頁,課件共38頁,創(chuàng)作于2023年2月UP的階段四個主要階段初始大體上的構(gòu)想、業(yè)務(wù)案例、范圍和模糊評估細化已精化的構(gòu)想、核心架構(gòu)的迭代實現(xiàn)、高風險的解決、確定大多數(shù)需求和范圍以及進行更為實際的評估構(gòu)造對遺留下來的風險較低和比較簡單的元素進行迭代實現(xiàn),準備部署移交
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度股權(quán)并購終止協(xié)議
- 2025年度電商平臺內(nèi)容創(chuàng)作者孵化合作合同
- 二零二五年度海洋生態(tài)保護區(qū)海域租賃合同
- 二零二五年度新能源儲能設(shè)備融資租賃合同主體權(quán)益與能源安全
- 2025年度遺產(chǎn)繼承財產(chǎn)分配與公司股權(quán)激勵及員工持股協(xié)議
- 2025版互聯(lián)網(wǎng)保險產(chǎn)品退款協(xié)議合同3篇
- 2025年度創(chuàng)業(yè)孵化器股權(quán)變更合作協(xié)議
- 2025年度租賃房產(chǎn)租賃合同終止條件合同圖片分析
- 2025年度輔導中心學生安全協(xié)議及教育輔導責任書
- 2025年度金融科技公司控股權(quán)協(xié)議全面轉(zhuǎn)讓合同
- 2025年度公務(wù)車輛私人使用管理與責任協(xié)議書3篇
- 售后工程師述職報告
- 綠化養(yǎng)護難點要點分析及技術(shù)措施
- 2024年河北省高考歷史試卷(含答案解析)
- 車位款抵扣工程款合同
- 小學六年級數(shù)學奧數(shù)題100題附答案(完整版)
- 高中綜評項目活動設(shè)計范文
- 英漢互譯單詞練習打印紙
- 2023湖北武漢華中科技大學招聘實驗技術(shù)人員24人筆試參考題庫(共500題)答案詳解版
- 一氯二氟甲烷安全技術(shù)說明書MSDS
- 物流簽收回執(zhí)單
評論
0/150
提交評論