当前位置: 首页 > news >正文

面向对象分析(OOA)的第一个步骤是**识别问题域中的对象和类**(也称为“识别对象与类”或“确定问题域中的概念类”)

面向对象分析(OOA)的第一个步骤是识别问题域中的对象和类(也称为“识别对象与类”或“确定问题域中的概念类”)。
这一步要求分析师深入理解用户需求和现实世界的问题背景,通过用例分析、领域建模、名词提取等方法,找出系统中关键的实体、事物、角色或概念,并将其抽象为具有属性和行为的类或对象。它是后续建立对象关系、定义属性与操作、构建动态模型(如状态图、交互图)的基础。

在面向对象分析(OOA)中,从用例描述中有效识别候选类和对象,核心方法是名词/名词短语分析法(Noun Phrase Analysis),辅以语义判断、职责分析和领域知识验证。具体步骤如下:

  1. 通读用例文本:包括用例名称、参与者、前置条件、主事件流(基本路径)、备选事件流、后置条件等。

  2. 提取所有名词和名词短语

    • 重点关注表示实体、事物、角色、概念、设备、文档、规则、状态、组织单位等的词,例如:“订单”“客户”“购物车”“支付方式”“库存数量”“退货申请”“管理员”。
    • 排除明显冗余、过于泛化(如“系统”“数据”“信息”)、实现细节(如“XML文件”“数据库表”)或纯属性(如“订单号”“创建时间”——它们属于类的属性,而非独立类)。
  3. 筛选与归并候选类

    • 合并同义词(如“顾客”与“客户”→统一为“Customer”);
    • 拆分歧义词(如“地址”可能是“客户地址”或“仓库地址”,需结合上下文区分);
    • 判断是否具备独立身份、状态和行为责任(例如,“折扣策略”可封装为类,因其有计算逻辑和配置状态;而“总价”只是属性,不应建模为类)。
  4. 使用CRC卡(Class-Responsibility-Collaborator)辅助验证

    • 为每个候选类写下其核心职责(responsibility)及协作对象(collaborator),若职责模糊、无协作或无法明确边界,则可能不是真正类。
  5. 结合用例图与活动图交叉验证

    • 观察哪些实体频繁参与多个用例交互,或在活动图中作为主动/被动参与者出现,增强其作为类的合理性。

✅ 补充技巧:

  • 关注动词宾语(如“创建订单”→“订单”是宾语,高优先级候选类);
  • 注意“拥有”“包含”“属于”等关系提示聚合/组合(如“订单包含多个订单项”→“OrderItem”也是候选类);
  • 领域专家访谈可快速澄清模糊术语(如“信用额度”是属性还是独立的“CreditPolicy”类?)。
# 示例:从用例“处理退货”中提取候选类(简化)# 文本片段:"顾客提交退货申请,系统验证订单有效性,检查商品库存状态,生成退货单,并通知仓库管理员。"# 提取名词短语:顾客、退货申请、系统、订单、商品、库存状态、退货单、仓库管理员# 筛选后候选类:Customer、ReturnRequest、Order、Product、Inventory、ReturnSlip、WarehouseStaff# 排除:"系统"(非问题域类,属实现边界)、"库存状态"(是Inventory的属性,非独立类)

http://www.jsqmd.com/news/843910/

相关文章:

  • 量子优化技术在工业数据生产规划中的应用与实践
  • 微软:小模型替代大模型执行终端任务
  • 服务器训练过程程序崩溃,显卡资源释放方式
  • IDA逆向分析实战:破解函数限制、修复栈平衡与Switch识别
  • 全志H713/H618平台:调焦步进电机驱动原理与DTS配置实战解析
  • 注意力不集中影响的不只是成绩,更是孩子的一生 - 资讯焦点
  • 猫抓插件完全指南:浏览器资源嗅探与下载的终极解决方案
  • 企业如何搭建标准化问卷调研系统?全流程方法论(附平台推荐)
  • 静态查找,冒泡,快排
  • 还在熬夜调格式?Paperxie 论文排版功能:一键搞定全高校规范,让格式问题不再卡你毕业
  • 宁波车主挑靠谱汽车贴膜机构的3步避坑指南 - 速递信息
  • 项目介绍 基于java+vue的校园舆情监测与预警系统设计与实现(含模型描述及部分示例代码)专栏近期有大量优惠 还请多多点一下关注 加油 谢谢 你的鼓励是我前行的动力 谢谢支持 加油 谢谢
  • `SaveKeyDataAsync` 重构优化版本
  • ARM A64 SIMD向量指令详解与优化实践
  • 如何彻底清理Windows驱动存储:5个专业技巧释放系统空间
  • Nucleus Co-Op终极指南:3分钟让单机游戏变多人分屏神器
  • 用Python+NetworkX复现经典:手把手教你用Frank Wolfe算法搞定交通分配UE模型
  • Equalizer APO终极指南:免费打造Windows专业级音频系统
  • CA-IS3741:四通道高速数字隔离芯片的选型、实测与光耦替代实战
  • 5步彻底解决XXMI-Launcher游戏模组管理难题
  • 金价高位期必看!2026 深圳黄金回收机构真实测评! - 奢侈品回收测评
  • STM32新手必看:Keil MDK编译遇到warning #2803-D和L6218E错误?保姆级解决流程来了
  • Windows Cleaner终极指南:如何快速优化系统性能与清理C盘空间
  • CSS 实现「上双下单」布局
  • 手把手教你写JS逆向通用模板:一键提取加密参数
  • Prism `IContainerRegistry` 详细调查与讲解
  • DS4Windows终极指南:让PS手柄在PC上完美运行
  • 云计算Linux——数据库MySQL MGR高可用(十九)
  • 沧州CPPM注册采购经理授权中心及电话|官方报考通道 - 中供国培
  • 用倍控G30-J4125工控机搭建All in One家庭服务器:PVE、Docker、软路由全搞定