基于Android平臺(tái)的食譜APP互動(dòng)留言模塊設(shè)計(jì)_第1頁(yè)
基于Android平臺(tái)的食譜APP互動(dòng)留言模塊設(shè)計(jì)_第2頁(yè)
基于Android平臺(tái)的食譜APP互動(dòng)留言模塊設(shè)計(jì)_第3頁(yè)
基于Android平臺(tái)的食譜APP互動(dòng)留言模塊設(shè)計(jì)_第4頁(yè)
基于Android平臺(tái)的食譜APP互動(dòng)留言模塊設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩38頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 本科生畢業(yè)論文(設(shè)計(jì))本科生畢業(yè)論文(設(shè)計(jì))中文題目中文題目 基于 Android 平臺(tái)的食譜 APP 互動(dòng)留言模塊設(shè)計(jì) 英文題目英文題目 Comments Management System of Recipe APP Based on Android 學(xué)生姓名學(xué)生姓名 劉心宇 班級(jí)班級(jí) 11 學(xué)號(hào)學(xué)號(hào) 52121115 學(xué)學(xué) 院院 通信工程 專(zhuān)專(zhuān) 業(yè)業(yè) 信息工程 指導(dǎo)教師指導(dǎo)教師 職稱(chēng)職稱(chēng) 吉林大學(xué)學(xué)士學(xué)位論文(設(shè)計(jì))承諾書(shū) 本人鄭重承諾:所呈交的學(xué)士學(xué)位畢業(yè)論文(設(shè)計(jì)) ,是本人在指導(dǎo)教師的指導(dǎo)下,獨(dú)立進(jìn)行實(shí)驗(yàn)、設(shè)計(jì)、調(diào)研等工作基礎(chǔ)上取得的成果。除文中已經(jīng)注明引用的內(nèi)容外,本論文(設(shè)計(jì)

2、)不包含任何其他個(gè)人或集體已經(jīng)發(fā)表或撰寫(xiě)的作品成果。對(duì)本人實(shí)驗(yàn)或設(shè)計(jì)中做出重要貢獻(xiàn)的個(gè)人或集體,均已在文中以明確的方式注明。本人完全意識(shí)到本承諾書(shū)的法律結(jié)果由本人承擔(dān)。 學(xué)士學(xué)位論文(設(shè)計(jì))作者簽名: 2016 年 6 月 11 日 摘 要- I -摘摘 要要傳統(tǒng)的食譜分散在民間各地,收集整理相對(duì)困難,而維護(hù)工作更是由于其內(nèi)容的不確定難以展開(kāi)。但是,人們的生活卻越來(lái)越需要食譜來(lái)提高生活質(zhì)量,有時(shí)甚至需要通過(guò)食療來(lái)強(qiáng)身健體。如何高質(zhì)量高效率地收集維護(hù)食譜也因此成為一項(xiàng)課題。通過(guò)移動(dòng)網(wǎng)絡(luò)這項(xiàng)先進(jìn)的技術(shù),我們現(xiàn)在有方法實(shí)現(xiàn)食譜的信息化管理。如何建設(shè)一套菜譜的分發(fā)與管理系統(tǒng),就是本文希望探討的話(huà)題。本

3、文章主要的核心內(nèi)容就是試圖設(shè)計(jì)一個(gè)兼使用與管理功能俱全的完整系統(tǒng)。該系統(tǒng)主要客戶(hù)端搭建在安卓系統(tǒng)之上,負(fù)責(zé)數(shù)據(jù)交互與信息收集的功能由服務(wù)器實(shí)用程序來(lái)完成??蛻?hù)端集成了評(píng)論模塊,瀏覽模塊,登錄模塊,注測(cè)模塊,收藏模塊等功能模塊。而管理端基于 web,可以運(yùn)行于任何支持國(guó)際標(biāo)準(zhǔn)的瀏覽器之中。管理端集成了登錄模塊,瀏覽模塊,增刪模塊等管理模塊。本文中的數(shù)據(jù)庫(kù)采用 MySQL,服務(wù)器采用 tomcat,服務(wù)器語(yǔ)言采用 Java,客戶(hù)端使用安卓平臺(tái),管理端使用 JSP 技術(shù),多種技術(shù)融為一體。本文中從需求開(kāi)始,細(xì)致分析了各個(gè)功能所需要的數(shù)據(jù)及其結(jié)構(gòu),通過(guò)流程圖結(jié)構(gòu)圖等傳統(tǒng)的方法具體呈現(xiàn)系統(tǒng)的設(shè)計(jì)方法,并

4、且為其主要的用戶(hù)界面提供展現(xiàn)。關(guān)鍵詞:安卓 評(píng)論管理系統(tǒng) 菜譜 ABSTRACT- II -ABSTRACTTraditional recipes are scattered out, witch are collected and sorted relatively difficulty, so it is difficult to maintain and expand its content. By peoples life more and more needed to be improved, sometimes it is even need to go through the d

5、iet to achieve physical fitness. How to collect and maintain the high quality and high efficiency becomes a topic. Through the advanced technology of mobile network, we now have the method to realize the information management of the recipe. How to build a set of recipes distribution and management

6、system is the topic of this paper wants to explore.The core content of this paper is to design a completed system which use and manage functioning well. The client of the system is built on the Android platform, which is responsible for the function of data exchange and information collection. The c

7、lient uses the Android platform to integrate the review module, the browsing module, the registration module, the note test module, the collection module and so on. The management side is based on Web, which can be run in any browser that supports international standards. The management terminal int

8、egrated login module, browse module, add or delete the module management module.By using MySQL database, using Tomcat server, using java language server, client using the Android platform, management end using JSP technology, integrated of a variety of technology, this paper complete a recipe commen

9、t management system. In this paper, we start from demand and analysis the data needed for each function and structure through the flow graph and show the main user interface.Keywords: Android Comments Management System Recipe 目 錄- III -目目 錄錄第一章 緒 論.11.1 研究的背景及意義.11.2 研究目的.11.3 國(guó)內(nèi)外概況.21.4 研究?jī)?nèi)容和章節(jié)安排.2

10、第二章 設(shè)計(jì)原理及方法.32.1 架構(gòu)概述.32.2 關(guān)鍵技術(shù)簡(jiǎn)介.42.3 開(kāi)發(fā)環(huán)境簡(jiǎn)述.52.4 平臺(tái)簡(jiǎn)述.62.5 需求分析.7第三章 系統(tǒng)設(shè)計(jì).103.1 功能模塊劃分.103.2 模塊功能設(shè)計(jì).103.3 數(shù)據(jù)庫(kù)設(shè)計(jì).103.4 數(shù)據(jù)庫(kù)連接.14第四章 系統(tǒng)實(shí)現(xiàn).154.1 設(shè)計(jì)思路.154.2 登陸界面.164.3 主界面設(shè)計(jì).204.4 管理界面.224.5 評(píng)論界面.23第五章 測(cè)試.265.1 測(cè)試的基本概念.265.2 測(cè)試方法.265.3 盒子測(cè)試.27結(jié) 論.29謝 辭.30參考文獻(xiàn).31第一章 緒 論- 1 -第一章第一章 緒緒 論論1.11.1 研究的背景及意義研究

11、的背景及意義食譜作為人們生活經(jīng)驗(yàn)的積累,通常以口口相傳,或者是以親人親身傳授的方式,得以傳承。在如今,信息技術(shù)高速發(fā)展,人們有了不同于以往的技術(shù)手段來(lái)實(shí)現(xiàn)信息的采集整合與存取1。網(wǎng)絡(luò)作為本世紀(jì)以來(lái)發(fā)展最快,覆蓋面最廣,應(yīng)用場(chǎng)合最全面的新技術(shù)登上歷史的舞臺(tái)。而移動(dòng)互聯(lián)網(wǎng),又是作為網(wǎng)絡(luò)皇冠上的明珠,成為信息科學(xué)界的新星。把握住移動(dòng)互聯(lián)網(wǎng)的浪潮,就能站立在時(shí)代前沿,既能推動(dòng)時(shí)代的發(fā)展,又能獲得生活上的豐收。如何將移動(dòng)互聯(lián)網(wǎng)與食譜結(jié)合起來(lái),就是本文試圖探究的核心?,F(xiàn)今我們生活的是一個(gè)充滿(mǎn)著數(shù)字信息技術(shù)的世界,衣食住行各行各業(yè)幾乎都已經(jīng)邁開(kāi)了數(shù)字化移動(dòng)化的步伐。過(guò)去,食譜容易被食材污染,不易瀏覽,內(nèi)容繁

