分析的还有一种重要产品是领域模型,其目标是使负责该系统基本行为的全部核心类可视。 ——Grady Booch,《面向对象项目的解决方式》

本篇记录6大步骤中的第二步:领域建模。

包含例如以下内容:

  • 什么是领域模型?
  • 领域模型的价值和意义所在

1、什么是领域模型

“是什么”
领域模型,就是将领域概念(即这个领域内的行话)以可视化的方式抽象成一个或一套模型。

领域模型比《领域词汇表》更进一步,它不仅关注重要的领域概念,并且它还刻画这些概念之间的关系。
“什么样”
就UML而言,领域模型最常採用以下两种图表示:

  • 类图
  • 状态图
    “为什么”
    领域建模是公认的促使OO项目成功的最佳实践之中的一个。

2、领域模型的价值

领域模型在软件开发中的作用,如上图所看到的。那么。它的意义又在哪里呢?
领域建模是探索问题领域的工具,可以帮助我们探索和提炼问题领域知识。

2.1对于需求人员

对于需求人员,领域建模可以帮助他们促进用户沟通。解决分析瘫痪。

需求分析阶段,常会遇到两个困难,

  • 第一个困难,用户的參与不够。造成需求分析成果中如果的成分太多。
    “參与不够”,表现为用户參与不够多,用户參与不够深入。
  • 第二个困难,问题领域太复杂时,需求分析的开展会遇到困难。

2.2对于开发者

对于开发者。领域建模可以破解“领域知识不足”的死结。
破解“领域知识不足”的死结的关键是要“理顺概念关系,搞清业务规则”。

这恰是领域模型的强项——通过对复杂的领域进行概念抽象和关系抽象从而建立模型。获得对领域知识整体上的把握,就不会掉入杂乱无章的概念堆里。

2.3可扩展性

领域建模的输入和输出例如以下图所看到的:

从图中可以看到。领域模型的驱动因素是功能,反过来,领域模型的质量高低可以决定软件的可扩展性。可以说,“功能决定怎样建模,模型决定功能扩展”。

功能是领域建模的核心驱动力,也是领域模型评审和改进的驱动力。

《软件架构设计》学习笔记--6--6大步骤2:领域建模相关推荐

  1. 数字IC设计学习笔记_Formality 形式验证

    数字IC设计学习笔记 Formality 形式验证 1. 基本特点 2. Reference Design 和Implementation Design 3. container 4. 读入共享技术库 ...

  2. PowerDesigner 15学习笔记:十大模型及五大分类

    原文:PowerDesigner 15学习笔记:十大模型及五大分类 个人认为PowerDesigner 最大的特点和优势就是1)提供了一整套的解决方案,面向了不同的人员提供不同的模型工具,比如有针对企 ...

  3. 数字IC设计学习笔记_静态时序分析STA_ STA基本概念

    数字IC设计学习笔记 STA基本概念 1. STA基本概念 2. 时序弧概念 Timing Arc 3. 建立时间和保持时间概念 4. 时序路径概念Timing Path 5. 时钟域概念clock ...

  4. 多层高速PCB设计学习笔记(五)四层板实战(下)之阻抗控制计算(SI9000)

    系列文章目录 多层高速PCB设计学习(一)初探基本知识(附单层设计补充) 多层高速PCB设计学习笔记(二)基本设计原则及EMC分析 多层高速PCB设计学习笔记(三) GND的种类及PCB中GND布线实 ...

  5. 多层高速PCB设计学习笔记(三) GND的种类及PCB中GND布线实战

    系列文章目录 多层高速PCB设计学习(一)初探基本知识(附单层设计补充) 多层高速PCB设计学习笔记(二)基本设计原则及EMC分析 多层高速PCB设计学习笔记(三) GND的种类及PCB中GND布线实 ...

  6. 二级密勒补偿运算放大器设计学习笔记1

    二级密勒补偿运算放大器设计学习笔记1 单管匹配dc初仿: 目的:已经事先分配好电流,Id8和Id9支路地电流为10uA:由平凡率公式可知,如果决定了过驱动电压Vgst,就可以得到管子的尺寸(W/L). ...

  7. 多层高速PCB设计学习笔记(四)四层板实战(上)之常见模块要求

    系列文章目录 多层高速PCB设计学习(一)初探基本知识(附单层设计补充) 多层高速PCB设计学习笔记(二)基本设计原则及EMC分析 多层高速PCB设计学习笔记(三) GND的种类及PCB中GND布线实 ...

  8. 大数据Hadoop教程-学习笔记01【大数据导论与Linux基础】

    视频教程:哔哩哔哩网站:黑马大数据Hadoop入门视频教程,总时长:14:22:04 教程资源:https://pan.baidu.com/s/1WYgyI3KgbzKzFD639lA-_g,提取码: ...

  9. 五. 防护设计学习笔记

    防护设计学习笔记 一. 浪涌防护设计基础 1.由变频器空载.电机启动.开关开启等引起的瞬时过电压,叫做浪涌. 2.浪涌模拟波形1.2/50us(8/20us):发生器输出开路时,输出波形式1.2/50 ...

  10. Java程序设计当中包的使用_【学习笔记】 唐大仕—Java程序设计 第4讲 类、包和接口之4.2 类的继承...

    [学习笔记] 唐大仕-Java程序设计 第4讲 类.包和接口之4.2 类的继承 super的使用 1.使用super访问父类的域和方法 注意:正是由于继承,使用this可以访问父类的域和方法.但是有时 ...

最新文章

  1. LeetCode简单题之位1的个数
  2. 图像验证码识别(七)——字符分割
  3. 一些少见的下载地址(按需求更新)
  4. python watchdog 同时检测到多个事件_python中watchdog文件监控与检测上传功能
  5. 035-OpenStack 关闭安全组
  6. mysql 集中join的区别
  7. 尝试用LoadRunner录制单机程序--未生成录制脚本
  8. mysql gtid 错误_MySQL 5.6 GTID常见错误解决一例
  9. 【QT】QT事件处理
  10. c盘空间清理,无需软件
  11. windows下仿Mac Dock软件MultiDock
  12. 序:我的多旋翼飞控学习之路
  13. Java14它真的来了, 真是尾气都吃不到了
  14. 【LaTeX】LaTeX打取整符号
  15. 计算机数值方法知识,计算机数值方法.pdf
  16. echarts图表的x轴和y轴的配置
  17. 升级IE7.0的唯一理由
  18. 2021年压力容器作业(R)移动式压力容器充装(R2)考试题库解析
  19. java parse json string
  20. 计算机如何增加网络地址,如何添加网络打印机到电脑

热门文章

  1. 同步现象 心理学_非心理专业背景的人,如何成为心理学家或心理咨询师?
  2. linux下加载qdm找不到驱动,Linux下共享文件夹的设置方法
  3. showmodaldialog 为什么不能复制_防复制的门禁读头可以防止UID和FUID读卡器
  4. php在html中生成option,php-如何为使用laravel表单生成器创建的select标签的选项指定HTML属性?...
  5. php 正则表达式 后向引用,php正则表达式 后向引用~ | 学步园
  6. java filechannel api_FileChannel
  7. 当前时间转换的秒数_C++ 日期 amp; 时间
  8. linux配置Httpd授权
  9. 聊一聊bypass information_schema
  10. 2019年末逆向复习系列之今日头条WEB端_signature、as、cp参数逆向分析