草庐IT

【系统分析与设计】高校学生社团管理系统

Huang Zenan 2023-12-23 原文

目录

一. 业务现状调查

1.1业务背景

学生社团是高校内的一个以拓展学生业余兴趣爱好的组织。社团在大学生校园生活里起着关键作用,它不仅为学生们提供了一个尽情展现才华的舞台,还有效提高了学生自身的沟通能力、组织能力及团队协作能力。
高校社团文化日渐丰富,随之而来的是愈加繁琐的社团事务,使管理学生社团的工作变得不再轻松。为了提高社团管理的办事效率以及节约人力、物力资源,随着信息管理系统的发展,我们可以根据高校学生社团管理的需求来设计开发一个系统来提高学校社联对社团的管理效率。采用先进的管理手段对社团活动进行有效的管理是目前高校社团亟需解决的问题。

1.2业务概况

本系统主要包括:社联管理员、社团社长、学生、游客四个主要角色。
管理员角色主要实现了站内新闻管理、在线互动管理、社团管理、用户管理等功能模块的管理。社长角色主要实现活动信息发布、社团信息编辑、申请审批、管理社团成员等功能模块。学生角色主要实现了浏览网站(简介、站内新闻、社团、社团活动)、申请社团,在线互动等功能模块。游客角色则实现了浏览网站简介及社团概况等功能。
前端页面展示:用户在注册登录前可以查看各类社团的概况,以及各社团即将举行的各种活动的活动公告。用户在进行注册登录后可以查看、修改个人信息、密码,可以在社团活动页留言,可以申请加入社团或是申请创建社团等等。管理员在管理员端口登录后,可进入后台管理系统进行社团管理。

1.3业务目标

学生社团管理系统将逐渐取代传统的人工管理模式。该系统可以对社团工作进行快速、高效的管理,为社团之间和社团成员之间提供一个良好的信息交流的平台,让社团成员可以展示自己的风采,让在校学生及时了解社团的新动态,营造一个现代化的学习生活环境,方便学校管理社团组织,有效提升社团的管理水平。

1.4可行性分析

  1. 技术上,系统设计部分使用IBM Rational Rose Enterprise Edition工具对系统进行UML设计。系统开发部分采用JSP技术和SQL Server数据库软件。为了解决高校学生社团管理系统的相关问题,该系统应提供一个简单,清晰的层次结构及用户界面,作为操作的便利性及实用性保证。
  2. 资金上,该社团管理系统的运营成本较之原本传统的纸质办公管理有着极大的优势。只需要一台电脑就可以管理整个学校的社团,降低了社团管理过程的办公成本。网站的日常运作及维护也不需要太多的物资资金,极大的减少了学校在社团管理上所耗费的时间、金钱成本,具备可行性。
  3. 管理上,高校社团主要由指导老师以及社团联合会监管,但往往这些社团管理人员缺乏一定的管理系统运行及维护知识,所以需要专业的信息管理系统人员提供技术支持及保障,再通过由社团联合会及校方组成的管理人员进行日常的社团管理。社联管理人员只需学会操作运用管理社团功能,具备可行性。

二. 业务需求分析

2.1涉众分析

2.1.1涉众概要

(1)游客:首页查看社团概要,以及各社团活动时间、地点、标题等公告,可通过注册成为学生用户。
(2)学生:登陆后可以修改个人信息,可在社团活动页留言,可以申请加入社团,或申请创建社团。
(3)社团社长:可登陆进该系统,进行社团简介,分类修改,查看相关的留言,查看社团活动的参与情况,审核学生加入自己的社团,可向社联管理人员发送活动申请。
(4)管理员:可登陆后台,进行用户管理,添加用户(修改用户的密码或权限),更新当前账号密码、查看用户列表(可以查看用户详细信息及加入或创建的社团信息)。社团管理,对社团信息进行增删改查;审核管理,创建社团审批,创办活动审批,审核管理活动区的图文和视频;添加社联新闻,更新社联新闻。

2.1.2涉众简档



2.2业务边界

2.3业务用例分析

2.3.1获取业务用例

(1) 游客用例关系

(2) 学生用例关系

(3) 社团社长用例关系

