一、项目简介
-
项目名称:智能电梯调度仿真系统
-
项目地址:https://z.gitee.cn/zgca/repos/Levy/Elevator_Algorithm/sources
-
开发模式:结对编程(Pair Programming)
-
团队成员:
-
李文宇:负责整体框架搭建、服务器通信模块及第一阶段功能开发;
-
张宸:负责核心调度算法、性能优化及第二阶段测试评估脚本。
-
项目目标:
构建一个支持图形化与无头模式的电梯调度仿真平台,用于模拟不同调度策略的执行过程与性能对比,为后续优化提供实验基础。
二、软件工程思想的应用
1️⃣ 信息隐藏(Information Hiding)
各功能模块相互独立,算法端无法直接访问服务器内部状态,仅能通过定义的接口交互;
项目通过 .env 文件集中管理端口、文件路径及运行模式,增强安全性与灵活性。
2️⃣ 接口设计(Interface Design)
统一设计接口,如 /api/elevators/{id}/go_to_floor;
算法端通过封装的 APIClient 与服务器通信,保证调用规范与可维护性。
3️⃣ 松耦合(Loose Coupling)
系统以 HTTP 为通信媒介,各模块解耦明显;
调度算法模块可自由替换或独立运行,无需修改 GUI 或后端服务。
三、系统结构与模块实现
| 模块名称 | 功能概述 |
|---|---|
| Simulator | 负责电梯运行逻辑、乘客调度及事件触发 |
| APIClient | 实现算法端与服务器间的请求交互 |
| BaselineElevatorController | 计算电梯运行策略与路径规划 |
| Web GUI | 实时展示电梯状态及性能数据 |
算法特色:
-
采用基于队列的优先调度模型;
-
实现批量目标层规划,提高调度效率;
-
自动统计平均等待时间与能耗指标。
四、时间规划与执行对比
🕐 预估时间
| 阶段 | 计划时长 |
|---|---|
| 需求分析 | 1h |
| 架构学习 | 2h |
| 算法设计 | 2h |
| 编码实现 | 5h |
| 测试调试 | 2h |
🧭 实际用时
| 阶段 | 实际耗时 | 差异说明 |
|---|---|---|
| 需求分析 | 1h | 正常完成 |
| 架构学习 | 2h | 符合预期 |
| 算法设计 | 3h | 优化方案较复杂 |
| 编码实现 | 7h | 调试阶段延长 |
| 测试与调试 | 3h | 接口联调耗时 |
| 合并讨论 | 2h | 代码冲突处理 |
| 助教验证 | 1h | 环境适配测试 |
| 文档整理 | 1h | 报告编写整理 |
整体进度略超预期,主要原因在于算法优化与接口调试阶段复杂度较高。
五、代码规范与质量保障
-
遵循 PEP8 编码规范,保持统一命名与缩进风格;
-
模块内部增加异常捕获机制,例如:
try: client.sync_state() except Exception as e: logging.error(f"同步失败: {e}") -
使用
logging模块分级记录日志信息; -
借助
giteeScan工具检测代码安全性与重复率。
六、GUI 模块设计与交互逻辑
-
架构模式:MVC
-
Model:
Simulator(仿真逻辑) -
View:图形界面(实时展示状态)
-
Controller:
BaselineElevatorController(控制调度行为)
-
交互流程:
-
GUI → Server:请求当前电梯状态;
-
Server → Algorithm:事件推送;
-
Algorithm → Server:发送调度决策。
可视化功能:
-
电梯位置实时刷新;
-
乘客进出状态动态展示;
-
性能数据(等待时间、能耗等)实时统计与输出。
七、协作过程与分工模式
| 项目阶段 | 张宸职责 | 李文宇职责 |
|---|---|---|
| 阶段一:框架搭建 | 阅读接口文档,熟悉逻辑结构 | 创建项目目录与通信模块 |
| 阶段二:算法实现 | 设计与优化调度算法 | 完善同步机制,保证接口稳定 |
| 阶段三:评测展示 | 输出统计结果与性能报告 | 整合前端与算法端,完成演示 |
-
全程采用 Git 协作;
-
每次功能更新均提交 Pull Request;
-
合并前进行联合测试;
八、结对编程体验与反思
| 成员 | 优势表现 | 改进方向 |
|---|---|---|
| 李文宇 | 框架清晰,结构规划能力强 | 算法调优经验需积累 |
| 张宸 | 调试耐心,定位问题能力强 | 协作沟通需更高效 |
总结:
结对编程让团队在设计与实现过程中分工更明确、效率更高;
双方在协作中提升了模块化思维与接口抽象能力;
系统成功实现了 GUI 与无头模式运行,并完成了完整性能评测体系的搭建。
九、结对编程合照

10万+






