ext-indent: 2em; margin-top: 0px; margin-bottom: 0px; -ms-text-justify: inter-ideograph;">2) 市民的界面主要设计了网站首页的框架及查看活动信息的界面框架,其余界面的风格与此类似。
图8 公益活动主页
图9 查看活动列表界面
在组织端,公益组织员工在登录后,根据身份不同分别进入对应身份的界面——管理者界面、发布者界面、审核者界面。对于管理者,在管理者主页点击分配账号、删除账号、查看月统计信息将分别跳转到对应的功能界面。活动发布者和审核者的操作方式类似,具体的页面跳转设计如图10-图12所示。
图10 管理者页面跳转设计
图11 发布者页面跳转设计
图12 审核者页面跳转设计
对于活动参与者市民、导师或志愿者在客户端登录后进入公益活动主页,若市民当前未申请导师或志愿者,关于导师和志愿者的信息将会被隐藏,具体的页面跳转如图13所示:
图13 客户端页面跳转设计
2.6 数据存储设计
根据分析得到的问题域对象,设计出每个对象对应的数据库类,以实现各对象涉及信息的增删查改操作,具体的类见下表:
表9 数据库类描述
数据库类
|
描述
|
ManagerDAO
|
管理员与数据库连接类
|
PromulgatorDAO
|
发布者与数据库的连接类
|
AssessorDAO
|
审核者与数据库的连接类
|
CitizenDAO
|
市民与数据库的连接类
|
VolunteerDAO
|
志愿者与数据库的连接类
|
TutorDAO
|
导师与数据库的连接类
|
每个数据库表的设计如下所示:
表10 市民数据库表
列名
|
数据类型
|
允许为NULL
|
Key
|
ID
|
varchar
|
N
|
主键
|
number
|
varchar
|
N
|
|
password
|
varchar
|
N
|
|
IDcard
|
varchar
|
N
|
|
name
|
varchar
|
N
|
|
area
|
varchar
|
N
|
|
point
|
int
|
N
|
|
VolID
|
varchar
|
N
|
外键
|
TutID
|
varchar
|
N
|
外键
|
表11 志愿者数据库表
列名
|
数据类型
|
允许为NULL
|
Key
|
ID
|
varchar
|
N
|
主键
|
level
|
int
|
N
|
|
point
|
int
|
N
|
|
mag
|
varchar
|
Y
|
|
表12 导师数据库表
列名
|
数据类型
|
允许为NULL
|
Key
|
ID
|
varchar
|
N
|
主键
|
level
|
int
|
N
|
|
wages
|
int
|
N
|
|
msg
|
varchar
|
Y
|
|
表13 活动数据库表
列名
|
数据类型
|
允许为NULL
|
Key
|
ID
|
varchar
|
N
|
主键
|
type
|
varchar
|
N
|
|
theme
|
varchar
|
N
|
|
content
|
varchar
|
N
|
|
time
|
date
|
N
|
|
place
|
varchar
|
N
|
|
funds
|
int
|
N
|
|
tutWages
|
int
|
N
|
|
citVol
|
int
|
N
|
|
volunVol
|
int
|
N
|
|
tutVol
|
int
|
N
|
|
statues
|
bool
|
N
|
|
表14 活动发布者数据库表
列名
|
数据类型
|
允许为NULL
|
Key
|
number
|
varchar
|
N
|
主键
|
password
|
varchar
|
N
|
|
name
|
varchar
|
N
|
|
表15 活动审核者数据库表
列名
|
数据类型
|
允许为NULL
|
Key
|
number
|
varchar
|
N
|
主键
|
password
|
varchar
|
N
|
|
name
|
varchar
|
N
|
|
表16 志愿者申请数据库表
列名
|
数据类型
|
允许为NULL
|
Key
|
citizID
|
varchar
|
N
|
主键
|
name
|
varchar
|
N
|
|
reason
|
varchar
|
N
|
|
certifi
|
varchar
|
N
|
|
表17 导师申请数据库表
列名
|
数据类型
|
允许为NULL
|
Key
|
citizID
|
varchar
|
N
|
主键
|
name
|
varchar
|
N
|
|
reason
|
varchar
|
N
|
|
certifi
|
varchar
|
N
|
|
3 运行设计
3.1 运行模块组合
不同权限的操作控制对应的系统模块如下表所示:
表18 运行模块组合表
所施控制
模块组合
|
市民模块
|
导师模块
|
志愿者模块
|
管理员模块
|
活动发布者模块
|
活动审核者模块
|
市民权限操作
|
√
|
|
|
|
|
|
志愿者权限操作
|
√
|
|
√
|
|
|
|
导师权限操作
|
√
|
√
|
|
|
|
|
管理员权限操作
|
|
|
|
√
|
|
,
|
发布者权限操作
|
|
|
|
|
√
|
|
审核者权限操作
|
|
|
|
|
|
√
|
3.2 运行控制
通过验证各用户的身份,控制用户的操作。需要控制的对象如下表所示:
表19 运行控制表
运行控制
|
控制方法
|
市民权限运行控制
|
用户登录后检查用户身份,若用户身份为市民,则系统对该用户施加市民权限控制
|
志愿者权限运行控制
|
用户登录后检查用户身份,若用户身份为志愿者,则系统对该用户施加志愿者权限控制
|
导师权限运行控制
|
用户登录后检查用户身份,若用户身份为导师,则系统对该用户施加导师权限控制
|
管理员权限运行控制
|
用户登录后检查用户身份,若用户身份为管理员,则系统对该用户施加管理员权限控制
|
活动发布者运行控制
|
用户登录后检查用户身份,若用户身份为活动发布者,则系统对该用户施加活动发布者权限控制
|
活动审核者运行控制
|
用户登录后检查用户身份,若用户身份为活动审核者,则系统对该用户施加活动审核者权限控制
|
3.3 运行时间
各类操作占用资源的时间设计如下表所示:
表20 运行时间表
运行控制
|
运行时间
|
市民权限运行控制
|
<3s
|
志愿者权限运行控制
|
<3s
|
导师权限运行控制
|
<3s
|
管理员权限运行控制
|
<5s
|
活动发布者运行控制
|
<5s
|
活动审核者运行控制
|
<5s
|
4 系统出错处理设计
4.1 出错信息
本系统运行过程中可能遇到的错误及解决方法如下表所示:
表21 出错信息表
错误类型
|
错误原因
|
解决办法
|
数据库连接错误
|
数据库连接设置不正确,网络延迟,或数据库异常
|
取消本次操作,提醒用户检查数据库
|
用户命令或口令错误
|
输入不规范
|
通过对话框,提醒用户,然后再次操作
|
不可预知错误
|
未知异常
|
进行数据库备份,帮助开发者完善程序
|
计算机病毒
|
计算机遭到病毒、蠕虫或木马侵扰,导致程序无法正常运行
|
安装查杀病毒软件并定期升级,必要时对系统数据备份,重装系统
|
4.2 补救措施
我们对本程序的几种可能的错误进行了分析,决定不同的错误采取以下不同的处理方法。
主要的处理方法有:
1) 数据库连接错误: 这类错误主要是数据库设置不正确,网络不畅通,或数据库异常引起的,系统会提示用户取消本次操作并检查数据库设置与网络设置。并且对于数据库中的信息,要定期进行数据备份, 每天进行增量转储,每月一次进行海量转储,可以使用静态转储也可使用动态转储。
2) 用户口令或命令输入错误:造成问题的原因是用户输入不规范造成,系统将提示用户合法的输入信息,尽量避免用户的错误输入。
3) 其他不可预知错误:程序会有无法预知或美元完全考虑到的错误,系统对此可能没有作出异常处理,此时主要保证数据的安全,进行数据库备份。
4) 计算机病毒:计算机病毒为恶意植入计算机的程序。通过提示安装与更新的杀毒软件来预防此类原因造成的系统错误,必要是提示用户进行重要数据备份并重装系统。
5) 其他操作错误:对于用户的不正当操作,有可能使程序发生错误,系统通过运行中止程序,并提醒用户中止的原因和操作的规范
4.3 系统维护设计
软件的维护主要包括数据库的维护和管理子系统服务器的维护。对于数据库的维护,需要提供数据库的备份与恢复功能,方便的实现数据课的维护和管理。对管理子系统服务器的维护,由于每个模块之间的独立性较高,对服务器的维护带来了很大的方便,对于功能的添加,只需添加菜单单项内容即可,系统将根据客户的要求和反应定期的对软件进行维护和改进。
,
1 引言
1.1 编写目的
本文档为公益组织公益活动管理系统的概要设计说明。文档中明确说明了系统的整体结构,并描述了各子系统之间的关系,同时从用户需求、交互界面及数据存储等方面出发设计出系统各功能实现的方式。本文档可以为程序设计人员和系统管理人员提供清晰的设计思路,是后期详细设计的依据和基础,同时在开发后期的维护阶段也起到至关重要的作用。
本文档的预期读者为:
1、 项目的责任人和管理者;
2、 参与概要设计和需求确认的有关业务人员;
3、 项目的开发人员、测试人员;
1.2 背景
为推进城市文化建设,政府部分与公益组织合作向使命提供一些公益活动,如琴棋书画的学习、讲座,传统工艺品的制作、茶艺、茶花、戏曲舞蹈等。因此设计一个具有健壮性、易操作性的方便组织者发布公益活动,广大市民参加公益活动的系统十分必要。
系统名称:公益组织的公益活动管理系统
项目提出者及负责人:指导教师赵逢禹
项目开发者:软件协同设计第三小组
系统用户:参加公益活动的市民(导师、志愿者)及公益组织相关部门(发布、审核)的员工
软件运行中心:市民的个人电脑及公益组织公司内部系统
1.3 定义
1、文档中涉及的专门术语解释如下:
1)事务流:数据进入功能块之后可能有多种路径处理。
2)ROLLBACK:回滚,数据库的错误恢复机制。
2、文档中出现的缩略词解释如下表所示:
表1 缩略词参照表
缩略词
|
英文全名
|
解释
|
UI
|
User Interface
|
用户界面
|
B/S
|
Browser/Server
|
浏览器/服务器
|
DAO
|
Data Access Object
|
数据访问对象
|
ER
|
Entity Relation
|
实体关系
|
SRS
|
Software Requirement Specification
|
软件需求说明
|
1.4 参考资料
《公益组织公益活动管理系统需求说明书》第三小组 内部参考资料 2018.4
《软件工程导论》张海藩 清华大学出版社 2013.8
2 总体设计
2.1 设计概述
本系统的分析设计采用面向对象的方法,在SRS的基础上建立系统的对象模型,描述类及类之间的关系,包括与实体对象对应的实体类,用例与实体之间交互界面的边界类以及协调实体类和边界类的控制类。
本系统的体系结构采用B/S结构,该结构包括浏览器、Web服务器和数据库服务器三层。使用B/S结构客户端只需要安装浏览器,操作简单,可发布静态信息与动态信息,同时该结构能实现跨平台通信,且开发成本低。公益活动管理系统的架构图如下所示:
图1 公益活动管理系统架构图
2.2 运行环境
1、系统运行所要求的硬件配置如下:
1)CPU:i3-7350k及以上
2)内存:2GB
3)硬盘:50G以上
4)显卡:GTX460及以上
5)外接设备:键盘、鼠标
2、系统运行的软件环境如下:
1)操作系统:Windows7以上操作系统
2)数据库服务器:MySQL 5.7.20
3)Web服务器:Tomcat 8.5
4)浏览器:InternetExplore6.0以上版本,Chrome
2.3 系统的结构设计
1、系统顶层结构设计
本文档使用包图描述系统的总体结构,通过包图说明了各设计模块之间的关系,包括数据库设计,功能服务设计,控制类设计以及UI设计。系统包图如下所示:
图2 公益活动管理系统顶层包图
2、子系统设计
本系统主要分为两个子系统,一个子系统由公益组织方使用,主要实现公益活动的发布审核等功能,另一个是活动参与者子系统,完成市民、导师、志愿者对活动的操作。划分的子系统结构图如下所示:
图3 公益活动管理系统划分图
对系统各元素的说明见下表:
表2 系统元素说明表
子系统
|
系统元素名称
|
说明
|
活动参与者子系统
|
市民注册登录
|
市民需要以实名的个人信息使用本系统
|
市民报名参加活动
|
市民查看公益活动并报名
|
市民管理活动
|
市民可查看已完成的公益活动信息
|
市民申请成为导师或志愿者
|
市民有符合要求的职业技能可填写申请成为对应活动导师或志愿者
|
导师抢单
|
导师报名指导某个公益活动
|
导师管理订单
|
导师查看指导的公益活动的信息
|
导师签到
|
在公益活动结束后导师需要记录市民参加活动的情况
|
志愿者报名志愿者活动
|
志愿者报名辅助导师完成公益活动
|
志愿者管理志愿活动
|
志愿者查看已完成的志愿活动
|
活动组织者子系统
|
管理员管理员工账号
|
管理员为职员分配账号或删除账号
|
管理员查看月统计信息
|
管理员查看导师每月指导互动情况,据此向导师支付相应费用
|
发布者发布活动信息
|
公益组织员工录入活动相关信息
|
发布者修改活动信息
|
公益组织员工在活动审核通过前可修改信息
|
审核者审核活动
|
审核者决定活动是否正式发布
|
审核者审核导师申请
|
审核者根据市民提交的申请决定市民是否有资格获得导师称号
|
审核者审核志愿者申请
|
审核者根据市民提交的申请决定市民是否有资格成为志愿者
|
3、 系统类设计概述
根据以上描述,设计出系统的类,包括实体对象类、服务类、控制类及数据库类。类的详细信息和类之间的关系如图4所示。
实体对象类有Manager、Promulgator、Assessor、Citizen、Volunteer、Tutor、VolApplication、TutorApplication和Activity,分别记录管理员、活动发布者、活动审核者、市民、志愿者、导师、志愿者申请、导师申请及公益活动的相关信息,公益活动是核心,其余各实体对象类都与其有关联。
组织端的服务涉及管理员管理账号、查看统计信息,发布者发布修改活动信息,审核者进行审核等,分别通过ManagerImpl、PromulgatorImpl、AssessorImpl页面服务类完成相关操作,同时通过PromulgatorControl、AssessorControl两个页面控制类实现相关操作完成后对页面的更新跳转。活动参与者的客户端通过CitizenImpl、VolunteerImpl和TutorImpl三个页面服务类实现市民、志愿者和导师对公益活动的报名及管理,CitizenlControl、TutorControl、VolunteerControl完成市民、导师和志愿者页面操作时对页面的控制。
数据库操作类实现服务器对数据库中存储相关信息的读写,设计了ManagerDAO、PromulgatorDAO、AssessorDAO、CitizenDAO、VolunteerDAO、TutorDAO来分别操作公益组织管理员、活动发布者、审核者及市民、志愿者、导师在数据库中存储的信息。
对类的具体分析见本文档的2.4——2.6部分。
图4 系统整体类图
2.4 问题域类模型
通过分析需求,共筛选出9个问题域对象,分别是活动管理者、发布者、审核者、市民、志愿者、导师、活动、导师申请及志愿者申请,每个类的描述如表3所示:
表3 问题域类描述
问题域类
|
描述
|
Manager
|
存储管理员信息
|
Promulgator
|
存储发布者的工号信息
|
Assessor
|
存储审核者的工号信息
|
Citizen
|
存储市民的个人信息
|
Volunteer
|
存储志愿者的个人信息
|
Tutor
|
存储导师的个人信息
|
VolApplication
|
存储市民成为志愿者的申请信息
|
TutorApplication
|
存储市民成为导师的申请信息
|
Activity
|
存储活动的详细信息
|
各问题域类之间的关系描述如下:
表4 问题域类关系描述
问题域类
|
关系描述
|
Manager - Promulgator
|
公益组织的管理员有较高的职权,与活动的发布者和审核者之间存在管理的关联关系
|
Manager - Assessor
|
Citizen - Tutor
|
市民具备一定条件可申请成为导师或志愿者,所以导师和志愿者拥有市民的基本属性和功能,他们之间存在泛化关系
|
Citizen - Volunteer
|
Citizen - VolApplication
|
市民与他对导师和志愿者的申请之间存在聚集关系
|
Citizen - TutorApplication
|
* - Activity
|
活动类之外的其它类与活动类之间均存在对应的关联关系
|
2.5 系统的界面设计
本系统的界面设计分为两部分,分别是组织端界面和活动参与者的界面。根据这两种使用者的功能设计出11个用户界面类,8个组织端界面类,通过这些类实现网页显示信息或从使用者处获取信息,用户界面类的具体描述见表5,组织端界面类见表6。
表5 用户界面类描述
用户界面类
|
描述
|
LoginUser
|
用户登录界面
|
Register
|
用户注册界面
|
ActivityIndex
|
公益活动主界面
|
ActivityInfo
|
活动详细信息界面
|
HistoricAct
|
历史活动信息界面
|
TutorApply
|
导师申请界面
|
VolunteerApply
|
志愿者申请界面
|
TutorMenu
|
导师功能界面
|
SignIn
|
导师签到界面
|
VolunteerMenu
|
志愿者功能界面
|
JoinActivity
|
确认参加活动界面
|
表6 组织端界面类
组织端界面类
|
描述
|
LoginOrg
|
组织端登录界面
|
ManagerMenu
|
管理员功能界面
|
PromulgatorMenu
|
发布者功能界面
|
AssessorMenu
|
审核者功能界面
|
PromulgateAct
|
发布活动界面
|
AssessAct
|
审核活动界面
|
AssessTutor
|
审核导师资格界面
|
AssessVolunteer
|
审核志愿者资格界面
|
组织端与客户端用户在操作后,服务器要及时做出响应,给用户正确的反馈。根据主要功能设计出的页面服务类及控制类如表7、表8所示:
表7 页面服务类描述
页面服务类
|
描述
|
ManagerImpl
|
创建、删除、管理发布者和审核者账号
|
PromulgatorImpl
|
发布、查看活动
|
AssessorImpl
|
审核活动的发布、志愿者和导师的申请
|
CitizenImpl
|
市民活动的报名、积分的变更等
|
VolunteerImpl
|
志愿者活动的参与、管理等
|
TutorImpl
|
导师的活动抢单、指导等
|
表8 控制类描述
控制类
|
描述
|
PromulgatorControl
|
发布者操作后,界面的更新、显示
|
AssessorControl
|
审核者参加活动,界面的更新、显示
|
CitizenlControl
|
市民操作后,界面的更新、显示
|
TutorControl
|
导师操作后,界面的更新、显示
|
VolunteerControl
|
支援者操作后,界面的更新、显示
|
考虑两类使用者的特点,设计出两种主题的界面分别供组织者和普通市民使用,主要的界面框架如下图所示:
1) 公益组织的员工在使用本系统时主要可以查看活动,发布活动,审核活动。
图5 组织端显示活动信息界面
图6 组织端活动发布界面
图7 组织端活动审核界面
全套毕业设计论文现成成品资料请咨询