2022软件代码开发技术作业三 | 综合系统开发----需求分析
综合系统开发|需求分析
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/gdgy/2022softwarecodedevelopmenttechnology |
---|---|
这个作业的要求在哪里 | https://edu.cnblogs.com/campus/gdgy/2022softwarecodedevelopmenttechnology/homework/12494 |
目标 | 学会运用UML、领域驱动设计方法、软件设计模式等知识,对系统需求进行建模; |
学会撰写需求规格说明书,并完成项目后续的开发计划; | |
掌握对 Git 的使用,对整个项目采用增量式更新. |
需求规格说明书
1. 问题定义
一家公司提供服务出租,自身有一些员工,另外还有很多自由职业者作为服务商存在。公司目前使用Excel工作表来管理他们的客户(自由职业者),时间表等。Excel解决方案无法很好地进行扩展。它无法应对多用户使用的场景,也不提供安全和审计日志。因此他们决定构建一个新的基于Web的解决方案。以下是核心要求:
搜索自由职业者分类的功能
用于存储联系自由职业者的不同渠道的解决方案
搜索项目分类的功能
搜索客户分类的功能
维护合同中自由职业者的时间表
2. 需求分析
2.1系统需求
2.1.1功能需求
公司需要一个平台来管理公司员工信息、自由职业者信息、客户信息、项目信息、合同信息。其中
- 自由职业者、客户可以查看和修改个人的基本信息
- 客户可以发布和撤销自己的项目,查看审计日志,签订、查看合同。
- 管理员可以管理员工信息、管理自由职业者个人信息、管理客户信息,管理合同,管理项目信息,管理审计信息。
2.1.2 数据需求
1.输入数据
- 员工信息:id、姓名、性别、电话号码、邮箱地址、住址,分类信息、角色信息
- 自由职业者信息:id、姓名、性别、电话号码、邮箱地址、住址 、服务类型、联系方式
- 客户信息:id、姓名、性别、服务类型、联系方式、客户类型
- 项目表:id、项目描述、自由职业者信息、服务对象信息、项目类型、完服成情况
- 时间表:id、自由职业者id、空闲时间段
2.存储数据:
- 审计信息:操作者id、操作内容、操作结果、备注
3.输出数据
- 操作结果:操作者id,操作内容,操作结果、备注
2.1.3非功能性需求
性能需求
- 响应时间:尽可能地短,达到1到2秒
- 查询信息过程时间不超过30秒
- 支持500名以上用户并发使用,保证性能不受影响
安全性需求
- 权限控制: 根据不同用户角色,设置相应权限的界面。管理员可管理客户、员工自由职业者和项目信息,客户只可发布项目和在被接单前删除项目,自由职业者只可管理自己的时间表和联系方式。
- 重要数据加密: 对一些重要的数据进行加密,如用户密码,重要参数等。
- 数据备份: 允许管理员进行数据的备份和恢复,以弥补数据的破坏和丢失。
2.1.4运行环境
- 客户端: 操作系统:Windows10(64位) 浏览器:Microsoft Edge浏览器、IE浏览器10/11、Chrome浏览器、360浏览器等多种主流浏览器。
- 应用服务器端: 操作系统:Ubuntu 18.04 64位 数据库访问:MyBatis
2.2领域驱动设计
2.2.1 设计过程
2.2.2定义概念类(领域对象)
寻找概念类,得到:
员工:employees
自由职业者:professional
客户:customer
项目;project
时间表:schedule
添加关联、属性,得到领域模型
2.3分析建模
功能模型
一层数据流图
二层数据流图
用例图
3.总体设计
HIPO图
4.总体设计
1.项目时间安排表
任务名称 | 活动名称 | 预期活动工期 | 预计开始时间 | 预计结束时间 | 矫正后活动工期 | 矫正后开始时间 | 矫正后结束时间 |
---|---|---|---|---|---|---|---|
需求开发 | 6个工作日 | 2022/5/10 | 2022/5/15 | 6个工作日 | 2022/5/10 | 2022/5/15 | |
需求获取 | 1个工作日 | 2022/5/10 | 2022/5/10 | 1个工作日 | 2022/5/10 | 2022/5/10 | |
需求分析 | 2个工作日 | 2022/5/11 | 2022/5/12 | 2个工作日 | 2022/5/11 | 2022/5/12 | |
撰写需求规格说明书 | 2个工作日 | 2022/5/13 | 2022/5/14 | 2个工作日 | 2022/5/13 | 2022/5/14 | |
需求验证 | 1个工作日 | 2022/5/15 | 2022/5/15 | 1个工作日 | 2022/5/15 | 2022/5/15 | |
总体设计 | 3个工作日 | 2022/5/16 | 2022/5/18 | 1个工作日 | 2022/5/16 | 2022/5/18 | |
开发标准确定 | 1个工作日 | 2022/5/16 | 2022/5/16 | 1个工作日 | 2022/5/16 | 2022/5/16 | |
架构设计 | 1个工作日 | 2022/5/17 | 2022/5/17 | 1个工作日 | 2022/5/17 | 2022/5/17 | |
单元模块设计 | 1个工作日 | 2022/5/18 | 2022/5/18 | 1个工作日 | 2022/5/18 | 2022/5/18 | |
详细设计 | 6个工作日 | 2022/5/19 | 2022/5/24 | 6个工作日 | 2022/5/19 | 2022/5/24 | |
过程设计 | 3个工作日 | 2022/5/19 | 2022/5/21 | 3个工作日 | 2022/5/19 | 2022/5/21 | |
人机交互界面设计 | 3个工作日 | 2022/5/22 | 2022/5/24 | 3个工作日 | 2022/5/22 | 2022/5/24 | |
实现 | 13个工作日 | 2022/5/24 | 2022/6/5 | 13个工作日 | 2022/5/24 | 2022/6/5 | |
数据库设计 | 1个工作日 | 2022/5/24 | 2022/5/ 24 | 1个工作日 | 2022/5/24 | 2022/5/ 24 | |
架构搭建 | 1个工作日 | 2022/5/25 | 2022/5/25 | 1个工作日 | 2022/5/25 | 2022/5/25 | |
员工管理 | 2个工作日 | 2022/5/26 | 2022/5/27 | 1个工作日 | 2022/5/26 | 2022/5/26 | |
自由职业者管理 | 2个工作日 | 2022/5/28 | 2022/5/29 | 1个工作日 | 2022/5/27 | 2022/5/27 | |
客户管理 | 2个工作日 | 2022/5/30 | 2022/5/31 | 1个工作日 | 2022/5/28 | 2022/28 | |
项目管理 | 4个工作日 | 2022/6/1 | 2022/6/4 | 4个工作日 | 2022/5/29 | 2022/6/1 | |
审计管理 | 2个工作日 | 2022/6/4 | 2022/6/5 | 2个工作日 | 2022/6/1 | 2022/6/2 | |
测试 | 7个工作日 | 2022/6/3 | 2022/6/9 | 7个工作日 | 2022/6/3 | 2022/6/9 | |
单元测试 | 2个工作日 | 2022/6/3 | 2022/6/4 | 2个工作日 | 2022/6/3 | 2022/6/4 | |
集成测试 | 2个工作日 | 2022/6/5 | 2022/6/6 | 2个工作日 | 2022/6/5 | 2022/6/6 | |
系统测试 | 2个工作日 | 2022/6/7 | 2022/6/8 | 2个工作日 | 2022/6/7 | 2022/6/8 | |
测试总结 | 1个工作日 | 2022/6/9 | 2022/6/9 | 1个工作日 | 2022/6/9 | 2022/6/9 | |
验收 | 3个工作日 | 2022/6/10 | 2022/6/12 | 3个工作日 | 2022/6/10 | 2022/6/12 | |
验收测试 | 2个工作日 | 2022/6/10 | 2022/6/11 | 2个工作日 | 2022/6/10 | 2022/6/11 | |
产品交付 | 1个工作日 | 2022/6/12 | 2022/6/12 | 1个工作日 | 2022/6/12 | 2022/6/12 |
2、矫正计算方法
(1)在实际开发中,需求开发、测试和验收过程所需时间与计划大致相同,所以时间花费和预期出入不大;
(3)因为实现中员工管理、自由职业者管理,客户管理模块的功能具有相似性,部分代码可以复用,所以实现过程可以按照1/2时间计算。
git链接:https://github.com/djlbet123/ServiceProvidePlatform