FTP文件管理项目(本地云)实战指南

文章目录

  • 1、文档介绍
    • 1.1 文档目的
    • 1.2 文档范围
    • 1.3 读者对象
    • 1.4 文档版权
  • 2、项目介绍
    • 2.1项目名称
    • 2.2项目组成
    • 2.3项目必备知识体系
  • 3、功能性需求
    • 3.1功能汇总
  • 4、非功能性需求
  • 5、系统总体设计
    • 5.1系统总体框架(参考)
    • 5.2接入服务器逻辑结构(参考)
    • 5.3本地云客户端逻辑结构(参考)
  • 6、通信程序关键流程设计
    • 6.1 断线重连处理
    • 6.2 粘包/半包检测与处理
    • 6.3 文件缺失检测与处理
  • 7、立项标准
    • 7.1 项目小组
    • 7.2 开发周期要求
    • 7.3 编码规范要求
  • 8、考核标准
    • 8.1 项目总分为100分,各个模块考核比重如下:
    • 8.2 开发进度考核标准
    • 8.3 功能考核标准
      • 8.3.1 客户端
      • 8.3.2 服务器
      • 8.3.3 压力测试
    • 8.4 结项考核标准
    • 8.5 日常考核标准

1、文档介绍

1.1 文档目的

本项目建立在《Linux高级开发基础》学习的相关知识体系的基础上,以系统全面的应用所学知识为出发点,设计一个学生阶段的学习项目,让学生可以全面应用、巩固、提升阶段的学习内容,在项目实战的过程中将知识体系贯穿起来,融汇贯通,积累项目开发经验,并通过项目检验阶段的学习成果。

本文档从功能需求的角度,在以知识体系全面应用的目标为指导下,详细的描述了项目开发锋功能需求以及功能约束内容,为项目实战的学生和评测团队提供一个详细的功能需求说明文档。

1.2 文档范围

本文档描述了项目的功能需求,各个功能设计目标,概要设计目标,概要设计,设计约束及各种人机交互的格式要求。

1.3 读者对象

参与项目开发的学生,参与评测的团队,以及其他想要了解本项目的读者。

1.4 文档版权

本文档属于CSDN博主“看,未来”所有,如需转载,请私信我。

2、项目介绍

2.1项目名称

项目名称:本地云。

2.2项目组成

本项目实现了基于局域网的文件传输与管理功能。该项目由本地云服务器、本地云客户端、本地云测试程序三部分组成。
基于TCP Socket 封装了通信组件、动态数组等技术的前端通信框架,以及基于FTP协议、数据库技术和线程池等技术的后台处理系统框架。
项目采用团队开发模式,成员不仅在项目实战中应用技术,积累项目经验又积累了团队配合的经验。

2.3项目必备知识体系

通过学习,参与项目的成员应该掌握以下技术:

多进程或多线程开发技术
进程间通信:信号、管道、消息队列、共享内存、TCP分布式通信等
多进程与多线程之间的同步技术:信号量、互斥、条件变量等
重点掌握了SOCKET API 以及了解TCP/IP协议模型
重点掌握Linux下文件管理系统
重点掌握FTP协议模型
掌握UI设计
熟练使用数据库技术

3、功能性需求

3.1功能汇总

