Visual Paradigm Desktop | Visual Paradigm Online

UML14- Page

244Articles

UML1 year ago

解释此图:一键揭开架构的神秘面纱 架构图不仅仅是视觉呈现——它们是沟通工具。在企业软件、系统设计和工程工作流中,它们构成了理解组件之间如何交互的基础。然而,对许多开发人员和工程师来说,阅读一个UML 包图的感觉就像是在破译一种外语。这时,基于人工智能的建模工具便改变了游戏规则。 借助AI图表聊天机器人,你无需记忆建模标准,也不必手动追踪依赖关系。你只需描述系统,AI便会实时生成或解释图表。这一能力使得入职更快、沟通更清晰,并能做出更准确的设计决策——尤其是在跨分布式团队或处理遗留系统时尤为显著。 这里的真正创新之处不仅在于自动化,更在于上下文理解。AI模型基于既定的建模标准进行训练,能够解析自然语言输入,生成精确且符合规范的图表。这意味着你可以提出这样的问题,“生成一个AIUML基于微服务的电子商务平台的包图”,并获得一个结构清晰、有效的输出,体现行业最佳实践。 为什么AI UML图在实践中至关重要 传统的绘图工具需要手动输入并严格遵守语法。类名中的一个拼写错误或可见性修饰符使用不当,都可能导致图表无法使用。相比之下,AI UML图生成器通过解析自然语言并将其转化为有效模型,降低了认知负担。 例如,一名负责记录新支付网关集成的后端工程师可以用通俗语言描述系统:“有一个核心服务负责处理订单,一个支付处理器用于验证交易,还有一个审计日志记录每一次操作。”AI会解析这段描述,并构建出包含适当包、依赖关系和关联关系的UML包图——而无需事先具备建模知识。 当向利益相关者解释复杂系统时,这种方法尤其有价值。你无需展示一个密集且技术性强的图表,而是可以利用AI生成一个清晰易读的版本,回答诸如“哪些组件直接与支付服务通信?”或“在这个架构中,错误流向何处?” 能够通过自然语言输入生成这些图表——我们称之为自然语言图生成——消除了入门障碍,并确保技术决策建立在清晰、现实世界的描述基础上。 AI图表聊天机器人如何与架构协同工作 AI图表聊天机器人基于深厚的建模知识运行。它支持标准的架构模式,能够生成准确的AI UML包图,以及其他UML和企业架构图表。 当你要求AI“解释这张图”时,它不仅会总结,还会分析结构、识别关系并提供上下文洞察。例如,如果你提供一个部署图在多层架构中,AI可以解释服务如何扩展、故障如何传播,以及哪些组件对系统持续运行至关重要。 这项功能使得一键图解在评审或调

UML1 year ago

翻译你的状态图:AI语言能力的全面解析 想象一下,你正在设计一款智能家居设备——它能听懂你的语音,学习你的日常习惯,并自动调节设置。现在,你无需编写代码或手动绘制状态图,只需用简单的语言描述流程:“当用户说‘关灯’时,系统会检查是否为夜间,如果是,就逐渐调暗灯光;如果是白天,则直接关闭灯光。” 这种描述——简单、自然,且基于现实行为——正是AI所理解的内容UML聊天机器人所理解的。它倾听、解析,并将你的语言转化为清晰、准确的状态图。这不仅仅是自动化,更是连接人类直觉与技术精确性的桥梁。 这就是AI驱动的绘图软件的力量。当你使用UML,尤其是状态图时,最大的挑战往往在于将复杂行为转化为可视化形式。有了合适的AI支持,这一鸿沟便得以弥合。AI绘图聊天机器人不仅生成图表,更会倾听你的语言,理解上下文,并构建出反映现实逻辑的模型。 为什么自然语言在建模中至关重要 传统建模工具要求你输入结构化数据:事件、转换、状态。这对专家来说可行,但对即兴构思的创新者却不适用。一位设计师可能会说,“当用户打开应用时,它会显示加载界面,然后检查更新,延迟一段时间后,再显示欢迎信息。” 借助AI状态图生成器,这一描述即可转化为有效且准确的状态图。无需记忆UML语法,也无需查找转换规则。AI会像对话一样建模行为——缓慢、谨慎且富有人性化。 这一能力在产品设计、用户体验和嵌入式系统中尤为宝贵,因为这些领域的行为具有流动性和情境依赖性。借助聊天机器人的AI建模,抽象想法可转化为可视模型,供审查、质疑和优化。 现实案例:从语音指令到状态转换 设想一个智能恒温器。用户说,“我希望系统在房间温暖且有人在家时自动开启。” AI UML聊天机器人倾听并构建一个包含以下内容的图表: 一个起始状态(用户说“启动”) 一个条件检查(房间温度是否高于18°C?) 一个上下文层(用户是否在家?) 一个转换 当两个条件都满足时,切换到“加热开启” 这并非猜测。AI会解析逻辑,定义状态,并根据自然语言映射状态转换。它甚至支持状态图的翻译,这意味着你之后可以将模型转换回易于理解的人类解释,或与非技术利益相关者共享。 这种流畅的交互正是AI驱动的绘图软件与传统工具的区别所在。你不是从代码中导出图表,而是基于理解来构建它。 AI如何理解行为,而非语法 用于绘图的AI聊天机器人不依赖预设模板或僵化规则。它学习人们描述系统时的模式

