QQ空间标准管理系统设计分析书.docx

上传人:b****6 文档编号:5626360 上传时间:2022-12-29 格式:DOCX 页数:27 大小:1.04MB
下载 相关 举报
QQ空间标准管理系统设计分析书.docx_第1页
第1页 / 共27页
QQ空间标准管理系统设计分析书.docx_第2页
第2页 / 共27页
QQ空间标准管理系统设计分析书.docx_第3页
第3页 / 共27页
QQ空间标准管理系统设计分析书.docx_第4页
第4页 / 共27页
QQ空间标准管理系统设计分析书.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

QQ空间标准管理系统设计分析书.docx

《QQ空间标准管理系统设计分析书.docx》由会员分享,可在线阅读,更多相关《QQ空间标准管理系统设计分析书.docx(27页珍藏版)》请在冰豆网上搜索。

QQ空间标准管理系统设计分析书.docx

QQ空间标准管理系统设计分析书

空间标准管理系统设计分析书

空间管理系统设计

 

学院:

电子信息工程学院

班级:

信息管理于信息系统

成员:

葛晓飞石晓甜侯建英孙千惠马莹莹

课程:

应用系统项目实践

第一章:

要求和目标

(1)功能:

用户登录功能:

并以此来判断用户本人和访客,并且对相应的操作权限进行设置。

用户日志信息(更新):

查看、发表、评论等信息的导入/导出。

用户相册信息更新:

上传、查询,及实现简单的在线播放。

实现用户留言板功能,每当有游客来访问时,可以进行简单留言功能。

访客记录功能:

统计、显示历史访问人数,以及当日访问人数的信息。

个人资料管理功能:

对个人信息的修改以及实现简单的注册功能。

查找添加用户功能:

可以方便查找所有好友以及添加好友功能,

(2)性能

方便数据导入和输出,提高了软件的使用效率。

(3)系统的输入

日志信息、相册信息、留言信息、访客信息及其具有特殊权限用户的修改信息

(4)系统的输出

查询结果和数据的显示。

(5)数据安全

系统对不同权限的用户提供不同的功能模板,有一定特殊权限的用户可以进行相对的操作,一般的游客只能进行信息查看的操作。

.开发目标

(1)方便操用户添加、查询及其修改相关信息,减少人力和设备需求;

(2)同时满足查询及其修改的要求;

(3)促进信息交流规范化及其多样化;

(4)学生自行开发降低选课管理创作及其维护费用

.定义

概念

(1)System:

信息管理系统。

(2)用户:

空间管理系统的客户,主要分为游客和用户,可以拥有信息管理系统的帐户。

(3)帐户:

用户登录空间管理系统的凭证,用户通过密码或其它安全认证拥有帐户的相关功能。

二:

一般性描述

该系统所涉及的帐户信息和用户信息全部存放在银行数据库服务器中,数据库服务器运行在小型机上。

本系统采用浏览器/服务器(B/S)的工作方式,系统的用户主要有:

用户和游客。

1.系统UseCase图

顶层的UseCase如下图所示:

顶层的UseCase

Actor定义如下:

Adminixtrator:

一般用户。

Tourist:

游客。

对顶层的UseCase进行细化,得到的UseCase图如下所示。

细化UseCase图

各UseCase说明如下:

(1)登录:

提供用户登录的验证。

Step1:

用户登录信息管理系统的登录页面,输入用户名和密码。

Step2:

验证成功则跳转至主页面,否则重新登录,本UseCase结束。

(2)留言;为自己或者他人进行留言

Step1:

用户首先进行系统登录,登录成功则可执行本功能。

Step2:

本人信息的留言:

用户可以在自己的留言板处,进行个人留言,编辑信息后,点击提交按钮,若出现留言成功提示,则说明留言成功,否则留言失败。

Step3:

若对好友进行留言,则首先查看自己的好友,跳转至好友的主页,然后找到对应的留言板板块,再说输入框进行编辑文本,同样单击提交按钮提交,出现留言成功则表示本次留言成功,本UseCase结束。

(3)查看:

查看自己或好友的信息

Step1:

用户首先进行系统登录,登录成功则可执行本功能。

Step2:

查看自己本人的信息:

登录成功后则进入个人主页,在该页面有日志、说说、相册、留言板、请求信息、个人信息等模块。

如果查看他人的信息则需要首先进入好友的空间然后选择相应的信息进行查看,但需要注意的是我们在别人空间只能查看而不能操作他人的信息

Step3:

完成查看后可以返回好友或自己的界面,同时可以退出本系统。

(4)评论:

对自己或者好友的信息进行评论

