开始的想法

DDD 学习笔记 | 极客时间 | 手把手教你落地 DDD

🏆 原文:02|迭代一概述:怎样开启一个麻雀虽小五脏俱全的项目?

简介

  • 开发一个企业管理系统
  • 可以为多个企业服务,需要是 SaaS 系统。SaaS 英文全称是 Software-as-a-Service,中文译作「软件即服务」
  • 第一个功能为「报工时」:为了完成报工时的功能,我们还要首先对组织人员项目等等进行管理

业务需求

需求一:租户管理

  • 这个系统可以给多家企业使用,每家企业的数据是隔离的(先实现一个企业的需求)
  • 实现对租户的增删改查操作

需求二:人员与组织管理

  • 管理部门
    • 多个开发中心
      • 每个开发中心下有多个开发组
    • 人事部、财务部等部门
  • 管理员工
    • 增删改查
    • 把员工分配到部门
      • 每个员工只能属于一个部门

需求三:项目管理

  • 一个租户企业可以有多个客户,可以在系统中对客户信息进行增删改查
  • 每个客户都有一个客户经理来跟进
  • 租户可以和它的客户签订多份合同,在系统中对合同信息进行增删改查
  • 每个合同都有一个销售人员负责
  • 可以开始和结束合同
  • 一个合同下可以有多个项目,系统可以对项目进行增删改查
  • 每个项目有一个项目经理
  • 可以在系统中开始和结束项目,需要记录开始和结束时间等信息

需求四:人员分配

  • 可以为项目分配人员
  • 人员可以退出项目
  • 一个项目可以有多个人员参与,一个人员可以同时参与多个项目
  • 要记录每个人员的投入百分比

需求五:工时登记

  • 员工每周都需要在系统中填报工时,登记自己哪天在哪个项目上投入来多少时间
  • 可对工时进行查询
  • 可对工时进行修改
  • 可以为投入的时间填写备注
  • 只有当一个员工分配到一个项目上以后,才能通过这个项目报工时

需求分析总结

  • 从全局视角找出「大功能模块」
  • 在「大功能模块」中找出「子功能」
  • 「子功能」推荐以一级列表平铺呈现,可以降低复杂度(反例见需求二),更利于分析问题

图例说明:

comments powered by Disqus