UML1 year ago

使用AI活动图建模并行流程与同步 大多数团队仍然通过流程图来描述并行流程,依赖手动注释和颜色编码的序列。这效率低下,容易出错,且无法扩展。 真正的问题不在于复杂性,而在于一种假设:建模必须是一件繁琐的事。即工作流中的每一步、每一次交接、每一个并发任务,都必须手工绘制,并由一个清单思维的人来审核。 如果能用通俗语言描述一个系统,并在几秒钟内获得一个准确、详细的活动图活动图呢? 借助AI活动图,模型源自上下文,而非模板或规则。 手动工作流建模的问题 传统的UML传统的UML活动图建立在精确性和顺序性的基础之上。但当团队需要建模并行流程——例如同时处理客户订单、处理付款和发送确认邮件——他们常常陷入一个陷阱: 他们按顺序绘制每一步,忽略了实际的并发性。他们在底部用小字添加注释,如“此步骤并行运行”,希望足够清晰。 但这不是建模,这只是文档记录。 图示中的同步——任务如何交互、等待或协调——通常需要读者自行推断。没有内置方式来表达诸如“等待付款确认”或“两个任务完成后合并结果”之类的条件。结果是,这些图在纸上看起来不错,但在实际审查中却经不起推敲。 这不仅过时,而且当决策基于对工作流的错误描述时,更是危险的。 AI活动图:新标准 AI驱动的绘图软件改变了这一现状。你不再需要绘制,只需描述即可。 想象一个物流团队在管理配送路线。他们需要展示: GPS追踪与库存更新并行运行, 系统等待仓库的确认, 然后合并数据并发送最终更新。 你无需绘制箭头或添加顺序框。你只需说: “建模一个系统,其中GPS追踪和库存更新同时发生,系统等待仓库确认,然后合并数据。” AI理解了场景的结构,并生成一个清晰、准确的AI活动图,真实反映了并行性和同步性。 这不仅仅是自动化,而是将智能应用于建模。 AI将并行流程建模为一个核心要素,而非附加说明。它能识别任务何时可以并发运行、何时必须等待,以及结果如何合并。这正是自然语言生成图示的体现。 为何这对真实工作流至关重要 软件开发、运维和供应链管理团队始终面临多个活动流并存的系统。无论是银行交易、医疗预约调度系统,还是制造工作流,并发性都是真实存在的。 AI活动图帮助团队: 无需手动操作即可可视化真正的工作流并发 识别可能导致系统故障的隐藏同步点 在开发人员、运维人员和业务利益相关者之间建立更清晰的沟通 由于AI是基于建模标准训练的,它能够理解图表中同步背

UML1 year ago

