领域模型是软件项目的公共语言的核心。模型是人们头脑中形成的与项目有关的概念集合,他用术语和关系反映了领域的深层含义。这些术语和相互关系提供了模型语言的语义,模型语义是专门为领域量身剪裁的,而且十分精确,以便支持技术开发。它是一条至关重要的纽带,将模型与开发活动结和在一起,并使模型与代码紧密绑定。
在一个没有公共语言的项目上,开发人员不得不为领域专家做翻译。而这些领域专家还需要充当开发人员与其他领域专家之间的翻译。甚至开发人员之间还需要互相翻译。这些翻译是模型概念变得混淆,这会破坏代码的重构。这间接的沟通掩盖了分裂的形成,不同的团队成员使用不同的技术语而尚不自知。这导致软件的各个部分不能够浑然一体,因此无法开发出可靠的软件。
如果语言支离破碎,项目必将遭遇严重问题。领域专家使用他们自己的行话,而技术团队成员则使用自己的的语言从设计角度讨论领域。
日常讨论所使用的术语与代码(软件项目的最重要产品)中使用的术语不一致。甚至同一个人在讲话和写东西时使用的语言也不一致,这导致的后果是,即使人们对领域有了一些深刻的描述,也转眼就忘记了,而无法记录到代码或者文档中。
翻译使得沟通不畅,并导致知识消化变得困难。
然而任何一种行话都不能成为公共语言,因为他们无法满足所有的需求。
项目需要一种公共语言,Ubiquitous Language(通用语言)。Ubiquitous Language的词汇表包括类名称和主要操作。Language中包含术语,有些术语用来讨论模型中已经明确的规则,还有一些术语则来施加于模型上的高级组织原则。
模型之间的关系成为所有语言都具有的组合规则。词和短语的意义反映了模型的语义。
尽管只是消化过程和基于模型的语言的使用看起来在次序上没有先后之分,但其实前者是依赖后者的,也就是说,有助于产生更有用模型的知识消化过程依赖于整个团队对使用基于模型语言的一直承诺。团队一致使用Ubiquitous Language可以博爱路触摸型中存在的缺点,这样团队就可以尝试并找到不浅当属于或组合词的替代词。当有些概念无法用现有语言中的词汇表达时,新的词语将被引入到讨论中。这些语言上的更改也会在领域模型中引起响应的更改,并促使团队更新类图并重命名代码中的类和方法,甚至在术语的意义改变时会导致行为也发生改变。
因此:将模型作为语言的中心。确保团队在所有交流活动和代码中坚持使用这种语言。在画图,写东西特别是讲话时也要使用这种语言。
通过尝试不同的表示方法(他们反映了不同模型)来消除难点。然后重构代码,并对类,方法和模块重命名,以便于新模型相一致。解决交谈中的术语混淆问题,就像我们对普通词汇形成一个工人的理解一样。
要认识到Ubiquitous Language中的更爱就是对模型的更改。
领域庄家应该避免使用拗口货物发表的领域理解的术语或结构,开发人员应该密切监视那些将会妨碍设计的有歧义和不一致的地方。
文档和图
有些人天生习惯于直观一些的表现方法,图可以帮助我们掌握一些信息。UML图非常擅于表达对象之间的关系,尤其擅长显示对象交互。但它们不会给出这些对象的概念的定义。
当人们必须要通过UML图表示整个模型或设计是,麻烦也随之而而来。喊队对象模型图在某些方面过于细致,同时在某些方面又有很多遗漏。说它们过于细致是因为人们认为必须将所有要编码的对象放到建模工具中。细节过多的结果是只见树木不见森林。
对象交互图可以掩饰设计中的一些复杂的要点,但却无法用这种方式来显示大部分交互,原因是工作量大。而且交互图只能按时触摸型的目的。要想把约束和断言包括进来,需要在UML中使用文本,这些文本用括号括起来,插入到图中。
UML也不是一种十分令人满意的编程语言。如果仅仅使用UML功能来建模,得到的模型往往会遗漏最关键的部分,因为有些规则并不适合用线框图来表示。如果使用UML作为实现语言,则仍然需要利用其他手段来表达模型的确切含义。
设计的重要细节应该在代码中体现出来。良好的实现应该是透明的,清楚地展示它的底层模型。互为补充的图和文档能够引导人们将注意力放在核心要点上。
务必要记住模型不是图。图的目的是帮助表达和解释模型。代码可以充当设计细节的存储库。清晰的java代码与UML具有同样的表达能力。经过仔细选择和构造的图可以帮助人们集中注意力,并起到指导作用,当然前提条件是不能青之完全用图来表示模型或设计,因为这样会削弱图的清晰表达的能力。
- 大小: 28.8 KB
分享到:
相关推荐
首先,非语言交流的定义强调了其非言语性和目的性。它不依赖文字或语音,而是通过一系列可观察的行为来传达意义。英国学者伯贡与赛因认为非语言交际包括所有非语言因素,这些因素可以是人为创造的,也可以是环境造成...
非语言交流,通常被称为NVC(Non-Verbal Communication),是人类交际中不可或缺的一部分,它在传达信息、强化言语表达、以及展现个人态度和情绪方面起着重要作用。本PPT课件详细阐述了非语言交流的各个方面,让我们...
这是一个全球语言交流社区的app。你可以注册一个账号并和世界上任意一种语言的网友问答互助交流。
自然语言交流中语言风格的机器学习模型主要关注如何利用机器学习技术理解和识别个体的语言风格。在这一领域,尚未有完善的基础理论支持,因此研究者们尝试通过数学和抽象代数方法构建模型。语言风格通常涉及个人的...
计算机语言是人与计算机进行交流的工具,主要分为高级语言、汇编语言和机器语言三种类型,它们各自具有独特的特点和用途。 高级语言是相对于汇编语言而言的,旨在使编程更加接近人类自然语言和数学表达。这类语言...
### ChatGPT模型在语言学习与语言交流中的应用研究 #### 概述 近年来,人工智能技术的迅猛发展推动了自然语言处理领域的革新。ChatGPT作为一种先进的自然语言处理技术,已经在多个领域展现了其独特的优势。本文...
同时,与ChatGPT相关的技术和资源也将随之完善,为用户提供更好的语言交流体验。 ChatGPT技术在对话生成中的多语言处理和跨文化交流方面具有重要的意义。它为用户提供了跨语言的对话能力,使得跨文化交流更加便利和...
自然语言是在无数多人群之间的碰撞和交流之间产生、发展、筛选、淘汰之后形成的,而计算机编程语言则是“计划经济”的产物。自然语言中的词汇是具有语义的最小独立单位,而计算机编程语言中的token是编译程序中的...
ChatGPT技术在跨语言交流助手中的使用方法
ChatGPT 多语言支持和跨文化交流技术 ChatGPT 技术作为一种新兴的自然语言处理技术,引起了人们的广泛关注。那么,ChatGPT 技术是否可以进行多语言支持和跨文化交流呢?让我们来一探究竟。 多语言支持 多语言支持...
ChatGPT技术对跨语言交流的影响 ChatGPT技术作为一种智能对话生成模型,在促进跨语言交流方面发挥了...同时,注重跨文化教育和培训,促进人们在跨语言交流中的理解、尊重和接纳,才能真正实现跨语言交流的全面发展。
### ChatGPT模型在多语种对话与跨语言交流中的能力及效果评估 #### 引言 在全球化背景下,多语种对话与跨语言交流的需求日益增加,这不仅体现在日常生活中,更体现在商务、教育等多个领域。为了应对这一挑战,自然...
ChatGPT 技术实现多语言之间的翻译和交流能力 ChatGPT 技术是一种基于人工智能的对话生成模型,能够实现多语言之间的翻译和交流能力。该技术基于深度学习原理开发,由 OpenAI 公司开发。ChatGPT 技术可以学习和理解...
【麦拉宾的沟通三维理论】提出了沟通中三个主要的元素:视觉(55%)、音频(38%)和语言(7%),强调了非语言交流在沟通中的主导地位。其中,视觉传达包括面部表情、身体姿态等,音频则涉及语调和声音变化。 【眼睛...
该blog比较适合毕业设计或者课程设计使用以及学习交流使用,使用C#语言,开发环境为Visual_S_.net4.0-blog
20国语言在线客服/AI智能客服/消息预知已读未读/多商户机器人/im即时通讯聊天 1.新增客服坐席消息互动,客服之间可以互相接收消息 2.新增消息预知功能,可提前预知访客已输入未发送的消息显示 3.重构wk通信接口,...
设计和技术交流中的技术语言是专业人士在传达思想、概念和详细信息时所使用的专门工具。这种语言形式具有简洁、明了的特点,确保了不同背景的技术人员能够有效地理解和执行任务。以下是对PPT课件中提到的各种技术...
通过提供不同语言之间的直接对照,特别是那些广泛使用的官方语言,它可以帮助翻译者和开发者快速定位到需要的语言对应关系,减少错误,并且提高国际化产品的语言质量。在软件国际化和本地化工作中,这样的对照表是必...
HTML(HyperText Markup Language)和CSS(Cascading Style Sheets)是网页开发的基石,用于构建和设计网页的外观和布局。...同时,与他人交流和解答问题,将深化你的理解和应用能力,为你的IT之路添砖加瓦。
3. 语言与副语言:副语言包括非言语交流,如体态语、美术语言和音乐语言,它们有时可以转化为语言,有时则保持独立。 4. 自然语言与人工语言:自然语言是人类天生使用的语言,如汉语、英语等;人工语言如计算机语言...