任务描述
从用户的角度阐述项目的开发背景、使用范围及功能需求,从而指导学生独立完成项目的设计与开发。
任务指导
目录
标题 | 内容 | 备注 |
---|---|---|
1. 项目概述 | 1.1 项目背景介绍 | (1)说明产品是什么,什么用途 (2)介绍产品的开发背景。提供需求方的组织概要,包括组织使命及业务目标 |
1. 项目概述 | 1.2 产品使用范围 | (1)描述软件产品的特征,对软件的功能进行简要说明 (2)描述软件产品"适用的领域"和"不适用的领域"(即,要做什么,不做什么) (3)说明软件应用,描述软件的相关的收益、目的和目标等 |
1. 项目概述 | 1.3 用户群体及角色 | (1)描述本产品面向的用户(客户、最终用户)的特征。 (2)根据用户的特征,按照功能、位置等识别每类用户,划分产品中定义的角色及其工作职责 |
1. 项目概述 | 1.4 项目运行环境说明 | (1)描述软硬件运行环境。包括硬件平台、操作系统和版本,以及服务器和数据库的地理位置 (2)列出系统必须和平共存的其他软件组件或应用程序 |
1. 项目概述 | 1.5 假设、依赖和约束 | (1)假设:在项目的生命周期中被认为是真的因素,如果这种假设改变,会对项目产生负面的影响,包括但不限于最终用户的特点,已知的技术基础设施、资源可用性等。 (2)依赖:在项目的范围和控制之外,并且为了项目取得成功而必须为真的情况。例如,一个应用程序依赖于一个不同的应用提供的数据或者第三方应用程序的接口 (3)约束:提供各种限制软件的范围和功能的因素的描述,包括但不限于行业标准与规范,业务规则,监管政策,基础设施的限制,资源和许可。 |
2. 产品功能性需求 | 2.1 整体业务流程 | 以结构化或面向对象的方法绘制出产品整体业务的流程图或用例图。 |
2. 产品功能性需求 | 2.2 功能性需求分类 | 将功能性需求进行粗分 |
2. 产品功能性需求 | 2.3 功能性需求详解 | 将功能性需求进行细分 |
3. 产品非功能性需求 | 3.1 用户界面需求 | 用户界面需求用于捕获应用程序的人机界面的预期行为。例如,用户通过显示终端操作,所需的屏幕内容,任何报告或菜单的内容,输入和输出的相对时间。 |
3. 产品非功能性需求 | 3.2 产品性能需求 | (1)涵盖设备的承受能力的量化标准,用于在规定的环境和其他条件下满足用户的需求,包括最低总寿命。说明了需要的持续运行时间以及计划的可用率 (2)运行的阶段和模式的性能需求,支持的终端数量,支持的并发用户数量 (3)在正常以及峰值负载的条件下,特定时间内可以处理的事务和任务以及数据量,在非正常的工作压力下可接受的性能 |
3. 产品非功能性需求 | 3.3 产品质量需求 | 质量特性的定义包括正确性、有效性、完整性/安全、可维护性、可移植性、可靠性、可重用性、可测试性、易用性等 |
4. 扩展功能性需求 | 4.1 扩展功能需求分类 | 描述不在前面需求章节中的任何其他的需求。如信息管理需求、安全需求,可以在此扩展 |
4. 扩展功能性需求 | 4.2 扩展功能需求详解 | 将扩展功能性需求进行细分 |
=============================华丽的分割===================================
1. 项目概述
1.1产品介绍
国内移动互联网进入快速发展阶段,但随着互联网公司介入及基于应用商店模式的终端厂商的快速加入,电信运营商出现数据业务收入增速放缓的困境,面临被管道化的威胁。同时随着移动互联网应用的普及化,电信运营商存储的数据规模从GB级迈向TB级甚至PB级。在商业竞争中,通过数据分析辅助经营已成为有效的手段,但传统的数据分析架构已经不能适应这种海量数据处理和快速、深度挖掘的需求。Hadoop这种大数据处理框架为解决上述问题提供了一种新的思路,在此背景下本系统的设计与实现作为某省电信大数据平台建设项目的预研。
1.2 产品范围
本项目主要根据真实数据来模拟生成电信数据,通过数据采集处理及分析帮助企业了解用户,挖掘数据内在联系,给企业精细化运营和新的商业模式发展提供数据支撑具有重要实际意义。
|----------|---------------------------------------------------------------------------------------------------------------|
| 产品特征 | 实时模拟真实数据,通过大数据平台进行收集、清洗、处理将结果存储到列式数据库中,通过Spring Frameword前端技术读取数据进行展示,能够提供更好的客户服务、优化运营效率和提高业务效益 |
| 适用领域 | 呼叫中心、营销和推广、故障诊断和维护 |
| 目标收益 | 提升客户满意度,可以实时分析和理解客户需求、行为和偏好,从而提供更加个性化和优质的客户服务。提高运营效率,大数据处理能力可以帮助优化电信客服流程。优化资源利用,通过精确的需求预测和个性化推荐,可以更好地配置和利用资源。 |
1.3用户群体及角色
角色名称 | 职责描述 |
---|---|
普通用户 | 客服代表、运营管理人员、数据分析师 |
管理员 | 同"普通用户" |
1.4 运行环境
需求名称 | 详细要求 |
---|---|
硬件环境 | 需要5台服务器或虚拟机:在5台服务上部署大数据集群,并使用其中1台用于发布 |
硬件配置 | 用于发布的主服务器建议配置:CPU 4核,内存 8G,硬盘 40G;其他服务器建议配置:CPU 2核,内存 4G,硬盘 40G |
操作系统 | 大数据集群服务器操作系统:CentOS 7 x64 |
开发工具 | 建议开发工具:Maven、IDEA |
1.5 假设、依赖和约束
|--------|-----------------------------------------------------|
| 假设 | 项目的开发环境和运行环境需要访问外网,请确保开发和运行环境可以访问外网 |
| 依赖 | 项目中会使用到报表组件和地图组件,这些组件为商业组件,在使用过程中可能会需要注册使用,并可能会产生费用 |
| 约束 | 高铁数据为重要敏感的隐私数据,虽然经过脱敏,但是在未经授权的情况下,禁止任何商业用途 |
2. 产品的功能性需求
2.1 整体业务流程
2.2 功能性需求分类
功能类别 | 子功能 |
---|---|
大数据环境准备(A) | A.1 准备项目开发运行的基础集群环境 |
大数据环境准备(A) | A.2 安装配置当前项目所需的大数据处理组件 |
大数据环境准备(A) | A.3 安装项目开发工具,并搭建项目的基础开发框架 |
呼叫数据模拟(B) | B.1 使用Java模拟模拟电信数据,输出到本地 |
数据采集/消费/存储(C) | C.1 采集模拟的本地数据到消息队列 |
数据采集/消费/存储(C) | C.2 动态拉取消费消息队列中的数据进行预处理 |
数据采集/消费/存储(C) | C.3 将结果数据进行持久化 |
数据分析(D) | D.1 创建结果对应的数据结构 |
数据分析(D) | D.2 依照需求对个维度进行分析 |
数据展示(E) | E.1 前台页面展示 |
2.2.A 大数据环境准备
A.1 准备项目开发运行的基础集群环境
项目开发测试环境为分布式集群环境,当前项目中使用多台基于CentOS 7的云主机来模拟生产环境。在生产环境中建议使用高性能物理主机或云主机搭建集群环境。
- 规划服务节点的功能和数量,以及网络分配情况
- 配置虚拟机的主机名称和网络,确保各主机之间可以通过主机名和IP互相ping通
- 配置各虚拟机之间可以SSH免密码连接
- 在各虚拟机上安装JDK并配置环境变量
A.2 安装配置当前项目所需的大数据处理组件
根据项目的用户需求和数据处理流程等判断,当前项目的大数据环境至少包括以下组件:
- ZooKeeper
- Hadoop HA
- HBase
- Hive
- Flume
- Kafka
A.3 安装项目开发工具,并搭建项目的基础开发框架
当前项目使用Maven + IDEA作为开发环境,需要根据实际情况安装配置相兼容的合适版本。
2.2.B 呼叫数据模拟
B.1 使用Java模拟模拟电信数据,输出到本地
掌握电信呼叫数据的数据结构,根据数据结构编写代码模拟数据后运行项目将数据存储至本地供后续步骤使用。
2.2.C 数据采集/消费/存储
C.1 采集模拟的本地数据到消息队列
启动ZooKeeper和Kafka,配置Flume将数据推送到Kafka。
C.2 动态拉取消费消息队列中的数据进行预处理
丛Kafka消费数据进行预处理
C.3 将结果数据进行持久化
为HBase的结果表添加协处理器,自动将持久化数据进行再处理
2.2.D 数据分析
D.1 创建结果对应的数据结构
在MySQL中为前端读取的数据创建结果表
D.2 依照需求对个维度进行分析
读取HBase中的数据根据结果表结构进行处理并保存至结果表
2.2.E 数据展示
E.1 前台页面展示
根据需求和开发前端展示页面,并完成对应的持久层功能
3. 产品的非功能性需求
3.1 用户界面需求
3.2 性能需求
主要性能属性 | 性能指标 |
---|---|
同时连接的终端数 | 300个 |
支持最大并发用户数 | 1000人 |
正常以及峰值负载条件下的性能 | |
正常的工作压力下可接受的性能 |
3.3 产品质量需求
主要质量属性 | 详细要求 |
---|---|
正确性 | 用户需求规格说明书中定义的功能全部正确实现 |
健壮性 | 根据测试用例进行测试,覆盖率达到90%以上 |
可靠性 | 项目持续运行至少3天,无异常 |
易用性 | 使用者找到所需功能入口的步骤深度不超过2层 |
安全性 | 权限认证机制,数据库安全,API调用安全 |
可扩展性 | 预留功能扩展接口 |
兼容性 | 浏览器同时兼容"谷歌"、"火狐"、"Edge",界面同时兼容电脑PC端和移动端 |
4. 扩展功能性需求
4.1 功能性需求分类
功能类别 | 子功能 |
---|---|
无 | 无 |