(4) 管理员用例关系

2.3.2业务用例场景实现

(1) 用户注册、登录业务用例场景分析

业务用例场景说明:
① 用户注册:用户通过社团管理系统进行注册,需要填写用户名、密码、姓名、班级、重复密码、验证码等信息。创建过程中,需要验证用户名,若符合要求则提示创建成功,若不符合要求则弹出“用户名已被注册,请重新输入”。
② 用户登录:系统初始页面,输入用户名及密码后便可登录进社团系统。

(2) 查询业务用例场景分析

业务用例场景说明:
① 社团查询:用户通过搜索社团编号、社团名称查询社团信息。
② 用户查询:社联管理员有权限对社团用户进行查找。若验证失败,用户可以继续查询或结束查询,若验证成功,则显示查询的结果。

(3) 活动业务用例场景分析

业务用例场景说明:
社团提交活动申请,管理员审批通过后,社团可在社团活动公告栏宣传,用户登陆后通过线上报名参加活动,社团高层可以查看社团活动的参与情况,并修改活动信息。核对信息后管理员更新活动库,存储信息,用例结束。

(4) 社团管理业务用例场景分析

业务用例场景说明:
社团管理人员可以修改社团成员名单,根据权限的不同可以对社团成员进行添加、删除、修改、查询。若查出不满足条件,则显示错误提示,社团管理层需重新核对或取消操作;若满足条件,由管理员更新社团信息,结束用例。

2.3.3业务用例规约

(1) 查询业务用例规约

(2) 社团活动用例规约

(3) 社团用户管理用例规约

(4) 其他业务用例规约





2.3.4业务规则

(1) 全局规则

(2) 交互规则

(3) 内禀规则


三、概念模型构建

3.1概念用例分析

社员首先进行登录,登录成功后,查看自己的信息。如果需要对个人信息进行修改的话,向服务器发出请求,服务器返回修改表单,用户填写之后,服务器保存新的用户信息。
时序图是一种详细地表示对象之间行为关系的图。一个顺序图通常只描绘一组相互协作的对象在完成一项功能时彼此之间的交互情况。它按时间顺序把各个对象所执行的操作以及它们之间所传送的消息展现出来,因此可以清晰而直观地表示对象之间的行为关系以及操作和消息的时序关系。

3.2概念(分析)类及关联关系


图1 新增社团时序图

图2 学生用户登录时序图

3.3分析类场景图


图1 社联管理员类图

图2 社团管理系统总类图

3.4分析类对象交互模型


四、系统分析

4.1系统边界

4.2用户分析

4.2.1用户概要

4.2.2用户简档

4.3系统用例分析

4.3.1从分析结果中找出边界对象,控制对象和实体对象

 查看
系统外部发出的指令,需要使用边界对象来接收。
 显示社团信息
程序处理逻辑,需要用控制对象来处理,并且将结果反映到边界对象。
 创建新申请
系统外部发出的指令,需要使用边界对象来接收。
 展示申请新界面
程序处理逻辑,需要用控制对象来处理,并且将结果反映到边界对象。
 录入社团数据表
系统活动,录入社团数据表是单实体对象。
 提交申请
系统外部发出的指令,需要使用边界对象来接收。
 校验数据准确性
这是一条内禀规则,有控制对象来处理。
 生成编号
程序处理逻辑,需要用控制对象来处理,编号只是单对象的一个属性,作为单独实体对象。
 保存
程序处理逻辑,需要用控制对象来处理,单是一个合适的实体对象,他封装了我们要处理的业务数据。
 显示信息
程序处理逻辑,需要用控制对象来处理,并且将结果反映到边界对象。

4.4系统对象交互模型

4.4.1活动内部系统用例

4.4.2活动外部系统用例

4.5系统用例规约


图1 历史数据管理框架

图2 查询历史数据过程

将UML建模应用于社团管理系统中,可以提高社团的工作效率。通过UML建模工具的使用,分别从静态和动态的抽象描述中构建出满足软件功能要求的软件模型,为应用UML建模技术进行面向对象软件开发提供了参考范例和借鉴,加快了软件开发进程,提高了软件开发工作效率。

五、系统设计

5.1系统架构与部署设计

