《分析模式》2024中译本-前言-01(加红色标注)

news2024/11/13 8:02:42

写在前面

今天开始,我们逐渐发布一些《分析模式》2024中译本的译文。

红色字体标出的文字,表示我认为之前的译本可能会让读者产生误解的地方。

感兴趣的读者,可以对照之前译本以及原文,捉摸一下为什么要标红。

主要原因当然是错译漏译,除此之外,还有:

*让读者对原文产生误会。例如,标红的“主题区域”,有的译本翻译为“主题域”,会让读者误以为原文是subject domain,其实原文是subject area。

*不一致。例如,标红的“上下文”,原文是context,有的译本译作“场景”。抛开会让读者误以为原文是scenario的问题不谈,后面的内容又把context译作“上下文”,这个就不一致了。

更细致的剖析,可以参见:

《分析模式》漫谈合集>>

类似问题,很可能2024中译本也会存在,请读者多多监督!

图片

*****译文开始*****

前言

不久前,还没有关于面向对象分析和设计的书籍。现在,这类书籍多到任何从业者都无法全部跟上。大多数这些书籍专注于教授一种表示法,提出一种简单的建模过程,并用几个简单的例子来说明。《分析模式:可复用的对象模型》是一本不同种类的书。它不聚焦于过程——如何做建模,而是专注于过程的结果——模型本身。

我是一名信息系统的对象建模顾问。客户请我培训员工建模并在项目上提供指导。我的许多技艺来自我对建模技能及其用法的了解。然而,更重要的是我的经验:我实际创建了许多模型,并定期看到问题重复出现。我经常发现,我在一个项目的许多方面又遇到了以前曾经面对的问题。这种经验让我能够复用之前构建的模型,改进它们,让它们适应新的需要

在过去的几年里,越来越多的人也意识到了这个现象。我们认识到,典型的方法学书籍虽然有价值,但仅仅是学习过程的第一步。学习过程还必须要有实际构建的东西。这个认识催生了模式运动。参与模式运动的人多种多样,代表许多不同的兴趣和观点,但有一个目标是一样的:传播有用的软件系统模式。

由于这个模式社群的多样性,我们在定义术语“模式”时遇到了困难。我们都认为我们可以在看到模式时识别它,我们认为大多数情况下我们的意见会一致,但我们无法提出一个单一的定义。以下是我的定义:模式是已经在一个实际上下文中发挥作用的思路,并且可能在其他上下文中也会发挥作用。

我喜欢把这个定义留得十分宽松,因为我希望尽可能接近模式的根本动机,而不添加过多的限制性修正。模式可以有多形式,每形式都增加了对该模式有用的特化(specialization)。(1.2节讨论了模式界的现状以及本书在其中的位置。)

本书讲述分析中的模式,这些模式反映了业务流程概念结构,而不是实际的软件实现。大多数章节讨论的是各种业务领域的模式。这些模式很难分类到传统的垂直领域(制造、金融、医疗保健等)中,因为它们通常在几个领域中都有用。这些模式很重要,因为它们帮助我们理解人们如何看待世界。基于这种认知来设计计算机系统——其实就是为了改变这种认知——是有价值的,这也是业务流程再造(BPR)所要做的。

然而,概念模式不能孤立存在。只有当软件工程师能看到如何实现它们时,概念模型才有用。在本书中,我介绍了可用于将概念模型转化为软件的模式,并讨论了该软件如何纳入大型信息系统的架构中。我还讨论了与这些模式相关的具体实现小技巧。

我写这本书的原因是,我在刚入行时就想读这样的书。建模人员会在本书中发现一些想法,帮助他们在新领域开始工作。本书的模式包含有用的模型、其设计背后的理由,以及它们什么时候适用,什么时候不适用。有了这些信息,建模人员可以调整模型以适应具体问题。

本书中的模式也可以用于评审模型——看看可能遗漏了什么,并建议一些可能带来改进的替代方案。当我评审一个项目时,通常会将我所见到的与我从以前工作中学到的模式相比较。我发现,意识到我工作中的模式,有助于我更容易地应用过去的经验。像这样的模式还揭示了超出简单教科书所能涵盖的建模问题。通过讨论我们为何以这样的方式建模,我们可以更好地理解如何改进我们的建模,即使我们不直接使用这些模式。

本书结构

本书分为两个部分。第一部分涵盖分析模式,即来自概念业务模型的模式。它们提供了交易、测量、会计和组织关系等领域的关键抽象。模式是概念性的,因为它们代表人们看待业务的方式,而不是计算机系统设计的方式。本部分的各章节着重介绍了可以使用的备选模式以及这些备选模式的优缺点。显然,对于工作在同一领域的人来说,每个模式都有用,但基本模式通常在其他领域中也有用。

