论文定稿样板.docx

上传人:b****5 文档编号:7742315 上传时间:2023-01-26 格式:DOCX 页数:47 大小:1.69MB
下载 相关 举报
论文定稿样板.docx_第1页
第1页 / 共47页
论文定稿样板.docx_第2页
第2页 / 共47页
论文定稿样板.docx_第3页
第3页 / 共47页
论文定稿样板.docx_第4页
第4页 / 共47页
论文定稿样板.docx_第5页
第5页 / 共47页
点击查看更多>>
下载资源
资源描述

论文定稿样板.docx

《论文定稿样板.docx》由会员分享,可在线阅读,更多相关《论文定稿样板.docx(47页珍藏版)》请在冰豆网上搜索。

论文定稿样板.docx

论文定稿样板

摘要

液晶电视产品库是网易门户网站数码频道产品库的一个子库,主要实现了产品展示,查询,对比和后台管理等功能。

本文主要阐述了液晶电视产品库的结构化分析、设计、实现及维护等方法和过程。

其中,设计部分是本论文的主要内容,包括数据库设计和数据库访问底层设计,产品展示,查询,对比和后台管理管理的设计,采用了较多的类图,流程图和伪代码等形式进行了详细介绍。

目前,液晶电视产品库已经通过测试成功发布上线。

关键词:

产品库;产品库开发;液晶电视产品库;Jsp;Ajax;WebService;MySQL

ABSTRACT

LcdTVproducthousewareisacomplentoftheproducthousewareofdigitalchannelintheNetEasewebsite,itprovidesaplatformtodisplay,query,compareandmanagesomuchinformationaboutLcdTVproducts.ThisarticledescribestheSA,SD,SRandthemaintanceoftheproject.SDisthemostimportantpartofthisarticle,itdescribesdatabasedesignanddataaccessdesign,products’display,query,compareandmanagementfunctionsdesignintheformofclassdiagrams,flowdiagramsandfakecodes.Recently,LcdTVproducthousewarehasbeenpublishedonlinesuccessfullythroughtesting.

Keywords:

LCD;DigitalLcd;NetEaseLcd;Jsp;Ajax;WebService;MySQL

目录

1.绪论3

1.1开发背景3

1.2本开发目的和意义3

1.3可行性分析3

2.程序开发基础5

2.1技术基础5

2.1.1Linux操作系统概述5

2.1.2jsp简介5

2.1.3Squid简介5

2.1.4WebService技术介绍5

2.1.5CMS介绍6

2.1.6Spring技术概述6

2.1.7Ajax简介6

2.2开发前提7

2.2.1系统开发条件7

2.2.2系统开发环境7

2.2.3系统运行环境7

3.系统分析与设计8

3.1系统分析8

3.1.1系统功能需求8

3.1.2系统数据流程图9

3.1.3数据库设计9

3.2系统功能总体设计14

3.3系统功能详细设计16

3.3.1数据访问底层设计17

3.3.2产品展示功能模块设计31

3.3.3产品查询功能模块设计38

3.3.4产品对比功能模块设计39

3.3.5后台管理功能模块设计40

3.3.6其它功能设计42

4.系统功能实现43

4.1数据访问底层实现43

4.2产品展示功能实现43

4.3产品查询功能实现46

4.4产品对比功能实现46

4.5后台管理功能实现47

4.5其它功能实现47

5.系统测试与维护48

5.1系统测试48

5.2系统维护48

结束语49

致谢50

参考文献51

1.绪论

1.1开发背景

随着人们生活水平的提高,液晶电视因其轻薄便携,美观时尚,色彩丰富,清晰度高,绿色环保,耗电量低,使用寿命长等众多优点受到人们的欢迎,巨大的市场刺激着液晶电视的高速发展,众多数码厂商都积极投入液晶电视的掘金浪潮,然而,过多的品牌、产品弄得消费者眼花缭乱,莫衷一是。

随着网络和电子商务的发展,人们开始在网络上咨询产品、厂商信息,参考已购买消费者的产品回馈信息,了解新的主流产品信息等。

1.2本开发目的和意义

液晶电视产品库开发旨在,为消费者提供咨询产品信息服务和购买参考依据,为各厂商提供产品展示服务和市场导向,一方面可以节省购买者选购产品的时间经历成本,另一方面也节约了生产厂商的产品宣传成本和市场调查成本,这样开发液晶电视产品库就具有了很好的应用价值。

