685
社区成员
这个作业属于哪个课程 | 2023软工W班 |
---|---|
这个作业要求在哪里 | 团队作业三——概要设计与数据库设计 |
团队名称 | Machine Guard |
这个作业的目标 | 材料链接、系统设计、数据库设计、类图、安全、改进、团队绩效、开发计划 |
其他参考文献 | 无 |
表名 | 列名 | 描述 |
---|---|---|
group | id | group的唯一标识符 |
group | name | 机房组名字 |
group | description | 描述 |
floor | id | floor的唯一标识符 |
floor | name | 楼层名称 |
floor | description | 描述 |
room | id | room的唯一标识符 |
room | floor_id | 机房对应的楼层id |
room | name | 机房名称 |
room | description | 描述 |
room_statistics | id | room_statistics的唯一标识符 |
room_statistics | time | 统计时间 |
room_statistics | room_id | 机房ID |
room_statistics | temperature | 温度 |
room_statistics | humidity | 湿度 |
room_list | id | room_list的唯一标识符 |
room_list | group_id | 机房组ID |
room_list | room_id | 机房ID |
log | id | log的唯一标识符 |
log | sensor_id | 监测器ID |
log | type | 日志类型 |
log | time | 日志时间 |
log | message | 日志内容 |
log | level | 紧急等级 |
sensor | id | sensor的唯一标识符 |
sensor | name | 监测器名称 |
sensor | state | 监测器状态 |
sensor | type | 监测器种类 |
sensor | description | 描述 |
sensor_list | id | device_list的唯一标识符 |
sensor_list | room_id | 机房ID |
sensor_list | sensor_id | 监测器ID |
device | id | device的唯一标识符 |
device | name | 设备名称 |
device | state | 设备状态 |
device | description | 描述 |
device_list | id | device_list的唯一标识符 |
device_list | room_id | 机房ID |
device_list | device_id | 设备ID |
device_statistics | id | device_statistics的唯一标识符 |
device_statistics | time | 统计时间 |
device_statistics | device_id | 设备ID |
device_statistics | cpu_useage | CPU占用率 |
device_statistics | temperature | 温度 |
device_statistics | read_rate | 硬件读速率 |
device_statistics | write_rate | 硬件写速率 |
device_statistics | state | 设备状态 |
device_statistics | upload_rate | 上传速率 |
device_statistics | download_rate | 下载速率 |
Table1 group
字段 | id | name | description |
---|---|---|---|
描述 | group的唯一标识符 | 机房组名字 | 描述 |
数据类型(长度) | INT | VARCHAR(50) | VARCHAR |
约束 | pk | not null |
Table2 floor
字段 | id | name | description |
---|---|---|---|
描述 | floor的唯一标识符 | 楼层名称 | 描述 |
数据类型(长度) | INT | VARCHAR(50) | VARCHAR |
约束 | pk | not null |
Table3 room
字段 | id | floor_id | name | description |
---|---|---|---|---|
描述 | room的唯一标识符 | 机房对应的楼层id | 机房名称 | 描述 |
数据类型(长度) | INT | INT | VARCHAR(50) | VARCHAR |
约束 | pk | references floor(id) | Not null |
Table4 room_statistics
字段 | id | time | room_id | temperature | humidity |
---|---|---|---|---|---|
描述 | room_statistics的唯一标识符 | 统计时间 | 机房ID | 温度 | 湿度 |
数据类型(长度) | INT | DATETIME | INT | DECIMAL | DECIMALA |
约束 | pk | not null | references room(id) | not null | not null |
Table5 room_list
字段 | id | group_id | room_id |
---|---|---|---|
描述 | room_list的唯一标识符 | 机房组id | 机房id |
数据类型(长度) | INT | INT | INT |
约束 | pk | references group(id) | references room(id) |
Table6 log
字段 | id | sensor_id | type | time | message | level |
---|---|---|---|---|---|---|
描述 | log的唯一标识符 | 监测器id | 日志类型 | 日志时间 | 日志内容 | 紧急等级 |
数据类型(长度) | INT | INT | VARCHAR(20) | DATETIME | VARCHAR | VARCHAR(20) |
约束 | pk | references sensor(id) | not null | not null | not null | not null |
Table7 sensor
字段 | id | name | state | type | description |
---|---|---|---|---|---|
描述 | sensor的唯一标识符 | 监测器名称 | 监测器状态 | 监测器类型 | 描述 |
数据类型(长度) | INT | VARCHAR | VARCHAR | VARCHAR | VARCHAR |
约束 | pk | not null | not null | not null |
Table8 sensor_list
字段 | id | room_id | sensor_id |
---|---|---|---|
描述 | sensor_list的唯一标识符 | 机房id | 监测器id |
数据类型(长度) | INT | INT | INT |
约束 | pk | references room(id) | references sensor(id) |
Table9 device
字段 | id | name | state | description |
---|---|---|---|---|
描述 | device的唯一标识符 | 设备名称 | 设备状态 | 描述 |
数据类型(长度) | INT | VARCHAR | VARCHAR | VARCHAR |
约束 | pk | not null | not null |
Table10 device_list
字段 | id | room_id | device_id |
---|---|---|---|
描述 | Device_list的唯一标识符 | 机房id | 设备id |
数据类型(长度) | INT | INT | INT |
约束 | pk | references room(id) | references device(id) |
Table11 device_statistics
字段 | id | time | device_id | cpu_usage | tempereture | read_rate | write_rate | state | upload_rate | download_rate |
---|---|---|---|---|---|---|---|---|---|---|
描述 | device_list的唯一标识符 | 统计时间 | 设备ID | CPU占用率 | 温度 | 硬件读速率 | 硬件写速率 | 设备状态 | 上传速率 | 下载速率 |
数据类型(长度) | INT | DATETIME | INT | DECIMAL | DECIMAL | DECIMAL | DECIMAL | VARCHAR | DECIMAL | DECIMAL |
约束 | pk | not null | references device(id) | not null | not null | not null | not null | not null | not null | not null |
基于RBAC模型,满足了RBAC0(基本模型)的定义
楼层在类图中如何体现?
楼层在类图中体现为机房的一个属性,在实际的逻辑中我们是用这个属性来筛选,楼层本身并没有任何信息和意义。但是为了更好地抽象出模型,我们在改进的类图中特别增加了Floor类。
温度检测器与机房环境记录有关吗?
温度检测器和机房环境记录间接相关。机房环境记录等于是一个定期生成的报告,在报告的时候会调用温度检测器。
用户还有再分角色吗?
用户会分数据权限,比如用户A可以访问机房1但不能访问机房2。功能上只有管理员和用户。
这些硬件怎么解决
使用现有的硬件,在HomeAssaiant这个平台进行转发,将数据并入我们的系统。
在深入分析业务需求后,我们对系统类图进行了修改,以更加准确地反映系统所需功能。我们决定删除设备温度记录类、机房环境记录类和告警信息类,以精简系统结构。此外,我们对现有的统计信息类进行了泛化,分别泛化为设备统计信息类和机房统计信息类,以便更好地记录硬件设备和机房信息。
为了更好地表示设备与机房、机房与机房组、监测器与机房之间的关系,我们引入了设备列表类、机房列表类和监测器列表类。同时,我们还通过日志类,在监测器与硬件设备这两个静态类之间建立了动态联系,以更好地表示两者之间关系。
优化了用户权限系统。原先我们采用用户-管理员模式,而用户部分使用一张特殊的用户授权表来存储用户能否访问对应机房或者设备的权限。经过考虑,我们转而使用RDBC权限设计模式来进行用户系统的搭建,引用用户组概念,实现了更加宽泛和灵活的权限分配控制。
学号 | 工作内容 | 贡献度 |
---|---|---|
222000321 | 博客全部,ppt复审,系统说明书和数据库说明书的整合 | 13% |
222000234 | PPT设计 | 12% |
222000231 | PPT设计,数据库文档4 | 10% |
222000320 | 评审表 | 5% |
222000322 | 系统说明书2.5,3.2(合作);数据库说明书3.2 | 20% |
222000317 | 系统说明书3.2(合作),数据库说明书3.1 | 15% |
222000318 | 系统说明书4.2,4.3,6.1 | 10% |
222000310 | 系统说明书2.3,3.1,4.1 | 15% |
时段 | 内容 | 里程碑 |
---|---|---|
第一周 | 需求分析 | 产出《需求说明书》以及第一版原型 |
第二周 | 系统定型,数据库设计 | 搭建出一个按照实体类设计的数据库,建立系统各组成的框架 |
第三周 | 静态界面设计和接口设计 | 实现前端静态界面的粗糙版本,提供一套粗糙的WebAPI文档 |
第四周 | 数据对接实现 | 前后端能够进行通讯,完成各实体功能的CURD操作 |
第五周 | 数据对接完善 | 产出细致的WebAPI文档,前后端通讯能够覆盖大多数功能操作 |
第六周 | 可靠性、安全性完善 | 实现前端界面交互的细致版本,后端能够通过压测和入侵测试 |
第七周 | 用户交互完善 | 产出完整的产品,通过黑盒测试 |
第八周 | 交付准备和交付 | 产出产品文档等交付附属材料 |
学号 | 职责 | 内容 |
---|---|---|
222000321 | PM、前端 | 统筹项目,跟踪进度,项目质量控制、前端3D和2D建模部分的实现 |
222000234 | 产品、UI | 原型设计,产品包装,文档美术设计 |
222000231 | UI、后端 | 产品包装,文档设计,后端辅助 |
222000320 | 测试 | 黑盒测试,测试报告产出 |
222000322 | 后端 | 主要后端搭建,接口设计,分布式设计 |
222000317 | 后端 | ORM设计,数据库DBA |
222000318 | 后端 | 后端接口实现,逻辑实现 |
222000310 | 前端 | 前端界面实现和除建模外的逻辑实现 |
完成的很赞!加油!