軟件工程課件 5_第1頁
軟件工程課件 5_第2頁
軟件工程課件 5_第3頁
軟件工程課件 5_第4頁
軟件工程課件 5_第5頁
已閱讀5頁,還剩44頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第五章軟件設(shè)計(jì)

內(nèi)容軟件設(shè)計(jì)的原則和過程用Java進(jìn)行面向?qū)ο笤O(shè)計(jì)軟體系結(jié)構(gòu)要素模式設(shè)計(jì)方法軟體系結(jié)構(gòu)建模用UML進(jìn)行軟體系結(jié)構(gòu)的描述軟件設(shè)計(jì)知識(shí)域主題的本體結(jié)構(gòu)

軟件設(shè)計(jì)質(zhì)量的分析和評(píng)估軟件設(shè)計(jì)符號(hào)軟件設(shè)計(jì)策略方法軟件結(jié)構(gòu)與體系結(jié)構(gòu)軟件設(shè)計(jì)關(guān)鍵問題軟件設(shè)計(jì)基礎(chǔ)一般設(shè)計(jì)概念軟件設(shè)計(jì)上下文軟件設(shè)計(jì)過程使能技術(shù)并發(fā)性事件的控制與處理組件分布錯(cuò)誤與異常處理、容錯(cuò)體系結(jié)構(gòu)與視點(diǎn)體系結(jié)構(gòu)風(fēng)格(宏觀體系結(jié)構(gòu)模式)質(zhì)量屬性質(zhì)量分析和評(píng)價(jià)技術(shù)度量結(jié)構(gòu)描述(靜態(tài)視圖)行為描述(動(dòng)態(tài)視圖)一般策略面向工程的(結(jié)構(gòu)化)設(shè)計(jì)面向?qū)ο蟮脑O(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)為中心的設(shè)計(jì)基于組件的設(shè)計(jì)交互與表現(xiàn)數(shù)據(jù)持久性設(shè)計(jì)模式(微觀體系結(jié)構(gòu)模式)程序和框架族其它方法軟件設(shè)計(jì)軟件設(shè)計(jì)十大原則(Davis)隧道視野原則分析模型原則模式復(fù)用原則智力差距原則集成原則可修改性原則可靠性原則抽象級(jí)別原則評(píng)估質(zhì)量原則系統(tǒng)性原則軟件設(shè)計(jì)十大原則困難原則需求原則文檔原則復(fù)用原則理解應(yīng)用原則避免例外原則概念完整原則適應(yīng)性原則優(yōu)秀人員原則可靠性原則“類森林”圖

ABDECFGPQTURVS類提供4個(gè)級(jí)別的可見性

公有可見性(Public)私有可見性(Private)保護(hù)可見性(Protected)友類可見性(Friend)圖書館系統(tǒng)的用況圖

讀者館員借書還書添加書館員刪除書添加借閱者更新借閱者場景讀者找到一本要借的書,交給圖書館館員圖書館館員在圖書館系統(tǒng)中識(shí)別出讀者圖書館館員在圖書館系統(tǒng)中識(shí)別出那本書圖書館館員通過圖書館系統(tǒng)將書借給讀者圖書館系統(tǒng)記錄下這次借閱對(duì)象發(fā)現(xiàn)檢查清單檢查問題空間,同時(shí)查看顧客提供的所有圖片資料檢查其他用要與正在建模的系統(tǒng)進(jìn)行通信或互操作的系統(tǒng)檢查將存在于環(huán)境中并與系統(tǒng)實(shí)現(xiàn)互操作的物理設(shè)備,不管用來實(shí)現(xiàn)系統(tǒng)本身的技術(shù)是什么檢查系統(tǒng)必須記錄并長期保存的事件檢查與系統(tǒng)交互的不同的人所扮演的角色檢查可能與系統(tǒng)相關(guān)的物理或地理位置檢查可能與系統(tǒng)相關(guān)的組織單位(部門、分部等)評(píng)估對(duì)象的客觀標(biāo)準(zhǔn)每個(gè)對(duì)象都應(yīng)該有一些數(shù)據(jù)。如果候選對(duì)象只有一個(gè)屬性,可能它應(yīng)該作為其他對(duì)象的一個(gè)屬性,而不是一個(gè)新的對(duì)象。因?yàn)槊總€(gè)對(duì)象都需要做一些事來證明它的存在,所以應(yīng)該能夠?yàn)楹蜻x對(duì)象識(shí)別出一個(gè)或多個(gè)方法。在分析階段,候選對(duì)象的功能和目的應(yīng)該獨(dú)立于用來實(shí)現(xiàn)系統(tǒng)的硬件和軟件技術(shù)。所建議的類的所有屬性都應(yīng)該適用于該類的所有對(duì)象很多“氣味”導(dǎo)致程序需要進(jìn)行重構(gòu)的,也適合于設(shè)計(jì)階段。

