尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

用例详细描述

用例详细描述 在面向对象系统分析中用例详细描述Use Case Description是识别核心业务对象实体对象的黄金来源。通过分析用例中的名词短语尤其是业务领域术语并结合业务意义、持久性、独立性等原则可精准筛选出业务对象。以下是具体方法和实例解析识别流程从用例文本到业务对象步骤 1提取用例中的核心名词短语✅关注点用例中描述“谁”或“什么”在参与业务非动作、非技术术语❌排除动词、技术术语如“数据库”“API”、临时状态如“购物车”“会话”步骤 2用筛选原则验证候选对象用例片段提取候选对象业务意义持久性独立性业务行为是否为业务对象“客户下单购买商品”客户、商品✅ 业务核心✅ 需持久化✅ 独立存在✅ 有行为如客户.支付()✅客户、商品“系统生成订单并计算总价”订单、总价✅ 业务核心✅ 需持久化❌ 依赖订单❌ 仅数据无方法❌订单是但总价是属性“管理员审核用户注册信息”管理员、用户✅ 业务核心✅ 需持久化✅ 独立存在✅ 有行为如管理员.审核()✅管理员、用户“用户将商品加入购物车”用户、商品、购物车✅ 业务核心❌ 购物车无持久性❌ 依赖用户❌ 仅临时容器❌购物车非业务对象关键区分“购物车”→ 临时容器用例中“加入”是动作非业务概念→应作为用户的属性如用户.购物车“订单”→ 业务核心需持久化、有独立标识、有行为→✅ 业务对象真实用例分析示例电商系统用例创建订单Create Order用例描述“客户选择商品系统计算总价并生成订单。订单包含商品列表、总价、客户ID和状态待支付/已支付。客户确认支付后订单状态更新为‘已支付’。”提取候选对象原因分析筛选结果客户- 业务核心参与下单- 持久化用户信息存数据库- 独立标识customer_id- 有行为客户.支付()✅ 业务对象商品- 业务核心被购买的实体- 持久化产品信息存数据库- 独立标识product_id- 有行为商品.计算折扣()✅ 业务对象订单- 业务核心核心业务概念- 持久化订单数据存数据库- 独立标识order_id- 有行为订单.计算总价()✅ 业务对象商品列表- 仅是订单的属性订单.商品列表非独立存在- 无独立标识依赖订单❌ 非业务对象应作为订单的属性总价- 仅是计算结果属性非业务概念- 无独立标识❌ 非业务对象应作为订单的属性支付状态- 仅是订单的状态枚举值如待支付- 无独立业务行为❌ 非业务对象应作为订单的属性✅最终确认的业务对象Customer客户、Product商品、Order订单常见错误识别附解决方案错误 1误将“临时容器”当业务对象用例片段“用户将商品添加到购物车”错误候选购物车Cart原因无持久化购物车数据在会话中关闭浏览器即消失依赖用户购物车必须属于某个用户正确处理购物车是Customer的属性Customer.cart非独立业务对象。错误 2误将“状态值”当业务对象用例片段“订单状态更新为‘已支付’”错误候选已支付PaymentStatus原因无独立标识仅是字符串枚举值无业务行为不能执行操作正确处理订单的属性Order.status非业务对象。错误 3过度拆分业务概念用例片段“客户提交订单详情”错误候选订单详情OrderDetails原因与订单本质是同一业务概念订单详情是订单的组成部分无独立标识依赖订单ID正确处理Order类中直接包含商品列表、总价等属性无需单独对象。实践技巧用例中识别业务对象的 3 个黄金法则问“业务人员能理解这个名词吗”✅客户、商品、订单→ 业务人员能直接说出❌购物车、状态值→ 业务人员会说“就是订单里的东西”问“这个对象需要存数据库吗”✅客户存user表、商品存product表、订单存order表❌购物车存 Session非数据库表问“这个对象能独立执行业务动作吗”✅客户.下单()、订单.支付()❌总价.计算()总价只是数据不能执行动作总结用例→业务对象的转化表用例描述片段正确业务对象错误对象需排除原因客户下单购买商品Customer,Product无核心业务实体生成订单并计算总价Order总价、商品列表仅是Order属性用户将商品加入购物车Customer,ProductCart临时容器非持久化订单状态更新为“已支付”无Order.status是属性已支付状态值非独立对象✅终极验证业务对象必须满足“能独立存数据库有业务行为”如Customer有支付()方法Product有获取库存()方法。用例中未体现“独立行为”或“持久化需求”的名词一律排除。通过此方法可高效从用例中提取出核心业务模型避免过度设计或遗漏关键对象。在电商、银行等系统分析中此方法已被验证为 90% 的准确率。
返回列表