1.3可行性分析

Ø技术可行性

本产品库开发中用到的技术主要有Linux,Java,Jsp,Squid,Resin,Apache,WebService,CMS,Spring,MySQL,Jsp,JavaScript,Ajax,XML,Html等,目前这些技术都已经比较成熟和普及,因此在技术上应该能实现。

Ø管理可行性

本产品库的管理者主要为数码频道产品库编辑,后台管理模块的接口风格沿用数码频道其它产品库风格,简单明了,加上编辑们的管理产品的经验,本产品库在管理上应该是可行的。

Ø经济可行性

通过对本开发进行经济效应分析,总结出本产品库能在如下几方面带来经济效应:

第一,可以节省购买者选购产品的时间经历成本;

第二,可以节约生产厂商的产品宣传成本和市场调查成本;

第三,借助本公司(网易)的人气和名声本平台的的宣传成本较低;

第四,借助本公司(网易)的人气和名声可以吸引液晶电视厂商投放广告购买展示方位;

第五,可以进一步提升本网站(网易门户)的人气和名声;

所以,本产品库开发在经济上是完全可行的。

Ø运行可行性

在本产品库开发实现过程中都已经对软硬件在技术上进行择优,提高了软件的运行效率,减少了资源占用率,加上服务器硬件配置较高,所以本产品库的发布运行是可行的。

Ø法律可行性

经查阅相关法律,已确定本产品库无任务违反法律的地方,因此在法律是完全可行的。

2.程序开发基础

2.1技术基础

本产品库开发中用到的技术主要有Linux,Java,Jsp,Squid,Resin,Apache,WebService,CMS,Spring,MySQL,Jsp,JavaScript,Ajax,XML,Html等

2.1.1Linux操作系统概述

Linux以它的高效能和灵活性著称,以及其模块化的设计结构.使得它能运行在工作站上,也能够在普通计算机上实现全部的Unix特性,此外,它还带有多个窗口管理器X-Windows图形用户接口,让用户的操作更加简便,这些优点吸引着越来越多的用户,同时由于它的高安全可靠性,和较低的资源占用被越来越多的用于服务器操作系统。

2.1.2jsp简介

JSP是一种建立在Servlet规范提供的功能之上的动态网页技术,和ASP类似,它们都是在通常的网页檔中嵌入脚本代码,用于产生动态内容,不过JSP檔中嵌入的是Java代码和JSP标记。

JSP文件在用户第一次请求时,会被编译成Servlet,然后由这个Servlet处理用户的请求,所以JSP也可以看成是运行时的Servlet。

2.1.3Squid简介

Squid是一个缓存Internet数据的一个软件,它接收用户的下载申请,并自动处理所下载的数据。

也就是说,当一个用户象要下载一个主页时,它向Squid发出一个申请,要Squid替它下载,然后squid连接所申请网站并请求该主页,接着把该主页传给用户同时保留一个备份,当别的用户申请同样的页面时,Squid把保存的备份立即传给用户,使用户觉得速度相当快。

2.1.4WebService技术介绍

通俗地讲,Webservice就是一个应用程序,它向外界暴露出一个能够通过Web进行调用的API。

我们把调用这个Webservice的应用程序叫做客户。

企业通过WebService发布其完成的在线应用服务,其它公司或应用软件能够通过Internet来访问并使用这项在线服务。

WebService的运行模式如下图所示:

图2-1WebService示意

2.1.5CMS介绍

CMS是ContentManagementSystem的缩写,意为"内容管理系统"。

它具有许多基于模板的优秀设计,可以加快网站开发的速度和减少开发的成本。

它的功能并不只限于文本处理,它也可以处理图片、Flash动画、声像流、图像甚至电子邮件档案。

2.1.6Spring技术概述

Spring是一个开源框架,是为了解决企业应用程序开发复杂性而创建的。

在开发中用的最多的是:

Spring面向方面编程(AOP)和控制反转(IOC)容器。

Ioc控制反转模式(也称作依赖性介入)的基本概念是:

不创建对象,但是描述创建它们的方式。

在代码中不直接与对象和服务连接,但在配置文件中描述哪一个组件需要哪一项服务。

容器(在Spring框架中是IOC容器)负责将这些联系在一起。

