相册管理系统
一、面向对象分析
1. 设计目的
随着数码产品的普及,传统的相册已经淡出了市场,人们一般把照片存放在电脑中。如果电脑中照片很多,不易查和别人分享。制作这个电子相册系统对相册进行分类管理,可以上传自己的照片和朋友分享,同时对朋友的照片可以发表自己的评论。系统拥有较好的用户界面,信息共享,信息管理使管理人员和用户使用更加便捷,可操作性强。面向所有希望在电脑上进行照片管理的用户。
2. 功能需求
2.1 系统结构
该相册管理系统一共包含三个子系统,分别是用户登陆子系统、用户管理子系统、相册管理子系统。
- 用户登陆子系统:用户登陆子系统具有用户注册和用户登录功能。
- 用户管理子系统:普通用户具有个人信息管理功能、管理员还具有用户管理功能。
- 相册管理子系统:相册管理子系统具有照片管理和相册管理功能。
- 整个系统采用MVC结构,即JSP + javabeen + servlet的模式
2.2 功能描述
2.2.1 用户管理子系统
Ⅰ、用户:
普通用户:系统的合法用户
管理员:具有系统管理权限的用户
Ⅱ、功能:
普通用户:
注册:注册成为系统用户
注销:删除用户
更改:修改用户信息
登入:登陆系统
管理员:
登录
升级用户
删除用户
Ⅲ、用例模型视图:
Ⅳ、活动图:
- 注册功能活动图:
登入功能活动图:
注销功能活动图:
更改功能活动图:
管理员更新用户信息活动图:
Ⅴ、场景描述:
用例名称 | 用户登录 |
---|---|
范围 | 用户管理子系统 |
级别 | 重要 |
主要参与者 | 用户(关注身份的合法性) |
涉众及其关注点 | 无 |
前置条件 | 合法用户 |
成功保证 | 进入系统 |
主成功场景 | (1)启动系统,出现登录界面。 (2)输入用户名和密码,提交。 (3)系统验证。 (4)验证成功进入系统 |
用例名称 | 管理员删除用户 |
---|---|
范围 | 用户管理子系统 |
级别 | 重要 |
主要参与者 | 管理员(拥有相应权限) |
涉众及其关注点 | 违规用户 |
前置条件 | 管理员拥有管理用户权限 |
成功保证 | 进入管理员界面 |
主成功场景 | (1)启动系统,登录管理员界面 (2)输入管理员用户名和密码,提交 (3)系统验证 (4)验证成功进入管理员界面 (5)查找所要删除的用户 (6)若找到,进行删除 |
2.2.2相册管理子系统
Ⅰ、用户:
普通用户
管理员
Ⅱ、功能:
普通用户:
创建相册:创建一个新的相册
修改相册:对相册进行修改
上传图片:上传照片或图片到某个相册
浏览照片:播放照片
对照片评论:在每张照片的评论区写感想
管理员:
- 审核用户图片
Ⅲ、用例模型视图:
Ⅳ、泳道图:
Ⅴ、场景描述:
用例名称 | 用户相册管理 |
---|---|
范围 | 相册管理子系统 |
级别 | 重要 |
主要参与者 | 用户、管理员 |
涉众及其关注点 | 无 |
前置条件 | 用户成功登入相册管理系统, |
成功保证 | 上传的照片符合要求 |
主成功场景 | (1)上传照片,等待审核。 (2)审核通过。 (3)成功上传,相册更新。 |
3. 逻辑分析与建模
3.1 用户管理子系统建模
3.1.1 业务类和领域类
实体类:用户、登入、注册、更新和注销;管理员的登入、升级用户、删除用户
控制类:用户管理、管理员管理
界面类:登录界面、用户管理界面、管理员界面
3.1.2 类模型
登入功能的类模型:
- 用户管理的类模型:
- 管理员管理的类模型:
3.1.3 协作模型
- 登录功能的协作模型:
- 用户管理功能的协作模型:
- 管理员管理功能的协作模型:
3.2 相册管理子系统建模
3.2.1 业务类和领域类
- 实体类:相册目录、相册、照片列表、照片、浏览、评论、上传、审核
- 控制类:相册管理、用户相册管理
- 界面类:相册管理界面、管理员界面
3.2.2 类模型
3.2.3 协作模型
- 管理员相册管理的协作模型:
- 用户相册管理的协作模型:
4. 非功能分析
4.1 技术可行性分析
目前为止,用户登入子系统、用户管理子系统和相册管理子系统已经基本实现,用户在使用过程中并无不良反馈,能够在规定时间内完成系统的开发。
4.2 社会可行性分析
- 法律方面的可行性:本产品未触犯任何法律法规,可进行开发。
- 使用方面的可行性:由调查可知,本系统是一款实用价值较强的产品,提供诸多功能,能满足用户的需求。
4.3 经济可行性分析
本产品属于小型软件,对于经费的开支并不大,开发系统时所用的软件成本也不高,系统开发的支出较少,也在预算范围内,主要支出为数据库与网络服务器的费用。
4.4 可行性研究结论
在软件开发时,支出主要源于服务器和安全维护费用,其他方面并无太多支出,所以,该软件的经济效益时可观的。
二、面向对象设计
1. 系统结构
1.1 系统整体结构设计
1.2 系统功能框架设计
2. 功能设计
2.1 用户登录子系统
2.1.1 注册、登录功能类图
2.1.2 注册功能顺序图
2.1.3 登录功能顺序图
2.2 用户管理子系统
2.2.1 用户修改密码功能
- 类图
- 顺序图
2.2.2 管理员查看用户功能
- 类图
- 顺序图
2.3相册管理子系统
2.3.1添加、删除相册功能
- 类图
- 添加相册功能顺序图
2.3.2 上传、查询、删除图片功能
- 类图
- 上传图片功能顺序图
2.3.3 放映单张图片功能
- 类图
- 顺序图
3. 非功能设计
3.1 程序运行环境
- 开发平台:Windows 10,Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz
- 开发软件:IDEA 2019.3.3 x64
- Tomcat版本:apache-tomcat-8.5.59
- 数据库:MySql 8.0.19
- MySql数据库管理和开发工具:Navicat 12.0.11
相关Jar包:
① 使用SmartUpload组件:jsmartcom_zh_CN.jar
② 使用C标签:jstl.jar和 standard.jar
③ Mysql驱动:mysql-connector-java-8.0.19.jar
3.2 易用性
本系统具有:易理解性、易学习性和易操作性等特点
- 在UI设计上充分考虑了用户的需求,通过各种提示使得整个相册管理系统的操作简单易上手。
- 增设用户名、当前时间的屏幕显示,以体现整个系统的友好性、人性化。
- 当鼠标移动到相关链接时会发生颜色变化,使用户很容易理解系统的操作模式,增强了用户体验效果。
4. 数据库设计
4.1 E-R图
4.2 表设计
4.2.1 用户信息表(tb_user)设计
字段名 | 类型 | 长度 | 约束 | 自增 | 备注 |
---|---|---|---|---|---|
u_id | int unsigned | pk | √ | 用户id | |
u_name | varchar | 50 | Unique | 用户名 | |
u_pass | varchar | 50 | 密码 | ||
u_flag | int | 1 | 标志位(1,admin,0,user) default:0 |
4.2.2 相册表(tb_album)设计
字段名 | 类型 | 长度 | 约束 | 自增 | 备注 |
---|---|---|---|---|---|
a_id | int unsigned | pk | √ | 相册ID | |
a_name | varchar | 50 | 相册名 | ||
a_discription | varchar | 255 | 相册描述 |
4.2.3 照片表(tb_photo)设计
字段名 | 类型 | 长度 | 约束 | 自增 | 备注 |
---|---|---|---|---|---|
P_id | int unsigned | pk | √ | 照片ID | |
P_name | varchar | 50 | 照片名称 | ||
P_discription | varchar | 255 | 照片描述 |
4.2.4 相册类别表(tb_type)设计
字段名 | 类型 | 长度 | 约束 | 自增 | 备注 |
---|---|---|---|---|---|
t_id | int unsigned | pk | √ | 类别id | |
t_name | varchar | 50 | unique/not null | 类别名称 |
4.2.5 创建相册表(tb_ua)设计
字段名 | 类型 | 长度 | 约束 | 自增 | 备注 |
---|---|---|---|---|---|
u_id | int unsigned | Pk/not null | 用户id | ||
a_id | int unsigned | Pk/not null | 相册ID | ||
a_createtime | datetime | 创建时间 |
4.2.6 上传图片表(tb_ap)设计
字段名 | 类型 | 长度 | 约束 | 自增 | 备注 |
---|---|---|---|---|---|
a_id | int unsigned | Pk/not null | 相册ID | ||
P_id | int unsigned | Pk/not null | 照片ID | ||
P_uploadtime | datetime | 上传时间 |
4.2.7 搜索图片表(tb_up)设计
字段名 | 类型 | 长度 | 约束 | 自增 | 备注 |
---|---|---|---|---|---|
u_id | int unsigned | Pk/not null | 用户id | ||
P_id | int unsigned | Pk/not null | 照片ID | ||
P_uploadtime | datetime | 上传时间 |
4.2.8 相册分类表(tb_ta)设计
字段名 | 类型 | 长度 | 约束 | 自增 | 备注 |
---|---|---|---|---|---|
t_id | int unsigned | Pk/not null | 类别id | ||
a_id | int unsigned | Pk/not null | 相册ID | ||
a_createtime | datetime | 创建时间 |
三、系统实现
1. 功能实现
1.1 需求功能
该系统实现了课程的全部要求,可对相册进行分类管理,可以上传自己的照片和朋友分享,同时对朋友的照片可以发表自己的评论。
1.2 扩展功能
- 精美的用户界面来提升用户体验感
- 在图片浏览时我们采用百度图片的设计,可以鼠标触碰图片边缘来实现上下张的翻页
- 供快捷的图片搜索服务,可以按照片名称+所属相册精确查找,也可以只输入照片名称模糊查找
- 友情链接可以跳转到其他在线用户相册系统
- 帮助可以跳转到用户使用指导界面
2. 界面实现
2.1 注册登录界面
2.2 相册查看界面(主界面)
2.3 图片查看界面
2.4 图片放映界面
2.5 新建相册界面
2.6 上传图片界面
2.7 密码修改界面
2.8 管理员查看用户界面
2.9 照片评论界面
四、总结
略
java代码参考github:AlbumManage