Step1:

用户首先进行系统登录,登录成功则可执行本功能。

Step2:

用户登陆成功后,选择要访问的好友,进入好友的主页,选择好友的说说或者是日志然后在下面的输入框输入评论信息,输入完成后按提交按扭。

Step3:

提交之后若提交成功,则提示评论成功否则评论失败。

Step4:

评论完成后可以跳转好友的主页面或者是自己的主页面。

(5)发表信息;该功能是发表自己的日志,说说,音乐。

Step1:

用户首先进行系统登录,登录成功则可执行本功能。

Step2:

当用户登陆成功之后,跳转主界面,选择对应的日志或者说说或者音乐功能,然后在每个单摸版中都有提示按钮,像说说在文本框中输入要发表的信息,然后淡季发表按钮;若是上传音乐,则单击上传按钮。

Step3:

在每次响应的操作之后都会出现响应的状态提示。

(6)回复评论:

用户对好友发表的评论进行回复

Step1:

用户首先进行系统登录,登录成功则可执行本功能。

Step2:

查看自己的说说或者日志,观看下面的评论信息。

Step3:

找到好友对自己信息的评论,在回复框中输入回复信息。

Step4:

状态显示,回复成功则提示回复成功,否则显示失败。

(7)添加好友:

添加好友,方便查看好友信息。

Step1:

用户首先进行系统登录,登录成功则可执行本功能。

Step2:

将鼠标放到添加好友,会划出一个文本框,上面列出了所有的好友,单击右边的添加好友按钮,会弹出已发送添加请求,等待好友回复。

Step3:

当好友同意添加后,在自己的消息中会提示消息+1,1即为消息数目。

Step4:

添加成功后,将鼠标放在我的好友处,将划出一文本框,显示自己的所有好友。

因此,本空间管理系统由以下功能模块组成:

(1)用户登录、注册登录模块

(2)主界面模块

(3)个人信息管理与维护模块

此系统有两类用户:

普通用户和游客。

功能

(1):

只有进行登录并通过身份验证的用户,才可以在空间系统页面发表日志,并借助个人设置实现对个人相关信息的管理维护。

对于没有经过身份验证的网络用户不允许在本系统中发表日志,更不允许对本系统的页面信息进行管理维护。

该模块实现空间系统的注册及登录验证功能。

注册成功的用户登录时,会随时根据页面输入的登录信息进行提示,如用户名错误或者密码错误。

功能

(2):

在该模块中提供了空间系统页面统计信息(如访问量等),日志、评论、音乐盒及留言信息分页显示等多种功能,方便用户操作。

功能(3):

借助该模块,用户可以随时对个人空间主页中的内容进行增加或修改,包括日志等信息的更新、评论及留言管理等功能,也允许用户对个人信息进行维护及其管理。

对于用户来说一般都有一定的专业领域知识,一般有一定的电脑操作能力,但对于一些特殊的顾客来说可能对电脑操作知识了解比较少,因此对于一般使用者来说不需要特殊的理论、知识来支持,也不需要经过特殊的训练,用户只要在计算机上装有IE或Netscape浏览器,并有基本的浏览器操作知识,便能方便的使用本系统。

 

此系统必须满足以下限制:

(1)系统中所有帐户能够供用户随时使用,并且用户名唯一性;

(2)在同一时刻,一个帐户不能同时为两个用户服务;

(3)超过预定的时间,没有操作该账号被自动释放;

第二章:

功能描述

根据系统需求分析和系统功能模块结构图来看,该系统应具备如下基本功能:

●登录信息

●主页信息

●日志信息

●留言板信息

●相册信息

●个人档信息

●音乐信息

空间管理系统可划分为登陆信息,主页信息,个人档信息,说说信息等部分。

其层次图如图1所示。

图1功能模块图

注册功能模块

用户登录与注册模块实现

登录界面的servlet控制器的部分代码如下:

package;