12、雜不易維護(hù)?;ヂ?lián)網(wǎng)尤其是移動(dòng)互聯(lián)網(wǎng)的發(fā)展帶來(lái)一種全新的信息傳遞方式,即通過(guò)手機(jī)等移動(dòng)終端瀏覽。這種方式快捷便利,易于維護(hù),減少存儲(chǔ)的物理空間,也不會(huì)被食材污染或污染食材。利用這些種種優(yōu)勢(shì),我們可以對(duì)傳統(tǒng)菜譜更新?lián)Q代,用一種暫新的方法對(duì)傳統(tǒng)的信息進(jìn)行升級(jí)。1.21.2 研究目的研究目的本設(shè)計(jì)主要是針對(duì)移動(dòng)平臺(tái)作為客戶(hù)端,web 作為管理平臺(tái)開(kāi)發(fā)一個(gè)收錄菜譜的系統(tǒng)。首先我們系統(tǒng)地分析了菜譜系統(tǒng)的開(kāi)發(fā)背景和現(xiàn)實(shí)意義,然后分析了現(xiàn)存 app 系統(tǒng)的特性與共性,從中獲取設(shè)計(jì)的靈感歸納系統(tǒng)設(shè)計(jì)的方法。接著,我們進(jìn)行軟件的需求分析,系統(tǒng)分析,按照傳統(tǒng)軟件設(shè)計(jì)的方法,構(gòu)思出系統(tǒng)的架構(gòu)并設(shè)計(jì)出相應(yīng)的設(shè)計(jì),接口文

13、檔。然后我們給予完整的開(kāi)發(fā)過(guò)程和以供調(diào)試的關(guān)鍵代碼,并介紹開(kāi)發(fā)重點(diǎn),比如如何配置安卓 SDK,MySQL 工作站,JDBC 等配置文文件。最后,提供了完整的測(cè)試過(guò)程,并給予總結(jié)。系統(tǒng)設(shè)計(jì)部分較為關(guān)鍵,具體分為前臺(tái)設(shè)計(jì)和后臺(tái)設(shè)計(jì)兩部分。前臺(tái)設(shè)計(jì)主要是客戶(hù)端的設(shè)計(jì),與之相對(duì)應(yīng)的,后臺(tái)設(shè)計(jì)主要是面向數(shù)據(jù),尤其是對(duì)數(shù)據(jù)庫(kù)及其數(shù)據(jù)的格式結(jié)構(gòu)的設(shè)計(jì)2。數(shù)據(jù)庫(kù)部分主要描述了如何建立一個(gè)數(shù)據(jù)庫(kù)并對(duì)其維護(hù),數(shù)據(jù)部分闡述了核心功能諸如收藏管理,評(píng)論管理,用戶(hù)管理,菜譜管理等功能所需表結(jié)構(gòu)及實(shí)現(xiàn)方法。最終,完備的測(cè)試過(guò)程檢驗(yàn)了該設(shè)計(jì)的所有功能模塊,無(wú)論是模塊化檢測(cè)還是集成第一章 緒 論- 2 -檢測(cè),都證明本設(shè)計(jì)是

14、一個(gè)有效,完整,而且具有較高實(shí)用度的系統(tǒng)。1.31.3 國(guó)內(nèi)外概況國(guó)內(nèi)外概況當(dāng)今國(guó)內(nèi)外安卓開(kāi)發(fā)除了系統(tǒng)層面的研究,主要還是以開(kāi)發(fā)應(yīng)用為主,大體可以分成以下三類(lèi):開(kāi)發(fā)企業(yè)級(jí)應(yīng)用只服務(wù)于大型企業(yè),在谷歌的應(yīng)用商城和其他應(yīng)用市場(chǎng)上銷(xiāo)售自制的中小型通用應(yīng)用,以及同樣在谷歌應(yīng)用商城上銷(xiāo)售和其他應(yīng)用市場(chǎng)上銷(xiāo)售的以游戲?yàn)橹黝}的大中型游戲開(kāi)發(fā)。菜譜應(yīng)用正是其中的中小型通用應(yīng)用3。這種類(lèi)型的應(yīng)用基本架構(gòu)成熟,擁有豐富的資源,和較多的開(kāi)發(fā)資源,開(kāi)發(fā)時(shí)長(zhǎng)相對(duì)較短,耗費(fèi)人力相對(duì)較少。但是其弊端是用戶(hù)忠誠(chéng)度很低,同類(lèi)可替代應(yīng)用較多,只有那些服務(wù)能力優(yōu)秀,擁有優(yōu)秀的人機(jī)交互界面,服務(wù)器承載能力較強(qiáng)的運(yùn)營(yíng)者能夠脫穎而出,最

15、終贏得消費(fèi)者的青睞。安卓系統(tǒng)平臺(tái)的優(yōu)勢(shì)在于其可以對(duì)多種設(shè)備,不同分辨率的設(shè)備統(tǒng)一進(jìn)行軟件開(kāi)發(fā),大大減少了軟件開(kāi)發(fā)的時(shí)間和經(jīng)費(fèi)成本,真正實(shí)現(xiàn)跨平臺(tái)軟件開(kāi)發(fā)。另外安卓系統(tǒng)是一個(gè)功能強(qiáng)大的系統(tǒng),除了擁有豐富的系統(tǒng)組件,還可以輕松地完成手機(jī)相應(yīng)硬件功能的調(diào)用,這樣開(kāi)發(fā)出的應(yīng)用擁有著的強(qiáng)大功能使得其他系統(tǒng)無(wú)法與之相比。1.41.4 研究?jī)?nèi)容和章節(jié)安排研究?jī)?nèi)容和章節(jié)安排本設(shè)計(jì)主要是為了實(shí)現(xiàn)評(píng)論的管理,通過(guò)移動(dòng)端瀏覽,新增,電腦端維護(hù)的方法對(duì)評(píng)論及其數(shù)據(jù)進(jìn)行維護(hù)。主要涉及的技術(shù)有 java,安卓,jsp,sql,web 等等。實(shí)現(xiàn)了用戶(hù)的登錄,注冊(cè),瀏覽,評(píng)論功能以及管理員的登錄功能,對(duì)用戶(hù)數(shù)據(jù)的瀏覽,新增

16、,刪除功能。本篇第二章主要以簡(jiǎn)述設(shè)計(jì)系統(tǒng)的基本方法,主要包括基礎(chǔ)的描述,需求分析以及關(guān)鍵性的技術(shù)描述。第三章設(shè)計(jì)了系統(tǒng)關(guān)鍵的組成部分,包含思路,界面。第五章主要是測(cè)試部分,介紹了先進(jìn)的測(cè)試方法,并客觀的闡述系統(tǒng)性能。第二章 設(shè)計(jì)原理及方法- 3 -第二章第二章 設(shè)計(jì)原理及方法設(shè)計(jì)原理及方法2.12.1 架構(gòu)概述架構(gòu)概述此設(shè)計(jì)的主要目的是為了完成菜譜系統(tǒng),主要包括安卓平臺(tái)的客戶(hù)端軟件開(kāi)發(fā),常見(jiàn)數(shù)據(jù)庫(kù)的創(chuàng)建,連接和維護(hù)。最終此設(shè)計(jì)完成的功能包括用戶(hù)登錄功能、收藏功能、評(píng)論功能、注冊(cè)功能、以及與之相關(guān)的后臺(tái)管理功能。本系統(tǒng)各頁(yè)面交互性良好,運(yùn)行狀況良好。除了基礎(chǔ)的安卓編程,此設(shè)計(jì)也包含了簡(jiǎn)易服務(wù)器的

17、搭建,為了控制輸入的信息,本設(shè)計(jì)也使用了一些前端控件,在連接數(shù)據(jù)庫(kù)之前作必要的信息驗(yàn)證以減少錯(cuò)誤的發(fā)生。為了規(guī)劃系統(tǒng),本設(shè)計(jì)也采用了數(shù)據(jù)流圖,系統(tǒng)結(jié)構(gòu)圖等具體展示了各個(gè)系統(tǒng)功能模塊,主要界面圖也會(huì)在接下里的闡述中得到呈現(xiàn)。此菜譜系統(tǒng)主要的模式采用模型-視圖-控制器(Model-View-Controller)的設(shè)計(jì)。盡管暴露了一些缺陷,MVC 架構(gòu)仍然是當(dāng)前最流行的 web 應(yīng)用模式,MyBatis、Spring、Struts 等知名框架就是采用了這種架構(gòu)。在設(shè)計(jì)中Model、View、Controller 的含義分別是模型、視圖、控制器,三者結(jié)合共同組成這種典型的模式4。MVC 模式是一種經(jīng)

18、常用在計(jì)算機(jī)上,用于實(shí)現(xiàn)用戶(hù)操作界面的軟件架構(gòu)模式。MVC模式通常是吧軟件應(yīng)用程序的開(kāi)發(fā)分別劃為相互關(guān)聯(lián)的三個(gè)部分,從而向用戶(hù)提供從內(nèi)部信息方式中抽離的信息,亦或是從用戶(hù)的信息當(dāng)中抽取信息合并至內(nèi)部。該操作的實(shí)現(xiàn)需要其他組件的幫助。傳統(tǒng)的 MVC 被廣泛應(yīng)用于桌面系統(tǒng)的開(kāi)發(fā)(GUIs) ,然而該架構(gòu)最近在 web 應(yīng)用的開(kāi)發(fā)中也變得十分流行。安卓應(yīng)用程序和 web 程序十分類(lèi)似,因此完全可以使用此模式開(kāi)發(fā)。模型是 MVC 模型的中央組件,用于捕捉在其問(wèn)題域的應(yīng)用程序的行為,獨(dú)立的用戶(hù)界面。模型的主要職責(zé)是直接管理數(shù)據(jù)的邏輯和規(guī)則。視圖層則是信息輸出途徑的擁有者,比如通過(guò)計(jì)算機(jī)自動(dòng)繪制表示業(yè)績(jī)的

