版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
--應(yīng)用UML和模式面向?qū)ο蠓治雠c設(shè)計(jì)導(dǎo)論第一局部緒論面向?qū)ο蟮姆治雠c設(shè)計(jì)開發(fā)過程導(dǎo)論定義模型和制品第1章面向?qū)ο蟮姆治雠c設(shè)計(jì)目標(biāo): 1〕比較和比照分析與設(shè)計(jì)的異同 2〕面向?qū)ο蟮姆治雠c設(shè)計(jì)的定義 3〕面向?qū)ο蟮姆治雠c設(shè)計(jì)和組織一個企業(yè)的類比第1章面向?qū)ο蟮姆治雠c設(shè)計(jì)運(yùn)用UML、模式和面向?qū)ο蟮姆治雠c設(shè)計(jì)技術(shù)職責(zé)分配什么是分析與設(shè)計(jì)什么是面向?qū)ο蟮姆治雠c設(shè)計(jì)類比——組織MicroChaos公司的業(yè)務(wù)面向?qū)ο蟮姆治雠c設(shè)計(jì)的例子面向?qū)ο蟮呐c面向功能的分析與設(shè)計(jì)統(tǒng)一建模語言運(yùn)用UML、模式和面向?qū)ο蟮姆治雠c設(shè)計(jì)技術(shù)UML代表統(tǒng)一建模語言(UnifiedModelingLanguage),是使用面向?qū)ο蟾拍钸M(jìn)行系統(tǒng)建模的圖形化表示法。本課程將學(xué)習(xí)UML表示法,并將其應(yīng)用于學(xué)習(xí)案例中模式(Pattern)*是一組原那么和規(guī)那么——能夠編成典型設(shè)計(jì)原那么的已命名的問題解決程式。系統(tǒng)設(shè)計(jì)的關(guān)鍵問題:如何將職責(zé)分配給對象所在的類?對象之間怎樣進(jìn)行信息的交互?以及每一個類具體應(yīng)該做什么?開發(fā)過程(DevelopmentProcess):描述可能的活動序列和一個軟件的生命周期。從需求分析到系統(tǒng)實(shí)現(xiàn)可能存在許多需要進(jìn)行的活動,開發(fā)人員或開發(fā)小組應(yīng)該怎樣進(jìn)行這些活動呢?職責(zé)分配-分析和設(shè)計(jì)過程的重要活動為軟件構(gòu)件分配職責(zé) 在分析和設(shè)計(jì)中可能要經(jīng)歷許多活動,在每個活動中會得到相應(yīng)的制品,并要遵循大量的準(zhǔn)那么和原那么。但最重要的技巧是: 在面向?qū)ο蠓治雠c設(shè)計(jì)中最重要的能力是能夠熟練地為軟件構(gòu)件分配職責(zé) 因?yàn)榉峙渎氊?zé)是必須要完成的一項(xiàng)活動,并且它最深刻地影響著軟件構(gòu)件的健壯性、易維護(hù)性和可重用性。 本書給出9個用于職責(zé)分配的根本原那么,將其編進(jìn)GRASP模式。進(jìn)行抽象,即發(fā)現(xiàn)適宜的對象 兩者都很重要,但前者更難于掌握。什么是分析與設(shè)計(jì)分析(Analysis):要創(chuàng)立一個系統(tǒng),需要對問題和需求進(jìn)行描述。問題是什么以及系統(tǒng)必須做什么。它強(qiáng)調(diào)對問題的調(diào)查而不是如何確定解決方案。例如,如果要開發(fā)一個圖書館信息管理系統(tǒng),這個系統(tǒng)的業(yè)務(wù)過程是什么?這是一個分析問題。設(shè)計(jì)Design):對系統(tǒng)如何滿足需求和約束進(jìn)行高層描述和具體說明。它強(qiáng)調(diào)問題的邏輯解決方案,即系統(tǒng)怎樣才能滿足需求。例如,圖書館信息系統(tǒng)能夠多大程度地精確地捕獲和記錄書的借出情況?這是一個設(shè)計(jì)問題。設(shè)計(jì)最終可以用硬件和軟件來實(shí)現(xiàn)什么是面向?qū)ο蟮姆治雠c設(shè)計(jì)面向?qū)ο蟮姆治雠c設(shè)計(jì)(Object-OrientedAnalysisandDesign):按照對象〔事物、概念、實(shí)體〕的觀點(diǎn)考慮問題域和邏輯解決方案面向?qū)ο蠓治觯喊l(fā)現(xiàn)并描述問題域中的對象或概念。例如,在圖書館信息系統(tǒng)的例子中,包括書、圖書館等概念面向?qū)ο笤O(shè)計(jì):定義能最終用面向?qū)ο蟪绦蛟O(shè)計(jì)語言實(shí)現(xiàn)的邏輯軟件對象。例如,書這個軟件對象具有題目屬性和打印方法構(gòu)造(Construction)或面向?qū)ο蟪绦蛟O(shè)計(jì):實(shí)現(xiàn)所設(shè)計(jì)的構(gòu)件。例如用C++/Java/Smalltalk/VB編寫一個Book類什么是面向?qū)ο蟮姆治雠c設(shè)計(jì)分析設(shè)計(jì)構(gòu)造問題的調(diào)查邏輯解決方案編碼開發(fā)過程中各活動的含義例子:分析-設(shè)計(jì)-構(gòu)造用面向?qū)ο蟮某绦蛟O(shè)計(jì)語言表示領(lǐng)域概念分析過程中概念的表示titleBookPublicclassBook{publicvoidprint();privateStringtitle;}面向?qū)ο蟮乃枷霃?qiáng)調(diào)對象的表示類比—組織
MicroChaos公司的業(yè)務(wù)業(yè)務(wù)過程:保證企業(yè)運(yùn)轉(zhuǎn)所要做的事情,如銷售、發(fā)薪水、還債、開發(fā)軟件等。類似于需求分析(requirementsanalysis)。描述方法為用況(usecase),它是對企業(yè)或系統(tǒng)內(nèi)過程的文字化描述: 用況:訂貨 描述:起始于顧客打給銷售代表要求購置Microbutterfly,然后銷售代表用訂單記錄顧客和所要購置的商品信息。 使用用況來標(biāo)識并記錄過程信息實(shí)際上并不是面向?qū)ο蠓治雠c設(shè)計(jì)過程中的一項(xiàng)活動,因?yàn)樗鼪]有以對象觀點(diǎn)為中心。但它仍然是面向?qū)ο蠓治雠c設(shè)計(jì)方法學(xué)中非常重要和廣為采用的重要步驟。用況也是UML的一局部。類比—組織
MicroChaos公司的業(yè)務(wù)角色:識別活動中所涉及各類人的角色,如顧客、銷售代表、軟件工程師等。類似于面向?qū)ο蟮念I(lǐng)域分析(object-orienteddomainanalysis)。可用概念模型(conceptualmodel)進(jìn)行描述,但它展示了領(lǐng)域中各個事物的分類,不僅僅是人的角色。職責(zé)分配(responsibilityassignment):為系統(tǒng)中的軟件對象指派任務(wù)和職責(zé),軟件對象要進(jìn)行協(xié)作或交互。例如,當(dāng)你和雇員共事的時候,為了滿足一個過程的需要,雇員必須完成一定的任務(wù),那么就要給他們分配職責(zé),還要確定人們?nèi)绾螀f(xié)作或如何共同分擔(dān)工作職責(zé)分配和對象之間的交互用設(shè)計(jì)類圖(designclassdiagram)和協(xié)作圖(collaborationdiagram)來展示,協(xié)作圖顯示了類的定義和軟件對象之間的消息流動類比—組織
MicroChaos公司的業(yè)務(wù)業(yè)務(wù)類比面向?qū)ο蠓治雠c設(shè)計(jì)相關(guān)文檔什么是業(yè)務(wù)流程?需求分析用況圖雇員的角色是什么?域分析概念模型誰負(fù)責(zé)什么?如何交互?職責(zé)分配與交互設(shè)計(jì)設(shè)計(jì)類圖、協(xié)作圖面向?qū)ο蟮姆治雠c設(shè)計(jì)的例子定義用況:理解需求包括理解領(lǐng)域過程和外部環(huán)境——參與過程的外部參與者。這些領(lǐng)域過程可以通過用況〔Usecase〕來表示——即用結(jié)構(gòu)化的文本格式對領(lǐng)域過程進(jìn)行描述。 用況:Playagame〔進(jìn)行游戲〕 參與者:Player〔游戲者〕 描述:起始于游戲者拾起骰子,并投擲骰子。如果總點(diǎn)數(shù)是7,游戲者贏,否那么輸。定義概念模型定義用況描述系統(tǒng)需求時的步驟定義協(xié)作圖定義設(shè)計(jì)類圖面向?qū)ο蟮姆治雠c設(shè)計(jì)的例子定義概念模型:問題域的分解要涉及對該問題域重要的概念、屬性和關(guān)系等的識別。---概念模型不是對軟件構(gòu)造的描述,它表達(dá)了真實(shí)世界中問題域的概念。PlayernameDiefacevalueDiceGameIncludes12Plays1112Rolls擲骰子游戲的概念模型面向?qū)ο蟮姆治雠c設(shè)計(jì)的例子定義協(xié)作圖:顯示了實(shí)例和方法調(diào)用之間的消息流:游戲者:d1:骰子play()1:r1:=roll():d2:骰子2:r2:=roll()展示軟件對象之間消息傳遞的協(xié)作圖面向?qū)ο蟮姆治雠c設(shè)計(jì)的例子定義設(shè)計(jì)類圖:需要答復(fù)對象如何與其他對象連接?類中方法是什么?只描述軟件構(gòu)件,不考慮實(shí)際運(yùn)作概念。游戲者play()roll()擲骰子游戲包含12做游戲1112滾動姓名骰子點(diǎn)數(shù)initialize()軟件構(gòu)件的設(shè)計(jì)類圖面向?qū)ο蟮姆治雠c設(shè)計(jì)的例子總結(jié) 1〕定義用況 2〕定義概念模型 3〕定義協(xié)作圖 4〕定義設(shè)計(jì)類圖面向?qū)ο蟮呐c面向
功能的分析與設(shè)計(jì)分解是處理復(fù)雜性的主要策略——將問題分解成易于管理控制的單元。結(jié)構(gòu)化分析和設(shè)計(jì)對問題的分解尺度主要是依據(jù)功能或過程。而面向?qū)ο蟮姆治雠c設(shè)計(jì)強(qiáng)調(diào)以對象為尺度。分析與設(shè)計(jì)的界限是模糊的,在分析階段重點(diǎn)理解問題,而將系統(tǒng)解決方案、系統(tǒng)性能等推遲解決。更多地面向分析更多地面向設(shè)計(jì)什么?需求?領(lǐng)域調(diào)查?如何?邏輯解決方案?分析與活動共存于一個連續(xù)體上面向?qū)ο蟮呐c面向
功能的分析與設(shè)計(jì)圖書館信息管理系統(tǒng)面向?qū)ο蟮呐c面向功能的問題分解按照對象或概念進(jìn)行分解按照功能或過程分解結(jié)構(gòu)化的分析設(shè)計(jì)面向?qū)ο蟮姆治鲈O(shè)計(jì)CatalogLibrarianBookLibrarySystemRecordLoansAddResourcesReportFines統(tǒng)一建模語言UML是“描述、可視化以及構(gòu)造軟件系統(tǒng)制品的一種語言”。它是一個表示法系統(tǒng),著眼于使用面向?qū)ο蟮母拍钸M(jìn)行系統(tǒng)建模。UML是OMG(ObjectManagementGroup)所接受的標(biāo)準(zhǔn),在CASE〔計(jì)算機(jī)輔助軟件工程〕領(lǐng)域得到認(rèn)同,參見。對如何進(jìn)行分析與設(shè)計(jì)不提供指導(dǎo),也不對開發(fā)過程的活動順序提供指導(dǎo),而只是一們建模語言。第2章開發(fā)過程導(dǎo)論目標(biāo)
介紹一個從需求分析到系統(tǒng)實(shí)現(xiàn)的簡單開發(fā)過程第2章開發(fā)過程導(dǎo)論導(dǎo)言UML和開發(fā)過程高層步驟迭代開發(fā)方案和細(xì)化階段構(gòu)造階段—開發(fā)周期選擇創(chuàng)立制品的時機(jī)導(dǎo)言軟件開發(fā)過程〔SoftwareDevelopmentProcess〕是軟件系統(tǒng)的創(chuàng)立、提交和維護(hù)等相關(guān)活動的組織方法。UML沒有定義一個標(biāo)準(zhǔn)的過程。UML的作者也成認(rèn)健壯的建模語言和開發(fā)過程兩者都很重要。但過程的標(biāo)準(zhǔn)化已經(jīng)超出了UML的定義范圍。推薦的開發(fā)過程和模型RPM(RecommendedProcessandModel):采用迭代式的、增量的、用況驅(qū)動的開發(fā)方法。開發(fā)人員能夠獲得如何創(chuàng)立一個好的設(shè)計(jì)的技能以及各個開發(fā)組織能夠支持和培育使用這種技能,遠(yuǎn)比遵循規(guī)定的開發(fā)過程或者開發(fā)方法重要。這種技能源自掌握一套理論原那么,以及識別和抽取適當(dāng)?shù)膶ο蟛⒙氊?zé)分配給這些對象。軟件過程中的一些根本過程在此被忽略,如構(gòu)思、工程方案、并行小組之間的交互、技術(shù)支持、培訓(xùn)、工程管理、文檔的生成與管理和軟件測試等過程。導(dǎo)言Martin-OdellFusionOOSEBoochOMTUML職責(zé)驅(qū)動的設(shè)計(jì)推薦的過程與模型(RPM)對RPM產(chǎn)生影響的方法UML和開發(fā)過程UML對制品(artifact)和表示法進(jìn)行了標(biāo)準(zhǔn)化,但沒有定義一個標(biāo)準(zhǔn)的開發(fā)過程,原因是: 1〕盡量使建模表示法更廣泛地被采納而不受標(biāo)準(zhǔn)的開發(fā)過程的約束. 2〕一個適宜的開發(fā)過程所包含的活動具有很大可變性,取決于人的技能、研究與開發(fā)的比率、問題的性質(zhì)與工具等.高層步驟提交應(yīng)用系統(tǒng)應(yīng)包括以下階段: 1〕方案和細(xì)化(PlanandElaborate)——制訂方案、定義需求、創(chuàng)立原型 2〕構(gòu)造(Build)——進(jìn)行系統(tǒng)的構(gòu)建 3〕實(shí)施(Deploy)——最終實(shí)現(xiàn)系統(tǒng)并投入使用方案和細(xì)化構(gòu)造實(shí)施開發(fā)過程中的高層步驟迭代開發(fā)迭代開發(fā)的生命周期是基于對一個系統(tǒng)進(jìn)行連續(xù)的擴(kuò)充和精化,需要經(jīng)歷假設(shè)干個開發(fā)周期,每個周期都需要經(jīng)歷分析、設(shè)計(jì)、實(shí)現(xiàn)和測試階段。每個開發(fā)周期只針比照較小的一局部需求。經(jīng)典的瀑布模型的生命周期針對完整的系統(tǒng)需求進(jìn)行每一項(xiàng)活動,且只進(jìn)行一次。迭代開發(fā)的優(yōu)點(diǎn)是: 1〕不會因?yàn)殚_發(fā)過程太復(fù)雜而使人無從下手; 2〕在開發(fā)周期的早期就能夠得到反響信息,因?yàn)槊總€周期只快速實(shí)現(xiàn)系統(tǒng)的一小局部。迭代開發(fā)時間盒:每個開發(fā)周期的時間限定,一般為兩周到兩月計(jì)劃和細(xì)化構(gòu)造實(shí)施開發(fā)周期1開發(fā)周期2…構(gòu)造測試分析設(shè)計(jì)同步制品精化計(jì)劃兩周——兩月確定開發(fā)周期的時間盒迭代開發(fā)用況和迭代開發(fā)周期:用況是對一個領(lǐng)域過程的描述,如Borrowbooksfromalibrary。迭代開發(fā)周期是通過用況需求來組織的。一個開發(fā)周期的任務(wù)是實(shí)現(xiàn)一個或者多個用況,或者用況的簡化版本。劃分用況的層次:劃分的策略是首先從問題領(lǐng)域和高層效勞中抽取對系統(tǒng)核心體系結(jié)構(gòu)影響最大的用況及具有高風(fēng)險(xiǎn)的關(guān)鍵用況。方案和細(xì)化階段方案:時間進(jìn)度表、資源規(guī)劃、預(yù)算等。初步調(diào)查報(bào)告:目標(biāo)、選擇、業(yè)務(wù)需求。需求規(guī)格說明:關(guān)于需求的聲明型陳述。術(shù)語表:一個術(shù)語字典和相關(guān)信息,如約束和規(guī)那么。原型:用于對問題、高風(fēng)險(xiǎn)因素和需求的輔助理解。用況:對領(lǐng)域過程的文字描述。用況圖:展示所有的用況和用況之間的關(guān)系。概念模型草案:用來理解領(lǐng)域中的詞匯,特別是與用況和需求說明有關(guān)的詞匯。方案和細(xì)化階段1定義計(jì)劃草案2編制初步調(diào)查報(bào)告3定義需求4在術(shù)語表中記錄術(shù)語a5實(shí)現(xiàn)原型b,d6定義用況(高層用況和基本用況)7定義概念模型草案c8定義系統(tǒng)體系結(jié)構(gòu)草案a,c,d9精化計(jì)劃注解:a持續(xù)進(jìn)行,b可選,c可以拖后,d順序可變方案和細(xì)化階段中的活動樣例方案和細(xì)化階段制品的創(chuàng)立順序: 盡管向?qū)D說明了制品創(chuàng)立的一個線性順序,但實(shí)際中并不全是這樣。例如制品可以并行創(chuàng)立。這種情況對概念模型、術(shù)語表、用況圖特別適用。各制品是相互影響的。構(gòu)造階段——開發(fā)周期構(gòu)造階段包括一系列重復(fù)的開發(fā)周期,而每個開發(fā)周期都對系統(tǒng)進(jìn)行擴(kuò)展,構(gòu)造階段的最后目標(biāo)是得到能夠正確符合需求的軟件系統(tǒng)。一個開發(fā)周期中制品的創(chuàng)立順序并不嚴(yán)格,如概念模型和術(shù)語表可以并行創(chuàng)立,交互圖和設(shè)計(jì)類圖也可以并行創(chuàng)立。構(gòu)造階段——開發(fā)周期1定義根本用況a2精化用況圖3精化概念模型4精化術(shù)語表b5定義系統(tǒng)順序圖6定義操作契約7定義狀態(tài)圖c注解:a以前未做而現(xiàn)在要做,b要持續(xù)進(jìn)行,c可選構(gòu)造測試分析設(shè)計(jì)同步制品精化計(jì)劃分析階段中的活動樣例構(gòu)造階段——開發(fā)周期構(gòu)造測試分析設(shè)計(jì)同步制品精化計(jì)劃1定義真實(shí)用況2定義報(bào)告、用戶界面和記事本3精化系統(tǒng)體系結(jié)構(gòu)b4定義交互圖5定義設(shè)計(jì)類圖a注解:a與交互圖并行,b順序可變6定義數(shù)據(jù)庫模式構(gòu)造階段中的活動樣例選擇創(chuàng)立制品的時機(jī)何時創(chuàng)立概念模型:概念模型(Conceptualmodel)代表了問題域中的概念或?qū)ο?。一個好的策略是快速建立一個粗略的概念模型,重點(diǎn)找出需求文檔中出現(xiàn)的明顯概念。然后在每個開發(fā)周期中,針對所要處理的需求逐步細(xì)化和擴(kuò)展此概念模型。何時創(chuàng)立擴(kuò)展用況:高層用況(High-levelusecase〕通常是對一個過程的簡潔〔三兩句話〕描述。而擴(kuò)展用況(Expandedusecase)是長篇〔可能包含幾百句話〕表達(dá)。策略是在方案和細(xì)化階段,要創(chuàng)立所有的高層用況,但只對最關(guān)鍵和最重要的用況采用擴(kuò)展格式重新進(jìn)行描述,而將其它用況的擴(kuò)展描述推遲到處理這些用況的開發(fā)周期中進(jìn)行。第3章定義模型和制品目標(biāo) 1〕定義分析和設(shè)計(jì)模型 2〕說明分析和設(shè)計(jì)制品之間的依賴關(guān)系
第3章定義模型和制品導(dǎo)言建模系統(tǒng)樣例模型制品之間的關(guān)系導(dǎo)言介紹面向?qū)ο蠓治雠c
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年大學(xué)地理(氣候?qū)W原理)試題及答案
- 2025年中職飼草栽培與加工(飼草品質(zhì)提升技術(shù))試題及答案
- 2025四川雅安石棉縣佳業(yè)勞務(wù)派遣有限公司招聘石棉縣應(yīng)急救援指揮中心輔助人員1人備考題庫及答案詳解(考點(diǎn)梳理)
- 2026四川遂寧市船山區(qū)中醫(yī)醫(yī)院招聘備考題庫及答案詳解1套
- 《中國傳統(tǒng)能源地區(qū)低碳轉(zhuǎn)型》專題政策研究報(bào)告
- 云南省部分學(xué)校2025-2026學(xué)年七年級上學(xué)期第一次月考?xì)v史試題(含答案)
- 2024屆河南省濮陽市范縣高三下學(xué)期模擬測試(二)歷史試題(含答案)
- 2026浙江麗水學(xué)院招聘(引進(jìn))高層次人才71人備考題庫(2026年第1號)及答案詳解參考
- 2025云南昆明市盤龍區(qū)人民政府滇源街道辦事處公益性崗位招聘5人備考題庫含答案詳解
- 2026“夢工場”招商銀行銀川分行寒假實(shí)習(xí)生招聘備考題庫及答案詳解(奪冠系列)
- 產(chǎn)品供貨方案、售后服務(wù)方案
- 十八而志夢想以行+活動設(shè)計(jì) 高三下學(xué)期成人禮主題班會
- 2023年上海華東理工大學(xué)機(jī)械與動力工程學(xué)院教師崗位招聘筆試試題及答案
- TOC供應(yīng)鏈物流管理精益化培訓(xùn)教材PPT課件講義
- 醫(yī)院18類常用急救藥品規(guī)格清單
- 放棄公開遴選公務(wù)員面試資格聲明
- 2023-2024學(xué)年江蘇省海門市小學(xué)語文五年級期末點(diǎn)睛提升提分卷
- GB/T 1685-2008硫化橡膠或熱塑性橡膠在常溫和高溫下壓縮應(yīng)力松弛的測定
- 北京城市旅游故宮紅色中國風(fēng)PPT模板
- DB42T1319-2021綠色建筑設(shè)計(jì)與工程驗(yàn)收標(biāo)準(zhǔn)
- 經(jīng)濟(jì)學(xué)原理 第一章課件
評論
0/150
提交評論