Questions tagged «uml»

统一建模语言是用于对软件密集型系统进行建模的行业标准。

11
通常是从UML生成代码吗?[关闭]
因此,当我上大学时,就接受了UML的好处及其在代码开发中的未来的教育。 但是从我的行业经验中,我发现虽然我们确实使用图(从ER图,类图,状态图到工作流程图),但它们都是出于通信目的。 也就是说,我从来没有从图表中自动生成过代码,从沟通的角度来看,我通常会尽量使图表尽可能简单易懂。 但是,当我查看Visio和Enterprise Architect时,似乎它们具有许多不同类型的图形,形状,属性对象,而其中大多数我都不使用。 人们是否使用UML做更多复杂的事情,例如代码或数据库生成?
39 uml  diagrams  visio 

4
UML类图符号:关联,聚合和组成之间的区别
我对UML类图的某些表示感到困惑。 我很确定我知道协会的意思。两个类的实例之间的任何关系(一个类的实例需要了解第二个类的实例才能执行其工作)都属于关联关系。关联通常意味着类A具有对类B实例的引用(字段)。 但是,我很难理解“ 聚合”和“ 组合”箭头的含义。我的部分困惑是由于遇到这些符号的不同定义引起的。 聚合符号的两个定义: 定义1:每当类A的实例持有类B的实例的集合(例如,列表,数组等)时,两个类之间的聚合符号就适用。 定义2:如果类A的实例持有对类B的实例的引用,并且实例B的依赖于实例A的生命周期,则两个类之间的聚合链接是合适的。含义:类A的实例被删除时,类B的实例也将被删除。类B的实例完全包含在类A的实例中,而不是类A的实例仅拥有对类A的引用的引用。 B类(常规协会)。 关于“组合”符号的含义以及它与“聚合”符号的区别,我不确定。 请澄清定义并帮助我理解。具体的例子将受到欢迎。

12
您多久使用一次正式UML?
我使用临时MUML(虚构建模语言)来相当频繁地设计和解释系统。它看起来与UML相似,并且易于理解。 但是,我有一位或两位教授曾试图使用严格,正式的UML(尽可能接近规范)。我一直怀疑严格的UML并不像他们声称的那样普遍。那么,如何“折腾”-您实际上多久绘制一次使用所有适当的行尾,多重性,成员类型符号等的完整图表?
33 uml  diagrams 

3
为什么大多数免费软件(例如Linux)上不使用UML?
我试图了解为什么大多数免费软件项目中未使用UML。例如,我的Debian / Linux系统可能有超过一万个免费软件包,我什至不能说出使用显式 UML框架和方法开发的软件包。例如,Qt的,GCC,Linux内核,庆典,GNU 化妆,ocaml的,侏儒,齐奏,lighttpd的,libonion,码头工人都是免费的软件项目,其中(据我所知)完全不提UML。 (我的猜测是UML非常适合开发任务的正式分包,而这不是自由软件的开发方式) 请注意,尽管我确实阅读了一些有关UML的材料,但并没有声称对它有很好的理解。 实际上,我不能轻易地命名使用UML的自由软件(也许某些以自由软件实现的UML工具除外)。也许openstack是一个例外(其中提到了UML)。 (即使是旧的免费软件项目在启动后也可能采用了UML,但没有这样做) 一些从事Papyrus研究的同事提到,大多数自由软件项目在开始时就没有任何明确(且足够深入)的形式化模型。而且,UML看起来与Java的关系要比它声称的要多得多(我不完全确定对于Ocaml或Common Lisp或Haskell或Java脚本是否有意义,甚至对于C ++ 11也不可能。)。也许敏捷软件开发不是很友好的UML。 又见这个答案的一个主题相关的问题。M.Fowler的博客设计死了吗?有见地。 PS。我认为这主要不是意见问题;自由软件应该有一些客观原因和一些基本特征,这可以解释原因。我倾向于猜测UML仅对形式化转包有用,并且仅在隐藏了一部分已开发软件时才有用,例如在专有项目中。如果这是真的,那么UML将与自由软件开发不兼容。 注意:我自己不是UML迷。我不仅将UML定义为书面文档,还定义为软件工具的[元]数据格式

