国产精品观看在线亚洲人成网_久久激情国产_久久华人_狠狠干天天操_91一区二区三区久久久久国产乱_1区2区3区国产

面向?qū)ο螅眨停碳夹g(shù)應(yīng)用于軟件設(shè)計(jì)

前言:本站為你精心整理了面向?qū)ο螅眨停碳夹g(shù)應(yīng)用于軟件設(shè)計(jì)范文,希望能為你的創(chuàng)作提供參考價(jià)值,我們的客服老師可以幫助你提供個(gè)性化的參考范文,歡迎咨詢(xún)。

面向?qū)ο螅眨停碳夹g(shù)應(yīng)用于軟件設(shè)計(jì)

摘要:統(tǒng)一建模語(yǔ)言UML是面向?qū)ο?/a>軟件設(shè)計(jì)的新技術(shù)。在介紹UML的基礎(chǔ)上,用UML分析設(shè)計(jì)了俄羅斯方塊。根據(jù)本游戲特點(diǎn),側(cè)重選用了用例圖、順序圖、類(lèi)圖、狀態(tài)圖進(jìn)行分析設(shè)計(jì),最后總結(jié)了UML技術(shù)的優(yōu)越性。

關(guān)鍵詞:面向?qū)ο蠹夹g(shù);UML;軟件工程;俄羅斯方塊

1引言

在20世紀(jì)60年代中期開(kāi)始爆發(fā)的軟件危機(jī),使人們認(rèn)識(shí)到大中型軟件系統(tǒng)與小型軟件有著本質(zhì)的區(qū)別:大型軟件系統(tǒng)的開(kāi)發(fā)周期長(zhǎng)、費(fèi)用高、軟件質(zhì)量難以保證、開(kāi)發(fā)生產(chǎn)率低,為了擺脫軟件危機(jī)提出了軟件工程的概念。軟件工程的目的就是要在規(guī)定的時(shí)間、開(kāi)發(fā)費(fèi)用內(nèi)開(kāi)發(fā)出滿(mǎn)足用戶(hù)需求的高質(zhì)量的軟件系統(tǒng),高質(zhì)量不僅是指錯(cuò)誤率低,還包括好用、易用、可移植、易維護(hù)等要求。軟件開(kāi)發(fā)有復(fù)雜性和困難性,軟件設(shè)計(jì)人員既要為自己建立設(shè)計(jì)與實(shí)踐的準(zhǔn)則,又要利用這些準(zhǔn)則構(gòu)造符合要求的軟件系統(tǒng),因此所面臨的困難比其他涉及領(lǐng)域更多。

2面向?qū)ο蠹夹g(shù)及統(tǒng)一建模語(yǔ)言UML

為了減少軟件復(fù)雜性對(duì)軟件開(kāi)發(fā)過(guò)程的影響,我們只能采用控制復(fù)雜性的方法,這些方法包括分解、抽象、模塊化、信息隱蔽等。而面向?qū)ο蠹夹g(shù)充分體現(xiàn)了上述思想,可以有效的提高軟件生產(chǎn)率,縮短軟件開(kāi)發(fā)時(shí)間、提高軟件質(zhì)量、是控制軟件復(fù)雜性的有效途徑。面向?qū)ο蠓椒ǖ幕舅枷胧牵簩?duì)問(wèn)題領(lǐng)域進(jìn)行自然分割,以更接近人類(lèi)思維的方式建立問(wèn)題域模型,從而使設(shè)計(jì)出的軟件盡可能直接描述現(xiàn)實(shí)世界,具有更好的可維護(hù)性,能適應(yīng)用戶(hù)需求的變化。

統(tǒng)一建模語(yǔ)言(UML:UnifiedModelingLanguage)是面向?qū)ο?Object-Oriented)技術(shù)領(lǐng)域內(nèi)占主導(dǎo)地位的標(biāo)準(zhǔn)建模語(yǔ)言。UML是一種基于面向?qū)ο蟮目梢暬UZ(yǔ)言,它提供了用圖形符號(hào)表示的模型元素,它可消除一些潛在的不必要的差異,還可通過(guò)統(tǒng)一語(yǔ)義和符號(hào)表示,使項(xiàng)目根植于一個(gè)成熟的標(biāo)準(zhǔn)建模語(yǔ)言,從而可以拓寬所研制與開(kāi)發(fā)的軟件系統(tǒng)的適用范圍,并提高其靈活程度。

