基于Node.js的社区系统の需求分析

一、简介

1.1 编写目的

本文档的编写目的是为基于Node.js的社区系统提供:

1.2 系统目标

二、总体概述

2.1 软件概述

2.1.1 项目介绍

本系统是一款快速、强大、拥有精美响应式布局的用户社区系统,基于Node.js技术开发,不臃肿、不复杂、不过度依赖。

2.1.2 相关技术

# Node.js
Node.js是一个能够在服务器端运行JavaScript的开放源代码、跨平台JavaScript运行环境。Node.js由Node.js基金会持有和维护,并与Linux基金会有合作关系。Node.js采用Google开发的V8运行代码,使用事件驱动、非阻塞和异步输入输出模型等技术来提高性能,可优化应用程序的传输量和规模。这些技术通常用于数据密集的事实应用程序。

Node.js大部分基本模块都用JavaScript语言编写。在Node.js出现之前,JavaScript通常作为客户端程序设计语言使用,以JavaScript写出的程序常在用户的浏览器上运行。Node.js的出现使JavaScript也能用于服务器端编程。Node.js含有一系列内置模块,使得程序可以脱离Apache HTTP Server或IIS,作为独立服务器运行。

# MySQL
MySQL原本是一个开放源代码的关系数据库管理系统,原开发者为瑞典的MySQL AB公司,该公司于2008年被昇阳微系统(Sun Microsystems)收购。2009年,甲骨文公司(Oracle)收购昇阳微系统公司,MySQL成为Oracle旗下产品。

MySQL在过去由于性能高、成本低、可靠性好,已经成为最流行的开源数据库,因此被广泛地应用在Internet上的中小型网站中。随着MySQL的不断成熟,它也逐渐用于更多大规模网站和应用,比如维基百科、Google和Facebook等网站。非常流行的开源软件组合LAMP中的“M”指的就是MySQL。

# Less
Less(或写作LESS)是一种由Alexis Sellier设计的动态层叠样式表语言,受Sass所影响,同时也影响了Sass的新语法:SCSS。

LESS是开源的,其第一个版本由Ruby写成,但在后续的版本当中,Ruby逐渐被替换为JavaScript。受益于JavaScript,LESS可以在客户端上运行(IE6+、Webkit、Firefox),也可以在服务端运行(Node.js、Rhino)。

在语法方面,LESS与CSS较为接近,一个合法的CSS代码段本身也是一段合法的LESS代码段。LESS提供变量、嵌套、混合、操作符、函数等一般编程所需的抽象机制。

# MDUI
MDUI是一款轻量级、多主题、响应式、无依赖的基于 Material Design 的前端框架。CSS 文件仅 26.7KB(minified + gzip),JavaScript 文件仅 14KB(minified + gzip)。CSS 文件中已经包含了 19种主色主题、16种强调色主题、1种夜间主题,只需添加一个 CSS 类,即可实现主题的切换。移动端设备优先,可适配所有屏幕。MDUI 使用纯 JavaScript 编写,没有任何依赖。

2.1.3 环境介绍

软件环境

客户端: IE8+ / Chrome / Firefox / Safari / Edge
服务端: Ubuntu 17.10 / Nodejs运行时环境。
数据库: MySQL运行于服务器端。

硬件环境

服务器 CPU:CORE I3 以上,内存:4GB 以上。
客户机 CPU:CORE I3 以上,内存:2GB 以上。

2.2 软件功能

三、系统分析

3.1 数据流图

数据流图

3.2 子系统关系图

子系统关系图

3.3 用户用例图

用户用例图

3.4 管理员用例图

管理员用例图

四、总体设计

4.1 功能需求

4.2 非功能需求