| 这个作业属于哪个课程 |
2022软件代码开发技术; |
| 这个作业要求在哪里 |
作业4⃣️; |
| 这个作业的目标 |
1.对上次作业进行修改 |
|
2.运用领域驱动设计来对系统进行设计 |
|
3.系统代码开发任务和测试的规划 |
需求规格说明书的修改
项目背景
一家公司提供服务出租,自身有一些员工,另外还有很多自由职业者作为服务商存在。公司目前使用Excel工作表来管理他们的客户(自由职业者),时间表等。Excel解决方案无法很好地进行扩展。它无法应对多用户使用的场景,也不提供安全和审计日志。因此他们决定构建一个新的基于Web的解决方案。以下是核心要求:
- 搜索自由职业者分类的功能
- 用于存储联系自由职业者的不同渠道的解决方案
- 搜索项目分类的功能
- 搜索客户分类的功能
- 维护合同中自由职业者的时间表
1.系统简述
这是一个基于web技术开发的系统,对应使用系统的非管理人员都需要通过注册登录在进行区分不同功能。在这个系统里面应该具有在该系统上使用的用户或者是自由工作者提供的双向搜索的基本功能,即可以在用户端可以搜索到相关需要类型的自由工作者,同时也可以在自由工作者端可以搜索到需要寻找的项目或者是对应类型的用户。用户可以在系统上面发布的项目并且对项目进行选定的分类,提供给自由工作者来进行检索。自由工作者和用户都可以自己安排好相关的时间表来进行合约的讨论,最后是签署合约进行合作。对于管理人员需要维护系统的合同信息,还有相关使用用户的个人信息,用于进行联系。
2.项目需求详细的描述
*客户:客户可以通过登录系统,修改自己的个人信息,同时具备发布项目,制定时间表,查询相关自由工作者,和自由工作者进行合约的签订,等基本功能。
*自由工作者:自由工作者可以登录系统,修改个人信息,同时具备搜索查询相关客户和项目的功能,还可以制定自己的时间表,和客户签订合约。
*员工:通过获取系统的用户的信息来进行信息的维护,和对于已经签订的合约来进行跟踪和维护。
3.功能性需求
| 对象 |
功能性需求 |
| 客户 |
1.注册 指定自己的用户名和密码 |
|
2.制定时间表和个人信息的完善 |
|
3.发布特定的项目,完善项目信息和类型 |
|
4.通过搜索区域搜索特定的自由工作者 |
|
5.和自由工作者进行项目的合作签署合约 |
| 自由工作者 |
1.注册 指定自己的用户名和密码 |
|
2.制定时间表和个人信息的完善 |
|
3.通过搜索区域搜索特定的项目 |
|
4.通过搜索区域搜索指定的用户 |
|
5.和用户进行项目的合作签署合约 |
| 员工 |
1.对系统所有使用人员的信息进行管理 |
|
2.对已经签署的合约进行管理(签署双方的情况跟进) |
.用例图
数据流图
4.技术需求
| 系统 |
技术需求 |
|
1.页面设计(html+css+js) |
|
2.数据库设计 |
|
3.服务器搭建 |
|
4.JDBC技术 |
|
5.Servlet技术 |
|
6.Jsp技术 |
.系统ER图
.系统板块图
5.面向领域模型
概念类包含 自由工作者、用户、员工、项目
概念的属性:
| 概念名称 |
拥有的属性 |
| 自由工作者 |
账户名字、姓名、电话、住址、个人时间表 |
| 用户 |
账户名、名字、电话、住址、个人时间表 |
| 员工 |
查看项目信息、管理项目和合约 |
| 项目 |
项目名称、项目描述、项目签署双方信息、项目时间范围 |
领域类图:
![drawing]()
系统设计
DDD介绍及其要求:DDD战略设计的几个核心概念:领域、子域、限界上下文、架构分层
(1)一个好的分层式结构,可以使得开发人员的更加高效的开发。利用领域驱动设计中的分层等战略设计,划分各个层次;定义好各层次之间的接口(运用依赖倒置原则)。
(2)领域划分成内聚性高的几个子领域,给出每个子领域的限界上下文。
(3)定义好实体和值对象
(3)定义好领域服务、领域应用
领域:自由工作者领域、用户领域、员工领域
子域:
- 自由工作者领域:查询信息子域、信息修改子域、签订合约子域。
- 用户领域:发布项目子域、签订合约子域、信息修改子域、查询信息子域。
- 员工领域:项目信息管理子域、用户信息管理子域、合约跟进子域。
限界上下文
- 查询信息子域:实现在现存系统的所有信息的查询包括发起项目用户的时间表、项目的具体信息、发起的客户、自由工作者信息。
- 签订合约子域:实现自由工作者和用户两方面的项目签署形成合作。
- 发布项目子域:实现用户端发起项目功能。
- 信息修改子域:实现了个人信息修改的功能。
- 项目管理子域:实现在员工端对项目信息的修改。
- 用户信息管理子域:实现了在员工端对所有用户和自由工作者信息的修改。
- 合约跟进子域:实现了在项目下的项目进度的跟进,联系合约双方。
架构分层
- 依照需求分析阶段对项目的结构分层和相关需要编码的对象进行编码,根据领域类图的相互关系和优先级来进行关系的搭建。
- 由底层往上进行编码,先实现基本对象的功能,再实现对象与对象之间的关联,再实现板块的功能,最后实现对整个系统的实现。
- 按照项目各项任务安排时间表来进行项目的开发和管理。
各个模块的时间安排
| 模块名称 |
优先级 |
依赖关系 |
开发时间/days |
| 系统框架的搭建 |
1 |
NULL |
3 |
| 用户功能模块 |
2 |
系统框架模块 |
5 |
| 自由工作者功能模块 |
2 |
系统框架模块 |
5 |
| 员工功能模块 |
3 |
系统框架模块 |
10 |
模块分解
| 模块名称 |
任务 |
所需时间/hours |
| 系统框架的搭建 |
|
24 |
|
数据库的设计 |
3 |
|
系统的页面设计 |
10 |
|
数据库操作包装 |
5 |
|
服务器搭建与数据库连接 |
8 |
| 用户功能模块 |
|
24 |
|
发布项目功能 |
8 |
|
信息修改功能 |
8 |
|
信息查询功能 |
4 |
|
签订合约功能 |
4 |
| 自由工作者功能模块 |
|
24 |
|
签订合约功能 |
8 |
|
信息修改功能 |
8 |
|
信息查询功能 |
8 |
| 员工功能模块 |
|
16 |
|
项目信息管理功能 |
6 |
|
用户信息管理功能 |
7 |
|
合约跟踪功能 |
3 |
甘特图
项目测试计划
- 测试范围:对整个系统进行全面的测试。
- 测试目标:保证系统能够实现所有的需求的功能,并且运行顺畅没有问题。
- 测试方法:黑盒测试、白盒测试、压力测试、手动测试。
- 测试人员安排:一共安排3个测试人员对系统进行测试。
测试计划表:
| 测试 |
测试目的 |
时间安排/days |
| 单元测试 |
测试每个模块的功能是否完善 |
2 |
| 集成测试 |
测试模块与模块之间的功能是否完善 |
4 |
| 系统测试 |
测试系统的所有功能是否完善 |
6 |
相关截图
编辑截图:
![drawing]()