作业四:需求分析和系统改进
这个作业属于哪个课程 | 2022软件代码开发技术 |
---|---|
这个作业要求在哪里 | 需求改进&系统设计 |
这个作业的目标 | 基于软件开发需求,通过UML,结合领域驱动设计方法、软件设计模式等知识,对内容进行建模,并撰写需求规格说明书 建立项目的git仓库并初始化 |
一、背景
一家公司提供服务出租,自身有一些员工,另外还有很多自由职业者作为服务商存在。公司目前使用Excel工作表来管理他们的客户(自由职业者),时间表等。Excel解决方案无法很好地进行扩展。它无法应对多用户使用的场景,也不提供安全和审计日志。因此他们决定构建一个新的基于Web的解决方案。以下是核心要求:
- 搜索自由职业者分类的功能
- 用于存储联系自由职业者的不同渠道的解决方案
- 搜索项目分类的功能
- 搜索客户分类的功能
- 维护合同中自由职业者的时间表
二、需求规格说明书
功能性需求以及建模
系统概述
系统目的是提供一个服务出租的平台,给自由职业者提供外包工作机会,给有需求的顾客提供便捷查找所需的技术人员(自由职业者)的平台。对于自由职业者,保存其个人信息包括联系方式、技术能力介绍等基础信息。对客户提供展示项目需求和项目类别的功能。如双方签订合同,自由职业者需提供时间表,平台维护时间表的功能供合同双方查看。
系统基于B/S架构进行设计,在服务器进行数据管理,在网页上提供数据导入,输入和显示等功能。
系统特性
SF1:提供分类搜索自由职业者的功能
SF2:存储自由职业者信息
SF3:依照项目分类进行搜索
SF4:依照客户分类进行搜索
SF5:存储合同中自由职业者的时间表
SF6:查看合同中自由职业者的时间表
用例图
用力描述
ID | 1.1 |
---|---|
名称 | 提供分类搜索自由职业者的功能 |
参与者 | 客户 |
前置条件 | 客户登陆 |
正常流程 | 1.客户在搜索栏添加职业者标签的分类 2.进行搜索 |
ID | 1.2 |
---|---|
名称 | 存储自由职业者信息 |
参与者 | 自由职业者 |
正常流程 | 1.用户注册的时候填写个人信息 |
拓展流程 | 1.用户登陆后到个人后台进行信息修改 |
ID | 1.3 |
---|---|
名称 | 依照项目分类进行搜索 |
参与者 | 客户 |
前置条件 | 客户登陆 |
正常流程 | 1.在搜索栏中添加项目标签 |
ID | 1.4 |
---|---|
名称 | 依照客户分类进行搜索 |
参与者 | 自由职业者 |
前置条件 | 自由职业者登陆 |
正常流程 | 1.在搜索栏中添加客户类别标签 |
ID | 1.5 |
---|---|
名称 | 存储合同中自由职业者的时间表 |
参与者 | 自由职业者 |
前置条件 | 自由者职业者与客户签署合同 |
正常流程 | 1.在后台进行时间表的填写 |
ID | 1.6 |
---|---|
名称 | 查看合同中自由职业者的时间表 |
参与者 | 客户 |
前置条件 | 客户登陆系统并与某自由职业者签署合同 |
正常流程 | 1.点击当前生效合同 2.查看相关自由职业者的时间表 |
功能需求
上下文图
类图
非功能性需求
服务器需求
支持高峰1000人次的访问查询量
客户端需求
需要Edge、Chrome等浏览器支持
界面需求
便于操作,简洁美观
三、系统设计
DDD分层结构
基础设施层
基础层是贯穿所有层的,它的作用就是为其它各层提供通用的技术和基础服务,包括第三方工具、消息中间件、缓存以及数据库持久化等。
用户接口层:
负责向用户显示信息和解释用户指令,这里的用户可能是用户,也可能是外界其它系统。
一般包括用户接口、Web 服务等。
只处理用户显示和用户请求,不应包含领域或业务逻辑。
应用层:
关心处理完一个完整的业务,负责业务的编排、对象转换,世界业务由领域层完成
领域层:
可包含多个聚合代码包,共同实现领域模型的核心业务逻辑。聚合以聚合内的实体、方法、领域服务和事件等代码会放在该层目录。
参考文章DDD领域驱动设计实践
四、时间安排
流程 | 预计工作日(单位:日) | 矫正工作日(单位:日) | 开始时间 |
---|---|---|---|
需求分析 | 3 | 3 | 2022/4/9 |
数据库设计 | 2 | - | 2022/5/4 |
接口设计 | 2 | - | 2022/5/6 |
代码编写 | 5 | - | 2022/5/8 |
代码测试 | 2 | - | 2022/5/12 |
代码维护 | -- | -- | 2022/5/15 |
任务分解
模块名 | 任务名 | 预计活动工期(1个工作日8小时) |
---|---|---|
数据库设计 | 数据库设计 | 1个工作日 |
登录注册功能设计 | 登录、注册功能设计 | 1个工作日 |
客户信息管理 | 增删改查客户信息 | 1个工作日 |
自由职业者信息管理 | 增删改查自由职业者信息 | 1个工作日 |
合同信息管理 | 增删改查合同信息 | 1个工作日 |
部署系统 | 部署服务器 | 1个工作日 |
代码测试 | 测试代码功能性、健壮性 | 1个工作日 |
五、测试计划
1、测试范围
- 登录注册功能检测:包括客户与自由职业者的信息。
- 信息管理:客户自由职业者都能正常管理用户信息。
- 合同信息:客户与自由职业者都可正常浏览签署合同。
- 时间表:自由职业者能够安排显示时间表,客户可以进行查看。
2、测试目标
- 确保软件完成了它所承诺或公布的功能
- 确保软件满足了性能的要求
- 确保软件是健壮的和适应用户环境的
- 为软件的质量评估提供依据
- 为软件质量改进和管理提供帮助
3、测试方法
黑盒、白盒测试