publicclasslogInfoMangerextendsHttpServlet{

privateintcount;//总的日志数

privateintpagecount;//共有的页数

privateinteverypage;//每页显示的数量

privateintcurrentpage;//当前的页数

privatestaticfinallongserialVersionUID=1L;

privateLogDAOlogdao=newLogDAO();

publicvoidservice(HttpServletRequestrequest,HttpServletResponseresponse){

try{

("utf-8");

("utf-8");

}catch(UnsupportedEncodingExceptione){

//TODOAuto-generatedcatchblock

();

}

Stringflag=("flag");

if("_showlog_daily".equals(flag)){

(request,response);

("--------*****-----------");

}elseif("show_daily".equals(flag)){

(request,response);

}elseif("_write_daily_log".equals(flag)){//写日志

(request,response);

}elseif("_comment".equals(flag)){//进行评论日志

(request,response);

("***********bbbbbbbbbbbbbb****");

}elseif("show_message".equals(flag)){//显示所有留言信息

(request,response);

}

}

//显示所有的日志,按页显示

publicvoidgetAlllog_Daily(HttpServletRequestrequest,

HttpServletResponseresponse){

HttpSessionsession=();//注意session需要获取

Stringmainaccount=(String)("user");

Stringnewaccount=(String)("newUser");

Stringaccount;

if(newaccount!

=null){

account=newaccount;

}else{

account=mainaccount;

(account);

}

//(account);

everypage=3;//每页显示5条数据

count=(account);//总的数据量为

if(count%everypage==0){//计算总的页面数

pagecount=count/everypage;

}else{

pagecount=count/everypage+1;

}

currentpage=(("currentpage"));//接受网页传来的当前页数

if(currentpage<0){//判断前一页后一页是否超出该范围

currentpage=0;

}elseif(currentpage>=pagecount-1){

currentpage=pagecount-1;

}

Listdailyloglist=(account,currentpage

*everypage,everypage);

("List",dailyloglist);

("currentpage",currentpage);//将当前页面传输到页面中

("pagecount",pagecount);//将总的页面数传输到页面中

try{

("jsp/").forward(request,

response);

}catch(ServletExceptione){

//TODOAuto-generatedcatchblock

();

}catch(IOExceptione){

//TODOAuto-generatedcatchblock

();

}

}

//显示所要查看的日志

publicvoidshow_daily(HttpServletRequestrequest,

HttpServletResponseresponse){

intlog_num=(("log_num"));

Loglog=(log_num);

Listdiscusslist=(log_num);

("DiscussList",discusslist);

("Log",log);//将关于该文章的内容发送到页面中

try{

("jsp/").forward(request,

response);

}catch(ServletExceptione){

//TODOAuto-generatedcatchblock

();

}catch(IOExceptione){

//TODOAuto-generatedcatchblock

();

}

}

//发表日志

publicvoidwrite_daily_log(HttpServletRequestrequest,

HttpServletResponseresponse){

HttpSessionsession=();

Stringaccount=(String)("user");

Stringtitle=("title");

Stringcontent=("content");

Loglog=newLog();

(account);

(content);

(title);

(title);

(content);

intflag=(log);

(flag);

if(flag>0){

("message","文章发表成功!

");

}else{

("message","对不起,文章发表失败!

");

}

try{

("jsp/").forward(

request,response);

}catch(ServletExceptione){

//TODOAuto-generatedcatchblock

();

}catch(IOExceptione){

//TODOAuto-generatedcatchblock

();

}

}

当注册页面时,会跳入注册页面,当登陆成功后会跳入该系统的主页面,主页面的部分代码如下:

varflag=true;

functionshow(){

varodv=("dv");

varcount=;

if(flag){

vartime=(function(){

count=count+4;

=count;

if(count==0){

(time);

flag=false;

}

},30)

}

}

functionhide(){

varodv=("dv");

varcount=;

if(!

flag){

vartime=(function(){

count=count-4;

=count;

if(count==-400){

(time);

flag=true;

}

},30)

}

}

用户登录主界面模块

 

 

1. 留言板分为填写主人寄语,好友印象和留言管理三部分。

2. 用户在填写留言部分填写问题,提交后只会显示提交成功,在没有得到回复前,留言板里没有此条信息,信息会显示在留言管理中等待管理者回复,等到网站管理者对这条留言进行回复后,才显示在留言板中。

3. 留言管理是为了方便网站管理者管理和修改而设立的,留言管理部分只有网站管理者可见,普通用户登录网站时,是看不到这部分内容的。

留言管理里会显示发布留言者在填写留言部分填写的全部信息,便于管理者对访客进行管理。

4. 管理者看到访客留言时,可以对此条信息进行回复留言,删除留言,显示或隐藏的操作,可以对发布的留言进行管理。

5. 留言可定义是否审核,如定义为不需要审核,则用户的留言会直接显示到页面上,如定义为需要审核,则默认为隐藏状态,管理人员审核后方才显示。

1留言表_message其设计结构如下:

2评论表_discuss其设计结构如下:

3访问记录表_visit其设计结构如下:

4好友表_friend其设计结构如下:

 

一、相册模块

这是相册模块的第一个页面功能图。

我们点击各个功能可以跳转到一下各个子页面。

(1)创建相册功能描述

 

(2)展示设置功能描述

(3)上传照片功能描述。

4相册表_photo其设计结构如下:

 

1音乐表_music其设计结构如下:

 

,以及在线播放音乐的操作

 

第三章:

数据字典

通过系统需求分析,空间系统编制数据字典如下:

各主要数据流的定义如表1至表4所示:

表1

 

表2

 

表3

 

第四章:

数据库设计

数据库是当前应用软件系统的重要组成部分,如何使基于数据库的应用系统安全、可靠、高效的运行一直是软件开发技术研究的难题。

所以本系统的数据库设计基于以下几点来考虑:

(1)数据库规范化与非规范化的考虑。

(2)数据查询优化与索引的建立。

(3)存储过程与视图。

数据库分析

为了把用户的数据要求清晰明确地表达出来,通常要建立一个概念性的数据模型。

概念性数据模型是一种面向问题的数据模型,是按照用户的观点来对数据和信息建模。

描述了从用户角度看到的数据,反映了用户的现实环境。

空间系统涉及的表包括:

(1)用户表账户、密码、权限(好友)年龄地址

(2)音乐表编号账户歌名上传时间URL

(3)相册表编号账户url上传时间

(4)日志表编号账户日志名发表时间发表内容私密设置(说说同样)发表的类型(跟说说区分)

(5)留言表编号账户留言人留言时间留言内容发表的类型

(6)评论表编号对应评论文章的编号评论的账户评论人类型(属于日志、说说、留言)评论时间内容

(7)访问记录表编号(主键)账户访问账户访问时间

(8)好友表编号(主键)添加人被添加人状态特征

数据库逻辑设计

数据连接

目前流行的数据库连接技术主要有:

JDBC-ODBC桥、JDBC和数据连接池技术。

该系统采用数据连接池技术,使用连接池的优点主要体现在两个方面:

对数据库的连接统一进行配置、管理、监控,以及对数据库连接池的参数进行优化调整,同时对应用程序中没有关闭或其他原因造成没有关闭的数据库连接由连接池统一进行管理。

便于程序的移植和后端数据库的切换,因为在应用中通过统一的JNDI获得数据库的连接,而具体连接的是哪一台机器上的数据库与程序无关。

数据库连接池技术的思想非常简单,将数据库连接作为对象存储在一个Vector对象中,一旦数据库连接建立后,不同的数据库访问请求就可以共享这些连接。

这样,通过复用这些已经建立的数据库连接,可以克服上述缺点,极大地节省系统资源和时间。

数据库连接池的主要操作如下:

(1)建立数据库连接池对象(服务器启动)。

(2)按照事先指定的参数创建初始数量的数据库连接(即:

空闲连接数)。

(3)对于一个数据库访问请求,直接从连接池中得到一个连接。

如果数据库连接池对象中没有空闲的连接,且连接数没有达到最大(即:

最大活跃连接数),创建一个新的数据库连接。

(4)存取数据库。

(5)关闭数据库,释放所有数据库连接(此时的关闭数据库连接,并非真正关闭,而是将其放入空闲队列中。

如实际空闲连接数大于初始空闲连接数则释放连接)。

(6)释放数据库连接池对象(服务器停止、维护期间,释放数据库连接池对象,并释放所有连接)。

第五章详细设计与系统实现

由于该系统采用的是MVC模式,本系统主要分为四个文件夹,其中connection文件夹放着连接数据库的文件,而dao是存放的是跟底层数据库的操作类,dto是封装的javabean类,而servlet则是存放的是该系统的中央控制器,用来接收用户的所有请求,并且相应用户的请求。

,是用来连接数据库的文件,该文件的具体代码如下:

package;

publicclassConnectionUtils{

privatestaticStringUSER="root";//连接数据库的用户

privatestaticStringPASSWORD="admin";//密码

privatestaticStringURL="jdbc:

mysql:

//localhost:

3306/database";//连接数据库的路径

privatestaticStringDRIVERNAME="";//数据库的驱动名称

//在加载类的时候进行注册驱动

static{

try{

(DRIVERNAME);

}catch(ClassNotFoundExceptione){

//TODOAuto-generatedcatchblock

();

}

}

//连接数据库,返回的是一个连接

publicstaticConnectiongetConnection(){

try{

return(URL,USER,PASSWORD);

}catch(SQLExceptione){

//TODOAuto-generatedcatchblock

();

}

returnnull;//如果创建连接失败,则返回的是null

}

//如果连接不为空,关闭连接

publicstaticvoidclose(Connectionconn,Statementstat,ResultSetrs){

if(conn!

=null){

try{

();

}

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

当前位置:首页 > PPT模板 > 商务科技

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

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