状态图作为文档工具:保持团队协同一致 在软件开发中,文档不仅仅是次要任务——它是可维护系统的核心组成部分。当团队跨越时区、领域或不断变化的需求工作时,出现误解的风险会增加。一个状态图,如果使用得当,将成为系统在不同状态间转换的精确且直观的表示。这种清晰性通过为所有人提供对系统行为的共同理解,直接支持团队的协同一致。 传统状态图的挑战在于,它们需要专业技术知识才能创建和解读。即使使用标准工具,这一过程通常仍涉及手动绘制,容易导致不一致或错误。而这就是AI驱动的绘图工具能够改变工作流程的地方——它并非取代工程师,而是让他们能够专注于逻辑,而非语法。 本文探讨了状态图如何作为团队协同一致的文档工具,以及现代AI能力——特别是AIUML聊天机器人——如何使工程师能够从自然语言生成准确且可维护的模型。 为什么状态图对系统清晰性至关重要 状态图通过一组状态、转换和事件来描述系统的动态行为。每个状态代表一种条件,而转换则定义了系统在触发事件响应下如何从一个状态转移到另一个状态。 例如,在支付处理系统中,用户可能会经历诸如待处理, 已处理, 失败,以及已退款的状态。如果没有清晰的视觉模型,开发人员、质量保证人员和产品经理可能会对系统行为做出不同的假设,从而导致错误或功能不一致。 一个构建良好的状态图可以作为唯一真相来源。它使团队成员能够: 理解系统生命周期事件 识别边缘情况和故障路径 根据系统行为验证业务规则 追踪跨组件的决策 这种共同的理解减少了歧义,增强了沟通——尤其是在跨职能团队中,工程师、产品负责人和测试人员使用不同的语言时。 AI UML 聊天机器人在创建状态图中的作用 传统的UML工具要求用户手动定义元素——通常使用基于文本的语法或拖放界面。这容易出错且耗时,尤其是在系统逻辑复杂或不断演变的情况下。 AI UML 聊天机器人通过解析自然语言并将其转化为结构正确的状态图,消除了这一障碍。用户用通俗语言描述系统行为,AI则生成包含准确状态、转换和事件触发器的正确模型。 例如: “我想要一个电商应用中用户的状态图。当他们访问网站时,可以选择浏览商品或将商品加入购物车。如果加入商品,他们将进入购物车状态。如果离开网站而没有添加商品,则进入主页状态。如果完成结账,他们将进入成功订单状态。” AI UML聊天机器人解析此输入并生成一个清晰的状态图,包含: 状态:主页, 浏览, 购

UML1 year ago

使用包图和人工智能映射微服务 大多数团队仍然手动绘制微服务架构。他们画方框、贴标签,希望布局看起来合理。这效率低下,容易出错,也无法扩展。 真正的问题不是如何映射微服务——而是为什么我们还要用老方法做这件事。 现代软件不是在孤岛中构建的。它建立在沟通、依赖和共同责任之上。理解这种复杂性的最佳方式?不是靠猜测,而是通过清晰、智能的图表。这正是人工智能驱动建模发挥作用的地方——特别是通过人工智能UML 包图工具,能够将文本转化为精确、易读且可维护的系统视图。 手动映射微服务的问题 当工程师尝试手动映射微服务时,常常会出现: 重叠的组件,边界不清晰 服务之间缺少相互依赖关系 看起来像一堆随机方框的图表 这会导致评审时的困惑、入职延迟以及团队间缺乏协调。 事实是,手动绘制无法反映微服务实际的交互方式。这是一种让问题更严重的捷径。 为什么?因为它不理解上下文。它不知道哪些服务应该归为一组,哪些应该隔离,也不知道如何反映部署约束。 这正是人工智能改变游戏规则的地方。 人工智能 UML 包图:一种更智能的方法 人工智能UML包图工具不仅生成图表,还能理解系统设计背后的意图系统设计意图。 你不需要从一张白纸开始,而是用通俗语言描述你的系统。 “我们有一个结账服务、一个用户资料服务和一个通知服务。结账服务需要与用户资料服务通信以验证身份,并与通知服务通信以发送订单确认。我们希望将相关服务归入‘客户旅程’包下。” 人工智能随后创建一个清晰、逻辑分明的包图,反映实际的流程——对服务进行分组、组织并明确依赖关系。 这不仅仅是自动化,而是智能抽象。 你不是在绘图。你是在描述。而这个工具会理解. 为什么基于人工智能的包图效果更好 传统的UML 图是静态的。它们需要更新,而这些更新既耗时又容易出错。基于人工智能的UML包图工具通过以下方式解决了这个问题: 根据功能或数据流自动分组服务 识别架构中潜在的耦合问题 支持在复杂系统中实现清晰的关注点分离 例如,当使用包图来映射微服务时,人工智能不仅仅是放置方框。它能理解哪些服务应该放在同一个包中——比如共享的数据层或通知流水线。