5.1.1软件架构及层次构成


软件架构展示了表示层、控制层、业务逻辑层和数据持久层四个软件层次,现在我们逐个分析这些分析类所在的层次,以及当软件架构引入以后分析模型的变化情况。建立用例实现模型时,得到用例分析类图。

 社团活动边界位于web层。
 查询控制用于处理业务逻辑,它应属于businessController层。
 工作引擎是软件架构的一个组成部分,与工作流引擎交流的类似登记控制,因此,工作流引擎接口也应位于bussinessController层。
 rule接口是业务规则框架的接口。同样它是与登记控制交互的,它也位于bussiness Controller层。
 社团信息单较为特殊,数据不同的层次有不同的表现形式。在web和business Controller层,数据是以vo的形式存在的,在entity层当中,vo被转换成po。两种都是单的实例,位于不同的软件层次,被不同的层次使用,并经由entity层进行转换。

5.1.2 web层分析模型实现

5.1.3 businessController层分析模型实现和分析类图


5.1.4 entity层分析模型实现和分析类图

5.2包设计



5.3接口设计


图1 单个对象接口→实现设计示例

即使这些类由于处理特定业务逻辑而没有抽象价值,但是可以将它设计为“接口→实现”的形式,保留替换编号生成实现类的可能性。如果有不同类型的申请需要不同算法的编号生成器时,可以为该接口编写Impl1、Impl2等实现类,而其它业务程序仍然可使用ApplyGenerator的getNewId()方法。


图2 具有相似行为的对象接口设计示例

实体对象实现的不是一个接口,而是一个虚类PO,具体的实体对象与虚类PO之间是继承关系。但由于虚类中的add()、modify()、delete()等方法是虚方法,这些方法是没有实现的,它的作用是约束其子类必须实现这些方法,作用和接口一样,将相同的行为提取出来形成接口,这样,在业务程序中我们就可以使用相同的方式来处理不同的实体对象。

5.4系统对象设计


图1 B/S模型三层体系结构
该学生社团管理系统采用B/S(Browser/Server)架构,对数据库的操作和功能实现都在服务器端完成,客户端只需要登录浏览器操作即可,大大简化了系统的使用。其中Web服务器、数据库服务器和浏览器之间的关系如图所示。
MVC框架期初是存在于开发桌面程序中的,M是:业务模型,V是:用户界面,C是:控制器,MVC框架的作用是将静态页面与JAVA代码分离出来,由此提高程序的使用效率和代码的可重复性使用,可以让一个界面实现不同的功能。
视图简单的来说就是与用户进行交互的页面。在现在Web网页当中,HTML代码在页面开发中占据着重要的角色,目前新的技术开始慢慢的躲起来,例如包括Adobe Flash、XML、XSL等标识语言和Web services。MVC能处理不同的应用程序的视图。然后在处理事务当中,视图并没有在其中真正的发生。
模型代表数据和业务逻辑。MVC用类似于EJBs、ColdFusion Components的组件对象来处理数据库,模型返回的数据是相对中立的,模型和数据库格式是没有相关性的,因此一个模型能为多个视图提供数据,由于应用模型源码只需开发者写一次就可以被多个视图重用,所以减少了代码的重复性。
控制器就是读取用户的请求并协同模型和视图去完成请求,所以当使用者单击Web页面中的超链接或者提交FROM表单时,控制器不需要输出任何的处理要求和处理任务。

5.5数据库设计

5.5.1系统架构类图


图1 系统架构类图

将包图展开,得到类图,它是架构的静态结构图,表达了各个类之间的静态联系。学生社团管理系统架构类图如下图所示。

5.5.2系统架构类交互图

工作流程的系统架构:
1、在接收到用户输入的请求后,用户界面的对象,将请求发送到服务代理对象的处理。
2、接收到请求业务代理对象后,受请求管理权被发送到验证权限。
3、对象管理权,以验证授权将验证回到代理业务对象的结果。

5.5.3系统架构类时序图

5.5.4系统协作图

按照时间和空间的顺序来描述该系统的元件之间的相互作用的协作图。根据成员节介绍管理员来创建用户时序图,如图3.5所示管理员下方创建用户协作图。