模块名 功能类别 子功能
本地云客户端 系统启动 本地云启动,初始化界面,软件版本以及其他初始化数据同步
用户注册 用户输入用户名、密码、密保手机号,注册一个新账号
用户登录 用户输入用户名、密码,登录到服务器获取用户储存的文件列表
修改密码 用户输入用户名、旧密码、新密码,完成修改密码
找回密码 用户输入用户名、密保手机,发送到服务器获取密码
文件列表 获取当前文件夹下应该出现的文件列表
文件上传 上传文件到指定文件夹
文件下载 从指定文件夹下载文件
本地下载文件管理 下载之后的文件应由本地文件夹管理
通信纪录 文件上传纪录、下载纪录获取
文件共享 生成链接与提取码,可将文件分享给其他用户
系统设置 配置服务的ip地址与端口等设置
本地云服务器 用户接入 接收客户端的连接,管理客户端信息
各业务处理 处理客户端的各类型业务
心跳处理 各组自定义
文件管理 对客户传输的文件进行管理
数据库设计与应用 各组自定义,服务于文件管理
并发负载 初始化30的处理线程
日志 每天生成一个运行日志,包括业务处理、运行情况、故障记录等
压力测试程序 单客户单业务测试 主要测试服务器单笔业务的处理能力和数据准确性
多客户多业务 不同种类业务,测试服务器吞吐量
测试报告 给出关键参数和测试结果,如:业务成功数、失败数、业务类型等
压力参数设置 每次测试时,用户可以自定义测试时长、业务类型、模拟客户端数等,并能保存到参数文件中
测试日志 记录每次测试结果,每天生成一个

4、非功能性需求

功能类别 功能说明
万级并发 要求一台服务器能够承受10000台以上的连接数接入
大并发业务 要求一台服务器能承受200-300并发业务处理
分布架构 采用TCP流协议进行进程间通信
系统拓展性 能够在尽量不修改源代码的前提下,拓展业务
系统安全 承受一些非法操作的轰炸

5、系统总体设计

5.1系统总体框架(参考)

FTP文件管理项目(本地云)实战指南_第1张图片

5.2接入服务器逻辑结构(参考)

FTP文件管理项目(本地云)实战指南_第2张图片

5.3本地云客户端逻辑结构(参考)

FTP文件管理项目(本地云)实战指南_第3张图片

6、通信程序关键流程设计

6.1 断线重连处理

设备开机后,设备与服务器保持长连接,由于种种原因,中间过程可能发生断线,服务器需要侦测到断线情况,客户端监测到断线需要在UI界面上提示断线。

6.2 粘包/半包检测与处理

在TCP传输过程中,可能出现两笔业务出现粘包,需要注意区分。解决方案:包头+包体+包尾。

6.3 文件缺失检测与处理

文件传输过程中若出现传输中断,需要进行妥善处理。

7、立项标准

7.1 项目小组

本项目为团队开发项目,意在让队员能够体会团队开发的过程以及能在过程中积累团队配合的经验。
为了保证每个人的代码量和过程中应用技术的水平,建议每个团队人数在2-3人,最佳组合是3人。
其中一人为开发组长,协调组员开发以及进度控制。

7.2 开发周期要求

本项目开发的总周期为12个工作日,具体几个阶段的开发时间分配如下

阶段名称 占用时间
项目规划 2天
项目编码 7天
项目联调 2天
项目总结 1天

7.3 编码规范要求

(1)源码布局规范
(2)变量命名规范
(3)函数命名规范
(4)类型定义规范
(5)注释规范

为了后期复盘,也为了能让别人看懂。

8、考核标准

8.1 项目总分为100分,各个模块考核比重如下:

项目名称 考核比重
开发进度 6%
系统设计 10%
功能模块 74%
代码规范 5%
项目总结 10%
工作日报 5%

8.2 开发进度考核标准

延期一天3分。

8.3 功能考核标准

8.3.1 客户端

功能名称 考核比重
网络连接 20%
UI设计 15%
收发文件 20%
文件管理 20%
用户基础功能 15%
团队协作 10%

8.3.2 服务器

用户连接 15%
文件收发 20%
文件管理 30%
数据库设计 15%
交易日志 10%
成员合作 10%

非功能性需求不作为加分项。

8.3.3 压力测试

UI界面设置 20%
日志信息 20%
单客户 15%
多客户 35%
团队合作 10%

8.4 结项考核标准

项目总体介绍
项目亮点介绍
项目不足与改进
项目心得体会
答辩

8.5 日常考核标准

开发周期内,日报每天要写。
开发日报没有按时填写或应付性填写的,每次3分,扣满36分为止。

最后,祝大家顺利!
FTP文件管理项目(本地云)实战指南_第4张图片

你可能感兴趣的:(#,设计模式实战,Linux服务器编程,linux,c++)