文章目录

  • 一 项目背景与目标
  • 二 核心需求分析
    • 初步需求详细分析
    • 需求总结表
  • 三 DDD核心概念与开发流程
    • 领域和领域专家
    • 领域驱动设计开发流程
  • 四 潜在扩展需求

一 项目背景与目标

  1. 项目定位

    • 开发基于SaaS的企业管理系统,聚焦软件服务企业的细分市场,功能需求包括工时管理、考勤管理、项目管理、请加管理等核心功能。
    • 采用多租户架构,支持企业按需付费使用,降低客户运维成本。
  2. 迭代规划

    • 分三个阶段迭代开发,逐步扩展需求复杂性和灵活性。
    • 迭代一目标:实现最小闭环功能,覆盖从需求分析到代码实现的完整流程。

二 核心需求分析

  • 领域(Business Domain)/业务领域指的是软件要解决的那些业务问题。在本例里, “企业管理”就是要处理的领域
  • 在领域驱动设计中“领域专家”(业务专家),需要对业务有总体性和本质性的把握,同时对业务发展也要有一定前瞻性。
    在很多企业中领域专家是多年业务经验中级管理干部或者是产品经理。

初步需求详细分析

  • 目前项目的初步需求如下:
  1. 租户管理:支持租户(企业客户)的增删改查,确保数据隔离。

  2. 人员与组织管理:支持部门层级管理(如开发中心、开发组、直属部门)。员工管理:增删改查功能,且员工需归属至单一部门。

  • 人员和组织结构图:
    在这里插入图片描述
  1. 项目管理
    • 客户管理:租户可维护其客户列表,每个客户分配客户经理。
    • 合同管理:支持合同增删改查,关联销售负责人及起止时间。
    • 项目管理:合同下可创建多个项目,分配项目经理,记录项目周期。

  • 客户、合同、项目的关系图:
    在这里插入图片描述
  1. 人员分配
    • 支持员工跨项目分配,记录预计投入时间百分比。
    • 目标:优化人力资源调配,实现利用率最大化。
  • 人员和项目将投入的关系:
    在这里插入图片描述
  1. 工时登记
    • 仅允许已分配至项目的员工登记工时。
    • 功能:按周填报每日工时,支持修改及备注。
  • 工时登记的界面原型
    在这里插入图片描述

需求总结表

在这里插入图片描述

三 DDD核心概念与开发流程

领域和领域专家

  1. 领域与领域专家
    • 领域定义:系统解决的业务问题(如“企业管理”)。
    • 领域专家角色:由资深业务人员或产品经理担任,负责业务本质的抽象与前瞻性规划。

领域驱动设计开发流程

  1. 开发流程
    • 模型建立阶段
      • 行为需求捕获:通过事件风暴(替代传统用例建模)识别功能流程。
      • 领域建模:用业务语言构建模型,业务专家参与评审。
    • 模型实现阶段
      • 架构设计:包括微服务(进程间)和DDD分层架构(进程内)。
      • 数据库设计与代码实现:将领域模型转化为技术方案。

  • 领域驱动设计主要的开发流程:
    在这里插入图片描述
  1. 流程特点
    • 非线性的敏捷迭代:各步骤反复穿插,以领域模型为核心驱动。
    • 业务与技术边界明确:模型建立阶段禁用技术术语,确保业务可理解性。

四 潜在扩展需求

  1. 安全性:用户认证与权限控制(如角色基于访问权限)。
  2. 扩展性:支持动态字段以满足行业差异化需求。
  3. 数据分析:工时利用率报表、资源负载预测等高级功能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/85690.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/85690.shtml
英文地址,请注明出处:http://en.pswp.cn/pingmian/85690.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深度融合数智化,百胜软件联合华为云加速零售行业转型升级

当前,企业数字化转型纵深推进,满足企业数智化全阶段、全场景的需求变得尤为关键。为此,华为云携手上万家伙伴共同发起第三届828 B2B企业节,依托云底座为企业数智化供需“架桥”“铺路”,加速企业智改数转,助…

《HTTP权威指南》 第4章 连接管理

带着问题学习(通常是面试考点) HTTP是如何使用TCP连接的TCP连接的时延、瓶颈及存在的障碍HTTP的优化,包括并行连接、keep-alive(持久连接)和管道化连接管理连接时应该和不应该做的事 TCP连接 TCP的数据通过IP分组&am…

StartUML入门级使用教程——画Class类图

一、破解安装StartUML StarUML建模工具最新版破解安装详细教程https://blog.csdn.net/m0_74146638/article/details/148709643?spm1001.2014.3001.5502 二、类图实战 1.主界面 ​ 默认打开starUML后,会默认进入类图模式,各模块区域功能如下&#x…

中科亿海微SoM模组——FPGA+DSP核心板

FPGADSP核心板是基于中科亿海微EQ6HL130型FPGA芯片搭配国产DSP开发的高性能核心板卡。对外接口采取邮票孔连接方式,可以极大提高信号传输质量和焊接后的机械强度。核心板卡的系统框图如下图所示。 图 FPGADSP核心板系统框图 FPGA采用中科亿海微136K LUT资源EQ6HL130…

CentOS 7 虚拟机网络配置异常 典型问题:启动了NetworkManager但是network无法启动

