程序設(shè)計(jì)方法概述_第1頁(yè)
程序設(shè)計(jì)方法概述_第2頁(yè)
程序設(shè)計(jì)方法概述_第3頁(yè)
程序設(shè)計(jì)方法概述_第4頁(yè)
程序設(shè)計(jì)方法概述_第5頁(yè)
已閱讀5頁(yè),還剩31頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

江西師范大學(xué)·計(jì)算機(jī)信息工程學(xué)院·計(jì)算機(jī)科學(xué)系《面向?qū)ο蟪绦蛟O(shè)計(jì)》課程組huazhizhang@面向?qū)ο蟪绦蛟O(shè)計(jì)目錄第1章程序設(shè)計(jì)語(yǔ)言概述第2章程序設(shè)計(jì)語(yǔ)言的基本成分第3章程序設(shè)計(jì)方法概述第4章面向?qū)ο笳Z(yǔ)言基礎(chǔ)第5章類的管理及常用工具類第6章異常處理和斷言第7章線程第8章GUI編程基礎(chǔ)和applet第9章I/O流第10章網(wǎng)絡(luò)通信第11章泛型與集合框架2/363.1問題規(guī)模對(duì)程序設(shè)計(jì)方法的影響3.2結(jié)構(gòu)化程序設(shè)計(jì)方法3.3面向?qū)ο蟪绦蛟O(shè)計(jì)方法3.4兩種方法的簡(jiǎn)單評(píng)述第3章程序設(shè)計(jì)方法概述理解并掌握大程序開發(fā)的特點(diǎn)、難點(diǎn)和關(guān)注點(diǎn);掌握SP核心思想、實(shí)施步驟及方法的優(yōu)缺點(diǎn);掌握OOP的來龍去脈、核心思想,并結(jié)合大程序開發(fā)的關(guān)注點(diǎn),理解面向?qū)ο蟮幕靖拍?。本章重點(diǎn)3/36問題規(guī)模的演化(決定了程序規(guī)模和復(fù)雜性)最初:面向科學(xué)計(jì)算,規(guī)模小、需求明確60-70年代:簡(jiǎn)單管理應(yīng)用,如財(cái)務(wù)信息管理。這一階段,問題開始顯現(xiàn)。如程序的質(zhì)量差、完工時(shí)間不可預(yù)期、完工后難于維護(hù),且生產(chǎn)率較低。人們將上述問題稱作軟件危機(jī)。各種程序設(shè)計(jì)方法涌現(xiàn)。90年代:從單機(jī)/局域網(wǎng)模式基于互聯(lián)網(wǎng)模式,任務(wù)由簡(jiǎn)單數(shù)據(jù)處理決策支持。因同期程序設(shè)計(jì)科學(xué)的發(fā)展滯后于應(yīng)用的發(fā)展,軟件危機(jī)依舊存在3.1問題規(guī)模對(duì)程序設(shè)計(jì)方法的影響開發(fā)冒泡排序之類的程序很容易,綜合性業(yè)務(wù)管理系統(tǒng)卻比較困難。后者無難解算法,難在何處?這得從程序開發(fā)步驟說起。4/36說明:大程序:代碼量10萬行以上,用戶給出需求;小程序:代碼量小于10萬行,自己決定需求。程序的開發(fā)步驟(大/小程序均適合)3.1問題規(guī)模對(duì)程序設(shè)計(jì)方法的影響定義需求規(guī)約設(shè)計(jì)求解模型實(shí)現(xiàn)模型問題規(guī)模對(duì)程序開發(fā)的影響,或者說開發(fā)大程序和小程序的差別,主要體現(xiàn)在這三大步驟中。另外還需考慮人員溝通和軟件維護(hù)。5/36問題規(guī)模對(duì)小程序開發(fā)的影響需求規(guī)約簡(jiǎn)單,易于精確定義;設(shè)計(jì)求解模型(即算法)的開發(fā)是重點(diǎn);開發(fā)時(shí)關(guān)注算法的正確性和精巧性。算法完成后,編碼/測(cè)試(即實(shí)現(xiàn)模型)很簡(jiǎn)單;人員溝通協(xié)作:無(個(gè)人獨(dú)立完成整個(gè)過程)后期維護(hù):即使有,因程序規(guī)模小而變得簡(jiǎn)單。3.1問題規(guī)模對(duì)程序設(shè)計(jì)方法的影響對(duì)面向?qū)嶋H應(yīng)用的小軟件的開發(fā)而言,也是如此。6/36問題規(guī)模對(duì)大程序開發(fā)的影響難于定義穩(wěn)定、精確的需求規(guī)約;難于搭建合理的求解模型;編碼測(cè)試很困難;人員溝通協(xié)作很復(fù)雜;維護(hù)貫穿整個(gè)生命周期,使用初期維護(hù)頻繁。3.1問題規(guī)模對(duì)程序設(shè)計(jì)方法的影響復(fù)雜系統(tǒng)的求解模型的搭建原本就比較困難,加上需求動(dòng)態(tài)變化,使得求解模型要經(jīng)常修改,甚至推倒重來。正如蓋房子,房子的基本目的和用途都不清楚,結(jié)果……。大程序涉及領(lǐng)域廣、人員多,如雙方領(lǐng)導(dǎo)、管理人員、開發(fā)人員(需求、設(shè)計(jì)、編碼、測(cè)試)、終端用戶、風(fēng)險(xiǎn)評(píng)估員等,相互間溝通問題大,牽涉很多非技術(shù)因素,影響開發(fā)質(zhì)量。需求難定義:規(guī)模大、涉獵廣、理不清;外行開發(fā)系統(tǒng)讓內(nèi)行使用;開發(fā)期間用戶無法對(duì)設(shè)計(jì)進(jìn)行驗(yàn)證。需求在設(shè)計(jì)、開發(fā)、甚至在軟件使用的過程中,被逐步的“開發(fā)”出來。調(diào)試難度隨代碼量增大而呈現(xiàn)幾何級(jí)數(shù)增加,涉及子程序正確、子程序/模塊間協(xié)調(diào)正確,而且往往解決了舊錯(cuò),又引入了新問題。需求將在設(shè)計(jì)過程中“開發(fā)”出來,使用初期錯(cuò)誤涌現(xiàn),維護(hù)將貫穿整個(gè)開發(fā)、使用過程。并且維護(hù)不僅將破壞已有的設(shè)計(jì),更可能會(huì)引入許多新的錯(cuò)誤。7/36大程序開發(fā)現(xiàn)狀:缺乏成熟理論支持,確保系統(tǒng)正確是一種夢(mèng)想;目前希望在某些關(guān)鍵行為上不出錯(cuò);對(duì)求解模型,不求完全不變,但求有較規(guī)范的設(shè)計(jì)方法,模型要易于維護(hù)和擴(kuò)充。3.1問題規(guī)模對(duì)程序設(shè)計(jì)方法的影響大程序開發(fā)應(yīng)注重什么?8/36大程序開發(fā)的側(cè)重點(diǎn)可靠性:在特定時(shí)間、特定環(huán)境、做特定操作不失敗的可能性。即系統(tǒng)“核心模塊”不會(huì)發(fā)生“特定類型”錯(cuò)誤。可重用性:對(duì)已有模塊/子程序,無需修改或僅需少量修改就可拿到別處使用的難易程度;可維護(hù)性:實(shí)施各類維護(hù)活動(dòng)的難易程度。3.1問題規(guī)模對(duì)程序設(shè)計(jì)方法的影響可重用性高,可減少工作量(需求、設(shè)計(jì)、編碼測(cè)試、維護(hù)),降低錯(cuò)誤。因?yàn)橹赜媚K經(jīng)過多次復(fù)用,存在錯(cuò)誤的可能性遠(yuǎn)比新開發(fā)程序低,可靠性更容易保證。維護(hù)包括糾錯(cuò)、增/刪/改功能、換環(huán)境、系統(tǒng)重構(gòu)等,貫穿整個(gè)軟件生命周期??删S護(hù)性好,可大幅降低維護(hù)難度,減少因維護(hù)而引入的各類錯(cuò)誤。對(duì)提高可維護(hù)性的重視,怎么說都不為過!軟件工程的核心,就是為了提高軟件的可維護(hù)性。以PC機(jī)架構(gòu)設(shè)計(jì)為例解釋上述側(cè)重點(diǎn)??傮w上,大程序重在如何處理復(fù)雜性,設(shè)計(jì)出結(jié)構(gòu)合理、易于維護(hù)的系統(tǒng)處理框架。9/36兩種經(jīng)典的程序設(shè)計(jì)方法概述發(fā)展至今,產(chǎn)生許多程序設(shè)計(jì)方法,其中結(jié)構(gòu)化程序設(shè)計(jì)和面向?qū)ο蟪绦蛟O(shè)計(jì)最為經(jīng)典。二者思想萌芽幾乎同時(shí)出現(xiàn)于1968年左右。但結(jié)構(gòu)化方法率先被業(yè)界接受,并占據(jù)主導(dǎo)地位。隨著程序規(guī)模擴(kuò)大,結(jié)構(gòu)化方法在可重用性、可維護(hù)性方面遇到困難。人們發(fā)現(xiàn)OO方法的部分思想有助于解決;加之對(duì)游戲、GUI程序,結(jié)構(gòu)化方法難于奏效。于是OO逐漸被重視,并迅速走出實(shí)驗(yàn)室,得以發(fā)展和流行。3.1問題規(guī)模對(duì)程序設(shè)計(jì)方法的影響10/36方法起源核心思想實(shí)例剖析方法的優(yōu)缺點(diǎn)3.2結(jié)構(gòu)化程序設(shè)計(jì)方法11/36起源:60年代末關(guān)于goto語(yǔ)句的爭(zhēng)論當(dāng)時(shí)軟件危機(jī)癥狀明顯:質(zhì)量差、低產(chǎn)出、難維護(hù)。Dijkstra、Wirth等人力主廢棄goto,并提出一些結(jié)構(gòu)化設(shè)計(jì)的方法和原則,以及語(yǔ)言支持;后Knuth將討論引到“好程序”的標(biāo)準(zhǔn)上,讓人們逐步認(rèn)識(shí)到結(jié)構(gòu)的重要性;爭(zhēng)論結(jié)束時(shí),用結(jié)構(gòu)化思想進(jìn)行程序設(shè)計(jì)的模式基本為業(yè)界接受。后經(jīng)Yourdon、Constantine、DeMarco等人不斷豐富和完善,結(jié)構(gòu)化程序設(shè)計(jì)成為20世紀(jì)七、八十年代使用最廣泛的程序設(shè)計(jì)方法。3.2結(jié)構(gòu)化程序設(shè)計(jì)方法E.W.DijkstraN.Wirth12/36核心思想以功能為核心的,系統(tǒng)是功能模塊的組裝?!敖Y(jié)構(gòu)化”是指可組合、可分解,即系統(tǒng)(或大模塊)由若干子模塊組成,各模塊獨(dú)立性較強(qiáng)。設(shè)計(jì)策略:自頂向下逐步求精3.2結(jié)構(gòu)化程序設(shè)計(jì)方法結(jié)合PC機(jī)構(gòu)造,解釋結(jié)構(gòu)化設(shè)計(jì)思想及其優(yōu)點(diǎn)。所謂結(jié)構(gòu)化程序設(shè)計(jì),就是這樣一種編程方法:用自頂向下逐步求精策略指導(dǎo)開發(fā)過程;程序由若干模塊(或構(gòu)件)組裝而成;構(gòu)成模塊的每一子程序只能包含順序、分支、選擇等三種結(jié)構(gòu),且每種結(jié)構(gòu)只允許單入口和單出口?!吨袊?guó)計(jì)算機(jī)百科全書(第二版)》輸入數(shù)據(jù)輸出數(shù)據(jù)結(jié)構(gòu)化就是功能可組合、可拆解。系統(tǒng)……功能1功能n13/36實(shí)例剖析實(shí)例1(問題需求):1、能夠記錄圖書的明細(xì)信息及分類信息(包括圖書本身的書名、作者、出版單位、出版年份、是否英文、原版等等,以及圖書的分類號(hào)、關(guān)鍵字等等);2、能記錄讀者具體情況,查詢讀者借閱信息;3、能夠查閱當(dāng)前圖書在庫(kù)及借出情況;4、能設(shè)置讀者借閱期限到或者某種條件拒絕借閱的處理;5、特殊情況的處理;6、打印各類相關(guān)報(bào)表,制作各種統(tǒng)計(jì)圖表……。3.2結(jié)構(gòu)化程序設(shè)計(jì)方法14/36實(shí)例剖析解決方案3.2結(jié)構(gòu)化程序設(shè)計(jì)方法……圖書資料管理系統(tǒng)信息維護(hù)數(shù)據(jù)檢索報(bào)表處理特殊處理圖書信息增刪改讀者信息增刪改員工信息增刪改管理權(quán)限增刪改15/36方案剖析簡(jiǎn)單易用。以功能為核心搭建系統(tǒng)框架,目標(biāo)明確,方法簡(jiǎn)單,易于學(xué)習(xí),易于實(shí)現(xiàn)。策略有效。自頂向下逐步求精思想貫穿分解過程,系統(tǒng)結(jié)構(gòu)為層次狀。分解過程即實(shí)現(xiàn)過程。模塊化。信息封裝于模塊,各模塊相互獨(dú)立。3.2結(jié)構(gòu)化程序設(shè)計(jì)方法結(jié)構(gòu)化方法究竟存在什么問題呢?16/36實(shí)例2(在實(shí)例1基礎(chǔ)上推廣)將系統(tǒng)推廣至校圖書館及各院系,并聯(lián)網(wǎng)共享即師生可跨院借閱;一些院系有特殊需求:地理系:有地圖管理,地圖管理涉及地形、地貌、天氣、資源分布、衛(wèi)星圖等不同地圖和關(guān)鍵字音樂系:樂譜、器械管理化學(xué)系:化學(xué)制劑和器械管理……3.2結(jié)構(gòu)化程序設(shè)計(jì)方法17/36實(shí)例-2解決方案策略:在原有基礎(chǔ)上,為不同用戶做個(gè)性修改后分發(fā),設(shè)計(jì)方案與前類似。存在問題有錯(cuò)難改如:發(fā)現(xiàn)原系統(tǒng)一處算法設(shè)計(jì)缺陷,而不同用戶已對(duì)此算法可能做了調(diào)整,必須逐個(gè)處理,很難做雷同修改。模塊獨(dú)立性受數(shù)據(jù)結(jié)構(gòu)制約模塊以功能為核心構(gòu)建,功能本質(zhì)上是對(duì)數(shù)據(jù)的處理。數(shù)據(jù)的結(jié)構(gòu)若需要變動(dòng),很多模塊都將受影響。3.2結(jié)構(gòu)化程序設(shè)計(jì)方法即難維護(hù)、難重用,可靠性難保障。18/36優(yōu)勢(shì)特色以功能為核心構(gòu)建系統(tǒng),目標(biāo)明確,易于理解,措施(即自頂向下逐步求精)簡(jiǎn)單有效;存在問題以功能為核心構(gòu)建軟件系統(tǒng),問題多;用戶和開發(fā)人員之間存在語(yǔ)義鴻溝。3.2結(jié)構(gòu)化程序設(shè)計(jì)方法以功能為核心,可以很好的踐行功能抽象策略:1、信息封裝在模塊中,便于在較高層面上分析和設(shè)計(jì);2、層次/模塊獨(dú)立,設(shè)計(jì)時(shí)無需考慮其它層/模塊。1、功能易變(不精確、漏、變),系統(tǒng)結(jié)構(gòu)的穩(wěn)定性較差。2、模塊獨(dú)立性受限。(數(shù)據(jù)局部于模塊、需要全局變量)3、功能/模塊與具體需求聯(lián)系密切,限制模塊重用性??蛻裘枋龅男枨蟛痪_,涉及開發(fā)人員難懂的領(lǐng)域術(shù)語(yǔ);開發(fā)人員使用的專業(yè)框圖/術(shù)語(yǔ)的描述,用戶難理解。這樣在軟件交付使用前,用戶很難對(duì)需求轉(zhuǎn)換的有效性和合理性進(jìn)行確認(rèn)。19/36方法學(xué)視角將系統(tǒng)是做一個(gè)給定輸入產(chǎn)生特定輸出功能體。核心思想以功能為核心構(gòu)建系統(tǒng),功能可組合、可拆解主要策略自頂向下逐步求精存在問題以功能為核心構(gòu)建軟件系統(tǒng),問題多多;用戶和開發(fā)人員之間存在語(yǔ)義鴻溝。3.2結(jié)構(gòu)化程序設(shè)計(jì)方法·小結(jié)20/36方法起源核心思想基本概念實(shí)例剖析3.3面向?qū)ο蟪绦蛟O(shè)計(jì)方法21/36面向?qū)ο蠓椒ǖ钠鹪?0~50年代,運(yùn)籌學(xué)流行:雷達(dá)選址、水雷布陣60年代,挪威的Dahl幫助Nygaard用計(jì)算機(jī)求解運(yùn)籌學(xué)問題,并發(fā)布Simula-62,67年正式發(fā)布。1972年,Alan.Kay研制世界上首個(gè)圖形用戶界面的計(jì)算機(jī)系統(tǒng)Alto。發(fā)布語(yǔ)言SmallTalk72,GUI界面的推廣使得OOP日漸受到重視。Smalltalk-80及其支撐環(huán)境(84年作為產(chǎn)品公開)的推出,使得面向?qū)ο蟪绦蛟O(shè)計(jì)進(jìn)入實(shí)用階段。之后,伴隨C++、Eiffel興起,OO方法開始走紅。3.3面向?qū)ο蟪绦蛟O(shè)計(jì)方法O.J.DahlK.NygaardAlan.Kay22/36面向?qū)ο蠓椒ǖ陌l(fā)展90年代,OO研究從語(yǔ)言轉(zhuǎn)到軟件開發(fā)方法方面,提出了一系列面向?qū)ο蟮拈_發(fā)方法和技術(shù),如:B.Henderson-Sellers和J.M.Edwards提出OO生存周期的噴泉模型及OO系統(tǒng)開發(fā)的七點(diǎn)框架方法OO方法G.Booch提出的面向?qū)ο箝_發(fā)方法學(xué)P.Coad和E.Yourdon提出的OO分析和OO設(shè)計(jì)J.Rumbaugh等提出的OMT方法學(xué)J.Rumbaugh、G.Booch和I.Jacobson等人又提出基于UML的統(tǒng)一方法3.3面向?qū)ο蟪绦蛟O(shè)計(jì)方法23/36核心思想軟件就是現(xiàn)實(shí)世界的仿真(或模擬)。?,F(xiàn)實(shí)世界系統(tǒng)=一組客觀對(duì)象+對(duì)象間交互面向?qū)ο笙到y(tǒng)=一組對(duì)象+對(duì)象間的消息傳遞實(shí)現(xiàn):客觀對(duì)象≈計(jì)算機(jī)對(duì)象、消息傳遞≈對(duì)象間協(xié)作設(shè)計(jì)重點(diǎn)抽象出對(duì)象;基于對(duì)象模擬客觀世界的運(yùn)作。3.3面向?qū)ο蟪绦蛟O(shè)計(jì)方法小型圖書管理系統(tǒng)的模擬……(好處:系統(tǒng)穩(wěn)定性更高。日后功能可能變,但對(duì)象依舊,變得是對(duì)象間的交互。)24/36類和對(duì)象對(duì)象是現(xiàn)實(shí)對(duì)象的模擬,類是對(duì)象的描述模型。對(duì)象/類中包含屬性和行為。屬性:對(duì)象的數(shù)據(jù)成員;方法:描述對(duì)象的動(dòng)作對(duì)象間交互:也稱對(duì)象間發(fā)送消息,就是一個(gè)對(duì)象調(diào)用另一對(duì)象的方法,已更改對(duì)象的狀態(tài)。對(duì)象狀態(tài):對(duì)象中所有屬性的值。程序執(zhí)行的目的就是通過交互來更改對(duì)象的狀態(tài)。3.3.3基本概念--類和對(duì)象25/36面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言,要盡可能地把類、對(duì)象設(shè)計(jì)的簡(jiǎn)單、安全、易用、易于拓展。轎車類{

屬性:顏色、排氣量、車重、里程、…

行為:?jiǎn)?dòng)()、加速()、轉(zhuǎn)向()、……}包含哪些屬性、行為,由系統(tǒng)的功能需求、可擴(kuò)展性來決定。classTV{

privateintvolume,channel;publicvoidsetCH(intn){channel=n;}}class遙控器{privateTVt;public遙控器(TVtt){t=tt;};

publicvoidsendCH(intch){

t.setCH(ch);}}TVt=newTV();遙控器rc=new遙控器(t);//建立關(guān)聯(lián)