第二部分聚焦于支持模式,它们帮助你使用分析模式。支持模式展示了分析模式如何融入信息系统架构,概念模型的构造如何转化为软件接口和实现,以及某些高级建模构造如何与更简单的结构相关

为了描述这些模式,我需要一种表示法。附录简要讨论了我使用的表示法以及符号的含义。我没有使用单一的方法,而是倾向于混合来自不同方法的技能。虽然附录没有设计成技能教程,但它应该能够提供一个大纲并唤醒你的记忆。它还告诉你在哪里可以找到我所使用的技能的教程。

每个部分分为若干章。关于分析模式的每一章,都包含一些由一个松散的主题区域观念联系起来的模式。这个主题区域观念受到生成它们的项目影响。这个组织形式反映了这样的事实:任何模式都必须来自一个实际的上下文。在一章中,每个模式都有自己的小节。我没有像一些模式作者那样(见1.2.2节),为模式使用正式的标题,而是在合理范围内以尽可能接近原始项目形式的方式来描述每一个模式,并且只做最少的抽象。我添加了一些示例,以展示模式在其原始领域的使用,并暗示该模式是怎样有可能用在其他领域的。模式的最大困难之一是将它们抽象到其他领域。我遵循的原则是:这应该留给读者(参见1.2.3节)来做。

因此,与其说本书是一本从头读到尾的书,不如说它是一本目录册。我尝试在写每一章时,让它能独立于其他章节阅读。(然而,有时这是不可能的。当阅读某一章需要先阅读另一章时,我会在该章的介绍中说明。)每章都有一个介绍,解释该章的通用主题区域,概述该章中的模式,并说明模式起源于哪些项目。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于SpringBoot+Vue+MySQL的小区物业管理系统

系统背景 在当今信息化高速发展的时代,小区物业管理正经历着从传统模式向智能化、高效化转型的深刻变革。这一转变的核心驱动力,正是小区物业管理系统的全面智能化升级。该系统不仅极大地提升了物业管理的效率与精确度,还深刻重塑了物业与业主…

数分基础(03-1)客户特征分析

文章目录 客户特征分析1. 数据集2. 思路与步骤2.1 特征工程2.2 识别方法2.3 可视化 3. 分析准备3.1 读取数据集3.2 识别不同客户群体3.2.1 使用K-Means聚类进行初步细分3.2.2 关于聚类方法(1)特征缩放1)平衡特征对模型的影响力,避…

通过ICMP判断网络故障

一、ICMP协议 Internet控制消息协议ICMP(Internet Control Message Protocol)是IP协议的辅助协议。 ICMP协议用来在网络设备间传递各种差错和控制信息,对于收集各种网络信息、诊断和排除各种网络故障等方面起着至关重要的作用。 TypeCode描述备注00Echo Replyping…

C++从入门到起飞之——list使用 全方位剖析!

​ 🌈个人主页:秋风起,再归来~🔥系列专栏:C从入门到起飞 🔖克心守己,律己则安 目录 1、迭代器 2、push_back与emplace_back 3、list成员函数sort与库sort比较 4、merge 5、uniqu…

2024117读书笔记|《李煜词(果麦经典)》——一壶酒,一竿身,快活如侬有几人?一片芳心千万绪,人间没个安排处

2024117读书笔记|《李煜词(果麦经典)》——一壶酒,一竿身,快活如侬有几人?一片芳心千万绪,人间没个安排处 《李煜词(果麦经典)》李煜的词很美,插图也不错,很值…

基于粒子群优化算法的六自由度机械臂三维空间避障规划

摘要:本研究旨在解决机械臂在复杂环境中避障路径规划的问题。本文提出了一种利用粒子群优化算法(PSO)进行机械臂避障规划的方法,通过建立机械臂的运动模型,将避障问题转化为优化问题。PSO算法通过模拟群体中个体的社会…

ggml 简介

ggml是一个用 C 和 C 编写、专注于 Transformer 架构模型推理的机器学习库。该项目完全开源,处于活跃的开发阶段,开发社区也在不断壮大。ggml 和 PyTorch、TensorFlow 等机器学习库比较相似,但由于目前处于开发的早期阶段,一些底层…

8月28c++

c手动封装顺序表 #include <iostream>using namespace std; using datatype int;//类型重命名struct SeqList { private:datatype *data;//顺序表数组int size0;//数组大小int len0;//顺序表实际长度 public:void init(int s);//初始化函数bool empty();//判空函数bool …

python有主函数吗

