综合系统开发----需求分析

前言


这个作业属于哪个课程 2021软件代码开发技术
这个作业要求在哪里 综合系统开发----需求分析
这个作业的目标 结合领域驱动设计方法、软件设计模式等知识对需求进行建模,并撰写需求规格说明书

需求规格说明书

一、引言

1. 编写目的

    为明确软件需求、安排项目规划与进度、组织软件开发与测试,撰写本文档。

2. 软件需求分析理论

    软件需求分析(Software Reguirement Analysis)是研究用户需求得到的东西,完全理解用户对软件需求的完整功能,确认用户软件功能需求,建立可确认的、可验证的一个基本依据。
    软件需求分析是一个项目的开端,也是项目实施最重要的关键点。据有关的机构分析结果表明,设计的软件产品存在不完整性、不正确性等问题80%以上是需求分析错误所导致的,而且由于需求分析错误造成根本性的功能问题尤为突出。因此,一个项目的成功软件需求分析是关键的一步。

3. 软件需求分析目的

    软件需求分析应尽量提供软件实现功能需求的全部信息,使得软件设计人员和软件测试人员不再需要需求方的接触。这就要求软件需求分析内容应正确、完整、一致和可验证。此外,为保证软件设计质量,便于软件功能的休整和验证,软件需求表达无岔意性,具有可追踪性和可修改性。

4. 参考文献

  1. 《需求工程—软件建模与分析(第2版)》 丁二玉(著者),骆斌(编者) 高等教育出版社
  2. 《代码精进之路:从码农到工匠》 张建飞 人民邮电出版社

二、需求概述

1. 项目背景

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

2. 需求概述

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

3. 面向用户分析

    针对出租服务管理系统的使用对象不同来进行分析:

  • 自由职业者:可以登入系统,查看/接受客户发布的项目,修改个人信息,维护时间表
  • 客户:可以登入系统,发布项目,修改个人信息,查询自由职业者的时间表
  • 管理员:可以登入系统,管理项目,管理客户信息,管理自由职业者信息,查看安全日志和审计日志

三、系统功能需求

1. 领域驱动设计

    领域驱动设计中的“领域”是指“应用程序逻辑所围绕的知识和活动领域”,即在软件领域中被称为“业务逻辑”的东西。在领域驱动设计中,业务逻辑被视为软件的心脏。


领域对象模型构建

  • 概念类:客户(User)、自由职业者(Professional)、项目(Project)、时间表(Schedule)
  • 添加属性和方法:
  • 关联领域对象模型:

2. 构造E-R图


3. 业务逻辑流程


4. 用例图


四、软硬件或其他外部系统接口需求

1. 用户界面

  • 界面美观清晰,图标识别性高
  • 操作舒适简单,交互性高,易用性强

2. 技术需求

  • 开发模式:出租服务管理系统采用前后端分离的开发模式 —— 后端仅返回前端所需的数据,前端负责渲染HTML页面。在这种模式中,后端将每个功能块划分为多个接口;前端通过访问接口来获取数据,并将数据展示给用户。
  • 开发语言:前端(html+css+javascript)、后端(Java)

3. 运行环境

  • 出租服务管理系统基于web端开发,适配于Chrome浏览器、Firefox浏览器、Microsoft Edge等多种主流浏览器

五、其他非功能需求

1. 性能需求

  • 请求响应时间控制在1-2秒内
  • 考虑服务器并发量,至少支持1000名用户并发使用本系统且系统不崩溃、运行速度不受影响

2. 安全性需求

  • 权限控制:设置用户角色权限,限制用户访问的页面
  • 重要数据加密:如密码等数据需进行加密处理
  • 数据备份:支持数据备份的功能,防止数据丢失或损毁

3. 扩展性需求

  • 支持导出数据
  • 支持数据统计

制定计划

1. git仓库链接

出租服务管理系统_git仓库

2. 时间安排表

任务名称 活动名称 工期(单位天) 开始时间 结束时间 矫正后工期(单位天) 矫正后开始时间 矫正后结束时间
需求管理 8 2021/4/25 2021/5/3 8 2021/4/25 2021/5/3
需求获取 2 2021/4/25 2021/4/27 2 2021/4/25 2021/4/27
需求分析 2 2021/4/27 2021/4/29 2 2021/4/27 2021/4/29
需求规格编写 3 2021/4/29 2021/5/2 3 2021/4/29 2021/5/2
需求验证 1 2021/5/2 2021/5/3 1 2021/5/2 2021/5/3
总体设计 6 2021/5/3 2021/5/9 6 2021/5/3 2021/5/9
系统设计 2 2021/5/3 2021/5/5 2 2021/5/3 2021/5/5
数据库设计、模块设计 4 2021/5/2 2021/5/9 4 2021/5/2 2021/5/9
软件开发 20 2021/5/9 2021/6/1 16 2021/5/9 2021/5/29
接口设计 3 2021/5/9 2021/5/12 3 2021/5/9 2021/5/12
数据库实现 2 2021/5/12 2021/5/14 2 2021/5/12 2021/5/14
环境搭建 1 2021/5/14 2021/5/15 1 2021/5/14 2021/5/15
项目管理 4 2021/5/15 2021/5/19 3 2021/5/15 2021/5/18
客户管理 4 2021/5/19 2021/5/23 3 2021/5/18 2021/5/21
自由职业者管理 4 2021/5/23 2021/5/27 3 2021/5/21 2021/5/25
系统设置 5 2021/5/27 2021/6/1 4 2021/5/25 2021/5/29
软件测试 10 2021/6/1 2021/6/11 10 2021/5/29 2021/6/8
单元测试 3 2021/6/1 2021/6/4 3 2021/5/29 2021/6/1
集成测试 3 2021/6/4 2021/6/7 3 2021/6/1 2021/6/4
系统测试 2 2021/6/7 2021/6/9 2 2021/6/4 2021/6/6
压力测试 2 2021/6/9 2021/6/11 2 2021/6/6 2021/6/8
软件交付 3 2021/6/11 2021/6/14 3 2021/6/8 2021/6/11
验收测试 2 2021/6/11 2021/6/13 2 2021/6/8 2021/6/10
系统上线 1 2021/6/13 2021/6/14 1 2021/6/10 2021/6/11

矫正方法:模块和接口的开发流程类似,可以减少开发时间


3. issues截图


截图展示


博文编辑


posted @ 2021-05-04 11:21  皮皮莹  阅读(446)  评论(0编辑  收藏  举报