《软件架构设计》学习笔记--6--6大步骤2:领域建模
分析的还有一种重要产品是领域模型,其目标是使负责该系统基本行为的全部核心类可视。 ——Grady Booch,《面向对象项目的解决方式》
本篇记录6大步骤中的第二步:领域建模。
包含例如以下内容:
- 什么是领域模型?
- 领域模型的价值和意义所在
1、什么是领域模型
“是什么”
领域模型,就是将领域概念(即这个领域内的行话)以可视化的方式抽象成一个或一套模型。
领域模型比《领域词汇表》更进一步,它不仅关注重要的领域概念,并且它还刻画这些概念之间的关系。
“什么样”
就UML而言,领域模型最常採用以下两种图表示:
- 类图
- 状态图
“为什么”
领域建模是公认的促使OO项目成功的最佳实践之中的一个。
2、领域模型的价值
领域模型在软件开发中的作用,如上图所看到的。那么。它的意义又在哪里呢?
领域建模是探索问题领域的工具,可以帮助我们探索和提炼问题领域知识。
2.1对于需求人员
对于需求人员,领域建模可以帮助他们促进用户沟通。解决分析瘫痪。
需求分析阶段,常会遇到两个困难,
- 第一个困难,用户的參与不够。造成需求分析成果中如果的成分太多。
“參与不够”,表现为用户參与不够多,用户參与不够深入。 - 第二个困难,问题领域太复杂时,需求分析的开展会遇到困难。
2.2对于开发者
对于开发者。领域建模可以破解“领域知识不足”的死结。
破解“领域知识不足”的死结的关键是要“理顺概念关系,搞清业务规则”。
这恰是领域模型的强项——通过对复杂的领域进行概念抽象和关系抽象从而建立模型。获得对领域知识整体上的把握,就不会掉入杂乱无章的概念堆里。
2.3可扩展性
领域建模的输入和输出例如以下图所看到的:
从图中可以看到。领域模型的驱动因素是功能,反过来,领域模型的质量高低可以决定软件的可扩展性。可以说,“功能决定怎样建模,模型决定功能扩展”。
功能是领域建模的核心驱动力,也是领域模型评审和改进的驱动力。
《软件架构设计》学习笔记--6--6大步骤2:领域建模相关推荐
- 数字IC设计学习笔记_Formality 形式验证
数字IC设计学习笔记 Formality 形式验证 1. 基本特点 2. Reference Design 和Implementation Design 3. container 4. 读入共享技术库 ...
- PowerDesigner 15学习笔记:十大模型及五大分类
原文:PowerDesigner 15学习笔记:十大模型及五大分类 个人认为PowerDesigner 最大的特点和优势就是1)提供了一整套的解决方案,面向了不同的人员提供不同的模型工具,比如有针对企 ...
- 数字IC设计学习笔记_静态时序分析STA_ STA基本概念
数字IC设计学习笔记 STA基本概念 1. STA基本概念 2. 时序弧概念 Timing Arc 3. 建立时间和保持时间概念 4. 时序路径概念Timing Path 5. 时钟域概念clock ...
- 多层高速PCB设计学习笔记(五)四层板实战(下)之阻抗控制计算(SI9000)
系列文章目录 多层高速PCB设计学习(一)初探基本知识(附单层设计补充) 多层高速PCB设计学习笔记(二)基本设计原则及EMC分析 多层高速PCB设计学习笔记(三) GND的种类及PCB中GND布线实 ...
- 多层高速PCB设计学习笔记(三) GND的种类及PCB中GND布线实战
系列文章目录 多层高速PCB设计学习(一)初探基本知识(附单层设计补充) 多层高速PCB设计学习笔记(二)基本设计原则及EMC分析 多层高速PCB设计学习笔记(三) GND的种类及PCB中GND布线实 ...
- 二级密勒补偿运算放大器设计学习笔记1
二级密勒补偿运算放大器设计学习笔记1 单管匹配dc初仿: 目的:已经事先分配好电流,Id8和Id9支路地电流为10uA:由平凡率公式可知,如果决定了过驱动电压Vgst,就可以得到管子的尺寸(W/L). ...
- 多层高速PCB设计学习笔记(四)四层板实战(上)之常见模块要求
系列文章目录 多层高速PCB设计学习(一)初探基本知识(附单层设计补充) 多层高速PCB设计学习笔记(二)基本设计原则及EMC分析 多层高速PCB设计学习笔记(三) GND的种类及PCB中GND布线实 ...
- 大数据Hadoop教程-学习笔记01【大数据导论与Linux基础】
视频教程:哔哩哔哩网站:黑马大数据Hadoop入门视频教程,总时长:14:22:04 教程资源:https://pan.baidu.com/s/1WYgyI3KgbzKzFD639lA-_g,提取码: ...
- 五. 防护设计学习笔记
防护设计学习笔记 一. 浪涌防护设计基础 1.由变频器空载.电机启动.开关开启等引起的瞬时过电压,叫做浪涌. 2.浪涌模拟波形1.2/50us(8/20us):发生器输出开路时,输出波形式1.2/50 ...
- Java程序设计当中包的使用_【学习笔记】 唐大仕—Java程序设计 第4讲 类、包和接口之4.2 类的继承...
[学习笔记] 唐大仕-Java程序设计 第4讲 类.包和接口之4.2 类的继承 super的使用 1.使用super访问父类的域和方法 注意:正是由于继承,使用this可以访问父类的域和方法.但是有时 ...
最新文章
- LeetCode简单题之位1的个数
- 图像验证码识别(七)——字符分割
- 一些少见的下载地址(按需求更新)
- python watchdog 同时检测到多个事件_python中watchdog文件监控与检测上传功能
- 035-OpenStack 关闭安全组
- mysql 集中join的区别
- 尝试用LoadRunner录制单机程序--未生成录制脚本
- mysql gtid 错误_MySQL 5.6 GTID常见错误解决一例
- 【QT】QT事件处理
- c盘空间清理,无需软件
- windows下仿Mac Dock软件MultiDock
- 序:我的多旋翼飞控学习之路
- Java14它真的来了, 真是尾气都吃不到了
- 【LaTeX】LaTeX打取整符号
- 计算机数值方法知识,计算机数值方法.pdf
- echarts图表的x轴和y轴的配置
- 升级IE7.0的唯一理由
- 2021年压力容器作业(R)移动式压力容器充装(R2)考试题库解析
- java parse json string
- 计算机如何增加网络地址,如何添加网络打印机到电脑
热门文章
- 同步现象 心理学_非心理专业背景的人,如何成为心理学家或心理咨询师?
- linux下加载qdm找不到驱动,Linux下共享文件夹的设置方法
- showmodaldialog 为什么不能复制_防复制的门禁读头可以防止UID和FUID读卡器
- php在html中生成option,php-如何为使用laravel表单生成器创建的select标签的选项指定HTML属性?...
- php 正则表达式 后向引用,php正则表达式 后向引用~ | 学步园
- java filechannel api_FileChannel
- 当前时间转换的秒数_C++ 日期 amp; 时间
- linux配置Httpd授权
- 聊一聊bypass information_schema
- 2019年末逆向复习系列之今日头条WEB端_signature、as、cp参数逆向分析