UML1 year ago

在AI驱动的状态图中可视化电子邮件的生命周期 大多数公司仍然将电子邮件视为一系列静态事件——发送、打开、阅读、回复、删除。这种做法已经过时。事实上,电子邮件并不遵循线性路径。它会分支、循环、被延迟,有时甚至被埋没在收件箱中。手动绘制这样的流程?纯属浪费时间,而且会导致错误的决策。 如果你可以用通俗语言描述一封电子邮件的旅程——“邮件已发送,然后停留在草稿状态,被送达,被经理打开,最终被归档”——并让机器立即生成一个精致、准确的状态图,真实反映现实中的行为? 这不仅可能,而且已经实现——得益于AI驱动的建模软件。 为什么手动电子邮件流程图会失败 传统的工作流程依赖人工绘制箭头和方框来表示电子邮件的流转过程。但人们并非按阶段思考,而是基于上下文思考。客户发送一封邮件——这不仅仅是“已送达”。它可能被退回、被标记、被转发、被回复,有时甚至被忽略。 手动图表假设只有一条路径。它们忽略了循环,忽视了条件分支,而且需要耗费数小时从那些可能根本不了解所要建模系统的人员那里获取输入。 这不仅效率低下,而且不准确。 AI UML聊天机器人如何解决这一问题 引入AIUML聊天机器人——一个基于真实世界建模标准训练的复杂引擎。当你描述电子邮件生命周期时,系统会读取你的输入并构建一个状态图,真实反映电子邮件的实际行为。 你无需了解UML语法,也不需要绘制图形。只需说: “为电子邮件生命周期生成一个状态图,包括草稿、已发送、已送达、已打开、已回复、已归档和被退回等阶段。” 只需几秒钟,你就能获得一个清晰、专业的图表,包含正确的状态转换、状态和事件触发器。 这并非魔法,而是多年基于企业级建模标准训练的结果。AI理解什么状态图应当表达的内容——而不仅仅是如何绘制它。 让这一切成为可能的关键功能 AI图表生成器可自动将自然语言转换为结构化的状态图。 聊天机器人创建状态图支持文本输入,并根据业务逻辑生成准确的转换。 生成的图表包含电子邮件生命周期状态图 诸如事件(例如“用户打开”)、条件(例如“48小时内无回复”)和状态(例如“草稿中”)等元素。 你可以通过要求AI添加或删除转换来优化图表——例如“展示一封邮件被标记为垃圾邮件的路径”或“添加邮件移至文件夹时的状态”。 这不仅仅是视觉呈现的问题。它关乎清晰性,关乎将商业决策建立在真实的流程数据之上。 真实场景:一个营销团队需要追踪活动邮件 想象一个

UML1 year ago

使用UML组件图设计微服务架构:一种人工智能驱动的方法 微服务架构已成为现代软件开发的基石,提供了可扩展性、弹性以及独立部署的能力。然而,管理众多相互交互的服务所带来的复杂性,需要强大的文档支持和清晰的视觉表达。此时,UML组件图,一种强大的工具,用于可视化此类系统中的结构关系。但如果你能够简化这一复杂过程,从概念快速、准确地生成完整的图表,会怎样呢? 本文深入探讨了UML组件图在微服务设计中的关键作用,并展示了Visual Paradigm的AI驱动建模软件如何彻底革新其创建与分析过程。 在微服务架构中,UML组件图是什么? 一个UML组件图通过展示系统的组件、它们提供的接口和需要的接口以及组件之间的关系,图形化地描绘出系统的结构。在微服务环境中,每个组件通常代表一个独立的微服务,展示这些可独立部署的单元如何协作形成整体应用程序。这种清晰性对于理解依赖关系和架构边界至关重要。 技术必要性:为何组件图对微服务至关重要 对于架构师和开发人员而言,清晰性是首要的。微服务本质上将单体应用程序拆分为更小、更易管理的部分。虽然这带来了巨大优势,但也增加了理解这些部分如何组合在一起的复杂性。一个构建良好的UML组件图通过以下方式解决这一问题: 定义服务边界:明确划分每个微服务的范围和职责。 可视化依赖关系:展示哪些服务依赖于其他服务以及通过何种接口。这在变更期间的影响分析中至关重要。 展示交互模式:表示服务之间的通信方式(例如,同步的REST调用、异步的消息队列)。 促进沟通:为开发团队、利益相关者和运维人员提供一种通用的视觉语言。 支持重构与演进:作为架构演进时识别潜在瓶颈或改进区域的蓝图。 如果没有这样的图表,架构理解可能会退化为部落知识,导致不一致性和难以诊断的问题。 UML组件图的关键元素 为了有效建模微服务,组件图使用了几个核心元素: 元素 描述 微服务应用 组件 系统中一个模块化、自包含且可替换的部分。 每个独立的微服务(例如,订单服务, 支付网关). 接口 一组操作,用于指定服务的功能。 提供的API(例如,订单管理API)或需要的(例如,计费API). 端口 组件与其环境或其他组件之间的交互点。 用于通信的特定端点(例如,HTTP端口、消息队列主题)。 连接器