python和C/Java不一样&#xff0c;没有主函数一说&#xff0c;也就是说python语句执行不是从所谓的主函数main开始的。 当运行单个python文件时&#xff0c;如运行a.py&#xff0c;这个时候a的一个属性__name__是__main__。 当调用某个python文件时&#xff0c;如b.py调用a.p…

HDD介绍

HDD是“Hard Disk Drive”的缩写&#xff0c;意为“硬盘驱动器”&#xff0c;是计算机中用于存储数据和程序的主要设备之一。 硬盘有机械硬盘(Hard Disk Drive&#xff0c;HDD)和固态硬盘(SSD)之分。机械硬盘即是传统普通硬盘&#xff0c;主要由&#xff1a;盘片&#xff0c;磁…

2024年华侨生联考英语真题全析:难度变化与备考策略

导读 在前面我们和大家一起分享了2024年华侨生联考各科真题的难度情况。今天我们就来和大家具体的看一下2024年港澳台华侨生联考英语真题试卷具体分析哈。 听力部分 今年的听力和去年的听力总体难度差别不大&#xff0c;一段听力材料对应一道听力题目&#xff08;简称一对一…

谐波电抗器选择的最佳方法

选择谐波电抗器的最佳方法取决于系统的具体要求和条件。 以下是选择谐波电抗器时需要考虑的关键因素和方法&#xff1a; 1、确定系统谐波频率 谐波分析&#xff1a;使用谐波分析仪测量系统中的谐波频率&#xff0c;确定主要的谐波频率和幅值。谐波电抗器的选择需要针对这些谐…

2024年6月GSEP(python)一级认证真题讲解

注意&#xff01;做题时长为2小时&#xff0c;孩子做完题目后对照讲解视频和讲解分析&#xff0c;针对薄弱点&#xff0c;进行有效的专项提高。 &#x1f451;讲解视频 &#xff08;暂无&#xff09; &#x1f451;讲解分析 1 单选题&#xff08;每题 2 分&#xff0c;共 3…

【CVPR‘23】CompletionFormer:用于深度补全的 Transformer 网络!已开源

【CVPR23】CompletionFormer:用于深度补全的 Transformer 网络! 摘要方法3.1 RGB 和深度嵌入3.2 联合卷积注意力和 Transformer 编码器3.3 解码器3.4 SPN 精化和损失函数主要贡献实验结果论文地址:https://openaccess.thecvf.com/content/CVPR2023/papers/Zhang_CompletionF…

C语言指针重学

学习要纲:建议掌握 gdb调试(b ,d ,fin ,bt ,print ,awatch ,up ,down ,set pretty等) SourceInsight软件看代码(全局搜索 文件搜索等) git如何调取分支合并(git branch,git blame,git log,git pull,git reset --hard等) 等内容,下面是对于指针的一个重新学习. C语言的指针&…

如何使用ssm实现基于java web的计算机office课程平台设计与实现+vue

TOC ssm277基于java web的计算机office课程平台设计与实现vue 绪论 1.1 研究背景 现在大家正处于互联网加的时代&#xff0c;这个时代它就是一个信息内容无比丰富&#xff0c;信息处理与管理变得越加高效的网络化的时代&#xff0c;这个时代让大家的生活不仅变得更加地便利…

WireShark网络分析~部署方式

一、《Wireshark网络分析就这么简单》 第一章学习 声明&#xff1a;文章只限于网络学习和实验&#xff0c;请遵守《网络安全法》。 第一章问题一&#xff1a;两台服务器A和B的网络配置如下(见图1)&#xff0c;B的子网掩码本应该是255.255.255.0&#xff0c;被不小心配成了255.…

LeetCode 热题100-37 二叉树的最大深度

二叉树的最大深度 给定一个二叉树 root &#xff0c;返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 示例 1&#xff1a; 输入&#xff1a;root [3,9,20,null,null,15,7] 输出&#xff1a;3示例 2&#xff1a; 输入&#xff1a;ro…

py 可视化图层

五张图&#xff1a;数据资源可联系1493175691qq.com import numpy as np import matplotlib.pyplot as plt from cartopy.mpl.ticker import LongitudeFormatter, LatitudeFormatter import cartopy.crs as ccrs import cartopy.feature as cfeature from cartopy.io.shaperead…

长亭雷池 WAF 部署及使用过程中遇到的问题

1、安装过程中遇到的问题 这里推荐使用官方的脚本命令&#xff0c;大概看了一下是先判断是否有容器&#xff0c;如果没有容器环境就安装&#xff0c;但是这一步就报错了。这里需要更换成阿里云或是国内其它的源来安装。 bash -c "$(curl -fsSLk https://waf-ce.chaitin.…