AOP面向方面编程是一种编程技术,它允许程序员对横切关注点或横切典型的职责分界线的行为(例如日志和事务管理)进行模块化。

AOP的核心构造是方面,它将那些影响多个类的行为封装到可重用的模块中。

2.1.7Ajax简介

Ajax(AsynchronousJavaScriptandXML,异步JavaScript及XML技术).它实际上是几种技术,每种技术都有其独特这处,合在一起就成了一个功能强大的新技术。

Ajax引擎允许用异步的方式实现用户与程序的交互--不用等待服务器的通讯。

所以用户再不用打开一个空白窗口,看到等待游标不断的转,等待服务器完成后再回应.

2.2开发前提

2.2.1系统开发条件

1.网站部策划提出开发液晶电视产品库需求并已做好需求分析;

2.编辑根据策划提出的需求已将页面设计好;

3.数据库用现在的产品库数据库;

4.服务器用现在的产品库服务器;

5.获取论坛、文章、图片等信息的WebService服务端接口已暴露。

2.2.2系统开发环境

1.软件环境:

WindowsXP,eclipse3.0.1,TortoiseSVN1.4.3,SecureCRT5.1.3

2.硬件环境:

CPU:

Celeron2.6GHz

内存:

1.5G

硬盘:

120G

2.2.3系统运行环境

1.软件环境:

操作系统:

LinuxRedHat7.2

Web服务器:

Apache2.2.2(处理静态资源),Resin2.1.8(处理动态jsp),Squid2.5(缓存静态页面),JDK1.6

WebService服务器:

实现了WebService机制API

数据库:

MySQL5.0

2.硬件环境:

服务端:

CPU主频在15GHz以上,内存:

2G以上硬盘在80G以上(数据库在200G以上);

客户端:

装有浏览器的一般个人计算机;

3.系统分析与设计

3.1系统分析

3.1.1系统功能需求

根据网站部策划需求,液晶电视产品库着重实现对产品的展示和查询,对比功能。

要求能按多种方式进行搜索,用户只需要在某选项区域对产品进行定性或定量的输入即可将满足条件的结果集展示出来。

Ø产品展示功能:

1.用户进入首页能看到最新的产品,所有品牌,以及用户最关注的产品参数(如:

价格,屏幕尺寸等)排序产品,并提供搜索入口,用户可以很快的找到符合自己输入条件的产品集。

2.能按品牌及价格以列表形式展示产品图片其用户最关注信息,搜索结果集也按此形式展示。

3.每种产品有一个自己的详细产品参数页面,包括其图片集,文章集,论坛中对本产品的最新评论等。

4.各页面有便捷的链接导向其它相关页面。

Ø产品查询功能:

1.将产品参数细分类,用户可以在每类参数项以某形式输入对其定性或定量,然后展示出满足条件的结果集。

2.提供用户最常用的搜索(分类)方式,如:

按价格区间分类显示,屏幕尺寸等。

3.提供以某种精确定位的搜索方式,即通过输入产品名或品牌+型号,展示出某产品,或某品牌、型号的产品。

Ø产品对比功能:

1.可以选择任意若干产品进行对比,要求它们的产品信息在统一页面输出,并以容易对比的形式显示(如:

以表格形式显示)。

2.在显示对比页面同时提供更换其中某产品能,比如:

原选定a,b,c三产品比较,现可以改为a,b,d进行比较。

Ø后台产品管理功能:

要求编辑能对产品进行编辑。

Ø其它功能:

开发者可视情况而定,根据具体情况增加、安排,如提供若干排序方式,分页显示,统计排名产品访问量,产品投票等。

3.1.2系统数据流程图

数据流程图:

简称DFD,是采用图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具。

根据系统功能需求导出系统数据流程图如下:

图3-1系统数据流程图

3.1.3数据库设计

数据库Bachman图如下:

图3-2数据库Bachman图

本系统的数据字典的描述如下:

Ø系统用户表admin

此表主要记录了各频道各产品库后台管理(主要指编辑)的信息。

图3-3系统用户表图

Ø产品库分类表kind

此表主要记录了产品库中的产品分类信息,如:

相机,笔记本,液晶电等。

图3-4产品库分类表图

Ø产品分类表category

此表主要记录了产品的分类信息,如:

数码频道(代码0016),液晶电视产品库(代码00Bd),创维品牌(代码0FeE).

图3-5产品分类表图

Ø产品信息表product

此表主要记录了数码频道产品库所有产品信息(数码相机,笔记本,液晶电视,手机等产品信息)。

图3-6产品信息表图

Ø产品信息历史表product_history

此表主要记录了产品的历史记录,为了确保数据的安全和可恢复性当每次向product表中加入或更改数据时先将原记录备份到该表形成一个历史版本(其它各历史表意义同此)。

图3-7产品历史表图

Ø产品投票表vote

此表主要记录了用户对产品的投票情况。

图3-8产品投票表图

Ø投票信息表voteip

此表主要记录了投票者的ip地址信息。

图3-9投票信息表图

3.2系统功能总体设计

根据网站部策划、编辑的功能需求和编辑的页面设计,整个液晶电视产品库以功能为划分依据,页面为实现基础进行设计,产品展示主要由首页,品牌页,产品页完成,产品查询主要由搜索页完成,产品对比主要由对比页完成,后台管理由后台管理页完成,用功能模块图描述如下:

图3-10系统功能模块图

首页为用户访问的起始页面,它可导向除后台管理页以外的其它页面;

品牌页主要负责展示某品牌液晶电视的所有产品信息;

产品页主要显示某具体产品的一系列详细产品信息包括产品参数信息,相关文章,图片,论坛帖子等,它又由综述卷标页、图片卷标页、评测卷标页和论坛卷标页组成;

综述标签页主要用于显示产品参数详细信息和一些最新文章信息,若干图片及论坛最新最热帖子等信息;

图片标签页主要用来显示产品的图片,以便从各个角度来欣赏;

评测标签页(也称文章页)主要用来显示产品的一些行情、导购、信息等文章信息;

论坛标签页提供进入论坛的入口;

搜索页主要提供各种方式的搜索并显示结果集;

对比页主要用于对比用户选择对比的产品详细信息;

后台管理页面向编辑提供产品管理功能。

(注:

以上仅为用户主要可见页面,为完成各项功能可能将有其它后台辅助页面)

按此设计,用户的一般访问流程为:

图3-11用户访问流程图

3.3系统功能详细设计

分析各主要功能模块,它们的实现都是对数据库访问的某种封装调用,因此,系统最主要的逻辑就集中在数据库访问底层,因此数据库访问底层的设计也是详细设计的主要内容,其它功能模块的设计可围绕此来进行。

为让阅读者能较好的理解类图,现用下图示意各类图符号意义。

图3-12类图示意

3.3.1数据访问底层设计

数据访问底层设计主要包括对数据存储结构的设计和数据访问业务逻辑的设计。

1.数据存储结构设计

为了实现数据存储结构的通用,设计DB对数据库的模拟,设计Table对象对数据表的模拟,设计RowSet对象对数据结果集的模拟,设计Row对象对数据记录的模拟。

在构造Table时可传入表名称参数,这样让Table绑定到数据库中的某张表,在Table中封装jdbc,访问数据库,这样只需要在每个数据访问对象中构建一个Table对象,将其绑定到数据表,便可实现对Table的封装,从而实现对数据的访问。

Table连接数据库信息或数据源可由DBConfig对象或者DataSource或ConProvider对象提供。

其中DBConfig对象封装数据库连接信息(数据库地址,用户名,密码等),ConProvider则专门负责提供数据库连接对象,那么就可以这样“newConProvider(DBConfig)”来获得一个ConProvider对象并获取连接。

这样整个数据库底层可按下图设计:

图3-13数据底层结构图

Row类按如下类图设计:

图3-14Row类图

当获取Row对象之后,可通过XMLRow对象将Row中的infoxml字段解析成包含所有该产品信息的Row对象(xmlRow.row获得),XMLRow类图设计如下:

图3-15XMLRow类图

RowSet类按如下类图设计:

图3-16RowSet类图

Table类按如下类图设计:

图3-17Table类图

DB类按如下类图设计:

图3-18DB类图

DBconfig类按如下类图设计:

图3-19DBConfig类图

ConProvider类按如下类图设计:

图3-20ConProvider类图

2.基于jdbc的数据访问底层设计