rc.sendCH(9);//發(fā)消息遙控器向電視機(jī)發(fā)消息改變頻道遙控器向電視機(jī)發(fā)消息,更改電視機(jī)頻道;實(shí)現(xiàn)機(jī)制為遙控器調(diào)用電視機(jī)更改狀態(tài)的方法。在OO方法中,封裝有兩層含義:打包,將組成對(duì)象的各零件包成一個(gè)整體;隱藏,隱藏對(duì)象的細(xì)節(jié)。封裝的優(yōu)點(diǎn)隱藏細(xì)節(jié),可簡(jiǎn)化認(rèn)知;只能借助對(duì)象使用接口來操控對(duì)象必須遵循設(shè)計(jì)者既定的操作條件;接口不變情況下,細(xì)節(jié)改變不影響使用。3.3.3基本概念--封裝即讓操作對(duì)象更簡(jiǎn)單、更安全、更易于維護(hù)和重用。例如:電視機(jī)、遙控器26/36含義子類擁有父類的全部屬性和行為。作用重用:子類在父類的基礎(chǔ)上構(gòu)造;分散類復(fù)雜性:把類的家族特征分散于類層次結(jié)構(gòu),避免單個(gè)類的設(shè)計(jì)過于復(fù)雜;借助繼承關(guān)系建立家族體系,為多態(tài)奠定基礎(chǔ)。3.3.3基本概念--繼承狗咬人了咬的效果完全不同27/36含義:同一名稱在不同環(huán)境下有不同含義,如:行為多態(tài):某方法有多種方法體可供選用;如:狗擁有嗅的行為:

嗅(主人氣味)、嗅(老虎氣味)、……我有一只名為“毛頭”的寵物狗,毛頭.咬()值多態(tài):某變量可賦予不同類型的對(duì)象。動(dòng)物

d=new貓();d=new狗();

3.3.3基本概念--多態(tài)重載:編譯時(shí)根據(jù)方法的參數(shù)來決定執(zhí)行哪一方法體。重寫/覆蓋:運(yùn)行時(shí)根據(jù)名稱綁定的對(duì)象來決定執(zhí)行哪一方法體。多態(tài)賦予對(duì)象在不同環(huán)境下的自適應(yīng)能力,使程序更簡(jiǎn)潔易懂,通用性也得到增強(qiáng)。多態(tài)特性,特別是動(dòng)態(tài)綁定的多態(tài)特性,是面向?qū)ο蠓椒ㄗ钗说暮诵奶厣?8/36含義:只描述關(guān)心的屬性/行為,例如:功能抽象,如子程序;數(shù)據(jù)類型,如數(shù)據(jù)抽象;從一組對(duì)象抽象出類,如具體圖書圖書類;從一組相似類中抽象出層次結(jié)構(gòu)(即類家族結(jié)構(gòu)),如犬科-狗-藏獒從不同類中抽象出共性(即接口)如:飛機(jī)、飛鳥、飛人、會(huì)飛的子彈會(huì)飛的將相關(guān)但不同的含義用同一名稱表示,如狗.嗅()……3.3.3基本概念--抽象在這些概念和機(jī)制的支持下,OO中的類、對(duì)象,就如同int那樣具有高度的易用性、安全性和可重用性。29/36實(shí)例剖析實(shí)例1(問題需求):1、能夠記錄圖書的明細(xì)信息及分類信息(包括圖書本身的書名、作者、出版單位、出版年份、是否英文、原版等等,以及圖書的分類號(hào)、關(guān)鍵字等等);2、能記錄讀者具體情況,查詢讀者借閱信息;3、能夠查閱當(dāng)前圖書在庫(kù)及借出情況;4、能設(shè)置讀者借閱期限到或者某種條件拒絕借閱的處理;5、特殊情況的處理;6、打印各類相關(guān)報(bào)表,制作各種統(tǒng)計(jì)圖表……。3.3.4實(shí)例剖析30/36實(shí)例-1解決方案用例、對(duì)象模型、功能模型、動(dòng)態(tài)模型、……3.3.4實(shí)例剖析管理員管理讀者管理圖書管理書目登記借/還書管理報(bào)表……登陸查詢?yōu)g覽注冊(cè)用戶系統(tǒng)用例圖specifyCriteria():LendItemForm:LendItemControl:Title:BorrowInfo:Loan:Itemsearch()selectTitle()selectItem()lend()search(criteria)getItem(title)lend(item)match(criteria)getItems()isAllowed(item)setStatus()[如果允許借此書]create(borrower,item)管理員借書用例基本流的順序圖相關(guān)類功能的說明LendItemForm:借書界面LendItemControl:管理員登記借書Title:圖書資料基本信息Borrowerinfo:讀者基本信息Loan:讀者借書記錄Item:書目分類信息LendItemFormspecifyCriteria()search()selectTitle()selectItem()lend()……LendItemControlsearch(criteria)getItem()lend(item)……Titlematch(criteria)getItems()……ItemsetStatus()……BorrowerInfoisAllowed(item)……Loancreate(borrower,item)……系統(tǒng)相關(guān)類的行為匹配疑問:用面向?qū)ο箝_發(fā)似乎并不比結(jié)構(gòu)化開發(fā)更簡(jiǎn)單,甚至還更復(fù)雜。確實(shí)如此!31/36實(shí)例2(在實(shí)例1基礎(chǔ)上推廣)將系統(tǒng)推廣至校圖書館及各院系,并聯(lián)網(wǎng)共享即師生可跨院借閱;一些院系有特殊需求:地理系:有地圖管理,地圖管理涉及地形、地貌、天氣、資源分布、衛(wèi)星圖等不同地圖和關(guān)鍵字音樂系:樂譜、器械管理化學(xué)系:化學(xué)制劑和器械管理……3.3.4實(shí)例剖析32/36實(shí)例-2解決方案——所得設(shè)計(jì)方案與前類似派生新類,解決部分功能(地圖、樂譜等)構(gòu)造新類(化學(xué)制劑、器械),加入系統(tǒng);設(shè)計(jì)特點(diǎn)分析繼承/派生是簡(jiǎn)單易用的重用機(jī)制;新增內(nèi)容對(duì)系統(tǒng)原有結(jié)構(gòu)影響很?。活?對(duì)象易被用戶理解,且開發(fā)過程中對(duì)象的語(yǔ)義不變,內(nèi)容逐步豐富,便于用戶驗(yàn)證設(shè)計(jì);系統(tǒng)的可擴(kuò)充、易維護(hù)、易重用,可靠性較高3.3.4實(shí)例剖析注意:OO中程序員和用戶間

溫馨提示

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