版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p> 基于.net的PSP系統(tǒng)的軟件設計和實現(xiàn)</p><p><b> 摘 要</b></p><p> 本系統(tǒng)主要使用了Jsp、Struts2、Spring以及Hibernate技術,采用目前網站開發(fā)中較為流行的MVC設計架構。Struts2技術主要用于處理頁面的跳轉和對業(yè)務方法的調用,目的是為了分離視圖層和控制層。Spring 技術主要用于在
2、Struts與Hibernate技術之間的解耦操作,提高程序的重用性、可維護性以及健壯性。Hibernate技術是為了實現(xiàn)用面向對象的思想來管理和使用數(shù)據(jù)庫技術,實現(xiàn)程序與數(shù)據(jù)庫之間的低耦合。</p><p> 文章介紹了使用java和xml技術開發(fā)網站系統(tǒng)的詳細過程,介紹了項目背景和開發(fā)意義,同時包含了對系統(tǒng)開發(fā)環(huán)境與技術的介紹。在系統(tǒng)分析與設計部分,對系統(tǒng)功能做出了詳細的描述,并對各個功能模塊進行了分析,包
3、括模塊顯示界面、使用的數(shù)據(jù)及函數(shù)調用過程等。使用類圖闡述了本系統(tǒng)的設計思路,使用用例圖和時序圖來協(xié)助說明系統(tǒng)的設計方案。在系統(tǒng)實現(xiàn)與測試階段,使用了流程圖進一步展現(xiàn)了系統(tǒng)功能的實現(xiàn)過程。</p><p> 該系統(tǒng)將會給各鐘表銷售門店帶來方便,其功能需求也會進一步提高和穩(wěn)定。我們期待該系統(tǒng)能為當今社會更好的服務。</p><p><b> 目 錄</b></p
4、><p><b> 第1章 緒論1</b></p><p> 1.1 開發(fā)背景1</p><p> 1.2開發(fā)思路及主要方法1</p><p> 1.3.我的PSP管理2</p><p><b> 第2章開發(fā)語言3</b></p><p&g
5、t; 2.1.1 系統(tǒng)開發(fā)工具與運行平臺3</p><p> 2.1.2 開發(fā)語言4</p><p> 2.2 相關技術簡介5</p><p> 2.2.1動態(tài)編程5</p><p> 2.2.2系統(tǒng)采用技術介紹10</p><p> 第3章系統(tǒng)分析與設計11</p><p&
6、gt; 3.1 用戶需求的獲取11</p><p> 3.2 系統(tǒng)用戶分析11</p><p> 3.3 系統(tǒng)功能分析11</p><p> 3.4數(shù)據(jù)庫分析與設計12</p><p> 3.5 系統(tǒng)詳細設計12</p><p> 3.5.1 系統(tǒng)頁面設計12</p><p&
7、gt; 第4章 系統(tǒng)實現(xiàn)與測試13</p><p> 4.1 重要模塊說明13</p><p><b> 結論16</b></p><p><b> 致謝18</b></p><p><b> 參考文獻19</b></p><p>&
8、lt;b> 第1章 緒論</b></p><p><b> 1.1 開發(fā)背景</b></p><p> 個人軟件過程(PSP)是一種可用于控制、管理和改進個人工作方式的自我持續(xù)改進過程,是一個包括軟件開發(fā)表格、指南和規(guī)程的結構化框架。PSP與具體 的技術(程序設計語言、工具或者設計方法)相對獨立,其原則能夠應用到幾乎任何的軟件工程任務之中。PS
9、P能夠說明個體軟件過程的原則; 幫助軟件工程師作出準確的計劃;確定軟件工程師為改善產品質量要采取的步驟;建立度量個體軟件過程改善的基準;確定過程的改變對軟件工程師能力的影響。其中,PSP又包括過程改進,時間管理,制訂計劃缺陷管理幾個方面。在CMM1.1版本的18個關鍵過程域中有12個與PSP有關,據(jù)統(tǒng)計,軟件項目開發(fā)成本的70%取決于軟件開發(fā)人員個人的技能、經驗和工作習慣。因此, 一個單位的軟件開發(fā)人員如能接受PSP培訓,對該單位軟件能
10、力成熟度的升級是一個有力的保證。CMM側重于軟件企業(yè)中有關軟件過程的宏觀管理,面向軟件開 發(fā)單位,PSP則側重于企業(yè)中有關軟件過程的微觀優(yōu)化,面向軟件開發(fā)人員。二者互相支持,互相補充,缺一不可。</p><p> 按照PSP規(guī)程,改進軟件過程的步驟首先需要明確質量目標,也就是軟件將要在功能和性能上滿足的要求和用戶潛在的需求。接著就是度量產品質量,有了目標還 不行,目標只是一個原則性的東西,還不便于實際操作和判斷
11、,因此,必須對目標進行分解和度量,使軟件質量能夠"測量"。然后就是理解當前過程,查找問題, 并對過程進行調整。最后應用調整后的過程,度量實踐結果,將結果與目標做比較,找出差距,分析原因,對軟件過程進行持續(xù)改進。</p><p> 就象CMM為軟件企業(yè)的能力提供一個階梯式 的進化框架一樣,PSP為個體的能力也提供了一個階梯式的進化框架,以循序漸進的方法介紹過程的概念,每一級別都包含了更低一級別
12、中的所有元素,并增加了 新的元素。這個進化框架是學習PSP過程基本概念的好方法,它賦予軟件人員度量和分析工具,使其清楚地認識到自己的表現(xiàn)和潛力,從而可以提高自己的技能和 水平。</p><p> 1.2開發(fā)思路及主要方法</p><p> 在上這門選修課之前,我對PSP個人軟件過程可以說是一點都不了解,只知道PSP是一款游戲機。經過了老師的講解,我才對PSP個人軟件過程有了初步的了解。
13、 原來,我以為開發(fā)軟件靠的只是技術,只要掌握了編程技巧,把相應的語言學好,就能開發(fā)出優(yōu)秀的軟件??墒?,學習幾節(jié)課后,聽了您對PSP的講解,我才明白要要想開發(fā)出好的軟件,不僅需要真才實干,還要有好的規(guī)劃好自己的時間和其他方面。由于我是計算機專業(yè)的學生,可能對這些知識接觸較少,有說的不太對的地方,還請老師以后多指教。</p><p> 我認為PSP包括了很多方面,其中有對代碼的不斷修改,通過測量來發(fā)現(xiàn)問題,并改正
14、問題。還有對自己的時間的合理利用,做切實可行的計劃,按照計劃進行工作,這樣可以了解計劃存在哪些問題,有助于更好的計劃下一個項目。按照好的計劃完成工作,由于軟件中的許多錯誤都是由于粗心大意引起的,所以合理利用時間,計劃工作是很有用的,可以有效的減少這些錯誤。</p><p> 我認為PSP也是一種很好的工作和學習的方法,它可以使我們更好的學習和工作,最大化的利用時間,提高工作效率。這就是我對PSP的的認識,以后的
15、工作中我會通過PSP對自己的工作做較好的計劃,更好的體會PSP給工作帶來的益處,對它進一步的了解。</p><p> 1.3.我的PSP管理</p><p><b> (1)制定計劃</b></p><p> 每天要做的事情很多,如果不制定一個很好的計劃就總會不能按計劃完作,尤其到了周六日的時候,早晨一睡就是一上午,會浪費很多時間,所以我
16、自已制定了周日一天的計劃。</p><p><b> (2)過程改進</b></p><p> PSP需要不斷的改進。</p><p> 就是在不斷的測量中發(fā)現(xiàn)問題和改正錯誤。這學期的c語言作業(yè)中我就通過不斷的調試,發(fā)現(xiàn)錯誤,然后改進,并完善程序。我編的是一個貪食蛇的小游戲,編好后,我發(fā)現(xiàn)只能實現(xiàn)玩家控制一條小蛇吃蛋,增加長度。雖然做好了
17、,但是和我玩過的絕大多數(shù)游戲比起來,簡直太簡單了,可玩性相當差,于是我又在頭腦中形成了我想要的游戲的樣子,以那樣的為目標,一點點改進我程序。如加入音樂,加入其他食物(得分食物,加速食物等),增加主菜單,增加一些關卡,</p><p> 調試過程也是一個不斷與目標看齊,改進程序的過程,就像一開始我加入音樂時,發(fā)現(xiàn)是在游戲之前播放音樂,播放完成后,才能進入游戲,于是我查找書籍,反復調試,最后成功達到音樂做為背景音樂
18、的效果。就這樣朝著目標不斷改進,最后終于達到了期望的結果。</p><p><b> 第2章開發(fā)語言</b></p><p> 2.1.1 系統(tǒng)開發(fā)工具與運行平臺</p><p> 由于Linux是一套具有Unix全部功能的免費操作系統(tǒng),它在眾多的軟件中占有很大的優(yōu)勢,為廣大的計算機愛好者提供了學習、探索以及修改計算機操作系統(tǒng)內核的機會。
19、</p><p> 操作系統(tǒng)是一臺計算機必不可少的系統(tǒng)軟件,是整個計算機系統(tǒng)的靈魂。一個操作系統(tǒng)是一個復雜的計算機程序集,它提供操作過程的協(xié)議或行為準則。沒有操作系統(tǒng),計算機就無法工作,就不能解釋和執(zhí)行用戶輸入的命令或運行簡單的程序。大多數(shù)操作系統(tǒng)都是由一些主要的軟件公司支持的商品化程序,用戶只能有償使用。如果用戶購買了一個操作系統(tǒng),他就必須滿足供應商所要求的一切條件。因為操作系統(tǒng)是系統(tǒng)程序,用戶不能擅自修改或
20、試驗操作系統(tǒng)的內核。這對于廣大計算機愛好者來說無疑是一種束縛。</p><p> 要想發(fā)揮計算機的作用,僅有操作系統(tǒng)還不夠,用戶還必須要有各種應用程序的支持。應用程序是用于處理某些工作(如字處理)的軟件包,通常它也只能有償使用。每個應用程序的軟件包都為特定的操作系統(tǒng)和機器編寫。使用者無權修改這些應用程序。使用Linux,可以將操作系統(tǒng)變成一種操作環(huán)境。</p><p> 由于Linux
21、是一套自由軟件,用戶可以無償?shù)氐玫剿捌湓创a,可以無償?shù)孬@得大量的應用程序,而且可以任意地修改和補充它們。這對用戶學習、了解Unix操作系統(tǒng)的內核非常有益。 學習和使用Linux,能為用戶節(jié)省一筆可觀的資金。Linux是目前唯一可免費獲得的、為PC機平臺上的多個用戶提供多任務、多進程功能的操作系統(tǒng),這是人們要使用它的主要原因。就PC機平臺而言,Linux提供了比其他任何操作系統(tǒng)都要強大的功能,Linux還可以使用戶遠離各種商品化軟件提
22、供者促銷廣告的誘惑,再也不用承受每過一段時間就升級之苦,因此,可以節(jié)省大量用于購買或升級應用程序的資金。</p><p> Linux不僅為用戶提供了強大的操作系統(tǒng)功能,而且還提供了豐富的應用軟件。用戶不但可以從Internet上下載Linux及其源代碼,而且還可以從Internet上下載許多Linux的應用程序。可以說,Linux本身包含的應用程序以及移植到Linux上的應用程序包羅萬象,任何一位用戶都能從有
23、關Linux的網站上找到適合自己特殊需要的應用程序及其源代碼,這樣,用戶就可以根據(jù)自己的需要下載源代碼,以便修改和擴充操作系統(tǒng)或應用程序的功能。這對Windows NT、Windows98、MS-DOS或OS/2等商品化操作系統(tǒng)來說是無法做到的。</p><p> Linux為廣大用戶提供了一個在家里學習和使用Unix操作系統(tǒng)的機會。盡管Linux是由計算機愛好者們開發(fā)的,但是它在很多方面上是相當穩(wěn)定的,從而為
24、用戶學習和使用目前世界上最流行的Unix操作系統(tǒng)提供了廉價的機會?,F(xiàn)在有許多CD-ROM供應商和軟件公司(Linux操作系統(tǒng)。Linux成為Unix系統(tǒng)在個人計算機上的一個代用品,并能用于替代那些較為昂貴的系統(tǒng)。因此,如果一個用戶在公司上班的時候在Unix系統(tǒng)上編程,或者在工作中是一位Unix的系統(tǒng)管理員,他就可以在家里安裝一套Unix的兼容系統(tǒng),即Linux系統(tǒng),在家中使用Linux就能夠完成一些工作任務。</p>&l
25、t;p><b> 2.1系統(tǒng)語言</b></p><p> 2.1.2 開發(fā)語言</p><p> sp.net2.0是一種動態(tài)網站高級編程語言。 asp.net2.0是微軟公司的最新版本,是一種建立在公共語言運行庫上的編程框架,可用于服務器上開發(fā)強大的web應用程序。asp.net2.0不但執(zhí)行效率大大提高,對代碼的控制也做的很好。并且支持web
26、controls 功能和多種語言。以提高安全性,以管理性和高擴展性。 asp.net技術從1.0升級到1.1的變化不大,但是升級到2.0,卻發(fā)生了相當大的變化,在開發(fā)過程中,微軟公司深入市場,針對大量開發(fā)人員和軟件使用者,進行了卓有成效的研究,并為其指定了開發(fā)代號,asp.net2.0設計目標的核心,可以用一個詞來形容--簡化。因為其設計目的是將應用程序代碼數(shù)量減少百分之七十以上,改變過去那種需要編寫很多重復行代碼的狀況,盡可能做到
27、寫很少的代碼就可以完成任務。對于軟件工程師來說,asp.net2.0是web開發(fā)史上的一個重要的里程碑! asp.net2.0的新特性: 生產效率,使用新增的asp.net2.0服務器控件和包含新增功能的現(xiàn)有控件,可以輕松的創(chuàng)建asp.net2.0網頁和應用程序。 靈活性和可擴展性,很多asp.</p><p> 編輯本段.無論如何,.NET 4.0已經在叩開新年的大門之時,以高調的姿態(tài)迎來一片掌聲。廣
28、大的技術愛好者不會等待太長的時間,就能感受C#發(fā)展中的又一次變革。隨著.NET 4.0在2009年的發(fā)布,我們對于C# 4.0的關注也將與日俱增??傮w而言,C# 4.0的重頭戲主要著眼在以下幾個方面:動態(tài)編程 · 并行計算 后期綁定 · 協(xié)變與逆變 廢話少說,接下來我們一一領略C# 4.0中的語言特性。 </p><p> 2.2 相關技術簡介</p><p>&l
29、t;b> 2.2.1動態(tài)編程</b></p><p> 眾所周知,C#是靜態(tài)強類型語言。而在很多情況下,提供“動態(tài)”行為,是常常發(fā)生的事情,例如通過反射在運行時訪問.NET類型、調用動態(tài)語言對象、訪問COM對象等,都無法以靜態(tài)類型來獲取。因此, C# 4.0引入的又一個全新的關鍵字dynamic,也同時引入了改善靜態(tài)類型與動態(tài)對象的交互能力,這就是動態(tài)查找(Dynamic Lookup)例如
30、:就像一個object可以代表任何類型,dynamic使得類型決斷在運行時進行,方法調用、屬性訪問、委托調用都可動態(tài)分派。同時,動態(tài)特性還體現(xiàn)在構建一個動態(tài)對象,在C# 4.0實現(xiàn)IDynamicObject接口的類型,可以完全定義動態(tài)操作的意義,通過將C#編譯器作為運行時組件來完成由靜態(tài)編譯器延遲的操作,例如:dynamic d = new Foo(); .MyMethod(s,3,null); 在具體執(zhí)行過程中,C#的運行時綁定器基
31、于運行時信息,通過反射獲取d的實際類型Foo,然后在Foo類型上就MyMethod方法進行方法查找和重載解析,并執(zhí)行調用,這正是動態(tài)調用的背后秘密:DLR。在.NET 4.0中將引入重要的底層組件DLR(Dynamic L</p><p> Visual Basic是一種高級程序設計語言,不具備低級語言的功能,對訪問機器硬zz件的操作不太容易實現(xiàn)。但它可以通過動態(tài)鏈接庫技術將C/C++或匯編語言編寫的程序加入到
32、Visual Basic應用程序中,可以像調用內部函數(shù)一樣調用其他語言編寫的函數(shù)。此外,通過動態(tài)鏈接庫,還可以調用Windows應用程序接口(API)函數(shù),實現(xiàn)SDK所具有的功能。</p><p> 圖1-1 Struts 2的MVC實現(xiàn)示意圖</p><p><b> 工作流程:</b></p><p> 用戶提交Request請求信息
33、。</p><p> FilterDispatcher詢問ActionMapper是否需要調用某個Action來處理這個(HttpServlet Request)請求,如果ActionMapper決定需要調用某個Action,F(xiàn)ilterDispatcher則把請求的處理交給ActionProxy。</p><p> ActionProxy通過Configuration Manager
34、(struts.xml)詢問框架的配置文件,找到需要調用的Action類。</p><p> ActionProxy創(chuàng)建一個ActionInvocation實例,同時ActionInvocation通過代理模式調用Action。但在調用之前,ActionInvocation會根據(jù)配置加載Action相關的所有Interceptor(攔截器)。</p><p> 一旦Action執(zhí)行完畢
35、,ActionInvocation負責根據(jù)struts.xml中的配置找到對應的返回結果result。</p><p> Spring 簡介:Spring 框架提供了構建 Web 應用程序的全功能 MVC 模塊。使用 Spring 可插入的 MVC 架構,可以選擇是使用內置的 Spring Web 框架還是 Struts 這樣的 Web 框架。通過策略接口,Spring 框架是高度可配置的,而且包含多種視圖技術
36、,例如 JavaServer Pages(JSP)技術、Velocity、Tiles、iText 和 POI。Spring MVC 框架并不知道使用的視圖,所以不僅僅限于使用 JSP 技術。Spring MVC 分離了控制器、模型對象、分派器以及處理程序對象的角色,這種分離讓它們更容易進行定制。如下圖1-2是Spring的MVC實現(xiàn)示意圖,</p><p> 圖1-2 Spring的MVC實現(xiàn)示意圖</p
37、><p><b> 工作流程:</b></p><p> DispatcherServlet接收到請求后,根據(jù)對應配置文件中配置的處理器映射,找到對應的處理器映射項(HandlerMapping),根據(jù)配置的映射規(guī)則,找到對應的處理器(Handler)。</p><p> 調用相應處理器中的處理方法,處理該請求,處理器處理結束后會將一個Mod
38、elAndView類型的數(shù)據(jù)傳給DispatcherServlet,這其中包含了處理結果的視圖和視圖中要使用的數(shù)據(jù)。</p><p> DispatcherServlet根據(jù)得到的ModelAndView中的視圖對象,找到一個合適的ViewResolver(視圖解析器),根據(jù)視圖解析器的配置,DispatcherServlet將視圖要顯示的數(shù)據(jù)傳給對應的視圖,最后給瀏覽器構造一個HTTP響應。</p>
39、;<p> DispatcherServlet是整個Spring MVC的核心。它負責接收HTTP請求組織協(xié)調Spring MVC的各個組成部分。其主要工作有以下三項:</p><p> (1)截獲符合特定格式的URL請求。</p><p> ?。?)初始化DispatcherServlet上下文對應的WebApplicationContext,并將其與業(yè)務層、持久化層的
40、WebApplicationContext建立關聯(lián)。</p><p> ?。?)初始化Spring MVC的各個組成組件,并裝配到DispatcherServlet中。</p><p> Hibernate技術簡介: </p><p> Hibernate是一個數(shù)據(jù)持久層框架,是一種實現(xiàn)對象和聯(lián)系之間映射(O/R Mapping)的工具,它對JDBC執(zhí)行 了輕量
41、級的對象封裝,使程序員可以運用對象編程思想來操作數(shù)據(jù)庫。它不僅提供了從Java類到數(shù)據(jù)表的映射,也提供了數(shù)據(jù)查詢和恢復機制。相對于運用 JDBC和SQL來操作數(shù)據(jù)庫,運用 Hibernate能大大的提高實現(xiàn)的效率。Hibernate框架用配置文件的形式來定義Java對象和數(shù)據(jù)表之間的映射聯(lián)系,同時在更深的層面將數(shù)據(jù)表之間的聯(lián)系解釋為Java對象之間的繼承及包含等聯(lián)系。通過運用 HQL語句將復雜的聯(lián)系算法用對象的方式描述,在很大程度上簡化
42、了對數(shù)據(jù)的查詢,加快了開發(fā)的效率。在Hibernate中有一個基本而直觀的API,用于對數(shù)據(jù)庫所表示的對象執(zhí)行查詢。要建立或修改這些對象,只需在程序中與它們執(zhí)行 交互,然后告訴Hibernate保存即可。這樣,大量封裝持久化操作的業(yè)務邏輯不再須要編寫煩瑣的JDBC語句,從而使數(shù)據(jù)持久層得到了極大的簡化Hibernate 是一種新的 ORM 映射工具,它不僅提供了從 Java 類到數(shù)據(jù)表之間的映射,也提供了數(shù)據(jù)查詢和恢復機制。相對于<
43、;/p><p> MVC設計模式:模式—視圖—控制器(Model—View—Controller,MVC)是一種先進的設計模式。是Trygve Reenskaug教授于1978年最早開發(fā)的一個設計模版或基本結構,其目的是以會話的形式提供方便的GUI支持。三層結構的特點是:所以下層向上層提供調用的接口,具體實現(xiàn)細節(jié)對上層透明,層與層之間存在自上而下的依賴關系,即上層會訪問下層的API層,但下層不依賴于上層。視圖(Vi
44、ew)代表用戶交互界面,對于Web應用來說,可以概括為HTML界面,但有可能為XHTML、XML和Applet。隨著應用的復雜性和規(guī)模性,界面的處理也變得具有挑戰(zhàn)性。一個應用可能有很多不同的視圖,MVC設計模式對于視圖的處理僅限于視圖上數(shù)據(jù)的采集和處理,以及用戶的請求,而不包括在視圖上的業(yè)務流程的處理。模型(Model):就是業(yè)務流程/狀態(tài)的處理以及業(yè)務規(guī)則的制定。業(yè)務流程的處理過程對其它層來說是黑箱操作,模型接受視圖請求的數(shù)據(jù),并返回
45、最終的處理結果??刂?Controller)可以理解為從用戶接收請求, 將模型與視圖匹配在一起,共同完成用戶的請求。劃分控制層的作用也很明顯,它清楚地告訴你,它</p><p> 圖1-4 MVC模型</p><p> MVC是一種通過3個不同部分構造一個軟件或組件的理想辦法:</p><p> 模式(Model)—用于存儲數(shù)據(jù)的對象 </p>
46、<p> 視圖(View)—為模式提供數(shù)據(jù)顯示的對象。 </p><p> 控制器(Controller)—負責具體的業(yè)務邏輯操作,即控制器根據(jù)視圖提出的要求對數(shù)據(jù)做出處理,并將有關結果存儲到模型中,同時負責讓模型和視圖進行必要的交互,當模型中的數(shù)據(jù)變化時,讓視圖更新顯示。 </p><p> 從面向對象的角度看,MVC結構可以使程序更具有對象化特性,也更容易維護。在設計程
47、序時,可以將某個對象看做“模型”,然后為“模型”提供恰當?shù)娘@示組件,即“視圖”。在MVC模式中,“視圖”、“模型”和“控制器”之間是松散耦合結構,便于系統(tǒng)的維護和擴展。</p><p> 2.2.2系統(tǒng)采用技術介紹</p><p> 本系統(tǒng)采用了 .net、CMM技術,采用MVC架構。zCMM與 PSP 在20世紀 80年代后期到90年代早期,SEI開發(fā)了能力成熟度模型(CMM),為
48、軟件開發(fā)總組織級的最佳實踐。SEI特別會員 Watts Humphrey決定將 CMM的基本原理應用于單個開發(fā)的軟件開發(fā)實踐中。個人軟件過程(PSP)就是他努力的成果,為單個軟件開發(fā)人員設計的五級過程。 </p><p> CMM與 TSP </p><p> 不久大家就發(fā)現(xiàn),雖然使用 PSP可以取得優(yōu)異的結果,但是如果周圍的環(huán)境不能鼓勵并且要守 PSP實踐,這些必要的規(guī)范性是幾乎
49、不可能得到維持的。所以漢弗萊為大多數(shù)組織中最小作單位——項目組,開發(fā)了團隊軟件過程(TSP),TSP是為項目組設計的CMM5級過程。份SEI技術報告中,記錄了使用TSP在滿足成本和進度估算的同時達到一流質量水平的最新</p><p><b> CMM的演變 </b></p><p> 同時,CMM的成功也引發(fā)了相似模型的開發(fā)以覆蓋系統(tǒng)工程(SE-CMM)、集成產
50、品開發(fā)CMM)、軟件采購(SA-CMM)以及人力資源(P-CMM)。為了緩解模型數(shù)量的過快增長,使用從未正式發(fā)布的CMM第二版、系統(tǒng)工程 CMM和IPD-CMM開發(fā)了能力成熟度模型集成(CMMI), </p><p> 第3章系統(tǒng)分析與設計</p><p> 3.1 用戶需求的獲取</p><p> 接到畢設任務書后,通過在網上查閱了解了一些鐘表銷售相關的平臺
51、,進行需求提煉總結,形成了用戶需求分析的相關文檔,也通過在圖書館查閱相關研究資料完善了需求分析。</p><p> 3.2 系統(tǒng)用戶分析</p><p><b> 。</b></p><p> 3.3 系統(tǒng)功能分析</p><p> 隨著軟件工程知識的普及,軟件工程師都知道,要開發(fā)高質量的軟件,必須改進軟件生產的
52、過程。目前,業(yè)界公認由CMU/SEI開發(fā)的軟件能力成熟度模型SW-CMM是當前最好的軟件過程,并且CMM已經成為事實上的軟件過程工業(yè)標準。但是,CMM雖然提供了一個有力的軟件過程改進框架,卻只告訴我們"應該做什么",而沒有告訴我們"應該怎樣做",并未提供有關實現(xiàn)關鍵過程域所需要的具體知識和技能。為了彌補這個欠缺,Humphrey又主持開發(fā)了個體軟件過程(Personal Software Proc
53、ess,PSP)。 在CMM1.1版本的18個關鍵過程域中有12個與PSP有關,據(jù)統(tǒng)計,軟件項目 開發(fā)成本的70%取決于軟件開發(fā)人員個人的技能、經驗和工作習慣。因此,一個單位的軟件開發(fā)人員如能接受PSP培訓,對該單位軟件能力成熟度的升級是一個有力的保證。CMM側重于軟件企業(yè)中有關軟件過程的宏觀管理,面向軟件開發(fā)單位,PSP則側重于企業(yè)中有關軟件過程的微觀優(yōu)化,面向軟件開發(fā)人員。二者互相支持,互相補充,缺一不可。按照PSP規(guī)程,改進軟件過
54、程的步驟首先需要明確質量目標,也就是軟件將要在功能和性能上滿足的要求和用戶潛在的</p><p> 3.4數(shù)據(jù)庫分析與設計</p><p> 根據(jù)對普通注冊用戶和系統(tǒng)管理員用戶的分析,系統(tǒng)可以涉及到5大實體,分別是社區(qū)信息、用戶信息、物品信息、留言信息以及評價信息。</p><p> 社區(qū)信息是指用戶所在社區(qū)的具體信息,其應包含的屬性有社區(qū)標識、社區(qū)名稱、社區(qū)
55、地址以及社區(qū)介紹等。這樣用戶在注冊的時候可以選擇查看社區(qū)信息,以便了解自己應該注冊在哪個社區(qū)從而更快捷方便的進行舊貨交換活動。其他用戶在搜索物品時也可以查看發(fā)布人所在的社區(qū)信息,以便決定自己要不要拿自己的東西去進行交換或者給對方留言。</p><p> 3.5 系統(tǒng)詳細設計</p><p> 主要介紹了鐘表銷售管理系統(tǒng)的原型設計及重要模塊的詳細設計實現(xiàn)過程,用一系列的時序圖輔助文字圖表
56、等進行說明。</p><p> 3.5.1 系統(tǒng)頁面設計</p><p> 通過對舊貨交換信息平臺系統(tǒng)的分析,本系統(tǒng)的主要使用用戶有兩種,一是注冊的普通用戶,是系統(tǒng)主要的服務對象,二是系統(tǒng)管理員,負責系統(tǒng)日常信息的維護,因而系統(tǒng)原型設計可根據(jù)兩種用戶角色劃分為不同功能的模塊設計,分別是公共模塊、普通用戶模塊和系統(tǒng)管理員模塊。</p><p><b>
57、 公共模塊設計</b></p><p> 公共模塊包含了注冊登錄、查看修改個人信息、修改密碼、查看日歷,物品檢索,友情鏈接、建議投訴等子功能模塊。公共模塊作為系統(tǒng)的前臺頁面顯示,需要靈活的易用性和美觀性,當用戶登錄系統(tǒng)后在左側的導航欄中也會顯示這些信息,和其他系統(tǒng)類似,在需要增加一些鏈接的地方也加入了公共模塊的很多信息。</p><p> 公共模塊功能層次圖設計如下圖3-1
58、0所示,</p><p> 第4章 系統(tǒng)實現(xiàn)與測試</p><p> 4.1 重要模塊說明</p><p> 普通用戶發(fā)布物品流程圖圖下圖4-1所示</p><p> 圖4-1 用戶發(fā)布物品流程圖</p><p> 普通用戶點擊發(fā)布物品鏈接即可進入發(fā)布物品的頁面,頁面有相關輸入框和下拉框來提示用戶進行操作。
59、輸入用戶參數(shù)后將通過http協(xié)議傳遞給GoodsManageAcion中的addGoods()方法,首先根據(jù)登錄id通過SysUserDao查詢用戶信息,檢查在數(shù)據(jù)庫中是否存在,若查詢成功,返回該user對象。并封裝成user屬性,以便將該對象輸入到Goods對象中。addGoods()方法會通過GoodsService類調用GoodsDao中的save()方法,即將該記錄添加到數(shù)據(jù)庫表中進行保存,其他用戶就可以對該物品進行搜索或查看。
60、</p><p> 物品配價功能分為兩種,一種是全社區(qū)配價,一種是本社區(qū)配價,實現(xiàn)方式是先以價格和確定的配價范圍調用GoodsDao的findBySamePrice()方法查找數(shù)據(jù)庫中價格類似的物品,并返回一個Goods類型的list對象,得到該list對象后,才根據(jù)用戶的選擇過濾出物品所屬用戶與登錄用戶不在一個社區(qū)和過濾出自己發(fā)布的物品作為本社區(qū)配價結果,而全社區(qū)配價結果是僅僅將自己發(fā)布的物品過濾出去,再通過
61、實例化GoodsService將該值傳遞給GoodsManageAction類,該類將list對象封裝成http協(xié)議傳遞到前臺頁面進行顯示。</p><p><b> 結論</b></p><p> 本次畢業(yè)設計的完成,使我在專業(yè)技能方面得到了大幅度的提升,對Eclipse平臺下利用SSH框架技術進行系統(tǒng)開發(fā)有了更進一步的理解。對MVC架構的運行原理也有了更深刻的
62、認識。</p><p> 系統(tǒng)采用SSH框架設計,典型的J2EE三層結構,分為表現(xiàn)層、中間層(業(yè)務邏輯層)和數(shù)據(jù)服務層。三層體系將業(yè)務規(guī)則、數(shù)據(jù)訪問及合法性校驗等工作放在中間層處理。客戶端不直接與數(shù)據(jù)庫交互,而是通過組件與中間層建立連接,再由中間層與數(shù)據(jù)庫交互。表現(xiàn)層是傳統(tǒng)的JSP技術,其優(yōu)點在于廣泛的應用和穩(wěn)定的表現(xiàn)。中間層采用的是流行的Spring+Hibernate,為了將控制層與業(yè)務邏輯層分離,又細分為
63、以下幾種。 </p><p> Web層,就是MVC模式里面的“C”(controller),負責控制業(yè)務邏輯層與表現(xiàn)層的交互,調用業(yè)務邏輯層,并將業(yè)務數(shù)據(jù)返回給表現(xiàn)層作組織表現(xiàn),該系統(tǒng)的MVC框架采用Struts。 Service層(就是業(yè)務邏輯層),負責實現(xiàn)業(yè)務邏輯。業(yè)務邏輯層以DAO層為基礎,通過對DAO組件的正面模式包裝,完成系統(tǒng)所要求的業(yè)務邏輯。 DAO層,負責與持久化對象交互。該層封裝了數(shù)據(jù)的增、刪
64、、查、改的操作。 PO,持久化對象。通過實體關系映射工具將關系型數(shù)據(jù)庫的數(shù)據(jù)映射成對象,很方便地實現(xiàn)以面向對象方式操作數(shù)據(jù)庫,該系統(tǒng)采用Hibernate作為ORM框架。 Spring的作用貫穿了整個中間層,將Web層、Service層、DAO層及PO無縫整合,其數(shù)據(jù)服務層用來存放數(shù)據(jù)。 </p><p> 采用Hibernate作為持久層技術的最大的好處在于:可以完全以面向對象的方式進行系統(tǒng)分析、系統(tǒng)設計。
65、DAO模式需要為每個DAO組件編寫DAO接口,同時至少提供一個實現(xiàn)類,根據(jù)不同需要,可能有多個實現(xiàn)類。用Spring容器代替DAO工廠 。通常情況下,引入接口就不可避免需要引入工廠來負責DAO組件的生成。Spring實現(xiàn)了兩種基本模式:單態(tài)模式和工廠模式。而使用Spring可以完全避免使用工廠模式,因為Spring就是個功能非常強大的工廠。因此,完全可以讓Spring充當DAO工廠。 由Spring充當DAO工廠時,無須程序員自己實現(xiàn)工
66、廠模式,只需要將DAO組件配置在Spring容器中,由ApplicationContext負責管理DAO組件的創(chuàng)建即可。借助于Spring提供的依賴注入,其他組件甚至不用訪問工廠,一樣可以直接使用DAO實例。 Struts跟Tomcat、Turbine等諸多Apache項目一樣,是開源軟件,這是它的一大優(yōu)點。使開發(fā)者能更深入的了解其內部實現(xiàn)機制。 除此之外,Struts的優(yōu)點主要集中體現(xiàn)在兩個方面:Taglib和頁面導航。Taglib是
67、Struts的標記</p><p> 本次畢業(yè)設計是自己第一次獨立承擔一個系統(tǒng)的開發(fā)任務,從前期的需求分析到數(shù)據(jù)庫設計再到編碼實現(xiàn),都是自己全程參與和設計,這對自己的挑戰(zhàn)還是很大的。從設計到實現(xiàn)的過程,使我認識到前期的設計是非常重要的,很多時候需要花費大量的時間來做需求分析和功能設計,這樣在后期編碼的時候才會更加的流暢,不至于因為前期需求不當導致編碼進度緩慢。當然,這個過程也使自己學到了很多SSH技術的相關知識
68、,前期由于很多接口不是很清楚導致編碼一度進行不下去。自己所了解和所學到的僅僅是管窺蠡測而已,在以后的學習工作中應該更加努力的去學習這方面的相關知識,增加實踐次數(shù),才能慢慢深入到JAVA軟件開發(fā)中。</p><p><b> 致謝</b></p><p> 首先要感謝我的母校西南交通大學,給我們提供了非常優(yōu)秀的師資力量和優(yōu)良的學習環(huán)境,使我們能夠安心學習科學文化知識
69、,提升自己適應社會的能力。為以后更好地為社會為民眾做出貢獻打下了堅實的基礎。</p><p> 本次畢業(yè)設計的完成以及畢業(yè)論文的撰寫,我非常感謝我的導師,任挺老師。由于在年初就去了公司實習,而且整個實習的周期很長,強度也很大,幾乎所有的畢設工作都是在周末完成的。這樣的情況導致自己跟任老師見面的機會非常的少,只能通過郵件和QQ留言的方式和導師進行溝通。感謝導師理解自己這方面的苦衷。在系統(tǒng)設計編碼階段,非常感謝導師
70、在系統(tǒng)功能需求方面對我的指導,使得后續(xù)的編碼開發(fā)過程減少了很多困難,在實際開發(fā)過程中也遇到了很多技術上的困難,經過導師的指導也是一一得到解決。在論文的撰寫過程中,任老師更是細心審閱,給了自己很多有建設性的意見。</p><p> 還要感謝在完成畢業(yè)設計過程中幫助過我的同學,因為不能經?;貙W校,所以好多事情他們的幫助下才能完成,由于自己對于界面設計不甚擅長,是得到了同學的無私幫助才能順利設計出前臺頁面的樣式。 &
71、lt;/p><p> 最后要感謝我的父母,是他們給了我最大的精神支持,因為是初次步入社會參加工作,加上要很好的完成畢業(yè)設計,思想上還是比較有壓力。是他們給了我努力下去的動力。</p><p><b> 參考文獻</b></p><p> Bruce Eckel著,陳昊鵬 譯 Thinking in Java第四版 機械工業(yè)出版社 2007
72、年6月</p><p> 孫鑫, JAVA WEB 開發(fā)詳解 電子工業(yè)出版社 2006年4月</p><p> Craig Walls Ryan Breidenbach著,畢慶紅、王軍 等譯 </p><p> Spring in Action第二版 2008年10月</p><p> 劉雨,姚弘芹,趙秀珍. 科技期刊編
73、輯模式現(xiàn)代化實踐的探討[J]. 北京理工大學學報(社會科學版). 2005年06期</p><p> 王國輝. Java Web開發(fā)典型模塊大全. 人民郵電出版社. 2009年4月</p><p> 劉斌. 精通Java Web整合開發(fā). 電子工業(yè)出版社. 2007年11月</p><p> 劉京華. Java Web整合開發(fā)王者歸來. 清華大學出版社. 2
74、010年1月</p><p> 梁立新.項目實踐精解:基于Struts-Spring-Hibernate的Java應用開發(fā).電子工業(yè)出版社.2008年7月</p><p> 邢素萍.Java辦公自動化項目方案精解.航空工業(yè)出版社.2009年9月</p><p> 廖義奎.Java Web開發(fā)之Struts編程基礎與實例精講.中國電力出版社.2006年1月<
75、;/p><p> 柯自聰.Ajax開發(fā)精要:概念、案例與框架.電子工業(yè)出版社.2006年5月</p><p> 康博.XML編程技術大全.清華大學出版社.2002年1月</p><p> 劉斌. 精通Java Web整合開發(fā). 電子工業(yè)出版社. 2007年11月</p><p> 馮曼菲.EJB JPA數(shù)據(jù)庫持久層開發(fā)實踐詳解.電子工業(yè)出
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于-.net的psp系統(tǒng)的軟件設計和實現(xiàn)-論文
- 基于vb.net的email發(fā)送軟件設計【畢業(yè)論文】
- 基于aforge.net的圖像處理軟件設計---畢業(yè)論文
- 基于aforge.net的圖像處理軟件設計---畢業(yè)論文
- 基于cygwin-devkitpsp的psp閱讀軟件設計與實現(xiàn)
- 考勤系統(tǒng)軟件設計 畢業(yè)論文
- 軟件設計專業(yè)畢業(yè)論文
- 畢業(yè)論文-智能轉速測量系統(tǒng)的軟件設計
- 基于bs的qq聊天軟件設計畢業(yè)論文
- 基于bs的qq聊天軟件設計畢業(yè)論文
- 畢業(yè)論文--基于java的即時通信軟件設計與實現(xiàn)
- 畢業(yè)論文--基于java的即時通信軟件設計與實現(xiàn)
- 基于.net平臺的輔助建站軟件設計與實現(xiàn)
- 畢業(yè)論文--掃雷游戲軟件設計與實現(xiàn)
- 基于matlab的圖像處理軟件設計畢業(yè)論文
- 基于java的遠程控制軟件設計【畢業(yè)論文】
- 畢業(yè)論文范文——基于android的背單詞軟件設計與實現(xiàn)
- 基于ebridge的sdh環(huán)形組網軟件設計【畢業(yè)論文】
- 真空系統(tǒng)抽氣特性計算軟件設計-畢業(yè)論文
- 基于c#的即時通訊軟件設計與實現(xiàn)畢業(yè)論文
評論
0/150
提交評論