19、圖,通過(guò)一次成功用戶(hù)會(huì)話(huà)等等。同一條信息可能同時(shí)存在于多個(gè)視圖,比如一份選課單,一張管理視圖。最后控制器負(fù)責(zé)輸入輸出流,將視圖的命令輸入轉(zhuǎn)化為模型亦或是將模型轉(zhuǎn)化為輸出視圖,也有不少此層負(fù)責(zé)處理業(yè)務(wù)信息的先例。第二章 設(shè)計(jì)原理及方法- 4 -2.22.2 關(guān)鍵技術(shù)簡(jiǎn)介關(guān)鍵技術(shù)簡(jiǎn)介2.2.1 持久化在計(jì)算機(jī)科學(xué)中,持久化是指一種創(chuàng)建進(jìn)程的特征狀態(tài)。在實(shí)現(xiàn)實(shí)踐中,計(jì)算機(jī)通過(guò)將狀態(tài)數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)存儲(chǔ)去。程序必須將數(shù)據(jù)傳輸至存儲(chǔ)設(shè)備,并從本機(jī)編程語(yǔ)言數(shù)據(jù)結(jié)構(gòu)中提供到存儲(chǔ)設(shè)備數(shù)據(jù)結(jié)構(gòu)的映射5。持久化亦分為“正交orthogonal”和“透明 transparent” ,當(dāng)所指的是一個(gè)程序的執(zhí)行環(huán)境的內(nèi)在

20、屬性時(shí)。一個(gè)正交的持久化環(huán)境不需要在其運(yùn)行的程序中進(jìn)行任何特定的操作來(lái)檢索或保存它們的狀態(tài)。非正交持久化要求數(shù)據(jù)被寫(xiě)入和讀取,并從存儲(chǔ)使用特定的指令在一個(gè)程序中。結(jié)果導(dǎo)致持久化的使用成為一個(gè)動(dòng)作:如完成,程序持久化數(shù)據(jù)中。正交持久化適用于那些簡(jiǎn)單且易于出錯(cuò)的程序。正交持久化操作系統(tǒng)和虛擬化平臺(tái)等系統(tǒng)為 VMware 和 VirtualBox 的廣泛采用。在本設(shè)計(jì)中持久化通過(guò) Java Data Base Connectivity,也就是我們常說(shuō)的 JDBC,一種數(shù)據(jù)庫(kù)連接來(lái)實(shí)現(xiàn)。2.2.2 用戶(hù)界面設(shè)計(jì)用戶(hù)界面設(shè)計(jì)(ui) ,通常在工業(yè)設(shè)計(jì)領(lǐng)域當(dāng)中用于人機(jī)交互,經(jīng)常用在在人類(lèi)和機(jī)器直接接觸的場(chǎng)

21、合。用戶(hù)界面設(shè)計(jì)的目標(biāo)是允許人類(lèi)有效地控制機(jī)器終端的同時(shí)讓機(jī)器模擬信息反饋以為操作者提供有效決策信息。除了在計(jì)算機(jī)領(lǐng)域,界面交互還被手工工具制作,重型機(jī)械的人工操作,過(guò)程控制等領(lǐng)域廣泛采用。像人機(jī)工程學(xué)和心理學(xué)這樣的學(xué)科都對(duì)創(chuàng)建設(shè)計(jì)用戶(hù)界面有很大的幫助6??偟膩?lái)說(shuō),設(shè)計(jì)用戶(hù)界面的目標(biāo)是產(chǎn)生一個(gè)自定義的高效的用戶(hù)友好的簡(jiǎn)明界面,一個(gè)操作者期望看到的結(jié)果。這通常意味著用戶(hù)可以?xún)H做最小化的操作就獲得最符合期望的輸出結(jié)果,也意味著機(jī)器必須最小化人們不愿意看到的輸出。伴隨著個(gè)人電腦的普及和社會(huì)對(duì)重型機(jī)械的意識(shí)下降,用戶(hù)界面現(xiàn)在越來(lái)越多的是特指圖形化的計(jì)算機(jī)用戶(hù)界面,用人機(jī)界面取代去描述工業(yè)中控制面板領(lǐng)域

22、和機(jī)械設(shè)計(jì)領(lǐng)域,以方便討論。第二章 設(shè)計(jì)原理及方法- 5 -2.32.3 開(kāi)發(fā)開(kāi)發(fā)環(huán)境環(huán)境簡(jiǎn)述簡(jiǎn)述2.3.1 EclipseEclipse 由常用的主要工作區(qū)域和多個(gè)可擴(kuò)展插件的自定義槽組成,用于計(jì)算機(jī)編程的集成開(kāi)發(fā)環(huán)境7。Eclipse 的主要用途是用于開(kāi)發(fā) java 應(yīng)用程序,但通過(guò)使用插件,該軟件也可以開(kāi)發(fā)其他編程語(yǔ)言,包括: ABAP, C, C+, Fortran, Haskell, JavaScript, Lasso, PHP, Python, Groovy, R 和 Scheme。在增加了一系列的插件之后 eclipse 幾乎成為了 java開(kāi)發(fā)的標(biāo)準(zhǔn)工具。而本文中使用的 Jav

23、a 和安卓正好都是基于 java 語(yǔ)言的,使用 eclipse 可以游刃有余地勝任兩者的協(xié)同開(kāi)發(fā)。需要更多的功能時(shí),可以通過(guò)為其安裝插件來(lái)實(shí)現(xiàn)。同樣插件可以在不同的運(yùn)行時(shí)環(huán)境中運(yùn)行。Eclipse 的運(yùn)行時(shí)系統(tǒng)是基于在 OSGi 核心框架下的 Equinox 的。除了允許 eclipse 平臺(tái)可以使用 C 和 Python 這樣的語(yǔ)言擴(kuò)展,它的擴(kuò)展框架還允許eclipse 平臺(tái)像 LaTeX 那樣或者像 talnet 和其他數(shù)據(jù)庫(kù)管理應(yīng)用程序那樣重新排版。插件支持任何擴(kuò)展環(huán)境的編寫(xiě),就連配置管理也不例外。Eclipse SDK 提供 Java 與 CVS 的支持,但你需要從第三方提供商哪里獲取

24、其他版本的控制系統(tǒng)插件。除了很小的 eclipse 的運(yùn)行時(shí)內(nèi)核,eclipse 的一切其實(shí)都是插件。這意味著開(kāi)發(fā)eclipse 的每個(gè)插件和其他的插件都是類(lèi)似的。Eclipse 提供各種第三方插件無(wú)論是自由模式的還是商業(yè)模式的,例如 UML 生成器,DB Explorer。Eclipse SDK 包括完整的 eclipse java 開(kāi)發(fā)工具(JDT) ,提供內(nèi)置的增量 java 編譯器。雖然與 GNU 通用公共許可證不兼容,Eclipse SDK 在 Eclipse 公共許可證的條款下是免費(fèi)和開(kāi)源軟件。自從 2004 發(fā)布 3.0 版本至今已經(jīng)發(fā)行 4.5 版本 Mars。2.3.2 To

25、mcat 服務(wù)器我們常聽(tīng)說(shuō)的 tomcat 指的就是 Apache Tomcat,源于一個(gè)開(kāi)源的 web 項(xiàng)目,已經(jīng)獲得了了 Sun 公司的支持,受到了廣泛的認(rèn)可。Tomcat 的開(kāi)發(fā)和維護(hù)由 Apache 軟件基金會(huì)和開(kāi)放社區(qū)的開(kāi)發(fā)人員協(xié)力完成,在Apache 2 許可證發(fā)布下,tomcat 服務(wù)器是開(kāi)源軟件。Catalina 是 Tomcat 的 servlet 容器。Catalina 實(shí)現(xiàn) Sun 公司的規(guī)格為 servlet 和JavaServerPages(JSP) 。在 Tomcat,Realm 元素代表了一個(gè)“數(shù)據(jù)庫(kù)”的用戶(hù)名,密碼,和角色(類(lèi)似于 UNIX 組)分配給這些用戶(hù)。

26、Realm 不同的實(shí)現(xiàn)允許 Catalina 被集成到環(huán)境中,這些認(rèn)證信息已經(jīng)被創(chuàng)建并保存,然后利用這些信息在 Servlet 的規(guī)范描述下來(lái)實(shí)第二章 設(shè)計(jì)原理及方法- 6 -現(xiàn)容器的安全管理8。Tomcat 開(kāi)始由杰姆斯鄧肯戴維森一個(gè) servlet 的參考而實(shí)現(xiàn),杰姆斯是 Sun 公司的軟件架構(gòu)師。后來(lái)他幫助開(kāi)源項(xiàng)目,Sun 系統(tǒng)公司在其中起到了關(guān)鍵作用,把 tomcat 捐贈(zèng)給 Apache 軟件基金會(huì)。Apache Ant 一個(gè)構(gòu)建軟件自動(dòng)化工具的開(kāi)發(fā)成為作為一個(gè)開(kāi)放源代碼項(xiàng)目的 Tomcat 創(chuàng)作的一個(gè)副產(chǎn)品。戴維森最初希望該項(xiàng)目能成為開(kāi)放源代碼。因?yàn)樵S多開(kāi)源項(xiàng)目有 OReilly

