网站需求分析
2
1.项目概述
2
1.1编写目的
3
1.2项目背景
3
2.需求概述
3
2.1系统属性
3
2.2系统功能
3
2.3用户特点
3
2.4限制与约束
4
3.具体需求
4
1.系统功能结构图
6
2.功能描述(注:用户均指普通用户)
13
3.概念结构设计
13
3.1用户模块
13
3.2新闻模块
13
3.3资料上传下载模块
14
3.4服务项目模块
14
3.5论坛模块
15
3.6工作室事务模块
16
3. 7其它管理
16
4.逻辑结构设计(P-主键 ,F-外键,PF-主外键)
16
4.1.用户模块
18
4.2新闻模块
19
4.3资料上传下载模块
20
4.4服务项目模块
21
4.5论坛模块
23
4.6工作室事务模块
25
4.7其他事务
26
5.数据库的评价及实现
26
5.1数据库评价
26
5.2数据库的实现
27
6.数据库的运行及维护
27
6.1数据库的并发控制
27
6.2数据库的恢复控制
1.项目概述
1.1编写目的
本文档是充分建立在对工作室的业务流程的充分调研上,对工作室的业务流程进行分析得出的用户需求分析。
本文档为充分明确需求分析、安排项目规划与进度、组织软件开发与测试,特撰写
此文档。
本文档供项目经理、设计人员、开发人员、测试人员进行参考。
1.2项目背景
工作室成立一年多了,工作室是以项目开发为基础的,帮别人做网站,自己却没有一个好的交流平台。通过一年多的努力,工作室在学院得到了很好的评价,工作室的项目渐渐的多了,人也多了,很多东西不好管理,不好交流,宣传工作做得不到位,严重阻碍了工作室的发展,所以工作室急需要这样的一个平台,来促进交流,加强工作室的宣传与管理。
2.需求概述
2.1系统属性
以J2EE为基础采用流行的WEB技术,以当前主流的中间件WEBLOGIC或者TOMCAT为WEB运行平台,用JAVA语言编写程序。
为以后的维护,采用SQLSERVER2000+struts2.1+hibernate。
开放完成后,软件发布到现有服务器上;不受其他系统干扰;易于系统移植、功能拓展。
2.2系统功能
1.服务项目的管理,工作室主要承接的项目。
2.新闻管理,IT新闻和一些工作室的新闻,就业新闻之类的。
3.成功案例,主要介绍工作室做过的一些项目展览。
4.资源下载,主要是达到资源共享的目的。
5.成员风采,主要是介绍工作室的成员。
6.用户管理。
7.技术论坛管理,加强工作室的技术交流。
8.关于我们,对工作室的一些介绍。
9.校友录,从工作室走出去的毕业生介绍及交流平台
10.工作室事务管理
2.3用户特点
用户分为六种:
1.没有注册的用户(有一些浏览功能)
2.普通会员用户(浏览功能,加上发贴,跟贴,上传下载)
3.工作室成员(在普通会员的基础上,能够浏览工作室的事务管理项,参加工作室的事务管理)
4.校友用户(在普通会员的基础上能够多校友录这个功能)
5.普通管理员(能够管理网站,对网站信息进行更改)
6.超级管理员(在普能管理员的
基础上,能够更改权限)
2.4限制与约束
本系统开发时间要求比较紧,从开发到设计上线正式运行约一个月时间。
系统是一个B/S模式软件。
数据库采用sqlserver2000。
尽量采用先进的软件设计和实现技术。
3.具体需求
1.系统功能结构图
2.功能描述(注:用户均指普通用户)
2.1用户管理
1.用户注册,注册时需填写用户名,密码,及是否申请校友。注册之后,用户可以对自己的信息填加完整,包括,真实姓名,昵称,姓别,职业,电子邮箱,个人简介,个性签名,照片等信息,并可对其进行修改。
2.用户可以查看自己的动态信息,包括,积分,发贴,回贴,上传文件,下载文件,及其数目。校友用户可以查看自己的留言及数目。工作室成员可以查看自己参与的一些工作事事务及一些附加信息。
3.管理员能够对用户基本信息和动态信息进行增删改查。管理员可以根据用户名来查询精确查找用户信息,或者根据用户的一些其他信息(职业,积分,发贴,回贴)进行查询。
4.用户可以相互之间加为好友,能够很快的找到对方。用户可以查看自己的好友分类,及分类好友,对好友进行增删改查。
2.2服务管理
2.2.1项目开发
用户(需注册)能够发布项目开发需求,项目需求包括项目名称,项目类型,项目描述,应留下联系地址,电话,发布时间,email,需求发布的有效期。
用户可以去竟标项目需求,竟标是要注明发布者,发布时间,
能够完成该项目的优势。
2.2.2技术咨询(暂且转到技术论坛中,通过发贴解决)
用户(需注册)可以发布有关计算机的技术咨询,发布咨询包括,发布者,问题类型,时间,问题描述,然后别人可以添加回复进行解答。
2.2.3电脑维修服务
用户可以发布有关计算机的电脑故障,电脑故障,包括发布者,故障类型,时间,故障描述,然后别人进行解答,甚至可以上门服务。
2.3新闻管理
2.3.1新闻类型管理 ,管理员可以对新闻类型进行增删改查
2.3.2新闻内容管理,管理员可以发布新闻,新闻包括标题,新闻内容,新闻类型,新闻摘要,新闻关键字,新闻状态(是否通过审核),是否发布等。
2.3.3用户可以查看浏览新闻, 工作室成员可以添加新闻,但要通过管理员的审核。
2.4成功案例
2.4.1管理员可以对成功案例进行增删改查,成功案例主要是对工作室做过的一些项目的介绍,包括项目名称,项目参与人员,项目简单介绍。
2.4.2用户可以浏览成功案例。可以通过链接,链接到成员风采。
2.5成员风采
2.5.1管理员可以对成员风采进行增删改查,成员风采主要是对工作室现有成员及从工作室走出去的人员介绍,成员风采包括成员姓名,成员特点,成员事迹,成员个性签名,成员图片。
2.5.2用户可以查看成员风采的基本信息。
2.6资料上传下载
2.6.1资料上传。普通用户可以上传自己的东西,但要经过管理员的审核,普通用户可以查看自己上传的东西,可以查看上传数量,待审核数量,每上传一个最少加2分,最多加10分。管理员可以对上传资料进行增删改查,上传的信息包括:上传者,上传文件名,上传文件大小,上传时间,文件类型,审核状态,文件介绍,下载时需要多少积分,上传获得积分。
2.6.2资料下载。普通用户可以下载资源,下载时包括下载的文件信息,下载者,下载时间,下载资源是否需要积分之类的。
2.6.3未注册的用户不能上传与下载,只能浏览。用户可以查看自己的上传,下载数量,可以查看上传下载的文件。
2.6.4管理员可以对文件类型进行管理。
2.7校友录
2.7.1校友录留言。校友之间可以相互留言,可以查看别人给自己的留言,可以选择该留言是否可见。
2.7.2校友录。校友录方便已毕业的同学提供一个平台,能够取得联系,得知对方的情况,校友录应显示姓名,联系方式,QQ,Email,现在所在地,工作等情况。未被查看的留言会及时在该人登录时显示出来。
2.7.3工作室成员可以查看校友的联系情况,但不能查看留言情况,也不能留言。
2.8论坛管理
2.8.1论坛类别管理。论坛类别,主要是用来确定一个版块所属类别。包括,类别id,类别名,类别介绍。
2.8.2论坛版块管理。论坛版块用来确定,根贴所属的范围。每个版块都有一个版主。版主原则上是工作室的人或校友。
2.8.3论坛根贴管理。贴子信息包括,贴子发布者,所属版块,发贴时间,标题,内容,置顶贴子,置顶时间,精华贴子,精华时间
2.8.4论坛回贴管理。回贴信息包括,回贴者,回贴时间,回贴根贴,回贴标题,回贴内容。
2.8.5未注册用户只能浏览贴子,不能发贴,回贴。用户可以查看自己发贴与回贴,可以对贴子进行更新。发贴与回贴可以立即显示,但需要通过版主或管理员的审核,审核通过的则能永远显示,未能过的则不显示。
2.8.6管理员可以对贴子进行修改删除之类的。版主只能审核贴子通过与否。
2.9工作室事务管理(针对工作室成员开发)
2.9.1周
管理
工作室成员必须每周提交自已的下周计划,周计划,主要包括提交时间,心得内容,第几周提交的。提交之后在本周之内可以进行修改,但其他时间不能修改,成员可以查看自己各个周的计划,可以按学期查询,按周查询,可以查看别人的计划。有报警功能,在周末登录时,如果没写周计划,则要提醒用户写下周计划。
2.9.2周心得管理
工作室成员必须每周提交本周心得,周心得主要包括周心得内容,提交时间,周次。提交之后在本周之内可以对其进行不断的修改,其他时间不能修改,成员可以查看自己各个周的心得,可以按学期查询,按周查询,可以查看别人的心得。有报警功能,在周末登录时,如果没写周计划,则提醒用户写心得。
2.9.3财物管理
财物申请:工作室的成员如果有买东西需要钱时,可以提出申请,申请需要申请人,申请时间,申请理由,申请金额,投票有效期。
财物投票:申请之后,就需要工作室全体成员进行投票决定,是否能够通过,然后财物管理员根据投票结果,对其进行决定是否批准该次申请,财物投票需要进行实名制,每人最多只能投一次。
本次出账:通过后财物管理员做好本次出账工作。
财物管理员可以添加入帐记录,但每一次的出入,需要工作室所有成员公开。
查询功能:可以按学期,入\出帐性质,月,查询记录。
报表功能:能够打印,导出财物记录。
2.9.4违纪管理
违记增加:管理员可以对违记情况进行记录,记录包括违记人,违记原因,违纪时间,违纪记录人,违纪处理结果。
违纪查询:管理员和工作室成员可以对违纪进行查看,可以按时间,按人员,按月,学期,按年进行查询。
2.9.5签到管理
签到:工作室成员需在有效的时间,登录到本网站,则算进行有效的签到,每周必须签到七次。
签到查询:工作室成员可以在登录后即可看到自己本周的签到次数,可以按人,按周,进行查询签到情况。
2.9.6项目管理
项目申请:工作室成员需要向组长申请,申请包括:申请人,申请时间,项目类型,项目介绍。
项目处理:申请之后,组长需处理这个项目,这个项目要多长时间,要派哪些人做,按照成员等级(高级程序员,中级程序员和初级程序员)进行合理地分配人员。
项目进程管理:项目负责人要制定项目计划,并按项目计划进行阶段性检查。要及时地发布项目的进度情况。
2.10其他管理
2.10.1网站留言板管理:
用户能够留言,对网站的一些建议。可以匿名留言。管理员可以对留言板进行管理。
2.10.2网站友情链接管理:
管理员能够添加友情链接网站。
3.概念结构设计
3.1用户模块
3.2新闻模块
3.3资料上传下载模块
3.4服务项目模块
3.5论坛模块
3.6工作室事务模块
3. 7其它管理
4.逻辑结构设计(P-主键 ,F-外键,PF-主外键)
4.1.用户模块
4.1.1用户表(user)
字段名
字段类型
是否主键
是否为空
描述
Username
Varchar(20)
Y
N
用户名(P)
Password
Varchar(20)
N
密码
Sqxy
Varchar(1)
是否申请校友
role
Varchar(1)
N
角色权限
Login_times
Int
登录次数(默认0)
Last_login
Time
最后一次登录时间
(说明:sqxy,在注册时填写,role,0-超级管理员,1-管理员,2-工作室成员,3-校友,4-普通用户)
4.1.2职业表(job)
字段名
字段类型
是否主键
是否为空
描述
Id
Int
Y
N
自动标识ID(P)
Name
Varchar(20)
职业类型名称
introduction
Varchar(200)
类型介绍
4.1.3用户基本信息表(userInfo)
字段名
字段类型
是否主键
是否为空
描述
username
Varchar(20)
Y
N
用户名(PF)
Realname
Nickname
Varchar(20)
Varchar(20)
真实姓名
sex
Varchar(2)
性别
job
Int
工作类型(F)
Reg_time
Date
注册时间
Phone
Varchar(12)
电话
Photo
Varchar(100)
照片(存储路径)
Address
Varchar(100)
地址
Email
Varchar(30)
邮箱
Mood
Varchar(200)
心情短语
signature
Varchar(200)
个性签名
introduction
Varchar(500)
个人简介
4.1.4用户动态信息表(infoActive)
字段名
字段类型
是否主键
是否为空
描述
username
Y
N
用户名(PF)
Topic_num
发贴数量
Topic_ans_num
回贴数量
Docu_num
上传文件数量
Down_num
下载文件数量
Project_num
发布项目需求数量
Project_bid_num
竞标项目需求数量
Mend_num
发布维修数量
Mend_solv_num
解决维修数量
score
积分
4.1.5校友表(school_friend)
字段名
字段类型
是否主键
是否为空
描述
Username
Y
N
用户名(PF)
Grad_time
毕业时间
Qq
QQ
Mes_seen
已查看留言数量
Mes_unseen
未查看留言数量
4.1.6工作室成员表(studio_member)
字段名
字段类型
是否主键
是否为空
描述
Username
Y
N
用户名(PF)
Sno
学号
direction
方向(c、Java、PHP等)
Into_time
进入工作室时间
degree
编程等级(高,中,初)
state
是否在做项目(0-空闲,1-忙)
Pro_num
做项目个数
4.1.7好友类型表(fri_type)
字段名
字段类型
是否主键
是否为空
描述
Id
Y
N
自动标识ID(P)
Username
用户名(F)
name
类型名称
4.1.8好友表(friend_list)
字段名
字段类型
是否主键
是否为空
描述
Id
Y
N
自动标识ID(P)
User1
邀请方(F)
User2
被邀请方(F)
Type1
被邀请方所在类型(F)
Type2
邀请方所在类型(在邀请方类型中)(F)
state
是否同意及处理
(注明:是否同意F-表示等待被邀请方处理,Y-同意,N-不同意)
4.2新闻模块
4.2.1新闻类型表(news_type)
字段名
字段类型
是否主键
是否为空
描述
Id
Y
N
自动标识ID(P)
Name
类型名
introduction
类型描述
4.2.2新闻表(news)
字段名
字段类型
是否主键
是否为空
描述
Id
Y
N
自动标识ID(P)
Title
标题
Type
新闻类型(F)
keywords
关键字
summary
摘要
Content
发布内容
Username
发布者(F)
Intime
发布时间
Count
浏览数量(默认1)
hot
是否热门(0-非热门 1-热门)
State
审核状态
Manager
审核人(F)
Oper_time
审核时间
4.3资料上传下载模块
4.3.1资料类型表(docu_type)
字段名
字段类型
是否主键
是否为空
描述
Id
自动标识ID(P)
Name
类型名
Introduction
类型介绍
4.3.2资料上传表(document)
字段名
字段类型
是否主键
是否为空
描述
Id
自动标识ID(P)
Username
上传者(F)
Intime
上传时间
Name
上传文件名
Type
上传文件类型(F)
Size
上传文件大小
Introduction
上传资料描述
Score
需要积分
State
审核状态
Oper_time
审核时间
Manager
审核人(F)
Down_times
下载次数
4.3.3资料下载表(down_docu)
字段名
字段类型
是否主键
是否为空
描述
Id
自动标识ID(P)
Docu_id
资料ID(F)
Down_time
下载时间
username
下载者(F)
4.4服务项目模块
4.4.1项目类型表(project_type)
字段名
字段类型
是否主键
是否为空
描述
Id
标识ID(P)
name
类型名
Introduction
类型介绍
4.4.2项目需求表(project)
字段名
字段类型
是否主键
是否为空
描述
Id
标识ID(P)
Title
项目标题
Content
项目内容介绍
Type
项目类型(F)
Intime
发布时间
Eff_time
有效时间
State
是否有效状态
Phone
电话
Username
发布者(F)
Email
Email
Address
联系地址
4.4.3项目竞标表(project_bid)
字段名
字段类型
是否主键
是否为空
描述
Id
标识ID(P)
Proj_id
项目ID(F)
Username
竞标者(F)
Intime
竞标时间
advantage
竞标优势
state
是否被选中
4.4.4故障类型表(problem_type)
字段名
字段类型
是否主键
是否为空
描述
Id
标识ID(P)
name
故障类型名
Introduction
类型名描述
4.4.5故障需求表(problem)
字段名
字段类型
是否主键
是否为空
描述
Id
标识ID(P)
Title
故障标题
Type
故障类型(F)
Username
发布者(F)
Problem
故障描述
Intime
发布时间
state
解决状态
4.4.6故障解决表(problem_solve)
字段名
字段类型
是否主键
是否为空
描述
Id
标识ID(P)
Username
解决者(F)
Intime
解决时间
Method
解决方法
4.5论坛模块
4.5.1版块类型表(forum)
字段名
字段类型
是否主键
是否为空
描述
Id
标识ID(P)
Name
版块类型名
introduction
版块类型介绍
4.5.2版块表(board)
字段名
字段类型
是否主键
是否为空
描述
Id
标识Id(P)
Name
版块名称
Forum_id
版块类型(F)
Username
版主(F)
notice
版块公告
4.5.3根贴表(topic)
字段名
字段类型
是否主键
是否为空
描述
Id
标识ID(P)
Title
标题
Content
内容
Intime
发布时间
Username
发布者(F)
Board_id
版块ID(F)
Istop
置顶状态
Top_time
置顶时间
isElite
精华状态
Elite_time
精华时间
Checkname
审核人(F)
Check_time
审核时间
State
审核状态及处理状态
(说明:审核状态及处理状态:F等待审核,Y审核通过,N未通过审核。在等待审核期间一直显示,审核通过后将永远显示,未通过审核的将不显示)
4.5.4回贴表(reply)
字段名
字段类型
是否主键
是否为空
描述
id
标识Id(P)
Topic_id
根贴Id(F)
Title
标题
Content
回复内容
username
回复人(F)
State
审核状态及处理
Checkname
审核人(F)
Check_time
审核时间
4.6工作室事务模块
4.6.1周计划表(plan)
字段名
字段类型
是否主键
是否为空
描述
Id
标识Id(P)
Week
周次
Content
内容
Intime
时间
Username
提交者(F)
isCommit
是否提交(本周之后算提交)
4.6.2周心得表(learned)
字段名
字段类型
是否主键
是否为空
描述
Id
Y
N
标识ID(P)
Week
周次
Content
内容
Intime
提交时间
Username
提交者(F)
isCommit
是否提交(本周之后算提交)
4.6.3 财务申请表(fina_req)
字段名
字段类型
是否主键
是否为空
描述
Id
Y
N
标识ID(P)
Reason
申请理由
amount
申请金额
Intime
申请时间
Username
申请人(F)
Indate
申请有效期
Yes
同意人数
no
不同意人数
Neutral
中立人数
Checkname
审核人(F)
Check_time
审核时间
state
审核状态及处理状态
4.6.4财务投票表(fina_vote)
字段名
字段类型
是否主键
是否为空
描述
Id
Y
N
标识ID(P)
Username
投票者(F)
Intime
投票时间
answer
投票选择(投的内容)
Req_id
申请id(F)
4.6.5财物入、出账表(finance)
字段名
字段类型
是否主键
是否为空
描述
Id
Y
N
标识Id(P)
Io
入出账标识(0-入,1-出)
Checkname
记录人(F)
Username
申报人(用钱进钱人)(F)
Reason
原因
Money
本次出入金额
Rest
剩余金额
4.6.6违纪记录表(break_rule)
字段名
字段类型
是否主键
是否为空
描述
Id
Y
N
标识Id(P)
Username
违纪人(F)
Intime
违纪时间
Reason
违纪原因
Checkname
违纪记录人(F)
Result
违纪处理
4.6.7签到记录表(sign)
字段名
字段类型
是否主键
是否为空
描述
Id
Y
N
标识Id(P)
Intime
签到时间
Username
签到人(F)
Period
签到时段(每天三次都可以)
Week
签到周次
Weekday
签到星期
4.6.8项目表(project_req)
字段名
字段类型
是否主键
是否为空
描述
Id
Y
N
标识ID(P)
Title
项目标题
Content
项目介绍
Username
项目申请人
Type
项目类型(F)
intime
申请时间
4.6.9项目批复表(proj_reply)
字段名
字段类型
是否主键
是否为空
描述
id
Y
N
项目id(P)
State
审核状态及处理
Checkname
审核人(F)
Check_time
审核时间
Pricipal
项目负责人(F)
Advanced
高级程序员(F)
middle
中级程序员(F)
primary
初级程序员(F)
4.6.10项目控制表(proj_control)
字段名
字段类型
是否主键
是否为空
描述
Id
Y
N
项目Id(P)
Schedual
项目进度
finish
项目完成状态
Plan
项目计划
4.7其他事务
4.7.1校友录留言表(fri_board)
字段名
字段类型
是否主键
是否为空
描述
Id
Y
N
标识ID(P)
Sent_name
发布人(F)
Content
发布内容
Intime
发布时间
Receive_name
接收留言人(F)
isSeen
是否被看过(已看,未看)
4.7.2网站留言板表(mess_board)
字段名
字段类型
是否主键
是否为空
描述
Id
Y
N
标识ID(P)
Username
发布人
Ip
发布者ip
Content
留言内容
Intime
留言时间
4.7.3友情链接表(friendly_link)
字段名
字段类型
是否主键
是否为空
描述
Id
Y
N
标识ID(P)
name
中文名
url
网址
5.数据库的评价及实现
5.1数据库评价
数据库表中没有非主属性对主属性的部分依赖或传递依赖,也就是说数据库表中不包含已在其他表中的非主属性的信息,所以数据库达到了3NF
。但还存在一些问题,有时候联系和关系还是分辨不清。很多时候逻辑结构设计比概念结构设计要简单,可能是概念结构里用E-R图的表示太死了,有时候不能准确表达意思,可能是E-R图还有很多东西没学吧。
5.2数据库的实现
5.2.1建库建表(由于表太多,在这里就省略了)
5.2.2建视图(根据用户的角色来控制用户的功能菜单,不同的用户有不同的功能有不同的视图,特别是需要进行一些连接查询时,需要建立视图,这样可以方便写sql语句,因为功能太多,在这里省略)
5.2.3建触发器和存储过程
该应用程序,涉及到很多触发器,因为把本来可以通过对表查询或者多次运算得出来的信息,都设置了单独的字段,例如某个用户的回贴数,所以要设置触发器来在后台控制回贴数量的变化,财物入出账里的剩余金额也可以用触发器来实现,等等信息。
当然如果技术和时间的话,程序应多用存储过程,毕竟存储过程有很多优点,如降低网络通信量和提高执行速度,安全性。
6.数据库的运行及维护
6.1数据库的并发控制
并发能够减少人员等待的时间,能够有效的利用服务器的空闲资源,提高效率。工作室的网站前期可能人数不是很多,并发的可能性还是比较少,但如果人数在不断的增加,到一定程度了,就可以两个人对同一事务进行操作,存在数据间的共享。所以在编写程序的时候,要理清各个事务及其联系,存在数据共享的要对其加行加锁
。
6.2数据库的恢复控制
数据库里面存在重要的数据,在运行过程中不能保证不会出现故障,既然这是不可预测的,但我们应该有处理这种事情的措施。由于工作室不可能提供多台服务器,供相互之间随时转储,但我们可以定期备份,备份到本机和其他地方,另外还可以利用日志来进行恢复,以将损失尽量减少到最少。
_1234567890.vsd
�
工作室网站
资料上传下载
新闻管理
服务管理
成功案例管理
成员风采
用户管理
论坛管理
校友录
工作室事务
服务管理
项目开发
技术咨询
电脑维修
项目开发需求发布管理
需求处理管理
技术问题发布管理
技术问题回复
电脑故障申报管理
电脑故障处理管理