CRC卡

類名職責(zé)協(xié)作類發(fā)現(xiàn)對(duì)象屬性作為一個(gè)X對(duì)象,我是如何被描述的?我在這個(gè)問題城里是怎樣描述的?我需要長期記住的狀態(tài)信息是什么?作為類X的—個(gè)成員,我可以處在什么狀態(tài)?名字選擇的建議

遵循例6.1描述的Java命名傳統(tǒng),特別要注意字母大小寫;類名應(yīng)該使用常用的名字短語,諸如Color或Sensor等;對(duì)象(引用對(duì)象的Java變量)的命名應(yīng)該表明它們是有標(biāo)識(shí)的特定實(shí)例,諸如theDoorSensor、foregroundColor、listOfSensors等;修改對(duì)象狀態(tài)的方法或?qū)е聦?duì)象做某事的方法,應(yīng)該使用主動(dòng)的動(dòng)詞短語,諸如drawShape或者setColor等;返回狀態(tài)信息的方法名應(yīng)該表明它的結(jié)果,或者使用某種形式的be動(dòng)詞,諸如getColor或isColor等。

圖書館系統(tǒng)的時(shí)序圖

aReaderaLibrariantheLibraryborrow(name,title)findReader(name)returntheReaderfindBook(title)returntheBookborrow(theReader,theBook)returnokreturnokABorrowingcreate()add(theReader)add(theBook)findReader(name)*findBook(title)Shape抽象類圖

CircleRectangleShapeCircle類和Rectangle類從Shape類派生出來

-radius:doubleCircle+area():double+Circle(org:Point,rad:double)+Circle()+getRadius():double+perimeter():double+setRadius(r:double):void-height:double-wedth:doubleRectangle+area():double+getH():double+getW():double+perimeter():double+Rectangle(org:Point,h:double,w:double)+Rectangle()+setHW(h:double,w:double):void-color:Color-origin:PointShape+area():double+getColor():Color+getOrigin():Point+perimeter():double+setColor(col:Color):void+setOrigin(org:Point):void#Shape(col:Color,org:Point)#Shape()#Shape(org:Point)從整體上把握

理解問題理解目標(biāo)環(huán)境從對(duì)象角度來思考獲得幫助封裝

最大化封裝最小化耦合分離GUI設(shè)計(jì)類

類需要有一個(gè)目的類與屬性關(guān)聯(lián)與繼承類不能什么事都做繼承

是測試將屬性和操作盡可能向上移別把屬性和方法移到太高的位置發(fā)現(xiàn)超類通用指南

名字重要一次做一件事不要重新發(fā)明輪子不會(huì)一次就搞定簡潔性您的軟件不會(huì)消失參數(shù)化類的UML圖標(biāo)

LivingThing類是一個(gè)參數(shù)化類

帶參數(shù)的類LivingThing隱式綁定的表示法

三類設(shè)計(jì)模式創(chuàng)建型模式(CreationalPattern)結(jié)構(gòu)型模式(StructuralPattern)行為模式(BehavioralPattern)設(shè)計(jì)模式四要素

為了便于用文字描述而對(duì)模式所起的名稱(Name)該模式所能解決的問題(Problem)說明如何解決問題以及模式中的對(duì)象或類之間如何協(xié)作的解決方案(Solution)運(yùn)用模式所產(chǎn)生的后果(Consequence)職責(zé)鏈模式的結(jié)構(gòu)