27、的書(shū)籍,他們的封面上的展示和動(dòng)物有關(guān),他也在想自己項(xiàng)目的動(dòng)物名稱(chēng)。他想出了 Tomcat(公貓) ,一個(gè)可以保護(hù)自己的代表動(dòng)物,雖然 Tomcat 已經(jīng)使用另一個(gè) OReilly 的標(biāo)題。當(dāng)OReilly 他們介紹 Tomcat 的書(shū)封面上出現(xiàn)了一只三腳貓,他希望看到的一個(gè)動(dòng)物圖標(biāo)也終于被實(shí)現(xiàn)了。2.42.4 平臺(tái)平臺(tái)簡(jiǎn)述簡(jiǎn)述2.4.1 Android 平臺(tái)安卓是一種移動(dòng)操作系統(tǒng)(操作系統(tǒng)) ,該系統(tǒng)以 linux 內(nèi)核為核心,最初由谷歌公司開(kāi)發(fā),主要為觸摸屏移動(dòng)設(shè)備而設(shè)計(jì),如智能手機(jī)和平板電腦。Android 的用戶(hù)界面主要是基于直接操作,使用觸控手勢(shì)松散地對(duì)應(yīng)于真實(shí)世界的行為,如滑動(dòng)、輕觸

28、、戳、操縱屏幕上的對(duì)象,通常還伴有輸入文字的虛擬鍵盤(pán)。除了觸摸屏設(shè)備外,谷歌還為汽車(chē)開(kāi)發(fā)了 Android Auto,為手表開(kāi)發(fā)了 Android Wear,為電視開(kāi)發(fā)了 Android TV,而且每個(gè)都擁有獨(dú)享的用戶(hù)界面。安卓在筆記本電腦、游戲機(jī)、數(shù)碼相機(jī)和其他電子產(chǎn)品中也有不同的應(yīng)用。安卓系統(tǒng)現(xiàn)在有所有操作系統(tǒng)的任何種類(lèi)的最大的安裝占有量。自從 2013 以來(lái),安卓一直是平板電腦上最好的銷(xiāo)售系統(tǒng),在智能手機(jī)上,它也占有絕對(duì)支配地位。最初安卓由 Android, Inc.開(kāi)發(fā),在 2005 被谷歌收購(gòu),2007 年開(kāi)放手機(jī)聯(lián)盟成立了,包括谷歌在內(nèi)的 85 家企業(yè),涉足硬件制造、軟件開(kāi)發(fā)、電信

29、運(yùn)營(yíng)領(lǐng)域,共同研發(fā)和升級(jí)安卓系統(tǒng),使得這個(gè)原本并不算成熟的系統(tǒng)迅速成長(zhǎng)起來(lái)。從 2008 年首款安卓手機(jī)問(wèn)世,到 2011 年,安卓系統(tǒng)僅用了 3 年就超過(guò)了盛極一時(shí)的塞班系統(tǒng),問(wèn)鼎全球第一系統(tǒng)的寶座。截止到 2015 年,安卓已經(jīng)擁有 14 億個(gè)月活躍用戶(hù),并且在一項(xiàng)調(diào)查中顯示超過(guò) 71%的移動(dòng)客戶(hù)端開(kāi)發(fā)者表示曾經(jīng)使用過(guò)安卓系統(tǒng)開(kāi)發(fā)應(yīng)用,40%的職業(yè)移動(dòng)應(yīng)用開(kāi)發(fā)者把安卓作為優(yōu)先目標(biāo)平臺(tái),同時(shí)蘋(píng)果的 ios 占有率為 37%9。安卓在定制低成本高科技設(shè)備操作系統(tǒng)是十分流行。擁有很大的開(kāi)源社區(qū)和數(shù)目龐第二章 設(shè)計(jì)原理及方法- 7 -大的開(kāi)發(fā)愛(ài)好者,安卓系統(tǒng)增加了很多先進(jìn)功能,甚至有高級(jí)用戶(hù)將安卓

30、操作系統(tǒng)的先進(jìn)特性移至到其他系統(tǒng)之內(nèi)。同時(shí),由于 Android 沒(méi)有集中的更新系統(tǒng)大多數(shù) Android 設(shè)備無(wú)法獲得安全更新:研究 2015 得出結(jié)論,幾乎 90%的 Android 手機(jī)在使用過(guò)但由于缺乏更新和支持未打補(bǔ)丁的安全漏洞。盡管安卓的源代碼發(fā)布擁有谷歌的開(kāi)源許可證書(shū),但是絕大多數(shù)的安卓設(shè)備最終是以一種開(kāi)源和專(zhuān)有組合起來(lái)的方式發(fā)貨的。甲骨文公司最近起訴谷歌公司,認(rèn)為其安卓系統(tǒng)中侵害了 java 的軟件著作權(quán)索要天價(jià)賠款,但是訴訟中美國(guó)法院認(rèn)為其系統(tǒng)尚未構(gòu)成抄襲,谷歌獲得了此次訴訟的勝利。2.52.5 需求分析需求分析2.5.1 菜譜系統(tǒng)的需求分析隨著網(wǎng)絡(luò)化步伐進(jìn)一步加快,各行各業(yè)

31、都在進(jìn)行網(wǎng)絡(luò)化改革。互聯(lián)網(wǎng)成功創(chuàng)業(yè)的案例層出不窮,一方面人們對(duì)于互聯(lián)網(wǎng)的依賴(lài)性與日俱增,另一方面企業(yè)家們也開(kāi)始對(duì)這種新穎的商業(yè)模式產(chǎn)生濃厚興趣。但是由于技術(shù)手段的受限,開(kāi)發(fā)時(shí)間受限,開(kāi)發(fā)人力受限,開(kāi)發(fā)經(jīng)費(fèi)不明確,管理經(jīng)驗(yàn)不足等種種原因不少企業(yè)家更傾向于觀望,持保守態(tài)度,躊躇不前。因此,總的來(lái)說(shuō),大多數(shù)的傳統(tǒng)企業(yè)家,對(duì)虛擬經(jīng)濟(jì)持觀望態(tài)度,或者處于長(zhǎng)期考察的階段。建立一個(gè)優(yōu)秀完整的系統(tǒng)之前,全面完備的系統(tǒng)分析是必不可少的。只有做好系統(tǒng)分析,才能指導(dǎo)項(xiàng)目良好地長(zhǎng)期發(fā)展。而本設(shè)計(jì)優(yōu)良的系統(tǒng)分析是建立在優(yōu)良的需求分析之上的。得益于良好的系統(tǒng)分析,本項(xiàng)目可以按計(jì)劃有序進(jìn)行,有秩序地逐步完成。假若沒(méi)有進(jìn)行完

32、整的系統(tǒng)分析,卻試圖通過(guò)編程調(diào)試來(lái)完成需求,必然會(huì)導(dǎo)致編程思路混亂,新增功能時(shí)和原有功能沖突,嚴(yán)重?cái)_亂系統(tǒng)邏輯,拖慢開(kāi)發(fā)進(jìn)度,此時(shí)再進(jìn)行系統(tǒng)分析恐怕為時(shí)已晚,成品的質(zhì)量恐怕也是難以恭維。項(xiàng)目的進(jìn)度一旦嚴(yán)重落后,開(kāi)發(fā)人員的內(nèi)心難免也會(huì)產(chǎn)生波動(dòng),更加影響開(kāi)發(fā)的質(zhì)量,拖慢開(kāi)發(fā)進(jìn)度,甚至導(dǎo)致版本倒退,這也正是軟件危機(jī)的一種具體呈現(xiàn)。所以想要規(guī)避這種結(jié)果,做好系統(tǒng)分析必不可少。明確系統(tǒng)的功能目的在系統(tǒng)分析時(shí)是首要的,考慮實(shí)現(xiàn)手段在此時(shí)則相對(duì)占次要地位。只有明確系統(tǒng)的功能,最后問(wèn)題才課能迎刃而解。緊接著,是本文的核心。一個(gè)系統(tǒng)必然少不了用戶(hù)和管理員的模型。用戶(hù)是數(shù)據(jù)操作的主體,對(duì)數(shù)據(jù)庫(kù)進(jìn)行主要操作,包括登

33、陸,注冊(cè),查詢(xún),評(píng)論收藏。管理員主要負(fù)責(zé)維護(hù)系統(tǒng),主要職責(zé)包括維護(hù)菜譜的時(shí)效性,維護(hù)系統(tǒng)的穩(wěn)定,可以進(jìn)行用戶(hù)的刪除,第二章 設(shè)計(jì)原理及方法- 8 -評(píng)論的刪除,收藏的刪除等操作。菜譜系統(tǒng)在性能上應(yīng)滿(mǎn)足以下需求:(1) 界面友好: 用戶(hù)無(wú)需培訓(xùn)就可以自發(fā)完成注冊(cè),瀏覽,收藏,評(píng)論等核心操作。頁(yè)面布局合理美觀,信息一目了然,功能鍵按照常見(jiàn)的順序排列,放置在醒目,合理的位置。盡量讓用戶(hù)感受到所見(jiàn)即所得,用戶(hù)體驗(yàn)優(yōu)先。管理員對(duì)表的增刪查改操作都應(yīng)該直觀且高效。(2) 交互及時(shí): 控件應(yīng)該是響應(yīng)式或是具備響應(yīng)式控件的特點(diǎn),每次操作都有相關(guān)的提示或者變化效果,以便用戶(hù)了解自己操作的情況。遠(yuǎn)程操作后應(yīng)該有操

