智能家居中央控制系统 UML 建模方案

📋 文档概述

项目 内容
系统名称 智能家居中央控制系统
核心功能 安防监控、环境控制、娱乐集成
建模标准 UML 2.5
文档版本 1.0
更新日期 2023-10-27

1. 系统工程视角:需求与系统上下文

1.1 系统上下文图

利益相关者

内部子系统

智能家居系统边界

外部系统

使用/控制

管理

维护

交互

控制指令

传感数据

电力供应

云同步

报警转发

天气数据

电网

互联网

公安报警系统

天气预报服务

智能家居中央控制系统

硬件设备集群

软件控制层

用户交互层

家庭住户

物业管理员

维护人员

访客

1.2 系统需求用例图

执行者

智能家居系统

触发报警

包含

包含

包含

扩展

扩展

查看设备状态

远程控制设备

场景模式设置

安防报警处理

环境自动调节

娱乐系统控制

能源管理

系统维护

主要执行者
家庭住户

次要执行者
物业管理员

外部执行者
公安系统

维护人员

1.3 关键需求规格表

需求ID 需求描述 响应时间 可靠性 安全等级
SYS-REQ-001 烟雾报警触发联动 ≤100ms 99.99%
SYS-REQ-002 用户远程控制响应 ≤500ms 99.9%
SYS-REQ-003 环境数据采集频率 1次/10s 99.95%
SYS-REQ-004 安防视频存储 30天循环 99.99%
SYS-REQ-005 系统故障自恢复 ≤5min 99.9%

2. 软件工程视角:开发过程模型

2.1 敏捷开发迭代计划

10/01 10/08 10/15 10/22 10/29 11/05 11/12 11/19 11/26 12/03 12/10 12/17 12/24 12/31 01/07 01/14 01/21 01/28 需求分析与架构设计 架构评审 迭代1 第一个可演示版本 迭代2 迭代3 安防功能完成 迭代4 迭代5 迭代6 系统集成与验收测试 完整系统集成 迭代规划 里程碑 智能家居系统敏捷开发路线图

2.2 迭代1详细任务分解

迭代1目标:基础框架与设备管理

需求细化

技术选型

核心框架开发

设备通信协议

基础UI

单元测试

用户故事梳理

验收标准定义

消息队列选型

数据库选型

通信协议确定

微内核核心

插件接口定义

事件总线实现

MQTT协议实现

Zigbee网关

设备注册机制

Web管理界面

设备状态展示

核心模块测试

接口测试

集成测试

3. 系统架构视角:微内核架构设计

3.1 系统组件图

硬件设备

通信层

娱乐插件

环境控制插件

安防插件

微内核核心

事件发布/订阅

事件发布/订阅

事件发布/订阅

事件发布/订阅

设备控制

设备注册

生命周期管理

生命周期管理

报警数据

控制指令

灯光控制

传感器数据

控制命令

Zigbee命令

蓝牙连接

触发联动

触发联动

场景控制

场景控制

服务插件

通知服务

数据持久化

远程访问

定时任务

事件总线 EventBus

设备管理器 DeviceManager

安全认证中心 AuthCenter

插件管理器 PluginManager

配置中心 ConfigCenter

日志服务 Logger

入侵检测模块

火灾报警模块

视频监控模块

报警联动模块

温度控制

湿度控制

空气质量

照明控制

多媒体中心

语音助手

场景模式

MQTT Broker

HTTP/WebSocket

Zigbee协调器

蓝牙网关

传感器集群

执行器集群

摄像头

智能终端

3.2 微内核核心类图

管理

提供上下文

使用

发布/处理

管理

包含

包含

实现

实现

订阅事件

订阅事件

«interface»

IPlugin

+String getPluginId()

+String getPluginName()

+void initialize(PluginContext)

+void start()

+void stop()

+void destroy()

PluginManager

-Map<String, IPlugin> plugins

-PluginRegistry registry

+void registerPlugin(IPlugin)

+void unregisterPlugin(String)

+IPlugin getPlugin(String)

+void startAll()

+void stopAll()

EventBus

-Map~String, List<EventHandler~> subscribers

+void subscribe(String, EventHandler)

+void unsubscribe(String, EventHandler)

+void publish(Event)

+void publishAsync(Event)

DeviceManager

-Map<String, Device> devices

-DeviceFactory factory

+Device registerDevice(DeviceInfo)

+void unregisterDevice(String)

+Device getDevice(String)

+List<Device> getDevicesByType(DeviceType)

