設(shè)計(jì)模式1.1軟件危機(jī)及方法學(xué)形成_第1頁
設(shè)計(jì)模式1.1軟件危機(jī)及方法學(xué)形成_第2頁
設(shè)計(jì)模式1.1軟件危機(jī)及方法學(xué)形成_第3頁
設(shè)計(jì)模式1.1軟件危機(jī)及方法學(xué)形成_第4頁
設(shè)計(jì)模式1.1軟件危機(jī)及方法學(xué)形成_第5頁
免費(fèi)預(yù)覽已結(jié)束,剩余126頁可下載查看

下載本文檔

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

文檔簡介

設(shè)計(jì)模惟:綜合樓 軟 及軟件方法學(xué)的形面向?qū)ο蠓杰浖嬷苘浖_發(fā)過程模 WhatisDesignChristopherAlexander,afamousprofessorof“Eachpatterndescribesaproblemwhichoccursoverandoveragaininourenvironment,andthendescribesthecoreofthesolutiontothatproblem,insuchawaythatyoucanusethissolutionamilliontimesover,withoutever ngitthesamewaytwice.”AdesignIsacommonsolutiontoarecurringproblemin Whywouldwhatanarchitectsaysberelevanttosoftware?替了墻壁和門窗。兩類模式的都在于提供了GoF(GangofFour):ErichGamma,RichardHelm,RalphJohnson&JohnVli 23種經(jīng)典的軟件設(shè)計(jì)模 WhyshouldwelearnDesign