34、作成功或者失敗的提示,刪除等危險(xiǎn)操作時(shí)應(yīng)該給予警告以防誤觸。(3) 系統(tǒng)應(yīng)該為新的功能保留接入的空間,即具有優(yōu)良的擴(kuò)展性。(4) 系統(tǒng)運(yùn)轉(zhuǎn)之后應(yīng)該可以長(zhǎng)期穩(wěn)定地維持運(yùn)轉(zhuǎn),并在遭遇突發(fā)事件后有能力恢復(fù)系統(tǒng)的正常運(yùn)行。表 2-1 需求表主要屬性 具體需求正確性按照需求既無(wú)遺漏也不越界正確無(wú)誤地完整執(zhí)行程序。健壯性亦可稱(chēng)為魯棒性,即程序擁有容錯(cuò)能力和回復(fù)能力。性能效率在擁有良好網(wǎng)絡(luò)環(huán)境的情況下,響應(yīng)時(shí)間不應(yīng)該超過(guò) 3 秒。易用性技術(shù)開(kāi)發(fā)文檔語(yǔ)言樸素平實(shí)并且沒(méi)有歧義。安全性關(guān)鍵性數(shù)據(jù)的傳輸與存貯應(yīng)在成熟的加密協(xié)議下進(jìn)行可擴(kuò)展性進(jìn)行新功能的開(kāi)發(fā)時(shí)不會(huì)對(duì)原有功能產(chǎn)生破壞兼容性新版本的軟件應(yīng)該對(duì)舊版本程式給

35、予支持2.5.2 可行性分析在因特網(wǎng)上,我們往往需要通過(guò)留言來(lái)進(jìn)行跨時(shí)間的交流,這是一種典型的交互式設(shè)計(jì)。最常見(jiàn)的形式就是網(wǎng)絡(luò)用戶(hù)需要與網(wǎng)頁(yè)的擁有者或者維護(hù)者互通信息,或者游客與游客之間相互交流時(shí),可以在一個(gè)特定的區(qū)域張貼文章或者意見(jiàn)看法。本系統(tǒng)后臺(tái)數(shù)據(jù)庫(kù)采用 MySQL,該數(shù)據(jù)庫(kù)系統(tǒng)在安全性、準(zhǔn)確性和成本方面有的較大優(yōu)勢(shì);前臺(tái)采用來(lái)自 Oracle 公司的 Java 語(yǔ)言作為開(kāi)發(fā)基礎(chǔ),可以無(wú)縫的連接 MySQL數(shù)據(jù)庫(kù)10。 第二章 設(shè)計(jì)原理及方法- 9 - 本系統(tǒng)的鏈接架構(gòu)是基于 Android + Servlet + MySQL 框架開(kāi)發(fā)而成的,采用 B/S 架構(gòu),優(yōu)點(diǎn)有成本低,建設(shè)快,維

36、護(hù)方便等等。在實(shí)際運(yùn)行時(shí),本設(shè)計(jì)在功能模塊化的指導(dǎo)思想下,較好地達(dá)成了目標(biāo),也為今后的擴(kuò)充功能保留了充足的空間,既方便又靈活。綜合以上幾點(diǎn)總結(jié)分析,本次畢業(yè)設(shè)計(jì)選定安卓做為食譜系統(tǒng)的平臺(tái)。第三章 系統(tǒng)設(shè)計(jì)- 10 -第三章第三章 系統(tǒng)設(shè)計(jì)系統(tǒng)設(shè)計(jì)系統(tǒng)設(shè)計(jì)又稱(chēng)概要設(shè)計(jì),是為一個(gè)系統(tǒng)定義結(jié)構(gòu),組件,模塊和接口等以滿(mǎn)足的需求過(guò)程。系統(tǒng)設(shè)計(jì)作為系統(tǒng)理論的應(yīng)用,在其分析與架構(gòu)上和一些工程學(xué)科有所重疊。3.13.1 功能模塊的功能模塊的劃分劃分本系統(tǒng)主要分為前端后端兩個(gè)部分六個(gè)模塊,前端作為客戶(hù)端擁有登錄模塊,注冊(cè)模塊,瀏覽模塊,收藏模塊,評(píng)論模塊;后端作為管理系統(tǒng)擁有登陸模塊和管理員模塊。3.23.2

37、模塊的功能設(shè)計(jì)模塊的功能設(shè)計(jì)登錄模塊:用戶(hù)鍵入賬戶(hù)名和密碼,與后臺(tái)數(shù)據(jù)庫(kù)比對(duì)瀏覽模塊:用戶(hù)可以瀏覽所有的菜譜條目,并對(duì)菜譜條目詳細(xì)信息進(jìn)行瀏覽收藏模塊:用戶(hù)能夠收藏所選菜譜評(píng)論模塊:用戶(hù)能夠評(píng)論指定菜譜管理模塊:管理員能夠增加最新菜譜,管理用戶(hù),評(píng)論以及收藏。3.33.3 數(shù)據(jù)庫(kù)的設(shè)計(jì)數(shù)據(jù)庫(kù)的設(shè)計(jì)數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì) (Database Design)就是指按照需求,規(guī)劃每個(gè)數(shù)據(jù)對(duì)象之間互相的關(guān)聯(lián)關(guān)系,并使數(shù)據(jù)庫(kù)中表對(duì)象結(jié)構(gòu)規(guī)劃統(tǒng)一。此過(guò)程是在某一具體的數(shù)據(jù)庫(kù)管理系統(tǒng)之下,如本設(shè)計(jì)中所使用的是 JDBC,以完成數(shù)據(jù)庫(kù)的規(guī)劃與建立的11。3.3.1 需求分析首先,我們要對(duì)用戶(hù)做調(diào)調(diào)研,整合優(yōu)化他們的數(shù)

38、據(jù)使用情況和業(yè)務(wù)需求,以初步確定數(shù)據(jù)規(guī)模,種類(lèi)還有長(zhǎng)度。然后根據(jù)這些基礎(chǔ),建立起一個(gè)系統(tǒng)的需求,以供建立數(shù)據(jù)使用。對(duì)于菜譜系統(tǒng)來(lái)說(shuō)主要實(shí)體首先是菜譜本身,菜譜表自動(dòng)生成一個(gè)編號(hào)作為主鍵以供其他模塊使用。菜譜本身還需要一些其他的內(nèi)容信息諸如做法,圖片,分類(lèi),配料等等。此系統(tǒng)另一個(gè)主要實(shí)體是用戶(hù)。同樣用戶(hù)需要一個(gè)自動(dòng)生成的編號(hào)作為主鍵,用戶(hù)還需要保存用戶(hù)名,密碼,注冊(cè)時(shí)間等信息。在這兩張表的基礎(chǔ)之上,用戶(hù)的收藏,評(píng)論操作都是以用戶(hù)表,菜單表的主鍵作為外鍵引用,并且自動(dòng)生成編號(hào)作為主鍵。通過(guò)已知的數(shù)據(jù)模型對(duì)數(shù)據(jù)模式進(jìn)行設(shè)計(jì),最后完成的符合需求的 E-R 圖(實(shí)體-關(guān)系模型)如圖 3-1:第三章 系統(tǒng)

39、設(shè)計(jì)- 11 -名字配料介紹路徑信息做法分類(lèi)實(shí)體:菜品Id: 主鍵評(píng)論實(shí)體:用戶(hù)收藏用戶(hù)名密碼注冊(cè)時(shí)間Uid: 主鍵內(nèi)容外鍵外鍵外鍵外鍵圖 3-1 實(shí)體聯(lián)系圖3.3.2 概念設(shè)計(jì)概念設(shè)計(jì)是有關(guān)所有非美學(xué)設(shè)計(jì)管理學(xué)科的紀(jì)律的一個(gè)統(tǒng)稱(chēng)詞匯。它是互動(dòng)設(shè)計(jì)的經(jīng)驗(yàn)、方法和策略。人力,知識(shí),產(chǎn)品,服務(wù),流程,盈利能力,視覺(jué)以及其他的可能,對(duì)設(shè)計(jì)師來(lái)說(shuō),每個(gè)不同的方面都需要不同的考量。概念設(shè)計(jì)緊緊聯(lián)系著任何給定環(huán)境下的抽象思考,幫助人們快速理解每個(gè)關(guān)鍵元素,失敗的根源,也和人機(jī)交互緊緊聯(lián)系在一起。自從設(shè)計(jì)思想作為一種商業(yè)和研究發(fā)展的高速工具出現(xiàn),許多傳統(tǒng)的訓(xùn)練有素的美學(xué)設(shè)計(jì)人員被錯(cuò)誤地要求為支持需要專(zhuān)業(yè)知識(shí)