特定于餐館領(lǐng)域的職責(zé)鏈設(shè)計(jì)模式

用參數(shù)化協(xié)作來表示特定于餐館領(lǐng)域的職責(zé)鏈設(shè)計(jì)模式

IE打開Web頁時(shí)的職責(zé)鏈模式

用參數(shù)化協(xié)作表示的IE打開Web頁時(shí)的職責(zé)鏈模式

ComputeFib(n)操作的活動(dòng)圖,即計(jì)算Fibnacci數(shù)列的第n個(gè)數(shù)

數(shù)列計(jì)算器模式的類結(jié)構(gòu)

數(shù)列計(jì)算器模式中對(duì)象之間的交互

計(jì)算三角數(shù)的參數(shù)化協(xié)作

計(jì)算階乘的參數(shù)化協(xié)作

軟件體系結(jié)構(gòu)的元模型

軟件體系結(jié)構(gòu)軟件體系結(jié)構(gòu)描述體系結(jié)構(gòu)設(shè)計(jì)過程體系結(jié)構(gòu)風(fēng)格向?qū)н壿嬕晥D過程視圖實(shí)現(xiàn)視圖部署視圖用例視圖體系結(jié)構(gòu)風(fēng)格體系結(jié)構(gòu)模板需求系統(tǒng)結(jié)構(gòu)體系結(jié)構(gòu)藍(lán)圖窗體連接組件約束約束滿意是一個(gè)…關(guān)系到產(chǎn)生描述組成體系結(jié)構(gòu)視圖有確定軟件體系結(jié)構(gòu)的建模空間與要素

軟件體系結(jié)構(gòu)的建模過程應(yīng)考慮以下三點(diǎn):與系統(tǒng)需求分析和設(shè)計(jì)的關(guān)系;軟件體系結(jié)構(gòu)自身建模的階段和步驟;軟件體系結(jié)構(gòu)風(fēng)格的選擇、模型的分類和構(gòu)件的組裝及以上要素的描述過程。軟件體系結(jié)構(gòu)模型的分類:軟件體系結(jié)構(gòu)的模型從總體上可劃分為靜態(tài)模型和動(dòng)態(tài)模型,不同人員從不同的角度在不同的生命周期觀察體系結(jié)構(gòu)所獲得的模型視圖也不盡相同,所以要從不同的視角建立模型,全面地反映系統(tǒng)的總體結(jié)構(gòu)、行為、用法、功能、性能、復(fù)用、過程和可理解性等體系結(jié)構(gòu)關(guān)注的內(nèi)容。軟件體系結(jié)構(gòu)的描述:涉及對(duì)風(fēng)格、模型和各構(gòu)造要素的描述,包括非形式化描述和形式化描述。"4十1”模型

過程視角開發(fā)視角邏輯視角物理視角場景視角最終用戶:功能需求編程人員:軟件管理系統(tǒng)集成人員:性能可擴(kuò)充性、吞吐量等系統(tǒng)工程人員:系統(tǒng)拓?fù)洹惭b、通信等軟件體系結(jié)構(gòu)的生命周期模型

體系結(jié)構(gòu)的非形式化描述體系結(jié)構(gòu)的性質(zhì)分析體系結(jié)構(gòu)的規(guī)范描述體系結(jié)構(gòu)的終結(jié)體系結(jié)構(gòu)提供、評(píng)價(jià)和度量體系結(jié)構(gòu)的演化體系結(jié)構(gòu)的實(shí)施體系結(jié)構(gòu)的求精驗(yàn)證體系結(jié)構(gòu)的求精體系結(jié)構(gòu)的形式化基礎(chǔ)需要演化或擴(kuò)展否需要求精否yesnonoyes建立軟件體系結(jié)構(gòu)模型的三步驟