+void sendCommand(String, Command)

PluginContext

+EventBus eventBus

+DeviceManager deviceManager

+Configuration config

+Logger logger

+ServiceLocator serviceLocator

«abstract»

Event

+String eventType

+String sourceId

+Date timestamp

+Map<String, Object> properties

+Event(String, String)

«abstract»

Device

+String deviceId

+String deviceName

+DeviceType type

+DeviceStatus status

+Map<String, Object> attributes

+void connect()

+void disconnect()

+void executeCommand(Command)

+Object readSensor()

SecurityPlugin

-AlarmService alarmService

+void initialize(PluginContext)

+void handleIntrusionEvent(Event)

+void handleFireEvent(Event)

EnvironmentPlugin

-ClimateController climateCtrl

-LightController lightCtrl

+void initialize(PluginContext)

+void adjustTemperature(Event)

+void controlLighting(Event)

4. 设计模式视角:具体问题解决方案

4.1 观察者模式在报警系统中的应用

实现

实现

实现

实现

实现

通知

产生

AlarmEvent

+String alarmId

+AlarmType type

+AlarmLevel level

+String deviceId

+Date triggerTime

+Map<String, Object> details

«interface»

AlarmSubject

+void attach(AlarmObserver)

+void detach(AlarmObserver)

+void notifyObservers(AlarmEvent)

AlarmSensor

-String sensorId

-AlarmType monitorType

-List<AlarmObserver> observers

+void setAlarmThreshold(float)

+void checkStatus()

+void triggerAlarm(AlarmEvent)

+void attach(AlarmObserver)

+void detach(AlarmObserver)

+void notifyObservers(AlarmEvent)

«interface»

AlarmObserver

+void update(AlarmEvent)

NotificationService

-SmsGateway smsGateway

-EmailService emailService

-PushService pushService

+void update(AlarmEvent)

+void sendSms(String, AlarmEvent)

+void sendEmail(String, AlarmEvent)

+void sendPush(String, AlarmEvent)

LogService

-LogRepository repository

+void update(AlarmEvent)

+void logAlarm(AlarmEvent)

+List<AlarmEvent> queryHistory(Date, Date)

DeviceControlService

-DeviceManager deviceManager

+void update(AlarmEvent)

+void executeSafetyActions(AlarmEvent)

+void closeAirConditioner()

+void turnOnEmergencyLight()

+void unlockDoors()

PoliceAlertService

-PoliceApiClient apiClient

+void update(AlarmEvent)

+void alertPolice(AlarmEvent)

+boolean shouldAlertPolice(AlarmEvent)

4.2 报警处理序列图

UserApp AirConditioner PoliceAlertService DeviceControlService LogService NotificationService EventBus AlarmSensor SmokeSensor UserApp AirConditioner PoliceAlertService DeviceControlService LogService NotificationService EventBus AlarmSensor SmokeSensor 烟雾报警触发场景 alt [满足报警条件] par [并行通知所有观察者] 所有处理在100ms内完成 检测到烟雾浓度超标 创建AlarmEvent (type=FIRE, level=HIGH) publish(FireAlarmEvent) update(AlarmEvent) 判断通知方式 发送推送通知 确认收到 update(AlarmEvent) 记录到数据库 日志记录完成 update(AlarmEvent) 分析需要执行的安全动作 发送关闭指令 确认关闭 update(AlarmEvent) 判断是否需要报警 调用公安系统API 报警已发送

4.3 策略模式在环境控制中的应用

实现

实现

实现

使用策略

依据数据

控制设备

«interface»

ClimateControlStrategy

+void adjustEnvironment(EnvironmentData)

+String getStrategyName()

ComfortStrategy

+void adjustEnvironment(EnvironmentData)

+String getStrategyName()

-double calculateComfortIndex()

-void optimizeForComfort()

EnergySavingStrategy

+void adjustEnvironment(EnvironmentData)

+String getStrategyName()

-double calculateEnergyScore()

-void optimizeForEnergy()

HealthStrategy

+void adjustEnvironment(EnvironmentData)

+String getStrategyName()

-double calculateHealthIndex()

-void optimizeForHealth()

ClimateController

-ClimateControlStrategy currentStrategy

-List<Device> controlledDevices

+void setStrategy(ClimateControlStrategy)

+void executeControl(EnvironmentData)

+void addDevice(Device)

+void removeDevice(String)

EnvironmentData

+double temperature

+double humidity

+double co2Level

+double pm25

+int occupancy

+Date timestamp

+String roomId

Device

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