40、的組織與車(chē)間或過(guò)程開(kāi)發(fā)做出無(wú)法與其容量相匹配的不正確假設(shè)。這導(dǎo)致了一個(gè)巨大的陰影籠罩在設(shè)計(jì)行業(yè)中,其設(shè)計(jì)作為商業(yè)或研究發(fā)展的價(jià)值也因此受到質(zhì)疑。本設(shè)計(jì)的結(jié)構(gòu)示意圖如圖 3-2 所示:第三章 系統(tǒng)設(shè)計(jì)- 12 -Tomcat 服務(wù)器,Servlet 服務(wù),JDBC 連接池?cái)?shù)據(jù)操作MySql 數(shù)據(jù)庫(kù)HtmlHtml安卓端:僅適用于安卓,即客戶(hù)端。Web 管理端:在任何瀏覽器中使用,用于數(shù)據(jù)庫(kù)維護(hù),即管理端Web 管理端登陸界面安卓端主界面登陸界面注冊(cè)界面顯示收藏評(píng)論功能對(duì)數(shù)據(jù)庫(kù)進(jìn)行增刪查改操作收藏評(píng)論操作圖 3-2 示意圖第三章 系統(tǒng)設(shè)計(jì)- 13 -3.3.3 邏輯設(shè)計(jì)邏輯設(shè)計(jì)作為系統(tǒng)設(shè)計(jì)的一個(gè)部

41、分,主要是對(duì)系統(tǒng)地?cái)?shù)據(jù)流進(jìn)行設(shè)計(jì),用抽象表示系統(tǒng)的輸入輸出。通常圖表設(shè)計(jì)和抽象模型都需要進(jìn)行。邏輯設(shè)計(jì)主要是通過(guò)模擬進(jìn)行的對(duì)實(shí)際系統(tǒng)的過(guò)度抽象。本設(shè)計(jì)中該環(huán)節(jié)的目標(biāo)是把概念中的數(shù)據(jù)模式轉(zhuǎn)化為建立在一個(gè)具體數(shù)據(jù)庫(kù)管理系統(tǒng)之上的具體數(shù)據(jù)結(jié)構(gòu)。本設(shè)計(jì)經(jīng)過(guò)邏輯設(shè)計(jì)之后,獲得的符合需求的數(shù)據(jù)表和字段名及其說(shuō)明如下:(1)菜譜表菜譜表是本設(shè)計(jì)的核心,其具體結(jié)構(gòu)如表 3-1 所示。表 3-1 菜譜表名稱(chēng)意義數(shù)據(jù)類(lèi)型內(nèi)存寬度其他說(shuō)明1Id編號(hào)Int11主鍵,自動(dòng)遞增2Name菜名Text03Image圖片Text04Introduce介紹Text05Ingredient配料Text06BaseTag第一分類(lèi)I

42、nt117DetailTag第二分類(lèi)Int118Tag分類(lèi)Text09Url相對(duì)位置Text010Steps做法Text0(2)用戶(hù)表用戶(hù)表是用戶(hù)實(shí)體的抽象,其具體字段如表 3-2 所示。 (3)收藏表基于用戶(hù)表和菜譜表,收藏表具體如表 3-3 所示。 (4)評(píng)論表同樣基于用戶(hù)表和菜譜表,評(píng)論表的結(jié)構(gòu)如表 3-4 所示。第三章 系統(tǒng)設(shè)計(jì)- 14 -表 3-2 用戶(hù)表名稱(chēng)意義數(shù)據(jù)類(lèi)型內(nèi)存寬度其他說(shuō)明1Id編號(hào)Int11主鍵,自動(dòng)遞增2IpIpText03Pwd密碼Text04Name姓名Text05regist_time注冊(cè)時(shí)間Date06Channel渠道Text0 表 3-3 收藏表名稱(chēng)意義

43、數(shù)據(jù)類(lèi)型內(nèi)存寬度其他1Id編號(hào)Int11主鍵,自動(dòng)遞增2Uid用戶(hù) idInt11用戶(hù)表外鍵3Cookbook_id菜譜 idInt11菜譜表外鍵表 3-4 評(píng)論表名稱(chēng)意義數(shù)據(jù)類(lèi)型內(nèi)存寬度其他說(shuō)明1Id編號(hào)Int11主鍵自動(dòng)遞增2Uid用戶(hù) idInt11用戶(hù)表外鍵3Cookbook_id菜譜 idInt11菜譜表外鍵4Content評(píng)論內(nèi)容Text03.43.4 數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)的連接連接連接數(shù)據(jù)庫(kù)是一項(xiàng)很關(guān)鍵的步驟,只有正確完整地完成連接,才能成功地進(jìn)行其他操作,才能開(kāi)展之后的設(shè)計(jì)與實(shí)現(xiàn)工作。本設(shè)計(jì)主要采用 java 語(yǔ)言編寫(xiě),連接橋采用 Mysql-JDBC 驅(qū)動(dòng),服務(wù)器與數(shù)據(jù)庫(kù)之間共享數(shù)

44、據(jù)通過(guò) JDBC 完成。此連接橋由于十分常見(jiàn),本文不再贅述,實(shí)際源碼可以參考附錄。第四章 系統(tǒng)實(shí)現(xiàn)- 15 -第四章第四章 系統(tǒng)系統(tǒng)實(shí)現(xiàn)實(shí)現(xiàn)4.14.1 設(shè)計(jì)思路設(shè)計(jì)思路用戶(hù)用起來(lái)是否順手,能否輕松簡(jiǎn)單的使用,用戶(hù)進(jìn)行操作和機(jī)器進(jìn)行響應(yīng)之間的操作響應(yīng)時(shí)間,以及終端發(fā)出消息主機(jī)接收到消息之間的連接時(shí)間,這些時(shí)延是否足夠的小,用戶(hù)接收到的圖片的綜合質(zhì)量是否令用戶(hù)滿(mǎn)意,首頁(yè)的布局質(zhì)量的高低以及首頁(yè)信息類(lèi)型信息,這些都是用戶(hù)感受最直接最基礎(chǔ)的東西,這些東西就叫做移動(dòng)終端。生活中我們經(jīng)常遇到的界面通常有三種情況:(1)文字:生活中我們看到一個(gè)界面,我們經(jīng)常發(fā)現(xiàn)界面中的連接、標(biāo)題、正文。 。 。 。 。都

45、是主要以文字的形式出現(xiàn)。甚至一些按鈕、警告、信息等等都是文字。我們通常會(huì)把文字用來(lái)傳遞信息,這是最常出現(xiàn)的最普遍的情況。所以說(shuō)文字是界面的內(nèi)容載體,而標(biāo)題則是界面的眼睛。標(biāo)題是對(duì)整個(gè)頁(yè)面內(nèi)容的總體概述,應(yīng)該讓人一眼看到,能夠直接傳遞一些重要信息,直觀、醒目。而頁(yè)面里的文字又有著很多屬性,每個(gè)屬性都能出傳遞重要的信息。我們常用的屬性一般有字體、顏色、大小、位置、排版。 。 。 。 。 。我們可以通過(guò)這些屬性對(duì)設(shè)計(jì)者想要傳達(dá)的信息有一個(gè)大概的了解。字體,大小,顏色,板式和排列都從側(cè)面直觀地投射出設(shè)計(jì)者的想法、水平和態(tài)度。要想真正體現(xiàn)出用戶(hù)友好型,必須從字體開(kāi)始著手。在設(shè)計(jì)時(shí),字體可以與 W3C 規(guī)

46、范同步以保證美觀。(2)圖形:除了上文中的文字是,界面比較直觀的,反映信息的要素,還有一種要素,在傳遞信息時(shí)有著至關(guān)重要的作用那就是:圖形,我們可以通過(guò)合理的運(yùn)用圖形,來(lái)表達(dá),來(lái)傳遞一些信息,我們也可以通過(guò),對(duì)圖形的合理應(yīng)用,來(lái)使的設(shè)計(jì)主題可以達(dá)到更加生動(dòng)更加形象的效果,在日常生活中,我們看網(wǎng)頁(yè)中的圖片一般都有如下格式:GIF,jpg,還有一些罕見(jiàn)的 png 的通用 web 格式。(3)界面版式:板式是界面設(shè)計(jì)中的重要部分,其組合著文字與圖形。一個(gè)美觀大方的板式能夠提高閱讀效率,加速信息傳遞,提高用戶(hù)忠誠(chéng)。正是為了將文字,圖形等元素有序的組合在一起,我們需要慎重設(shè)計(jì)終端系統(tǒng)的界面。試想一個(gè)每個(gè)

47、功能都圖文并茂,甚至只需要圖片就能了解功能概況的系統(tǒng),必定能夠牢牢把握住用戶(hù)的芳心,讓用戶(hù)愛(ài)不釋手。反之,一個(gè)操作繁雜,難以上手,晦澀的系統(tǒng),肯定最終會(huì)被用戶(hù)拋棄,消失在應(yīng)用的海洋之中。第四章 系統(tǒng)實(shí)現(xiàn)- 16 -4.24.2 登陸界面登陸界面4.2.1 界面功能期望我們期望主菜單界面擁有以下功能模塊,首先我們希望能擁有讓用戶(hù)進(jìn)行瀏覽的瀏覽功能模塊,而且還有供用戶(hù)登錄和注冊(cè)的功能模塊,如果用戶(hù)想退出,還有退出的功能模塊,不光如此,評(píng)論和收藏的功能模塊也必須要有,而且在此基礎(chǔ)之上每個(gè)功能模塊,都能夠獨(dú)立的運(yùn)行,相對(duì)獨(dú)立地提供服務(wù),而且從外觀上,還要體現(xiàn)出美觀得體,要讓用戶(hù)一眼看上去很舒服,讓用戶(hù)

