项目需求说明书
完成了需求说明书的编写
一、引言
1.1 编写背景
当前,公有云市场上存在多个主流云计算服务提供商,它们所提供的云主机的性能、价格等存在较多差异。为了更好地满足其计算需求并降低成本,用户在选择购买云主机的时候,需要多方进行比较。本项目正是在这样的背景下,设计、实现一个云主机服务比价与预测系统,一方面能够对多个不同的云计算服务厂商的云主机服务的价格、配置等信息进行抓取并以可视化的形式进行展示。另一方面,针对竞价型云主机服务(价格实时发生变化),基于某种机器学习或者深度学习算法,实现其价格的预测。具体地,本项目将主要面向阿里云和腾讯云,进行云主机服务价格的实时抓取及可视化比较。
1.2编写目的
该文档首先给出了整个系统的整体网络结构和功能结构的概貌,试图从总体架构上给出整个系统的轮廓,然后又对功能需求、性能需求和其它非功能性需求进行了详细的描述。其中对功能需求的描述采用了UML的用例模型方式,而且还给出了非常直观的用例图。这些文字和图形都为了本文档能详细准确地描述用户的需求,同时也为用户更容易地理解这些需求的描述创造了条件。
该文档详尽说明了这一软件产品的需求和规格,这些规格说明是进行设计的基础,也是编写测试用例和进行系统测试的主要依据。同时,该文档也是用户确定软件功能需求的主要依据。
1.3任务陈述
我们将我们的系统实现为Web系统,前端运用LayUI技术,后端运用SpringBoot框架。用户在首先页面中选择其对云主机的性能等要求,系统实时地到阿里云和腾讯云抓取相应云主机服务的价格,抓取到的数据一方面要展示给用户,另一方面要在后台实现结构化存储。
1.4任务目标
实现云主机系统的正常快速高效的运作。
在游客方面:
能够正常注册我们的网站
在客户方面:
保证客户能够正常的登录
保证客户能够进行比价查询
保证客户在比价查询之后能够将心仪的价格添加收藏
保证客户能够进行商品的历史价格查询
保证客户能够进行价格预测
保证客户能够对自己的收藏进行管理
保证客户能够浏览自己的收藏并且取消自己的收藏
保证用户能对自己浏览商品的历史记录进行查询
保证用户能够对自己的个人信息进行管理
保证用户能够修改自己的密码
在管理员方面:
保证管理员能够对用户进行管理
保证管理员能够查询用户的信息
保证管理员能够统计用户的信息。
二、总体规划
2.1系统边界
2.2运行环境
客户端:浏览器
数据库MySQL8.0+
服务器:Centos7.2+Tomcat(SpringBoot集成)
三、需求分析
3.1用户需求说明
3.1.1功能性需求
1.功能需求定义
本系统为云主机服务比价与预测系统,致力于对用户提供方便快捷的云主机比价服务。
对于多个云计算服务厂商的云服务器,系统对它们的价格、配置等信息进行抓取,并向用户以可视化的形式进行展示。同时,对于有意向使用竞价型云主机的用户,考虑到竞价型云主机价格随时变化的特点,系统采取机器学习算法,对云主机进行价格预测,帮助用户获得准确的竞价型云主机服务价格估计。
系统中的角色主要分为两种,分别是普通用户和系统管理员。普通用户首次访问时需要首先注册到系统中,方可访问和使用系统的比价、价格预测等操作与服务。系统管理员负责系统等管理职能,对用注册到系统的用户进行管理。
2.用户部分
用户注册和登录
-对于申请注册的用户,可通过设计用户名和密码注册到系统中。对于已经注册的用户,可通过输入正确的注册信息登录到云主机服务比价系统。
云主机价格比较
-用户进入比价模块后,可进行云主机价格的比较服务。用户需先选择期望的云主机相关配置信息。随后,系统通过爬虫的方式,从阿里云和腾讯云获取相应的云主机价格,根据用户选择的配置,将符合配置要求的主机价格对用户进行展示:
-最佳推荐方案:如存在与用户所查询的配置完全相符的云主机,则将该主机作为最优方案,生成最优方案的云主机价格及其他信息,向用户推荐;
-备用选择方案:如不存在与用户所查询的配置完全相符的云主机,则选取与用户所期望的配置相近的数种云主机作为备用方案,生成备用方案的云主机配置、价格及其他相关信息,向用户推荐。
-在对云主机进行比价操作时,用户可以对查询到的云主机信息进行收藏,包括该云主机的配置、价格等信息;对于用户已经进行过的比价查询操作,系统可以实现比价的历史记录查询。
-通过比价系统,用户还可查询某一云主机的历史价格。比价系统中存储有云主机服务的一系列相应历史价格,用户在选定云主机的特定配置后,可以选择查看该配置云主机的历史价格。
竞价型云主机服务价格预测
-系统可实现竞价型云主机的价格预测功能。对于阿里云的竞价型云主机服务,系统内存储有其竞价型云主机的历史价格,并通过机器学习的算法,实现对该竞价型云主机未来价格的预测,将预测结果以可视化的形式展示给用户。
3.管理员部分
-管理员登录
管理员通过输入管理员用户名和密码登录到系统中。
-用户管理
管理员登录到系统后,可以实现对用户信息的管理。管理员可以统计系统中的用户信息,管理员也可以通过系统来查询特定的某个注册用户。
3.1.2数据需求
等一份数据库设计
3.1.3事务需求
等一份数据库设计
3.2系统需求说明
3.2.1初始数据库大小
(等后端)
3.2.2数据库增长速度
(等后端)
3.2.3记录查找的类型和平均数量
(等后端)(全都是一天多少次)
- 查询云主机价格一天()次
- 查询云主机历史价格
- 某型号云主机预测价格
- 历史记录
- 收藏记录
3.2.4网络和共享需求
(等后端)例子:1. 所有用户必须安全的和总部中央数据库网络互连 - 必须能够支持至少20名成员同时访问.需要考虑这么大数量并发访问的许可需求
3.2.5 性能
(等后端)
例子:1.单个记录查询时间少于1秒,高峰期少于5秒 - 多个记录查询时间少于5秒,高峰期少于10秒
- 更新/保存记录时间少于1秒,高峰期少于5秒
3.2.6备份和恢复
每天()进行备份
3.2.7法律问题
对所有注册用户的信息进行管理,遵守法律
3.3其他非功能性需求
3.3.1安全性
1.数据安全:
a.程序启动需要经过MySQL登陆认证,登陆ID 和密码正确才能启动程序。
b.程序内部的任何会引起数据库改动的操作均经过了严密的审查判定,以确保数据库的准确性和一致性。
2.系统安全:
登陆需经过身份认证,即身份口令密码一致才可登录。
不同的用户有不同的权限,用户只能使用分配给他的权限,无法越权操作。
3.3.2可靠性
a) 对输入有提示,数据有检查,防止数据异常。
b) 系统健壮性强,应该能处理系统运行过程中出现的各种异常情况,如:人为操作错误、输入非法数据、硬件设备失败等,系统应该能正确的处理,恰当的回避。
c) 因软件系统的失效而造成不能完成业务的概率要小于5‰。
d) 要求系统7x24小时运行,全年持续运行故障停运时间累计不能超过10小时。(这个有吗)
e) 系统缺陷率每1,000小时最多发生1次故障。
3.3.3易用性
具有友好易用的用户界面及简单的操作方法,提供用户操作指南,保证用户上手简单
3.3.4可维护性
能够满足系统管理员对系统维护的需求,能够实现软件开发者对软件的进一步维护
3.3.5扩展性
能够满足软件开发者对软件功能进一步扩展的需求;因此需要特别注意面向对象几种模式的使用。
3.3.6可测试性
在需要时,可以通过相应的配置文件,实现内部关键信息的输出。输出目标也可以通过配置文件来配置。
3.4用例图
3.5用例流图
3.6界面设计
(等前端)