ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

抽奖系统设计方案

2020-12-29 22:34:51  阅读:334  来源: 互联网

标签:抽奖 系统 用户 视图 设计方案 模块 软件


软件结构特点

软件架构风格和策略

本系统主要是对数据库进行操作,所以对于本系统的架构风格和策略采用CURD的比较适合。
CRUD 是创建(Create)、 读取(Read)、更新(Update)和删除(Delete)四种数据库持久化信息的基本操作的助记符,表示对于存储的信息可以进行这四种持久化操作。CRUD也代表了一种围绕中心化管理系统关键数据的软件架构风格。

设计模式

在本系统中,普通用户可以订阅某些其他的用户,当订阅的用户发布新的抽奖信息时,该用户应该能够收到抽奖信息更新的消息推送。很明显该需求存在一对多的关系,即一个发布者有多个订阅者,针对这一需求,考虑使用观察者模式。

观察者模式

意图:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。
主要解决:一个对象状态改变给其他对象通知的问题,而且要考虑到易用和低耦合,保证高度的协作。
何时使用:一个对象(目标对象)的状态发生改变,所有的依赖对象(观察者对象)都将得到通知,进行广播通知。
实现:观察者模式使用三个类 Subject、Observer 和 Client。Subject 对象带有绑定观察者到 Client 对象和从 Client 对象解绑观察者的方法。我们创建 Subject 类、Observer 抽象类和扩展了抽象类 Observer 的实体类。

软件系统概念原型

分解视图

分解是构建软件架构模型的关键步骤,分解视图也是描述软件架构模型的关键视图,一般分解视图呈现为较为明晰的分解结构(breakdown structure)特点。分解视图用软件模块勾划出系统结构,往往会通过不同抽象层级的软件模块形成层次化的结构。
本文章采用按不同的功能模块图来对系统进行分解。将系统分解为用户导航系统、用户注册系统、普通用户系统、管理员系统。系统的功能模块图:

依赖视图

依赖视图展现了软件模块之间的依赖关系,如果一个软件模块依赖另一个软件模块产生的数据,那么这两个软件模块也具有一定的依赖关系。比如它能帮助我们找到没有依赖关系的软件模块或子系统,以便独立开发和测试,同时进一步根据依赖关系确定开发和测试软件模块的先后次序。

泛化视图

泛化视图展现了软件模块之间的一般化或具体化的关系,典型的例子就是面向对象分析和设计方法中类之间的继承关系。泛化视图有助于描述软件的抽象层次,从而便于软件的扩展和维护。比如通过对象组合或继承很容易形成新的软件模块与原有的软件架构兼容。
在本系统中,普通用户和管理员都是系统的用户,所以可以抽象出用户类,在该类中定义用户的类型,基于这一设计,系统的管理员注册模块和普通用户的注册模块可以抽象出注册模块,而管理员和普通用户的注册是这一模块的具体实现。同理,系统的登录模块同样的道理。下图是注册模块的泛化视图。

执行视图

执行视图展示了系统运行时的时序结构特点,比如流程图、时序图等。执行视图中的每一个执行实体,一般称为组件(Component),都是不同于其他组件的执行实体。如果有相同或相似的执行实体那么就把它们合并成一个。
该系统主要是抽奖,下面是该系统用户抽奖的时序图。

实现视图

实现视图是描述软件架构与源文件之间的映射关系,这样典型的实现视图就可以由软件项目的源文件目录树来呈现。
本系统的文件目录树如下图所示

目录解释:

目录 用途
src/main/java Application /Library 的java源代码(再分package)
src/main/resources Application/Library 的资源文件,如多字符集boundle,位图,配置文件等(单独建立conf等子目录)
src/main/webapps Web 应用的网页,WEB-INF目录等所在
src/test/java 单元测试的源代码
src/test/resources 测试使用的资源文件,如集成测试脚本等
out maven编译目录,包含中间过程文件和最终的工件(如jar)
pom.xml Maven工程的配置文件,以此控制maven构建行为

对src/main/webapp目录做如下约定

目录 存放内容
css 存放.css格式文件(可再分目录)
images 存放图片,按产品、功能模块划分子目录
js JavaScript文件(对象、函数库)
include 存放被包含的JS文件片段【注:JSP文件互相不要包含,通过模板/组件/标签库/BEAN实现重用】
resources 存放JSF组件、相关资源等
pages 网页目录(静态和动态网页,除index.jsp),按产品、功能模块划分子目录
WEB-INF 网站配置文件目录,存放WEB.XML等配置信息
WEB-INF/classes 未打包的项目编译代码,禁止手工修改。
WEB-INF/conf 存放struts,spring,hibernate,JSF等的配置文件
WEB-INF/lib 存放第三方JAR包,使用MAVEN构建时此目录禁止手动放入文件!
WEB-INF/pages 高安全性的网页目录,如登录信息维护等

部署视图

部署视图是将执行实体和计算机资源建立映射关系。这里的执行实体的粒度要与所部署的计算机资源相匹配,比如以进程作为执行实体那么对应的计算机资源就是主机,这时应该描述进程对应主机所组成的网络拓扑结构,这样可以清晰地呈现进程间的网络通信和部署环境的网络结构特点。当然也可以用细粒度的执行实体对应处理器、存储器等。

工作分配视图

工作分配视图将系统分解成可独立完成的工作任务,以便分配给各项目团队和成员。工作分配视图有利于跟踪不同项目团队和成员的工作任务的进度,也有利于在个项目团队和成员之间合理地分配和调整项目资源,甚至在项目计划阶段工作分配视图对于进度规划、项目评估和经费预算都能起到有益的作用。
本系统小组成员有4人,工作分配视图如图所示

核心数据库设计

数据库的E-R图如下图所示

软件系统运行环境和技术选型

运行环境:本系统的服务端在Linux服务器上运行,用户在自己本地计算机上的浏览器进行登录访问。
数据库:本系统采用MySQL数据库,该数据库在速度、可靠性、适应性上都是较好的选择。
开发语言:java,Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。对于Web开发有得天独厚的优势。
前端框架:Vue
后端框架:Springboot
分布式框架:Dubbo和Zookeeper

系统概念原型的核心工作机制

用户成功登录系统后,可以进行查看自己的信息,以及发布自己的抽奖,对于之前的抽奖在开奖后系统会推送是否中奖等信息。用户也可以浏览现有的抽奖,以及进行抽奖等操作。
管理员登录系统后,可以查看当前有多少已经提交的抽奖信息,经过审核后可以对该抽奖进行发布,如果没有通过审核,可以通知用户具体哪里违反规定。同时可以检测用户的状态,设置用户的抽奖权限,以及抽奖次数等操作。

标签:抽奖,系统,用户,视图,设计方案,模块,软件
来源: https://www.cnblogs.com/chx-guo/p/14209041.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有