48、有著更好的用戶(hù)體驗(yàn)。4.2.2 如何優(yōu)化界面我們的登錄界面是面向用戶(hù)的,所以讓用戶(hù)能夠簡(jiǎn)單明了的進(jìn)行操作是我們?cè)O(shè)計(jì)界面的目的,我們期望每一個(gè)用戶(hù)都有一個(gè)帳號(hào)和密碼來(lái)進(jìn)行登錄,當(dāng)然如果沒(méi)有帳號(hào)和密碼的情況下,也可以以游客的身份進(jìn)行瀏覽,但是他會(huì)比有帳號(hào)和密碼的用戶(hù)少一些功能,例如說(shuō),他沒(méi)有收藏功能,而且在使用本服務(wù)后,無(wú)法進(jìn)行評(píng)論。當(dāng)用戶(hù)輸入完帳號(hào)和密碼后,界面把消息發(fā)送給數(shù)據(jù)庫(kù),這一段消息得經(jīng)過(guò)加密處理。數(shù)據(jù)庫(kù)把加密后的信息和數(shù)據(jù)庫(kù)中的加密信息進(jìn)行對(duì)比,只有兩者相同才能通過(guò)驗(yàn)證,通過(guò)驗(yàn)證后返回到主菜單界面,如果不對(duì)則返回主菜單界面并提示賬號(hào)或密碼錯(cuò)誤。4.2.3 功能描述 用戶(hù)可需要通過(guò)輸入用

49、戶(hù)名和密碼來(lái)解鎖移動(dòng)終端首界面的所有功能。用戶(hù)的賬號(hào)密碼是通過(guò)注冊(cè)寫(xiě)入數(shù)據(jù)庫(kù)的,也可提前在服務(wù)器數(shù)據(jù)庫(kù)中取定的,用戶(hù)通過(guò)張海密碼登錄。每一個(gè)用戶(hù)的賬號(hào)和密碼都不是重復(fù)的,必須唯一。第四章 系統(tǒng)實(shí)現(xiàn)- 17 -4.2.4 界面外觀圖圖 4-1 登錄界面效果圖4.2.5 設(shè)計(jì)步驟用戶(hù)登錄的控制我們是通過(guò) Activity 來(lái)實(shí)現(xiàn)的,在完成基本的非空校驗(yàn)之后,將用戶(hù)名與密碼發(fā)送的到服務(wù)器實(shí)用程序中去。非空校驗(yàn)主要是保證賬號(hào)密碼必須有值,如果有一條為空那么就發(fā)送一條消息,該消息顯示用戶(hù)名或密碼至少有一者為空。如果發(fā)送了為空的用戶(hù)名或者密碼可能會(huì)造成服務(wù)器端空指針的錯(cuò)誤所以務(wù)必要避免。服務(wù)器實(shí)用程序?qū)l(fā)

50、送來(lái)的密碼與數(shù)據(jù)庫(kù)表中的數(shù)據(jù)進(jìn)行匹配,匹配則返回指令提示移動(dòng)終端跳轉(zhuǎn)到響應(yīng)的頁(yè)面。4.2.6 關(guān)鍵源碼設(shè)計(jì)解讀安卓程序的結(jié)構(gòu)是在相應(yīng)的控件之上綁定監(jiān)聽(tīng)事件函數(shù),比如登陸界面就是在登陸按鈕上綁定一個(gè)函數(shù),如果檢測(cè)到用戶(hù)名或者密碼的輸入框中有未填寫(xiě)項(xiàng),就會(huì)使用toast 函數(shù)彈出一個(gè)提示框提示用戶(hù)用戶(hù)名會(huì)這密碼未填寫(xiě),只有不為空時(shí),才會(huì)新建一個(gè)線(xiàn)程向服務(wù)器發(fā)送數(shù)據(jù)。如果服務(wù)器經(jīng)過(guò)比對(duì)返回了跳轉(zhuǎn)指令,監(jiān)聽(tīng)函數(shù)收到了跳轉(zhuǎn)指令,就會(huì)返回 UI 線(xiàn)程,在 UI 線(xiàn)程中跳轉(zhuǎn)到指定的主界面。如果收到了失敗指令,就第四章 系統(tǒng)實(shí)現(xiàn)- 18 -會(huì)彈出一個(gè)提示框提示該用戶(hù)用戶(hù)名或密碼填寫(xiě)錯(cuò)誤。在安卓的版本經(jīng)過(guò)升級(jí)之

51、后,系統(tǒng)性能有著顯著的提升,其代價(jià)是設(shè)計(jì)者必須重新思考程序的設(shè)計(jì)以適應(yīng)新版本系統(tǒng)的結(jié)構(gòu)。在較新的版本之中,多線(xiàn)程協(xié)調(diào)工作成為一個(gè)應(yīng)用必須的能力,而不再是過(guò)去簡(jiǎn)單的單線(xiàn)程應(yīng)用也可勝任多重任務(wù)。在新版本之中,主線(xiàn)程被認(rèn)為是用戶(hù)界面線(xiàn)程,有嚴(yán)格的運(yùn)行時(shí)間限制,任何試圖在主線(xiàn)程之中進(jìn)行的長(zhǎng)耗時(shí)操作,諸如網(wǎng)絡(luò)連接,新建界面,等待認(rèn)證都會(huì)導(dǎo)致應(yīng)用產(chǎn)生意料之外的行為。其具體表現(xiàn)為應(yīng)用不執(zhí)行或跳過(guò)開(kāi)發(fā)者的程序片段,產(chǎn)生空指針導(dǎo)致應(yīng)用強(qiáng)行退出,點(diǎn)擊界面控件后長(zhǎng)時(shí)間沒(méi)有響應(yīng)以至于整個(gè)應(yīng)用停止工作。如何在適應(yīng)新的框架下編寫(xiě)應(yīng)用成為開(kāi)發(fā)者入門(mén)的一道難關(guān)。本設(shè)計(jì)將簡(jiǎn)單闡述多線(xiàn)程控制器(Handler)和在視圖層運(yùn)行線(xiàn)程

52、(runOnUIThread)兩種方法實(shí)現(xiàn)簡(jiǎn)單的網(wǎng)絡(luò)交互工作。(1)多線(xiàn)程控制器(Handler)多線(xiàn)程控制器同樣是一種 MVC 結(jié)構(gòu)設(shè)計(jì)的產(chǎn)物,作為一種特殊的控制器函數(shù),Handler 負(fù)責(zé)協(xié)調(diào)各線(xiàn)程之間運(yùn)行,并通過(guò)消息隊(duì)列(handlemessage)處理來(lái)源于子線(xiàn)程的更新請(qǐng)求。新版本中應(yīng)用無(wú)法順利執(zhí)行多線(xiàn)程命令的原因是新的線(xiàn)程即耗時(shí)操作并不是原本視圖的擁有者。耗時(shí)操作的目的是為了更改原有的視圖,這就產(chǎn)生了線(xiàn)程試圖超越它本身的權(quán)限的安全隱患,可能會(huì)導(dǎo)致惡意進(jìn)程更改其他應(yīng)用的用戶(hù)界面,從而獲得對(duì)移動(dòng)設(shè)備的控制權(quán)。所以,非視圖擁有者是不能更改視圖的,視圖的擁有者即MainActivity 需要

53、創(chuàng)建一個(gè)控制器(handler) ,并通過(guò)安全的消息隊(duì)列獲得它產(chǎn)生的子線(xiàn)程的數(shù)據(jù)完成視圖的更新操作。其具體工作方式如圖 4-2:第四章 系統(tǒng)實(shí)現(xiàn)- 19 -主線(xiàn)程 MainActivity消息隊(duì)列循環(huán)器Loopper主線(xiàn)程創(chuàng)建的新的子線(xiàn)程發(fā)送消息處理器 Handlerhandlemessage更新主線(xiàn)程的用戶(hù)界面通知圖 4-2 工作方式示意圖這樣一來(lái)新的線(xiàn)程通知了視圖的擁有者,讓視圖的擁有者去更新視圖,完成視圖操作。達(dá)到了目標(biāo)。詳細(xì)的工作原理請(qǐng)參考有關(guān)安卓異步回調(diào)機(jī)制的相關(guān)書(shū)籍。(2)視圖層運(yùn)行線(xiàn)程視圖層運(yùn)行線(xiàn)程是指創(chuàng)建新的子線(xiàn)程之后或者是同時(shí),再創(chuàng)建一個(gè)視圖線(xiàn)程,該線(xiàn)程是用戶(hù)視圖線(xiàn)程的擁有者

