这个作业属于哪个课程 | <班级的链接> |
---|---|
这个作业要求在哪里 | <作业要求的链接> |
这个作业的目标 | 1、基于下面的软件开发需求,请运用UML(统一建模语言),结合领域驱动设计方法、软件设计模式等知识,对上面所有内容进行建模,完成撰写需求规格说明书,完成项目后续的开发计划。 |
2、建立项目git仓库。项目后续的代码、文档都要通过git增量式管理。实现文档的版本化和增量式管理 |
一、软件开发需求
一家公司提供服务出租,自身有一些员工,另外还有很多自由职业者作为服务商存在。公司目前使用Excel工作表来管理他们的客户(自由职业者),时间表等。Excel解决方案无法很好地进行扩展。它无法应对多用户使用的场景,也不提供安全和审计日志。因此他们决定构建一个新的基于Web的解决方案。以下是核心要求:
搜索自由职业者分类的功能
用于存储联系自由职业者的不同渠道的解决方案
搜索项目分类的功能
搜索客户分类的功能
维护合同中自由职业者的时间表
二、需求分析
1、用例图
2、领域类图
3、领域驱动设计
领域模型:定义自由职业者、客户、项目和合同等核心实体及其关系。
值对象:联系信息、技能等,可以作为值对象。
聚合根:自由职业者、客户和项目作为聚合根,管理各自的生命周期。
仓储:实现持久化存储(如数据库)的访问和操作逻辑。
4、数据库建立
(1)用户表
CREATE TABLE User (
user_id INT PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(50) NOT NULL UNIQUE,
password VARCHAR(255) NOT NULL,
role VARCHAR(50) NOT NULL,
permissions VARCHAR(255)
);
(2)自由职业者表
CREATE TABLE Freelancer (
freelancer_id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(100) NOT NULL,
skills VARCHAR(255),
contact_info VARCHAR(255)
);
(3)客户表
CREATE TABLE Client (
client_id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(100) NOT NULL,
contact_info VARCHAR(255)
);
(4)项目表
CREATE TABLE Project (
project_id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(100) NOT NULL,
description TEXT,
status VARCHAR(50)
);
(5)合同表
CREATE TABLE Contract (
contract_id INT PRIMARY KEY AUTO_INCREMENT,
signing_date DATE,
project_id INT,
freelancer_id INT,
schedule TEXT,
FOREIGN KEY (project_id) REFERENCES Project(project_id),
FOREIGN KEY (freelancer_id) REFERENCES Freelancer(freelancer_id)
);
三、项目安排
1、项目时间表
阶段 | 任务 | 开始日期 | 结束日期 | 持续时间 |
---|---|---|---|---|
需求分析 | 完成详细的需求规格说明书 | 2024-04-10 | 2024-04-14 | 5 天 |
确定项目的主要功能模块 | 2024-04-10 | 2024-04-14 | 5 天 | |
系统设计 | 设计UML图和数据库结构 | 2024-04-15 | 2024-04-19 | 5 天 |
确定主要设计模式和领域模型 | 2024-04-15 | 2024-04-19 | 5 天 | |
实现 | 搭建项目基础框架 | 2024-04-20 | 2024-04-24 | 5 天 |
实现自由职业者管理模块 | 2024-04-25 | 2024-04-29 | 5 天 | |
实现项目管理模块 | 2024-04-30 | 2024-05-04 | 5 天 | |
实现客户管理模块 | 2024-05-05 | 2024-05-09 | 5 天 | |
实现合同管理模块 | 2024-05-10 | 2024-05-14 | 5 天 | |
实现用户管理和权限控制 | 2024-05-15 | 2024-05-19 | 5 天 | |
测试 | 单元测试 | 2024-05-20 | 2024-05-24 | 5 天 |
集成测试 | 2024-05-25 | 2024-05-29 | 5 天 | |
部署 | 配置服务器和数据库 | 2024-05-30 | 2024-06-03 | 5 天 |
部署应用到生产环境 | 2024-06-04 | 2024-06-08 | 5 天 | |
维护 | 监控系统运行状态 | 2024-06-09 | 持续进行 | 持续 |
处理用户反馈和修复bug | 2024-06-09 | 持续进行 | 持续 |