UML項目實訓(xùn)ppt課件



Click to edit Master title style,單擊此處編輯母版標題樣式,單擊此處編輯母版文本樣式,二級,三級,四級,五級,2020/3/26,#,面向?qū)ο蠹夹g(shù)及,UML,教程,第,13,章,UML,面向?qū)ο蠹夹g(shù)及UML教程第13章 UML,第,13,章,UML,項目實訓(xùn),前面章節(jié)介紹了面向?qū)ο蟮幕靖拍睢④浖_發(fā)過程和,UML,介紹了,UML,的主要圖符、模型圖以及這些模型圖的應(yīng)用在學(xué)習(xí)了這些知識、方法和技能后可能還不清楚如何在一個實際項目中應(yīng)用,UML,本章將給出一個具體的實例,“,打擊游戲”,應(yīng)用,UML,完成項目開發(fā)的全過程第13章 UML項目實訓(xùn) 前面章節(jié)介紹了面向?qū)ο蟮幕?13.1,項目啟動,在實際的軟件公司中,軟件項目一般都是由軟件項目組開發(fā)的,在軟件項目組中每個項目組的成員都有自己明確的分工,他們相互合作完成項目開發(fā),項目啟動就是參照軟件公司的軟件項目開發(fā)方式,先組建項目組,確定項目的目標,制定項目開發(fā)計劃,為實際的項目開發(fā)做好準備13.1 項目啟動 在實際的軟件公司中,軟件項目一般都,13.1,項目啟動,項目組一般由,4,到,5,人組成,采用自由結(jié)組的方式,定義四個角色:,項目經(jīng)理,系統(tǒng)分析員,程序員,測試員,13.1.1,建立項目組,13.1 項目啟動 項目組一般由4到5人組成,采用自由,13.1,項目啟動,明確開發(fā)目標,打擊游戲的項目目標可以確定為:開發(fā)一個簡單的小娛樂游戲,通過點擊游戲窗口中的圖片,可以贏得游戲分數(shù),隨著分數(shù)的積累能夠升級。
制定開發(fā)計劃(詳細內(nèi)容見教材),為什么先制定開發(fā)計劃?一般在軟件項目開發(fā)之初會根據(jù)項目開發(fā)的合同時間確定一個項目計劃13.1.2,制定開發(fā)計劃,13.1 項目啟動明確開發(fā)目標 13.1.2 制定開發(fā)計,13.2,項目需求分析,這里要開發(fā)的打擊游戲?qū)儆谧约洪_發(fā)產(chǎn)品,因此需要系統(tǒng)分析員組織項目組成員進行系統(tǒng)的需求分析,具體的需求可以參考市面上流行的這些小游戲,根據(jù)它們提供的功能特點,游戲特色,吸引玩家的地方等等,在項目組全體成員的共同努力下,盡量多的挖掘出系統(tǒng)的需求,13.2.1,需求獲取,13.2 項目需求分析 這里要開發(fā)的打擊游戲?qū)儆谧约洪_,13.2,項目需求分析,打擊游戲的需求分析是從功能描述、界面描述兩個方面著手的,游戲提供一個界面,隨機在某個位置上放置一幅圖片玩家可以點擊該幅圖片,當圖片被點中時,圖片消失,在窗口上別的位置上再出現(xiàn)一幅圖片,游戲繼續(xù);如果在規(guī)定的時間內(nèi)玩家沒有點中圖片,游戲結(jié)束玩家每次點中圖片后,給玩家加分,將分數(shù)顯示在界面上當玩家的分數(shù)達到一定數(shù)值后,游戲晉級,表現(xiàn)為圖片停留的最長時間減少13.2.2,需求描述,13.2 項目需求分析 打擊游戲的需求分析是從功能描,13.2,項目需求分析,用例圖,13.2.2,需求描述,13.2 項目需求分析用例圖13.2.2 需求描述,13.2,項目需求分析,用例說明:,玩家:實際游戲的軟件使用者,通過點擊圖片,獲取分數(shù)。
Timer,:計算機系統(tǒng)的定時器,負責(zé)放置圖片,記錄圖片顯示時間打擊游戲:玩家點擊圖片,贏得分數(shù)記錄分數(shù):系統(tǒng)記錄玩家的分數(shù),顯示玩家的最后得分晉級:當玩家得到的分數(shù)達到某個規(guī)定的限值時游戲晉升到下一個級別13.2.2,需求描述,13.2 項目需求分析用例說明:13.2.2 需求描述,13.2,項目需求分析,事件流:,1,玩家啟動游戲,進入游戲界面;,2,玩家點擊開始按鈕,游戲開始;,3,定時器在界面的某個位置放置一張圖片,4,規(guī)定時間內(nèi),點擊圖片,圖片消失,玩家得分;,5,系統(tǒng)顯示玩家的分數(shù);,6,循環(huán),34,;,7,當玩家分數(shù)達到一個規(guī)定的值時,玩家晉級,顯示玩家的級別8,如果玩家已經(jīng)通關(guān),游戲結(jié)束;,9,循環(huán),38,;,13.2.2,需求描述,13.2 項目需求分析事件流:13.2.2 需求描述,13.2,項目需求分析,備選事件流:,3.a,玩家沒有點擊到圖片,并且時間片結(jié)束,游戲結(jié)束,顯示對話框“游戲結(jié)束,您的得分為,XXX,,是否重新開始游戲!”;,8.a,玩家通關(guān)后,顯示對話框“您已經(jīng)通關(guān),是否重新開始游戲!”;,13.2.2,需求描述,13.2 項目需求分析備選事件流:13.2.2 需求描述,13.2,項目需求分析,13.2.3,軟件界面,13.2 項目需求分析13.2.3 軟件界面,13.2,項目需求分析,1,、加分規(guī)則:,2,、晉級規(guī)則:,3,、難度規(guī)則:,13.2.4,游戲規(guī)則定義,13.2 項目需求分析1、加分規(guī)則:13.2.4 游戲規(guī),13.2,項目需求分析,1,、啟動游戲,2,、進行游戲,3,、游戲晉級,4,、游戲通關(guān),5,、游戲失敗,6,、暫停游戲,13.2.5,游戲說明,13.2 項目需求分析1、啟動游戲13.2.5 游戲說明,13.3,使用,UML,進行系統(tǒng)設(shè)計,進行系統(tǒng)設(shè)計主要步驟:,首先根據(jù)對需求用例的事件流進行分析,找到系統(tǒng)中的備選對象。
其次分析系統(tǒng)中具體對象和對象之間的關(guān)系,也就是對象之間如何進行消息傳遞再次根據(jù)上面的分析,設(shè)計出系統(tǒng)順序圖或協(xié)作圖最后,進行抽象得到系統(tǒng)的靜態(tài)結(jié)構(gòu)圖,-,類圖13.3 使用UML進行系統(tǒng)設(shè)計進行系統(tǒng)設(shè)計主要步驟:,13.3,使用,UML,進行系統(tǒng)設(shè)計,從事件流描述中找出所有可能的對象:,界面:游戲的界面,圖片:打擊游戲界面上顯示的圖片,分數(shù):游戲玩家在玩游戲中贏得的分數(shù),級別:游戲的難度等級,玩家獲得的分數(shù)達到一定值,游戲晉級,定時器:控制游戲界面中圖片的顯示時間,13.3.1,系統(tǒng)備選對象,13.3 使用UML進行系統(tǒng)設(shè)計從事件流描述中找出所有可能,13.3,使用,UML,進行系統(tǒng)設(shè)計,進一步分析可能還有以下對象:,棋盤:游戲界面中的顯示圖片的區(qū)域,被劃分成,3,行,4,列共,12,個單元格,每個單元格中可以顯示圖片,系統(tǒng):控制和管理游戲中的系統(tǒng)事件,13.3.1,系統(tǒng)備選對象,13.3 使用UML進行系統(tǒng)設(shè)計進一步分析可能還有以下對象,13.3,使用,UML,進行系統(tǒng)設(shè)計,被選對象:,系統(tǒng):,System,圖片:,Picture,棋盤:,Board,定時器:,Timer,級別:,GameLevel,分數(shù):,Score,13.3.2,系統(tǒng)對象分析,13.3 使用UML進行系統(tǒng)設(shè)計被選對象:13.3.2,13.3,使用,UML,進行系統(tǒng)設(shè)計,玩家要想開始游戲,就需要給發(fā)一個開始消息,給系統(tǒng)對象,System,發(fā)送一個消息,start(),13.3.2,系統(tǒng)對象分析,Player,System,start(),13.3 使用UML進行系統(tǒng)設(shè)計玩家要想開始游戲,就需要給,13.3,使用,UML,進行系統(tǒng)設(shè)計,系統(tǒng)對象收到開始游戲后,首先需要顯示游戲的棋盤。
這時系統(tǒng)對象,System,需要給游戲盤對象,Board,發(fā)送一個顯示棋盤的消息,displayPic(),13.3.2,系統(tǒng)對象分析,System,Board,displayPic(),13.3 使用UML進行系統(tǒng)設(shè)計 系統(tǒng)對象收到開始游戲,13.3,使用,UML,進行系統(tǒng)設(shè)計,顯示棋盤,同時還需要在棋盤上顯示一張圖片這時需要棋盤對象,Board,給圖片對象,Picture,發(fā)送一個消息,show(),13.3.2,系統(tǒng)對象分析,Board,Picture,show(),13.3 使用UML進行系統(tǒng)設(shè)計 顯示棋盤,同時還需要,13.3,使用,UML,進行系統(tǒng)設(shè)計,顯示玩圖片后,需要開始記錄圖片的顯示時間這時需要系統(tǒng)對象,System,給定時器對象,Timer,發(fā)送一個消息,start(),13.3.2,系統(tǒng)對象分析,System,Timer,Start(),13.3 使用UML進行系統(tǒng)設(shè)計 顯示玩圖片后,需要開,13.3,使用,UML,進行系統(tǒng)設(shè)計,匯總得到協(xié)作圖,13.3.2,系統(tǒng)對象分析,13.3 使用UML進行系統(tǒng)設(shè)計匯總得到協(xié)作圖13.3.2,13.3,使用,UML,進行系統(tǒng)設(shè)計,點擊圖片后,隱藏圖片,增加分數(shù),計算晉級,按照前面過程可以得到協(xié)作圖,13.3.2,系統(tǒng)對象分析,13.3 使用UML進行系統(tǒng)設(shè)計 點擊圖片后,隱藏圖片,13.3,使用,UML,進行系統(tǒng)設(shè)計,前面分析了系統(tǒng)中的對象,進一步對這些對象進行抽象可以得到類和類間關(guān)系,13.3.3,系統(tǒng)類圖設(shè)計,13.3 使用UML進行系統(tǒng)設(shè)計 前面分析了系統(tǒng)中的對,13.3,使用,UML,進行系統(tǒng)設(shè)計,完成系統(tǒng)類圖設(shè)計后繼續(xù):,編寫系統(tǒng)設(shè)計規(guī)格說明書,詳細記錄對象的分析和設(shè)計過程,給出系統(tǒng)順序圖或協(xié)作圖,并給出說明,給出經(jīng)過抽象后得到的類圖,給出類的主要屬性和方法的描述,13.3.3,系統(tǒng)類圖設(shè)計,13.3 使用UML進行系統(tǒng)設(shè)計完成系統(tǒng)類圖設(shè)計后繼續(xù):1,13.4,使用,UML,進行類設(shè)計,13.4.1,添加系統(tǒng)類,13.4 使用UML進行類設(shè)計13.4.1 添加系統(tǒng)類,13.4,使用,UML,進行類設(shè)計,13.4.2,類圖設(shè)計,系統(tǒng)設(shè)計類在具體實現(xiàn)時可能被轉(zhuǎn)化成一個包,13.4 使用UML進行類設(shè)計13.4.2 類圖設(shè)計,13.4,使用,UML,進行類設(shè)計,13.4.2,類圖設(shè)計,系統(tǒng)設(shè)計中的類在實現(xiàn)中也可能還映射成一個類,例如,System,類,有時系統(tǒng)設(shè)計中的類在實現(xiàn)是可能消失或者變成了一個屬性或方法了,13.4 使用UML進行類設(shè)計13.4.2 類圖設(shè)計,13.4,使用,UML,進行類設(shè)計,13.4.3,添加屬性,對設(shè)計類進行細化,增加屬性,類,Level,中需要增加一個屬性,gameLevel,類,Board,中需要增加一個圖片類的引用屬性,pic,13.4 使用UML進行類設(shè)計13.4.3 添加屬性,13.4,使用,UML,進行類設(shè)計,13.4.4,添加方法,對設(shè)計類進行細化,例如,System,類增加方法:,start,():開始游戲方法。
hit,():用戶點擊動作處理方法System,():構(gòu)造系統(tǒng)中的主要對象init,():初始化重要對象的屬性stop,():結(jié)束游戲addScore,():游戲加分addLevel,():游戲晉級13.4 使用UML進行類設(shè)計13.4.4 添加方法,13.4,使用,UML,進行類設(shè)計,13.4.4,添加方法,例如,System,類增加方法后類圖,13.4 使用UML進行類設(shè)計13.4.4 添加方法,13.4,使用,UML,進行類設(shè)計,13.4.5,類圖設(shè)計,細化后實現(xiàn)類圖,13.4 使用UML進行類設(shè)計13.4.5 類圖設(shè)計,13.4,使用,UML,進行類設(shè)計,13.4.5,類圖設(shè)計,System,類的主要方法:,init(),:初始化參數(shù);,start(),:啟動計時器,并顯示圖片;,stop(),:游戲結(jié)束;,addScore(),:計算和增加玩家分數(shù);,addLevel(),:計算和增加玩家級別;,13.4 使用UML進行類設(shè)計13.4.5 類圖設(shè)計,13.4,使用,UML,進行類設(shè)計,13.4.5,類圖設(shè)計,Timer,類的主要方法:,Star(),:啟動計時器;,13.4 使用UML進行類設(shè)計13.4.5 類圖設(shè)計,13.4,使用,UML,進行類設(shè)計,13.4.5,類圖設(shè)計,TimeLength,類的主要屬性和方法:,INIT_TIME_LENGTH,:初始的時間片長度屬性的值,getTimeLenth(),:獲取時間片長度;,setTimeLenth(),:重新設(shè)置時間片長度;,13.4 使用UML進行類設(shè)計13.4.5 類圖設(shè)計,13.4,使用,UML,進行類設(shè)計,13.4.5,類圖設(shè)計,Board,類的主要方法:,displayPic(),:顯示一張圖片;,hidePic(),:隱藏圖片;,13.4 使用UML進行類設(shè)計13.4.5 類圖設(shè)計,13.4,使用,UML,進行類設(shè)計,13.4.5,類圖設(shè)計,Score,類的主要方法:,addScore(),:點擊圖片正確后,玩家加分;,displayScor。
