在线观看av毛片亚洲_伊人久久大香线蕉成人综合网_一级片黄色视频播放_日韩免费86av网址_亚洲av理论在线电影网_一区二区国产免费高清在线观看视频_亚洲国产精品久久99人人更爽_精品少妇人妻久久免费

首頁 > 文章中心 > 正文

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

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

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

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

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

1引言

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

3.3動態(tài)分析設(shè)計及狀態(tài)圖

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

4總結(jié)

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

參考文獻

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

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

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

罗平县| 营口市| 峡江县| 肇东市| 延津县| 龙胜| 上林县| 浦江县| 靖江市| 理塘县| 同心县| 白山市| 韶关市| 喜德县| 巴林左旗| 武义县| 米脂县| 毕节市| 濉溪县| 通化市| 广河县| 乌拉特后旗| 中牟县| 修文县| 兴山县| 罗甸县| 沁阳市| 岳阳县| 攀枝花市| 盐亭县| 平陆县| 醴陵市| 贡嘎县| 安阳县| 义马市| 宜章县| 禹州市| 肃宁县| 木兰县| 吉安县| 进贤县|