语言沟通中的设计实现

news/2024/12/19 18:18:30/文章来源:https://www.cnblogs.com/wxwall/p/18617754

系统设计的目的是更好的支持需求

我们常说,只要业务能将你的需求描述清楚,能自圆其说,我们就有办法实现。

这其实是系统设计的最理想的状态,

如果业务没想清楚,那么在系统实现中,一定会把问题暴露出来。很多时候,问题的暴露源于没有考虑周全亦或都没有考虑这种场景!

比如,从业务层面上允许商品超卖,但又没给出超卖了怎么处理,这时候,系统就处理不了。

那么,语言沟通与设计有没有关联性了?

我们设计的系统有一个很有意思的特点,理解成IO+计算,人输入命令,计算机将信息处理完成后输出结果,映射到真实世界。

我用微信聊天、我在淘宝买东西、商家要做活动、下单送礼品、用户写文章发表、闹钟到点提醒、电脑到点自动关机等等

这些一个一个的事件、命令、动作似乎都可以理解成语法中的主谓宾。

如果系统设计也按这种主谓宾结构作为设计思路,那么一切与业务的沟通,就要找出业务需求中的主谓宾,对应到系统中。

例如

业务想在双11做一场活动,活动规则是用户必须每天签到,签到次数到了就可以得到一张大额券。

且不讨论细节规则合理性问题,在这个需求上,我们拆解语法。

1,业务做一场活动

2,用户每天签到

3,签到达到门槛获得一张券

核心逻辑就这三点,先找出需求中的主谓宾

业务(主)建(谓)活动(宾)

用户(主)参与(谓)活动(宾)

用户(主)签到(谓)完成任务(宾)

用户(主)完成活动任务(谓)获得券(宾)

建模

业务和用户为主语,创建、参与、完成、获得为动作谓语,活动、任务、券为宾语

以此得到这个需求的实体模型:活动、任务、券

后续业务认为完成任务不发券,发现金,那此时模型中的实体就不是券,而是现金与券的抽象,比如奖品。

这个思路与最近流行四色建模方式有一曲同工之秒。

四色建模

先了解下四色建模步骤

第一步:寻找要追溯的事件

第二步:识别“时标对象”

第三步:寻找时标对象周围的“人、地、物”

第四步:抽象“角色”

第五步:补充“描述”信息


四色建模思路翻译成主谓宾就是

第一步:找谓语动词,也就是事件

第二步:找宾语,也就是时标对象

第三步:找时标对象的”人、地、物“,其实就是找到主语

第四步:找到主语后,分类、抽象

第五步:补充”描述“信息,就是补充领域属性信息


主谓宾在系统设计中的应用

  1. 分类找出各自的语义

  1. 建模板

  1. 建实例

举例流程并非线上真实流程,而是推演的过程,在此流程推演过程中,发现许多原来设计不合并且难自圆其说的问题。在此说明!


结束语

建模中有个很大的风险是当业务不明确时,当时建模型在业务发展后期已不适用,需要更改模型,而更改模型会引入更多成本。所以,多与业务沟通中了解业务尝试方向,尽量减少建模风险。

而本文中的主张也同样有这种风险,因为参与的项目有限,能够拿这套理论推演的样本有限,难免有疏漏之处,如果有,请指出一起完善。

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

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

相关文章

Python 解密 Navicat导出的数据库连接,Navicat数据库连接导入DBeaver。

最近公司收到Navicat律师告知书,让停止使用Navicat,用了那么久的数据库连接工具,不得不换其他的。 最终选择了开源的DBeaver。 安装完DBeaver后,把Navicat导出的connections.ncx文件直接导入DBeaver。直接访问提示连接失败,因为connections.ncx文件里的密码都是加密的。 如…

营销系统缺失投放概念

营销系统现阶段分为营销权益工具、玩法、招商提报三大块。其中权益工具主要负责创建券、促销、换购类优惠权益。玩法负责用户与平台之间的连接,通过任务式交互获得权益。招商提报主要是面向商家参与活动的连接。比如要做一个活动,需要从招商发布活动信息,提报统一创建营销权…