问题背景 在 VMware 虚拟机中使用 CentOS 7 时,出现以下网络问题: 命令行重启网络服务失败,提示 RTNETLINK answers: File exists 等冲突错误图形界面网络设置无法打开,提示需要启动 NetworkManager网卡 ens33 无法获取 IPv4 地…

细节/数学/滑动窗口

题目意思: 判断字符串是否可以按照题目条件缩短。 思路: 用栈的思想写,对每一次的大小写都进行滚动判断。 tips: 这里面要注意的东西就有一点多了,首先是字符串的遍历问题auto更方便,其次是对小写和大…

WebeServer实现:学到了哪些东西

前言 这里话就是总结一下之前没讲过的一些东西 系统调用 accept与accept4   当我们调用accept接收一个新的fd的时候,往往需要在调用fcntl将这个fd变成非阻塞IO,那么有没有一个系统调用可以一次性做完这两件事呢,有的有的就是accept4. // accept 函数…

React 虚拟dom

JSX创建出ReactElement对象 最终形成一个JS树 将React.createElement对象转为真实DOM的方法使用render函数 为什么要虚拟 dom 状态难以跟踪 ## 操作真实dom开销大 ,并且操作会引起频繁的回流和重绘,并且不涉及批处理 声明式编程 从虚拟dom向真实dom去…

Spring MVC异常处理机制

Spring MVC提供了多种异常处理机制,以下是核心处理方式及实现方法: 一、局部异常处理(Controller级别) @ExceptionHandler注解 在Controller内部定义异常处理方法,捕获当前控制器抛出的指定异常。@Controller public class UserController {@GetMapping("/test"…

MySQL 8.x配置MGR高可用+ProxySQL读写分离(一):MGR构建MySQL高可用

#作者:stackofumbrella 文章目录 简介MGR优点MGR缺点MGR适用场景单主模式和多主模式组复制介绍组复制插件架构图单主模式多主模式配置主机名解析安装MGR插件 MGR故障转移恢复MGR集群 简介 MGR(MySQL Group Replication)是MySQL 5.7.17版本诞…

保安员证考试的理论知识部分,重点考查的法律法规具体有哪些?

保安员证考试理论知识部分,重点考查的法律法规主要有以下几种: 《保安服务管理条例》:作为保安行业的专门法规,是考试核心。重点考查保安服务活动规范,如保安服务的范围、资质要求等;保安员的权利与义务&am…

【好用但慎用】Windows 系统中将所有 WSL 发行版从 C 盘迁移到 非系统 盘的完整笔记(附 异常处理)

🚀 将所有 WSL 发行版从 C 盘迁移到 I 盘的完整教程(含 Podman / NVIDIA Workbench / Ubuntu 等) 【无标题】使用 Chocolatey 安装 WSL 管理工具 LxRunOffline-CSDN博客 免责声明 重要提示 在执行 WSL 迁移操作前,请务必仔细阅读…

Oracle APEX 通过rtf模板下载PDF文件(BIP)

1. 上传模板文件 共享组件 > 报表布局 2. 编写SQL文 共享组件 > 报表查询 报表布局中选择1中设置完的报表布局,然后编写SQL文提供数据 3. 添加下载按钮 在页中添加一个下载按钮,添加动态操作,选择打印报告 4. 下载PDF文件 点击Pri…

Web Seach 搜索 MCP 启动!

🚀 开启你的 AI 助手搜索能力!开源 Web 搜索 MCP 服务器上线! 在 ChatGPT、Claude 等 AI 工具成为生产力新核心的今天,我们往往面临一个尴尬的问题:模型不知道最新的网络信息。虽然 GPT-4o 和 Claude 支持联网功能&am…

005微信小程序npm包_全局数据共享和分包

npm包_全局数据共享和分包 1. 使用npm包1.1 Vant Weapp1.2 API Promise化 2. 全局数据共享3. 分包3.1 分包的加载规则3.2 分包的体积限制3.3 使用分包3.3 独立分包3.4 分包预下载 1. 使用npm包 小程序对npm进行了支持与限制,限制如下: 不支持依赖于 No…

DPO直接偏好函数的学习解读

DPO, Direct Preference Optimization,采用直接优化策略满足人类偏好,使得LLM对于给定输入,生成能用输出的概率高于生成不能用输出的概率。 1)DPO优化目标 在DPO训练过程中,模型通过最大化可用回答相对于不可用回答的…

【开源初探】基于 Qwen2.5VL的文档解析工具:docext

源码地址: https://github.com/NanoNets/docext 概述 docext 是一个由视觉语言模型(vlm)提供支持的全面的本地文档智能工具包。vlm 使用的是基于 Qwen2.5VL-3B 的模型,应该是在此模型基础上进行的微调。 它提供了三个核心功能&…

Python 正确重载运算符(增量赋值运算符)

增量赋值运算符 Vector 类已经支持增量赋值运算符 和 * 了,如示例 13-15 所示。 示例 13-15 增量赋值不会修改不可变目标,而是新建实例,然后 重新绑定 >>> v1 Vector([1, 2, 3]) >>> v1_alias v1 # ➊ >>> …

XCUITest + Objective-C 详细示例

💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】

redis分布式锁 Redisson在电商平台开发中的实际应用

目录 概述 Redis分布式锁的实现方式 1. 基于SETNX命令(String类型) 2. 使用SET命令的NX和EX参数(推荐方式) 3. 基于Lua脚本实现复杂逻辑 4. RedLock算法(多节点Redis实现) Redisson的分布式锁 Redis…