




已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
西南交通大學本科畢業(yè)設計(論文) 第II頁 西 南 交 通 大 學??飘厴I(yè)設計(論文)基于.net的PSP系統(tǒng)的軟件設計和實現(xiàn)年 級:2011級姓 名:專 業(yè):軟件開發(fā)指導老師: 2012年6月西南交通大學本科畢業(yè)設計(論文) 第II頁院 系 信息科學與技術學院 專 業(yè) 軟件開發(fā)_ 學 號 姓 名 譚琳_ 題 目 指導教師評 語 指導教師 (簽章)評 閱 人評 語 評 閱 人 (簽章)成 績 答辯委員會主任 (簽章)年 月 日西南交通大學??飘厴I(yè)設計(論文) 第21頁摘 要 本系統(tǒng)主要使用了Jsp、Struts2、Spring以及Hibernate技術,采用目前網(wǎng)站開發(fā)中較為流行的MVC設計架構。Struts2技術主要用于處理頁面的跳轉和對業(yè)務方法的調用,目的是為了分離視圖層和控制層。Spring 技術主要用于在Struts與Hibernate技術之間的解耦操作,提高程序的重用性、可維護性以及健壯性。Hibernate技術是為了實現(xiàn)用面向對象的思想來管理和使用數(shù)據(jù)庫技術,實現(xiàn)程序與數(shù)據(jù)庫之間的低耦合。 文章介紹了使用java和xml技術開發(fā)網(wǎng)站系統(tǒng)的詳細過程,介紹了項目背景和開發(fā)意義,同時包含了對系統(tǒng)開發(fā)環(huán)境與技術的介紹。在系統(tǒng)分析與設計部分,對系統(tǒng)功能做出了詳細的描述,并對各個功能模塊進行了分析,包括模塊顯示界面、使用的數(shù)據(jù)及函數(shù)調用過程等。使用類圖闡述了本系統(tǒng)的設計思路,使用用例圖和時序圖來協(xié)助說明系統(tǒng)的設計方案。在系統(tǒng)實現(xiàn)與測試階段,使用了流程圖進一步展現(xiàn)了系統(tǒng)功能的實現(xiàn)過程。 該系統(tǒng)將會給各鐘表銷售門店帶來方便,其功能需求也會進一步提高和穩(wěn)定。我們期待該系統(tǒng)能為當今社會更好的服務。目 錄第1章 緒論11.1 開發(fā)背景11.2開發(fā)思路及主要方法11.3.我的管理2第2章開發(fā)語言32.1.1 系統(tǒng)開發(fā)工具與運行平臺32.1.2 開發(fā)語言42.2 相關技術簡介52.2.1動態(tài)編程52.2.2系統(tǒng)采用技術介紹10第3章系統(tǒng)分析與設計113.1 用戶需求的獲取113.2 系統(tǒng)用戶分析113.3 系統(tǒng)功能分析113.4數(shù)據(jù)庫分析與設計123.5 系統(tǒng)詳細設計123.5.1 系統(tǒng)頁面設計12第4章 系統(tǒng)實現(xiàn)與測試134.1 重要模塊說明13結論16致謝18參考文獻19第1章 緒論1.1 開發(fā)背景 個人軟件過程(PSP)是一種可用于控制、管理和改進個人工作方式的自我持續(xù)改進過程,是一個包括軟件開發(fā)表格、指南和規(guī)程的結構化框架。PSP與具體 的技術(程序設計語言、工具或者設計方法)相對獨立,其原則能夠應用到幾乎任何的軟件工程任務之中。PSP能夠說明個體軟件過程的原則; 幫助軟件工程師作出準確的計劃;確定軟件工程師為改善產品質量要采取的步驟;建立度量個體軟件過程改善的基準;確定過程的改變對軟件工程師能力的影響。其中,SP又包括過程改進,時間管理,制訂計劃缺陷管理幾個方面。在CMM1.1版本的18個關鍵過程域中有12個與PSP有關,據(jù)統(tǒng)計,軟件項目開發(fā)成本的70%取決于軟件開發(fā)人員個人的技能、經驗和工作習慣。因此, 一個單位的軟件開發(fā)人員如能接受PSP培訓,對該單位軟件能力成熟度的升級是一個有力的保證。CMM側重于軟件企業(yè)中有關軟件過程的宏觀管理,面向軟件開 發(fā)單位,PSP則側重于企業(yè)中有關軟件過程的微觀優(yōu)化,面向軟件開發(fā)人員。二者互相支持,互相補充,缺一不可。按照PSP規(guī)程,改進軟件過程的步驟首先需要明確質量目標,也就是軟件將要在功能和性能上滿足的要求和用戶潛在的需求。接著就是度量產品質量,有了目標還 不行,目標只是一個原則性的東西,還不便于實際操作和判斷,因此,必須對目標進行分解和度量,使軟件質量能夠測量。然后就是理解當前過程,查找問題, 并對過程進行調整。最后應用調整后的過程,度量實踐結果,將結果與目標做比較,找出差距,分析原因,對軟件過程進行持續(xù)改進。就象CMM為軟件企業(yè)的能力提供一個階梯式 的進化框架一樣,PSP為個體的能力也提供了一個階梯式的進化框架,以循序漸進的方法介紹過程的概念,每一級別都包含了更低一級別中的所有元素,并增加了 新的元素。這個進化框架是學習PSP過程基本概念的好方法,它賦予軟件人員度量和分析工具,使其清楚地認識到自己的表現(xiàn)和潛力,從而可以提高自己的技能和 水平。1.2開發(fā)思路及主要方法在上這門選修課之前,我對個人軟件過程可以說是一點都不了解,只知道是一款游戲機。經過了老師的講解,我才對個人軟件過程有了初步的了解。 原來,我以為開發(fā)軟件靠的只是技術,只要掌握了編程技巧,把相應的語言學好,就能開發(fā)出優(yōu)秀的軟件。可是,學習幾節(jié)課后,聽了您對的講解,我才明白要要想開發(fā)出好的軟件,不僅需要真才實干,還要有好的規(guī)劃好自己的時間和其他方面。由于我是計算機專業(yè)的學生,可能對這些知識接觸較少,有說的不太對的地方,還請老師以后多指教。我認為包括了很多方面,其中有對代碼的不斷修改,通過測量來發(fā)現(xiàn)問題,并改正問題。還有對自己的時間的合理利用,做切實可行的計劃,按照計劃進行工作,這樣可以了解計劃存在哪些問題,有助于更好的計劃下一個項目。按照好的計劃完成工作,由于軟件中的許多錯誤都是由于粗心大意引起的,所以合理利用時間,計劃工作是很有用的,可以有效的減少這些錯誤。我認為也是一種很好的工作和學習的方法,它可以使我們更好的學習和工作,最大化的利用時間,提高工作效率。這就是我對的的認識,以后的工作中我會通過對自己的工作做較好的計劃,更好的體會給工作帶來的益處,對它進一步的了解。1.3.我的管理(1)制定計劃每天要做的事情很多,如果不制定一個很好的計劃就總會不能按計劃完作,尤其到了周六日的時候,早晨一睡就是一上午,會浪費很多時間,所以我自已制定了周日一天的計劃。(2)過程改進需要不斷的改進。就是在不斷的測量中發(fā)現(xiàn)問題和改正錯誤。這學期的c語言作業(yè)中我就通過不斷的調試,發(fā)現(xiàn)錯誤,然后改進,并完善程序。我編的是一個貪食蛇的小游戲,編好后,我發(fā)現(xiàn)只能實現(xiàn)玩家控制一條小蛇吃蛋,增加長度。雖然做好了,但是和我玩過的絕大多數(shù)游戲比起來,簡直太簡單了,可玩性相當差,于是我又在頭腦中形成了我想要的游戲的樣子,以那樣的為目標,一點點改進我程序。如加入音樂,加入其他食物(得分食物,加速食物等),增加主菜單,增加一些關卡,調試過程也是一個不斷與目標看齊,改進程序的過程,就像一開始我加入音樂時,發(fā)現(xiàn)是在游戲之前播放音樂,播放完成后,才能進入游戲,于是我查找書籍,反復調試,最后成功達到音樂做為背景音樂的效果。就這樣朝著目標不斷改進,最后終于達到了期望的結果。第2章開發(fā)語言2.1.1 系統(tǒng)開發(fā)工具與運行平臺由于Linux是一套具有Unix全部功能的免費操作系統(tǒng),它在眾多的軟件中占有很大的優(yōu)勢,為廣大的計算機愛好者提供了學習、探索以及修改計算機操作系統(tǒng)內核的機會。操作系統(tǒng)是一臺計算機必不可少的系統(tǒng)軟件,是整個計算機系統(tǒng)的靈魂。一個操作系統(tǒng)是一個復雜的計算機程序集,它提供操作過程的協(xié)議或行為準則。沒有操作系統(tǒng),計算機就無法工作,就不能解釋和執(zhí)行用戶輸入的命令或運行簡單的程序。大多數(shù)操作系統(tǒng)都是由一些主要的軟件公司支持的商品化程序,用戶只能有償使用。如果用戶購買了一個操作系統(tǒng),他就必須滿足供應商所要求的一切條件。因為操作系統(tǒng)是系統(tǒng)程序,用戶不能擅自修改或試驗操作系統(tǒng)的內核。這對于廣大計算機愛好者來說無疑是一種束縛。要想發(fā)揮計算機的作用,僅有操作系統(tǒng)還不夠,用戶還必須要有各種應用程序的支持。應用程序是用于處理某些工作(如字處理)的軟件包,通常它也只能有償使用。每個應用程序的軟件包都為特定的操作系統(tǒng)和機器編寫。使用者無權修改這些應用程序。使用Linux,可以將操作系統(tǒng)變成一種操作環(huán)境。由于Linux是一套自由軟件,用戶可以無償?shù)氐玫剿捌湓创a,可以無償?shù)孬@得大量的應用程序,而且可以任意地修改和補充它們。這對用戶學習、了解Unix操作系統(tǒng)的內核非常有益。 學習和使用Linux,能為用戶節(jié)省一筆可觀的資金。Linux是目前唯一可免費獲得的、為PC機平臺上的多個用戶提供多任務、多進程功能的操作系統(tǒng),這是人們要使用它的主要原因。就PC機平臺而言,Linux提供了比其他任何操作系統(tǒng)都要強大的功能,Linux還可以使用戶遠離各種商品化軟件提供者促銷廣告的誘惑,再也不用承受每過一段時間就升級之苦,因此,可以節(jié)省大量用于購買或升級應用程序的資金。Linux不僅為用戶提供了強大的操作系統(tǒng)功能,而且還提供了豐富的應用軟件。用戶不但可以從Internet上下載Linux及其源代碼,而且還可以從Internet上下載許多Linux的應用程序。可以說,Linux本身包含的應用程序以及移植到Linux上的應用程序包羅萬象,任何一位用戶都能從有關Linux的網(wǎng)站上找到適合自己特殊需要的應用程序及其源代碼,這樣,用戶就可以根據(jù)自己的需要下載源代碼,以便修改和擴充操作系統(tǒng)或應用程序的功能。這對Windows NT、Windows98、MS-DOS或OS2等商品化操作系統(tǒng)來說是無法做到的。Linux為廣大用戶提供了一個在家里學習和使用Unix操作系統(tǒng)的機會。盡管Linux是由計算機愛好者們開發(fā)的,但是它在很多方面上是相當穩(wěn)定的,從而為用戶學習和使用目前世界上最流行的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就能夠完成一些工作任務。2.1系統(tǒng)語言2.1.2 開發(fā)語言2.0是一種動態(tài)網(wǎng)站高級編程語言。 2.0是微軟公司的最新版本,是一種建立在公共語言運行庫上的編程框架,可用于服務器上開發(fā)強大的web應用程序。2.0不但執(zhí)行效率大大提高,對代碼的控制也做的很好。并且支持web controls 功能和多種語言。以提高安全性,以管理性和高擴展性。 技術從1.0升級到1.1的變化不大,但是升級到2.0,卻發(fā)生了相當大的變化,在開發(fā)過程中,微軟公司深入市場,針對大量開發(fā)人員和軟件使用者,進行了卓有成效的研究,并為其指定了開發(fā)代號,2.0設計目標的核心,可以用一個詞來形容簡化。因為其設計目的是將應用程序代碼數(shù)量減少百分之七十以上,改變過去那種需要編寫很多重復行代碼的狀況,盡可能做到寫很少的代碼就可以完成任務。對于軟件工程師來說,2.0是web開發(fā)史上的一個重要的里程碑! 2.0的新特性: 生產效率,使用新增的2.0服務器控件和包含新增功能的現(xiàn)有控件,可以輕松的創(chuàng)建2.0網(wǎng)頁和應用程序。 靈活性和可擴展性,很多2.0功能都可以擴展。這樣可以輕松的將自定義功能集成到應用程序中。 性能,使用如預編譯,可配置緩存和sql緩存失效等功能。安全性,現(xiàn)在向web應用程序添加身份驗證和授權非常簡單。完整性,新增功能和現(xiàn)用功能協(xié)同工作,可以創(chuàng)建解決實時web開發(fā)挑戰(zhàn)的端對端方案。 編輯本段.無論如何,.NET 4.0已經在叩開新年的大門之時,以高調的姿態(tài)迎來一片掌聲。廣大的技術愛好者不會等待太長的時間,就能感受C#發(fā)展中的又一次變革。隨著.NET 4.0在2009年的發(fā)布,我們對于C# 4.0的關注也將與日俱增。總體而言,C# 4.0的重頭戲主要著眼在以下幾個方面:動態(tài)編程 并行計算 后期綁定 協(xié)變與逆變 廢話少說,接下來我們一一領略C# 4.0中的語言特性。 2.2 相關技術簡介2.2.1動態(tài)編程 眾所周知,C#是靜態(tài)強類型語言。而在很多情況下,提供“動態(tài)”行為,是常常發(fā)生的事情,例如通過反射在運行時訪問.NET類型、調用動態(tài)語言對象、訪問COM對象等,都無法以靜態(tài)類型來獲取。因此, C# 4.0引入的又一個全新的關鍵字dynamic,也同時引入了改善靜態(tài)類型與動態(tài)對象的交互能力,這就是動態(tài)查找(Dynamic Lookup)例如:就像一個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#的運行時綁定器基于運行時信息,通過反射獲取d的實際類型Foo,然后在Foo類型上就MyMethod方法進行方法查找和重載解析,并執(zhí)行調用,這正是動態(tài)調用的背后秘密:DLR。在.NET 4.0中將引入重要的底層組件DLR(Dynamic Language Runtime,動態(tài)語言運行時),除了實現(xiàn)動態(tài)查找的基礎支持,DLR也同時作為基礎設施為類似于這個特性非常簡單,有些JavaScript的影子,我們可以統(tǒng)一使用使用var關鍵字來聲明局部變量,而不再需要指明變量的確切類型了,變量的確切類型可通過聲明變量時的初始值推斷出來。這樣一來,可以大大簡化我,由于變量的類型是通過變量初始值推斷而來的,所以在聲明變量的同時必需為變量指定初始值。并且,變量并不是沒有類型的,變量一旦初始化之后,類型就確定下來了,以后就只能存儲某種類型的值了,比如上面的stringValue的類型經推斷為string,所以該變量就只能保存string類型的值了。2.2 系統(tǒng)采用技術簡介1Visual Basic是一種高級程序設計語言,不具備低級語言的功能,對訪問機器硬zz件的操作不太容易實現(xiàn)。但它可以通過動態(tài)鏈接庫技術將C/C+或匯編語言編寫的程序加入到Visual Basic應用程序中,可以像調用內部函數(shù)一樣調用其他語言編寫的函數(shù)。此外,通過動態(tài)鏈接庫,還可以調用Windows應用程序接口(API)函數(shù),實現(xiàn)SDK所具有的功能。核心控制器FilterDispatcher視圖ViewJsp , Struts TagsSpertiesStruts.xmlActionModel業(yè)務邏輯RequestResponseeInterceptorsResults圖1-1 Struts 2的MVC實現(xiàn)示意圖工作流程:1. 用戶提交Request請求信息。2. FilterDispatcher詢問ActionMapper是否需要調用某個Action來處理這個(HttpServlet Request)請求,如果ActionMapper決定需要調用某個Action,F(xiàn)ilterDispatcher則把請求的處理交給ActionProxy。3. ActionProxy通過Configuration Manager(struts.xml)詢問框架的配置文件,找到需要調用的Action類。4. ActionProxy創(chuàng)建一個ActionInvocation實例,同時ActionInvocation通過代理模式調用Action。但在調用之前,ActionInvocation會根據(jù)配置加載Action相關的所有Interceptor(攔截器)。5. 一旦Action執(zhí)行完畢,ActionInvocation負責根據(jù)struts.xml中的配置找到對應的返回結果result。Spring 簡介:Spring 框架提供了構建 Web 應用程序的全功能 MVC 模塊。使用 Spring 可插入的 MVC 架構,可以選擇是使用內置的 Spring Web 框架還是 Struts 這樣的 Web 框架。通過策略接口,Spring 框架是高度可配置的,而且包含多種視圖技術,例如 JavaServer Pages(JSP)技術、Velocity、Tiles、iText 和 POI。Spring MVC 框架并不知道使用的視圖,所以不僅僅限于使用 JSP 技術。Spring MVC 分離了控制器、模型對象、分派器以及處理程序對象的角色,這種分離讓它們更容易進行定制。如下圖1-2是Spring的MVC實現(xiàn)示意圖,瀏覽器DispacherServletHanderServiceHandlerMappingStruts.xmlViewResolverView (JSP JSTL)ModelModelAndView8HTTP相應2尋找處理器4業(yè)務處理5得到處理結果6得到處理結果7傳給view顯示1HTTP請求3調用處理器 圖1-2 Spring的MVC實現(xiàn)示意圖工作流程:1. DispatcherServlet接收到請求后,根據(jù)對應配置文件中配置的處理器映射,找到對應的處理器映射項(HandlerMapping),根據(jù)配置的映射規(guī)則,找到對應的處理器(Handler)。2. 調用相應處理器中的處理方法,處理該請求,處理器處理結束后會將一個ModelAndView類型的數(shù)據(jù)傳給DispatcherServlet,這其中包含了處理結果的視圖和視圖中要使用的數(shù)據(jù)。3. DispatcherServlet根據(jù)得到的ModelAndView中的視圖對象,找到一個合適的ViewResolver(視圖解析器),根據(jù)視圖解析器的配置,DispatcherServlet將視圖要顯示的數(shù)據(jù)傳給對應的視圖,最后給瀏覽器構造一個HTTP響應。DispatcherServlet是整個Spring MVC的核心。它負責接收HTTP請求組織協(xié)調Spring MVC的各個組成部分。其主要工作有以下三項:(1)截獲符合特定格式的URL請求。(2)初始化DispatcherServlet上下文對應的WebApplicationContext,并將其與業(yè)務層、持久化層的WebApplicationContext建立關聯(lián)。(3)初始化Spring MVC的各個組成組件,并裝配到DispatcherServlet中。Hibernate技術簡介:Hibernate是一個數(shù)據(jù)持久層框架,是一種實現(xiàn)對象和聯(lián)系之間映射(O/R Mapping)的工具,它對JDBC執(zhí)行 了輕量級的對象封裝,使程序員可以運用對象編程思想來操作數(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)系算法用對象的方式描述,在很大程度上簡化了對數(shù)據(jù)的查詢,加快了開發(fā)的效率。在Hibernate中有一個基本而直觀的API,用于對數(shù)據(jù)庫所表示的對象執(zhí)行查詢。要建立或修改這些對象,只需在程序中與它們執(zhí)行 交互,然后告訴Hibernate保存即可。這樣,大量封裝持久化操作的業(yè)務邏輯不再須要編寫煩瑣的JDBC語句,從而使數(shù)據(jù)持久層得到了極大的簡化Hibernate 是一種新的 ORM 映射工具,它不僅提供了從 Java 類到數(shù)據(jù)表之間的映射,也提供了數(shù)據(jù)查詢和恢復機制。相對于使用 JDBC 和 SQL 來手工操作數(shù)據(jù)庫,使用 Hibernate,可以大大減少操作數(shù)據(jù)庫的工作量。Hibernate 可以和多種 Web 服務器或者應用服務器良好集成,如今已經支持幾乎所有的流行的數(shù)據(jù)庫服務器其體系結構如圖1-3所示MVC設計模式:模式視圖控制器(ModelViewController,MVC)是一種先進的設計模式。是Trygve Reenskaug教授于1978年最早開發(fā)的一個設計模版或基本結構,其目的是以會話的形式提供方便的GUI支持。三層結構的特點是:所以下層向上層提供調用的接口,具體實現(xiàn)細節(jié)對上層透明,層與層之間存在自上而下的依賴關系,即上層會訪問下層的API層,但下層不依賴于上層。視圖(View)代表用戶交互界面,對于Web應用來說,可以概括為HTML界面,但有可能為XHTML、XML和Applet。隨著應用的復雜性和規(guī)模性,界面的處理也變得具有挑戰(zhàn)性。一個應用可能有很多不同的視圖,MVC設計模式對于視圖的處理僅限于視圖上數(shù)據(jù)的采集和處理,以及用戶的請求,而不包括在視圖上的業(yè)務流程的處理。模型(Model):就是業(yè)務流程/狀態(tài)的處理以及業(yè)務規(guī)則的制定。業(yè)務流程的處理過程對其它層來說是黑箱操作,模型接受視圖請求的數(shù)據(jù),并返回最終的處理結果??刂?Controller)可以理解為從用戶接收請求, 將模型與視圖匹配在一起,共同完成用戶的請求。劃分控制層的作用也很明顯,它清楚地告訴你,它就是一個分發(fā)器,選擇什么樣的模型,選擇什么樣的視圖,可以完成什么樣的用戶請求??刂茖硬⒉蛔鋈魏蔚臄?shù)據(jù)處理。其模型視圖如圖1-4所示。模型數(shù)據(jù)視圖控制器請求jsp顯示數(shù)據(jù)請求處理數(shù)據(jù)連接讀取存儲數(shù)據(jù)JSP頁面JSP頁面ACTIONSERVLET數(shù)據(jù)庫文件JAVABEANNNJAVABEANNN 圖1-4 MVC模型MVC是一種通過3個不同部分構造一個軟件或組件的理想辦法:1. 模式(Model)用于存儲數(shù)據(jù)的對象 2. 視圖(View)為模式提供數(shù)據(jù)顯示的對象。 3. 控制器(Controller)負責具體的業(yè)務邏輯操作,即控制器根據(jù)視圖提出的要求對數(shù)據(jù)做出處理,并將有關結果存儲到模型中,同時負責讓模型和視圖進行必要的交互,當模型中的數(shù)據(jù)變化時,讓視圖更新顯示。 從面向對象的角度看,MVC結構可以使程序更具有對象化特性,也更容易維護。在設計程序時,可以將某個對象看做“模型”,然后為“模型”提供恰當?shù)娘@示組件,即“視圖”。在MVC模式中,“視圖”、“模型”和“控制器”之間是松散耦合結構,便于系統(tǒng)的維護和擴展。2.2.2系統(tǒng)采用技術介紹本系統(tǒng)采用了 .net、CMM技術,采用MVC架構。zCMM與 PSP 在20世紀 80年代后期到90年代早期,SEI開發(fā)了能力成熟度模型(CMM),為軟件開發(fā)總組織級的最佳實踐。SEI特別會員 Watts Humphrey決定將 CMM的基本原理應用于單個開發(fā)的軟件開發(fā)實踐中。個人軟件過程(PSP)就是他努力的成果,為單個軟件開發(fā)人員設計的五級過程。 CMM與 TSP 不久大家就發(fā)現(xiàn),雖然使用 PSP可以取得優(yōu)異的結果,但是如果周圍的環(huán)境不能鼓勵并且要守 PSP實踐,這些必要的規(guī)范性是幾乎不可能得到維持的。所以漢弗萊為大多數(shù)組織中最小作單位項目組,開發(fā)了團隊軟件過程(TSP),TSP是為項目組設計的CMM5級過程。份SEI技術報告中,記錄了使用TSP在滿足成本和進度估算的同時達到一流質量水平的最新CMM的演變 同時,CMM的成功也引發(fā)了相似模型的開發(fā)以覆蓋系統(tǒng)工程(SE-CMM)、集成產品開發(fā)CMM)、軟件采購(SA-CMM)以及人力資源(P-CMM)。為了緩解模型數(shù)量的過快增長,使用從未正式發(fā)布的CMM第二版、系統(tǒng)工程 CMM和IPD-CMM開發(fā)了能力成熟度模型集成(CMMI), 第3章系統(tǒng)分析與設計3.1 用戶需求的獲取 接到畢設任務書后,通過在網(wǎng)上查閱了解了一些鐘表銷售相關的平臺,進行需求提煉總結,形成了用戶需求分析的相關文檔,也通過在圖書館查閱相關研究資料完善了需求分析。3.2 系統(tǒng)用戶分析。3.3 系統(tǒng)功能分析隨著軟件工程知識的普及,軟件工程師都知道,要開發(fā)高質量的軟件,必須改進軟件生產的過程。目前,業(yè)界公認由CMU/SEI開發(fā)的軟件能力成熟度模型SW-CMM是當前最好的軟件過程,并且CMM已經成為事實上的軟件過程工業(yè)標準。但是,CMM雖然提供了一個有力的軟件過程改進框架,卻只告訴我們應該做什么,而沒有告訴我們應該怎樣做,并未提供有關實現(xiàn)關鍵過程域所需要的具體知識和技能。為了彌補這個欠缺,Humphrey又主持開發(fā)了個體軟件過程(Personal Software Process,PSP)。 在CMM1.1版本的18個關鍵過程域中有12個與PSP有關,據(jù)統(tǒng)計,軟件項目 開發(fā)成本的70%取決于軟件開發(fā)人員個人的技能、經驗和工作習慣。因此,一個單位的軟件開發(fā)人員如能接受PSP培訓,對該單位軟件能力成熟度的升級是一個有力的保證。CMM側重于軟件企業(yè)中有關軟件過程的宏觀管理,面向軟件開發(fā)單位,PSP則側重于企業(yè)中有關軟件過程的微觀優(yōu)化,面向軟件開發(fā)人員。二者互相支持,互相補充,缺一不可。按照PSP規(guī)程,改進軟件過程的步驟首先需要明確質量目標,也就是軟件將要在功能和性能上滿足的要求和用戶潛在的需求。接著就是度量產品質量,有了目標還不行,目標只是一個原則性的東西,還不便于實際操作和判斷,因此,必須對目標進行分解和度量,使軟件質量能夠測量。然后就是理解當前過程,查找問題,并對過程進行調整。最后應用調整后的過程,度量實踐結果,將結果與目標做比較,找出差距,分析原因,對軟件過程進行持續(xù)改進。就象CMM為軟件企業(yè)的能力提供一個階梯式的進化框架一樣,PSP為個體的能力也提供了一個階梯式的進化框架,以循序漸進的方法介紹過程的概念,每一級別都包含了更低一級別中的所有元素,并增加了新的元素。這個進化框架是學習PSP過程基本概念的好方法,它賦予軟件人員度量和分析工具使其清楚地認識到自己的表現(xiàn)和潛力,從而可以提高自己的技3.4數(shù)據(jù)庫分析與設計 根據(jù)對普通注冊用戶和系統(tǒng)管理員用戶的分析,系統(tǒng)可以涉及到5大實體,分別是社區(qū)信息、用戶信息、物品信息、留言信息以及評價信息。 社區(qū)信息是指用戶所在社區(qū)的具體信息,其應包含的屬性有社區(qū)標識、社區(qū)名稱、社區(qū)地址以及社區(qū)介紹等。這樣用戶在注冊的時候可以選擇查看社區(qū)信息,以便了解自己應該注冊在哪個社區(qū)從而更快捷方便的進行舊貨交換活動。其他用戶在搜索物品時也可以查看發(fā)布人所在的社區(qū)信息,以便決定自己要不要拿自己的東西去進行交換或者給對方留言。3.5 系統(tǒng)詳細設計 主要介紹了鐘表銷售管理系統(tǒng)的原型設計及重要模塊的詳細設計實現(xiàn)過程,用一系列的時序圖輔助文字圖表等進行說明。3.5.1 系統(tǒng)頁面設計 通過對舊貨交換信息平臺系統(tǒng)的分析,本系統(tǒng)的主要使用用戶有兩種,一是注冊的普通用戶,是系統(tǒng)主要的服務對象,二是系統(tǒng)管理員,負責系統(tǒng)日常信息的維護,因而系統(tǒng)原型設計可根據(jù)兩種用戶角色劃分為不同功能的模塊設計,分別是公共模塊、普通用戶模塊和系統(tǒng)管理員模塊。1. 公共模塊設計公共模塊包含了注冊登錄、查看修改個人信息、修改密碼、查看日歷,物品檢索,友情鏈接、建議投訴等子功能模塊。公共模塊作為系統(tǒng)的前臺頁面顯示,需要靈活的易用性和美觀性,當用戶登錄系統(tǒng)后在左側的導航欄中也會顯示這些信息,和其他系統(tǒng)類似,在需要增加一些鏈接的地方也加入了公共模塊的很多信息。公共模塊功能層次圖設計如下圖3-10所示,第4章 系統(tǒng)實現(xiàn)與測試4.1 重要模塊說明1. 普通用戶發(fā)布物品流程圖圖下圖4-1所示開始 實例化 GoodsDao 實例化 SysUserDao 初始化實體類Goods 根據(jù)登錄id標識查詢SysUsergoods對象返回查詢到的 goods對象中初始化 初始化 UserService調用save()釋放查詢對象跳轉到發(fā)布接受頁面輸入?yún)?shù) 圖4-1 用戶發(fā)布物品流程圖 普通用戶點擊發(fā)布物品鏈接即可進入發(fā)布物品的頁面,頁面有相關輸入框和下拉框來提示用戶進行操作。輸入用戶參數(shù)后將通過http協(xié)議傳遞給GoodsManageAcion中的addGoods()方法,首先根據(jù)登錄id通過SysUserDao查詢用戶信息,檢查在數(shù)據(jù)庫中是否存在,若查詢成功,返回該user對象。并封裝成user屬性,以便將該對象輸入到Goods對象中。addGoods()方法會通過GoodsService類調用GoodsDao中的save()方法,即將該記錄添加到數(shù)據(jù)庫表中進行保存,其他用戶就可以對該物品進行搜索或查看。 物品配價功能分為兩種,一種是全社區(qū)配價,一種是本社區(qū)配價,實現(xiàn)方式是先以價格和確定的配價范圍調用GoodsDao的findBySamePrice()方法查找數(shù)據(jù)庫中價格類似的物品,并返回一個Goods類型的list對象,得到該list對象后,才根據(jù)用戶的選擇過濾出物品所屬用戶與登錄用戶不在一個社區(qū)和過濾出自己發(fā)布的物品作為本社區(qū)配價結果,而全社區(qū)配價結果是僅僅將自己發(fā)布的物品過濾出去,再通過實例化GoodsService將該值傳遞給GoodsManageAction類,該類將list對象封裝成http協(xié)議傳遞到前臺頁面進行顯示。結論本次畢業(yè)設計的完成,使我在專業(yè)技能方面得到了大幅度的提升,對Eclipse平臺下利用SSH框架技術進行系統(tǒng)開發(fā)有了更進一步的理解。對MVC架構的運行原理也有了更深刻的認識。系統(tǒng)采用SSH框架設計,典型的J2EE三層結構,分為表現(xiàn)層、中間層(業(yè)務邏輯層)和數(shù)據(jù)服務層。三層體系將業(yè)務規(guī)則、數(shù)據(jù)訪問及合法性校驗等工作放在中間層處理??蛻舳瞬恢苯优c數(shù)據(jù)庫交互,而是通過組件與中間層建立連接,再由中間層與數(shù)據(jù)庫交互。表現(xiàn)層是傳統(tǒng)的JSP技術,其優(yōu)點在于廣泛的應用和穩(wěn)定的表現(xiàn)。中間層采用的是流行的Spring+Hibernate,為了將控制層與業(yè)務邏輯層分離,又細分為以下幾種。 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ù)的增、刪、查、改的操作。 PO,持久化對象。通過實體關系映射工具將關系型數(shù)據(jù)庫的數(shù)據(jù)映射成對象,很方便地實現(xiàn)以面向對象方式操作數(shù)據(jù)庫,該系統(tǒng)采用Hibernate作為ORM框架。 Spring的作用貫穿了整個中間層,將Web層、Service層、DAO層及PO無縫整合,其數(shù)據(jù)服務層用來存放數(shù)據(jù)。 采用Hibernate作為持久層技術的最大的好處在于:可以完全以面向對象的方式進行系統(tǒng)分析、系統(tǒng)設計。DAO模式需要為每個DAO組件編寫DAO接口,同時至少提供一個實現(xiàn)類,根據(jù)不同需要,可能有多個實現(xiàn)類。用Spring容器代替DAO工廠 。通常情況下,引入接口就不可避免需要引入工廠來負責DAO組件的生成。Spring實現(xiàn)了兩種基本模式:單態(tài)模式和工廠模式。而使用Spring可以完全避免使用工廠模式,因為Spring就是個功能非常強大的工廠。因此,完全可以讓Spring充當DAO工廠。 由Spring充當DAO工廠時,無須程序員自己實現(xiàn)工廠模式,只需要將DAO組件配置在Spring容器中,由ApplicationContext負責管理DAO組件的創(chuàng)建即可。借助于Spring提供的依賴注入,其他組件甚至不用訪問工廠,一樣可以直接使用DAO實例。 Struts跟Tomcat、Turbine等諸多Apache項目一樣,是開源軟件,這是它的一大優(yōu)點。使開發(fā)者能更深入的了解其內部實現(xiàn)機制。 除此之外,Struts的優(yōu)點主要集中體現(xiàn)在兩個方面:Taglib和頁面導航。Taglib是Struts的標記庫,靈活動用,能大大提高開發(fā)效率。MVC架構中的模型是自包含的,并且與控制器和視圖相分離,所以很容易改變應用程序的數(shù)據(jù)層和業(yè)務規(guī)則。如果想把數(shù)據(jù)庫從MySQL移植到Sqlserver,或者改變基于RDBMS數(shù)據(jù)源到LDAP,只需改變模型即可。一旦正確的實現(xiàn)了模型,不管你的數(shù)據(jù)來自數(shù)據(jù)庫或是LDAP服務器,視圖將會正確的顯示它們。由于運用MVC的應用程序的三個部件是相互對立,改變其中一個不會影響其它兩個,所以依據(jù)這種設計思想能構造良好的松偶合的構件。本次畢業(yè)設計是自己第一次獨立承擔一個系統(tǒng)的開發(fā)任務,從前期的需求分析到數(shù)據(jù)庫設計再到編碼實現(xiàn),都是自己全程參與和設計,這對自己的挑戰(zhàn)還是很大的。從設計到實現(xiàn)的過程,使我認識到前期
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《終身成長》讀后感匯編(30篇)
- 二零二五年度蘇州市事業(yè)單位全日制勞動合同標準范本
- 2025年度礦山加工產業(yè)政策研究與咨詢合同
- 二零二五年度高空玻璃安裝作業(yè)安全責任協(xié)議
- 二零二五年度農村家庭房屋分割與農村金融服務協(xié)議
- 二零二五年度員工離職解除勞動合同經濟補償及服務期合同
- 二零二五年度公益廣告墻繪制作協(xié)議
- 二零二五年度影視特效團隊制片助理場記聘用合同
- 2025年度綠色環(huán)保住宅施工合同
- 二零二五年度舞臺搭建項目風險管理與服務合同
- 2025山西國際能源集團社會招聘258人筆試參考題庫附帶答案詳解
- 高嶺土化驗檢測分析報告
- 商業(yè)銀行綜合柜臺業(yè)務(共227頁).ppt
- 廢舊物資回收服務實施方案
- 電力建設工程質量監(jiān)督檢查大綱新版
- 四“借”三“有”寫清楚實驗過程——三下“我做了一項小實驗”習作教學
- 呼吸困難完全PPT課件
- 浙江理工大學畢業(yè)論文答辯PPT模板【精品】
- 中國春節(jié)習俗簡介0001
- 高二數(shù)學教學進度計劃表
- 規(guī)章制度匯編結構格式標準
評論
0/150
提交評論