|
|
|
|
@ -0,0 +1,420 @@
|
|
|
|
|
《软件工程课程设计》
|
|
|
|
|
软件设计规格说明书(迭代版本 v2.0)
|
|
|
|
|
|
|
|
|
|
MagicWord - 隐私学习平台
|
|
|
|
|
|
|
|
|
|
项目团队:
|
|
|
|
|
组长学号姓名: 230340211 马子昂
|
|
|
|
|
成员学号姓名: 230340233 石兴霖
|
|
|
|
|
230340219 黄俊源
|
|
|
|
|
230340210 陆冲
|
|
|
|
|
230340235 马明义
|
|
|
|
|
|
|
|
|
|
版本信息:v2.0
|
|
|
|
|
发布日期:二〇二五年十月
|
|
|
|
|
|
|
|
|
|
================================================================================
|
|
|
|
|
|
|
|
|
|
第1章 引言
|
|
|
|
|
|
|
|
|
|
1.1 软件设计目标和原则
|
|
|
|
|
|
|
|
|
|
1.1.1 设计目标(迭代版本增强)
|
|
|
|
|
|
|
|
|
|
核心目标:
|
|
|
|
|
1. 隐私学习体验优化
|
|
|
|
|
- 改进干扰文本生成算法
|
|
|
|
|
- 实现动态学习内容伪装
|
|
|
|
|
- 支持多场景学习模式切换
|
|
|
|
|
|
|
|
|
|
2. 文件格式支持全面扩展
|
|
|
|
|
- 新增支持:PPT(.pptx)、Excel(.xlsx)、Markdown(.md)
|
|
|
|
|
- 增强PDF/EPUB解析精度
|
|
|
|
|
- 支持批量文件处理
|
|
|
|
|
|
|
|
|
|
3. 学习功能增强
|
|
|
|
|
- 基础学习路径设置
|
|
|
|
|
- 实时错误检测
|
|
|
|
|
- 学习进度跟踪
|
|
|
|
|
|
|
|
|
|
4. 用户界面现代化重构
|
|
|
|
|
- 响应式设计适配多设备
|
|
|
|
|
- 深色/浅色主题切换
|
|
|
|
|
- 可定制化界面布局
|
|
|
|
|
|
|
|
|
|
5. 系统性能深度优化
|
|
|
|
|
- 大文件加载时间优化至<2秒
|
|
|
|
|
- 内存占用控制<300MB
|
|
|
|
|
- 支持并发用户操作
|
|
|
|
|
|
|
|
|
|
1.1.2 设计原则(迭代版本优化)
|
|
|
|
|
|
|
|
|
|
1. 用户中心设计原则
|
|
|
|
|
- 基于用户需求优化体验
|
|
|
|
|
- 提供基础学习设置
|
|
|
|
|
- 建立用户反馈机制
|
|
|
|
|
|
|
|
|
|
2. 模块化扩展原则
|
|
|
|
|
- 采用模块化架构
|
|
|
|
|
- 支持功能模块扩展
|
|
|
|
|
- 提供标准接口规范
|
|
|
|
|
|
|
|
|
|
3. 技术创新驱动原则
|
|
|
|
|
- 采用现代化开发框架
|
|
|
|
|
- 支持持续技术迭代
|
|
|
|
|
|
|
|
|
|
4. 安全隐私保护原则
|
|
|
|
|
- 本地数据处理优先
|
|
|
|
|
- 透明化隐私政策
|
|
|
|
|
|
|
|
|
|
1.2 软件设计的约束和限制
|
|
|
|
|
|
|
|
|
|
技术约束:
|
|
|
|
|
- 运行平台:Windows 10+ / macOS 10.15+ / Linux Ubuntu 18.04+
|
|
|
|
|
- 开发语言:Python 3.8+ (主程序)
|
|
|
|
|
- 前端框架:PyQt6 + QML (现代化UI)
|
|
|
|
|
- 数据库:SQLite (本地)
|
|
|
|
|
|
|
|
|
|
性能约束:
|
|
|
|
|
- 单文件最大支持:500MB
|
|
|
|
|
- 并发用户数:≥100
|
|
|
|
|
- 响应时间:页面加载<1s,操作响应<100ms
|
|
|
|
|
- 存储空间:安装包<200MB,用户数据无限制
|
|
|
|
|
|
|
|
|
|
安全约束:
|
|
|
|
|
- 数据存储:基础加密保护
|
|
|
|
|
- 隐私保护:本地数据处理
|
|
|
|
|
|
|
|
|
|
================================================================================
|
|
|
|
|
|
|
|
|
|
第2章 软件体系结构设计
|
|
|
|
|
|
|
|
|
|
2.1 系统架构总览
|
|
|
|
|
|
|
|
|
|
采用分层架构:
|
|
|
|
|
|
|
|
|
|
┌─────────────────────────────────────────────────────────────┐
|
|
|
|
|
│ 表现层 (Presentation Layer) │
|
|
|
|
|
├─────────────────────────────────────────────────────────────┤
|
|
|
|
|
│ 主界面模块 设置模块 学习统计模块 插件管理模块 │
|
|
|
|
|
└─────────────────────────────────────────────────────────────┘
|
|
|
|
|
┌─────────────────────────────────────────────────────────────┐
|
|
|
|
|
│ 业务逻辑层 (Business Logic Layer) │
|
|
|
|
|
├─────────────────────────────────────────────────────────────┤
|
|
|
|
|
│ 文件处理服务 学习管理服务 用户设置服务 │
|
|
|
|
|
└─────────────────────────────────────────────────────────────┘
|
|
|
|
|
┌─────────────────────────────────────────────────────────────┐
|
|
|
|
|
│ 数据访问层 (Data Access Layer) │
|
|
|
|
|
├─────────────────────────────────────────────────────────────┤
|
|
|
|
|
│ 本地数据库 文件存储 缓存服务 │
|
|
|
|
|
└─────────────────────────────────────────────────────────────┘
|
|
|
|
|
┌─────────────────────────────────────────────────────────────┐
|
|
|
|
|
│ 基础设施层 (Infrastructure Layer) │
|
|
|
|
|
├─────────────────────────────────────────────────────────────┤
|
|
|
|
|
│ 日志系统 配置管理 错误处理 性能监控 │
|
|
|
|
|
└─────────────────────────────────────────────────────────────┘
|
|
|
|
|
|
|
|
|
|
2.2 核心模块设计
|
|
|
|
|
|
|
|
|
|
2.2.1 文件处理模块
|
|
|
|
|
- 支持格式:TXT, DOC/DOCX, PDF, EPUB, PPT/PPTX, XLS/XLSX, MD
|
|
|
|
|
- 处理引擎:基于Apache Tika的内容提取
|
|
|
|
|
- 图片处理:OpenCV图像识别和优化
|
|
|
|
|
- 格式转换:统一内部文档格式
|
|
|
|
|
|
|
|
|
|
2.2.2 学习管理模块
|
|
|
|
|
- 学习进度跟踪
|
|
|
|
|
- 错误检测和统计
|
|
|
|
|
- 学习模式切换
|
|
|
|
|
- 基础学习分析
|
|
|
|
|
|
|
|
|
|
================================================================================
|
|
|
|
|
|
|
|
|
|
第3章 用户界面设计
|
|
|
|
|
|
|
|
|
|
3.1 界面架构设计
|
|
|
|
|
|
|
|
|
|
采用现代化MVVM模式:
|
|
|
|
|
|
|
|
|
|
主界面组件:
|
|
|
|
|
- 导航栏:快速访问核心功能
|
|
|
|
|
- 工作区:文档编辑和学习区域
|
|
|
|
|
- 侧边栏:工具和设置面板
|
|
|
|
|
- 状态栏:系统状态和信息显示
|
|
|
|
|
|
|
|
|
|
3.2 核心界面设计
|
|
|
|
|
|
|
|
|
|
3.2.1 主工作界面
|
|
|
|
|
- 仿Word现代化设计风格
|
|
|
|
|
- 支持多标签页文档管理
|
|
|
|
|
- 实时语法高亮和错误提示
|
|
|
|
|
- 智能内容推荐侧边栏
|
|
|
|
|
|
|
|
|
|
3.2.2 学习模式界面
|
|
|
|
|
- 专注模式:隐藏干扰元素
|
|
|
|
|
- 练习模式:实时反馈和评分
|
|
|
|
|
- 复习模式:智能内容重现
|
|
|
|
|
- 测试模式:学习效果评估
|
|
|
|
|
|
|
|
|
|
3.2.3 设置中心
|
|
|
|
|
- 主题定制:颜色、字体、布局
|
|
|
|
|
- 学习设置:难度、模式、目标
|
|
|
|
|
- 隐私设置:数据同步和分享
|
|
|
|
|
- 插件管理:功能扩展配置
|
|
|
|
|
|
|
|
|
|
3.3 交互设计规范
|
|
|
|
|
|
|
|
|
|
3.3.1 导航设计
|
|
|
|
|
- 面包屑导航显示当前位置
|
|
|
|
|
- 快捷键支持快速操作
|
|
|
|
|
- 手势操作支持(触摸设备)
|
|
|
|
|
|
|
|
|
|
3.3.2 反馈机制
|
|
|
|
|
- 实时操作状态提示
|
|
|
|
|
- 错误信息的友好展示
|
|
|
|
|
- 成功操作的确认反馈
|
|
|
|
|
|
|
|
|
|
================================================================================
|
|
|
|
|
|
|
|
|
|
第4章 详细设计
|
|
|
|
|
|
|
|
|
|
4.1 新增用例详细设计
|
|
|
|
|
|
|
|
|
|
4.1.10 学习数据分析统计用例
|
|
|
|
|
|
|
|
|
|
用例描述:用户查看基础的学习统计信息
|
|
|
|
|
|
|
|
|
|
参与对象:
|
|
|
|
|
- 用户 (Actor)
|
|
|
|
|
- 统计模块 (System)
|
|
|
|
|
- 数据可视化组件 (Component)
|
|
|
|
|
|
|
|
|
|
前置条件:
|
|
|
|
|
- 用户有学习记录
|
|
|
|
|
- 统计功能已启用
|
|
|
|
|
|
|
|
|
|
基本流程:
|
|
|
|
|
1. 用户打开统计面板
|
|
|
|
|
2. 系统加载学习数据
|
|
|
|
|
3. 生成基础统计图表
|
|
|
|
|
4. 显示学习进度信息
|
|
|
|
|
5. 提供数据导出功能
|
|
|
|
|
|
|
|
|
|
统计维度:
|
|
|
|
|
- 时间维度:日/周/月统计
|
|
|
|
|
- 内容维度:不同学习材料统计
|
|
|
|
|
- 效果维度:正确率、速度
|
|
|
|
|
|
|
|
|
|
4.2 类设计详细规范
|
|
|
|
|
|
|
|
|
|
4.2.1 新增核心类设计
|
|
|
|
|
|
|
|
|
|
类名:StatisticsAnalyzer
|
|
|
|
|
职责:学习数据统计分析
|
|
|
|
|
属性:
|
|
|
|
|
- data_sources: list # 数据源配置
|
|
|
|
|
- analysis_methods: dict # 分析方法
|
|
|
|
|
|
|
|
|
|
方法:
|
|
|
|
|
+ generate_daily_report(date): DailyReport
|
|
|
|
|
+ analyze_learning_progress(period): ProgressAnalysis
|
|
|
|
|
+ export_statistics(format): ExportFile
|
|
|
|
|
|
|
|
|
|
4.2.2 优化现有类设计
|
|
|
|
|
|
|
|
|
|
类名:MainUI (优化版)
|
|
|
|
|
新增属性:
|
|
|
|
|
- theme_manager: ThemeManager # 主题管理
|
|
|
|
|
- layout_customizer: LayoutCustomizer # 布局定制
|
|
|
|
|
|
|
|
|
|
新增方法:
|
|
|
|
|
+ switch_theme(theme_name): bool
|
|
|
|
|
+ customize_layout(layout_config): bool
|
|
|
|
|
+ get_ui_state(): UIState
|
|
|
|
|
|
|
|
|
|
类名:FileManager (扩展版)
|
|
|
|
|
扩展支持:
|
|
|
|
|
- 新增文件格式解析器
|
|
|
|
|
- 批量文件处理能力
|
|
|
|
|
|
|
|
|
|
新增方法:
|
|
|
|
|
+ batch_process(files): BatchResult
|
|
|
|
|
+ detect_content_type(file): ContentType
|
|
|
|
|
|
|
|
|
|
4.3 数据模型设计扩展
|
|
|
|
|
|
|
|
|
|
4.3.1 新增数据库表结构
|
|
|
|
|
|
|
|
|
|
表名:T_LearningStatistics
|
|
|
|
|
字段设计:
|
|
|
|
|
- stat_id: INT PRIMARY KEY
|
|
|
|
|
- user_id: INT FOREIGN KEY
|
|
|
|
|
- learning_date: DATE
|
|
|
|
|
- total_time: INT # 学习总时长(秒)
|
|
|
|
|
- correct_rate: DECIMAL(5,2) # 正确率
|
|
|
|
|
- speed_wpm: INT # 打字速度(字/分钟)
|
|
|
|
|
- material_type: VARCHAR(50) # 学习材料类型
|
|
|
|
|
- difficulty_level: INT # 难度等级
|
|
|
|
|
|
|
|
|
|
表名:T_UserPreferences
|
|
|
|
|
字段设计:
|
|
|
|
|
- pref_id: INT PRIMARY KEY
|
|
|
|
|
- user_id: INT FOREIGN KEY
|
|
|
|
|
- theme_preference: VARCHAR(20)
|
|
|
|
|
- font_size: INT
|
|
|
|
|
- language_setting: VARCHAR(10)
|
|
|
|
|
- privacy_level: INT
|
|
|
|
|
|
|
|
|
|
4.3.2 数据操作类设计
|
|
|
|
|
|
|
|
|
|
类名:LearningStatisticsLibrary
|
|
|
|
|
方法设计:
|
|
|
|
|
+ record_learning_session(session_data): bool
|
|
|
|
|
+ get_user_statistics(user_id, period): UserStats
|
|
|
|
|
+ compare_group_statistics(group_criteria): GroupStats
|
|
|
|
|
+ generate_insight_reports(): InsightReport
|
|
|
|
|
|
|
|
|
|
类名:UserPreferencesLibrary
|
|
|
|
|
方法设计:
|
|
|
|
|
+ save_user_preferences(pref_data): bool
|
|
|
|
|
+ get_user_settings(user_id): UserSettings
|
|
|
|
|
+ reset_to_default(user_id): bool
|
|
|
|
|
+ export_preferences(user_id): ExportData
|
|
|
|
|
|
|
|
|
|
================================================================================
|
|
|
|
|
|
|
|
|
|
第5章 性能与安全设计
|
|
|
|
|
|
|
|
|
|
5.1 性能优化策略
|
|
|
|
|
|
|
|
|
|
5.1.1 大文件处理优化
|
|
|
|
|
- 流式处理:大文件分块处理,避免内存溢出
|
|
|
|
|
- 并行处理:多线程处理不同文件块
|
|
|
|
|
- 进度跟踪:实时显示处理进度
|
|
|
|
|
- 错误恢复:处理失败时支持断点续传
|
|
|
|
|
|
|
|
|
|
5.2 安全设计策略
|
|
|
|
|
|
|
|
|
|
5.2.1 本地安全增强
|
|
|
|
|
- 文件加密:敏感文件本地加密存储
|
|
|
|
|
- 权限管理:细粒度的文件访问权限
|
|
|
|
|
- 安全删除:彻底删除敏感数据
|
|
|
|
|
- 防篡改:文件完整性校验
|
|
|
|
|
|
|
|
|
|
================================================================================
|
|
|
|
|
|
|
|
|
|
第6章 部署与维护
|
|
|
|
|
|
|
|
|
|
6.1 部署方案设计
|
|
|
|
|
|
|
|
|
|
6.1.1 本地部署
|
|
|
|
|
- 提供一键安装包(Windows/macOS/Linux)
|
|
|
|
|
- 支持离线安装和运行
|
|
|
|
|
- 自动依赖管理和环境配置
|
|
|
|
|
|
|
|
|
|
6.1.2 云端部署
|
|
|
|
|
- Docker容器化部署
|
|
|
|
|
- Kubernetes集群管理
|
|
|
|
|
- 自动扩缩容机制
|
|
|
|
|
- 多地域部署支持
|
|
|
|
|
|
|
|
|
|
6.1.3 混合部署
|
|
|
|
|
- 本地应用+云端服务模式
|
|
|
|
|
- 边缘计算节点部署
|
|
|
|
|
- 智能路由和负载均衡
|
|
|
|
|
|
|
|
|
|
6.2 运维监控体系
|
|
|
|
|
|
|
|
|
|
6.2.1 系统监控
|
|
|
|
|
- 实时性能指标监控
|
|
|
|
|
- 错误日志收集和分析
|
|
|
|
|
- 用户行为追踪和分析
|
|
|
|
|
- 系统健康状态检查
|
|
|
|
|
|
|
|
|
|
6.2.2 自动化运维
|
|
|
|
|
- 自动备份和恢复
|
|
|
|
|
- 定期安全扫描
|
|
|
|
|
- 性能优化建议
|
|
|
|
|
- 故障自动修复
|
|
|
|
|
|
|
|
|
|
6.3 用户支持体系
|
|
|
|
|
|
|
|
|
|
6.3.1 技术支持
|
|
|
|
|
- 在线帮助文档
|
|
|
|
|
- 社区论坛支持
|
|
|
|
|
- 实时在线客服
|
|
|
|
|
- 远程协助功能
|
|
|
|
|
|
|
|
|
|
6.3.2 反馈机制
|
|
|
|
|
- 用户反馈收集
|
|
|
|
|
- 需求投票系统
|
|
|
|
|
- Bug报告跟踪
|
|
|
|
|
- 功能建议评估
|
|
|
|
|
|
|
|
|
|
================================================================================
|
|
|
|
|
|
|
|
|
|
附录A:技术选型详细说明
|
|
|
|
|
|
|
|
|
|
前端技术栈:
|
|
|
|
|
- UI框架:PyQt6 + QML
|
|
|
|
|
- 样式引擎:Qt Style Sheets
|
|
|
|
|
- 图表库:PyQtGraph + Matplotlib
|
|
|
|
|
- 动画引擎:Qt Animation Framework
|
|
|
|
|
|
|
|
|
|
后端技术栈:
|
|
|
|
|
- Web框架:FastAPI
|
|
|
|
|
- 数据库ORM:SQLAlchemy
|
|
|
|
|
- 缓存:Redis
|
|
|
|
|
- 消息队列:Celery + RabbitMQ
|
|
|
|
|
- 任务调度:APScheduler
|
|
|
|
|
|
|
|
|
|
AI技术栈:
|
|
|
|
|
- NLP库:spaCy + NLTK
|
|
|
|
|
- 机器学习:scikit-learn + TensorFlow
|
|
|
|
|
- 深度学习:PyTorch
|
|
|
|
|
- 推荐系统:Surprise
|
|
|
|
|
|
|
|
|
|
基础设施:
|
|
|
|
|
- 容器化:Docker + Kubernetes
|
|
|
|
|
- 监控:Prometheus + Grafana
|
|
|
|
|
- 日志:ELK Stack
|
|
|
|
|
- CI/CD:GitLab CI
|
|
|
|
|
|
|
|
|
|
================================================================================
|
|
|
|
|
|
|
|
|
|
附录B:开发里程碑计划
|
|
|
|
|
|
|
|
|
|
阶段一:基础架构搭建 (6周)
|
|
|
|
|
- 第1-2周:技术选型和环境搭建
|
|
|
|
|
- 第3-4周:核心模块开发
|
|
|
|
|
- 第5-6周:基础功能测试
|
|
|
|
|
|
|
|
|
|
阶段二:AI功能集成 (4周)
|
|
|
|
|
- 第7周:AI服务接口开发
|
|
|
|
|
- 第8周:学习算法实现
|
|
|
|
|
- 第9周:智能推荐系统
|
|
|
|
|
- 第10周:AI功能测试优化
|
|
|
|
|
|
|
|
|
|
阶段三:云端服务开发 (4周)
|
|
|
|
|
- 第11周:云端架构设计
|
|
|
|
|
- 第12周:同步服务开发
|
|
|
|
|
- 第13周:用户管理系统
|
|
|
|
|
- 第14周:云端功能测试
|
|
|
|
|
|
|
|
|
|
阶段四:系统优化发布 (4周)
|
|
|
|
|
- 第15周:性能优化
|
|
|
|
|
- 第16周:安全加固
|
|
|
|
|
- 第17周:用户测试
|
|
|
|
|
- 第18周:正式发布
|
|
|
|
|
|
|
|
|
|
================================================================================
|
|
|
|
|
|
|
|
|
|
文档版本历史:
|
|
|
|
|
- v1.0 (2025-09):初始版本
|
|
|
|
|
- v2.0 (2025-10):迭代版本,新增AI、云端、统计等功能
|
|
|
|
|
|
|
|
|
|
下一步计划:
|
|
|
|
|
- 根据用户反馈持续迭代优化
|
|
|
|
|
- 探索更多AI学习场景
|
|
|
|
|
- 扩展移动端支持
|
|
|
|
|
- 建立开发者生态系统
|