谢立新 | 2021软件代码开发技术作业三 | 综合系统开发-需求分析

这个作业属于哪个课程 软件代码开发技术
这个作业要求在哪里 综合系统开发----需求分析
这个作业的目标 1、掌握如何编写需求规格说明书
2、掌握UML(统一建模语言)的使用
3、掌握领域驱动设计方法
4、掌握Git增量式管理

一、领域驱动设计(Domain Driven Design)

领域驱动设计,是指通过统一语言、业务抽象、领域划分和领域建模等一系列手段来控制软件复杂度的方法论。

领域驱动设计关心的是业务中的领域划分和领域建模,其开发过程不再以数据模型为起点,而是以领域模型为出发点,研发过程如图:

分层架构

分层 作用
用户界面/展现层(User Interface) 负责向用户展现信息以及解释用户命令。
应用层(Application) 很薄的一层,用来协调应用的活动。它不包含业务逻辑。它不保留业务对象的状态,但它保有应用任 务的进度状态。
领域层(Domain) 本层包含关于领域的信息。这是业务软件的核心所在。在这里保留业务对象的状态,对业务对象和它们状态的持久化被委托给了基础设施层。
基础设施层(Infrastructure) 本层作为其他层的支撑库存在。它提供了层间的通信,实现对业务对象的持久化,包含对用户界面层的支撑库等作用。

二、需求规格说明书

1 前言

1.1 目的

​ 为明确软件需求、规划项目、确认进度、组织软件开发并测试而撰写本文档。同时,详细分析项目总体需求,可以作为软件开发工作的基础和依据以及确认测试和验收的依据。

1.2 范围

(1)此软件系统将命名为:服务出租管理系统

(2)此软件系统是干什么的:解决Excel管理客户、时间表方案无法扩展和无法应对多用户场景问题;为公司的服务出租业务提供安全和审计功能。

1.3 定义

(1)自由职业者:作为服务商来为该公司提供服务,与公司间有合同制约。

(2)客户:使用该公司提供的服务。

(3)项目:该公司与客户达成协商后进行的活动。

(4)时间表:管理自由职业者的时间安排表。

1.4 参考资料

https://www.infoq.cn/minibook/domain-driven-design-quickly

https://blog.csdn.net/bluishglc/article/details/6681253

https://wenku.baidu.com/view/460a8dd2b9f3f90f76c61b14.html

http://www.woshipm.com/pmd/933896.html

2 项目概述

2.1 产品描述
2.1.1 项目背景

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

核心要求如下:

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

​ 本系统旨在解决提供服务出租的公司的客户/时间表管理事项,具有针对性的解决Excel解决方案无法解决的多用户场景问题,并为使用者提供完整的安全与审计日志解决方案,可提供使用者的管理效率。

2.2 产品功能

本产品主要有如下功能:

(1)自由职业者注册登录成为服务提供者,并可管理自己的个人信息

(2)客户可提出服务要求和服务时间

(3)服务提供者可选择接收某个服务要求,将记录在时间表

(4)服务提供者与客户合同的签署

(5)提供对自由职业者、客户的查询

(6)提供对项目的查询

(7)统一管理合同与时间表

(8)对系统执行的操作进行日志记录

3 需求分析

3.1 功能需求
3.1.1 领域模型

(1)识别实体:自由职业者、客户、服务任务、时间表、日志、合同

(2)领域建模

  • 自由职业者:服务的提供者,可接受客户提出的任务并与客户签订合同;可管理自己的时间表
  • 客户:服务的享受者,可以发布任务,可查询任务实行的时间表
  • 服务任务:为客户和自由职业者间建立一种联系的项目
  • 时间表:自由职业者对任务的执行安排记录
  • 日志:系统中的操作的记录
  • 合同:客户与自由职业者之间项目合作的一种制约
3.1.2 用例模型

3.1.3 ER模型

3.2 非功能需求

3.2.1 性能需求

  • 程序响应时间不超过10s,超时提示
  • 保证高并发不宕机

3.2.2 安全性需求

  • 系统对使用者进行权限验证
  • 系统应对数据进行定期持久化备份
  • 系统应对所有修改操作进行日志记录
  • 系统应对敏感数据进行加密处理

3.2.3 硬件需求

  • 可与互联网通信的计算机
  • 具有图形显示界面的计算机
  • 网络连接速率不低于10Kbit/s

3.2.4 软件需求

  • 浏览器要求:市场上主流浏览器如Chrome、Microsoft Edge、Mozilla Firefox、Safari等

  • 支持HTML5标准

三、项目时间安排表

活动 任务 预期工期 预期开始时间 预期结束时间 矫正开始时间 矫正结束时间
需求分析 需求获取 7个工作日 2021.4.23 2021.5.1 2021.5.2 2021.5.2
需求分析 1个工作日 2021.5.1 2021.5.1 2021.5.2 2021.5.2
撰写需求规格说明书 2个工作日 2021.5.2 2021.5.3 2021.5.3 2021.5.4
总体设计 系统设计 5个工作日 2021.5.5 2021.5.10 2021.5.5 2021.5.10
软件设计 3个工作日 2021.5.10 2021.5.13 2021.5.10 2021.5.13
详细设计 数据库设计 1个工作日 2021.5.13 2021.5.14 2021.5.13 2021.5.14
界面设计 7个工作日 2021.5.14 2021.5.21 2021.5.14 2021.5.21
开发 数据库实现 1个工作日 2021.5.21 2021.5.22 2021.5.21 2021.5.22
环境搭建、系统架构搭建 1个工作日 2021.5.23 2021.5.24 2021.5.23 2021.5.24
自由职业者功能实现 7个工作日 2021.5.24 2021.5.31 2021.5.24 2021.5.31
客户功能实现 7个工作日 2021.5.31 2021.6.7 2021.5.31 2021.6.7
测试 单元测试 0.5个工作日 2021.6.7 2021.6.7 2021.6.7 2021.6.7
集成测试 0.5个工作日 2021.6.7 2021.6.7 2021.6.7 2021.6.7
系统测试 1个工作日 2021.6.8 2021.6.9 2021.6.8 2021.6.9
交付 系统交付 1个工作日 2021.6.9 2021.6.9 2021.6.9 2021.6.9

四、GitHub地址及项目issue截图

GitHub: https://github.com/ecochap/ServiveProvideSystem

posted @ 2021-05-04 17:15  ecochap  阅读(104)  评论(0)    收藏  举报