学生宿舍管理系统uml图
时间: 2024-12-31 19:43:07 浏览: 10
### 学生宿舍管理系统 UML 图设计示例
#### 1. 系统用例图
系统用例图展示了不同角色与系统之间的交互行为。对于学生宿舍管理系统而言,主要涉及的角色有管理员、学生以及维护人员。
- **管理员**可以执行的操作包括但不限于:查看所有学生的住宿情况、分配宿舍、调整宿舍安排、处理维修请求等。
- **学生**能够提交入住申请、查询个人住宿信息、发起维修请求等操作。
- **维护人员**负责接收并解决由学生提出的各种设施问题报告。
这些关系可以通过用例图清晰地表示出来[^1]。
```plantuml
@startuml
actor Admin as 管理员
actor Student as 学生
actor Maintainer as 维护人员
Student --> (提交入住申请)
Student --> (查询个人住宿信息)
Student --> (发起维修请求)
Admin --> (查看所有学生的住宿情况)
Admin --> (分配宿舍)
Admin --> (调整宿舍安排)
Admin --> (处理维修请求)
Maintainer --> (接收维修请求)
Maintainer --> (解决问题)
@enduml
```
#### 2. 类图
类图用于定义系统的结构化组件及其属性方法。针对本案例:
- `User` 是一个抽象基类,派生出具体的子类如 `Administrator`, `Resident`(居民), 和 `MaintenanceStaff`.
- 各个实体之间存在关联关系,比如一位 `Resident` 可能会发出多个 `RepairRequest`.
以下是简化版的学生宿舍管理系统部分核心对象的关系示意:
```plantuml
@startuml
class User {
+String name
+int id
}
abstract class Resident extends User{
+Room roomInfo
}
class Administrator extends User{}
class MaintenanceStaff extends User {}
class Room {
+int roomId
+List<Resident> residents
}
class RepairRequest {
+Date requestTime
+Status status
+MaintenanceStaff handler
}
Resident "0..*" -- "*" RepairRequest : 发起
MaintenanceStaff "1" -- "0..*" RepairRequest : 处理
@enduml
```
#### 3. 动态图 - 序列图
序列图用来描述参与者间消息传递的时间顺序。这里给出一个简单的例子——当一名新生通过在线平台提交入学登记表之后触发的一系列动作.
```plantuml
@startuml
participant 新生 as Freshman
participant 宿舍管理系统 as System
participant 管理员 as Admin
Freshman -> System: 提交入学登记表
System -> Admin: 接收新注册通知
Alt 如果当前房源充足
Admin -> System: 分配床位给该名同学
Else
Admin -> System: 将其加入等待列表
End
System -> Freshman: 返回确认邮件/短信
@enduml
```
阅读全文