软件系统设计方案——以抽奖系统为例

软件系统设计方案——以抽奖系统为例

一、项目概述

该系统为一个抽奖系统,用户可以进行通过微信登录,查看中奖信息,抽奖等功能,能够支持一定的并发量。抽奖界面可以显示中奖用户的滚动名单。

管理员记录用户的信息,根据奖品个数动态调整抽奖概率。管理员界面支持添加奖项和奖品个数功能。

二、系统架构

MVC模式通常用开发具有人机交互界面的软件,这类软件的最大特点就是用户界面容易随着需求变更而发生改变,例如,当你要扩展一个应用程序的功能时,通常需要修改菜单和添加页面来反映这种变化。如果用户界面和核心功能逻辑紧密耦合在一起,要扩展功能通常是非常困难的,因为任何改动很容易在其他功能上产生错误。
为了包容需求上的变化而导致的用户界面的修改不会影响软件的核心功能代码,可以采用将模型(Model)、视图(View)和控制器(Controller)相分离的思想。采用MVC设计模式的话往往决定了整个软件的主体结构,因此我们称该软件为MVC架构。

我们用一张图直观地描述它们三者之间的关系。

image-20201230144149808

三、系统运行环境和技术选型说明

本项目采用node.js和express框架,实现mvc框架模式的开发。

Node(正式名称 Node.js)是一个开源的、跨平台的运行时环境,有了它,开发人员可以使用 JavaScript 创建各种服务器端工具和应用程序。此运行时主要用于浏览器上下文之外(即可以直接运行于计算机或服务器操作系统上)。据此,该环境省略了一些浏览器专用的 JavaScript API,同时添加了对更传统的 OS API(比如 HTTP 库和文件系统库)的支持。

Express 是一个简洁而灵活的 node.js Web应用框架, 提供了一系列强大特性帮助你创建各种 Web 应用,和丰富的 HTTP 工具。使用 Express 可以快速地搭建一个完整功能的网站。

express的特性:

1.可以设置中间件来响应 HTTP 请求。

2.定义了路由表用于执行不同的 HTTP 请求动作。

3.可以通过向模板传递参数来动态渲染 HTML 页面。

为实现抽奖用户通过微信信息进行验证,我们还需要查阅微信开发文档。微信小程序开发文档是微信提供的一个学习文档,里面包括了组件,框架,以及相关的API。我们可以通过调用相关的api得到自己想要的功能,例如请求服务器的api,获取用户信息的api。也有一些关于云函数以及数据库操作的教程,这些都可以让开发人员尽快的上手小程序开发,为我们开发带来的便携性。

四、软件系统概念原型视图

分解视图

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

image-20201230181704639

依赖视图

依赖视图展现了软件模块之间的依赖关系。比如一个软件模块A调用了另一个软件模块B,那么我们说软件模块A直接依赖软件模块B。如果一个软件模块依赖另一个软件模块产生的数据,那么这两个软件模块也具有一定的依赖关系。
依赖视图在项目计划中有比较典型的应用。比如它能帮助我们找到没有依赖关系的软件模块或子系统,以便独立开发和测试,同时进一步根据依赖关系确定开发和测试软件模块的先后次序。
image-20201230222943035

执行视图

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

image-20201230224032273

实现视图

实现视图是描述软件架构与源文件之间的映射关系。比如软件架构的静态结构以包图或设计类图的方式来描述,但是这些包和类都是在哪些目录的哪些源文件中具体实现的呢?一般我们通过目录和源文件的命名来对应软件架构中的包、类等静态结构单元,这样典型的实现视图就可以由软件项目的源文件目录树来呈现。

本系统的文件目录树如下图所示

image-20201231110108684

部署视图

image-20210103150842571

数据库设计
  • 奖品模型

    image-20210103151236614

  • 用户模型

    image-20210103151245087

  • 奖项模型

    image-20210103151304025

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

管理员发布抽奖活动,设置奖项细节,抽奖用户进行抽奖,抽奖执行系统将抽奖结果返回给用户,中奖信息写入中奖榜单。

管理员查看中奖榜单,对中奖用户发送相应奖品。

参考资料:https://gitee.com/mengning997/se/tree/master/ppt
posted @ 2020-12-30 18:53    阅读(497)  评论(0编辑  收藏  举报