54、,在子線(xiàn)程中完成耗時(shí)操作之后,再在此視圖線(xiàn)程中完成視圖的更新操作,同樣可以完成目標(biāo)。這么做的好處是對(duì)于那些異步操作較少的簡(jiǎn)單應(yīng)用,比如僅僅是需要訪(fǎng)問(wèn)一次網(wǎng)絡(luò),可以更快地完成回調(diào),但是對(duì)于那些異步操作較多的應(yīng)用,比如需要多次訪(fǎng)問(wèn)網(wǎng)絡(luò),頻繁與其他界面交互,這種做法并不明智。4.2.7 安卓系統(tǒng)機(jī)制概述要想實(shí)現(xiàn)安卓的應(yīng)用程序首先我們需要至少了解安卓系統(tǒng)的簡(jiǎn)單機(jī)制。一個(gè)安卓應(yīng)用程序一般來(lái)說(shuō)是由多個(gè)活動(dòng)(Activity)組成的,活動(dòng)類(lèi)似一個(gè)窗口或者一張視圖,特殊情況下應(yīng)用程序也可能并不是這樣組成的。在實(shí)際裝配時(shí),需要為每一個(gè)活動(dòng)在配置文件中(AndroidManifest.xml)至少設(shè)置一條記錄。一

55、個(gè)活動(dòng)一般分成布局(layout)和源程序(res)兩個(gè)部分,源代碼就是寫(xiě)在程序部分的。活動(dòng)之間通過(guò)意圖第四章 系統(tǒng)實(shí)現(xiàn)- 20 -(intent)來(lái)進(jìn)行切換。首先活動(dòng)新建一個(gè)意圖,通過(guò)在配置文件中設(shè)置的類(lèi)名找到新的活動(dòng),再新建一個(gè)線(xiàn)程(Thread) ,將意圖置入新的線(xiàn)程,最后啟動(dòng)線(xiàn)程就可以完成活動(dòng)之間的跳轉(zhuǎn)。除了活動(dòng),安卓還有一種服務(wù)(service)用于處理那些沒(méi)有界面,而且需要運(yùn)行較長(zhǎng)時(shí)間的進(jìn)程,比如在在瀏覽網(wǎng)頁(yè)的同時(shí)后臺(tái)播放本地的背景音樂(lè),此時(shí)播放音樂(lè)就是一個(gè)典型的沒(méi)有視圖的線(xiàn)程,又比如后臺(tái)同步網(wǎng)絡(luò)數(shù)據(jù),這也可以是一個(gè)沒(méi)有視圖的線(xiàn)程。我們常見(jiàn)的在通知欄里出現(xiàn)的是通知(broadcas

56、t) ,短消息提醒,活動(dòng)信息,廣告等往往采用這種方式與用戶(hù)互動(dòng)。最后還有一種是內(nèi)容提供者(content provider) ,比如聯(lián)系人列表,這類(lèi)組件往往用于為其他應(yīng)用程序提供對(duì)設(shè)備數(shù)據(jù)的訪(fǎng)問(wèn)。安卓中最為常用的主要是活動(dòng),并且在默認(rèn)的情況下,新的活動(dòng)建立(onCreate)時(shí),舊的進(jìn)程并不是立即銷(xiāo)毀(onDestory) ,而是進(jìn)入中斷(onPause) ,并被保存在歷史堆棧中,這樣,即使開(kāi)發(fā)者沒(méi)有為每一個(gè)活動(dòng)定義返回鍵的函數(shù)(onBackPressed)重載(override) ,應(yīng)用也可以自動(dòng)地在按返回鍵時(shí)重現(xiàn)上一個(gè)活動(dòng)。4.34.3 主界面主界面設(shè)計(jì)設(shè)計(jì)4.3.1 功能設(shè)定這個(gè)按鍵模塊

57、是想達(dá)到讓使用者查看菜譜信息的目的,對(duì)感興趣的信息進(jìn)行閱讀。登陸之后,用戶(hù)也可以收藏評(píng)論相應(yīng)的菜譜條目。4.3.2 主用戶(hù)界面構(gòu)思主用戶(hù)界面的如下圖 4-3 所示:第四章 系統(tǒng)實(shí)現(xiàn)- 21 -圖 4-3 主界面圖 4-4 評(píng)論功能第四章 系統(tǒng)實(shí)現(xiàn)- 22 -圖 4-5 收藏功能4.44.4 管理界面管理界面 4.4.1 功能設(shè)定設(shè)計(jì)該功能主要是為了維護(hù)系統(tǒng),使系統(tǒng)內(nèi)的數(shù)據(jù)保持正確,具有時(shí)效。4.4.2 界面設(shè)計(jì)本界面的設(shè)計(jì)如下圖 4-6 所示4.4.3 功能實(shí)現(xiàn)為了讓菜譜保持時(shí)效,不斷更新菜譜,需要擁有多個(gè)可以直接對(duì)后臺(tái)進(jìn)行維護(hù)操作的管理員,即允許同時(shí)有多個(gè)管理員對(duì)用戶(hù)表進(jìn)行新增或者刪除操作,

58、審查評(píng)論并可以刪除或者新增以此來(lái)維護(hù)論壇秩序。第四章 系統(tǒng)實(shí)現(xiàn)- 23 -圖 4-6 管理界面4.54.5 評(píng)論界面評(píng)論界面 4.5.1 功能設(shè)定在相應(yīng)的菜譜界面可以看到用戶(hù)的評(píng)論,登陸過(guò)后點(diǎn)擊評(píng)論按鈕以后系統(tǒng)會(huì)跳轉(zhuǎn)到指定評(píng)論界面。第四章 系統(tǒng)實(shí)現(xiàn)- 24 -4.5.2 界面設(shè)計(jì)圖 4-7 提交評(píng)論查看評(píng)論第四章 系統(tǒng)實(shí)現(xiàn)- 25 -4.5.3 功能實(shí)現(xiàn)首先應(yīng)用會(huì)從服務(wù)器獲得菜譜的編號(hào),并提交當(dāng)前用戶(hù)的 id 與評(píng)論內(nèi)容,通過(guò)btn.setEnabled(false)方法就會(huì)使按鈕失效,不能重復(fù)提交評(píng)論,這也是為了減少冗余,不易讓用戶(hù)重復(fù)提交評(píng)論產(chǎn)生數(shù)據(jù)錯(cuò)誤。第五章 測(cè)試- 26 -第五章第五

59、章 測(cè)試測(cè)試5.15.1 測(cè)試的測(cè)試的基本概念基本概念測(cè)試是為了讓企業(yè)等利益相關(guān)方對(duì)產(chǎn)品或服務(wù)的質(zhì)量實(shí)施相關(guān)的調(diào)查,以提供一個(gè)個(gè)客觀獨(dú)立的意見(jiàn),以便評(píng)估部署軟件的風(fēng)險(xiǎn)。測(cè)試的技術(shù)主要致力于在執(zhí)行應(yīng)用或程序的同時(shí),尋找缺陷或潛在的錯(cuò)誤。為了獲取一個(gè)或多個(gè)特性,測(cè)試應(yīng)該覆蓋軟件或系統(tǒng)組件的執(zhí)行。由于需要測(cè)試的簡(jiǎn)單軟件數(shù)量幾乎是無(wú)限的,所以測(cè)試通常使用一些策略來(lái)確保測(cè)試的時(shí)間和資源沒(méi)有超出可接納的上限。測(cè)試不僅是試圖執(zhí)行軟件,更重要的是在試圖從執(zhí)行中發(fā)現(xiàn)阻礙程序運(yùn)行的具體錯(cuò)誤或者潛在的缺陷。有時(shí),修復(fù)一個(gè)錯(cuò)誤時(shí)可能發(fā)現(xiàn)一個(gè)另一個(gè)漏洞或者更深層次的漏洞,甚至,可能會(huì)產(chǎn)生一個(gè)新的漏洞,所以測(cè)試的過(guò)程往往

60、是反復(fù)的。由于一個(gè)錯(cuò)誤的存在可能引發(fā)更為嚴(yán)重的其他錯(cuò)誤,導(dǎo)致一系列的錯(cuò)誤,以至于修復(fù)所需要的時(shí)間、資源劇烈增長(zhǎng),所以測(cè)試應(yīng)該及時(shí)的被執(zhí)行,軟件只要部分完成,到達(dá)可以執(zhí)行的程度,就應(yīng)該執(zhí)行測(cè)試。軟件在總體開(kāi)發(fā)的時(shí)候就可以決定何時(shí)以及如何進(jìn)行測(cè)試。比如,階段開(kāi)發(fā)系統(tǒng)需要在系統(tǒng)定義之后執(zhí)行可測(cè)試的程序,而迅敏開(kāi)發(fā)則是開(kāi)發(fā)的同時(shí)就進(jìn)行測(cè)試。5.25.2 測(cè)試方法測(cè)試方法軟件測(cè)試有如此之多的方法,我們可以把它們分為靜態(tài)方法和動(dòng)態(tài)方法。所謂靜態(tài)方法包括評(píng)審(Review) ,走查(Walkthrough)和檢查(Inspection)12。動(dòng)態(tài)檢查指的是在給定測(cè)試用例的情況之下,執(zhí)行代碼。有很多靜態(tài)測(cè)試方

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論