3
多线程应用程序的UML图
对于单线程应用程序,我喜欢使用类图来概述该应用程序的体系结构。但是,在尝试了解大量的多线程/并发应用程序时,这种类型的图并不是很有用,例如,因为类的不同实例在不同的线程上“处于活动状态”(意味着访问一个实例仅从一个实例中保存)线程继续存在)。因此,类之间的关联并不一定意味着我可以在那些对象上调用方法,而是必须在目标对象的线程上进行该调用。 我在该主题上挖掘过的大多数文献 ,例如Hassan Gomaa的UML设计并发,分布式和实时应用程序,都有一些不错的主意,例如将线程边界绘制到对象图中,但总体而言似乎有点学术性和冗长性真的很有用。 我不想将这些图用作问题域的高级视图,而只是作为我的类/对象,它们之间的相互作用以及我上面提到的线程边界所造成的限制的详细描述。 因此,我想知道: 您发现哪种类型的图对理解多线程应用程序最有帮助? 对经典UML的扩展是否考虑了多线程应用程序的特殊性,例如通过说明 有些对象可能生活在某个线程中,而另一些对象则没有线程亲和性; 对象的某些字段可以从任何线程读取,但只能从一个线程写入。 有些方法是同步的并返回结果,而另一些方法则是异步的,这些方法使请求排队,并例如通过不同线程上的回调返回结果。

6
UML类图是否足以设计JavaScript系统?
鉴于UML面向面向对象的更为经典的方法,它仍然可以以可靠的方式用于设计JavaScript系统吗? 我可以看到的一个具体问题是,实际上,类图是系统的结构化视图,而JavaScript是更多由行为驱动的,那么如何处理呢? 请记住,我在这里不是在谈论真实世界;这是我要实现的解决方案的模型。

20
UML图对于成功的项目有多重要?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 4年前关闭。 已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 我在一个项目的中间,被要求写UML图(用例,类图等)。该项目不是很复杂。 我想知道这是否浪费我的时间?我是否应该做其他有趣的事情,例如编写代码?在什么情况下不经过所有概念阶段就不能建造东西吗?一切都与复杂性有关吗?如果是这样,如何衡量呢?
22 uml  modeling 

5
与在代码中完成所有工作相比,对软件系统进行建模有什么好处?
我认识的大多数(如果不是全部)IT人员相信,在编码之前使用UML或其他类型的图对软件进行建模是有益的。(我的问题不是专门关于UML的,它可以是软件设计的任何图形或文本描述。) 我不太确定。主要原因是:代码没有说谎。它由编译器或解释器检查。希望它具有自动化测试,并且需要通过静态代码分析。如果一个模块不能与另一个模块正确连接,则在代码中通常很明显,因为会收到一条错误消息。 使用图表和其他文档无法完成所有这些操作。是的,有些工具可以检查UML,但是到目前为止,我所看到的一切都非常有限。因此,这些文档往往不完整,不一致或简单。 即使图本身是一致的,您也不能确定代码是否实际实现了它们。是的,有代码生成器,但是它们从不生成所有代码。 我有时会觉得对建模结果的痴迷是因为这样的假设,即代码不可避免地必须是一些不可理解的混乱,而建筑师,设计师或其他掌握高薪的高薪人士则不必处理这些混乱。否则,它将变得太昂贵。因此,所有设计决策都应远离代码。代码本身应该留给能够写(甚至可以读)但不必处理其他任何东西的专家(代码猴子)。当汇编程序是唯一的选择时,这可能很有意义,但是现代语言允许您以很高的抽象水平进行编码。因此,我真的不再需要建模。 我缺少用于建模软件系统的哪些论据? 顺便说一句,我相信图是一个伟大的方式来记录和沟通软件设计的某些方面,但是,这并不意味着我们应该立足于他们的软件设计。 澄清: 由于不清楚,这个问题被搁置了。因此,让我添加一些解释: 我在问使用将软件建模的(非代码)文档作为有关软件设计的主要事实来源是否有意义。我没有想到从这些文档中自动生成很大一部分代码的情况。如果是这种情况,我会将文档本身视为源代码,而不是模型。 我列出了此过程的一些缺点,这使我想知道为什么有这么多人(以我的经验)认为它是进行软件设计的首选方法。

4
哪些UML图仍在广泛使用?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 2年前关闭。 我在大学阶段教授软件工程,对UML从业者有疑问。 大多数软件工程教科书在覆盖UML图方面都进行了认真的工作。但是,另一方面,我从许多毕业生那里听说,UML似乎不再被使用。 哪些UML图仍在专业实践中广泛使用,为什么?是否存在不再使用的图,为什么? 注意:为了避免基于观点的辩论和讨论,请使用事实和客观因素(如果可能,可验证)或对个人经验的中性观察来说明您的答案

7
关于UML,需要了解哪些基本知识?
想要改善这篇文章吗?提供此问题的详细答案,包括引文和答案正确的解释。答案不够详细的答案可能会被编辑或删除。 我希望我对程序设计和行为的涂鸦变得更加精简,并与其他开发人员有共同的语言。 我查看了UML,从原则上讲,这似乎是我想要的东西,但这似乎有些过分。我在网上找到的信息似乎也很and肿且学术性强。 我如何以通俗易懂的方式理解UML,足以向同事解释?在基础层面上了解UML的规范资源是什么?
18 design  uml 