軟件體系結(jié)構(gòu)的非形式化描述軟件體系結(jié)構(gòu)的規(guī)范描述和分析軟件體系結(jié)構(gòu)的求精及其驗(yàn)證使用UML描述軟件體系結(jié)構(gòu)(1)用例視圖由專門描述可被最終用戶、分析人員和測試人員看到的系統(tǒng)行為的用例組成,它描述了形成系統(tǒng)體系結(jié)構(gòu)的動(dòng)力;邏輯視圖包含了類、接口和協(xié)作,這些視圖主要支持系統(tǒng)的功能需求,即系統(tǒng)最終提供給用戶的服務(wù);過程視圖包含了形成系統(tǒng)并發(fā)與同步機(jī)制的線程和進(jìn)程,主要針對(duì)性能、可延展性和系統(tǒng)的吞吐量,側(cè)重于描述進(jìn)程的主動(dòng)類;實(shí)現(xiàn)視圖包含了用于裝配與發(fā)布物理系統(tǒng)的構(gòu)成和文件:部署視圖包含了形成系統(tǒng)硬件拓?fù)浣Y(jié)構(gòu)的節(jié)點(diǎn),描述組成物理系統(tǒng)部件的分布、交付和安裝。使用UML描述軟件體系結(jié)構(gòu)(2)Hofmeister等人討論了一種使用UML的構(gòu)造類型類(stereotypedclasses)、包、構(gòu)件、結(jié)合關(guān)聯(lián)和依賴,對(duì)軟件體系結(jié)構(gòu)的概念、模塊、執(zhí)行和代碼四種視圖模型進(jìn)行描述的方法。使用UML描述軟件體系結(jié)構(gòu)(3)類和對(duì)象:用UML類表示構(gòu)件類型,用UML對(duì)象表示構(gòu)件實(shí)例②類和類:用UML類表示構(gòu)件類型(可能使用構(gòu)造類型),構(gòu)件實(shí)例也是UML類來表示UML構(gòu)件:用UML構(gòu)件作為構(gòu)件類型,并用UML構(gòu)件作為構(gòu)件實(shí)例子系統(tǒng):用UML子系統(tǒng)作為構(gòu)件類型,用子系統(tǒng)實(shí)例作為構(gòu)件實(shí)例。

要點(diǎn)軟件設(shè)計(jì)在軟件開發(fā)中起著重要作用:它讓軟件工程師產(chǎn)生形成要實(shí)現(xiàn)的方案的藍(lán)圖的各種不同的模型,我們可以分析和評(píng)價(jià)這些模型,以確定使用它們能否實(shí)現(xiàn)各種不同的需求,我們可以檢查和評(píng)價(jià)各種不同的候選方案,進(jìn)行權(quán)衡,最后,除了作為構(gòu)造和測試的輸入和起始點(diǎn)外,我們可以使用作為結(jié)果的模型,來規(guī)劃后續(xù)的開發(fā)活動(dòng)。

要點(diǎn)本章從軟件體系結(jié)構(gòu)的元模型入手,分析了軟件體系結(jié)構(gòu)模型的內(nèi)涵,確定了軟件體系結(jié)構(gòu)的建??臻g和要素,指出軟件體系結(jié)構(gòu)建模應(yīng)涉及到過程、構(gòu)造元素、風(fēng)格、模型分類、描述等各個(gè)方面,這些要素在軟件體系結(jié)構(gòu)的建??臻g中相互作用和關(guān)聯(lián)。接著探討了軟件體系結(jié)構(gòu)在軟件開發(fā)中的地位、軟件體系結(jié)構(gòu)的建模過程和軟件體系結(jié)構(gòu)的描述方法。使用設(shè)計(jì)模式具有很多優(yōu)點(diǎn)??梢宰屧O(shè)計(jì)者容易地重用已經(jīng)被證明過的問題解方案,在設(shè)計(jì)中引入好的設(shè)計(jì)思想,并可以使文檔的編制更加簡化和清晰。

相關(guān)中國系統(tǒng)分析員論文題目論圖形用戶界面技術(shù)(1993)論數(shù)據(jù)倉庫的設(shè)計(jì)與實(shí)現(xiàn)(2002)相關(guān)世界軟件工程大會(huì)論文Efficientexplorationofservice-orientedarchitecturesusingaspectsHelpingusersavoidbugsinGUIapplicat

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(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)論