UML定義了下列5類(lèi)、共10種模型圖,主要內(nèi)容如下:第一類(lèi)用例圖,它從用戶(hù)的角度描述系統(tǒng)的功能,并指出各功能的操作者。用例圖有助于系統(tǒng)開(kāi)發(fā)者與用戶(hù)之間進(jìn)行交流,以獲取用戶(hù)需求。第二類(lèi)靜態(tài)圖,包括類(lèi)圖、對(duì)象圖和包圖。其中類(lèi)圖用于定義系統(tǒng)中的類(lèi),包括描述類(lèi)之間的聯(lián)系以及類(lèi)的內(nèi)部結(jié)構(gòu),即類(lèi)的屬性和操作;對(duì)象圖顯示類(lèi)的對(duì)象實(shí)例,一個(gè)對(duì)象圖是類(lèi)圖的一個(gè)實(shí)例;包圖由包或類(lèi)組成,主要表示包與包、或包與類(lèi)之間的關(guān)系,用于描述系統(tǒng)的分層結(jié)構(gòu)。第三類(lèi)行為圖,描述系統(tǒng)的動(dòng)態(tài)模型和組成對(duì)象間的交互關(guān)系。一種是狀態(tài)圖,它描述一類(lèi)對(duì)象的所有可能的狀態(tài)以及事件發(fā)生時(shí)狀態(tài)的轉(zhuǎn)移條件;另一種是活動(dòng)圖,它描述為滿(mǎn)足用例要求所要進(jìn)行的活動(dòng)以及活動(dòng)間的約束關(guān)系。第四類(lèi)交互圖,描述對(duì)象間的交互關(guān)系。一種稱(chēng)之為順序圖,用以顯示對(duì)象之間的動(dòng)態(tài)合作關(guān)系;另一種是合作圖,它著重描述對(duì)象間的協(xié)作關(guān)系。第五類(lèi)實(shí)現(xiàn)圖,包括構(gòu)件圖和配置圖。構(gòu)件圖描述代碼部件的物理結(jié)構(gòu)以及各部件之間的依賴(lài)關(guān)系;配置圖定義系統(tǒng)中軟硬件的物理體系結(jié)構(gòu)。這些圖為系統(tǒng)的分析、開(kāi)發(fā)提供了多種圖形表示,它們的有機(jī)結(jié)合就有可能分析與構(gòu)造一個(gè)一致的系統(tǒng)。

3基于面向?qū)ο蠹夹g(shù)UML開(kāi)發(fā)俄羅斯方塊

3.1系統(tǒng)描述與規(guī)劃并建立用例圖

俄羅斯方塊的功能需求是,提供一個(gè)界面顯示當(dāng)前生成的方塊狀態(tài)、下落及下一個(gè)方塊,接收用戶(hù)輸入以控制下落和旋轉(zhuǎn),調(diào)整到最佳位置,當(dāng)下落終止后判斷是否產(chǎn)生滿(mǎn)行,如果有滿(mǎn)行則消行并設(shè)置分?jǐn)?shù),當(dāng)分?jǐn)?shù)達(dá)到一定要求時(shí)給用戶(hù)增加等級(jí)和下降速度,之后產(chǎn)生新方塊,重復(fù)執(zhí)行此操作,直到方塊無(wú)法被消去而阻止新方塊的產(chǎn)生。

根據(jù)系統(tǒng)描述我們可以抽象出9個(gè)用例:用戶(hù)輸入系統(tǒng)、圖像顯示系統(tǒng)、方塊動(dòng)作、新方塊生成、消行、方塊死亡、分?jǐn)?shù)設(shè)置、等級(jí)設(shè)置、下降速度控制。抽取出兩個(gè)角色:用戶(hù)和控制系統(tǒng)。用例圖如圖1所示。

用例圖用簡(jiǎn)單的圖形符號(hào)表示出系統(tǒng)的活動(dòng)者,用例以及它們之間的聯(lián)系,準(zhǔn)確的表達(dá)了活動(dòng)者與系統(tǒng)的交互情況和系統(tǒng)所能提供的服務(wù)。在實(shí)際問(wèn)題中提取出用例是系統(tǒng)的一個(gè)基本任務(wù),把系統(tǒng)的功能需求用用例圖清楚、準(zhǔn)確的表達(dá)出來(lái),在此基礎(chǔ)上進(jìn)行對(duì)象模型的分析與設(shè)計(jì)。在開(kāi)發(fā)過(guò)程中要不斷的修改和完善用例模型,推動(dòng)系統(tǒng)的分析與設(shè)計(jì)不斷精化,努力達(dá)到系統(tǒng)預(yù)定目標(biāo)。3.2系統(tǒng)靜態(tài)分析、類(lèi)圖及順序圖