2
函数式程序员使用什么代替UML?
我是CS学生。我目前正在参加讲座,在那里我们将学习目标分析和设计。它主要由编写用例,分析我们为客户编写一些应用程序时可能遇到的问题以及如何设计项目以使其既可扩展,对开发人员清晰又不会在客户争论某些问题时产生问题而组成特征。由于它是“客观的”,因此我们是从OOP(类等)的角度来学习它的。 现在,我们使用UML作为帮助工具。我相信我对OOP有很好的了解,但是我也学习了功能范例,并在我的一些较小的项目中成功使用了它。 我们的老师面对“功能范式有什么意义”?问题,他回答他没有使用功能语言编写任何更大的项目,并且他不知道功能程序可以使用哪种工具。 那么,他们将使用什么呢?有一些方法吗?或者也许不需要这种东西?

4
“ UML对MDD来说是最糟糕的事情。”为什么?
威廉·库克(William Cook)在一条推文中写道: “ UML对MDD来说是最糟糕的事情。幸运的是,现在许多人意识到了这一点…… ” 我想知道该说法背后的原因(显然,我不是在指他的个人观点)。 我注意到那里的许多人不太喜欢UML。同样值得一提的是,他在学术界,UML成为有效设计和建模的圣杯。
17 design  uml  mdd 

1
如何在UML活动图中表示嵌套动作?
这个问题是非常相似,这一个,但得到的答复不符合我的需求。它专注于特定的UML工具(Papyrus),而我的问题是关于UML的一般性问题。 我想在活动图中表示一个嵌套动作,但是我不知道执行此动作的常用方法是什么。这个想法是,存在一个与其他动作具有相同作用域的动作,但是执行起来更为复杂。我想展示有关其执行的更多详细信息,同时仍能够在其他级别上展示该操作。 在下面的示例(该活动图显示了某种“ 返乡 ”活动)中,嵌套动作位于该Pet the cat动作中。请注意,此图中还有另一个潜在错误,请参阅问题末尾的勘误表。 我已经使用了结构化节点,但是我不确定这是正确的方法,因此是一个问题。在状态图中,等效项将是复合状态,但是我只是找不到关于复合动作的任何信息。关于结构化节点,在阅读了一些有关它的文档后,我仍然没有真正知道应该如何使用它,因此,我可能完全不喜欢该图。 我也知道有可能用三叉戟符号来引用另一个子活动,如下图所示,但是它不符合我的需求,因为我希望所有信息都在同一张图表上(因此我可以打印它而不会丢失任何信息): 那么代表这种嵌套动作的标准方法是什么?按照标准,我指的是有效的UML,通常在大多数UML设计工具上都可以看到并且可行。 无关的勘误表:我的图表中有另一件事是错误的,进入同一动作(Scratch behind the ears)的箭头应先进入合并节点,然后再输入该动作。请参阅下面的评论,包括JOT的引用。
16 uml  modeling 

4
4 + 1架构视图模型与UML之间的映射
我对4 + 1架构视图模型如何映射到UML感到有些困惑。 维基百科提供了以下映射: 逻辑视图:类图,通讯图,顺序图。 开发视图:组件图,包装图 流程视图:活动图 物理视图:部署图 方案:用例图 纸张UML时序图的构建在对象生命周期概念作用提供了以下映射: 逻辑视图(类图(CD),对象图(OD),序列图(SD),协作图(COD),状态图图(SCD),活动图(AD)) 开发视图(包装图,组件图), 流程视图(用例图,CD,OD,SD,COD,SCD,AD), 物理视图(部署图),以及 结合了上述四个方面的用例视图(用例图,OD,SD,COD,SCD,AD)。 网页UML 4 + 1 View Materials提供了以下映射: 最后,白皮书《将4 + 1视图架构与UML 2结合使用》给出了另一个映射: 逻辑视图类图,对象图,状态图和组合结构 过程视图顺序图,通讯图,活动图,时序图,交互概述图 开发视图组件图 物理视图部署图 用例视图用例图,活动图 我相信进一步的搜索也会揭示其他映射。 尽管各种人通常有不同的看法,但我不明白为什么会出现这种情况。特别地,每个UML图都从特定方面描述系统。那么,例如,为什么一位作者认为“顺序图”描述了系统的“逻辑视图”,而另一位作者却认为它描述了“过程视图”呢? 您能帮我澄清一下混乱吗?
15 architecture  uml  model  view 


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.