




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、.軟件設(shè)計與體系結(jié)構(gòu)非卷面試題設(shè)計題目 快餐店多功能點餐系統(tǒng)院 系 電子與信息工程學(xué)院專 業(yè) 計算機科學(xué)與技術(shù)學(xué)生姓名 學(xué)生學(xué)號 任課教師 倪 啟 東快餐店多功能點餐系統(tǒng)摘 要隨著計算機軟件行業(yè)的發(fā)展和互聯(lián)網(wǎng)的普及,軟件進入到人們生活的各個行業(yè)之中。在這個軟件爆炸的時代,軟件系統(tǒng)有一個好的設(shè)計與結(jié)構(gòu)顯得尤為重要。通過快餐店多功能點餐系統(tǒng)的設(shè)計,將軟件體系結(jié)構(gòu)與設(shè)計的所學(xué)的知識,運用到實際系統(tǒng)中,是對知識、技術(shù)的鞏固,也是能力的提升。本系統(tǒng)主要運用增量模型,隨著知識的學(xué)習(xí)同步進行系統(tǒng)的開發(fā)。主要采用了策略模式、觀察者模式、裝飾者模式、工廠模式、單例模式。同時,伴隨著設(shè)計原則的思想,使得系統(tǒng)更加穩(wěn)
2、定而高效。關(guān)鍵詞 點餐系統(tǒng);體系結(jié)構(gòu);設(shè)計模式;java目錄第1章 緒論11.1引言11.2系統(tǒng)開發(fā)目標(biāo)11.3開發(fā)環(huán)境1第2章 需求分析32.1項目概述32.2功能需求32.2.1用戶需求32.2.2系統(tǒng)需求32.3非功能需求32.3.1產(chǎn)品需求32.3.2 外部需求42.4業(yè)務(wù)需求42.4.1業(yè)務(wù)要求42.4.2客戶與用戶42.4.3特性4第3章 結(jié)構(gòu)設(shè)計53.1整體設(shè)計53.1.1普通用戶活動圖53.1.2會員活動圖63.1.3管理員活動圖73.2詳細設(shè)計73.2.1模塊劃分73.2.2簡單業(yè)務(wù)流程設(shè)計8第4章 設(shè)計模式94.1工廠模式94.1.1模式說明94.1.2模式類圖104.1.
3、3所用原則104.2抽象工廠模式104.2.1模式說明104.2.2模式類圖114.2.3所用原則114.3觀察者模式124.3.1模式說明124.3.2模式類圖134.3.3所用原則134.4策略模式134.4.1模式說明134.4.2模式類圖144.4.3所用原則144.5單件模式154.5.1模式說明154.5.2模式類圖154.5.3所用原則15結(jié) 論16致 謝17參 考 文 獻18.第1章 緒論1.1 引言當(dāng)今世界已進入信息時代,Internet成為21世紀最受關(guān)注的行業(yè)之一,它的飛速發(fā)展和在全球范圍的普及應(yīng)用正在給人類生活帶來革命性變化。網(wǎng)絡(luò)技術(shù)的發(fā)展也取得了巨大的成就,為網(wǎng)站開發(fā)
4、提供了很好的技術(shù)支持。正基于這個背景,產(chǎn)生了快餐店多功能點餐系統(tǒng)。就我而言,主要是想通過快餐店多功能點餐系統(tǒng)的開發(fā),讓自身在軟件開發(fā)的知識水平提升一個檔次,特別是對軟件開發(fā)形成一種概念。也正如Head First設(shè)計模式中所說,對象村里的每個人都在使用設(shè)計模式。對于剛剛?cè)胱ο蟠宓奈?,需要有一個和大師交流的機會,而快餐店多功能點餐系統(tǒng)無疑是我躋身上流社會的一個橋梁?!鞍涯J窖b進腦子里,然后在你的設(shè)計和已有的應(yīng)用中,尋找何處可以使用他們?!笔褂迷O(shè)計模式的最好方法。把自己學(xué)到的模式和原則,套用到開發(fā)的系統(tǒng)之上,在開發(fā)系統(tǒng)的同時也掌握的設(shè)計模式的基本思想。在起初沒有使用設(shè)計模式的系統(tǒng)中,更能明顯的看
5、出設(shè)計模式的威力所在。1.2 系統(tǒng)開發(fā)目標(biāo)為快餐行業(yè)的網(wǎng)互聯(lián)化提供支持,使商家和定餐者都能便捷高效的完成自己的需求和響應(yīng)。具體目標(biāo)如下:用戶能夠在沒有經(jīng)過培訓(xùn)以及不了解原有系統(tǒng)的情況下使用系統(tǒng);系統(tǒng)應(yīng)將訂單處理流程加快20%以上;用戶可以節(jié)省一半的查看菜單詳細信息;當(dāng)用戶在快餐店用餐時,可以僅用沒有系統(tǒng)所用時間的30%來完成訂餐;當(dāng)用戶叫外賣時,不需要再找外賣單以及訂餐電話;會員得知優(yōu)惠的效率提高90%以上。1.3 開發(fā)環(huán)境本系統(tǒng)采用目前最流行的web開發(fā)技術(shù)之一J2EE進行開發(fā)。主要開發(fā)語言采用Java,網(wǎng)頁采用JSP、css以及javascript,后臺處理采用servlet技術(shù),數(shù)據(jù)庫使
6、用的是MySQL5.5,服務(wù)器使用的是Tomcat7。可以配置在Windows,Linux,Unix等常用操作系統(tǒng)平臺。第2章 需求分析2.1 項目概述適用于快餐店的多功能點餐系統(tǒng),實現(xiàn)會員記錄的增、刪、查、改、存、讀、的基本功能,根據(jù)功能,指導(dǎo)系統(tǒng)的模式。分別對于普通用戶、會員、管理員開設(shè)系統(tǒng)。對于普通用戶,有管理個人信息、查看菜單、訂餐、結(jié)帳四種操作。對于會員,在普通用戶的基礎(chǔ)上,可以查看優(yōu)惠信息、使用優(yōu)惠券。對于管理員,可以進行管理員管理、普通用戶管理、會員管理、菜單管理。2.2 功能需求快餐店多功能點餐系統(tǒng)在功能上應(yīng)滿足三類用戶的需求,使得用戶使用更加方便而高效。2.2.1 用戶需求管
7、理員可以通過網(wǎng)絡(luò)進行菜單更新、會員管理、普通用戶管理、發(fā)布優(yōu)惠信息、查看選定時間段的營業(yè)情況;所有用戶可以選定菜單的特定子集進行查看菜單;普通用戶可以查看今日特價、查看菜單、查看菜目詳情、預(yù)訂菜目、查看消費金額;會員在普通用戶功能的基礎(chǔ)上能夠查看會員優(yōu)惠、使用優(yōu)惠券;普通的瀏覽者可以瀏覽菜單。2.2.2 系統(tǒng)需求系統(tǒng)能將用戶每次的消費設(shè)置唯一的標(biāo)識符記錄到用戶的信息上;系統(tǒng)可以提供適當(dāng)?shù)臑g覽器供用戶查看電子郵件等;2.3 非功能需求為了使用用戶能夠更好的使用系統(tǒng),系統(tǒng)應(yīng)具有的性能需求分為以下幾個方面。2.3.1 產(chǎn)品需求系統(tǒng)應(yīng)在30秒之內(nèi)響應(yīng)用戶的所有請求;系統(tǒng)每周7天、每天24小時都可以使用
8、;對于一個沒有使用經(jīng)驗的管理員而言,可以經(jīng)過20分鐘的培訓(xùn)使用系統(tǒng);對于沒有使用經(jīng)驗額普通用戶和會員能夠直接使用系統(tǒng);系統(tǒng)的安全性、穩(wěn)定性和可靠性可以讓用戶放心的使用;系統(tǒng)應(yīng)具有良好的可移植性。2.3.2 外部需求系統(tǒng)的設(shè)計應(yīng)具有較高道德用戶體驗度以及較高的互操作性。2.4 業(yè)務(wù)需求快餐店多功能點餐系統(tǒng)為快餐行業(yè)服務(wù),需要為快餐店的管理員、會員與普通用戶服務(wù)。2.4.1 業(yè)務(wù)要求具體業(yè)務(wù)要求如下:l 各種菜目的預(yù)訂、查詢和管理;l 使用計算機實現(xiàn)菜單的日常管理,提供工作效率和服務(wù)質(zhì)量;l 用戶通過網(wǎng)絡(luò)來實現(xiàn)訂餐,改變原有的預(yù)訂方式;l 會員通過網(wǎng)絡(luò)來進行優(yōu)惠查詢與管理,更加方便和高效;l 管理
9、員可以更直觀的管理用戶和會員,分析其數(shù)據(jù),可以更好的輔助決策。2.4.2 客戶與用戶快餐店的所有者或者管理員、普通用戶、快餐店的會員。2.4.3 特性能夠在網(wǎng)絡(luò)上完成訂餐與優(yōu)惠管理,使普通用戶和會員更加方便。快餐店管理員可以通過電子郵件給會員發(fā)送優(yōu)惠信息,大大節(jié)省了人力物力。第3章 結(jié)構(gòu)設(shè)計3.1 整體設(shè)計通過分析整個系統(tǒng)的需求,結(jié)合UML建模語言,對系統(tǒng)整體用例圖分析如圖3.1.1所示。圖3.1.1 系統(tǒng)用例圖3.1.1 普通用戶活動圖普通用戶可以進行菜單查看,點單,查看消費金額等活動,系統(tǒng)活動圖如圖3.1.2所示。圖3.1.2 普通用戶活動圖3.1.2 會員活動圖會員在普通用戶的基礎(chǔ)上可享
10、受更多優(yōu)惠,系統(tǒng)活動圖如圖3.1.3所示。圖3.1.3 會員活動圖3.1.3 管理員活動圖管理員可以進行菜單管理、普通用戶管理、會員管理等活動,系統(tǒng)活動圖如圖3.1.4所示:圖3.1.4 管理員活動圖3.2 詳細設(shè)計對于系統(tǒng)的設(shè)計,根據(jù)軟件工程的相關(guān)理論,遵循模塊化原則,使得系統(tǒng)在“高內(nèi)聚、低耦合”的要求之下更加穩(wěn)定、已擴展,在后期的維護方面可以更加方便。3.2.1 模塊劃分按照系統(tǒng)開發(fā)的要求,可以分為前臺與后臺。前臺與用戶交互的界面設(shè)計應(yīng)滿足簡潔大方,以小清新為主題風(fēng)格。后臺代碼實現(xiàn)應(yīng)條理清晰,方便之后的擴展與管理。具體模塊及關(guān)系如圖3.2.1所示。圖3.2.1 模塊劃分圖3.2.2 簡單業(yè)
11、務(wù)流程設(shè)計對于整個系統(tǒng)的業(yè)務(wù)流程,主要包括三個主要參與方。訂餐者的點餐信息通過服務(wù)器的處理可以反饋給管理員,而管理員發(fā)布相關(guān)的優(yōu)惠也是通過服務(wù)器的處理通知給會員。業(yè)務(wù)流程圖如圖3.2.2所示。圖3.2.2 簡單業(yè)務(wù)流程圖第4章 設(shè)計模式4.1 工廠方法模式4.1.1 模式說明工廠方法模式,就是定義一個創(chuàng)建產(chǎn)品對象的工廠接口,讓子類決定實例化哪一種實例對象,也就是將實際創(chuàng)建實例對象的工作推遲到子類當(dāng)中,核心工廠類不在負責(zé)具體產(chǎn)品創(chuàng)建。實質(zhì)上是通過繼承的方式實現(xiàn)應(yīng)用程序的解耦。 應(yīng)用在本系統(tǒng)中,有一個數(shù)據(jù)庫的操作類工廠,名字叫DAOFactory,有四個數(shù)據(jù)庫操作類,UserDAO、DishesD
12、AO和TableDAO,分別對用戶、菜單和餐桌消息進行管理。4.1.2 模式類圖圖4.1.1 工廠方法模式類圖4.1.3 所用原則1 “開閉”原則一個軟件實體應(yīng)對擴展開放,對修改關(guān)閉。在設(shè)計軟件模塊的時候應(yīng)該使這個模塊可以在不修改的前提下被擴展。在本系統(tǒng)中,將Dao類的實現(xiàn)推遲到對象子類中實現(xiàn)。2 依賴倒置原則不論工廠還是產(chǎn)品都依賴于抽象,而不是具體的實現(xiàn)類。這樣以來,無論底層組件怎么變化,只要抽象組件不變,高層組件就不會發(fā)生變化。4.2 抽象工廠模式4.2.1 模式說明抽象工廠模式提供了一個接口,用于創(chuàng)建相關(guān)或者依賴對象的家族,而不需要制定具體的實現(xiàn)類。抽象工廠模式允許客戶使用抽象接口來創(chuàng)建
13、一組相關(guān)的產(chǎn)品,客戶類和工廠類分開,客戶需要任何產(chǎn)品的時候,只需要向工廠請求即可,客戶無需修改就可以獲得新產(chǎn)品,這樣一來,客戶就從具體產(chǎn)品中解耦。實質(zhì)上是通過對象組合的方式實現(xiàn)應(yīng)用程序的解耦。而這樣的模式正好適用于訂餐者的點餐:快餐店生產(chǎn)食物的工廠;各種食物工廠生產(chǎn)的產(chǎn)品;訂餐者客戶。角色關(guān)系如下圖4.2.1所示。圖4.2.1 抽象工廠模式角色關(guān)系圖4.2.2 模式類圖圖4.2.2 抽象工廠模式類圖4.2.3 所用原則(1) 多用對象組合,少用繼承所謂對象組合,就是讓對象作為類的成員變量,通過構(gòu)造函數(shù)或者set方法給類的對象的實例變量賦值。在本系統(tǒng)中,在訂餐者的類中存在一個FastFactor
14、y抽象工廠類型的實例變量,訂餐者類通過構(gòu)造方法將對象傳入。(2) 針對抽象編程,而不是針對實現(xiàn)編程當(dāng)設(shè)計一個軟件系統(tǒng)的時候,要盡可能的對軟件系統(tǒng)中出現(xiàn)的事物進行抽象,從而建立基礎(chǔ)的抽象底層,這樣做的目的就是讓軟件的結(jié)構(gòu)更加框架化、系統(tǒng)化,系統(tǒng)結(jié)構(gòu)更加靈活,易維護、易擴展。(3) 產(chǎn)品對象通過對象暴露的方法創(chuàng)建一個軟件系統(tǒng)要達到“高內(nèi)聚、低耦合”的要求,應(yīng)盡量避免在對象實例中使用new關(guān)鍵字創(chuàng)建其他對象實例。在客戶類中,沒有創(chuàng)建對象實例的語句,而是調(diào)用抽象工廠暴露的方法獲得對象實例,創(chuàng)建對象實例的工作全部都是在具體工廠中實現(xiàn)的。4.3 觀察者模式4.3.1 模式說明觀察者模式(發(fā)布/訂閱模式),
15、定義了對象間的一種一對多的依賴關(guān)系,當(dāng)一個對象的狀態(tài)發(fā)生變化時,所有依賴他的對象都將得到通知并自動更新。在本系統(tǒng)中,會員與管理員之間便是這種關(guān)系:管理員被觀察的對象,會員觀察者。當(dāng)管理員發(fā)布優(yōu)惠信息的時候,主動發(fā)出對每個會員的通知。在具體的實現(xiàn)中,讓被觀察者管理觀察者的對象的接口類型,然后調(diào)用接口方法更新觀察者。4.3.2 模式類圖圖4.3.1 觀察者模式類圖4.3.3 所用原則(1) “開閉原則”觀察者對象將自己注冊到被觀察者的容器中時,被觀察者不過問觀察者的具體類型,而是使用觀察者的接口。(2) 單一職責(zé)原則在該模式中,一個被觀察者可以對應(yīng)多個觀察者,觀察者對象都是基于接口而不是具體的實現(xiàn)
16、,這一點為程序提供了更大的靈活性。當(dāng)被觀察者發(fā)生改變時,他可以將消息注意發(fā)送給觀察者;而每一個觀察者關(guān)注于處理各自的內(nèi)容,不與其他觀察者對象產(chǎn)生任何影響,這就是所謂的單一職責(zé)原則。(3) 依賴倒置原則在觀察者模式中,抽象觀察者角色定義了更新的接口,在被觀察者對象中,存儲的是該抽象類型的集合。4.4 策略模式4.4.1 模式說明策略模式定義了一系列的算法,將每一種算法封裝起來并可以相互替換使用,策略模式讓算法獨立于使用它的客戶應(yīng)用而獨立變化。策略模式使用多個類來區(qū)分不同的行為,使用策略模式避免暴露復(fù)雜的、與算法相關(guān)的內(nèi)部數(shù)據(jù)結(jié)構(gòu)。在本系統(tǒng)中,快餐店的促銷優(yōu)惠策略就是用了這種策略模式,其中,各種菜
17、目的促銷方式就是具體的策略,而訂餐者最終的消費金額就是通過每一種優(yōu)惠策略的算法計算得到的。4.4.2 模式類圖圖4.4.1 策略模式類圖4.4.3 所用原則(1) “開閉”原則在策略模式中,可以在客戶端程序運行的時候動態(tài)設(shè)置需要的具體策略,進行算法的運算,而不需要修改客戶端的應(yīng)用程序就能達到不同算法的行為。每一種算法用一個獨立的類實現(xiàn),更加易于系統(tǒng)的擴展,增加一種策略只需要新增一個實現(xiàn)抽象策略的接口即可達到目的。(2) 單一職責(zé)原則在策略模式中,每一種策略都是使用一個類來實現(xiàn)的,因此各種算法之間沒有任何干擾,各種算法都專注于實現(xiàn)自身的處理邏輯,這使得功能模塊的耦合度降低,有效的防止了因修改一個
18、策略對其他策略的影響。4.5 單件模式4.5.1 模式說明單件模式是指確保每個類只有一個實例,而且自行實例化并向整個系統(tǒng)提供這個實例。在本系統(tǒng)中,數(shù)據(jù)庫連接類只能有一個實例,該類自行創(chuàng)建這個實例,同時該類自行向整個系統(tǒng)提供這個實例,因此,數(shù)據(jù)庫連接類無疑滿足了單件模式。4.5.2 模式類圖圖4.5.1 單件模式類圖4.5.3 所用原則(1) 確保某個類只有一個實例一個類保證有一個實例,首先要將構(gòu)造方法設(shè)置為private,這樣就保證了類不能被外部應(yīng)用創(chuàng)建;其次是提供一個方法,該方法供外部應(yīng)用使用,獲得單件對象。(2) 自行實例化并向整個系統(tǒng)提供這個實例單件模式的設(shè)計,必須要有類自身提供那個獲得
19、單件對象的方法,而不能由外部應(yīng)用程序創(chuàng)建對象。在提供單件對象時,首先應(yīng)設(shè)置一個類的靜態(tài)實例對象。結(jié) 論經(jīng)過這段時間的努力,快餐店多功能點餐系統(tǒng)論文終于完成了。在整個設(shè)計過程中,出現(xiàn)過很多的難題,但都在老師和同學(xué)的幫助下順利解決了,在不斷的學(xué)習(xí)過程中我體會到:寫論文是一個不斷學(xué)習(xí)的過程,從最初剛寫論文時對設(shè)計模式的問題的模糊認識到最后能夠?qū)υ搯栴}有深刻的認識,我體會到實踐對于學(xué)習(xí)的重要性,以前只是明白理論,沒有經(jīng)過實踐考察,對知識的理解不夠明確,通過這次的論文,真正體會到理論加實踐的威力之大。同時,在這次設(shè)計中,我也發(fā)現(xiàn)了自己的許多不足。首先,本系統(tǒng)是之前自己開發(fā)的一個不很完整的系統(tǒng),現(xiàn)在重新修改時,由于設(shè)計模式的掌握還不算很全面,走了不少彎路。其次,由于考慮不是很全面,所以系統(tǒng)功能擴充時,碰到不少困難。再次,我還應(yīng)該多掌握些制作網(wǎng)站方面技術(shù),不斷提高自己開發(fā)軟件的能力。總之,通過這次非卷面的考試,我深刻體會到要做好一個完整的事情,需要有系統(tǒng)的思維方式和方法,對待要解決的問題,要耐心、要善于運用已有的資源來充實自己。同時我也深刻
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 網(wǎng)絡(luò)編輯師2024年測試考試試題及答案
- 2025年國際金融理財師考試能力提升路徑試題及答案
- 提升素質(zhì)2025年特許金融分析師考試試題及答案
- 資產(chǎn)管理公司的發(fā)展現(xiàn)狀試題及答案
- 浙江省杭州市拱墅區(qū)2023-2024學(xué)年六年級下學(xué)期語文期末模擬試卷(含答案)
- 2024年畜牧師職稱考試學(xué)習(xí)動力提升的策略及試題及答案
- 2024年畜牧師考試備考資源分享試題及答案
- 戰(zhàn)略性思考在2025年國際金融理財師考試中的意義試題及答案
- 銀行從業(yè)資格證考試內(nèi)容與形式分析試題及答案
- 銀行從業(yè)資格證考試全景分析試題及答案
- 耳穴壓豆治療失眠
- 人教版九年級化學(xué)下冊實驗題專項訓(xùn)練含答案
- 【學(xué)考試卷】2023年6月 福建省學(xué)考英語真題及答案
- 建筑施工職業(yè)病危害因素識別、分析及預(yù)防
- 《民宿管家》課件-項目四 創(chuàng)意策劃與活動組織
- 政策評估的理論、模型與方法
- 國家稅務(wù)總局個人所得稅培訓(xùn)
- 2024年江蘇省南通市交通運輸綜合行政執(zhí)法支隊招聘20人歷年高頻考題難、易錯點模擬試題(共500題)附帶答案詳解
- 吲達帕胺片在心血管疾病中的應(yīng)用
- 無人機故障應(yīng)急預(yù)案
- 工程設(shè)備安裝及調(diào)試、運行方案
評論
0/150
提交評論