【正文】
圖 41 系統(tǒng)架構(gòu) 功能設(shè)計 新聞發(fā)布系統(tǒng)分為前臺設(shè)計和后臺設(shè)計兩部分。 數(shù) 據(jù)庫的設(shè)計主要經(jīng)過數(shù)據(jù)需求、概念結(jié)構(gòu)設(shè)計和邏輯結(jié)構(gòu)設(shè)計三個階段。 、角色描述等數(shù)據(jù)特征。 。 模板信息:模板名稱、模板描述、模板類型、模板文件、生成靜態(tài)文件要替換的標(biāo)簽。 根據(jù)需求分析得出系統(tǒng)基本 ER 圖,如圖 44 所示 。 模塊實體包含模塊名稱屬性。 評論關(guān)系模式: ments(ments_id,ments_content,users_id,ments_relateid,ments_date,ments_status,news_id)。 數(shù)據(jù)庫 實現(xiàn) 在完成數(shù)據(jù)需求分析和數(shù)據(jù)庫設(shè)計的基礎(chǔ)上,對數(shù)據(jù)庫進行具體的實現(xiàn),數(shù)據(jù)庫共有 11 張表,所有表及說明如 表 41 所示。 用戶角色分配關(guān)系模式: users_to_roles(users_to_roles_id,users_id,roles_id)。 邏輯結(jié)構(gòu)設(shè)計 邏輯結(jié)構(gòu)設(shè)計的任務(wù)是將概念結(jié)構(gòu)設(shè)計階段設(shè)計好的 ER 圖轉(zhuǎn)化為對應(yīng)的關(guān)系模式,從而完成邏輯結(jié)構(gòu)設(shè)計,為數(shù)據(jù)庫實現(xiàn)做準(zhǔn)備。 新聞審核實體包含審核意見、審核結(jié)果、審核日期和對應(yīng)的新聞屬性。 權(quán)限信息:權(quán)限名稱、權(quán)限描述、權(quán)限所屬模塊名稱、權(quán)限操作后觸發(fā)的請求。 。 新聞類別可以包含多條新聞。 、類別描述、類別順序、類別的上級名稱、類別所選擇 的靜態(tài)模板等數(shù)據(jù)特征。其中欄目管理模塊包括添加、修改、刪除欄目及欄目以目錄結(jié)構(gòu)樹形式顯示;新聞管理模塊包括添加、修改、批量刪除、移動新聞、審核、按條件查找新聞和查看新聞對應(yīng)評論等,當(dāng)新聞審核成功后,新聞標(biāo)題便以超鏈接形式顯示,點擊可以查看發(fā)布后的新聞;評論管理模塊包括審核評論及批量刪除評論等;系統(tǒng)管理模塊包括角色管理、用戶管理、模塊管理、修改密碼、數(shù)據(jù)庫恢復(fù)及備份,其中角色管理包括角色的增加、刪除、修改角色及權(quán)限分配和成員管理,成員管理包括批量刪除、批量添加成員等;用戶管理包括添加、修改、注銷、恢復(fù)、按條平頂山學(xué)院本科畢業(yè)設(shè)計 19 件查詢用戶及查看用戶所屬角色等;模板管理包括基本的增加、刪除、修改操作。 SSH 三層框架在系統(tǒng)中的集成過程,即在表示層,首先通過 JSP 頁面實現(xiàn)交互,負(fù)責(zé)傳送請求( Request)和接收響應(yīng) ( Response) ,然后 Struts 將 ActionServlet接收到的 Request 委派給 Spring 的 DelegatingActionProxy 托管,再轉(zhuǎn)交給相應(yīng)的Action 處理。 架構(gòu)設(shè)計 本系統(tǒng)采用 輕量級 SSH 三層框架來實現(xiàn) MVC 模式。在系統(tǒng)開發(fā)過程中,必須采用一定的方法保證系統(tǒng)運行的正確性。 信息審核員用例圖 如圖 34 所示 。通過對系統(tǒng)進行分析,系統(tǒng)角色分為 四 類,分別為 普通 用戶、系統(tǒng)管理員、信息編輯員、信息審核員,其中后 三 類角色是 普通用戶 的泛化,擁有前臺用戶的所有功能。 ,為其他企業(yè)定制門戶網(wǎng)站 。 平頂山學(xué)院本科畢業(yè)設(shè)計 9 3 需求分析 在軟件工程中,需求分析指的是在建立一 個新的或修改一個現(xiàn)存的系統(tǒng)時描寫系統(tǒng)的目的、范圍、定義和功能所要做的工作。 MySQL的 SQL“ 結(jié)構(gòu)化查詢語言 ”, 是用于訪問數(shù)據(jù)庫的最常用標(biāo)準(zhǔn)化語言。 JavaScript 腳本中創(chuàng)建一個 JSONRpcClient 對象,如: jsonrpc=new JSONRpcClient(“JSONRPC”); JSONRpcClient 對象即可在 JavaScript 中直接調(diào)用服務(wù)器端的Java 程序。這樣把以前的一些服務(wù)器負(fù)擔(dān)的工作轉(zhuǎn)交給客戶端,利用客戶端閑置的處理能力來處理,減輕服務(wù)器和寬帶的負(fù)擔(dān)。三層框架的 整合 形成一個結(jié)構(gòu)良好、功能強大,層次清晰的框架體系。 客戶端 除了 WWW 瀏覽器,一般無須任何用戶程序,只需 從Web 服務(wù)器 下載程序到本地來執(zhí)行,在下載過程中若遇到與數(shù)據(jù)庫有關(guān)的指令,由 Web 服務(wù)器交給數(shù)據(jù)庫服務(wù)器來解釋執(zhí)行,并返回給 Web 服務(wù)器,Web 服務(wù)器又返回給用戶。 然后 介紹了 應(yīng)用 現(xiàn)狀, 指出了現(xiàn)有新聞發(fā)布系統(tǒng)的優(yōu)缺點 , 接著給出本文工作,對整個系統(tǒng)設(shè)計與實現(xiàn) 過程 做了一個系統(tǒng)性的說明,最后給出論文結(jié)構(gòu)安排 。 從系統(tǒng)架構(gòu)設(shè)計、功能設(shè)計、數(shù)據(jù)庫設(shè)計和接口設(shè)計四個方面對系統(tǒng)進行總體設(shè)計。 論文結(jié)構(gòu)安排 本文從軟件開發(fā)生命周期的角度闡述了系統(tǒng)開發(fā)過程,首先介紹了項目 開發(fā)背景 、意義及應(yīng)用現(xiàn)狀 ,然后 簡單介紹了系統(tǒng)采用的技術(shù)及開發(fā)工具,接著 重點論述 系統(tǒng) 需求分析、總體設(shè)計和詳細設(shè)計與實現(xiàn)過程,最后 做 系統(tǒng)測試以及總結(jié)。本系統(tǒng) 有四類角色,即普通用戶、信息編輯員、信息審核員和 系統(tǒng)管理員 。該系統(tǒng)后臺設(shè)計復(fù)雜,需要處理復(fù)雜的模板標(biāo)簽和各個模板之間的邏輯,一般采用三層模式實現(xiàn),該類系統(tǒng)靈活性大,可以通過自定義模板實現(xiàn)界面復(fù)雜的前臺頁面,一般不需要為某一個企業(yè)而定做,該系統(tǒng)具有良好的通用性, 適合各類新聞?wù)军c,同時,把前端用戶和數(shù)據(jù)庫分割開來,系統(tǒng)的安全性得到大大的提高 [2]。 因此企業(yè)紛紛建立起自己的門戶網(wǎng)站, 通過網(wǎng)站來展示產(chǎn)品,發(fā)布最新動態(tài),與用戶進行交流和溝通,與合作伙伴建立聯(lián)系,以及開展電子商務(wù)等。 系統(tǒng) 測試表明各項功能達到了預(yù)期效果, 具有較好的安全性 和 容錯性。 系統(tǒng) 采用 Java 語言 ,瀏覽器 /服務(wù)器( B/S) 模式 , Struts、 Hibernate 和Spring( SSH) 三層架構(gòu) 進行開發(fā),實現(xiàn)了新聞 欄目的分類、新聞的添加、審核、發(fā)布、評論、回復(fù)等功能 。傳統(tǒng)的報紙雜志已經(jīng)遠遠滿足不了人們的需求,人們更加希望能夠在網(wǎng)上快速及時地瀏覽新聞,因此獲取各種各樣的網(wǎng)上信息,已成為人們?nèi)粘I?的一部分。 該類系統(tǒng)大約占 60%的份額,其主要特點為:前臺采用 Java 語言動態(tài)讀取數(shù)據(jù)庫的內(nèi)容,隨時更新,該類系統(tǒng)設(shè)計簡單,適合大多數(shù)中小企業(yè)建站需要。主要工作如下: 通過 查閱相關(guān)資料及分析現(xiàn)有新聞發(fā)布系統(tǒng)具有的功能,同時在調(diào)研某公司新聞管理及發(fā)布工作流程基礎(chǔ)上,認(rèn)真分析、總結(jié)各類人員負(fù)責(zé)的相關(guān)工作,由此得出用戶的功能需求和系統(tǒng)的性能需求。 (5) 前臺展示模板:包括瀏覽、搜索、評論新聞及評論回復(fù)、注冊用戶信息和找回密碼等功能。 第 三 部分:需求分析 。 第 七 部分: 結(jié)束語。它是隨著 Inter 技術(shù) 的興起,對 客戶端 /服務(wù)器 ( Client/Browse, C/S) 模式 的擴展。 UML 作為一種建模語言,在項目開發(fā)過程中的作用,總結(jié)起來主要有以下幾個方面: 作為一種建模語言,為用戶提供了一種易用的、具有可視化建模能力的語言,能夠使用戶使用該 語言進行系統(tǒng)的開發(fā)工作,并且能夠進行有意義的建?;Q; 為面向?qū)ο蠼UZ言的核心概念提供了可擴展性和規(guī)約機制; ; 。 Hibernate 作為一個優(yōu)秀的持久化工具,通過 對象關(guān)系映射 ( Object Relational 平頂山學(xué)院本科畢業(yè)設(shè)計 7 Mapping, ORM) 架起了 Java 對象與 關(guān)系數(shù)據(jù)庫間 的橋梁,很好的協(xié)調(diào)對象與數(shù)據(jù)庫的交互,提供數(shù)據(jù)查詢和恢復(fù)機制 ,實現(xiàn)了與底層數(shù)據(jù)庫的分離 。利用它內(nèi)置的一個輕量級 JSONRPC JavaScript 客戶端,可以透明地在客戶端 JavaScript 中調(diào)用服務(wù)器端的 Java 代碼。 MySQL 數(shù)據(jù)庫管理工具 從系統(tǒng)開發(fā)成本及數(shù)據(jù)量大小角度考慮,采用 MySQL 數(shù)據(jù)庫管理系統(tǒng)來存儲和管理系統(tǒng)數(shù)據(jù)。它是功能豐富的 J2EE 集成開發(fā)環(huán)境 ,包括了完備的編碼、調(diào)試、測試和發(fā)布功能,完整支持 HTML、 Struts、JSP、 CSS、 JavaScript、 SQL 以及 Hibernate 等。核心業(yè)務(wù)流程如下 : 新聞 欄目 ; 已存在的新聞 欄目 下 撰寫 相應(yīng)新聞 ; ; 就發(fā)布, 反之 打回重新修改 ; 審核通過后 印刷成 公司宣傳冊 ; ,宣傳公司以及產(chǎn)品,收集客戶意見 ; ; 。 。 信息編輯員用例圖 如圖 33 所示 。 基于 SSH的新聞發(fā)布系統(tǒng)的設(shè)計與實現(xiàn) 14 系 統(tǒng) 管 理 員新 聞 發(fā) 布 系 統(tǒng)角 色 管 理修 改 密 碼用 戶 管 理數(shù) 據(jù) 庫 備 份 恢 復(fù) i n c l u d e 添 加 角 色 i n c l u d e 修 改 角 色 i n c l u d e 刪 除 角 色 i n c l u d e 成 員 管 理 i n c l u d e 權(quán) 限 管 理 i n c l u d e 添 加 用 戶 i n c l u d e 修 改 用 戶 i n c l u d e 注 銷 用 戶 i n c l u d e 恢 復(fù) 用 戶 i n c l u d e 查 看 角 色 i n c l u d e 分 配 角 色 i n c l u d e 備 份 i n c l u d e 恢 復(fù) i n c l u d e 刪 除登 錄模 板 管 理 i n c l u d e 批 量 添 加 成 員 i n c l u d e 批 量 刪 除 成 員 i n c l u d e 查 找 成 員 圖 35 系統(tǒng)管理員用例圖 在系統(tǒng)管理員用例圖中,以管理角色用例為例給出用例描述,如表 34 所示。 本章小結(jié) 本章 首先描述了系統(tǒng)實際的業(yè)務(wù)流程,然后闡述了系統(tǒng)所要達到的目標(biāo) , 接著從用戶角度出發(fā),進行了功能性分析 ,最后 從系統(tǒng)準(zhǔn)確性、易用性、安全性等角度進行了性能需求分析 ,為后續(xù)系統(tǒng)設(shè)計 、實現(xiàn) 打下了一個堅實的基礎(chǔ)。由于不同的層各司其職,每一層不同的應(yīng)用具有某些相同的特征,有利于通過工程化、工具化產(chǎn)生管理程序代碼。 前臺設(shè)計包括欄目顯示、新聞信息顯示,瀏覽、搜索新聞信息,對新聞進行評論,對評論進行回復(fù),注冊用戶,修改注冊信息,根據(jù)注冊郵箱找回密碼等。 數(shù)據(jù)需求 在設(shè)計系統(tǒng)時,主要從模塊組成、數(shù)據(jù)連接、功能實現(xiàn)、應(yīng)用意義等方面著手,而模塊組成主要包括系統(tǒng)的主要組成模塊以及每個模塊所要達到的功能。 、模板標(biāo)簽、模板類型、對應(yīng)的模板文件等數(shù)據(jù)特征。 。 評論信息:評論內(nèi)容、用戶、評論回復(fù)、評論的日期、評論狀態(tài)、評論的新聞。 欄 目存 放新 聞刪改增查用 戶評 論包 含權(quán) 限對 應(yīng)功 能 模 塊屬于角 色擁 有新 聞 審 核審 核撰 寫選 擇選 擇模 板11nnn1mm11mnm11nnmm1 圖 44 新聞發(fā)布系統(tǒng)基本 ER 圖 圖中欄目實體包含欄目名稱、欄目說明、父級欄目名稱、欄目順序、欄目是否有效、欄目路徑、所屬模板屬性。 基于 SSH的新聞發(fā)布系統(tǒng)的設(shè)計與實現(xiàn) 22 權(quán)限實體包含權(quán)限名稱、權(quán)限描述和所屬模塊屬性。 模板關(guān)系模式: templates(templates_id,templates_name,templates_description,templates_type,templates_file,templates_tags)。 表 41 數(shù)據(jù)庫中表及說明 編號 表名 說明 1 columns 欄目信息表 2 news 新聞信息表 3 news_approvals 新聞審核表 4 ments 評論表 5 users 用戶表 6 roles 角色表 7 users_roles 用戶角色表 8 permissions 系統(tǒng)權(quán)限表 9 roles_to_ permissions 角色權(quán)限分配表 10 models 系統(tǒng)模塊表 11 templates 系統(tǒng)模板表 根據(jù)系統(tǒng)數(shù)據(jù)關(guān)系模式的設(shè)計結(jié) 果,下面僅給出欄目表( columns) 、新聞表( news) 、 新聞審核表 ( news_approvals) 、評論表( ments) 的實現(xiàn) , 如表 44 4 45 所示 ,其它不再一一給出。 用戶關(guān)系模式: users(users_id,users_name,users_loginname,users_password,users_gender,users_,users_isactive,users_registdate)。 用戶角色關(guān)系包含用戶名稱和角色名稱屬性。 模板實體包含模板名稱、模板描述、模板類型、模板文件和模板標(biāo)簽屬性。 用戶信息:網(wǎng)名、用戶名、密碼、性別、郵箱、用戶狀態(tài)、注冊日期。 。 。 根據(jù)需求分析,針對各模塊的特點,可以總結(jié)出如下數(shù)據(jù)需求: 、標(biāo)題、內(nèi)容、關(guān)鍵字、作者、入庫時間、發(fā)布基于 SSH的新聞發(fā)布系統(tǒng)的設(shè)計與實現(xiàn) 20 時間、新聞所選擇的靜態(tài)模板等數(shù)據(jù)特征。 企 業(yè) 網(wǎng) 站 前 臺用 戶 登 錄 找 回 密 碼 新 聞 顯 示 查 詢 新 聞用 戶 注 冊修改個人信息評論