一款使用NET+MQTT+Arduino开发的智能浇花工具

最近闲来无事,对硬件控制产生了兴趣。看到家里的盆栽,我突然萌生了制作一个自动浇水工具的想法。通过在淘宝搜索并查找相关资料,我了解了需要的硬件和通信协议。接下来,我们先看看需要做哪些准备工作(如安装 Arduino、.NET、EMQX 工具等,请自行搜索并完成安装)。 准备工…

营销平台过去与展望

营销是什么 营销是商家给用户权益,让用户少花钱买到商品,以此达到商家的营销目的。 以此逻辑为基础,展开几个关键角色用户 平台 商家他们各自在营销侧的诉求是用户需要有获得优惠的途径 门店需要有发放优惠的能力 商家需要有优惠活动的功能营销工具权益建设 以这些诉求为切入…

圈选概念

电商系统中,最核心的几个点就是如何圈选出商品、消费者、门店 在整个逻辑中,圈选有两个点选出目标集合 给出圈选的规则选出目标集合 以商品为例,在商品选品中,选出目标集合,有几种方式通过人工方式将已有的商品列表导入到系统中 通过外部系统收集的商品列表导入到系统中,…

python 悬臂梁的有限元分析

依赖包 fenics是一种用于有限元计算的动态面向对象库,它提供了一种专用的数学语言UFL来表述变分形式,并自动生成底层C++代码。 fenics 名称释义:fe:finite element的简写 cs:computational software的简写 ni:有了fe和cs后,由于最初fenics软件是在芝加哥大学(简称为phoe…

枚举思想——算法学习(一)

枚举思想——算法学习(一)前言 在算法学习的道路上,枚举思想是一种简单却强大的思想。作为一种暴力求解方法,枚举算法通过穷尽所有可能的解,从中找到满足条件的最优解或所有解。虽然它看似“低效”,但在解决许多实际问题时却显得直观且有效,尤其是在问题规模可控的情况下…

20222307 2024-2025-1 《网络与系统攻防技术》实验八实验报告

1.实验内容 (1)Web前端HTML 能正常安装、启停Apache。理解HTML,理解表单,理解GET与POST方法,编写一个含有表单的HTML。 (2)Web前端javascipt 理解JavaScript的基本功能,理解DOM。 在(1)的基础上,编写JavaScript验证用户名、密码的规则。在用户点击登陆按钮后回显“欢迎+…

《Django 5 By Example》读后感

一、 为什么选择这本书? 本人的工作方向为Python Web方向,想了解下今年该方向有哪些新书出版,遂上packt出版社网站上看了看,发现这本书出版时间比较新(2024年9月),那就它了。 从2024年11月11日至2024年12月18日期间,花了 22 天阅读完《Django 5 By Example》(《Django项目…

面向对象编程,类和对象

类的关键词 Class 类一般申明在namespace中,枚举和struct一般也在namespace中申明 类的申明语法(类前面可以加访问修饰符) class 类名 {特征——成员变量行为——成员方法保护特征——成员属性构造函数和析构函数索引器运算符重载静态成员 }类申明实例 命名使用帕斯 在同一个…

mysql mysqldump 定时备份

mysqldump方式备份Windows 一、创建bat 任务脚本 ⚠️ 内容背后不能有中文空格,否则会运行失败 新建 bat 脚本复制以下内容,安装自己的需求对内容进行修改@echo off::命令行窗口中显示此条信息 @echo 开始备份数据库::将hour设置为此刻小时位的时间,从0位置开始取2位 set h…

OCS2::ocs2_centroidal_model_质心动量模型

1. ModelHelperFunctions.cpp 1.1 updateCentroidalDynamics() : 质心动力学更新 template <typename SCALAR_T> void updateCentroidalDynamics(PinocchioInterfaceTpl<SCALAR_T>& interface, const CentroidalModelInfoTpl<SCALAR_T>& info,const …