系統(tǒng)分析主要是對(duì)領(lǐng)域問(wèn)題及其解決方案的一個(gè)分析和設(shè)計(jì)過(guò)程,關(guān)鍵是要準(zhǔn)確找出現(xiàn)實(shí)世界的對(duì)象和類(lèi)之間的關(guān)系,把他們映射成系統(tǒng)中的對(duì)象類(lèi)和類(lèi)之間的聯(lián)系,并加以設(shè)計(jì)和調(diào)整,最終用圖形表示出來(lái)。

本系統(tǒng)中主要類(lèi)有窗口類(lèi)、圖形顯示類(lèi)和方塊類(lèi)。窗口是操作的載體,圖形顯示是與用戶(hù)進(jìn)行交互的媒介,方塊類(lèi)是操作的對(duì)象執(zhí)行具體的動(dòng)作。窗口類(lèi)是整個(gè)系統(tǒng)的載體,操作顯示等都在其上完成;圖形顯示類(lèi)提供了將方塊的布局及產(chǎn)生的新方塊和下一個(gè)方塊顯示給用戶(hù),以告知用戶(hù)當(dāng)前狀態(tài)。具體的動(dòng)作是由方塊執(zhí)行,方塊接收用戶(hù)的控制消息,執(zhí)行動(dòng)作,同時(shí)刷新圖形。我們要處理的關(guān)鍵是方塊,這里方塊共7種圖形,要是建立七個(gè)單一的類(lèi),則系統(tǒng)編寫(xiě)起來(lái)會(huì)非常復(fù)雜,這時(shí)可以根據(jù)系統(tǒng)的共性,得到一個(gè)基類(lèi)。因?yàn)楦鞣N不同的方塊的動(dòng)作是一樣的,都有下降、旋轉(zhuǎn)、移動(dòng)三種動(dòng)作,同時(shí)各種方塊的組成相同,即4個(gè)小方塊,可以統(tǒng)一存儲(chǔ)。這樣我們創(chuàng)建一個(gè)虛基類(lèi),它本身不創(chuàng)建實(shí)際對(duì)象,只提供操作和存儲(chǔ)功能,不同形狀的方塊對(duì)象由各子類(lèi)創(chuàng)建。創(chuàng)建對(duì)象時(shí),由子類(lèi)的構(gòu)造函數(shù)給類(lèi)的屬性賦值,決定了類(lèi)對(duì)象的形狀。類(lèi)圖和具體方塊的形狀如圖2類(lèi)圖及實(shí)例對(duì)象模型所示。

在產(chǎn)生新對(duì)象時(shí),只需創(chuàng)建一個(gè)對(duì)象并把對(duì)象賦給基類(lèi)對(duì)象指針,就可以用全局基類(lèi)指針來(lái)控制各種動(dòng)作,而不用對(duì)各個(gè)子類(lèi)單獨(dú)處理。系統(tǒng)只需對(duì)基類(lèi)對(duì)象指針作移動(dòng)、旋轉(zhuǎn)、下降等操作,而不用關(guān)心當(dāng)前對(duì)象是那個(gè)類(lèi)創(chuàng)建的。這樣操作和具體對(duì)象分離,就簡(jiǎn)化了程序的控制,使全局的設(shè)計(jì)達(dá)到最優(yōu)化。

通過(guò)發(fā)現(xiàn)類(lèi)、類(lèi)對(duì)象,明確他們的含義和責(zé)任,確定屬性和操作,發(fā)現(xiàn)類(lèi)之間的靜態(tài)聯(lián)系,分析對(duì)象類(lèi)之間的一般與特殊關(guān)系、部分與整體關(guān)系,研究類(lèi)的繼承性、多態(tài)性,調(diào)整和精化類(lèi)之間的聯(lián)系,使其能更準(zhǔn)確地描述系統(tǒng)的靜態(tài)特征。

順序圖表示完成某個(gè)行為的對(duì)象類(lèi)和這些對(duì)象類(lèi)之間所傳遞的消息的時(shí)間順序。用戶(hù)進(jìn)入系統(tǒng)后,通過(guò)鍵盤(pán)輸入對(duì)方塊做動(dòng)作控制,控制系統(tǒng)根據(jù)輸入或系統(tǒng)等待時(shí)間決定方塊的動(dòng)作,當(dāng)方塊下落到遇到障礙后,控制系統(tǒng)得到消息進(jìn)行消行、分?jǐn)?shù)設(shè)置等,見(jiàn)圖3順序圖。

