作业四:需求分析和系统改进

这个作业属于哪个课程 2022软件代码开发技术
这个作业要求在哪里 需求改进&系统设计
这个作业的目标 基于软件开发需求,通过UML,结合领域驱动设计方法、软件设计模式等知识,对内容进行建模,并撰写需求规格说明书
建立项目的git仓库并初始化

一、背景

一家公司提供服务出租,自身有一些员工,另外还有很多自由职业者作为服务商存在。公司目前使用Excel工作表来管理他们的客户(自由职业者),时间表等。Excel解决方案无法很好地进行扩展。它无法应对多用户使用的场景,也不提供安全和审计日志。因此他们决定构建一个新的基于Web的解决方案。以下是核心要求:

  1. 搜索自由职业者分类的功能
  2. 用于存储联系自由职业者的不同渠道的解决方案
  3. 搜索项目分类的功能
  4. 搜索客户分类的功能
  5. 维护合同中自由职业者的时间表

二、需求规格说明书

功能性需求以及建模

系统概述

系统目的是提供一个服务出租的平台,给自由职业者提供外包工作机会,给有需求的顾客提供便捷查找所需的技术人员(自由职业者)的平台。对于自由职业者,保存其个人信息包括联系方式、技术能力介绍等基础信息。对客户提供展示项目需求和项目类别的功能。如双方签订合同,自由职业者需提供时间表,平台维护时间表的功能供合同双方查看。

系统基于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、测试方法

黑盒、白盒测试

六、Git与博客编辑

博客

posted on 2022-05-04 14:09  CNLih0755  阅读(53)  评论(0编辑  收藏  举报