HowtomaintainHowto 何謂軟件 軟件的特 軟件的發(fā)程序設(shè)計(jì)階段 程序系統(tǒng)階段 程序+文檔→“軟件”→“軟 ”→軟件工1968 軟件的規(guī)類參加人員研制期產(chǎn)品規(guī)模(源程序行數(shù)微11~4小11~6中1~2大2~3甚大4~5極大5~10 軟 所帶來的嚴(yán)StandishGroup對 成功完推遲完成、超出預(yù)算和/或功能缺失有78% 組織卷入糾紛并最終以法律程序解其中67%因交付的軟件產(chǎn)品的性能或功能無法達(dá)其中56%承諾的交付日期幾次推其中45%所交付的軟件存在嚴(yán)重錯誤以至于無法使 經(jīng)典案例 花了大約5000人一年的工作量,最多時,有 都是從1000個程序錯誤而修正的結(jié) 經(jīng)典案例1963年,用于控制火星探測器的計(jì)算機(jī)軟件中探測器發(fā)生,造成高達(dá)數(shù)億的損失。 無可挽回的惡性事故。如,銀行的存款可能被化 軟件成本在系統(tǒng)中的比年代 年年1985 與軟件本身特點(diǎn)有缺乏“可預(yù)見性”,管理和控制軟件開發(fā)的過程規(guī)模龐大,在技術(shù)和管理上異常復(fù)雜與開發(fā) 的方法不正確有忽視需求分

輕視軟 運(yùn)用的是數(shù)學(xué)方法,注重算法與邏輯方法的研研究對象則側(cè)重于一些較小的具體程序模注重“微觀正確性”,研究的內(nèi)容是程序的“正確性證明應(yīng)用的是工程方法,注重工程方法與工具研研究對象一般指“大型程序”,是一個系 軟件工程方法(結(jié)構(gòu)化方法 1.2.1結(jié)構(gòu)化程序設(shè)計(jì)方法概結(jié)構(gòu)程序設(shè)計(jì)Atechniquefororganizingandcodingcomputerprogramsinwhichahierarchyofmodulesisused,eachhavingasingleentryandasingleexitpoint,andinwhichcontrolispasseddownwardthroughthestructurewithoutunconditionalbranchestohigherlevelsofthestructure.Threetypesofcontrolflowareused:sequential,selection,anditeration 結(jié)構(gòu)化程序設(shè)計(jì)方法概 數(shù)據(jù)流分析技術(shù)-數(shù)據(jù)流圖(DataFlowDiagram,間的溝

只考慮系統(tǒng)基本邏輯功能,而不考慮具體的物理實(shí) !DFD的!起點(diǎn)/終點(diǎn)或源/宿處理/M:M,但至少數(shù) 數(shù)據(jù)(data 數(shù)據(jù)流圖的層次結(jié) 分層的數(shù)據(jù)流XX2131113322 示 示示頂層數(shù)據(jù)流 示

圖2.6(第一層數(shù)據(jù)流圖示圖2.7 的類型決定了映射的方法。信息流有下述兩種類型 變換

信息

變換流結(jié)構(gòu)圖示 事務(wù)流結(jié)構(gòu)圖示 變換分 設(shè)計(jì)步

變換分 示例:汽車數(shù)通過模數(shù)轉(zhuǎn)換實(shí)現(xiàn)傳感器和處理機(jī)的接指示加速超速響鈴警

第二級分解的結(jié) 射中心”(事務(wù)中心) 70年代初由英國的M.Jackson提出,在西歐率先流 1. 對應(yīng)偽碼AA圖6.8A由B、C、D 2. 圖6.9根據(jù)條件A是B或C或

AselectBAorcond2Aorcond3A 3. 對應(yīng)偽碼Aiteruntil(或BA圖6.10A由B出現(xiàn)N次 Jackson圖的優(yōu)缺優(yōu)缺 Step.1-2從數(shù)據(jù)結(jié)構(gòu)圖導(dǎo)出Jackson(a)輸入數(shù)據(jù)結(jié)構(gòu);(b 第二圖6.13描繪統(tǒng)計(jì)空格程序結(jié)構(gòu)的Jackson

第六 第二圖6.13描繪統(tǒng)計(jì)空格程序結(jié)構(gòu)的Jackson

第六 第二圖6.13描繪統(tǒng)計(jì)空格程序結(jié)構(gòu)的Jackson

第六 第二第五圖6.13描繪統(tǒng)計(jì)空格程序結(jié)構(gòu)的Jackson

第六 Step4出所有操作和條件,并把它們分配 5)sum:=06)pointer:=17) 統(tǒng)計(jì)空格totalsum0程序體iter until文件結(jié)束印出字符...統(tǒng)計(jì)空格 Jacksonvs.SD方Jackson方(Jackson圖

(Jackson圖

(Jackson偽代碼

(DFD圖

SD(SC圖

(PDL等工具

面向?qū)ο蠓浇Y(jié)構(gòu)化方法的缺,面向?qū)ο蠓椒ǖ男?并且大大減少軟件 細(xì)節(jié),不影響整個系統(tǒng) 面向?qū)ο蠓?面向?qū)ο蠓椒ǖ囊阉袑ο蠖紕澐殖深?Class)。每個類都定義了一組數(shù)據(jù)和一組操作——繼承對象彼此之間僅能通過發(fā)送消息互相聯(lián)對象的所有”私有信息”都被封裝在該對象內(nèi),不能從外界直——封裝( 面向?qū)ο蠓椒ǖ膬?yōu) 軟件生命周

軟件生命周 概要設(shè)計(jì)(總體設(shè)計(jì) 詳細(xì)設(shè)計(jì)(模塊設(shè)計(jì)詳細(xì)設(shè)計(jì)每個模確定實(shí)現(xiàn)模塊功能所需的算法和數(shù)據(jù)結(jié) 綜合測 軟件生命周8.軟 :通過各種必要 活動使系統(tǒng)持久地滿足用戶的需改正

完善

預(yù)防來的活動 軟件開發(fā)過程模生命周期模型(過程模型規(guī)定了把軟件生命周期劃分成哪些階各個階段的執(zhí)行瀑布模型(Waterfall增量模型(Incremental快速原型模型(RapidPrototype螺旋模型(Spiral噴泉模型(FountainRUP(RationalUnified敏捷過程與極限編程(AgileSoftwareProcess&微軟過程 瀑布模型(Waterfall在軟件工得以廣泛應(yīng)用 瀑布模型(Waterfall階段間具有順序性和依賴推遲實(shí)現(xiàn)的觀 瀑布模型(Waterfall 瀑布模型(Waterfall00實(shí)際的瀑布模瀑布模型(Waterfall護(hù)工作可以在該規(guī)范的指導(dǎo)下展開,避免了軟件開發(fā)、過的隨意狀態(tài)不適應(yīng)需求經(jīng)常發(fā)生變更的環(huán)境(“沙灘上蓋樓房只有到項(xiàng)目的開發(fā)晚期才能夠得到程序的可運(yùn)行版 PrototypeModel)快速建立起可以在計(jì)算往是最終產(chǎn)品功能的子

PrototypeModel) 盡可能使用快速開發(fā)工具

PrototypeModel)優(yōu)缺

供最的功能

螺旋模型(Spiral

螺旋模型(Spiral

螺旋模型(Spiral螺旋模型(Spiral

噴泉模型(Fountain體現(xiàn)了面向?qū)ο筌浖_發(fā)過程迭代和無的特 向下箭頭:階段內(nèi)的迭代(求精

新興的軟件過RUP(RationalUnified敏捷過程與極限編程(AgileSoftwareProcess&eXtremeProgramming) SolutionsFramework,

Rational統(tǒng)一過程RationalUnifiedProcessRUP),Rational軟件面向?qū)ο鬄樵陂_發(fā)組織中分配任務(wù)和職責(zé)有一套過程框架(ProcessFramework),各個組織可根

1.5.6Rational統(tǒng)一過程BestBestProcessMadeDevelopIterativelyModelVisually(UML)ContinuouslyVerifyQualityManage

1.5.6Rational統(tǒng)一過程迭代式開發(fā)(develop管理需求(manage用例分析可視化軟件建模(modelsoftware可視化的 模語言不斷地驗(yàn)證軟件質(zhì)量(continuouslyverify控制軟件變更(control

RUP建模元角色完成工作的角色,定義他們應(yīng)履行的行為和職活動定義了工作人員如何執(zhí)行工制品工作流描述生成制品的活動序列,用以描述工作人員之間的交6 過程工作流和3 支持工作

業(yè)務(wù)建模(Business需求分析和設(shè)計(jì) ysis&

實(shí)現(xiàn)Change過程工作 ysis&Design):研究實(shí)現(xiàn)環(huán)境和系統(tǒng)構(gòu)件

支持工作(7)配置和變更管理(Configuration&Change

RUP開發(fā)過程階RUP把軟件生命周期劃分為四個連續(xù)的階

初始階段(Initial主要目

初始階段(Inception

精化階段(Elaboration主要目

精化階段(Elaboration主要成

構(gòu)建階段(Construction集成于適當(dāng)操作系統(tǒng)平臺上的軟件產(chǎn)用戶手當(dāng)前版本的描

移交階段(Transition

RUP軟件開發(fā)生命敏捷軟件開年月-13日,17位軟件開發(fā)方法專 Utah州東北部Wasatchmountains里的一個叫Snowbird雖然這些方法過去 法”(LightweightMethods),但該名字并不足以代表這些捷開發(fā)方法(AgileDevelopmentMethodology),同時組建了敏捷(AgileAlliance)

IndividualsandprocessesIndividualsandprocessesandWorking CustomercontractRespondingtofollowinga

12條原Ourhighestpriorityistosatisfythecustomerthroughearlyandcontinuousdeliveryofvaluablesoftware echangingrequirements,evenlateindevelopment.Agileprocessesharnesschangeforthecustomer'scompetitiveadvantageDeliverworkingsoftwarefrequently,fromacoupleofweekstoacoupleofmonths,withapreferencetotheshortertimescaleBusinesspeopleanddevelopersmustworktogetherdailythroughouttheprojectBuildprojectsaroundmotivatedindividuals.Givethemtheenvironmentandsupporttheyneed,andtrustthemtogetthejobThemostefficientandeffectivemethodofconveyinginformationtoandwithinadevelopmentteamisface-to-faceconversation

12條原WorkingsoftwareistheprimarymeasureofAgileprocessespromotesustainabledevelopment.Thesponsors,developers,andusersshouldbeabletomaintainaconstantpaceindefini ContinuousattentiontotechnicalexcellenceandgooddesignenhancesagilitySimplicity--theartof izingtheamountofworknotdone--isThebestarchitectures,requirements,anddesignsemergefromself-organizingteamsAtregularintervals,theteamreflectsonhowto effective,thentunesandadjustsitsbehaviouraccordingly

敏捷開發(fā)的特短周期、小版本漸進(jìn)交業(yè)務(wù)人員和開發(fā)人員長期緊密地在一起工作和交方法本身易即使在最后時刻也能夠處理需求變

敏捷開發(fā)的優(yōu)時時3個6個8個12個效率提減少百分功能缺陷投時第一第一第二第三總敏捷的成其他方法的成使用敏捷的成本

Sou

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論