UML1 year ago

可视化代码库:向AI描述项目以生成包图 在软件开发中,理解系统的结构与编写代码本身同样关键。工程师们常常花费大量时间来逆向工程或记录现有系统的架构。当手动进行时,这一过程既耗时又容易出错。如今,人工智能驱动的建模软件应运而生——这些工具能够将自然语言描述转化为准确且标准化的图表。 在处理复杂的代码库时,开发者需要快速理解各个组件之间的关系——有哪些模块存在,哪些模块依赖于其他模块,以及不同部分是如何组织的。这正是AI发挥作用的地方UML包图便派上用场。通过用通俗语言描述项目,工程师可以生成结构清晰、符合规范的包图,准确反映现实世界中的模块边界和依赖关系。 这种方法使团队能够高效地可视化代码库,识别潜在的架构缺陷,并在不依赖静态文档或旧工具的情况下,向利益相关者传达系统结构。 为什么AI UML包图在开发中至关重要 传统创建UML包图的方法需要大量时间和专业知识。开发者必须手动定义类、包和关系,通常使用缺乏上下文感知或模型标准化能力的工具。相比之下,AIUML包图工具通过解析自然语言输入并生成符合规范的图表,简化了这一过程。 从文本(例如“我们的应用包含用户认证模块、支付处理模块和数据持久化层”)生成AI UML包图的能力具有变革性。它能将非正式的项目讨论转化为可被审查、修改或在团队间共享的可视化模型。 这一能力在以下场景中尤为宝贵: 帮助新工程师快速熟悉代码库。 帮助技术团队就系统边界达成一致。 在设计评审中验证架构决策。 如何使用AI生成包图:开发者的操作流程 想象一位开发者加入一个新项目。团队尚未记录架构,代码分散在多个目录中。开发者需要理解系统的结构。 与其逐行阅读代码或依赖过时的图表,他们可以向AI聊天机器人描述项目: “我正在开发一个包含用户认证、订单管理、支付处理和库存跟踪功能的Web应用。认证模块负责登录和会话令牌的处理。订单管理包括创建、更新和取消订单。支付通过第三方API进行处理。库存数据存储在数据库中,并通过REST服务对外暴露。” AI会解析这一描述,并生成一个连贯的AI UML包图,展示: 清晰的包边界 模块之间的关系(例如,认证依赖于用户数据) 子系统之间的依赖关系(例如,订单管理调用支付服务) 输出结果不仅仅是草图——它遵循UML 2.0标准,使用正确的可见性和继承规则,并真实反映模块之间的交互。 这一工作流程更快、更准确,同时降低了人

UML1 year ago