5.5.5系统状态图

用户管理模块,主要用户创建,修改用户信息,查看用户信息等三个状态,这三种状态的完成过程是非常相似的,所以下面是给管理员刚创建如用户状态图。

5.5.6系统活动图

活动图是活动的描述是一起工作。当必须完成的一系列事情的操作,但不能确定在什么为了实现这些东西,活动图可以更清楚地说明这个问题。用户管理模块,主要是与用户的活动相关联。首先以管理员身份登录和查看用户信息,如果需要添加新用户;您也可以更改用户加入;在同一时间可以查询被添加到该用户的信息相关的和其他活动。活动系统管理员完成后退出管理活动下图。

5.5.7数据库建表

六、 系统实现

6.1系统开发环境

6.2数据库实现

6.3主要模块核心代码实现

七、 系统测试

7.1注册登陆


7.2新闻栏目


7.3浏览社团


7.4留言互动


7.5社团申请

7.6管理员后台登录

7.7新闻、留言栏管理

7.8社团管理

7.9学生管理

7.10角色管理

7.11活动管理

有关【系统分析与设计】高校学生社团管理系统的更多相关文章

  1. ruby - i18n Assets 管理/翻译 UI - 2

    我正在使用i18n从头开始​​构建一个多语言网络应用程序,虽然我自己可以处理一大堆yml文件,但我说的语言(非常)有限,最终我想寻求外部帮助帮助。我想知道这里是否有人在使用UI插件/gem(与django上的django-rosetta不同)来处理多个翻译器,其中一些翻译器不愿意或无法处理存储库中的100多个文件,处理语言数据。谢谢&问候,安德拉斯(如果您已经在ruby​​onrails-talk上遇到了这个问题,我们深表歉意) 最佳答案 有一个rails3branchofthetolkgem在github上。您可以通过在Gemfi

  2. ruby-on-rails - Rails - 子类化模型的设计模式是什么? - 2

    我有一个模型:classItem项目有一个属性“商店”基于存储的值,我希望Item对象对特定方法具有不同的行为。Rails中是否有针对此的通用设计模式?如果方法中没有大的if-else语句,这是如何干净利落地完成的? 最佳答案 通常通过Single-TableInheritance. 关于ruby-on-rails-Rails-子类化模型的设计模式是什么?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.co

  3. ruby-on-rails - 使用 rails 4 设计而不更新用户 - 2

    我将应用程序升级到Rails4,一切正常。我可以登录并转到我的编辑页面。也更新了观点。使用标准View时,用户会更新。但是当我添加例如字段:name时,它​​不会在表单中更新。使用devise3.1.1和gem'protected_attributes'我需要在设备或数据库上运行某种更新命令吗?我也搜索过这个地方,找到了许多不同的解决方案,但没有一个会更新我的用户字段。我没有添加任何自定义字段。 最佳答案 如果您想允许额外的参数,您可以在ApplicationController中使用beforefilter,因为Rails4将参数

  4. ruby-on-rails - 获取 inf-ruby 以使用 ruby​​ 版本管理器 (rvm) - 2

    我安装了ruby​​版本管理器,并将RVM安装的ruby​​实现设置为默认值,这样'哪个ruby'显示'~/.rvm/ruby-1.8.6-p383/bin/ruby'但是当我在emacs中打开inf-ruby缓冲区时,它使用安装在/usr/bin中的ruby​​。有没有办法让emacs像shell一样尊重ruby​​的路径?谢谢! 最佳答案 我创建了一个emacs扩展来将rvm集成到emacs中。如果您有兴趣,可以在这里获取:http://github.com/senny/rvm.el

  5. ruby-on-rails - 事件管理员日期过滤器日期格式自定义 - 2

    是否有简单的方法来更改默认ISO格式(yyyy-mm-dd)的ActiveAdmin日期过滤器显示格式? 最佳答案 您可以像这样为日期选择器提供额外的选项,而不是覆盖js:=f.input:my_date,as::datepicker,datepicker_options:{dateFormat:"mm/dd/yy"} 关于ruby-on-rails-事件管理员日期过滤器日期格式自定义,我们在StackOverflow上找到一个类似的问题: https://s

  6. 电脑0x0000001A蓝屏错误怎么U盘重装系统教学 - 2

      电脑0x0000001A蓝屏错误怎么U盘重装系统教学分享。有用户电脑开机之后遇到了系统蓝屏的情况。系统蓝屏问题很多时候都是系统bug,只有通过重装系统来进行解决。那么蓝屏问题如何通过U盘重装新系统来解决呢?来看看以下的详细操作方法教学吧。  准备工作:  1、U盘一个(尽量使用8G以上的U盘)。  2、一台正常联网可使用的电脑。  3、ghost或ISO系统镜像文件(Win10系统下载_Win10专业版_windows10正式版下载-系统之家)。  4、在本页面下载U盘启动盘制作工具:系统之家U盘启动工具。  U盘启动盘制作步骤:  注意:制作期间,U盘会被格式化,因此U盘中的重要文件请注

  7. 【鸿蒙应用开发系列】- 获取系统设备信息以及版本API兼容调用方式 - 2

    在应用开发中,有时候我们需要获取系统的设备信息,用于数据上报和行为分析。那在鸿蒙系统中,我们应该怎么去获取设备的系统信息呢,比如说获取手机的系统版本号、手机的制造商、手机型号等数据。1、获取方式这里分为两种情况,一种是设备信息的获取,一种是系统信息的获取。1.1、获取设备信息获取设备信息,鸿蒙的SDK包为我们提供了DeviceInfo类,通过该类的一些静态方法,可以获取设备信息,DeviceInfo类的包路径为:ohos.system.DeviceInfo.具体的方法如下:ModifierandTypeMethodDescriptionstatic StringgetAbiList​()Obt

  8. LC滤波器设计学习笔记(一)滤波电路入门 - 2

    目录前言滤波电路科普主要分类实际情况单位的概念常用评价参数函数型滤波器简单分析滤波电路构成低通滤波器RC低通滤波器RL低通滤波器高通滤波器RC高通滤波器RL高通滤波器部分摘自《LC滤波器设计与制作》,侵权删。前言最近需要学习放大电路和滤波电路,但是由于只在之前做音乐频谱分析仪的时候简单了解过一点点运放,所以也是相当从零开始学习了。滤波电路科普主要分类滤波器:主要是从不同频率的成分中提取出特定频率的信号。有源滤波器:由RC元件与运算放大器组成的滤波器。可滤除某一次或多次谐波,最普通易于采用的无源滤波器结构是将电感与电容串联,可对主要次谐波(3、5、7)构成低阻抗旁路。无源滤波器:无源滤波器,又称

  9. 计算机毕业设计ssm+vue基本微信小程序的小学生兴趣延时班预约小程序 - 2

    项目介绍随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱小学生兴趣延时班预约小程序的设计与开发被用户普遍使用,为方便用户能够可以随时进行小学生兴趣延时班预约小程序的设计与开发的数据信息管理,特开发了小程序的设计与开发的管理系统。小学生兴趣延时班预约小程序的设计与开发的开发利用现有的成熟技术参考,以源代码为模板,分析功能调整与小学生兴趣延时班预约小程序的设计与开发的实际需求相结合,讨论了小学生兴趣延时班预约小程序的设计与开发的使用。开发环境开发说明:前端使用微信微信小程序开发工具:后端使用ssm:VU

  10. kvm虚拟机安装centos7基于ubuntu20.04系统 - 2

    需求:要创建虚拟机,就需要给他提供一个虚拟的磁盘,我们就在/opt目录下创建一个10G大小的raw格式的虚拟磁盘CentOS-7-x86_64.raw命令格式:qemu-imgcreate-f磁盘格式磁盘名称磁盘大小qemu-imgcreate-f磁盘格式-o?1.创建磁盘qemu-imgcreate-fraw/opt/CentOS-7-x86_64.raw10G执行效果#ls/opt/CentOS-7-x86_64.raw2.安装虚拟机使用virt-install命令,基于我们提供的系统镜像和虚拟磁盘来创建一个虚拟机,另外在创建虚拟机之前,提前打开vnc客户端,在创建虚拟机的时候,通过vnc

随机推荐