3.3動(dòng)態(tài)分析設(shè)計(jì)及狀態(tài)圖

狀態(tài)圖用于描述系統(tǒng)的行為,描述類(lèi)的一個(gè)對(duì)象在其生存周期間的行為,表現(xiàn)為一個(gè)對(duì)象所經(jīng)歷的狀態(tài)序列,引起狀態(tài)或活動(dòng)轉(zhuǎn)移的事件,以及因狀態(tài)或活動(dòng)轉(zhuǎn)移而伴隨的動(dòng)作,可以描述用例及整個(gè)系統(tǒng)的動(dòng)態(tài)行為。在對(duì)確定的對(duì)象進(jìn)行行為建模時(shí),所選擇對(duì)象生存期中的狀態(tài)數(shù)量是有限的。對(duì)象處于每個(gè)狀態(tài)的持續(xù)時(shí)間也是有限的。當(dāng)發(fā)生某個(gè)事件,或完成了某個(gè)動(dòng)作或活動(dòng)的執(zhí)行,都會(huì)觸發(fā)狀態(tài)的轉(zhuǎn)移。首先選擇初始狀態(tài)和終結(jié)狀態(tài),然后發(fā)現(xiàn)對(duì)象的各種狀態(tài),確定狀態(tài)可能發(fā)生的轉(zhuǎn)移,把必要的動(dòng)作加到狀態(tài)或轉(zhuǎn)移上。根據(jù)俄羅斯方塊的系統(tǒng)描述,功能要求,分析得到系統(tǒng)的狀態(tài)圖,如圖4所示。

4總結(jié)

利用上述方法,設(shè)計(jì)了俄羅斯方塊游戲,并用C++Builder6.0作為開(kāi)發(fā)工具實(shí)現(xiàn)了系統(tǒng),如果需要添加新的方塊形狀只需新建一個(gè)類(lèi)并在控制中加入新建對(duì)象的過(guò)程即可,充分體現(xiàn)了系統(tǒng)的可擴(kuò)充性,可維護(hù)性等。雖然游戲較小,但足可以生動(dòng)的展現(xiàn)了面向?qū)ο骍ML技術(shù)的強(qiáng)大功能,不僅能夠提高開(kāi)發(fā)效率,提高軟件質(zhì)量,加速開(kāi)發(fā)過(guò)程,而且具有較好的可重用性、可擴(kuò)充性、可維護(hù)性和可移植性。

參考文獻(xiàn)

[1]史濟(jì)民.軟件工程[M].北京:高等教育出版社,2002.

[2]王少鋒.面向?qū)ο蠹夹g(shù)UML教程[M].北京:清華大學(xué)出版社,2004.

[3]鄭莉,董淵.C++語(yǔ)言程序設(shè)計(jì)[M].北京:清華大學(xué)出版社,2004.

主站蜘蛛池模板: 久久久久国产一区二区三区四区 | 欧美在线看片 | 亚洲精品视频一区二区三区 | 欧美日韩精品一区 | 日本一本色道免费视频 | 一区在线观看视频 | 精品国产免费久久久久久尖叫 | 欧美日韩激情 | 国产成人精品久久二区二区91 | 永久免费在线观看 | 草逼网站 | 国产一区二区三区免费观看在线 | aaaa毛片 | a级片在线免费看 | 日韩中文视频 | 亚洲成av人影片在线观看 | 亚洲国产精品久久久久婷婷老年 | 牲高潮99爽久久久久777 | 一级黄色片一级黄色片 | 91久久国产综合久久蜜月精品 | 免费看成年人视频在线观看 | www久久久久久久 | 99国产一区 | 92久久 | 一本久久精品一区二区 | 99在线免费观看 | 日韩欧美在线观看视频 | 日韩欧美视频 | 久久黄色 | 国产一区二区三区网站 | 美国三级日本三级久久99 | 亚洲福利视频一区 | 中文字幕一区二区三区在线播放 | 久久只精品99品免费久23小说 | 欧美在线一区二区三区四区 | 黄色p网站 | 黄色网址在线免费观看 | 亚洲精品高清视频 | 在线视频99| 欧美三级成人 | 日韩欧美一区二区三区久久婷婷 |