初学者的UML:通过AI驱动的建模理解常见图表类型 该统一建模语言(UML)在软件工程中扮演着基石角色,提供了一种标准化的图形化表示法,用于指定、可视化、构建和记录软件密集型系统的各种产物。对于初学者而言,面对众多UML图表类型可能会感到望而生畏,但掌握基础理解对于有效的系统设计和沟通至关重要。本文旨在揭开最常见的UML图表的神秘面纱,并说明尖端的、由AI驱动的建模软件(如Visual Paradigm)如何革新其创建方式和实用性。 什么是UML?它为何重要? UML是一种视觉语言,用于表示系统的各个方面,从整体架构到复杂的交互行为序列。它为开发团队、利益相关者甚至自动化工具提供了通用的词汇,促进清晰表达,减少复杂项目中常见的歧义。UML的核心目的是促进关于系统设计的精确沟通,从而实现更好的规划、实施和维护。 UML简明解释(用于精选摘要): UML(统一建模语言)是一种在软件工程中用于建模、可视化和记录系统设计的标准化视觉语言。它包含多种图表类型,从结构、行为到交互等不同视角,对于开发团队和利益相关者在整个软件开发生命周期中进行清晰沟通至关重要。 在项目中何时应使用UML UML具有极强的通用性,适用于软件开发项目的多个阶段。 考虑以下使用场景: 在需求分析阶段:用于捕捉用户需求和系统功能(例如,用例图)。 在系统设计阶段:用于定义系统架构和组件之间的交互(例如,类图、组件图)。 在实施指导阶段:为编码和数据库模式提供蓝图。 在文档编制阶段:用于创建全面且易于理解的系统文档。 在维护与演进阶段:用于分析现有系统并规划未来的改进。 其优势远不止于绘图本身;UML有助于深入理解系统动态,促进一致性,并在长期内显著减少错误。 初学者应掌握的关键UML图表类型 尽管UML包含多种图表类型,但初学者应重点掌握其中几种基础类型。我们将聚焦于在典型软件工程场景中最常遇到的几种。 1. 用例图 目的: 从外部用户的视角描述系统的功能。它展示了用户(参与者)与系统之间的交互,突出显示系统做什么而无需详细说明如何. 组件: 参与者: 与系统交互的外部实体(例如,用户、其他系统)。 用例: 系统提供的功能或服务。 关系: 参与者与用例之间的关联,以及用例彼此之间的关系(例如,包含、扩展)。 2.

UML1 year ago

真实案例研究:使用Visual Paradigm的AI聊天机器人创建类图 大多数团队在构建时仍然从一张空白画布开始UML 类图。他们手动写出属性、方法和关系——费力、痛苦,且常常出错。这不仅效率低下,而且从根本上就是错误的。为什么?因为现实世界并不用类和对象来表达。它用的是动作、问题和业务需求。因此,当开发者说“我需要一个”类图 学生注册系统”的类图时,假设是他们已经知道要创建哪些类以及它们之间的关系。 这正是真实案例研究 Visual Paradigm的AI聊天机器人用于类图时打破常规的地方。 与其从类的列表开始,这个过程从对系统的自然描述开始。一位大学科技初创公司的产品经理描述了他们的系统: “我们有学生选课、支付费用并接收通知。每位学生都有个人资料、课程偏好和支付记录。课程有持续时间与授课教师。支付通过网关处理,学生注册时会发送通知。” 无需写出类名,也无需猜测关系。AI会根据该描述构建一个从文本生成的类图——包含属性、方法、关联关系,甚至在相关情况下包含继承关系。这不是猜测,而是基于数千个真实世界建模标准训练出的模式识别。 这就是AI驱动的建模软件的力量。它不会取代设计师,而是取代了思维负担。 为什么手动创建类图已经过时 传统上,创建类图意味着在电子表格中列出类,然后在它们之间画线。这很慢,容易出错。更糟糕的是,它根植于一种将软件设计视为机械性工作的思维模式。 但软件并非机械的。它是情境化的,由行为驱动,而非静态的数据类型。 当系统演进时,传统方法就会失效。在团队甚至还没完成文档编写之前,第一个版本的图就已经过时了。新用户无法理解这些关系,因为它们在设计阶段并未被记录下来。 用于类图的AI聊天机器人改变了这一点。它倾听描述背后的意图。它理解学生选课不仅仅是一次交易——而是一个包含数据、时间点和参与行为的生命周期事件。 AI聊天机器人如何将自然语言转化为UML 以下是它在实际中的运作方式: 一家医疗应用公司的软件工程师说: “我们需要一个患者预约系统的类图。患者预订时间段,护士确认,医生查看日程。” AI会回应一个完整的UML类图,其中包含: 患者(包含姓名、ID、联系方式等属性) 预约(包含开始时间、状态、类型) 护士和医生作为角色 表示患者预约的关联关系 预约到护士确认的依赖关系 AI 不仅生成它,还会解释其背后的逻辑。它会突出显示哪些类可能被重用,并建

Loading

Signing-in 3 seconds...

Signing-up 3 seconds...