针对每张表设计一个dao对象(比如ProductDao),所有的Dao都从BaseDao派生而来,在BaseDao中新建一个DB对象,这样就确保每个Dao对象中有DB对象,然后通过DB的getTable(“product”)(在getTable方法中newTable(“product”)),获取一个绑定到product表的Table对象,从而实现对product表的操作。

仅以ProductDao,ProductHistoryDao为例,说明对Dao的设计,其它Dao按此方法设计即可(取名规格也按此原则)。

ProductDao类按如下类图设计:

图3-21ProductDao类图

说明:

之所以引用productHistoryDao是因为在product表中删除记录时应删除相应的历史记录。

ProductHistoryDao类按如下类图设计:

图3-22ProductHistoryDao类图

由于数据访问涉及对象较多且对象之间关系较为复杂,所以决定采用Spring容器(Ioc)来管理各对象。

具体实现方法如下:

设计一个Spring类:

图3-23Spring类图

关键代码

static

{

if(BF==null)BF=newXmlBeanFactory(newClassPathResource(XML_FILE));

if(FACADE==null)FACADE=(Facade)BF.getBean("facade");

}

当Spring类被加载时就自动实例化一个Facade对象FACADE,中Facade维持着各Dao的引用和对各Dao的setter与getter以便Sping框架注入,封装各个Dao的方法,这样每当要访问数据库时就只需先得到Sping.FACADE实例,Facade类结构如图:

图3-24Facade类结构图

这样语句Spring.FACADE通过Spring获取数据源的流程如下:

图3-25Spring.FACADE获取数据源流程图

因此,通过此方式访问数据库的步骤可用如下伪代码描述:

facade=Spring.FACADE;

RowSetrows=facade.getProduct();

for(Rowrow:

rows)

{

row.gets(“productName”);

}

3.基于Lucene的数据访问层设计

由于传统的数据访问方式(JDBC)比较“慢”,当较多用户同时访问,尤其时搜索产品时(由于参数的排列组合项太多,生成静态页面需花费较大空间代价),需不断在数据库中的查询匹配关键词,而MySQL查询本来就很”机械”(遍历匹配),这样就加大了数据库及服务器负担,因此可用Lucene结合二级缓存的机制来加快检索速率。

具体实现方法为:

用JDBC访问方式从product表中查出所有某类产品(Lcdtvproductidlike‘001600Bd%’)的记录集,用lucene对结果集遍历索引到本地磁盘得到索引文件,

图3-26Lucene索引检索数据示意图

同时为搜索结果加二级缓存,第一级缓存搜索语句跟对应的产品id列表;第二级缓存产品id跟产品属性。

当用户提出查询请求时搜索流程如下:

图3-27Lucene检索流程图

基于这种解决方案,可设计一个索引类DigiLcdtvIndex,其类图如下:

图3-28DigiLcdtvIndex类图

只要在DigiLcdtvIndex中实现getDoc()方法,然后通过productDao取出需要索引的数据,遍历结果集通过对每条记录调用getDoc()方法即可将所需数据索引到/home/index/digi_lcdtv文件中。

另外设计一个DigiLcdtvSearch类,当需要查询数据时,就通过该类来获取数据,其类图如下:

图3-29DigiLcdtvSearch类图

实现getResult()方法(row用于存储查询条件的键值对),将查询条件中的键值对放入row作为参数传入。

如:

name=‘huli’andsex=‘man’就可以将它们通过row.put(“name”,”huli”);row.put(“sex”,”man”)存入row中。

因此,通过此方式访问数据库的步骤可用如下伪代码描述:

DigiLcdtvSearchsearch=newDigiLcdtvSearch();

RowparamRow=newRow();

paramRow.put(“productid”,”001600Bd”);

paramRow.put(“name”,”创维”);

RowSetrows=search.getResult(paramRow,0,30);

for(Rowrow:

rows)

{

row.gets(“productName”);

}

3.3.2产品展示功能模块设计

根据系统功能总体设计,产品展示功能主要由首页,品牌页,产品页来实现,因此产品展示功能模块设计可以细分为首页,品牌页,产品页的功能设计,基于前面的数据访问底层设计,它们的设计最主要是完成对数据访问底层的调用。

Ø首页功能设计

根据功能需求及页面设计,首页主要完成:

产品搜索入口

图3-30首页搜索图

品牌展示

图3-31品牌展示图

新产品推荐

图3-32新产品推荐

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 简洁抽象

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1